Linux'ta SSH İçin İki Faktörlü Kimlik Doğrulama Nasıl Kurulur


Varsayılan olarak SSH, uzak makineler arasında güvenli veri iletişimini zaten kullanır, ancak SSH bağlantılarınıza ekstra bir güvenlik katmanı eklemek istiyorsanız bir Google Authenticator (< SSH sunucularına bağlanırken rastgele tek seferlik şifre (TOTP) doğrulama kodunu girmenizi sağlayan güçlü>iki faktörlü kimlik doğrulama) modülü. Bağlandığınızda akıllı telefonunuzdan veya PC'nizden doğrulama kodunu girmeniz gerekecektir.

Google Authenticator, Google tarafından geliştirilen tek kullanımlık şifre kodları (TOTP) doğrulama jetonlarının uygulamalarını içeren açık kaynaklı bir modüldür.

PAM'ın (Takılabilir Kimlik Doğrulama Modülü) yanı sıra çeşitli mobil platformları da destekler. Bu tek kullanımlık şifre kodları, OATH Açık Kimlik Doğrulama Girişimi tarafından oluşturulan açık standartlar kullanılarak oluşturulur.

Bu yazıda size Fedora, CentOS Stream, Rocky Linux ve AlmaLinux gibi RedHat tabanlı ve Debian tabanlı Linux dağıtımları altında iki faktörlü kimlik doğrulama için SSH'yi nasıl kurup yapılandıracağınızı göstereceğim. Ubuntu, Debian ve Mint.

Google Authenticator'ı Linux'a Yükleme

İki faktörlü kimlik doğrulamayı ayarlamak istediğiniz makineyi açın ve aşağıdaki PAM kitaplıklarının yanı sıra PAM modülünün < ile doğru şekilde çalışması için gereken geliştirme kitaplıklarını yükleyin. Strong>Google kimlik doğrulayıcı modülü.

RedHat tabanlı sistemlerde aşağıdaki yum komutunu kullanarak 'pam-devel' paketini yükleyin.

yum install google-authenticator -y

Debian tabanlı sistemlerde aşağıdaki apt komutunu kullanarak 'libpam0g-dev' paketini yükleyin.

sudo apt install libpam-google-authenticator -y

Google Kimlik Doğrulama Belirteçleri Oluşturun

'google-authenticator' komutunu çalıştırdığınızda, size bir dizi soru soracaktır.

google-authenticator

Çoğu durumda yanıt olarak "y" (evet) yazmanız yeterlidir. Bir şeyler ters giderse ayarları sıfırlamak için 'google-authenticator' komutunu tekrar yazabilirsiniz.

  • Kimlik doğrulama belirteçlerinin zamana dayalı (e/h) y olmasını istiyor musunuz?

Bu sorudan sonra 'gizli anahtarınızı' ve 'acil durum kodlarınızı' alacaksınız. Bu ayrıntıları bir yere yazın. Daha sonra Google Authenticator uygulamasını kurmak için 'gizli anahtara' ihtiyacımız olacak.

google-authenticator

Do you want authentication tokens to be time-based (y/n) y
Warning: pasting the following URL into your browser exposes the OTP secret to Google:
  https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@tecmint%3Fsecret%3DCYZF2YF7HFGX55ZEPQYLHOO5JM%26issuer%3Dtecmint
Failed to use libqrencode to show QR code visually for scanning.
Consider typing the OTP secret into your app manually.
Your new secret key is: CYZF2YF7HFGX55ZEPQYLHOM
Enter code from app (-1 to skip): -1 Code confirmation skipped Your emergency scratch codes are: 83714291 53083200 80975623 57217008 77496339

Daha sonra kurulum sihirbazını takip edin ve çoğu durumda cevabı aşağıda gösterildiği gibi “y” (evet) olarak yazın.

Do you want me to update your "/root/.google_authenticator" file (y/n) y Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) y If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y

SSH'yi Linux'ta Google Authenticator'ı Kullanacak Şekilde Yapılandırma

PAM yapılandırma dosyasını '/etc/pam.d/sshd' açın ve dosyanın altına aşağıdaki satırı ekleyin.

auth required pam_google_authenticator.so nullok
auth required pam_permit.so

Ardından, SSH yapılandırma dosyasını '/etc/ssh/sshd_config' açın ve yazan satırı bulmak için aşağı kaydırın.

ChallengeResponseAuthentication no

Bunu "evet" olarak değiştirin. Yani bu hale geliyor.

ChallengeResponseAuthentication yes

Son olarak, yeni değişiklikleri almak için SSH hizmetini yeniden başlatın.

systemctl restart sshd
Or
sudo systemctl restart sshd

Google Authenticator Uygulamasını Yapılandırma

Akıllı telefonunuzda Google Authenticator uygulamasını başlatın. + tuşuna basın ve "Bir kurulum anahtarı girin" seçeneğini seçin. Bu uygulamaya sahip değilseniz Google Authenticator uygulamasını Android/iPhone/Blackberry cihazlarınıza indirip yükleyebilirsiniz.

Hesabınızın 'Ad'ını ekleyin ve daha önce oluşturulan 'gizli anahtarı' girin.

Telefonunuzda her 30 saniyede sürekli olarak değiştirilecek tek kullanımlık bir şifre (doğrulama kodu) oluşturacaktır.

Şimdi SSH yoluyla giriş yapmayı deneyin; sizden bir Google Authenticator kodu (Doğrulama kodu) ve Şifre istenecektir. > SSH aracılığıyla oturum açmaya çalıştığınızda. Bu doğrulama kodunu girmek için yalnızca 30 saniyeniz var; kaçırırsanız yeni bir doğrulama kodu oluşturulur.

login as: tecmint
Access denied
Using keyboard-interactive authentication.
Verification code:
Using keyboard-interactive authentication.
Password:
Last login: Tue Apr 23 13:58:29 2022 from 172.16.25.125
[root@tecmint ~]#

Akıllı telefonunuz yoksa iki faktörlü kimlik doğrulamayı gerçekleştirmek için Authenticator adlı Firefox eklentisini de kullanabilirsiniz.

Önemli: İki faktörlü kimlik doğrulama, şifre tabanlı SSH oturum açma işlemiyle çalışır. Herhangi bir özel/ortak anahtar SSH oturumu kullanıyorsanız, iki faktörlü kimlik doğrulamayı yok sayar ve doğrudan oturum açmanızı sağlar.