2FA'ya gidin (ASA SSL VPN için iki faktörlü kimlik doğrulama)

Kuruluşunuzdaki belirli bir sunucuya erişmeye ihtiyaç duyanların kullanıcılarınız veya ortaklarınız olup olmadığına bakmaksızın, kurumsal bir ortama uzaktan erişim sağlama ihtiyacı giderek daha sık ortaya çıkıyor.

Bu amaçlar doğrultusunda çoğu şirket, kuruluşun yerel kaynaklarına erişim sağlamanın güvenilir bir şekilde korunan yolu olduğu kanıtlanmış VPN teknolojisini kullanıyor.

Şirketim bir istisna değildi ve biz de diğerleri gibi bu teknolojiyi kullanıyoruz. Ve diğerleri gibi biz de uzaktan erişim ağ geçidi olarak Cisco ASA 55xx'i kullanıyoruz.

Uzak kullanıcıların sayısı arttıkça, kimlik bilgilerinin verilmesi prosedürünün basitleştirilmesine ihtiyaç duyulmaktadır. Ancak aynı zamanda bunun güvenlikten ödün vermeden yapılması gerekir.

Kendimiz için, tek kullanımlık şifreler kullanarak Cisco SSL VPN üzerinden bağlanmak için iki faktörlü kimlik doğrulamayı kullanmanın bir çözümünü bulduk. Ve bu yayın size gerekli yazılım için minimum zaman ve sıfır maliyetle böyle bir çözümü nasıl organize edeceğinizi anlatacaktır (altyapınızda zaten Cisco ASA olması şartıyla).

Pazar, tek kullanımlık şifreler oluşturmaya yönelik kutulu çözümlerle doludur ve şifreyi SMS yoluyla göndermek veya hem donanım hem de yazılım (örneğin cep telefonunda) belirteçleri kullanmak gibi bunları elde etmek için birçok seçenek sunar. Ancak mevcut krizde para biriktirme arzusu ve işverenim için para biriktirme arzusu, beni tek kullanımlık şifreler oluşturmaya yönelik bir hizmeti uygulamanın ücretsiz bir yolunu bulmaya zorladı. Bu, ücretsiz olsa da, ticari çözümlerden pek de aşağı değildir (burada, bu ürünün ticari bir versiyonunun da olduğunu belirterek rezervasyon yaptırmalıyız, ancak parasal maliyetlerimizin sıfır olacağı konusunda anlaştık).

Yani, ihtiyacımız var:

- Sunucuya web üzerinden erişmek için multiOTP, FreeRADIUS ve nginx gibi yerleşik araçlara sahip bir Linux görüntüsü (http://download.multiotp.net/ - VMware için hazır bir görüntü kullandım)
— Aktif Dizin Sunucusu
— Cisco ASA'nın kendisi (kolaylık sağlamak için ASDM kullanıyorum)
— TOTP mekanizmasını destekleyen herhangi bir yazılım belirteci (örneğin, Google Authenticator kullanıyorum ancak aynı FreeOTP de işe yarayacaktır)

Görüntünün nasıl ortaya çıktığına dair ayrıntılara girmeyeceğim. Sonuç olarak, multiOTP ve FreeRADIUS'un önceden kurulu olduğu, birlikte çalışacak şekilde yapılandırılmış olduğu ve OTP yönetimi için bir web arayüzüne sahip Debian Linux'a sahip olacaksınız.

1. Adım. Sistemi başlatıyoruz ve ağınız için yapılandırıyoruz
Varsayılan olarak sistem kök kök kimlik bilgileriyle birlikte gelir. Sanırım herkes ilk girişten sonra root kullanıcı şifresini değiştirmenin iyi bir fikir olacağını tahmin etti. Ayrıca ağ ayarlarını da değiştirmeniz gerekir (varsayılan olarak '192.168.1.44' ve ağ geçidi '192.168.1.1'dir). Daha sonra sistemi yeniden başlatabilirsiniz.

Active Directory'de bir kullanıcı oluşturalım otp, şifreli SüperŞifrem.

2. Adım. Bağlantıyı kurun ve Active Directory kullanıcılarını içe aktarın
Bunu yapmak için konsola ve doğrudan dosyaya erişmemiz gerekiyor multiotp.php, bunu kullanarak Active Directory'ye bağlantı ayarlarını yapılandıracağız.

dizine git /usr/local/bin/multiotp/ ve sırasıyla aşağıdaki komutları yürütün:

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

Tek seferlik bir pin (0 veya 1) girilirken ek (kalıcı) bir pinin gerekli olup olmadığını belirler

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

Tek kullanımlık pin (0 veya 1) girilirken alan adı şifresinin gerekli olup olmadığını belirler

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

LDAP sunucusunun türü belirtilir (0 = normal LDAP sunucusu, bizim durumumuzda 1 = Active Directory)

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

Kullanıcı adının sunulacağı formatı belirtir (bu değer, alan adı olmadan yalnızca adı görüntüler)

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

Aynı şey, yalnızca bir grup için

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

Bir kullanıcının bir gruba ait olup olmadığını belirlemek için bir yöntem belirtir

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

LDAP sunucusuna güvenli bir bağlantı kullanmalı mıyım (elbette - evet!)

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

LDAP sunucusuna bağlanmak için bağlantı noktası

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

Active Directory sunucu adresiniz

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

Alan adındaki kullanıcıları aramaya nereden başlayacağınızı belirtiriz

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

Active Directory'de arama haklarına sahip bir kullanıcı belirtin

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

Active Directory'ye bağlanmak için kullanıcı şifresini belirtin

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

Active Directory'ye bağlanmak için zaman aşımını ayarlama

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

Kullanıcı içe aktarma işlemi için bir süre sınırı belirledik

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

Active Directory bağlantı yapılandırmasını etkinleştirme

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

Kullanıcıları Active Directory'den içe aktarıyoruz

3. Adım. Belirteç için bir QR kodu oluşturun
Burada her şey son derece basit. Tarayıcıda OTP sunucusunun web arayüzünü açın, oturum açın (yönetici için varsayılan şifreyi değiştirmeyi unutmayın!) ve “Yazdır” düğmesine tıklayın:

2FA'ya gidin (ASA SSL VPN için iki faktörlü kimlik doğrulama)
Bu eylemin sonucu iki QR kodu içeren bir sayfa olacaktır. Bunlardan ilkini cesurca görmezden geliyoruz (çekici Google Authenticator / Authenticator / 2 Adımlı Kimlik Doğrulayıcı yazısına rağmen) ve ikinci kodu yine cesurca telefondaki bir yazılım belirtecine tarıyoruz:

2FA'ya gidin (ASA SSL VPN için iki faktörlü kimlik doğrulama)
(evet, QR kodunu okunmaz hale getirmek için kasıtlı olarak bozdum).

Bu işlemleri tamamladıktan sonra uygulamanızda her otuz saniyede bir altı haneli bir şifre oluşturulmaya başlayacaktır.

Emin olmak için aynı arayüzden kontrol edebilirsiniz:

2FA'ya gidin (ASA SSL VPN için iki faktörlü kimlik doğrulama)
Telefonunuzdaki uygulamadan kullanıcı adınızı ve tek kullanımlık şifrenizi girerek. Olumlu bir yanıt aldınız mı? Böylece devam ediyoruz.

4. Adım. FreeRADIUS işleminin ek yapılandırması ve testi
Yukarıda bahsettiğim gibi multiOTP zaten FreeRADIUS ile çalışacak şekilde yapılandırılmıştır, geriye kalan tek şey testleri çalıştırmak ve VPN ağ geçidimiz hakkında bilgileri FreeRADIUS yapılandırma dosyasına eklemektir.

Sunucu konsoluna, dizine dönüyoruz /usr/local/bin/multiotp/, girmek:

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

Daha ayrıntılı günlük kaydı dahil.

FreeRADIUS istemcilerinin yapılandırma dosyasında (/etc/freeradius/clinets.conf) ile ilgili tüm satırları yorumlayın localhost ve iki giriş ekleyin:

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

- test için

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

— VPN ağ geçidimiz için.

FreeRADIUS'u yeniden başlatın ve oturum açmayı deneyin:

radtest username 100110 localhost 1812 testing321

nerede kullanıcı adı = kullanıcı adı, 100110 = Telefondaki uygulamanın bize verdiği şifre, localhost = RADIUS sunucu adresi, 1812 — RADIUS sunucu bağlantı noktası, testing321 — RADIUS sunucu istemci şifresi (yapılandırmada belirttiğimiz).

Bu komutun sonucu yaklaşık olarak aşağıdaki gibi çıkacaktır:

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

Şimdi kullanıcının başarıyla kimliğinin doğrulandığından emin olmamız gerekiyor. Bunu yapmak için multiotp'nin kendisinin günlüğüne bakacağız:

tail /var/log/multiotp/multiotp.log

Ve eğer son giriş varsa:

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

Sonra her şey yolunda gitti ve tamamlayabiliriz

Adım 5: Cisco ASA'yı yapılandırın
Active Directory ile birlikte yapılandırılmış SLL VPN aracılığıyla erişim için zaten yapılandırılmış bir grubumuz ve politikalarımız olduğunu ve bu profil için iki faktörlü kimlik doğrulama eklememiz gerektiğini kabul edelim.

1. Yeni bir AAA sunucu grubu ekleyin:

2FA'ya gidin (ASA SSL VPN için iki faktörlü kimlik doğrulama)
2. MultiOTP sunucumuzu gruba ekleyin:

2FA'ya gidin (ASA SSL VPN için iki faktörlü kimlik doğrulama)
3. Düzenliyoruz bağlantı profiliActive Directory sunucu grubunu ana kimlik doğrulama sunucusu olarak ayarlayarak:

2FA'ya gidin (ASA SSL VPN için iki faktörlü kimlik doğrulama)
4. çıkıntı Gelişmiş -> Kimlik Doğrulama Ayrıca Active Directory sunucu grubunu da seçiyoruz:

2FA'ya gidin (ASA SSL VPN için iki faktörlü kimlik doğrulama)
5. çıkıntı Gelişmiş -> İkincil kimlik doğrulaması için multiOTP sunucusunun kayıtlı olduğu oluşturulan sunucu grubunu seçin. Oturum kullanıcı adının birincil AAA sunucu grubundan devralındığını unutmayın:

2FA'ya gidin (ASA SSL VPN için iki faktörlü kimlik doğrulama)
Ayarları uygulayın ve

6. Adım, yani sonuncusu
SLL VPN için iki faktörlü kimlik doğrulamanın çalışıp çalışmadığını kontrol edelim:

2FA'ya gidin (ASA SSL VPN için iki faktörlü kimlik doğrulama)
İşte! Cisco AnyConnect VPN İstemcisi aracılığıyla bağlanırken sizden ikinci, tek kullanımlık bir şifre de istenecektir.

Bu makalenin birisine yardımcı olacağını ve birisine bunun nasıl kullanılacağı konusunda fikir vereceğini umuyorum. ücretsiz Diğer görevler için OTP sunucusu. İsterseniz yorumlarda paylaşın.

Kaynak: habr.com

Yorum ekle