Pindhah menyang 2FA (Otentikasi rong faktor kanggo ASA SSL VPN)

Kebutuhan kanggo nyedhiyakake akses remot menyang lingkungan perusahaan saya tambah akeh, ora preduli manawa pangguna utawa mitra sampeyan butuh akses menyang server tartamtu ing organisasi sampeyan.

Kanggo tujuan kasebut, umume perusahaan nggunakake teknologi VPN, sing wis mbuktekake dhewe minangka cara sing bisa dipercaya kanggo nyedhiyakake akses menyang sumber daya lokal organisasi.

Perusahaanku ora ana sing istimΓ©wa, lan kita, kaya wong liya, nggunakake teknologi iki. Lan, kaya akeh liyane, kita nggunakake Cisco ASA 55xx minangka gateway akses remot.

Nalika jumlah pangguna remot mundhak, perlu kanggo nyederhanakake prosedur kanggo ngetokake kredensial. Nanging ing wektu sing padha, iki kudu ditindakake tanpa kompromi safety.

Kanggo awake dhewe, kita nemokake solusi nggunakake otentikasi rong faktor kanggo nyambungake liwat Cisco SSL VPN, nggunakake sandhi siji-wektu. Lan publikasi iki bakal pitutur marang kowe carane ngatur solusi kuwi karo wektu minimal lan nul biaya kanggo piranti lunak sing perlu (yen sampeyan wis duwe Cisco ASA ing infrastruktur).

Pasar kebak karo solusi kothak kanggo ngasilake sandhi siji-wektu, nalika nawakake akeh pilihan kanggo entuk, bisa ngirim sandhi liwat SMS utawa nggunakake token, hardware lan piranti lunak (contone, ing ponsel). Nanging kepinginan kanggo nyimpen dhuwit lan kepinginan kanggo nyimpen dhuwit kanggo juragan, ing krisis saiki, meksa aku kanggo golek cara gratis kanggo ngleksanakake layanan kanggo nggawe sandhi siji-wektu. Sing, nalika gratis, ora kalah karo solusi komersial (ing kene kita kudu nggawe reservasi, nyathet yen produk iki uga duwe versi komersial, nanging kita setuju yen biaya kita, ing dhuwit, bakal nol).

Dadi, kita kudu:

- Gambar Linux kanthi alat sing dibangun - multiOTP, FreeRADIUS lan nginx, kanggo ngakses server liwat web (http://download.multiotp.net/ - Aku nggunakake gambar sing wis siap kanggo VMware)
- Server Direktori Aktif
- Cisco ASA dhewe (kanggo penak, aku nggunakake ASDM)
- Token piranti lunak apa wae sing ndhukung mekanisme TOTP (aku, contone, nggunakake Google Authenticator, nanging FreeOTP sing padha bakal ditindakake)

Aku ora bakal pindhah menyang rincian carane gambar unfolds. AkibatΓ©, sampeyan bakal nampa Debian Linux kanthi multiOTP lan FreeRADIUS sing wis diinstal, dikonfigurasi kanggo bisa bebarengan, lan antarmuka web kanggo administrasi OTP.

Langkah 1. Kita miwiti sistem lan ngatur kanggo jaringan
Kanthi gawan, sistem kasebut dilengkapi karo kredensial root root. Aku saben wong guessed sing bakal dadi apike kanggo ngganti tembung sandhi pangguna root sawise mlebu pisanan. Sampeyan uga kudu ngganti setelan jaringan (kanthi standar yaiku '192.168.1.44' karo gateway '192.168.1.1'). Sawise sampeyan bisa urip maneh sistem.

Ayo nggawe pangguna ing Active Directory otp, nganggo sandhi MySuperPassword.

Langkah 2. Nggawe sambungan lan ngimpor pangguna Active Directory
Kanggo nindakake iki, kita kudu akses menyang console, lan langsung menyang file multiotp.php, nggunakake kang kita bakal ngatur setelan sambungan kanggo Active Directory.

Pindhah menyang direktori /usr/local/bin/multiotp/ lan nglakokake perintah ing ngisor iki kanthi giliran:

./multiotp.php -config default-request-prefix-pin=0

Nemtokake apa pin tambahan (permanen) dibutuhake nalika ngetik pin siji-wektu (0 utawa 1)

./multiotp.php -config default-request-ldap-pwd=0

Nemtokake apa sandhi domain dibutuhake nalika ngetik pin siji-wektu (0 utawa 1)

./multiotp.php -config ldap-server-type=1

Jinis server LDAP dituduhake (0 = server LDAP biasa, ing kasus kita 1 = Active Directory)

./multiotp.php -config ldap-cn-identifier="sAMAccountName"

Nemtokake format kanggo nampilake jeneng pangguna (nilai iki mung bakal nampilake jeneng, tanpa domain)

./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"

Bab sing padha, mung kanggo grup

./multiotp.php -config ldap-group-attribute="memberOf"

Nemtokake cara kanggo nemtokake manawa pangguna kalebu klompok

./multiotp.php -config ldap-ssl=1

Apa aku kudu nggunakake sambungan aman menyang server LDAP (mesthi, ya!)

./multiotp.php -config ldap-port=636

Port kanggo nyambungake menyang server LDAP

./multiotp.php -config ldap-domain-controllers=adSRV.domain.local

Alamat server Active Directory sampeyan

./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"

Kita nunjukake ngendi arep miwiti nggoleki pangguna ing domain kasebut

./multiotp.php -config ldap-bind-dn="[email protected]"

Nemtokake pangguna sing nduweni hak telusuran ing Active Directory

./multiotp.php -config ldap-server-password="MySuperPassword"

Nemtokake sandhi pangguna kanggo nyambung menyang Active Directory

./multiotp.php -config ldap-network-timeout=10

Nyetel wektu entek kanggo nyambungake menyang Active Directory

./multiotp.php -config ldap-time-limit=30

Kita nyetel watesan wektu kanggo operasi impor pangguna

./multiotp.php -config ldap-activated=1

Ngaktifake konfigurasi sambungan Active Directory

./multiotp.php -debug -display-log -ldap-users-sync

Kita ngimpor pangguna saka Active Directory

Langkah 3. Nggawe kode QR kanggo token
Kabeh ing kene gampang banget. Bukak antarmuka web server OTP ing browser, mlebu (aja lali ngganti tembung sandhi standar kanggo admin!), Lan klik tombol "Cetak":

Pindhah menyang 2FA (Otentikasi rong faktor kanggo ASA SSL VPN)
Asil saka tumindak iki bakal dadi kaca sing ngemot rong kode QR. Kita kanthi kendel nglirwakake sing sepisanan (senadyan prasasti Google Authenticator / Authenticator / 2 Steps Authenticator sing menarik), lan maneh kanthi kendel mindai kode kapindho dadi token piranti lunak ing telpon:

Pindhah menyang 2FA (Otentikasi rong faktor kanggo ASA SSL VPN)
(ya, aku sengaja ngrusak kode QR supaya ora bisa diwaca).

Sawise ngrampungake tumindak kasebut, sandhi enem digit bakal diwiwiti ing aplikasi sampeyan saben telung puluh detik.

Kanggo mesthekake, sampeyan bisa mriksa ing antarmuka sing padha:

Pindhah menyang 2FA (Otentikasi rong faktor kanggo ASA SSL VPN)
Kanthi ngetik jeneng pangguna lan sandhi sepisan saka aplikasi ing telpon. Apa sampeyan nampa respon positif? Dadi kita nerusake.

Langkah 4. Konfigurasi tambahan lan pangujian operasi FreeRADIUS
Kaya sing wis dakcritakake ing ndhuwur, multiOTP wis dikonfigurasi kanggo nggarap FreeRADIUS, sing isih ana yaiku nglakokake tes lan nambah informasi babagan gateway VPN kita menyang file konfigurasi FreeRADIUS.

Kita bali menyang konsol server, menyang direktori /usr/local/bin/multiotp/, mlebu:

./multiotp.php -config debug=1
./multiotp.php -config display-log=1

Kalebu logging luwih rinci.

Ing file konfigurasi klien FreeRADIUS (/etc/freeradius/clinets.conf) komentar metu kabeh baris sing gegandhengan karo localhost lan nambah rong entri:

client localhost {
        ipaddr = 127.0.0.1
        secret          = testing321
        require_message_authenticator = no
}

- kanggo tes

client 192.168.1.254/32 {
        shortname =     CiscoASA
        secret =        ConnectToRADIUSSecret
}

β€” kanggo gateway VPN kita.

Wiwiti maneh FreeRADIUS lan coba mlebu:

radtest username 100110 localhost 1812 testing321

ngendi jeneng panganggo = jeneng panganggo, 100110 = tembung sandhi sing diwenehake dening aplikasi ing telpon, localhost = alamat server RADIUS, 1812 - Port server RADIUS, testing321 - sandi klien server RADIUS (kang kita kasebut ing config).

Asil saka printah iki bakal metu kira-kira kaya ing ngisor iki:

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

Saiki kita kudu nggawe manawa pangguna wis kasil dikonfirmasi. Kanggo nindakake iki, kita bakal ndeleng log multiotp dhewe:

tail /var/log/multiotp/multiotp.log

Lan yen entri pungkasan ana:

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

Banjur kabeh dadi apik lan kita bisa ngrampungake

Langkah 5: Konfigurasi Cisco ASA
Ayo dadi setuju sing kita wis duwe grup diatur lan kawicaksanan kanggo akses liwat SLL VPN, diatur magepokan karo Active Directory, lan kita kudu nambah bukti asli loro-faktor kanggo profil iki.

1. Tambah grup server AAA anyar:

Pindhah menyang 2FA (Otentikasi rong faktor kanggo ASA SSL VPN)
2. Tambah server multiOTP kita menyang grup:

Pindhah menyang 2FA (Otentikasi rong faktor kanggo ASA SSL VPN)
3. Kita nyunting profil sambungan, nyetel grup server Active Directory minangka server otentikasi utama:

Pindhah menyang 2FA (Otentikasi rong faktor kanggo ASA SSL VPN)
4. Ing tab Advanced -> Authentication Kita uga milih grup server Active Directory:

Pindhah menyang 2FA (Otentikasi rong faktor kanggo ASA SSL VPN)
5. Ing tab Majeng -> Sekunder otentikasi, pilih grup server digawe kang server multiOTP kadhaftar. Elinga yen jeneng panganggo Sesi diwarisake saka grup server AAA utama:

Pindhah menyang 2FA (Otentikasi rong faktor kanggo ASA SSL VPN)
Aplikasi setelan lan

Langkah 6, alias sing pungkasan
Ayo priksa manawa otentikasi rong faktor bisa digunakake kanggo SLL VPN:

Pindhah menyang 2FA (Otentikasi rong faktor kanggo ASA SSL VPN)
Voila! Nalika nyambungake liwat Klien Cisco AnyConnect VPN, sampeyan uga bakal dijaluk sandhi kaping pindho.

Mugi sing artikel iki bakal bantuan wong, lan iku bakal menehi wong pangan kanggo dipikir carane nggunakake iki, gratis Server OTP, kanggo tugas liyane. Nuduhake ing komentar yen sampeyan pengin.

Source: www.habr.com

Add a comment