OpenVPN рдкрд░ рдПрдХ SMB рд╕рдВрдЧрдарди рдХреЗ рджреВрд░рд╕реНрде рдХрд╛рд░реНрдп рдХрд╛ рд╕рдВрдЧрдарди

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдирд┐рд░реВрдкрдг

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

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

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓реЗрдЧреА рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдФрд░ (рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ) рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡рд╣ред рд╣рдореЗрдВ рджреЛ рд╕рддреНрдпрд╛рдкрди рдХрд╛рд░рдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓реЗрдЧреА - рдореЗрд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ (рдкреНрд░рдорд╛рдгрдкрддреНрд░) рдФрд░ рдореБрдЭреЗ рдХреНрдпрд╛ рдкрддрд╛ рд╣реИ (рдкрд╛рд╕рд╡рд░реНрдб)ред

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

рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рдХреЗрд╡рд▓ рдЫреЛрдЯреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдВрд╕рд╛рдзрди рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдХреЗ 1 рдШрдВрдЯреЗ рдХреЗ рдХрд╛рдо рдХреА рд╣реИред

рд╣рдо CetntOS 3 рдкрд░ OpenVPN рдФрд░ Easy-RSA рд╕рдВрд╕реНрдХрд░рдг 7 рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдкреНрд░рддрд┐ 100 рдХрдиреЗрдХреНрд╢рди рдкрд░ 4 vCPU рдФрд░ 4 GiB RAM рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдорд╛рд░реЗ рд╕рдВрдЧрдарди рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ 172.16.0.0/16 рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 172.16.19.123 рдкрддреЗ рд╡рд╛рд▓рд╛ рд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░ рдЦрдВрдб 172.16.19.0/24, рдбреАрдПрдирдПрд╕ рд╕рд░реНрд╡рд░ 172.16.16.16 рдФрд░ 172.16.17.17 рдФрд░ рд╕рдмрдиреЗрдЯ 172.16.20.0 рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рд╡реАрдкреАрдПрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП .23/XNUMX рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

SELinux рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдХрдбрд╝рд╛рдИ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ! OpenVPN рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

  1. рдУрдПрд╕ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛
  2. рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдХреА рд╕реНрдерд╛рдкрдирд╛
  3. OpenVPN рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
  4. рд╡рд┐рдЬреНрдЮрд╛рдкрди рдкреНрд░рдорд╛рдгреАрдХрд░рдг
  5. рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдФрд░ рдирд┐рджрд╛рди
  6. рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдирд╛ рдФрд░ рд░рджреНрдж рдХрд░рдирд╛
  7. рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рдиреНрдпрд╛рд╕
  8. рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ

рдУрдПрд╕ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛

рд╣рдо CentOS 7.8.2003 рд╡рд┐рддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдиреНрдпреВрдирддрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ 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 рд▓реАрдк рд╡рд░реНрд╖) рдХреЗ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдорд╛рди рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рд╕реНрд╡рд╛рдпрддреНрдд рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред

рд╕реЗрдЯрдЕрдк рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛, рд╕реАрдП рдХреЛ рдЖрд░рдВрдн рдХрд░рдирд╛, рд╕реАрдП рд░реВрдЯ рдХреБрдВрдЬреА рдФрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдирд╛, рдбрд┐рдлреА-рд╣реЗрд▓рдореИрди рдХреБрдВрдЬреА, рдЯреАрдПрд▓рдПрд╕ рдХреБрдВрдЬреА рдФрд░ рд╕рд░реНрд╡рд░ рдХреБрдВрдЬреА рдФрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╕реАрдП рдХреБрдВрдЬреА рдХреЛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рдФрд░ рдЧреБрдкреНрдд рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП! рд╕рднреА рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдУрд╡рд░рд╣реЗрдб рдмрдврд╝ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЯреАрд╕реАрдкреА рдкреИрдХреЗрдЯ рд╡рд┐рддрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реБрд░рдВрдЧ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рдкреИрдХреЗрдЯреЛрдВ рдХреЗ рд╕реНрддрд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

**рдпрджрд┐ 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>

рдореБрдЦреНрдп рдкреИрд░рд╛рдореАрдЯрд░:

  • рдпреВрдЖрд░рдПрд▓ "ldap://ldap.abc.ru" - рдбреЛрдореЗрди рдирд┐рдпрдВрддреНрд░рдХ рдкрддрд╛;
  • рдмрд╛рдЗрдВрдбрдбреАрдПрди "CN=bindUsr,CN=Users,DC=abc,DC=ru" - рдПрд▓рдбреАрдПрдкреА рд╕реЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╣рд┐рдд рдирд╛рдо (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) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ. рдЖрдкрдХреЛ рдЗрд╕реЗ рдмрд╣реБрдд рд▓рдВрдмрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП; рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЕрдзрд┐рдХрддрдо 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>

рдиреЛрдЯ:

  • рдкрдВрдХреНрддрд┐рдпрд╛рдВ рдЕрдкрдирд╛ рдбрд╛рд▓реЗрдВ... рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдмрджрд▓реЗрдВ рдЖрдЧ рдкреНрд░рдорд╛рдгрдкрддреНрд░;
  • рджреВрд░рд╕реНрде рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ, рдЕрдкрдиреЗ рдЧреЗрдЯрд╡реЗ рдХрд╛ рдирд╛рдо/рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ;
  • рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рд╣рд░реА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдСрде-рдпреВрдЬрд╝рд░-рдкрд╛рд╕ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣реЛрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдпрд╛ рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реНрдерд╛рди) рдореЗрдВ рд╣рдо рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдФрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ:

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

рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рд╕рдмрдиреЗрдЯрд┐рдВрдЧ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рд░рд╛рдЙрдЯрд░ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд╡реАрдкреАрдПрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЯ рдХреИрд╕реЗ рднреЗрдЬреЗрдВред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╣рдо рдХрдорд╛рдВрдб рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдЙрдкрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░):

# ip route 172.16.20.0 255.255.254.0 172.16.19.123

рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рд╣реЗрдЬреЗрдВ.

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмреЙрд░реНрдбрд░ рд░рд╛рдЙрдЯрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдЬрд╣рд╛рдВ рдмрд╛рд╣рд░реА рдкрддрд╛ gw.abc.ru рдкрд░реЛрд╕рд╛ рдЬрд╛рддрд╛ рд╣реИ, udp/1194 рдкреИрдХреЗрдЯ рдХреЗ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

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

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЧрдВрддрд╡реНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ tun0 рд╣реИ, рдФрд░ рд╕реБрд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░, ens192ред

рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдЧрд┐рд░рд╛рдП рдЧрдП рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдХрд╛рдо рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдбрд┐рдмрдЧ рд╕реНрддрд░ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

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

рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХрдорд╛рдВрдб рд╣реИ:

$ sudo firewall-cmd --reload

рдЖрдк рдЧрд┐рд░рд╛рдП рдЧрдП рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

grep forward_fw /var/log/messages

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ

рдпрд╣ рд╕реЗрдЯрдЕрдк рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ!

рдЬреЛ рдХреБрдЫ рдмрдЪрд╛ рд╣реИ рд╡рд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛, рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реИред рд╡рд┐рдВрдбреЛрдЬрд╝ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП, рд╡рд┐рддрд░рдг рдХрд┐рдЯ рд╕реНрдерд┐рдд рд╣реИ рдбреЗрд╡рд▓рдкрд░ рд╕рд╛рдЗрдЯ.

рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдирдП рд╕рд░реНрд╡рд░ рдХреЛ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдФрд░ рдЖрд░реНрдХрд╛рдЗрд╡рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓рддреЗ рд╣реИрдВред

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

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ