ืื™ืžื•ืช ื“ื•-ื’ื•ืจืžื™ ื‘-OpenVPN ืขื ื‘ื•ื˜ ื˜ืœื’ืจื

ื”ืžืืžืจ ืžืชืืจ ื”ื’ื“ืจืช ืฉืจืช OpenVPN ื›ื“ื™ ืœืืคืฉืจ ืื™ืžื•ืช ื“ื•-ื’ื•ืจืžื™ ืขื ื‘ื•ื˜ ืฉืœ ื˜ืœื’ืจื ืฉื™ืฉืœื— ื‘ืงืฉืช ืื™ืฉื•ืจ ื‘ืขืช ื”ื—ื™ื‘ื•ืจ.

OpenVPN ื”ื•ื ืฉืจืช VPN ื™ื“ื•ืข, ื—ื™ื ืžื™, ื‘ืงื•ื“ ืคืชื•ื—, ืฉื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ืœืืจื’ื•ืŸ ื’ื™ืฉืช ืขื•ื‘ื“ื™ื ืžืื•ื‘ื˜ื—ืช ืœืžืฉืื‘ื™ื ืคื ื™ื ืืจื’ื•ื ื™ื™ื.

ื›ืื™ืžื•ืช ืœื—ื™ื‘ื•ืจ ืœืฉืจืช VPN, ื ืขืฉื” ื‘ื“ืจืš ื›ืœืœ ืฉื™ืžื•ืฉ ื‘ืฉื™ืœื•ื‘ ืฉืœ ืžืคืชื— ื•ื›ื ื™ืกื”/ืกื™ืกืžื” ืฉืœ ื”ืžืฉืชืžืฉ. ื™ื—ื“ ืขื ื–ืืช, ื”ืกื™ืกืžื” ื”ืžืื•ื—ืกื ืช ื‘ืœืงื•ื— ื”ื•ืคื›ืช ืืช ื›ืœ ื”ืกื˜ ืœื’ื•ืจื ื™ื—ื™ื“ ืฉืื™ื ื• ืžืกืคืง ืืช ืจืžืช ื”ืื‘ื˜ื—ื” ื”ืจืื•ื™ื”. ืชื•ืงืฃ, ืœืื—ืจ ืฉื”ืฉื™ื’ ื’ื™ืฉื” ืœืžื—ืฉื‘ ื”ืœืงื•ื—, ืžืงื‘ืœ ื’ื ื’ื™ืฉื” ืœืฉืจืช ื”-VPN. ื–ื” ื ื›ื•ืŸ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ื—ื™ื‘ื•ืจื™ื ืžืžื›ื•ื ื•ืช ื”ืžืจื™ืฆื™ื Windows.

ืฉื™ืžื•ืฉ ื‘ื’ื•ืจื ื”ืฉื ื™ ืžืคื—ื™ืช ืืช ื”ืกื™ื›ื•ืŸ ืœื’ื™ืฉื” ืœื ืžื•ืจืฉื™ืช ื‘-99% ื•ืื™ื ื• ืžืกื‘ืš ื›ืœืœ ืืช ืชื”ืœื™ืš ื”ื—ื™ื‘ื•ืจ ืœืžืฉืชืžืฉื™ื.

ื”ืจืฉื• ืœื™ ืœื‘ืฆืข ื”ื–ืžื ื” ืžื™ื“: ืœื™ื™ืฉื•ื ืชืฆื˜ืจืš ืœื—ื‘ืจ ืฉืจืช ืื™ืžื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™ multifactor.ru, ืฉื‘ื• ืชื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ืชืขืจื™ืฃ ื—ื™ื ื ืœืฆืจื›ื™ื ืฉืœืš.

ืขื™ืงืจื•ืŸ ื”ืคืขื•ืœื”

  1. OpenVPN ืžืฉืชืžืฉ ื‘ืชื•ืกืฃ openvpn-plugin-auth-pam ืœืฆื•ืจืš ืื™ืžื•ืช
  2. ื”ืชื•ืกืฃ ื‘ื•ื“ืง ืืช ืกื™ืกืžืช ื”ืžืฉืชืžืฉ ื‘ืฉืจืช ื•ืžื‘ืงืฉ ืืช ื”ื’ื•ืจื ื”ืฉื ื™ ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ RADIUS ื‘ืฉื™ืจื•ืช Multifactor
  3. Multifactor ืฉื•ืœื— ื”ื•ื“ืขื” ืœืžืฉืชืžืฉ ื‘ืืžืฆืขื•ืช ื‘ื•ื˜ ื˜ืœื’ืจื ื”ืžืืฉืจืช ื’ื™ืฉื”
  4. ื”ืžืฉืชืžืฉ ืžืืฉืจ ืืช ื‘ืงืฉืช ื”ื’ื™ืฉื” ื‘ืฆ'ืื˜ ืฉืœ ื˜ืœื’ืจื ื•ืžืชื—ื‘ืจ ืœ-VPN

ื”ืชืงื ืช ืฉืจืช OpenVPN

ื™ืฉื ื ืžืืžืจื™ื ืจื‘ื™ื ื‘ืื™ื ื˜ืจื ื˜ ื”ืžืชืืจื™ื ืืช ืชื”ืœื™ืš ื”ื”ืชืงื ื” ื•ื”ื”ื’ื“ืจื” ืฉืœ OpenVPN, ื›ืš ืฉืœื ื ืฉื›ืคืœ ืื•ืชื. ืื ืืชื” ืฆืจื™ืš ืขื–ืจื”, ื™ืฉ ื›ืžื” ืงื™ืฉื•ืจื™ื ืœื”ื“ืจื›ื•ืช ื‘ืกื•ืฃ ื”ืžืืžืจ.

ื”ื’ื“ืจืช Multifactor

ืœืš ืœ ืžืขืจื›ืช ื‘ืงืจื” ืจื‘-ื’ื•ืจืžื™ืช, ืขื‘ื•ืจ ืืœ ื”ืงื˜ืข "ืžืฉืื‘ื™ื" ื•ืฆื•ืจ VPN ื—ื“ืฉ.
ืœืื—ืจ ื”ื™ืฆื™ืจื”, ื™ื”ื™ื• ืœืš ืฉืชื™ ืืคืฉืจื•ื™ื•ืช ื–ืžื™ื ื•ืช ืขื‘ื•ืจืš: NAS-ืžื–ื”ื” ะธ ืกื•ื“ ืžืฉื•ืชืฃ, ื”ื ื™ื™ื“ืจืฉื• ืœืชืฆื•ืจื” ื”ื‘ืื”.

ืื™ืžื•ืช ื“ื•-ื’ื•ืจืžื™ ื‘-OpenVPN ืขื ื‘ื•ื˜ ื˜ืœื’ืจื

ื‘ืกืขื™ืฃ "ืงื‘ื•ืฆื•ืช", ืขื‘ื•ืจ ืœื”ื’ื“ืจื•ืช ื”ืงื‘ื•ืฆื” "ื›ืœ ื”ืžืฉืชืžืฉื™ื" ื•ื”ืกืจ ืืช ื”ื“ื’ืœ "ื›ืœ ื”ืžืฉืื‘ื™ื" ื›ืš ืฉืจืง ืžืฉืชืžืฉื™ื ืžืงื‘ื•ืฆื” ืžืกื•ื™ืžืช ื™ื•ื›ืœื• ืœื”ืชื—ื‘ืจ ืœืฉืจืช ื”-VPN.

ืฆื•ืจ ืงื‘ื•ืฆื” ื—ื“ืฉื” "ืžืฉืชืžืฉื™ VPN", ื”ืฉื‘ืช ืืช ื›ืœ ืฉื™ื˜ื•ืช ื”ืื™ืžื•ืช ืคืจื˜ ืœื˜ืœื’ืจื ื•ืฆื™ื™ืŸ ืฉืœืžืฉืชืžืฉื™ื ื™ืฉ ื’ื™ืฉื” ืœืžืฉืื‘ ื”-VPN ืฉื ื•ืฆืจ.

ืื™ืžื•ืช ื“ื•-ื’ื•ืจืžื™ ื‘-OpenVPN ืขื ื‘ื•ื˜ ื˜ืœื’ืจื

ื‘ืงื˜ืข "ืžืฉืชืžืฉื™ื", ืฆื•ืจ ืžืฉืชืžืฉื™ื ืฉืชื”ื™ื” ืœื”ื ื’ื™ืฉื” ืœ-VPN, ื”ื•ืกืฃ ืื•ืชื ืœืงื‘ื•ืฆืช "ืžืฉืชืžืฉื™ VPN" ื•ืฉืœื— ืœื”ื ืงื™ืฉื•ืจ ืœื”ื’ื“ืจืช ื’ื•ืจื ื”ืื™ืžื•ืช ื”ืฉื ื™. ื›ื ื™ืกืช ื”ืžืฉืชืžืฉ ื—ื™ื™ื‘ืช ืœื”ืชืื™ื ืœื›ื ื™ืกื” ื‘ืฉืจืช ื”-VPN.

ืื™ืžื•ืช ื“ื•-ื’ื•ืจืžื™ ื‘-OpenVPN ืขื ื‘ื•ื˜ ื˜ืœื’ืจื

ื”ื’ื“ืจืช ืฉืจืช 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 ืžืกื•ื’ service

$ 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 Multifactor (ื”ื•ื ืœื ืฆืจื™ืš ืœื“ืขืช ืืช ื–ื”).
  • client_id - ื”ื—ืœืฃ ืืช [NAS-Identifier] ื‘ืคืจืžื˜ืจ ื”ืžืชืื™ื ืžื”ื’ื“ืจื•ืช ืžืฉืื‘ ื”-VPN.
    ื›ืœ ื”ืคืจืžื˜ืจื™ื ื”ืืคืฉืจื™ื™ื ืžืชื•ืืจื™ื ื‘ ืชื™ืขื•ื“ ืขื‘ื•ืจ ื”ืžื•ื“ื•ืœ.

ื”ืฉื•ืจื” ื”ืฉื ื™ื™ื” ื•ื”ืฉืœื™ืฉื™ืช ื›ื•ืœืœื•ืช ืื™ืžื•ืช ืžืขืจื›ืช ืฉืœ ื”ื›ื ื™ืกื”, ื”ืกื™ืกืžื” ื•ื–ื›ื•ื™ื•ืช ื”ืžืฉืชืžืฉ ื‘ืฉืจืช ืฉืœืš ื™ื—ื“ ืขื ื’ื•ืจื ืื™ืžื•ืช ืฉื ื™.

ื”ืคืขืœ ืžื—ื“ืฉ ืืช OpenVPN

$ sudo systemctl restart openvpn@server

ื”ื’ื“ืจืช ืœืงื•ื—

ื›ืœื•ืœ ื‘ืงืฉื” ืœื”ืชื—ื‘ืจื•ืช ืžืฉืชืžืฉ ื•ืกื™ืกืžื” ื‘ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœ ื”ืœืงื•ื—

auth-user-pass

ะŸั€ะพะฒะตั€ะบะฐ

ื”ืคืขืœ ืืช ืœืงื•ื— OpenVPN, ื”ืชื—ื‘ืจ ืœืฉืจืช, ื”ื–ืŸ ืืช ืฉื ื”ืžืฉืชืžืฉ ื•ื”ืกื™ืกืžื” ืฉืœืš. ื”ื‘ื•ื˜ ืฉืœ ื”ื˜ืœื’ืจื ื™ืฉืœื— ื‘ืงืฉืช ื’ื™ืฉื” ืขื ืฉื ื™ ื›ืคืชื•ืจื™ื

ืื™ืžื•ืช ื“ื•-ื’ื•ืจืžื™ ื‘-OpenVPN ืขื ื‘ื•ื˜ ื˜ืœื’ืจื

ื›ืคืชื•ืจ ืื—ื“ ืžืืคืฉืจ ื’ื™ืฉื”, ื”ืฉื ื™ ื—ื•ืกื ืื•ืชื”.

ื›ืขืช ืืชื” ื™ื›ื•ืœ ืœืฉืžื•ืจ ืืช ื”ืกื™ืกืžื” ืฉืœืš ื‘ื‘ื˜ื—ื” ื‘ืœืงื•ื—; ื”ื’ื•ืจื ื”ืฉื ื™ ื™ื’ืŸ ื‘ืฆื•ืจื” ืžื”ื™ืžื ื” ืขืœ ืฉืจืช OpenVPN ืฉืœืš ืžืคื ื™ ื’ื™ืฉื” ืœื ืžื•ืจืฉื™ืช.

ืื ืžืฉื”ื• ืœื ืขื•ื‘ื“

ื‘ื“ื•ืง ื‘ืจืฆืฃ ืฉืœื ืคืกืคืกืช ืฉื•ื ื“ื‘ืจ:

  • ื™ืฉ ืžืฉืชืžืฉ ื‘ืฉืจืช ืขื OpenVPN ืขื ืกื™ืกืžื” ืžื•ื’ื“ืจืช
  • ืœืฉืจืช ื™ืฉ ื’ื™ืฉื” ื“ืจืš ื™ืฆื™ืืช UDP 1812 ืœื›ืชื•ื‘ืช radius.multifactor.ru
  • ื”ืคืจืžื˜ืจื™ื NAS-Identifier ื•-Shared Secret ืžื•ื’ื“ืจื™ื ื›ื”ืœื›ื”
  • ืžืฉืชืžืฉ ืขื ืื•ืชื• ื›ื ื™ืกื” ื ื•ืฆืจ ื‘ืžืขืจื›ืช Multifactor ื•ืงื™ื‘ืœ ื’ื™ืฉื” ืœืงื‘ื•ืฆืช ื”ืžืฉืชืžืฉื™ื ืฉืœ VPN
  • ื”ืžืฉืชืžืฉ ื”ื’ื“ื™ืจ ืืช ืฉื™ื˜ืช ื”ืื™ืžื•ืช ื‘ืืžืฆืขื•ืช ื˜ืœื’ืจื

ืื ืœื ื”ื’ื“ืจืช ืืช OpenVPN ืœืคื ื™ ื›ืŸ, ืงืจื ืžืืžืจ ืžืคื•ืจื˜.

ื”ื”ื•ืจืื•ืช ืžื‘ื•ืฆืขื•ืช ืขื ื“ื•ื’ืžืื•ืช ืขืœ CentOS 7.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”