ืืฆืืจื ืืกืคืง ืืืฉื ืืจืืืง ืืกืืืื ืืจืืื ืืช ืืชืขืืจืจ ืืขืชืื ืงืจืืืืช ืืืชืจ ืืืืชืจ, ืื ืืฉื ื ืื ืืื ืืืฉืชืืฉืื ืฉืื ืื ืืฉืืชืคืื ืฉืืงืืงืื ืืืืฉื ืืฉืจืช ืืกืืื ืืืจืืื ืฉืื.
ืืืืจืืช ืืื, ืจืื ืืืืจืืช ืืฉืชืืฉืืช ืืืื ืืืืืืืช VPN, ืืฉืจ ืืืืืื ืืช ืขืฆืื ืืืจื ืืืื ืช ืืืืื ื ืืกืคืง ืืืฉื ืืืฉืืืื ืืืงืืืืื ืฉื ืืืจืืื.
ืืืืจื ืฉืื ืื ืืืืชื ืืืฆืืช ืืืคื, ืืื ืื ื, ืืื ืจืืื ืืืจืื, ืืฉืชืืฉืื ืืืื ืืืืืื ืืื. ืืืื ืจืืื ืืืจืื, ืื ื ืืฉืชืืฉืื ื-Cisco ASA 55xx ืืฉืขืจ ืืืฉื ืืจืืืง.
ืืื ืฉืืกืคืจ ืืืฉืชืืฉืื ืืืจืืืงืื ืืื, ืืฉ ืฆืืจื ืืคืฉื ืืช ืืืื ืื ืคืงืช ืืืืฉืืจืื. ืื ืืื ืขื ืืืช, ืืฉ ืืขืฉืืช ืืืช ืืืื ืืคืืืข ืืืืืืืช.
ืขืืืจ ืขืฆืื ื, ืืฆืื ื ืคืชืจืื ืืฉืืืืฉ ืืืืืืช ืื-ืืืจืื ืืืืืืจ ืืืืฆืขืืช Cisco SSL VPN, ืืืืฆืขืืช ืกืืกืืืืช ืื ืคืขืืืืช. ืืืคืจืกืื ืืื ืืกืคืจ ืืื ืืื ืืืจืื ืคืชืจืื ืืื ืืืื ืืืื ืืื ืืืคืก ืขืืืืืช ืขืืืจ ืืชืืื ื ืืืจืืฉื (ืืชื ืื ืฉืืืจ ืืฉ ืืื Cisco ASA ืืชืฉืชืืช ืฉืืื).
ืืฉืืง ืืืืฉ ืืคืชืจืื ืืช ืืจืืืื ืืืคืงืช ืกืืกืืืืช ืื ืคืขืืืืช, ืชืื ืฉืืื ืืฆืืข ืืคืฉืจืืืืช ืจืืืช ืืืฉืืชื, ืืื ืื ืื ืฉืืืืช ืืกืืกืื ืืืืฆืขืืช SMS ืื ืฉืืืืฉ ืืืกืืืื ืื, ืื ืืืืืจื ืืื ืืชืืื ื (ืืืฉื, ืืืืคืื ื ืืื). ืืื ืืจืฆืื ืืืกืื ืืกืฃ ืืืจืฆืื ืืืกืื ืืกืฃ ืืืขืกืืง ืฉืื, ืืืฉืืจ ืื ืืืื, ืืืืฆื ืืืชื ืืืฆืื ืืจื ืืื ืืืช ืืืืืืข ืฉืืจืืช ืืืคืงืช ืกืืกืืืืช ืื ืคืขืืืืช. ืฉืืื ื ืืื ืื, ืืื ืื ื ืืืช ืืืจืื ืืคืชืจืื ืืช ืืกืืจืืื (ืืื ืืืื ืืขืฉืืช ืืืื ื, ืืฆืืื ืฉืืืืฆืจ ืืื ืืฉ ืื ืืจืกื ืืกืืจืืช, ืืื ืืกืืื ื ืฉืืขืืืืืช ืฉืื ื, ืืืกืฃ, ืืืื ืืคืก).
ืื ืื ืื ื ืฆืจืืืื:
- ืชืืื ืช ืืื ืืงืก ืขื ืกื ืืืื ืืืื ื - multiOTP, FreeRADIUS ื-nginx, ืืืืฉื ืืฉืจืช ืืจื ืืืื ืืจื ื (http://download.multiotp.net/ - ืืฉืชืืฉืชื ืืชืืื ื ืืืื ื ืขืืืจ VMware)
- ืฉืจืช Active Directory
โ Cisco ASA ืขืฆืื (ืืืขืื ื ืืืืช, ืื ื ืืฉืชืืฉ ื-ASDM)
- ืื ืืกืืืื ืชืืื ื ืฉืชืืื ืืื ืื ืื TOTP (ืื ื, ืืืฉื, ืืฉืชืืฉ ื-Google Authenticator, ืืื ืืืชื FreeOTP ืืขืฉื)
ืื ื ืื ืืื ืก ืืคืจืืื ืขื ืืื ืืชืืื ื ืืชืคืชืืช. ืืชืืฆืื ืืื, ืชืงืื Debian Linux ืขื multiOTP ื-FreeRADIUS ืฉืืืจ ืืืชืงื ืื, ืืืืืจืื ืืขืืื ืืื ืืืืฉืง ืืื ืืจื ื ืื ืืืื OTP.
ืฉืื 1. ืื ื ืืคืขืืืื ืืช ืืืขืจืืช ืืืืืืจืื ืืืชื ืขืืืจ ืืจืฉืช ืฉืื
ืืืจืืจืช ืืืื, ืืืขืจืืช ืืืืขื ืขื ืืืฉืืจื root root. ืื ื ืืืฉื ืฉืืืื ื ืืืฉื ืฉืื ืืืื ืจืขืืื ืืื ืืฉื ืืช ืืช ืกืืกืืช ืืฉืชืืฉ ืืฉืืจืฉ ืืืืจ ืืื ืืกื ืืจืืฉืื ื. ืืชื ืื ืฆืจืื ืืฉื ืืช ืืช ืืืืจืืช ืืจืฉืช (ืืืจืืจืช ืืืื ืื '192.168.1.44' ืขื ืืฉืขืจ '192.168.1.1'). ืืืืจ ืืื ืชืืื ืืืชืื ืืช ืืืขืจืืช.
ืืืื ื ืืฆืืจ ืืฉืชืืฉ ื-Active Directory Otp, ืขื ืกืืกืื MySuperPassword.
ืฉืื 2. ืืืืจ ืืช ืืืืืืจ ืืืืื ืืฉืชืืฉื Active Directory
ืืฉื ืื, ืื ื ืืงืืงืื ืืืืฉื ืืงืื ืกืืื, ืืืฉืืจืืช ืืงืืืฅ multiotp.php, ืืืืฆืขืืชื ื ืืืืจ ืืช ืืืืจืืช ืืืืืืจ ื-Active Directory.
ืขืืืจ ืืกืคืจืืื /usr/local/bin/multiotp/ ืืืฆืข ืืช ืืคืงืืืืช ืืืืืช ืืชืืจื:
./multiotp.php -config default-request-prefix-pin=0
ืงืืืข ืื ื ืืจืฉืช ืกืืื ื ืืกืคืช (ืงืืืขื) ืืขืช ืืื ืช ืกืืื ืื ืคืขืืืช (0 ืื 1)
./multiotp.php -config default-request-ldap-pwd=0
ืงืืืข ืื ื ืืจืฉืช ืกืืกืืช ืืืืืื ืืขืช โโืืื ืช ืกืืื ืื ืคืขืืืช (0 ืื 1)
./multiotp.php -config ldap-server-type=1
ืกืื ืฉืจืช LDAP ืืฆืืื (0 = ืฉืจืช LDAP ืจืืื, ืืืงืจื ืฉืื ื 1 = Active Directory)
./multiotp.php -config ldap-cn-identifier="sAMAccountName"
ืืฆืืื ืืช ืืคืืจืื ืฉืื ืืืฆื ืฉื ืืืฉืชืืฉ (ืขืจื ืื ืืฆืื ืจืง ืืช ืืฉื, ืืื ืืืืืืื)
./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"
ืืืชื ืืืจ, ืจืง ืืงืืืฆื
./multiotp.php -config ldap-group-attribute="memberOf"
ืืฆืืื ืฉืืื ืืงืืืขื ืื ืืฉืชืืฉ ืฉืืื ืืงืืืฆื
./multiotp.php -config ldap-ssl=1
ืืื ืขืื ืืืฉืชืืฉ ืืืืืืจ ืืืืืื ืืฉืจืช LDAP (ืืืืื, ืื!)
./multiotp.php -config ldap-port=636
ืืฆืืื ืืืืืืจ ืืฉืจืช LDAP
./multiotp.php -config ldap-domain-controllers=adSRV.domain.local
ืืชืืืช ืฉืจืช ื-Active Directory ืฉืื
./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"
ืื ื ืืฆืืื ืื ืืืื ืืืชืืื ืืืคืฉ ืืฉืชืืฉืื ืืืืืืื
./multiotp.php -config ldap-bind-dn="[email protected]"
ืฆืืื ืืฉืชืืฉ ืฉืืฉ ืื ืืืืืืช ืืืคืืฉ ื-Active Directory
./multiotp.php -config ldap-server-password="MySuperPassword"
ืฆืืื ืืช ืกืืกืืช ืืืฉืชืืฉ ืืื ืืืชืืืจ ื-Active Directory
./multiotp.php -config ldap-network-timeout=10
ืืืืจืช ืืื ืงืฆืื ืืืืืืจ ื-Active Directory
./multiotp.php -config ldap-time-limit=30
ืงืืขื ื ืืืืืช ืืื ืืคืขืืืช ืืืืื โโืืืฉืชืืฉ
./multiotp.php -config ldap-activated=1
ืืคืขืืช ืชืฆืืจืช ืืืืืืจ ืฉื Active Directory
./multiotp.php -debug -display-log -ldap-users-sync
ืื ื ืืืืืืื ืืฉืชืืฉืื ื- Active Directory
ืฉืื 3. ืฆืืจ ืงืื QR ืขืืืจ ืืืกืืืื
ืืื ืืื ืคืฉืื ืืืืชืจ. ืคืชืื ืืช ืืืฉืง ืืืื ืืจื ื ืฉื ืฉืจืช ื-OTP ืืืคืืคื, ืืืื ืกื (ืื ืชืฉืืื ืืฉื ืืช ืืช ืกืืกืืช ืืจืืจืช ืืืืื ืฉื ืืื ืื!), ืืืืฅ ืขื ืืคืชืืจ "ืืืคืก":
ืืชืืฆืื ืฉื ืคืขืืื ืื ืชืืื ืืฃ ืฉืืืื ืฉื ื ืงืืื QR. ืื ืื ื ืืชืขืืืื ืืืืืฅ ืืืจืืฉืื ืฉืืื (ืืืจืืช ืืืชืืืช ืืืืจืงืืืืืช Google Authenticator / Authenticator / 2 Steps Authenticator), ืืฉืื ืื ื ืกืืจืงืื ืืืืืฅ ืืช ืืงืื ืืฉื ื ืืชืื ืืกืืืื ืชืืื ื ืืืืคืื:
(ืื, ืืืืื ื ืงืืงืืชื ืืช ืงืื ื-QR ืืื ืฉืืืื ืืืชื ืงืจืื).
ืืืืจ ืืฉืืืช ืคืขืืืืช ืืื, ืกืืกืื ืืช ืฉืฉ ืกืคืจืืช ืชืชืืื ืืืืืืฆืจ ืืืคืืืงืฆืื ืฉืื ืื ืฉืืืฉืื ืฉื ืืืช.
ืืื ืืืืืช ืืืื, ืืชื ืืืื ืืืืืง ืืช ืื ืืืืชื ืืืฉืง:
ืขื ืืื ืืื ืช ืฉื ืืืฉืชืืฉ ืืืกืืกืื ืืื ืคืขืืืช ืืืืคืืืงืฆืื ืืืืคืื. ืืื ืงืืืืช ืชืฉืืื ืืืืืืช? ืื ืืืื ื ืืฉืื ืืืื.
ืฉืื 4. ืชืฆืืจื ืืืืืงื ื ืืกืคืช ืฉื ืคืขืืืช FreeRADIUS
ืืคื ืฉืฆืืื ืชื ืืขืื, multiOTP ืืืจ ืืืืืจ ืืขืืื ืขื FreeRADIUS, ืื ืื ืฉื ืืชืจ ืืื ืืืจืืฅ ืืืืงืืช ืืืืืกืืฃ ืืืืข ืขื ืฉืขืจ ื-VPN ืฉืื ื ืืงืืืฅ ืืชืฆืืจื ืฉื FreeRADIUS.
ืื ืื ื ืืืืจืื ืืงืื ืกืืืช ืืฉืจืช, ืืกืคืจืืื /usr/local/bin/multiotp/, ืืืืื ืก:
./multiotp.php -config debug=1
./multiotp.php -config display-log=1
ืืืื ืจืืฉืื ืืคืืจื ืืืชืจ.
ืืงืืืฅ ืืชืฆืืจื ืฉื ืืงืืืืช FreeRADIUS (/etc/freeeradius/clinets.conf) ืืขืจื ืืช ืื ืืฉืืจืืช ืืงืฉืืจืืช localhost ืืืืกืฃ ืฉื ื ืขืจืืื:
client localhost {
ipaddr = 127.0.0.1
secret = testing321
require_message_authenticator = no
}
- ืืืืื
client 192.168.1.254/32 {
shortname = CiscoASA
secret = ConnectToRADIUSSecret
}
- ืขืืืจ ืฉืขืจ ื-VPN ืฉืื ื.
ืืคืขื ืืืืฉ ืืช FreeRADIUS ืื ืกื ืืืืื ืก:
radtest username 100110 localhost 1812 testing321
ืืืคื ืฉื ืืฉืชืืฉ = ืฉื ืืฉืชืืฉ, 100110 = ืกืืกืื ืฉื ืืชื ื ืื ื ืขื ืืื ืืืคืืืงืฆืื ืืืืคืื, localhost = ืืชืืืช ืฉืจืช RADIUS, 1812 - ืืฆืืืช ืฉืจืช RADIUS, testing321 - ืกืืกืืช ืืงืื ืฉืจืช RADIUS (ืฉืฆืืื ื ืืชืฆืืจื).
ืืชืืฆืื ืฉื ืคืงืืื ืื ืชืืฆื ืืขืจื ืื:
Sending Access-Request of id 44 to 127.0.0.1 port 1812
User-Name = "username"
User-Password = "100110"
NAS-IP-Address = 127.0.1.1
NAS-Port = 1812
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20
ืืขืช ืขืืื ื ืืืืื ืฉืืืฉืชืืฉ ืืืืืช ืืืฆืืื. ืืฉื ืื, ื ืกืชืื ืขื ืืืืื ืฉื multiotp ืขืฆืื:
tail /var/log/multiotp/multiotp.log
ืืื ืืขืจื ืืืืจืื ืืฉ:
2016-09-01 08:58:17 notice username User OK: User username successfully logged in from 127.0.0.1
2016-09-01 08:58:17 debug Debug Debug: 0 OK: Token accepted from 127.0.0.1
ืืื ืืื ืืื ืืฉืืจื ืื ืืื ืืืฉืืื
ืฉืื 5: ืืืืจ ืืช Cisco ASA
ืืืื ื ืกืืื ืฉืืืจ ืืฉ ืื ื ืงืืืฆื ืืืืืจืช ืืืืื ืืืช ืืืืฉื ืืจื SLL VPN, ืืืืืืจืื ืืฉืืืื ืขื Active Directory, ืืขืืื ื ืืืืกืืฃ ืืืืืช ืื-ืืืจืื ืขืืืจ ืคืจืืคืื ืื.
1. ืืืกืฃ ืงืืืฆืช ืฉืจืช AAA ืืืฉื:
2. ืืืกืฃ ืืช ืฉืจืช ื-multiOTP ืฉืื ื ืืงืืืฆื:
3. ืื ืื ื ืขืืจืืื ืคืจืืคืื ืืืืืจ, ืืืืจืช ืงืืืฆืช ืฉืจืชื Active Directory ืืฉืจืช ืืืืืืช ืืจืืฉื:
4. ืืจืืืกืืื ืืชืงืื -> ืืืืืช ืื ื ืื ืืืืจืื ืืช ืงืืืฆืช ืืฉืจืชืื ืฉื Active Directory:
5. ืืจืืืกืืื ืืชืงืื -> ืืฉื ื ืืืืืช, ืืืจ ืืช ืงืืืฆืช ืืฉืจืชืื ืฉื ืืฆืจื ืื ืจืฉืื ืฉืจืช multiOTP. ืฉืื ืื ืฉืฉื ืืืฉืชืืฉ ื-Session ืขืืืจ ืืืจืืฉื ืืงืืืฆืช ืฉืจืชื AAA ืืจืืฉืืช:
ืืื ืืช ืืืืืจืืช ื
ืฉืื 6, ืืื ืืื ืืืืจืื
ืืืื ื ืืืืง ืื ืืืืืช ืื-ืฉืืื ืขืืื ืขืืืจ SLL VPN:
ืืืืื! ืืขืช ืืชืืืจืืช ืืจื Cisco AnyConnect VPN Client, ืชืชืืงืฉ ืื ืืืืื ืกืืกืื ืฉื ืืื ืืื ืคืขืืืช.
ืื ื ืืงืืื ืฉืืืืืจ ืืื ืืขืืืจ ืืืืฉืื, ืืฉืืื ืืืชื ืืืืฉืื ืืืืจ ืืืืฉืื ืืื ืืืฉืชืืฉ ืืื, ืืืคืฉื ืฉืจืช OTP, ืืืฉืืืืช ืืืจืืช. ืฉืชืคื ืืชืืืืืช ืื ืชืจืฆื.
ืืงืืจ: www.habr.com