Buka 2FA (Otentikasi dua faktor untuk ASA SSL VPN)

Kebutuhan untuk menyediakan akses jarak jauh ke lingkungan perusahaan semakin sering muncul, tidak peduli apakah pengguna atau mitra Anda yang memerlukan akses ke server tertentu di organisasi Anda.

Untuk tujuan ini, sebagian besar perusahaan menggunakan teknologi VPN, yang telah terbukti menjadi cara yang andal dalam menyediakan akses ke sumber daya lokal organisasi.

Perusahaan saya tidak terkecuali, dan kami, seperti banyak perusahaan lainnya, menggunakan teknologi ini. Dan, seperti banyak lainnya, kami menggunakan Cisco ASA 55xx sebagai gateway akses jarak jauh.

Seiring dengan meningkatnya jumlah pengguna jarak jauh, terdapat kebutuhan untuk menyederhanakan prosedur penerbitan kredensial. Namun pada saat yang sama, hal ini harus dilakukan tanpa mengorbankan keselamatan.

Bagi kami sendiri, kami menemukan solusi dalam menggunakan otentikasi dua faktor untuk menghubungkan melalui Cisco SSL VPN, menggunakan kata sandi satu kali. Dan publikasi ini akan memberi tahu Anda cara mengatur solusi tersebut dengan waktu minimal dan biaya nol untuk perangkat lunak yang diperlukan (asalkan Anda sudah memiliki Cisco ASA di infrastruktur Anda).

Pasar penuh dengan solusi kotak untuk menghasilkan kata sandi satu kali, sekaligus menawarkan banyak pilihan untuk mendapatkannya, baik itu mengirimkan kata sandi melalui SMS atau menggunakan token, baik perangkat keras maupun perangkat lunak (misalnya, pada ponsel). Namun keinginan untuk menghemat uang dan keinginan untuk menghemat uang untuk majikan saya, dalam krisis saat ini, memaksa saya untuk menemukan cara gratis untuk mengimplementasikan layanan pembuatan kata sandi satu kali. Yang, meskipun gratis, tidak kalah dengan solusi komersial (di sini kita harus membuat reservasi, mengingat bahwa produk ini juga memiliki versi komersial, tetapi kami sepakat bahwa biaya kami, dalam bentuk uang, akan menjadi nol).

Jadi, kita perlu:

- Gambar Linux dengan seperangkat alat bawaan - multiOTP, FreeRADIUS dan nginx, untuk mengakses server melalui web (http://download.multiotp.net/ - Saya menggunakan gambar siap pakai untuk VMware)
β€” Server Direktori Aktif
β€” Cisco ASA sendiri (untuk kenyamanan, saya menggunakan ASDM)
β€” Token perangkat lunak apa pun yang mendukung mekanisme TOTP (Saya, misalnya, menggunakan Google Authenticator, tetapi FreeOTP yang sama juga bisa)

Saya tidak akan menjelaskan secara detail bagaimana gambar tersebut terungkap. Hasilnya, Anda akan menerima Debian Linux dengan multiOTP dan FreeRADIUS yang sudah terinstal, dikonfigurasi untuk bekerja bersama, dan antarmuka web untuk administrasi OTP.

Langkah 1. Kami memulai sistem dan mengkonfigurasinya untuk jaringan Anda
Secara default, sistem dilengkapi dengan kredensial root. Saya rasa semua orang menebak bahwa sebaiknya mengubah kata sandi pengguna root setelah login pertama. Anda juga perlu mengubah pengaturan jaringan (secara default adalah '192.168.1.44' dengan gateway '192.168.1.1'). Setelah itu Anda dapat me-reboot sistem.

Mari buat pengguna di Direktori Aktif otp, dengan kata sandi Kata Sandi Super Saya.

Langkah 2. Siapkan koneksi dan impor pengguna Direktori Aktif
Untuk melakukan ini, kita memerlukan akses ke konsol, dan langsung ke file multiotp.php, yang dengannya kami akan mengonfigurasi pengaturan koneksi ke Direktori Aktif.

Pergi ke direktori /usr/lokal/bin/multiotp/ dan jalankan perintah berikut secara bergantian:

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

Menentukan apakah pin tambahan (permanen) diperlukan saat memasukkan pin satu kali (0 atau 1)

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

Menentukan apakah kata sandi domain diperlukan saat memasukkan pin satu kali (0 atau 1)

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

Jenis server LDAP ditunjukkan (0 = server LDAP biasa, dalam kasus kami 1 = Direktori Aktif)

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

Menentukan format untuk menampilkan nama pengguna (nilai ini hanya akan menampilkan nama, tanpa domain)

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

Hal yang sama, hanya untuk grup

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

Menentukan metode untuk menentukan apakah pengguna termasuk dalam suatu grup

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

Haruskah saya menggunakan koneksi aman ke server LDAP (tentu saja ya!)

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

Port untuk menghubungkan ke server LDAP

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

Alamat server Direktori Aktif Anda

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

Kami menunjukkan di mana harus mulai mencari pengguna di domain

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

Tentukan pengguna yang memiliki hak pencarian di Direktori Aktif

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

Tentukan kata sandi pengguna untuk terhubung ke Direktori Aktif

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

Mengatur batas waktu untuk menyambung ke Direktori Aktif

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

Kami menetapkan batas waktu untuk operasi impor pengguna

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

Mengaktifkan konfigurasi koneksi Direktori Aktif

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

Kami mengimpor pengguna dari Direktori Aktif

Langkah 3. Hasilkan kode QR untuk token
Semuanya di sini sangat sederhana. Buka antarmuka web server OTP di browser, login (jangan lupa ubah kata sandi default admin!), dan klik tombol β€œCetak”:

Buka 2FA (Otentikasi dua faktor untuk ASA SSL VPN)
Hasil dari tindakan ini adalah halaman yang berisi dua kode QR. Kami dengan berani mengabaikan yang pertama (meskipun tulisan Google Authenticator / Authenticator / 2 Langkah Authenticator menarik), dan sekali lagi kami dengan berani memindai kode kedua ke dalam token perangkat lunak di telepon:

Buka 2FA (Otentikasi dua faktor untuk ASA SSL VPN)
(iya, saya sengaja merusak kode QR agar tidak terbaca).

Setelah menyelesaikan tindakan ini, kata sandi enam digit akan mulai dibuat di aplikasi Anda setiap tiga puluh detik.

Yang pasti, Anda dapat memeriksanya di antarmuka yang sama:

Buka 2FA (Otentikasi dua faktor untuk ASA SSL VPN)
Dengan memasukkan nama pengguna dan kata sandi satu kali dari aplikasi di ponsel Anda. Apakah Anda mendapat tanggapan positif? Jadi mari kita lanjutkan.

Langkah 4. Konfigurasi tambahan dan pengujian operasi FreeRADIUS
Seperti yang saya sebutkan di atas, multiOTP sudah dikonfigurasi untuk bekerja dengan FreeRADIUS, yang tersisa hanyalah menjalankan tes dan menambahkan informasi tentang gateway VPN kami ke file konfigurasi FreeRADIUS.

Kami kembali ke konsol server, ke direktori /usr/lokal/bin/multiotp/, memasuki:

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

Termasuk logging yang lebih detail.

Dalam file konfigurasi klien FreeRADIUS (/etc/freeradius/clinets.conf) mengomentari semua baris yang terkait dengan localhost dan tambahkan dua entri:

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

- untuk ujian

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

- untuk gerbang VPN kami.

Mulai ulang FreeRADIUS dan coba masuk:

radtest username 100110 localhost 1812 testing321

dimana nama pengguna = nama pengguna, 100110 = kata sandi yang diberikan kepada kita oleh aplikasi di ponsel, localhost = Alamat server RADIUS, 1812 β€” Pelabuhan server RADIUS, testing321 β€” Kata sandi klien server RADIUS (yang kami tentukan di konfigurasi).

Hasil dari perintah ini akan menjadi keluaran kira-kira sebagai berikut:

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

Sekarang kita perlu memastikan bahwa pengguna berhasil diautentikasi. Untuk melakukan ini, kita akan melihat log multiotp itu sendiri:

tail /var/log/multiotp/multiotp.log

Dan jika entri terakhir ada:

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

Kemudian semuanya berjalan dengan baik dan kami dapat menyelesaikannya

Langkah 5: Konfigurasikan Cisco ASA
Mari kita sepakat bahwa kita sudah memiliki grup dan kebijakan yang dikonfigurasi untuk akses melalui SLL VPN, dikonfigurasi bersama dengan Direktori Aktif, dan kita perlu menambahkan otentikasi dua faktor untuk profil ini.

1. Tambahkan grup server AAA baru:

Buka 2FA (Otentikasi dua faktor untuk ASA SSL VPN)
2. Tambahkan server multiOTP kami ke grup:

Buka 2FA (Otentikasi dua faktor untuk ASA SSL VPN)
3. Kami mengedit profil koneksi, mengatur grup server Direktori Aktif sebagai server autentikasi utama:

Buka 2FA (Otentikasi dua faktor untuk ASA SSL VPN)
4. Di tab Lanjutan -> Otentikasi Kami juga memilih grup server Direktori Aktif:

Buka 2FA (Otentikasi dua faktor untuk ASA SSL VPN)
5. Di tab Lanjutan -> Sekunder otentikasi, pilih grup server yang dibuat di mana server multiOTP terdaftar. Perhatikan bahwa nama pengguna Sesi diwarisi dari grup server AAA utama:

Buka 2FA (Otentikasi dua faktor untuk ASA SSL VPN)
Terapkan pengaturan dan

Langkah 6 alias yang terakhir
Mari kita periksa apakah autentikasi dua faktor berfungsi untuk SLL VPN:

Buka 2FA (Otentikasi dua faktor untuk ASA SSL VPN)
Voila! Saat menghubungkan melalui Cisco AnyConnect VPN Client, Anda juga akan dimintai kata sandi satu kali yang kedua.

Saya berharap artikel ini dapat membantu seseorang, dan memberikan bahan pemikiran kepada seseorang tentang cara menggunakannya, gratis Server OTP, untuk tugas lainnya. Bagikan di komentar jika Anda mau.

Sumber: www.habr.com

Tambah komentar