ProHoster > Blog > yönetim > Bir USB belirteci kullanarak sitede iki faktörlü kimlik doğrulama. Artık Linux için de
Bir USB belirteci kullanarak sitede iki faktörlü kimlik doğrulama. Artık Linux için de
В önceki yazılarımızdan biri şirketlerin kurumsal portallarında iki faktörlü kimlik doğrulamanın öneminden bahsettik. Geçen sefer IIS web sunucusunda güvenli kimlik doğrulamanın nasıl kurulacağını göstermiştik.
Yorumlarda bizden Linux için en yaygın web sunucuları olan nginx ve Apache için talimatlar yazmamız istendi.
Siz sordunuz, biz yazdık.
Başlamak için neye ihtiyacınız var?
Herhangi bir modern Linux dağıtımı. MX Linux 18.2_x64 üzerinde bir test kurulumu yaptım. Bu elbette bir sunucu dağıtımı değil ancak Debian için herhangi bir farklılık olması pek olası değil. Diğer dağıtımlar için yapılandırma kitaplıklarına giden yollar biraz farklılık gösterebilir.
Jeton. Modeli kullanmaya devam ediyoruz Rutoken EDS PKI'sıKurumsal kullanım için hız özellikleri açısından idealdir.
Linux'ta bir belirteçle çalışmak için aşağıdaki paketleri yüklemeniz gerekir:
libccid libpcsclite1 pcscd pcsc-tools opensc
Sertifikaların verilmesi
Önceki yazılarımızda sunucu ve istemci sertifikalarının Microsoft CA kullanılarak verileceği gerçeğine güvenmiştik. Ancak her şeyi Linux'ta kurduğumuz için, size bu sertifikaları Linux'tan ayrılmadan vermenin alternatif bir yolunu da anlatacağız.
XCA'yı CA olarak kullanacağız (https://hohnstaedt.de/xca/), herhangi bir modern Linux dağıtımında mevcuttur. XCA'da gerçekleştireceğimiz tüm eylemler, OpenSSL ve pkcs11 aracı yardımcı programları kullanılarak komut satırı modunda yapılabilir, ancak daha fazla basitlik ve netlik sağlamak için bunları bu makalede sunmayacağız.
Başlarken
Düzenlemek:
$ apt-get install xca
Ve koşuyoruz:
$ xca
CA için veritabanımızı oluşturuyoruz - /root/CA.xdb
Sertifika Yetkilisi veritabanını yalnızca yöneticinin erişebildiği bir klasörde saklamanızı öneririz. Bu, diğer tüm sertifikaları imzalamak için kullanılan kök sertifikaların özel anahtarlarını korumak açısından önemlidir.
Anahtarlar ve kök CA sertifikası oluşturun
Açık anahtar altyapısı (PKI), hiyerarşik bir sisteme dayanmaktadır. Bu sistemdeki ana şey kök sertifika yetkilisi veya kök CA'dır. İlk önce sertifikasının oluşturulması gerekir.
CA için RSA-2048 özel anahtarı oluşturuyoruz. Bunu yapmak için sekmede Özel Anahtarlar itmek Yeni Anahtar ve uygun türü seçin.
Yeni anahtar çifti için bir ad belirleyin. Buna CA Anahtarı adını verdim.
Oluşturulan anahtar çiftini kullanarak CA sertifikasını kendisi veriyoruz. Bunu yapmak için sekmeye gidin Sertifikalar ve tıkla Yeni Sertifika.
Seçtiğinizden emin olun SHA-256, çünkü SHA-1'i kullanmak artık güvenli sayılamaz.
çıkıntı Konu anahtar çiftimizi seçin. Orada sertifikanın tüm ana alanlarını doldurabilirsiniz.
Anahtarlar ve https sunucu sertifikası oluşturma
Benzer şekilde sunucu için RSA-2048 özel anahtarı oluşturuyoruz, buna Sunucu Anahtarı adını verdim.
Sertifika oluştururken sunucu sertifikasının CA sertifikası ile imzalanması gerektiğini seçiyoruz.
Seçmeyi unutmayın SHA-256.
Şablon olarak seçiyoruz [varsayılan] HTTPS_sunucusu. Tıklamak Tümünü uygula.
Daha sonra sekmede Konu anahtarımızı seçin ve gerekli alanları doldurun.
Kullanıcı için anahtarlar ve sertifika oluşturun
Kullanıcının özel anahtarı jetonumuzda saklanacaktır. Bununla çalışmak için web sitemizden PKCS#11 kitaplığını yüklemeniz gerekir. Popüler dağıtımlar için burada bulunan hazır paketleri dağıtıyoruz - https://www.rutoken.ru/support/download/pkcs/. Ayrıca arm64, armv7el, armv7hf, e2k, mipso32el için SDK'mızdan indirilebilen derlemelerimiz de mevcuttur - https://www.rutoken.ru/developers/sdk/. Linux için derlemelerin yanı sıra macOS, freebsd ve android için de derlemeler vardır.
XCA'ya yeni bir PKCS#11 Sağlayıcısı ekleniyor. Bunu yapmak için menüye gidin Opsiyonlar sekmeye PKCS#11 Sağlayıcısı.
basıyoruz Ekle ve PKCS#11 kitaplığının yolunu seçin. Benim durumumda usrliblibrtpkcs11ecp.so.
Anahtar türü olarak Rutoken EDS PKI için RSA-2048 anahtarını seçiyoruz. Bu anahtara İstemci Anahtarı adını verdim.
PIN kodunu girin. Ve anahtar çiftinin donanım üretiminin tamamlanmasını bekliyoruz
Kullanıcı için sunucu sertifikasına benzeterek bir sertifika oluşturuyoruz. Bu sefer bir şablon seçiyoruz [varsayılan] HTTPS_istemcisi ve tıklamayı unutmayın Tümünü uygula.
çıkıntı Konu kullanıcı hakkındaki bilgileri girin. Belirteç için sertifikanın kaydedilmesi talebine olumlu yanıt veriyoruz.
Sonuç olarak, sekmede Sertifikalar XCA'da buna benzer bir şey almalısınız.
Bu minimum anahtar ve sertifika seti, sunucuları kendileri kurmaya başlamak için yeterlidir.
Yapılandırmak için CA sertifikasını, sunucu sertifikasını ve sunucu özel anahtarını dışa aktarmamız gerekiyor.
Bunu yapmak için XCA'daki ilgili sekmede istediğiniz girişi seçin ve tıklayın. Ihracat.
nginx
Bir nginx sunucusunun nasıl kurulacağını ve çalıştırılacağını yazmayacağım - internette bu konuyla ilgili yeterince makale var, resmi belgelerden bahsetmeye bile gerek yok. Bir belirteç kullanarak doğrudan HTTPS ve iki faktörlü kimlik doğrulamayı ayarlamaya başlayalım.
Nginx.conf'taki sunucu bölümüne aşağıdaki satırları ekleyin:
ssl_verify_client - sertifikanın güven zincirinin doğrulanması gerektiğini belirtir.
ssl_verify_length - Zincirdeki güvenilen kök sertifikanın arama derinliğini tanımlar. İstemci sertifikamız kök sertifika üzerinde hemen imzalandığı için derinlik 1 olarak ayarlanmıştır. Kullanıcı sertifikası bir ara CA'da imzalanmışsa bu parametrede 2 belirtilmelidir vb.
ssl_client_certificate - kullanıcının sertifikasına olan güveni kontrol ederken kullanılan güvenilen kök sertifikanın yolunu belirtir.
ssl_certificate/ssl_certificate_key - sunucu sertifikasının/özel anahtarın yolunu belirtir.
Yapılandırmada yazım hatası olmadığını ve tüm dosyaların doğru yerde olduğunu vb. kontrol etmek için nginx -t komutunu çalıştırmayı unutmayın.
Önce jeton olmadan giriş yapmayı deneyelim. Bu resmi elde ediyoruz:
Git hakkında: tercihler # gizlilikve biz gidiyoruz Güvenlik aletleri…
basıyoruz Yükyeni bir PKCS#11 Aygıt Sürücüsü eklemek ve librtpkcs11ecp.so dosyamızın yolunu belirtmek için.
Sertifikanın görünür olup olmadığını kontrol etmek için şu adrese gidebilirsiniz: Sertifika Yöneticisi. PIN'inizi girmeniz istenecektir. Doğru girişi yaptıktan sonra sekmede ne olduğunu kontrol edebilirsiniz. Sertifikalarınız tokendan gelen sertifikamız ortaya çıktı.
Şimdi jetonla devam edelim. Firefox sizden sunucu için seçilecek bir sertifika seçmenizi ister. Sertifikamızı seçin.
KAR!
Kurulum bir kere yapılıyor ve sertifika istek penceresinde gördüğünüz gibi seçimimizi kaydedebiliyoruz. Bundan sonra portala her giriş yaptığımızda yalnızca bir jeton girmemiz ve biçimlendirme sırasında belirtilen kullanıcı PIN kodunu girmemiz gerekecek. Böyle bir kimlik doğrulamadan sonra, sunucu hangi kullanıcının oturum açtığını zaten bilir ve artık doğrulama için herhangi bir ek pencere oluşturamazsınız, ancak kullanıcının hemen kişisel hesabına girmesine izin verebilirsiniz.
Apache
Tıpkı nginx'te olduğu gibi, hiç kimsenin apache kurulumunda sorun yaşamaması gerekiyor. Bu web sunucusunu nasıl kuracağınızı bilmiyorsanız resmi belgeleri kullanın.
Ve HTTPS'mizi ve iki faktörlü kimlik doğrulamamızı ayarlamaya başlıyoruz:
Öncelikle mod_ssl'yi etkinleştirmeniz gerekir:
$ a2enmod ssl
Ardından sitenin varsayılan HTTPS ayarlarını etkinleştirin:
$ a2ensite default-ssl
Şimdi yapılandırma dosyasını düzenliyoruz: /etc/apache2/sites-enabled/default-ssl.conf:
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /etc/apache2/sites-enabled/Server.crt
SSLCertificateKeyFile /etc/apache2/sites-enabled/ServerKey.pem
SSLCACertificateFile /etc/apache2/sites-enabled/CA.crt
SSLVerifyClient require
SSLVerifyDepth 10
Gördüğünüz gibi parametre adları pratik olarak nginx'teki parametre adlarıyla örtüşüyor, bu yüzden bunları açıklamayacağım. Yine ayrıntılarla ilgilenen herkesi belgelere bekliyoruz.
Şimdi sunucumuzu yeniden başlatıyoruz:
$ service apache2 reload
$ service apache2 restart
Gördüğünüz gibi, ister Windows ister Linux olsun, herhangi bir web sunucusunda iki faktörlü kimlik doğrulamayı ayarlamak maksimum bir saat sürer. Tarayıcıların kurulumu yaklaşık 5 dakika sürer. Birçok kişi iki faktörlü kimlik doğrulamayı kurmanın ve onunla çalışmanın zor ve belirsiz olduğunu düşünüyor. Umarım makalemiz bu efsaneyi en azından biraz çürütmüştür.
Ankete sadece kayıtlı kullanıcılar katılabilir. Giriş yapLütfen.
GOST 34.10-2012'ye göre sertifikalarla TLS'yi kurmak için talimatlara ihtiyacınız var mı:
Evet, TLS-GOST çok gerekli
Hayır, GOST algoritmalarıyla ayarlama yapmak ilginç değil