OpenVPN рд╡рд░ SMB рд╕рдВрд╕реНрдереЗрдЪреНрдпрд╛ рд░рд┐рдореЛрдЯ рд╡рд░реНрдХрдЪреА рд╕рдВрд╕реНрдерд╛

рд╕рдорд╕реНрдпреЗрдЪреА рдирд┐рд░реНрдорд┐рддреА

рд▓реЗрдЦ рдУрдкрди рд╕реЛрд░реНрд╕ рдЙрддреНрдкрд╛рджрдирд╛рдВрд╡рд░ рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрд╕рд╛рдареА рд░рд┐рдореЛрдЯ рдНрдХреНрд╕реЗрд╕рдЪреНрдпрд╛ рд╕рдВрд╕реНрдереЗрдЪреЗ рд╡рд░реНрдгрди рдХрд░рддреЛ рдЖрдгрд┐ рдкреВрд░реНрдгрдкрдгреЗ рд╕реНрд╡рд╛рдпрддреНрдд рдкреНрд░рдгрд╛рд▓реА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЛрдиреНрд╣реА рд╡рд╛рдкрд░рддрд╛ рдпреЗрдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рд╡рд┐рджреНрдпрдорд╛рди рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ рдкрд░рд╡рд╛рдиреНрдпрд╛рдВрдЪреА рдХрдорддрд░рддрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдкреБрд░реА рдЕрд╕рддрд╛рдирд╛ рд╡рд┐рд╕реНрддрд╛рд░рд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓.

рд▓реЗрдЦрд╛рдЪреЗ рдЙрджреНрджрд┐рд╖реНрдЯ рдПрдЦрд╛рджреНрдпрд╛ рд╕рдВрд╕реНрдереЗрд▓рд╛ рджреВрд░рд╕реНрде рдкреНрд░рд╡реЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдгрд╛рд▓реА рд▓рд╛рдЧреВ рдХрд░рдгреЗ рдЖрд╣реЗ, рдЬреЗ "10 рдорд┐рдирд┐рдЯрд╛рдВрдд OpenVPN рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ" рдкреЗрдХреНрд╖рд╛ рдереЛрдбреЗ рдЕрдзрд┐рдХ рдЖрд╣реЗ.

рдкрд░рд┐рдгрд╛рдореА, рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдорд┐рд│реЗрд▓ рдЬреНрдпрд╛рдордзреНрдпреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рдЖрдгрд┐ (рдкрд░реНрдпрд╛рдпреА) рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдкреНрд░рдорд╛рдгреАрдХреГрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдИрд▓. рддреЗ. рдЖрдореНрд╣рд╛рд▓рд╛ рджреЛрди рд╕рддреНрдпрд╛рдкрди рдШрдЯрдХрд╛рдВрд╕рд╣ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдорд┐рд│реЗрд▓ - рдорд╛рдЭреНрдпрд╛рдХрдбреЗ рдХрд╛рдп рдЖрд╣реЗ (рдкреНрд░рдорд╛рдгрдкрддреНрд░) рдЖрдгрд┐ рдорд▓рд╛ рдХрд╛рдп рдорд╛рд╣рд┐рдд рдЖрд╣реЗ (рдкрд╛рд╕рд╡рд░реНрдб).

рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдЕрдиреБрдорддреА рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рдЪрд┐рдиреНрд╣ рдореНрд╣рдгрдЬреЗ рддреНрдпрд╛рдВрдЪреА myVPNUsr рдЧрдЯрд╛рддреАрд▓ рд╕рджрд╕реНрдпрддреНрд╡. рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдСрдлрд▓рд╛рдЗрди рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдИрд▓.

рд╕реЛрд▓реНрдпреВрд╢рдирдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рдЪреА рдХрд┐рдВрдордд рдлрдХреНрдд рд▓рд╣рд╛рди рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХрд╛рдЪреЗ 1 рддрд╛рд╕ рдХрд╛рдо рдЖрд╣реЗ.

рдЖрдореНрд╣реА CetntOS 3 рд╡рд░ OpenVPN рдЖрдгрд┐ Easy-RSA рдЖрд╡реГрддреНрддреА 7 рд╕рд╣ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рд╡рд╛рдкрд░реВ, рдЬреНрдпрд╛рд▓рд╛ 100 vCPUs рдЖрдгрд┐ 4 GiB RAM рдкреНрд░рддрд┐ 4 рдХрдиреЗрдХреНрд╢рди рджрд┐рд▓реЗ рдЬрд╛рддрд╛рдд.

рдЙрджрд╛рд╣рд░рдгрд╛рдд, рдЖрдордЪреНрдпрд╛ рд╕рдВрд╕реНрдереЗрдЪреЗ рдиреЗрдЯрд╡рд░реНрдХ 172.16.0.0/16 рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ 172.16.19.123 рдкрддреНрддрд╛ рдЕрд╕рд▓реЗрд▓рд╛ VPN рд╕рд░реНрд╡реНрд╣рд░ 172.16.19.0/24, DNS рд╕рд░реНрд╡реНрд╣рд░ 172.16.16.16 рдЖрдгрд┐ 172.16.17.17 рдЖрдгрд┐ рдЙрдк. .172.16.20.0/23 VPN рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╛рдареА рд╡рд╛рдЯрдк рдХреЗрд▓реЗ рдЖрд╣реЗ.

рдмрд╛рд╣реЗрд░реВрди рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдкреЛрд░реНрдЯ 1194/udp рджреНрд╡рд╛рд░реЗ рдХрдиреЗрдХреНрд╢рди рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА DNS рдордзреНрдпреЗ рдПрдХ A-рд░реЗрдХреЙрд░реНрдб gw.abc.ru рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.

SELinux рдЕрдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА! OpenVPN рд╕реБрд░рдХреНрд╖рд╛ рдзреЛрд░рдгреЗ рдЕрдХреНрд╖рдо рди рдХрд░рддрд╛ рдХрд╛рд░реНрдп рдХрд░рддреЗ.

рд╕рд╛рдордЧреНрд░реА

  1. OS рдЖрдгрд┐ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдЪреА рд╕реНрдерд╛рдкрдирд╛
  2. рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ
  3. OpenVPN рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдд рдЖрд╣реЗ
  4. AD рдкреНрд░рдорд╛рдгреАрдХрд░рдг
  5. рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЖрдгрд┐ рдирд┐рджрд╛рди
  6. рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдгреЗ рдЖрдгрд┐ рд░рджреНрдж рдХрд░рдгреЗ
  7. рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди
  8. рдкреБрдвреЗ рдХрд╛рдп

OS рдЖрдгрд┐ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдЪреА рд╕реНрдерд╛рдкрдирд╛

рдЖрдореНрд╣реА CentOS 7.8.2003 рд╡рд┐рддрд░рдг рд╡рд╛рдкрд░рддреЛ. рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд┐рдорд╛рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ OS рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╡рд╛рдкрд░реВрди рд╣реЗ рдХрд░рдгреЗ рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ рдХрд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ, рдкреВрд░реНрд╡реА рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ OS рдкреНрд░рддрд┐рдорд╛ рдЖрдгрд┐ рдЗрддрд░ рдорд╛рдзреНрдпрдорд╛рдВрдЪреЗ рдХреНрд▓реЛрдирд┐рдВрдЧ.

рд╕реНрдерд╛рдкрдиреЗрдирдВрддрд░, рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕рд▓рд╛ рдкрддреНрддрд╛ рдирд┐рдпреБрдХреНрдд рдХрд░рдгреЗ (рдЯрд╛рд╕реНрдХ 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

рдПрдмреАрд╕реА рдПрд▓рдПрд▓рд╕реА рдпрд╛ рд╕рд╢рд░реНрдд рд╕рдВрд╕реНрдереЗрдЪреНрдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдЪреЗ рдпреЗрдереЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ; рддреБрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддреЗрдордзреНрдпреЗ рджреБрд░реБрд╕реНрдд рдХрд░реВ рд╢рдХрддрд╛ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдВрдирд╛ рдЙрджрд╛рд╣рд░рдгрд╛рд╡рд░реВрди рд╕реЛрдбреВ рд╢рдХрддрд╛. рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдордзреАрд▓ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрд╡рд╛рдЪреА рдЧреЛрд╖реНрдЯ рд╣реА рд╢реЗрд╡рдЯрдЪреА рдУрд│ рдЖрд╣реЗ, рдЬреА рджрд┐рд╡рд╕рд╛рдВрдордзреНрдпреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рдЪреА рд╡реИрдзрддрд╛ рдХрд╛рд▓рд╛рд╡рдзреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ. рдЙрджрд╛рд╣рд░рдг 10 рд╡рд░реНрд╖реЗ (365*10+2 рд▓реАрдк рд╡рд░реНрд╖реЗ) рдореВрд▓реНрдп рд╡рд╛рдкрд░рддреЗ. рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рдЬрд╛рд░реА рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╣реЗ рдореВрд▓реНрдп рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдкреБрдвреЗ, рдЖрдореНрд╣реА рд╕реНрд╡рд╛рдпрддреНрдд рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рддреЛ.

рд╕реЗрдЯрдЕрдкрдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдЪреА рдирд┐рд░реНрдпрд╛рдд рдХрд░рдгреЗ, CA рд╕реБрд░реВ рдХрд░рдгреЗ, CA рд░реВрдЯ рдХреА рдЖрдгрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдгреЗ, Diffie-Hellman рдХреА, TLS рдХреА рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░ рдХреА рдЖрдгрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. CA рдХреА рдХрд╛рд│рдЬреАрдкреВрд░реНрд╡рдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рдЖрдгрд┐ рдЧреБрдкреНрдд рдареЗрд╡рд▓реА рдкрд╛рд╣рд┐рдЬреЗ! рд╕рд░реНрд╡ рдХреНрд╡реЗрд░реА рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдбреАрдлреЙрд▓реНрдЯ рдореНрд╣рдгреВрди рд╕реЛрдбрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд.

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 рд╕рд░реНрд╡реНрд╣рд░ рдЕрд╕реВ рд╢рдХрддрд╛рдд;
  • AD** рдордзреНрдпреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╢реЗрд╡рдЯрдЪреНрдпрд╛ 2 рдУрд│реА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд.

*рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рдкрддреНрддреНрдпрд╛рдВрдЪреА рд╢реНрд░реЗрдгреА 127 рдХреНрд▓рд╛рдпрдВрдЯреНрд╕рдирд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдХрдиреЗрдХреНрдЯ рд╣реЛрдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓, рдХрд╛рд░рдг /23 рдиреЗрдЯрд╡рд░реНрдХ рдирд┐рд╡рдбрд▓реЗ рдЖрд╣реЗ, рдЖрдгрд┐ OpenVPN рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╛рдареА /30 рдорд╛рд╕реНрдХ рд╡рд╛рдкрд░реВрди рд╕рдмрдиреЗрдЯ рддрдпрд╛рд░ рдХрд░рддреЗ.
рд╡рд┐рд╢реЗрд╖рддрдГ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рдкреЛрд░реНрдЯ рдЖрдгрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрджрд▓рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рддрдерд╛рдкрд┐, рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдХреА рдкреЛрд░реНрдЯ рдкреЛрд░реНрдЯ рдирдВрдмрд░ рдмрджрд▓рд▓реНрдпрд╛рд╕ SELinux рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ tcp рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╛рдкрд░рд▓реНрдпрд╛рдиреЗ рдУрд╡реНрд╣рд░рд╣реЗрдб рд╡рд╛рдвреЗрд▓, рдХрд╛рд░рдг TCP рдкреЕрдХреЗрдЯ рд╡рд┐рддрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдмреЛрдЧрджреНрдпрд╛рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреЕрдХреЗрдЯрдЪреНрдпрд╛ рд╕реНрддрд░рд╛рд╡рд░ рдЖрдзреАрдЪ рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

**рдПрдбреА рдордзреНрдпреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рд▓реНрдпрд╛рд╕, рддреНрдпрд╛рд╡рд░ рдЯрд┐рдкреНрдкрдгреА рджреНрдпрд╛, рдкреБрдвреАрд▓ рд╡рд┐рднрд╛рдЧ рд╡рдЧрд│рд╛ рдЖрдгрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯрдордзреНрдпреЗ auth-user-рдкрд╛рд╕ рдУрд│ рдХрд╛рдврд╛.

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 рд▓рд╛ рдмрдВрдзрдирдХрд╛рд░рдХ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдирд╛рд╡ (UZ - abc.ru/Users рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ bindUsr);
  • рдкрд╛рд╕рд╡рд░реНрдб b1ndP@SS тАФ рдмрдВрдзрдирдХрд╛рд░рдХ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕рдВрдХреЗрддрд╢рдмреНрдж;
  • BaseDN тАЬOU=allUsr,DC=abc,DC=ruтАЭ тАФ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪрд╛ рд╢реЛрдз рд╕реБрд░реВ рдХрд░рд╛рдпрдЪрд╛ рдорд╛рд░реНрдЧ;
  • BaseDN тАЬOU=myGrp,DC=abc,DC=ruтАЭ тАУ рдкрд░рд╡рд╛рдирдЧреА рджреЗрдгрд╛рд▒реНрдпрд╛ рдЧрдЯрд╛рдЪрд╛ рдХрдВрдЯреЗрдирд░ (abc.rumyGrp рдХрдВрдЯреЗрдирд░рдордзреАрд▓ myVPNUsr рдЧрдЯ);
  • 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) рдлрд╛рдЗрд▓реНрд╕рдЪреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░реЛрдлрд╛рдЗрд▓рдордзреНрдпреЗ рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рдЬрд╛рд░реА рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рдВрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рд╡реИрдзрддрд╛ рдХрд╛рд▓рд╛рд╡рдзреА рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕ рд╡рд┐рд╕рд░реВ рдирдХрд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдлрд╛рдЗрд▓рдордзреНрдпреЗ. рддреБрдореНрд╣реА рддреЗ рдЬрд╛рд╕реНрдд рд▓рд╛рдВрдм рдХрд░реВ рдирдпреЗ; рдореА рд╕реНрд╡рддрдГрд▓рд╛ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд резреореж рджрд┐рд╡рд╕рд╛рдВрдкрд░реНрдпрдВрдд рдорд░реНрдпрд╛рджрд┐рдд рдареЗрд╡рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ.

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>

рдЯрд┐рдкрд╛:

  • рддрд╛рд░ рддреБрдордЪреЗ рдареЗрд╡рд╛... рд╕рд╛рдордЧреНрд░реАрдордзреНрдпреЗ рдмрджрд▓ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ;
  • рд░рд┐рдореЛрдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдордзреНрдпреЗ, рддреБрдордЪреНрдпрд╛ рдЧреЗрдЯрд╡реЗрдЪреЗ рдирд╛рд╡/рдкрддреНрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛;
  • 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

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг:

  • рдкрд╣рд┐рд▓реА рдУрд│ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрд╣реЗ;
  • рдкрд╣рд┐рд▓реЗ рд╡рд░реНрдг
    • рд╡реНрд╣реА (рд╡реИрдз) - рд╡реИрдз;
    • рдЖрд░ (рд░рджреНрдж рдХреЗрд▓реЗрд▓реЗ) - рдкрд░рдд рдмреЛрд▓рд╛рд╡рд▓реЗ.

рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди

рд╢реЗрд╡рдЯрдЪреА рдкрд╛рдпрд░реА рдореНрд╣рдгрдЬреЗ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ - рд░реВрдЯрд┐рдВрдЧ рдЖрдгрд┐ рдлрд╛рдпрд░рд╡реЙрд▓.

рд╕реНрдерд╛рдирд┐рдХ рдлрд╛рдпрд░рд╡реЙрд▓рдордзреНрдпреЗ рдХрдиреЗрдХреНрд╢рдирд▓рд╛ рдЕрдиреБрдорддреА рджреЗрдгреЗ:

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

рдкреБрдвреЗ, рдЖрдпрдкреА рдЯреНрд░реЕрдлрд┐рдХ рд░рд╛рдЙрдЯрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рд╛:

$ 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 рдЪреЗрди рд╕реЗрдЯ рдХрд░реВрди рд╕рд░реНрд╡рд╛рдд рдореЛрдареА рд▓рд╡рдЪрд┐рдХрддрд╛ рдкреНрд░рджрд╛рди рдХреЗрд▓реА рдЬрд╛рддреЗ, рдЬрд░реА рддреНрдпрд╛рдВрдирд╛ рд╕реЗрдЯ рдХрд░рдгреЗ рдХрдореА рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ. рддреНрдпрд╛рдВрдирд╛ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рдмрджреНрджрд▓ рдереЛрдбреЗ рдЕрдзрд┐рдХ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, "рдереЗрдЯ рдирд┐рдпрдо" рд╡рд╛рдкрд░рдгреЗ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ - рдереЗрдЯ рдирд┐рдпрдо, рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд /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, рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдЕрд╡рд▓рдВрдмреВрди.

рд╢реЗрд╡рдЯрдЪреА рдУрд│ рдЯрд╛рдХрд▓реЗрд▓реА рдкреЕрдХреЗрдЯ рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╣реЗ. рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдлрд╛рдпрд░рд╡реЙрд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреАрд▓ рдбреАрдмрдЧ рдкрд╛рддрд│реА рдмрджрд▓рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ:

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

рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдкреБрдиреНрд╣рд╛ рд╡рд╛рдЪрдгреНрдпрд╛рд╕рд╛рдареА рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд▓рд╛рдЧреВ рдХрд░рдгреЗ рд╣реА рдиреЗрд╣рдореАрдЪреА рдлрд╛рдпрд░рд╡реЙрд▓ рдХрдорд╛рдВрдб рдЖрд╣реЗ:

$ sudo firewall-cmd --reload

рддреБрдореНрд╣реА рдЦрд╛рд▓реА рдкрдбрд▓реЗрд▓реА рдкреЕрдХреЗрдЯ рдпрд╛рдкреНрд░рдорд╛рдгреЗ рдкрд╛рд╣реВ рд╢рдХрддрд╛:

grep forward_fw /var/log/messages

рдкреБрдвреЗ рдХрд╛рдп

рд╣реЗ рд╕реЗрдЯрдЕрдк рдкреВрд░реНрдг рдХрд░рддреЗ!

рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рдмрд╛рдЬреВрд▓рд╛ рдХреНрд▓рд╛рдпрдВрдЯ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ, рдкреНрд░реЛрдлрд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдХрдиреЗрдХреНрдЯ рдХрд░рдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ. рд╡рд┐рдВрдбреЛрдЬ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА, рд╡рд┐рддрд░рдг рдХрд┐рдЯ рд╡рд░ рд╕реНрдерд┐рдд рдЖрд╣реЗ рд╡рд┐рдХрд╕рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ.

рд╢реЗрд╡рдЯреА, рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдирд╡реАрди рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЖрдгрд┐ рд╕рдВрдЧреНрд░рд╣рдг рдкреНрд░рдгрд╛рд▓реАрд╢реА рдЬреЛрдбрддреЛ рдЖрдгрд┐ рдирд┐рдпрдорд┐рддрдкрдгреЗ рдЕрджреНрдпрддрдиреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рд╡рд┐рд╕рд░реВ рдирдХрд╛.

рд╕реНрдерд┐рд░ рдХрдиреЗрдХреНрд╢рди!

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛