Arvien biežÄk parÄdÄs nepiecieÅ”amÄ«ba nodroÅ”inÄt attÄlinÄtu piekļuvi korporatÄ«vajai videi neatkarÄ«gi no tÄ, vai jÅ«su lietotÄjiem vai partneriem ir nepiecieÅ”ama piekļuve konkrÄtam serverim jÅ«su organizÄcijÄ.
Å iem nolÅ«kiem lielÄkÄ daļa uzÅÄmumu izmanto VPN tehnoloÄ£iju, kas ir pierÄdÄ«jusi sevi kÄ uzticami aizsargÄtu veidu, kÄ nodroÅ”inÄt piekļuvi organizÄcijas vietÄjiem resursiem.
Mans uzÅÄmums nebija izÅÄmums, un mÄs, tÄpat kÄ daudzi citi, izmantojam Å”o tehnoloÄ£iju. Un, tÄpat kÄ daudzi citi, mÄs izmantojam Cisco ASA 55xx kÄ attÄlÄs piekļuves vÄrteju.
TÄ kÄ attÄlo lietotÄju skaits palielinÄs, ir jÄvienkÄrÅ”o akreditÄcijas datu izsniegÅ”anas procedÅ«ra. Bet tajÄ paÅ”Ä laikÄ tas jÄdara, neapdraudot droŔību.
MÄs paÅ”i atradÄm risinÄjumu, izmantojot divu faktoru autentifikÄciju savienojuma izveidei, izmantojot Cisco SSL VPN, izmantojot vienreizÄjas paroles. Un Ŕī publikÄcija jums pastÄstÄ«s, kÄ organizÄt Å”Ädu risinÄjumu ar minimÄlu laiku un nulles izmaksÄm par nepiecieÅ”amo programmatÅ«ru (ar nosacÄ«jumu, ka jÅ«su infrastruktÅ«rÄ jau ir Cisco ASA).
Tirgus ir pÄrpilns ar kastÄ«tiem risinÄjumiem vienreizÄjo paroļu Ä£enerÄÅ”anai, vienlaikus piedÄvÄjot daudz iespÄju to iegÅ«Å”anai, vai nu paroles nosÅ«tÄ«Å”ana ar SMS vai marÄ·ieru izmantoÅ”ana gan aparatÅ«ras, gan programmatÅ«ras (piemÄram, mobilajÄ tÄlrunÄ«). TaÄu vÄlme ietaupÄ«t naudu un vÄlme ietaupÄ«t naudu darba devÄjam paÅ”reizÄjÄs krÄ«zes apstÄkļos lika man atrast bezmaksas veidu, kÄ ieviest vienreizÄjo paroļu Ä£enerÄÅ”anas pakalpojumu. Kas, lai arÄ« bez maksas, nav daudz zemÄks par komerciÄliem risinÄjumiem (Å”eit mums ir jÄizdara atruna, norÄdot, ka Å”im produktam ir arÄ« komerciÄla versija, taÄu mÄs vienojÄmies, ka mÅ«su izmaksas naudÄ bÅ«s nulle).
TÄtad, mums ir nepiecieÅ”ams:
- Linux attÄls ar iebÅ«vÄtu rÄ«ku komplektu - multiOTP, FreeRADIUS un nginx, lai piekļūtu serverim caur tÄ«mekli (http://download.multiotp.net/ - VMware izmantoju gatavu attÄlu)
ā Active Directory serveris
ā pati Cisco ASA (ÄrtÄ«bas labad es izmantoju ASDM)
ā JebkurÅ” programmatÅ«ras marÄ·ieris, kas atbalsta TOTP mehÄnismu (es, piemÄram, izmantoju Google Authenticator, bet tas pats FreeOTP derÄs)
Es neiedziļinÄÅ”os detaļÄs par to, kÄ attÄls attÄ«stÄs. RezultÄtÄ jÅ«s saÅemsiet Debian Linux ar jau instalÄtu multiOTP un FreeRADIUS, kas konfigurÄts darbam kopÄ, un tÄ«mekļa saskarni OTP administrÄÅ”anai.
1. darbÄ«ba. MÄs iniciÄjam sistÄmu un konfigurÄjam to jÅ«su tÄ«klam
PÄc noklusÄjuma sistÄmai ir saknes saknes akreditÄcijas dati. DomÄju, ka visi uzminÄja, ka bÅ«tu lietderÄ«gi pÄc pirmÄs pieteikÅ”anÄs nomainÄ«t root lietotÄja paroli. JÄmaina arÄ« tÄ«kla iestatÄ«jumi (pÄc noklusÄjuma tas ir '192.168.1.44' ar vÄrteju '192.168.1.1'). PÄc tam jÅ«s varat restartÄt sistÄmu.
Izveidosim lietotÄju Active Directory OTP, ar paroli Mana SuperParole.
2. darbÄ«ba. Iestatiet savienojumu un importÄjiet Active Directory lietotÄjus
Lai to izdarÄ«tu, mums ir nepiecieÅ”ama piekļuve konsolei un tieÅ”i failam multiotp.php, izmantojot kuru mÄs konfigurÄsim savienojuma iestatÄ«jumus uz Active Directory.
Dodieties uz direktoriju /usr/local/bin/multiotp/ un pÄc kÄrtas izpildiet Å”Ädas komandas:
./multiotp.php -config default-request-prefix-pin=0
Nosaka, vai ir nepiecieÅ”ams papildu (pastÄvÄ«gs) spraudnis, ievadot vienreizÄju tapu (0 vai 1)
./multiotp.php -config default-request-ldap-pwd=0
Nosaka, vai ir nepiecieÅ”ama domÄna parole, ievadot vienreizÄjo PIN kodu (0 vai 1)
./multiotp.php -config ldap-server-type=1
Tiek norÄdÄ«ts LDAP servera veids (0 = parasts LDAP serveris, mÅ«su gadÄ«jumÄ 1 = Active Directory)
./multiotp.php -config ldap-cn-identifier="sAMAccountName"
NorÄda lietotÄjvÄrda uzrÄdÄ«Å”anas formÄtu (Ŕī vÄrtÄ«ba parÄdÄ«s tikai vÄrdu bez domÄna)
./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"
Tas pats, tikai grupai
./multiotp.php -config ldap-group-attribute="memberOf"
NorÄda metodi, lai noteiktu, vai lietotÄjs pieder grupai
./multiotp.php -config ldap-ssl=1
Vai man vajadzÄtu izmantot droÅ”u savienojumu ar LDAP serveri (protams - jÄ!)
./multiotp.php -config ldap-port=636
Ports savienojuma izveidei ar LDAP serveri
./multiotp.php -config ldap-domain-controllers=adSRV.domain.local
JÅ«su Active Directory servera adrese
./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"
MÄs norÄdÄm, kur sÄkt lietotÄju meklÄÅ”anu domÄnÄ
./multiotp.php -config ldap-bind-dn="[email protected]"
NorÄdiet lietotÄju, kuram ir meklÄÅ”anas tiesÄ«bas Active Directory
./multiotp.php -config ldap-server-password="MySuperPassword"
NorÄdiet lietotÄja paroli, lai izveidotu savienojumu ar Active Directory
./multiotp.php -config ldap-network-timeout=10
Taimauta iestatīŔana savienojuma izveidei ar Active Directory
./multiotp.php -config ldap-time-limit=30
MÄs noteicÄm laika ierobežojumu lietotÄja importÄÅ”anas darbÄ«bai
./multiotp.php -config ldap-activated=1
Active Directory savienojuma konfigurÄcijas aktivizÄÅ”ana
./multiotp.php -debug -display-log -ldap-users-sync
MÄs importÄjam lietotÄjus no Active Directory
3. darbÄ«ba. Ä¢enerÄjiet pilnvaras QR kodu
Å eit viss ir ÄrkÄrtÄ«gi vienkÄrÅ”i. PÄrlÅ«kprogrammÄ atveriet OTP servera tÄ«mekļa saskarni, piesakieties (neaizmirstiet nomainÄ«t administratora noklusÄjuma paroli!) un noklikŔķiniet uz pogas āDrukÄtā:
Å Ä«s darbÄ«bas rezultÄtÄ tiks izveidota lapa, kurÄ bÅ«s divi QR kodi. MÄs drosmÄ«gi ignorÄjam pirmo no tiem (neskatoties uz pievilcÄ«go uzrakstu Google Authenticator / Authenticator / 2 Steps Authenticator), un atkal mÄs drosmÄ«gi skenÄjam otro kodu tÄlruÅa programmatÅ«ras marÄ·ierÄ:
(jÄ, es apzinÄti sabojÄju QR kodu, lai padarÄ«tu to nelasÄmu).
PÄc Å”o darbÄ«bu veikÅ”anas jÅ«su lietojumprogrammÄ ik pÄc trÄ«sdesmit sekundÄm tiks Ä£enerÄta seÅ”ciparu parole.
Lai pÄrliecinÄtos, varat to pÄrbaudÄ«t tajÄ paÅ”Ä saskarnÄ:
Ievadot lietotÄjvÄrdu un vienreizÄjo paroli no tÄlruÅa aplikÄcijas. Vai saÅÄmÄt pozitÄ«vu atbildi? TÄtad ejam tÄlÄk.
4. solis. FreeRADIUS darbÄ«bas papildu konfigurÄÅ”ana un testÄÅ”ana
KÄ jau minÄju iepriekÅ”, multiOTP jau ir konfigurÄts darbam ar FreeRADIUS, atliek tikai palaist testus un FreeRADIUS konfigurÄcijas failam pievienot informÄciju par mÅ«su VPN vÄrteju.
MÄs atgriežamies servera konsolÄ, direktorijÄ /usr/local/bin/multiotp/, ievadiet:
./multiotp.php -config debug=1
./multiotp.php -config display-log=1
Tostarp detalizÄtÄka mežizstrÄde.
FreeRADIUS klientu konfigurÄcijas failÄ (/etc/freeradius/clinets.conf) komentÄjiet visas rindas, kas saistÄ«tas ar localhost un pievienojiet divus ierakstus:
client localhost {
ipaddr = 127.0.0.1
secret = testing321
require_message_authenticator = no
}
- pÄrbaudei
client 192.168.1.254/32 {
shortname = CiscoASA
secret = ConnectToRADIUSSecret
}
- mÅ«su VPN vÄrtejai.
RestartÄjiet FreeRADIUS un mÄÄ£iniet pieteikties:
radtest username 100110 localhost 1812 testing321
kur lietotÄjvÄrds = lietotÄjvÄrds, 100110 = parole, ko mums iedeva lietojumprogramma tÄlrunÄ«, localhost = RADIUS servera adrese, 1812 ā RADIUS servera ports, testing321 ā RADIUS servera klienta parole (ko mÄs norÄdÄ«jÄm konfigurÄcijÄ).
Å Ä«s komandas rezultÄts tiks izvadÄ«ts aptuveni Å”Ädi:
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
Tagad mums ir jÄpÄrliecinÄs, vai lietotÄjs ir veiksmÄ«gi autentificÄts. Lai to izdarÄ«tu, mÄs apskatÄ«sim paÅ”u multiotp žurnÄlu:
tail /var/log/multiotp/multiotp.log
Un, ja ir pÄdÄjais ieraksts:
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
Tad viss noritÄja labi un mÄs varam pabeigt
5. darbÄ«ba: konfigurÄjiet Cisco ASA
Vienosimies, ka mums jau ir konfigurÄta grupa un politikas piekļuvei, izmantojot SLL VPN, kas konfigurÄtas kopÄ ar Active Directory, un Å”im profilam ir jÄpievieno divu faktoru autentifikÄcija.
1. Pievienojiet jaunu AAA serveru grupu:
2. Pievienojiet grupai mūsu multiOTP serveri:
3. MÄs rediÄ£Äjam savienojuma profils, iestatot Active Directory serveru grupu kÄ galveno autentifikÄcijas serveri:
4. CilnÄ Papildu -> AutentifikÄcija MÄs arÄ« atlasÄm Active Directory serveru grupu:
5. CilnÄ Advanced -> Secondary autentifikÄciju, atlasiet izveidoto serveru grupu, kurÄ ir reÄ£istrÄts multiOTP serveris. Å
emiet vÄrÄ, ka sesijas lietotÄjvÄrds ir mantots no primÄrÄs AAA serveru grupas:
Lietojiet iestatījumus un
6. darbÄ«ba jeb pÄdÄjais
PÄrbaudÄ«sim, vai divu faktoru autentifikÄcija darbojas SLL VPN:
Voila! Izveidojot savienojumu, izmantojot Cisco AnyConnect VPN klientu, jums tiks prasÄ«ta arÄ« otra, vienreizÄja parole.
Es ceru, ka Å”is raksts kÄdam palÄ«dzÄs un kÄdam liks pÄrdomÄm, kÄ to izmantot, bezmaksas OTP serveris citiem uzdevumiem. Ja vÄlaties, dalieties komentÄros.
Avots: www.habr.com