рд▓реЗрдЦ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде OpenVPN рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИ:
- рдкреНрд░рд╛рдердорд┐рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЯреЛрдХрди рдкреНрд░рдорд╛рдгрдкрддреНрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд░реБрддреЛрдХрди)
- LDAP рдорд╛рдзреНрдпрдорд┐рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ ActiveDirectory рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдЖрдВрддрд░рд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ (iptables рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)
рдпрд╣ рд▓рд┐рдирдХреНрд╕, рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рдореИрдХрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рднреА рдмрддрд╛рддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рд╕реЗрдЯрдЕрдк
OpenVPN рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рд╕реНрдХреНрд░рд┐рдкреНрдЯ
Nyr / openvpn- рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ , рд░реВрдЯ рд╕реЗ рдЪрд▓рд╛рдПрдВред
git clone https://github.com/Nyr/openvpn-install.git cd openvpn-install
рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреБрдЫ рд╕рд╡рд╛рд▓ рдкреВрдЫреЗрдЧреАред
- udp рдкреНрд░реЛрдЯреЛрдХреЙрд▓
- рдкреЛрд░реНрдЯ 1194
- DNS рд╕рд░реНрд╡рд░ - рд╕реНрдерд╛рдиреАрдп
- рдмрд╛рд╣рд░реА рдЖрдИрдкреА - рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдХрд╛ рдкрддрд╛ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛
рдореВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛-рд╡рд░реНрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реИ -
github.com/Angristan/OpenVPN-install ред рдЗрд╕рдХреА рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдмрдВрдзрди
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛рдпрджрд┐ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдХрд╕реНрдЯрдо ovpn рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рд░реВрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдПрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЯреЛрдХрди рдкрд░ рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ), рддреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдореМрдЬреВрджрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрд╕реА рд╕реЗ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ)ред рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдпрд╣рд╛рдВ
/etc/openvpn/client-common.txt
ред рдпрд╣ рдУрдкреЗрдирд╡реЛрди рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд╛рд╕рдирдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рдЙрд╕реА рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рдорд╛рдгрдкрддреНрд░
CRL рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирдпрд╛ CRL vpn рд╕рд░реНрд╡рд░ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдЙрди рд╕рднреА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ CRL рдореЗрдВ рдЕрдорд╛рдиреНрдп рд╣реИрдВ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдирд┐рд░рд╕реНрдд рдХрд░реЗрдВ:
cd /etc/openvpn/easyrsa # ./easyrsa revoke $CLIENT # crl ./easyrsa gen-crl # crl rm -rf /etc/openvpn/crl.pem # cp /etc/openvpn/easy-rsa/pki/crl.pem /etc/openvpn/crl.pem # openvpn crl, nobody chown nobody:nobody /etc/openvpn/crl.pem
рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдореЗрдЬрдмрд╛рди рдЫрд╛рдирдирд╛
рдореЗрдЬрдмрд╛рдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рд╡реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рд╡реЗ рдУрдкрдирд╡реИрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВред
рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗрдпрд╣ рд╡рд┐рдЪрд╛рд░
tun0
рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░ рднреА рдкреИрдХреЗрдЯ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдПрдирдПрдЯреА рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВред NAT рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ - рд╡реЗ рд╕рднреА рдЖрдВрддрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдПрдХ Openvpn рд╕рд░реНрд╡рд░ рдЖрдИрдкреА рдкрддрд╛ рд╣реЛрдЧрд╛ред NAT рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЯ рдХрд╛ рдЕрдкрдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдИрдкреА-рдкрддрд╛ (IP- рдкрддреЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП,
/etc/openvpn/ipp.txt
рджреЗрдЦреЗрдВ) рд╣реЛрддрд╛ рд╣реИред
рдкреИрдХреЗрдЯ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ (рд╕реАрдзреЗ рд╕реЗ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдирд╣реАрдВ рд╣реИрдВ, рдпрд╛рдиреА, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд░реВрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ) рдлреЙрд░рд╡рд░реНрдб рдЯреЗрдмрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред Iptables рдореЗрдВ рдЯреЗрдмрд▓реНрд╕ рдХреЛ рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЛрдИ рднреА рдирд┐рдпрдо рдкреИрдХреЗрдЯ рдХреЗ рднрд╛рдЧреНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рдпрдо рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдлреЙрд░рд╡рд░реНрдб рдЯреЗрдмрд▓ рддреИрдпрд╛рд░ рдХрд░рдирд╛:
# iptables -F FORWARD # FORWARD - iptables -P FORWARD DROP # iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рдирд┐рдпрдоред рдЪреВрдВрдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рдпрдо DROP рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдЙрди рд╣реЛрд╕реНрдЯ + рдкреЛрд░реНрдЯ рдЬреЛрдбрд╝реЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣реЛрд╕реНрдЯ рдкрд░ рдкреЛрд░реНрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ + рд╣реЛрд╕реНрдЯ рдХреЛ рд╣реА рдкрд┐рдВрдЧ рдХрд░реЗрдВ:
iptables -I FORWARD -s 10.8.0.3 -i tun0 -d 10.0.2.3 -p tcp --dport 443 -j ACCEPT iptables -I FORWARD -s 10.8.0.3 -i tun0 -d 10.0.2.3 -p icmp --icmp-type echo-request -j ACCEPT
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореЗрдЬрдмрд╛рди 10.8.0.3 рдХреЛ рдореЗрдЬрдмрд╛рди 10.0.2.3 рдХреЗ рдкреЛрд░реНрдЯ 443 рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
рдкрд╣реБрдБрдЪ рдХреИрд╕реЗ рдмрдВрдж рдХрд░реЗрдВ:
# iptables -L FORWARD --line-numbers # iptables -D FORWARD { }
рдлрд┐рд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рд╕рднреА рдирд┐рдпрдореЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдирд┐рдпрдо рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдо рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдкреИрдХреЗрдЯ рдХрд╛ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рд╣реЛрддрд╛ рд╣реИред
# , watch iptables -nvL FORWARD # iptables -Z FORWARD
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗрдПрдХ Openvpn рд╕рд░реНрд╡рд░ рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЬрдм рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯред рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдХреЗрд╡рд▓ рд╡реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реЛрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрджрд░, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореМрдЬреВрджрд╛ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЪрд░ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
common_name
(рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕реНрд╡рд╛рдореА рдХрд╛ рдирд╛рдо; рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдмрдирд╛рддреЗ рд╕рдордп рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХреНрдпрд╛ рдбреНрд░рд╛рдЗрд╡ рдХрд░рддрд╛ рд╣реИ)ifconfig_pool_remote_ip
(tun0 рдкрд░ рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдЖрдИрдкреА рдкрддрд╛)script_type
(рдЬреЛ рдИрд╡реЗрдВрдЯ рд╣реБрдЖ - рдХрдиреЗрдХреНрдЯ рдпрд╛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ)ред
Iptables рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред Openvpn рдХрд┐рд╕реА рдХреЛ рднреА рд░реАрд╕реЗрдЯ рдЕрдзрд┐рдХрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рдЗрд╕рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИред рд╕реВрдбреЛ рдХреЗ рддрд╣рдд рдХрд┐рд╕реА рдХреЛ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдмреБрд░рд╛ рд╣реИ, рдФрд░ рдирд┐рдпрдореЛрдВ рдореЗрдВ рддрд╛рд░рд╛рдВрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ iptables рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдЖрдкрдХреЛ рддреГрддреАрдп-рдкрдХреНрд╖ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рджреЛ рд╣реБрдХ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
script-security 2 client-connect /etc/openvpn/bin/hosts.rb client-disconnect /etc/openvpn/bin/hosts.rb
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА, рдЬреЛ рд╡рд┐рдиреНрдпрд╛рд╕ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ iptables рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрд╕реА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЬреЛ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред
рдирд┐рдпрдореЛрдВ рдХреЛ
/etc/openvpn/hosts
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рдХреЗ рдЕрдиреБрд░реВрдк рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдЖрдИрдкреА рдкрддреЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рд╡рд┐рднрд╛рдЬрдХ - рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдПрдХ рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ред рдЖрдИрдкреА тАЛтАЛрдПрдбреНрд░реЗрд╕, рдкреЛрд░реНрдЯ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (tcp рдпрд╛ udp) рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред
10.0.0.24 53 udp 10.0.0.25 53 udp 10.0.2.3 443 tcp
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛
/etc/openvpn
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ
/etc/openvpn
рджреЗрдиреА рдЪрд╛рд╣рд┐рдП
тФЬтФАтФА рдмрд┐рди
S. s. hosts.rb
тФЬтФАтФА рдпрдЬрдорд╛рди
1 1 user1
2 2 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 2
тФФтФАтФА тФФтФАтФА рд╣рд░ рдХреЛрдИ
F server.conf
тФФтФАтФА ...
рдЙрдкрд░реНрдпреБрдХреНрдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ
User1
рдФрд░
User1
рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред рд╡реЗ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреМрди рд╣реЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд
everybody
рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЗрд╕рдореЗрдВ рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдпрдо рд╣реИрдВ, рдмрд╢рд░реНрддреЗ рдХрд┐ рдЗрди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реЛред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╣ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реВрдЪреА рдФрд░ рдЙрди
everybody
рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдореЗрдЬрдмрд╛рдиреЛрдВ
everybody
рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ
everybody
рдХреЛрдИ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреАрдПрдирдПрд╕ рд╕рд░реНрд╡рд░ рд░рдЦрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рд▓реЙрдЧрд┐рдВрдЧрд╕реНрдерд╛рдкрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдХрдиреЗрдХреНрд╢рди (
status)
рдкреИрд░рд╛рдореАрдЯрд░
status)
рдХрд╛ рд▓реЙрдЧрд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИред рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдорд┐рдд рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (
/etc/openvpn/server.conf
) рдкрд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
log-append /var/log/openvpn.log
рдПрд▓рдбреАрдПрдкреАрдПрдХ
Openvpn-Cort-ldap рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ LDAP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╡рд┐рддрд░рд┐рдд рдкреИрдХреЗрдЬ:
sudo yum install openvpn-auth-ldap
Server.conf рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so "/etc/openvpn/ldap.conf"
/etc/openvpn/ldap.conf
рдореЗрдВ ldap рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдмрдирд╛рдПрдБ:
<LDAP> URL ldaps://{LDAP_DOMAIN_HERE} Timeout 15 TLSEnable no FollowReferrals yes BindDN "BIND_DN_HERE" Password "BIND_PASSWORD_HERE" </LDAP> <Authorization> BaseDN "{BASE_DN_HERE}" SearchFilter "(&(sAMAccountName=%u)(objectClass=organizationalPerson)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))" RequireGroup false </Authorization>
рдХрд╕реНрдЯрдо ovpn config рдореЗрдВ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ:
auth-user-pass
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд╣рд▓реЗ рдбреЛрдореЗрди рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдкреВрдЫрд╛ рдЬрд╛рдПрдЧрд╛, рдлрд┐рд░ рдЯреЛрдХрди рд╕реЗ рдкрд┐рдиред рдпрджрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдЪрд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
Ldap.conf рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг
рдкреНрд▓рдЧрдЗрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣реИ ред рдпрд╣ рд╕рдореВрд╣ рд╕рджрд╕реНрдпрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдЧрддрд┐
рдЧрддрд┐ рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╡реГрджреНрдзрд┐ udp рдореЛрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддреА рд╣реИред рдпрд╣ рд╕рднреА рдореИрдиреБрдЕрд▓ рдореЗрдВ рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИред рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ tcp рдЪреИрдирд▓ рдореЗрдВ tcp рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдиреЗрдХреНрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдкреИрдХреЗрдЯ рдкрд░ рд╕рд╣реА рд╡рд┐рддрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдПрдХ tcp рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрджрд┐ рдкреИрдХреЗрдЯ udp рдЪреИрдирд▓ рдореЗрдВ рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ tcp рдХрдиреЗрдХреНрд╢рди рд╡рд┐рддрд░рдг рд╕рдорд╛рдпреЛрдЬрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред
рдЧрддрд┐ рдХрдо рд╕реЗ рдХрдо рдмрдврд╝ рдЬрд╛рдПрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдЪреИрдирд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЯ рдХреЗ рд╡рд┐рддрд░рдг рдХреА рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред Tcp рдХреЗ рд╕рд╛рде рдПрдХ рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдПрдХ рдЧреНрд░рд╛рд╣рдХ tcp рдкреИрдХреЗрдЯ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рд╡рд╣ vpn рдЪреИрдирд▓ рдХреЗ рдПрдХ рдкреИрдХреЗрдЯ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдПрдордЯреАрдпреВ рдПрдХ рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЗрдбрд░ рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдкрдХреЛ рдкреНрд░рддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреИрдХреЗрдЯ vpn рдЪреИрдирд▓ рдХреЗ рднреАрддрд░ рджреЛ рдкреИрдХреЗрдЯ рднреЗрдЬрдиреЗ рд╣реЛрдВрдЧреЗред
рдЬрдм рдпрд╣ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЯреАрд╕реАрдкреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм vpn ssh рдЪреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдкреВрд░реНрдг рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг
рдЙрджрд╛рд╣рд░рдг-server.conf port 1194 proto tcp dev tun sndbuf 0 rcvbuf 0 ca ca.crt cert server.crt key server.key dh dh.pem tls-auth ta.key 0 topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 10.0.0.25" push "dhcp-option DNS 10.0.0.24" keepalive 10 120 cipher AES-256-CBC comp-lzo user nobody group nobody persist-key persist-tun status openvpn-status.log verb 3 crl-verify crl.pem log-append /var/log/openvpn.log script-security 2 client-connect /etc/openvpn/bin/hosts.rb client-disconnect /etc/openvpn/bin/hosts.rb
рдЯреЛрдХрди рд╕реЗрдЯрдЕрдк
PKCS # 11 рд▓рд╛рдЗрдмреНрд░реЗрд░реА
рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЦреНрдп рдЬреЛрдбрд╝реЗ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдмрдВрдз рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред
рдЬрд╣рд╛рдБ рднреА librtpkcs11ecp.so рдмрд╛рдж рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдХрд╣реАрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЬрдЧрд╣ рдкрд░ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЯреЛрдХрди рдкрд░ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдмрдирд╛рдирд╛
рдЯреЛрдХрди рдкрд░ рдПрдХ рдкреНрд░рдореБрдЦ рдЬреЛрдбрд╝реА рдмрдирд╛рдПрдВред рдЖрдИрдбреА рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╣рд╛рдВ рдЯреЛрдХрди рдХреЗ рд╕реНрд▓реЙрдЯ рдХреА рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА рдлрд┐рдЯ рд╣реЛрддреА рд╣реИред
pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 01
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЬреАрд╡рдирдХрд╛рд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рднреАрддрд░ рдЙрдкрд▓рдмреНрдз рдЖрдИрдкреА-рдкрддреЗ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо ActiveDirectory рдореЗрдВ рд▓реЙрдЧрд┐рди рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдХреЛрдИ рднреНрд░рдо рди рд╣реЛред
openssl openssl> engine -t dynamic -pre SO_PATH:/usr/lib64/openssl/engines/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib64/librtpkcs11ecp.so openssl> req -engine pkcs11 -new -key slot_0-id_01 -keyform engine -out /home/john/good.req
рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрд░реЛрдз рдХреЛ
/etc/openvpn/easy-rsa/pki/reqs/
рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ
req
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХрд┐рд╕реА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛:
cd /etc/openvpn/easy-rsa/ ./easyrsa sign-req client good
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЙрд╕реА рдирд╛рдо рд╡рд╛рд▓рд╛ рдПрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд▓реЗрдХрд┐рди рдПрдХреНрд╕рдЯреЗрдВрд╢рди
crt
рд╕рд╛рде
/etc/openvpn/easy-rsa/pki/issued/
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЛ рдбреАрдИрдЖрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
openssl x509 -in /home/user/user-cert.pem -out /home/user/user-cert.crt -outform DER
рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд▓рд┐рдЦрдирд╛:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w /home/user/user-cert.crt --id 45 --label TEST
рдпрд╣
"рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ (рдЖрд░рдПрд╕рдП) рдХреЗ рд╕рд╛рде рд░реБрдЯреЛрдХрди рдИрдбреАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ" рд▓реЗрдЦ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рд╕рд░реНрд╡рд░ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рдЖрдИрдбреА рдЦреЛрдЬреЗрдВ:
$ openvpn --show-pkcs11-ids /usr/lib64/librtpkcs11ecp.so The following objects are available for use. Each object shown below may be used as parameter to --pkcs11-id option please remember to use single quote mark. Certificate DN: /CN=User1 Serial: 490B82C4000000000075 Serialized id: aaaa/bbb/41545F5349474E415455524581D2A1A1B23C4AA4CB17FAF7A4600
рд╣рдо рдпрд╣рд╛рдВ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рдЖрдИрдбреА рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред
рдРрд╕реЗ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдУрд╡рдкрд░реНрди рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЯреЛрдХрди рдЙрдард╛рдПрдВ:
pkcs11-providers /usr/lib64/librtpkcs11ecp.so pkcs11-id 'aaaa/bbb/41545F5349474E415455524581D2A1A1B23C4AA4CB17FAF7A4600'
pkcs11-id
рд╡рд┐рдХрд▓реНрдк
рдХреЛ рдПрдХрд▓ рдЙрджреНрдзрд░рдгреЛрдВ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредрдпрд╣ рдореИрдиреБрдЕрд▓ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЖрдкрдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдкрде рдФрд░ рдЯреЛрдХрди рдкрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрдИрдбреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ,
.dll
, not
.so
, рд▓реЗрдХрд┐рди рдЕрд░реНрде рд╕рдорд╛рди рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ ovpn рдлрд╝рд╛рдЗрд▓ рд╕реЗ
cert
рдФрд░
key
рдЕрдиреБрднрд╛рдЧ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдФрд░ рдирд┐рдЬреА рдХреБрдВрдЬреА рдЯреЛрдХрди рд╕реЗ рд▓реА рдЬрд╛рдПрдЧреАред
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЙрдиреНрдлрд┐рдЧ (рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП) рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
client.ovpnclient
dev tun
proto tcp
sndbuf 0
rcvbuf 0
remote 78.47.37.247 22222
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
setenv opt block-outside-dns
key-direction 1
verb 3
pkcs11-providers "c://Windows//System32//rtPKCS11ECP.dll"
pkcs11-id 'Aktiv\x20Co\x2E/Rutoken\x20ECP/342b871d/Rutoken/01'
-----BEGIN CERTIFICATE-----
{CERT_HERE}
-----END CERTIFICATE-----
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
{KEY_HERE}
-----END OpenVPN Static key V1-----
</tls-auth>
рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реНрдорд╛рд░реНрдЯ рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ OpenVPN рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рджреЛрд╣рд░реЗ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдЧреНрд░рд╛рд╣рдХ рд╕реЗрдЯрдЕрдк
рд▓рд┐рдирдХреНрд╕
Openvpn рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд┐рди рдХреЛрдб рдореЗрдВ рдЯреЛрдХрди рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдкреИрдХреЗрдЬ рдХреЛ рд╕рд┐рд╕реНрдЯрдордб рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдордб рд╣рд░ рдЬрдЧрд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╣реБрдЖ рд╣реИ, рд╕рднреА рдкреИрдХреЗрдЬ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЗрд╕рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдкреИрдХреЗрдЬ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ рдЬреЛ рдЖрд░реНрдХ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
./configure \ --prefix=/usr \ --sbindir=/usr/bin \ --enable-iproute2 \ --enable-pkcs11 \ --enable-plugins \ --enable-x509-alt-username
рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдУрдкрдирд╡рдкрди рдХреЛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рд╕реНрдЯрдордб рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
openvpn --version | grep --color enable_systemd
рдорд╛рд╕ рдУрд╕
рдореИрдХ рдУрдПрд╕ рдХреЗ рддрд╣рдд, рдХреЗрд╡рд▓ рдПрдХ рдореБрдлреНрдд рдЧреНрд░рд╛рд╣рдХ рд╣реИ -
рдЯрдирд▓рдмреНрд▓рд┐рдВрдХ ред
рд╡рд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЧреБрдИ рд╕реЗ рдЯреЛрдХрди рд╕реЗ рдкрд┐рди рдХреЛрдб рдХреИрд╕реЗ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдпрд╣рд╛рдБ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ -
https://groups.google.com/forum/# .topic
/ tunnelblick-discuss
/ f_Rp_2nV-x8 рдХрдВрд╕реЛрд▓ рд╕реЗ рдУрдкрдирд╡реИрдк рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ рдмрд╛рдпрдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдпрд╣ рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИред
рдореИрдХ рдУрдПрд╕ рдХреЗ рддрд╣рдд (рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд╡рд┐рдкрд░реАрдд) рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдмрд╕ рдХрдВрд╕реЛрд▓ рд╕реЗ рдУрдкреЗрдирд╡реЛрди рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ DNS рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ (рд╢рд╛рдпрдж рдХреБрдЫ рдФрд░, рдХреЗрд╡рд▓ DNS рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛)ред
рдЯрдирд▓рдмреНрд▓рд┐рдХ рдореЗрдВ рдЗрди рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдкрдХреЛ ovpn config рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
script-security 2 up "/Applications/Tunnelblick.app/Contents/Resources/client.up.tunnelblick.sh -9 -d -f -m -w -ptADGNWradsgnw" down "/Applications/Tunnelblick.app/Contents/Resources/client.down.tunnelblick.sh -9 -d -f -m -w -ptADGNWradsgnw"
рдПрдХ рдУрдкрдирд╡реИрдк рдХрдиреЗрдХреНрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЬрд┐рд╕реЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдкреЛрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
#!/bin/bash tunnelblick=/Applications/Tunnelblick.app/Contents/Resources/openvpn/openvpn-2.4.2-openssl-1.0.2k sudo $tunnelblick/openvpn --config $tunnelblick/user.ovpn
рд╡рд┐рдВрдбреЛрдЬ
рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдиреАрдЪреЗ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЯреЛрдХрди рд╕реЗ рдкрд┐рди рдХреЛрдб рдХреИрд╕реЗ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╣ рдХрдВрд╕реЛрд▓ рд╕реЗ рд╣рд╛рде рд╕реЗ рдУрдкрдирд╡реИрдк рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рддрд╣рдд рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рд╣реИред рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдЪрд▓рд╛рдПрдБред рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ Openvpn рднреА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд, рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдорд╛рд░реНрдЧ рдбрдмрд▓ рд╕реНрд▓реИрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ ovpn config рдФрд░
--show-pkcs11-ids
рджреЛрдиреЛрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
pkcs11-providers "c://Windows//System32//rtPKCS11ECP.dll" pkcs11-id 'Aktiv\x20Co\x2E/Rutoken\x20ECP/342b871d/Rutoken/01'