ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ SMB ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° OpenVPN

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π‘Ρ‚Π°Ρ‚ΡŒΡ описываСт ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа сотрудников Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ… с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована ΠΊΠ°ΠΊ для построСния ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ систСмы, Ρ‚Π°ΠΊ ΠΈ окаТСтся ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π² ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ коммСрчСской систСмС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ° Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΉ ΠΈΠ»ΠΈ Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ оказываСтся нСдостаточной.

ЦСль ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΡƒΡŽ систСму прСдоставлСния ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС, Ρ‡Π΅ΠΌ «установка OpenVPN Π·Π° 10 ΠΌΠΈΠ½ΡƒΡ‚Β».

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ систСму, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ сСртификаты ΠΈ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Active Directory. Π’.ΠΎ. ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ систСму с двумя Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ β€” Ρ‡Ρ‚ΠΎ имСю (сСртификат) ΠΈ Ρ‡Ρ‚ΠΎ знаю (ΠΏΠ°Ρ€ΠΎΠ»ΡŒ).

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, являСтся Π΅Π³ΠΎ члСнство Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ myVPNUsr. Π¦Π΅Π½Ρ‚Ρ€ сСртификации Π±ΡƒΠ΄Π΅Ρ‚ использован Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ.

Π¦Π΅Π½Π° внСдрСния Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСбольшиС Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ рСсурсы ΠΈ 1 час Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмного администратора.

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ с OpenVPN ΠΈ Easy-RSA 3-ΠΉ вСрсии Π½Π° CetntOS 7, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ· расчСта Π½Π° 100 ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π²Ρ‹Π΄Π°Π½ΠΎ 4 vCPU, 4 GiB RAM.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡΠ΅Ρ‚ΡŒ нашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ 172.16.0.0/16, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ VPN сСрвСр с адрСсом 172.16.19.123 располоТСн Π² сСгмСнтС 172.16.19.0/24, DNS сСрвСры 172.16.16.16 ΠΈ 172.16.17.17, Π° для VPN ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎΠ΄ΡΠ΅Ρ‚ΡŒ 172.16.20.0/23.

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ·Π²Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΡ€Ρ‚Ρƒ 1194/udp, Π° Π² DNS для нашСго сСрвСра создана A-запись gw.abc.ru.

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ Π½Π΅ рСкомСндуСтся ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ SELinux! OpenVPN Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ бСзопасности.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  1. Установка ОБ ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ПО
  2. Настройка ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ
  3. Настройка OpenVPN
  4. АутСнтификация Π² AD
  5. Запуск ΠΈ диагностика
  6. Выпуск ΠΈ ΠΎΡ‚Π·Ρ‹Π² сСртификата
  7. Настройка сСти
  8. Π§Ρ‚ΠΎ дальшС

Установка ОБ ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ПО

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ дистрибутив CentOS 7.8.2003. Нам Π½ΡƒΠΆΠ½Π° установка ОБ Π² минимальной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π£Π΄ΠΎΠ±Π½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ это с использованиСм kickstart, ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ€Π°Π½Π΅Π΅ установлСнного ΠΎΠ±Ρ€Π°Π·Π° ОБ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ срСдствами.

ПослС установки, назначСния адрСса сСтСвому интСрфСйсу (ΠΏΠΎ условиям Π·Π°Π΄Π°Ρ‡ΠΈ 172.16.19.123), выполняСм ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ОБ:

$ sudo yum update -y && reboot

Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π½Π° нашСй машинС выполняСтся синхронизация Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
Для установки ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ПО Π½ΡƒΠΆΠ½Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ openvpn, openvpn-auth-ldap, easy-rsa ΠΈ vim ΠΊΠ°ΠΊ основной Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ (понадобится Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ EPEL).

$ sudo yum install epel-release
$ sudo yum install openvpn openvpn-auth-ldap easy-rsa vim

Для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ гостСвого Π°Π³Π΅Π½Ρ‚Π°:

$ sudo yum install open-vm-tools

для хостов VMware ESXi, ΠΈΠ»ΠΈ для oVirt

$ sudo yum install ovirt-guest-agent

Настройка ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ easy-rsa:

$ cd /usr/share/easy-rsa/3/

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

$ sudo vim vars

ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:

export KEY_COUNTRY="RU"
export KEY_PROVINCE="MyRegion"
export KEY_CITY="MyCity"
export KEY_ORG="ABC LLC"
export KEY_EMAIL="[email protected]"
export KEY_CN="allUsers"
export KEY_OU="allUsers"
export KEY_NAME="gw.abc.ru"
export KEY_ALTNAMES="abc-openvpn-server"
export EASYRSA_CERT_EXPIRE=3652

Π—Π΄Π΅ΡΡŒ описаны ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для условной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ООО Β«ABCΒ», ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° настоящиС ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… β€” послСдняя строка, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ срок дСйствия сСртификата Π² днях. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ использовано Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10 Π»Π΅Ρ‚ (365*10+2 високосных Π³ΠΎΠ΄Π°). Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ выпуском сСртификатов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π”Π°Π»Π΅Π΅ настраиваСм Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ Ρ†Π΅Π½Ρ‚Ρ€ сСртификации.

Настройка Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ экспорт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π¦Π‘, выпуск ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π° ΠΈ сСртификата Π¦Π‘, ΠΊΠ»ΡŽΡ‡ Π”ΠΈΡ„Ρ„ΠΈ-Π₯Π΅Π»Π»ΠΌΠ°Π½Π°, ΠΊΠ»ΡŽΡ‡ TLS, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ»ΡŽΡ‡Π° ΠΈ сСртификата сСрвСра. ΠšΠ»ΡŽΡ‡ Ρ†Π΅Π½Ρ‚Ρ€Π° сСртификации Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π΅Ρ€Π΅Π³Π°Ρ‚ΡŒ ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² сСкрСтС! ВсС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΈ запросах ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

cd /usr/share/easy-rsa/3/
. ./vars
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa gen-req myvpngw nopass
./easyrsa sign-req server myvpngw
./easyrsa gen-crl
openvpn --genkey --secret pki/ta.key

На этом основная Ρ‡Π°ΡΡ‚ΡŒ настройки криптографичСского ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°.

Настройка OpenVPN

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ OpenVPN, создаСм слуТСбныС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈ добавляСм ссылку Π½Π° easy-rsa:

cd /etc/openvpn/
mkdir /var/log/openvpn/ /etc/openvpn/ccd /usr/share/easy-rsa/3/client
ln -s /usr/share/easy-rsa/3/pki/ /etc/openvpn/

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ основной Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ OpenVPN:

$ sudo vim server.conf

ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания

port 1194
proto udp
dev tun
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/myvpngw.crt
key /etc/openvpn/pki/private/myvpngw.key
crl-verify /etc/openvpn/pki/crl.pem
dh /etc/openvpn/pki/dh.pem
server 172.16.20.0 255.255.254.0
ifconfig-pool-persist ipp.txt
push "route 172.16.0.0 255.255.255.0"
push "route 172.17.0.0 255.255.255.0"
client-config-dir ccd
push "dhcp-option DNS 172.16.16.16"
push "dhcp-option DNS 172.16.17.17"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
username-as-common-name
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/ldap.conf

НСкоторыС замСчания ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ:

  • Ссли ΠΏΡ€ΠΈ выпускС сСртификата Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ имя β€” ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π΅Π³ΠΎ;
  • ΠΏΡƒΠ» адрСсов ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ свои Π·Π°Π΄Π°Ρ‡ΠΈ*;
  • ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² ΠΈ DNS сСрвСров ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько;
  • 2 послСдниС строки Π½ΡƒΠΆΠ½Ρ‹ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² AD**.

*Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ адрСсов ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎ 127 ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ, Ρ‚.ΠΊ. Π²Ρ‹Π±Ρ€Π°Π½Π° ΡΠ΅Ρ‚ΡŒ /23, Π° OpenVPN создаСт Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΏΠΎΠ΄ΡΠ΅Ρ‚ΡŒ ΠΏΠΎ маскС /30.
ΠŸΡ€ΠΈ особой нСобходимости ΠΏΠΎΡ€Ρ‚ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹, ΠΎΠ΄Π½Π°ΠΊΠΎ слСдуСт ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Π° Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠΎΡ€Ρ‚Π° ΠΏΠΎΠ²Π»Π΅Ρ‡Π΅Ρ‚ настройку SELinux, Π° использованиС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° tcp повысит Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы, Ρ‚.ΠΊ. ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доставки tcp-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΡƒΠΆΠ΅ выполняСтся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ инкапсулированных Π² Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

**Если аутСнтификация Π² AD Π½Π΅ Π½ΡƒΠΆΠ½Π°, Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡ…, слСдущий Ρ€Π°Π·Π΄Π΅Π» β€” пропуститС, Π° Π² шаблонС ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ строку auth-user-pass.

АутСнтификация Π² AD

Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π° Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π² AD.

Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° учСтная запись Π² Π΄ΠΎΠΌΠ΅Π½Π΅ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ рядового ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ°, члСнством Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»:

/etc/openvpn/ldap.conf

ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания

<LDAP>
        URL             "ldap://ldap.abc.ru"
        BindDN          "CN=bindUsr,CN=Users,DC=abc,DC=ru"
        Password        b1ndP@SS
        Timeout         15
        TLSEnable       no
        FollowReferrals yes
</LDAP>
<Authorization>
        BaseDN          "OU=allUsr,DC=abc,DC=ru"
        SearchFilter    "(sAMAccountName=%u)"
        RequireGroup    true
        <Group>
                BaseDN          "OU=myGrp,DC=abc,DC=ru"
                SearchFilter    "(cn=myVPNUsr)"
                MemberAttribute "member"
        </Group>
</Authorization>

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

  • URL Β«ldap://ldap.abc.ruΒ» β€” адрСс ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π΄ΠΎΠΌΠ΅Π½Π°;
  • BindDN Β«CN=bindUsr,CN=Users,DC=abc,DC=ruΒ» β€” каноничСскоС имя для привязки ΠΊ LDAP (Π£Π— β€” bindUsr Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ abc.ru/Users);
  • Password b1ndP@SS β€” ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для привязки;
  • BaseDN Β«OU=allUsr,DC=abc,DC=ruΒ» β€” ΠΏΡƒΡ‚ΡŒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ поиск ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ;
  • BaseDN Β«OU=myGrp,DC=abc,DC=ruΒ» β€” ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ (Π³Ρ€ΡƒΠΏΠΏΠ° myVPNUsr Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ abc.rumyGrp);
  • SearchFilter "(cn=myVPNUsr)" β€” имя Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹.

Запуск ΠΈ диагностика

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ наш сСрвСр:

$ sudo systemctl enable [email protected]
$ sudo systemctl start [email protected]

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° запуска:

systemctl status [email protected]
journalctl -xe
cat /var/log/messages
cat /var/log/openvpn/*log

Выпуск ΠΈ ΠΎΡ‚Π·Ρ‹Π² сСртификата

Π’.ΠΊ. ΠΏΠΎΠΌΠΈΠΌΠΎ самих сСртификатов Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ настройки, ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ всС это Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» профиля. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» Π·Π°Ρ‚Π΅ΠΌ пСрСдаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ импортируСтся Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ OpenVPN. Для этого создадим шаблон настроСк ΠΈ скрипт, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ.

Π’ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ сСртификата (ca.crt) ΠΈ TLS ΠΊΠ»ΡŽΡ‡ (ta.key).

ΠŸΠ΅Ρ€Π΅Π΄ выпуском сСртификатов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ срок дСйствия сСртификатов Π² Ρ„Π°ΠΉΠ»Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². НС слСдуСт Π΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ слишком большим, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ максимум 180 днями.

vim /usr/share/easy-rsa/3/vars

...
export EASYRSA_CERT_EXPIRE=180

vim /usr/share/easy-rsa/3/client/template.ovpn

client
dev tun
proto udp
remote gw.abc.ru 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
verb 3
auth-user-pass

<ca>
-----BEGIN CERTIFICATE-----
PUT YOUR CA CERT (ca.crt) HERE
-----END CERTIFICATE-----
</ca>

key-direction 1
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
PUT YOUR TA KEY (ta.key) HERE
-----END OpenVPN Static key V1-----
</tls-auth>

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ:

  • строки PUT YOUR… мСняСм Π½Π° содСрТимоС своих сСртификатов;
  • Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ remote ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ имя/адрСс своСго шлюза;
  • Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° auth-user-pass ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ внСшнСй Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Π’ домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ мСстС) создаСм скрипт запроса сСртификата ΠΈ создания профиля:

vim ~/make.profile.sh

#!/bin/bash

if [ -z "$1" ] ; then
 echo Missing mandatory client name. Usage: $0 vpn-username
 exit 1
fi

#Set variables
basepath=/usr/share/easy-rsa/3
clntpath=$basepath/client
privpath=$basepath/pki/private
certpath=$basepath/pki/issued
profile=$clntpath/$1.ovpn

#Get current year and lowercase client name
year=`date +%F`
client=${1,,}
echo Processing $year year cert for user/device $client

cd $basepath

if [  -f client/$client* ]; then
    echo "*** ERROR! ***"
    echo "Certificate $client already issued!"
    echo "*** ERROR! ***"
    exit 1
fi

. ./vars
./easyrsa --batch --req-cn=$client gen-req $client nopass
./easyrsa --batch sign-req client $client

#Make profile
cp $clntpath/template.ovpn $profile

echo "<key>" >> $profile
cat $privpath/$1.key >> $profile
echo "</key>" >> $profile

echo -e "n" >> $profile
openssl x509 -in $certpath/$1.crt -out $basepath/$1.crt

echo "<cert>" >> $profile
cat $basepath/$1.crt >> $profile
echo "</cert>" >> $profile
echo -e "n" >> $profile

#remove tmp file
rm -f $basepath/$1.crt

echo Complete. See $profile file.

cd ~

Π”Π΅Π»Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» исполняСмым:

chmod a+x ~/make.profile.sh

И ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ наш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сСртификат.

~/make.profile.sh my-first-user

ΠžΡ‚Π·Ρ‹Π²

Π’ случаС ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ сСртификата (утСря, ΠΊΡ€Π°ΠΆΠ°) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΎΠ·Π²Π°Ρ‚ΡŒ этот сСртификат:

cd /usr/share/easy-rsa/3/
./easyrsa revoke my-first-user
./easyrsa gen-crl

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π²Ρ‹Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚ΠΎΠ·Π²Π°Π½Π½Ρ‹Ρ… сСртификатов

Для просмотра Π²Ρ‹Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚ΠΎΠ·Π²Π°Π½Π½Ρ‹Ρ… сСртификатов достаточно ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ индСксный Ρ„Π°ΠΉΠ»:

cd /usr/share/easy-rsa/3/
cat pki/index.txt

ПояснСния:

  • ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкой ΠΈΠ΄Π΅Ρ‚ сСртификат сСрвСра;
  • ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ
    • V (Valid) β€” Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ;
    • R (Revoked) β€” ΠΎΡ‚ΠΎΠ·Π²Π°Π½Π½Ρ‹ΠΉ.

Настройка сСти

ПослСдниС шаги β€” настройка сСти ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ β€” ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ мСТсСтСвых экранов.

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² локальном брандмауэрС:

$ sudo firewall-cmd --add-service=openvpn
$ sudo firewall-cmd --add-service=openvpn --permanent

Π”Π°Π»Π΅Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ IP Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°:

$ sudo sysctl net.ipv4.ip_forward=1
$ sudo echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/50-sysctl.conf

Π’ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ срСдС навСрняка сущСствуСт Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° подсСти ΠΈ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρƒ (-Π°ΠΌ), ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, адрСсованныС нашим VPN ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ. Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° ΠΌΠ°Π½Π΅Ρ€ (зависит ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ оборудования):

# ip route 172.16.20.0 255.255.254.0 172.16.19.123

ΠΈ сохраняСм ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.

Помимо этого Π½Π° интСрфСйсС ΠΏΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°, Π³Π΄Π΅ обслуТиваСтся внСшний адрСс gw.abc.ru, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² udp/1194.

Π’ случаС, Ссли Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ строгиС ΠΏΡ€Π°Π²ΠΈΠ»Π° бСзопасности, Π½Π° нашСм VPN сСрвСрС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ мСТсСтСвой экран. На ΠΌΠΎΠΉ взгляд, Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π΄Π°Π΅Ρ‚ настройка iptables Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ FORWARD, хотя Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠ΅Π½Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ. НСмного ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΈΡ… настройкС. Для этого ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ «прямыС ΠΏΡ€Π°Π²ΠΈΠ»Π°Β» β€” direct rules, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/firewalld/direct.xml. Π”Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΏΡ€Π°Π²ΠΈΠ» ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

$ sudo firewall-cmd --direct --get-all-rule

ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° сдСлайтС Π΅Π³ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию:

cp /etc/firewalld/direct.xml /etc/firewalld/direct.xml.`date +%F.%T`.bak

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ содСрТимоС Ρ„Π°ΠΉΠ»Π° Ρ‚Π°ΠΊΠΎΠ²ΠΎ:

<?xml version="1.0" encoding="utf-8"?>
<direct>
 <!--Common Remote Services-->
  <!--DNS-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o ens192 -p udp --dport 53 -j ACCEPT</rule>
  <!--web-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.200 --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.201 --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
  <!--Some Other Systems-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p udp -d 172.16.19.100 --dport 7000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
  <!--just logging-->
    <rule priority="1" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -j LOG --log-prefix 'forward_fw '</rule>
</direct>

ПояснСния

По сущСству это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° iptables, ΠΈΠ½Π°Ρ‡Π΅ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ послС появлСния firewalld.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ назначСния ΠΏΡ€ΠΈ настройках ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ tun0, Π° внСшний для туннСля ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‹ΠΌ, Π½Π°ΠΏΡ€., ens192, Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

ПослСдняя строка ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Турналирования ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ firewalld Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ:

vim /etc/sysconfig/firewalld
FIREWALLD_ARGS=--debug=2

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ настроСк β€” обычная ΠΊΠΎΠΌΠ°Π½Π΄Π° firewalld для пСрСчитывания настроСк:

$ sudo firewall-cmd --reload

ΠžΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

grep forward_fw /var/log/messages

Π§Ρ‚ΠΎ дальшС

На этом настройка Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°!

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ клиСнтскоС ПО, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ. Для ОБ Ρ‚ΠΈΠΏΠ° Windows дистрибутив Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π½Π° сайтС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ наш Π½ΠΎΠ²Ρ‹ΠΉ сСрвСр ΠΊ систСмам ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ†ΠΈΠΈ, ΠΈ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ рСгулярно ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ обновлСния.

Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚Π°!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ