OpenVPN рдорд╛ SMB рд╕рдВрдЧрдардирдХреЛ рдЯрд╛рдврд╛рдХреЛ рдХрд╛рдордХреЛ рд╕рдВрдЧрдарди

рд╕рдорд╕реНрдпрд╛рдХреЛ рдЧрдарди

рд▓реЗрдЦрд▓реЗ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЙрддреНрдкрд╛рджрдирд╣рд░реВрдорд╛ рдХрд░реНрдордЪрд╛рд░реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд░рд┐рдореЛрдЯ рдкрд╣реБрдБрдЪрдХреЛ рд╕рдВрдЧрдардирдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕реНрд╡рд╛рдпрддреНрдд рдкреНрд░рдгрд╛рд▓реА рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рджреБрд╡реИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рдЕрд╡рд╕реНрдерд┐рдд рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдЗрдЬрд╛рдЬрддрдкрддреНрд░рд╣рд░реВрдХреЛ рдХрдореА рд╣реБрдБрджрд╛ рд╡рд╛ рдпрд╕рдХреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реБрдБрджрд╛ рд╡рд┐рд╕реНрддрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рд╣реБрдиреЗрдЫред

рд▓реЗрдЦрдХреЛ рд▓рдХреНрд╖реНрдп рднрдиреЗрдХреЛ рд╕рдВрд╕реНрдерд╛рдорд╛ рд░рд┐рдореЛрдЯ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рдкреНрд░рдгрд╛рд▓реА рд▓рд╛рдЧреВ рдЧрд░реНрдиреБ рд╣реЛ, рдЬреБрди "резреж рдорд┐рдиреЗрдЯрдорд╛ 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 рд░ sub,172.16.20.0 рдЦрдгреНрдбрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫред .23/XNUMX VPN рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЫреБрдЯреНрдпрд╛рдЗрдПрдХреЛ рдЫред

рдмрд╛рд╣рд┐рд░рдмрд╛рдЯ рдЬрдбрд╛рди рдЧрд░реНрди, рдкреЛрд░реНрдЯ 1194/udp рдорд╛рд░реНрдлрдд рдЬрдбрд╛рди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рд░ рд╣рд╛рдореНрд░реЛ рд╕рд░реНрднрд░рдХреЛ рд▓рд╛рдЧрд┐ DNS рдорд╛ A-рд░реЗрдХрд░реНрдб gw.abc.ru рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред

SELinux рд▓рд╛рдИ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди рдХрдбрд╛рдЗрдХрд╛ рд╕рд╛рде рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди! OpenVPN рд▓реЗ рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐рд╣рд░реВ рдЕрд╕рдХреНрд╖рдо рдирдЧрд░реА рдХрд╛рдо рдЧрд░реНрджрдЫред

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

  1. рдУрдПрд╕ рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдХреЛ рд╕реНрдерд╛рдкрдирд╛
  2. рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ
  3. OpenVPN рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ
  4. AD рдкреНрд░рдорд╛рдгреАрдХрд░рдг
  5. рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд░ рдирд┐рджрд╛рди
  6. рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдореБрджреНрджрд╛ рд░ рдЦрд╛рд░реЗрдЬ
  7. рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрдЕрдк
  8. рдЕрдм рдХреЗ

рдУрдПрд╕ рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдХреЛ рд╕реНрдерд╛рдкрдирд╛

рд╣рд╛рдореА CentOS 7.8.2003 рд╡рд┐рддрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред рд╣рд╛рдореАрд▓реЗ OS рд▓рд╛рдИ рдиреНрдпреВрдирддрдо рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рдЧрд░реНрди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ рд╕реБрд░реБрд╡рд╛рдд, рдкрд╣рд┐рд▓реЗ рд╕реНрдерд╛рдкрд┐рдд OS рдЫрд╡рд┐ рд░ рдЕрдиреНрдп рдорд╛рдзреНрдпрдорд╣рд░реВ рдХреНрд▓реЛрдирд┐рдЩред

рд╕реНрдерд╛рдкрдирд╛ рдкрдЫрд┐, рдиреЗрдЯрд╡рд░реНрдХ рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ рдареЗрдЧрд╛рдирд╛ рдЕрд╕рд╛рдЗрди рдЧрд░реНрджреИ (рдХрд╛рд░реНрдп 172.16.19.123 рдХреЛ рд╕рд░реНрддрд╣рд░реВ рдЕрдиреБрд╕рд╛рд░), рд╣рд╛рдореА OS рдЕрдкрдбреЗрдЯ рдЧрд░реНрдЫреМрдВ:

$ 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

рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ

рд╕рдЬрд┐рд▓реЛ-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 LLC рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдкрджрдгреНрдбрд╣рд░реВ рдпрд╣рд╛рдБ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ; рддрдкрд╛рдИрдВ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдорд╛ рд╕рдЪреНрдпрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЙрджрд╛рд╣рд░рдгрдмрд╛рдЯ рдЫреЛрдбреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХреБрд░рд╛ рдЕрдиреНрддрд┐рдо рд░реЗрдЦрд╛ рд╣реЛ, рдЬрд╕рд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░рдХреЛ рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐ рджрд┐рдирд╣рд░реВрдорд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫред рдЙрджрд╛рд╣рд░рдгрд▓реЗ рдорд╛рди резреж рд╡рд░реНрд╖ (рейремрел*резреж+реи рд▓реАрдк рд╡рд░реНрд╖) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдЧрд░реНрдиреБ рдЕрдШрд┐ рдпреЛ рдорд╛рди рд╕рдорд╛рдпреЛрдЬрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫред

рдЕрд░реНрдХреЛ, рд╣рд╛рдореА рдПрдХ рд╕реНрд╡рд╛рдпрддреНрдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдЫреМрдВред

рд╕реЗрдЯрдЕрдкрд▓реЗ рдЪрд░рд╣рд░реВ рдирд┐рд░реНрдпрд╛рдд рдЧрд░реНрдиреЗ, 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 рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН, рд╕реЗрд╡рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рд╕рдЬрд┐рд▓реЛ-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** рдорд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд▓рд╛рдЧреВ рдЧрд░реНрди рдЕрдиреНрддрд┐рдо реи рд░реЗрдЦрд╛рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдЫрдиреНред

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

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

рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ:

  • рддрд╛рд░ рдЖрдлреНрдиреЛ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН... рд╕рд╛рдордЧреНрд░реАрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЙрдиреАрд╣рд░реВрдХреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ;
  • рд░рд┐рдореЛрдЯ рдирд┐рд░реНрджреЗрд╢рдирдорд╛, рддрдкрд╛рдИрдВрдХреЛ рдЧреЗрдЯрд╡реЗрдХреЛ рдирд╛рдо/рдареЗрдЧрд╛рдирд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • 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 (рд╡реИрдз) - рдорд╛рдиреНрдп;
    • рдЖрд░ (рд░рджреНрдж рдЧрд░рд┐рдПрдХреЛ) - рдлрд┐рд░реНрддрд╛ рдмреЛрд▓рд╛рдЗрдПрдХреЛред

рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрдЕрдк

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

рд╕реНрдерд╛рдиреАрдп рдлрд╛рдпрд░рд╡рд╛рд▓рдорд╛ рдЬрдбрд╛рдирд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИ:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди