ืืขืจ ืึทืจืืืงื ืืืฉืจืืืื ืืึทืฉืืขืืืงื ืึทื OpenVPN ืกืขืจืืืขืจ ืฆื ืืขืื ืฆืืืื-ืคืึทืงืืึธืจ ืึธืืขื ืืึทืงืืืฉืึทื ืืื ืึท ืืขืืขืืจืึทื ืืึธื ืืืึธืก ืืืขื ืฉืืงื ืึท ืืึทืฉืืขืืืงืื ื ืืขืื ืืืขื ืงืึทื ืขืงืืื ื.
OpenVPN ืืื ืึท ืืึทืืืืกื, ืคืจืื, ืึธืคึฟื ืืงืืจ ืืืคึผื ืกืขืจืืืขืจ ืืืึธืก ืืื ืืืืืืื ืืขื ืืฆื ืฆื ืึธืจืืึทื ืืืืจื ืืืืขืจ ืึธื ืืขืฉืืขืืืขืจ ืึทืงืกืขืก ืฆื ืื ืขืจืืขื ืึธืจืืึทื ืึทืืืืฉืึทื ืึทื ืจืขืกืืจืกื.
ืืื ืึธืืขื ืืึทืงืืืฉืึทื ืคึฟืึทืจ ืงืึทื ืขืงืืื ื ืฆื ืึท ืืืคึผื ืกืขืจืืืขืจ, ืึท ืงืึธืืืื ืึทืฆืืข ืคืื โโโโืึท ืฉืืืกื ืืื ืืึทื ืืฆืขืจ ืืึธืืื / ืคึผืึทืจืึธื ืืื ืืืืฉืึทืืืึทืื ืืขื ืืฆื. ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื, ืื ืคึผืึทืจืึธื ืกืืึธืจื ืืืืฃ ืืขื ืงืืืขื ื ืืืจื ืก ืื ืืื ืฆืข ืืึทื ื ืืื ืึท ืืืื ืคืึทืงืืึธืจ ืืืึธืก ืืื ื ืืฉื ืฆืืฉืืขืื ืื ืจืขืื ืืืืขืจืืืื ืืืจืื. ืึท ืึทืืึทืงืขืจ, ืืืึธืก ืืื ืืืงืืืขื ืึทืงืกืขืก ืฆื ืืขื ืงืืืขื ื ืงืึธืืคึผืืืืขืจ, ืืืื ืืืื ื ืึทืงืกืขืก ืฆื ืื ืืืคึผื ืกืขืจืืืขืจ. ืืึธืก ืืื ืกืคึผืขืฆืืขื ืืืช ืคึฟืึทืจ ืงืึทื ืขืงืฉืึทื ื ืคืื ืืืฉืื ืขื ืืื Windows.
ื ืืฆื ืื ืจืืข ืคืึทืงืืึธืจ ืจืึทืืืกืึทื ืื ืจืืืืงืืจื ืคืื ืึทื ืึธืืขืจืืืื ืึทืงืกืขืก ืืื 99% ืืื ืืื ื ืืฉื ืงืึธืืคึผืืืฆืืจื ืื ืงืฉืจ ืคึผืจืึธืฆืขืก ืคึฟืึทืจ ืืืืขืจื.
ืืึธืื ืืืจ ืืึทืื ืึท ืจืขืืขืจืืืึทืฆืืข ืืืืื: ืคึฟืึทืจ ืืืคึผืืึทืืขื ืืืืฉืึทื ืืืจ ืืืขื ืืึทืจืคึฟื ืฆื ืคืึทืจืืื ืื ืึท ืืจืื-ืคึผืึทืจืืื ืึธืืขื ืืึทืงืืืฉืึทื ืกืขืจืืืขืจ multifactor.ru, ืืื ืืืึธืก ืืืจ ืงืขื ืขื ื ืืฆื ืึท ืคืจืื ืฆืึธื ืคึฟืึทืจ ืืืื ืืึทืจืฃ.
ืคึผืจืื ืฆืืคึผ ืคืื ืึธืคึผืขืจืึทืฆืืข
- OpenVPN ื ืืฆื ืื openvpn-plugin-auth-pam ืคึผืืืืื ืคึฟืึทืจ ืึธืืขื ืืึทืงืืืฉืึทื
- ืืขืจ ืคึผืืืืื ืืฉืขืงืก ืื ืืึทื ืืฆืขืจ 'ืก ืคึผืึทืจืึธื ืืืืฃ ืื ืกืขืจืืืขืจ ืืื ืจืืงืืืขืก ืื ืจืืข ืคืึทืงืืึธืจ ืืืจื ืื RADIUS ืคึผืจืึธืืึธืงืึธื ืืื ืื Multifactor ืืื ืกื
- ืืืืืืคืึทืงืืืจ ืกืขื ืื ืึท ืึธื ืืึธื ืฆื ืืขืจ ืืึทื ืืฆืขืจ ืืืจื ืืขืืขืืจืึทื ืืึธื ืืืึธืก ืืึทืฉืืขืืืงื ืึทืงืกืขืก
- ืืขืจ ืืึทื ืืฆืขืจ ืงืึทื ืคืขืจืื ืื ืึทืงืกืขืก ืืขืื ืืื ืืขืืขืืจืึทื ืฉืืืขืกื ืืื ืงืึทื ืขืงืฅ ืฆื ืื ืืืคึผื
ืื ืกืืึธืืื ื ืึทื OpenVPN ืกืขืจืืืขืจ
ืขืก ืืขื ืขื ืคืืืข ืึทืจืืืงืืขื ืืืืฃ ืืขืจ ืืื ืืขืจื ืขืฅ ืืืึธืก ืืืกืงืจืืืืื ื ืืขื ืคึผืจืึธืฆืขืก ืคืื ืื ืกืืึธืืื ื ืืื ืงืึทื ืคืืืืขืจ OpenVPN, ืึทืืื ืืืจ ืืืขืื ื ืืฉื ืืืคึผืืืงืึทื ืืื. ืืืื ืืืจ ืืึทืจืคึฟื ืืืืฃ, ืขืก ืืขื ืขื ืขืืืขืืข ืืื ืงืก ืฆื ืืืืึธืจืืึทืื ืืื ืื ืกืืฃ ืคืื ืืขื ืึทืจืืืงื.
ืืึทืฉืืขืืืงื ืื ืืืืืืคืึทืงืืึธืจ
ืืื ืฆื
ืึทืืึธื ืืืฉืืคื, ืืืจ ืืืขื ืืึธืื ืฆืืืื ืึธืคึผืฆืืขืก ืื ืืืฆื ืฆื ืืืจ: NAS-Identifier ะธ ืฉืขืจื ืกืื, ืืื ืืืขืื ืืืื ืคืืจืืื ืื ืคึฟืึทืจ ืกืึทืืกืึทืงืืืึทื ื ืงืึทื ืคืืืืขืจืืืฉืึทื.
ืืื ืื "ืืจืืคึผืขืก" ืึธืคึผืืืืืื ื, ืืืื ืฆื ืื "ืึทืืข ืืืืขืจื" ืืจืืคึผืข ืกืขืืืื ืืก ืืื ืืึทืืืึทืืืงื ืื "ืื ืจืขืกืืจืกื" ืคืึธื ืึทืืื ืึทื ืืืืื ืืืืขืจื ืคืื ืึท ืืืืขืจ ืืจืืคึผืข ืงืขื ืขื ืคืึทืจืืื ืื ืฆื ืื ืืืคึผื ืกืขืจืืืขืจ.
ืฉืึทืคึฟื ืึท ื ืืึทืข ืืจืืคึผืข "VPN ืืืืขืจื", ืืืกืืืืึทื ืึทืืข ืึธืืขื ืืึทืงืืืฉืึทื ืืขืืืึธืืก ืึทืืืฅ ืืขืืขืืจืึทื ืืื ืึธื ืืืืึทืื ืึทื ืืืืขืจื ืืึธืื ืึทืงืกืขืก ืฆื ืื ืืืฉืืคื VPN ืืืื.
ืืื ืื "Users" ืึธืคึผืืืืืื ื, ืฉืึทืคึฟื ืืืืขืจื ืืืึธืก ืืึธืื ืึทืงืกืขืก ืฆื ืื VPN, ืืืืื ืืื ืฆื ืื "VPN ืืืืขืจื" ืืจืืคึผืข ืืื ืฉืืงื ืืื ืึท ืืื ืง ืฆื ืงืึทื ืคืืืืขืจ ืื ืจืืข ืคืึทืงืืึธืจ ืคืื ืึธืืขื ืืึทืงืืืฉืึทื. ืืขืจ ืืึทื ืืฆืขืจ ืืึธืืื ืืืื ืืืืึทืื ืื ืืึธืืื ืืืืฃ ืื ืืืคึผื ืกืขืจืืืขืจ.
ืืึทืฉืืขืืืงื ืึทื OpenVPN ืกืขืจืืืขืจ
ืขืคืขื ืขื ืื ืืขืงืข /etc/openvpn/server.conf ืืื ืืืืื ืึท ืคึผืืืืื ืคึฟืึทืจ ืึธืืขื ืืึทืงืืืฉืึทื ื ืืฆื ืื PAM ืืึธืืืืข
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
ืืขืจ ืคึผืืืืื ืงืขื ืขื ืืืื ืืืื ืืื ืื ืืืขืืืืืึทืืขืจ /usr/lib/openvpn/plugins/ ืึธืืขืจ /usr/lib64/openvpn/plugins/ ืืืคึผืขื ืืื ื ืืืืฃ ืืืื ืกืืกืืขื.
ืืืืึทืืขืจ ืืืจ ืืึทืจืคึฟื ืฆื ืื ืกืืึทืืืจื ืื pam_radius_auth ืืึธืืืืข
$ sudo yum install pam_radius
ืขืคืขื ืขื ืื ืืขืงืข ืคึฟืึทืจ ืขืืืืื ื /etc/pam_radius.conf ืืื ืกืคึผืขืฆืืคืืฆืืจื ืื ืึทืืจืขืก ืคืื ืื RADIUS ืกืขืจืืืขืจ ืคืื ืื Multifactor
radius.multifactor.ru shared_secret 40
ืืื:
- radius.multifactor.ru โ ืกืขืจืืืขืจ ืึทืืจืขืก
- shared_secret - ืงืึธืคึผืืข ืคืื โโืื ืงืึธืจืึทืกืคึผืึทื ืืื ื VPN ืกืขืืืื ืืก ืคึผืึทืจืึทืืขืืขืจ
- 40 ืกืขืงืื ืืขืก - ืืืืืึทืื ืคึฟืึทืจ ืืืืจืื ืคึฟืึทืจ ืึท ืืงืฉื ืืื ืึท ืืจืืืก ืืจืขื ืขืฅ
ืื ืจืืขื ืกืขืจืืืขืจืก ืืืื ืืืื ืืืืกืืขืืขืงื ืึธืืขืจ ืงืึทืืขื ืืึทื ืืืืก (ืฉืืขืื ืึท ืืึทืืืงืืึทืืขื ืืื ืื ืึธื ืืืื)
ืืขืจื ืึธื, ืฉืึทืคึฟื ืึท ืืขืงืข ืคึฟืึทืจ ืืื ืกื-ืืืคึผ openvpn
$ sudo vi /etc/pam.d/openvpn
ืืื ืฉืจืืื ืขืก ืืื
auth required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth substack password-auth
account substack password-auth
ืืขืจ ืขืจืฉืืขืจ ืฉืืจื ืงืึทื ืขืงืฅ ืื PAM ืืึธืืืืข pam_radius_auth ืืื ืื ืคึผืึทืจืึทืืขืืขืจืก:
- skip_passwd - ืืืกืืืืึทืื ืืจืึทื ืกืืืกืืข ืคืื โโืื ืืึทื ืืฆืขืจ 'ืก ืคึผืึทืจืึธื ืฆื ืื RADIUS ืืืืืืคืึทืงืืืจ ืกืขืจืืืขืจ (ืขืจ ืืึทืจืฃ ื ืืฉื ืืืืกื ืขืก).
- client_id - ืคืึทืจืืืึทืื [NAS-Identifier] ืืื ืื ืงืึธืจืึทืกืคึผืึทื ืืื ื ืคึผืึทืจืึทืืขืืขืจ ืคืื ืื VPN ืืืื ืกืขืืืื ืืก.
ืึทืืข ืืขืืืขื ืคึผืึทืจืึทืืขืืขืจืก ืืขื ืขื ืืืกืงืจืืืื ืืืืืึทืงืืืืขื ืืืืฉืึทื ืคึฟืึทืจ ืื ืืึธืืืืข .
ืื ืจืืข ืืื ืืจืื ืฉืืจืืช ืึทืจืืึทื ื ืขืืขื ืกืืกืืขื ืืืขืจืึทืคืึทืงืืืฉืึทื ืคืื ืื ืืึธืืื, ืคึผืึทืจืึธื ืืื ืืึทื ืืฆืขืจ ืจืขืื ืืืืฃ ืืืื ืกืขืจืืืขืจ ืฆืืืืืขื ืืื ืึท ืฆืืืืื ืึธืืขื ืืึทืงืืืฉืึทื ืคืึทืงืืึธืจ.
ืจืืกืืึทืจื OpenVPN
$ sudo systemctl restart openvpn@server
ืงืืืขื ื ืกืขืืึทืคึผ
ืึทืจืืึทื ื ืขืืขื ืึท ืืงืฉื ืคึฟืึทืจ ืืึทื ืืฆืขืจ ืืึธืืื ืืื ืคึผืึทืจืึธื ืืื ืืขืจ ืงืืืขื ื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืขืงืข
auth-user-pass
ะัะพะฒะตัะบะฐ
ืงืึทืืขืจ ืื OpenVPN ืงืืืขื ื, ืคืึทืจืืื ืื ืฆื ืื ืกืขืจืืืขืจ, ืึทืจืืึทื ืืืื ื ืืืขื ืืื ืคึผืึทืจืึธื. ืื ืืขืืขืืจืึทื ืืึธื ืืืขื ืฉืืงื ืึท ืึทืงืกืขืก ืืขืื ืืื ืฆืืืื ืงื ืขืคึผืืขื
ืืืื ืงื ืขืคึผื ืึทืืึทืื ืึทืงืกืขืก, ืื ืจืืข ืืืึทืงืก ืขืก.
ืืืฆื ืืืจ ืงืขื ืขื ืืขืฉืึธืืขื ืจืึทืืขืืืขื ืืืื ืคึผืึทืจืึธื ืืืืฃ ืืขื ืงืืืขื ื; ืื ืจืืข ืคืึทืงืืึธืจ ืืืขื ืจืืืืืึทืืื ืืึทืฉืืฆื ืืืื OpenVPN ืกืขืจืืืขืจ ืคืื ืึทื ืึธืืขืจืืืื ืึทืงืกืขืก.
ืืืื ืขืคึผืขืก ืืื ื ืืฉื ืึทืจืืขืื
ืงืืง ืกืึทืงืืืขื ืืฉืึทืื ืึทื ืืืจ ืืึธื ื ืืฉื ืืืกื ืขืคึผืขืก:
- ืขืก ืืื ืึท ืืึทื ืืฆืขืจ ืืืืฃ ืื ืกืขืจืืืขืจ ืืื OpenVPN ืืื ืึท ืคึผืึทืจืึธื ืฉืืขืื
- ืืขืจ ืกืขืจืืืขืจ ืืื ืึทืงืกืขืก ืืืจื ืืืคึผ ืคึผืึธืจื 1812 ืฆื ืื ืึทืืจืขืก radius.multifactor.ru
- ืื NAS-Identifier ืืื Shared Secret ืคึผืึทืจืึทืืขืืขืจืก ืืขื ืขื ืจืืืืืง ืกืคึผืขืกืืคืืขื
- ื ืืึทื ืืฆืขืจ ืืื ืืขืจ ืืขืืืืงืขืจ ืืึธืืื ืืื ืืืฉืืคื ืืขืืืืจื ืืื ืื ืืืืืืคืึทืงืืึธืจ ืกืืกืืขื ืืื ืืื ืืขืืขืื ืึทืงืกืขืก ืฆื ืื VPN ืืึทื ืืฆืขืจ ืืจืืคึผืข
- ืืขืจ ืืึทื ืืฆืขืจ ืืื ืงืึทื ืคืืืืขืจื ืื ืึธืืขื ืืึทืงืืืฉืึทื ืืืคึฟื ืืืจื ืืขืืขืืจืึทื
ืืืื ืืืจ ืืึธื ื ืืฉื ืืึทืฉืืขืืืงื OpenVPN ืคืจืืขืจ, ืืืืขื ืขื
ืื ืื ืกืืจืึทืงืฉืึทื ื ืืขื ืขื ืืขืืืื ืืื ืืืืฉืคืืื ืืืืฃ CentOS 7.
ืืงืืจ: www.habr.com