Uygulama

Debian 11 Sunucusunda SSH İki Faktörlü Kimlik Doğrulama (2FA)

Bu yazı, Google Authenticator’ı kullanarak Debian sunucusunda SSH iki faktörlü kimlik doğrulamayı nasıl kuracağınızı gösterecektir. 2FA, Debian sunucunuzdaki SSH hizmetinin güvenliğini büyük ölçüde artıracaktır.

İki Faktörlü Kimlik Doğrulama Nasıl Çalışır?

Normalde, Debian sunucunuzda uzaktan oturum açmak için yalnızca bir parola girmeniz veya SSH anahtarı kullanmanız gerekir. İki faktörlü kimlik doğrulama (2FA), oturum açmak için iki parça bilgi girmenizi gerektirir. Dolayısıyla, SSH sunucunuza giriş yapmak için zamana dayalı tek seferlik bir parola da girmeniz gerekecektir. Bu tek kullanımlık parola , bir IETF standardı olan TOTP algoritması kullanılarak hesaplanır . Bugünlerde pek çok web sitesi ve hizmet (Facebook, Google, Twitter, vb.), kullanıcıların hesaplarını güvence altına almaları için 2FA sunuyor.

1. Adım: Google Authenticator’ı Debian Sunucusuna Kurun ve Yapılandırın

Debian sunucunuzda oturum açın ve varsayılan Debian paket deposundan Google Authenticator’ı yüklemek için aşağıdaki komutu çalıştırın.

sudo apt install -y libpam-google-authenticator

Ardından google-authenticator, ana dizininizde yeni bir gizli anahtar oluşturmak için şu komutu çalıştırın.

google-authenticator

“Do you want authentication tokens to be time-based??” Cevap y .

Ardından, telefonunuzdaki bir TOTP uygulamasını kullanarak tarayabileceğiniz bir QR kodu göreceksiniz. Önerilen iki uygulama var:

  • Google Authenticator , en iyi bilinen TOTP mobil uygulamasıdır. Google Play veya Apple uygulama mağazası aracılığıyla cep telefonunuza yükleyebilirsiniz.
  • Google Authenticator mobil uygulaması açık kaynak değildir . Google’a güvenmiyorsanız Red Hat tarafından geliştirilen açık kaynaklı bir TOTP mobil uygulaması olan FreeOTP’yi kullanabilirsiniz.

QR kodunu cep telefonunuzda Google Authenticator veya FreeOTP ile tarayın. Tam QR kodunu taramak için terminal penceresini büyütmeniz gerektiğini unutmayın.

QR kodu, yalnızca SSH sunucunuz ve TOTP mobil uygulamanız tarafından bilinen gizli anahtarı temsil eder. QR kodu tarandığında, telefonunuzda altı haneli bir kerelik şifre görebilirsiniz. Varsayılan olarak, her 30 saniyede bir değişir. Doğru olduğunu onaylamak için bu tek seferlik şifreyi terminal penceresine girin.

Artık terminal penceresinde gizli anahtarı, doğrulama kodunu ve acil durum kazı kodunu görebilirsiniz. Bu bilgileri daha sonra kullanmak üzere güvenli bir yere kaydetmeniz önerilir.

Ardından kalan tüm soruları yanıtlamak için y girebilirsiniz. Bu, Google Authenticator yapılandırma dosyanızı günceller, aynı kimlik doğrulama belirtecinin birden fazla kullanımını devre dışı bırakır, zaman aralığını artırır ve kaba kuvvetle giriş denemelerine karşı koruma sağlamak için hız sınırlamayı etkinleştirir.

2. Adım: SSH Daemon’u Google Authenticator’ı Kullanacak Şekilde Yapılandırın

  • 2FA ile şifre doğrulama
  • 2FA ile ortak anahtar kimlikleri

2FA ile Şifre Doğrulama

SSH anahtarını kullanmadığınızı, izleyiniz.

SSH’yi rahatlatabilir.

sudo nano /etc/ssh/sshd_config

Dosyada iki parametreyi ve onu iyi de evet olarak tespit edildiğinden emin olun.

UsePAM yes

ChallengeResponseAuthentication yes

PAM, yüklenebilir kimlik doğrulama modülü anlamına gelir. Linux sisteminize farklı kimlik doğrulama yöntemleri eklemenin kolay bir yolunu sağlar. Google Authenticator’ı SSH ile etkinleştirmek için PAM ve Challenge-Response kimlik doğrulaması etkinleştirilmelidir.

Root kullanıcının 2FA kullanmasına izin vermek istiyorsanız, PermitRootLogin parametresini bulun ve değerini evet olarak ayarlayın.

PermitRootLogin yes

Dosyayı kaydedin ve kapatın. Ardından, SSH arka plan programı için PAM kuralı dosyasını düzenleyin.

sudo nano /etc/pam.d/sshd

Bu dosyanın başında ChallengeResponseAuthentication yes olarak ayarlandığında parola doğrulamasını sağlayan aşağıdaki satırı görebilirsiniz.

@include common-auth

SSH’de 2FA’yı etkinleştirmek için aşağıdaki iki satırı ekleyin.

# two-factor authentication via Google Authenticator
auth   required   pam_google_authenticator.so

Dosyayı kaydedin ve kapatın. Ardından, değişikliğin etkili olması için SSH arka plan programını yeniden başlatın.

sudo systemctl restart ssh

Şu andan itibaren SSH arka plan programı, kullanıcı şifresi ve bir doğrulama kodu (Google Authenticator tarafından oluşturulan tek seferlik şifre) girmenizi isteyecektir. Lütfen mevcut SSH oturumunu sonlandırmayın. İki faktörlü kimlik doğrulamayı test etmek için başka bir terminal penceresi açmalısınız. Bir şeyler ters giderse, hataları düzeltmek için ilk SSH oturumunu kullanabilirsiniz.

Aşağıdaki ekran görüntüsü, bir Ubuntu masaüstü bilgisayarından bir Debian sunucusuna bir SSH oturum açma oturumunu göstermektedir.

2FA ile Açık Anahtar Kimlik Doğrulaması

SSH sunucusuna giriş yapmak için SSH anahtarı kullanıyorsanız, aşağıdaki talimatları izleyin.

SSH sunucusu yapılandırma dosyasını açın.

sudo nano /etc/ssh/sshd_config

Dosyada aşağıdaki iki parametreyi bulun ve her ikisinin de evet olarak ayarlandığından emin olun.

UsePAM yes

ChallengeResponseAuthentication yes

PAM, yüklenebilir kimlik doğrulama modülü anlamına gelir. Linux sisteminize farklı kimlik doğrulama yöntemleri eklemenin kolay bir yolunu sağlar. Google Authenticator’ı SSH ile etkinleştirmek için PAM ve Challenge-Response kimlik doğrulaması etkinleştirilmelidir.

Root kullanıcının 2FA kullanmasına izin vermek istiyorsanız, PermitRootLogin parametresini bulun ve değerini evet olarak ayarlayın.

@include common-auth

SSH’de 2FA’yı etkinleştirmek için aşağıdaki iki satırı ekleyin.

# two-factor authentication via Google Authenticator
auth   required   pam_google_authenticator.so

Dosyayı kaydedin ve kapatın. Ardından, değişikliğin etkili olması için SSH arka plan programını yeniden başlatın.

sudo systemctl restart ssh

Şu andan itibaren oturum açmak için SSH anahtarı ve Google Authenticator doğrulama kodunu kullanmanız gerekiyor. Lütfen mevcut SSH oturumunu sonlandırmayın. İki faktörlü kimlik doğrulamayı test etmek için başka bir terminal penceresi açmalısınız. Bir şeyler ters giderse, hataları düzeltmek için ilk SSH oturumunu kullanabilirsiniz.

Yazının orijinalini buradan okuyabilirsiniz.