Ssh sunucusu PAM ile nasıl kullanılır ama şifre yetkisine izin verilmez?


13

Birçok öğretici ssh sunucunuzu şu şekilde yapılandırmanızı söyler:

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no 

ancak bu kurulumda PAM'ı kullanamazsınız, çünkü Google Authenticator (OTP Onetime Password) ile 2 Faktör Auth kullanmayı planlıyorum PAM'a ihtiyacım var.

Eğer normal bir şifre ile giriş önlemek ama yine de PAM kullanmaya izin vermek istiyorsanız, nasıl taze debian jessie ssh deamon yapılandırmak için.

belki de tam soru nasıl şifreleri izin vermemek için pam yapılandırmaktır?

PAM Kimlik Doğrulaması ile İlgili Ayrıntılar

PAM tabanlı şifre kimlik doğrulamasını devre dışı bırakmak oldukça sezgisel değildir. FreeBSD ile birlikte hemen hemen tüm GNU / Linux dağıtımlarında (Slackware hariç) gereklidir. Dikkatli değilseniz, PasswordAuthentication'ı 'no' olarak ayarlayabilir ve yine de PAM kimlik doğrulaması yoluyla yalnızca bir şifre ile giriş yapabilirsiniz. PAM kimlik doğrulamasını gerçekten devre dışı bırakmak için 'ChallengeResponseAuthentication' ı 'hayır' olarak ayarlamanız gerektiği ortaya çıkıyor. FreeBSD kılavuz sayfalarında, durumun biraz açıklığa kavuşturulmasına yardımcı olabilecek söylenebilir:

ChallengeResponseAuthentication 'evet' ise ve sshd için PAM kimlik doğrulama politikası pam_unix (8) içeriyorsa, PasswordAuthentication değerine bakılmaksızın meydan okuma yanıtlama mekanizması aracılığıyla şifre kimlik doğrulamasına izin verilecektir.

http://www.unixlore.net/articles/five-minutes-to-more-secure-ssh.html

Yanıtlar:


23

belki de tam soru nasıl şifreleri izin vermemek için pam yapılandırmaktır?

Doğru. Zaten ortamın UsePAM nogenellikle kötü tavsiye olduğu gerçeğini tökezlediniz . Herhangi bir PAM tabanlı kimlik doğrulama biçimini engellemekle kalmaz, aynı zamanda devre dışı bırakır accountve sessionmodülleri de devre dışı bırakır . Erişim kontrolü ve oturum yapılandırması iyi şeylerdir.

İlk olarak, gereksinimlerin bir listesini oluşturalım:

  • Üzerinden OTP pam_google_authenticator.so. Bu UsePAM yesve gerektirir ChallengeResponseAuthentication yes. Ne de olsa onlardan bir kimlik belgesi istiyorsun!
  • PAM üzerinden başka bir şifre kimlik doğrulama biçimi yoktur. Bu, authbir parolanın keyboard-interactiveoturum açma yoluyla aktarılmasına izin verebilecek tüm modüllerin devre dışı bırakılması anlamına gelir . (OTP için etkin bırakmamız gerekir)
  • Anahtar tabanlı kimlik doğrulama. Biz gerektiren gerekir publickeykimlik ve belki gssapi-with-micKerberos yapılandırdıysanız.

Normalde, bir anahtarla kimlik doğrulaması PAM tabanlı kimlik doğrulamasını tamamen atlar. Bu bizi opensh'ın eski sürümleriyle izlerimizde durduracaktı, ancak Debian 8 (jessie) AuthenticationMethodsdirektifi destekliyor . Bu, birden çok kimlik doğrulama yöntemi gerektirmemizi sağlar, ancak yalnızca SSHv2 uygulayan istemcilerle çalışır.


sshd yapılandırma

Aşağıda önerdiğim satırlar /etc/ssh/sshd_config. Bir sshdşeyleri kırmanıza gerek kalmadan bu sisteme erişmenin bir yolunun olduğundan emin olun !

# Require local root only
PermitRootLogin no

# Needed for OTP logins
ChallengeResponseAuthentication yes
UsePAM yes

# Not needed for OTP logins
PasswordAuthentication no

# Change to to "yes" if you need Kerberos. If you're unsure, this is a very safe "no".
GSSAPIAuthentication no


# Require an OTP be provided with key based logins
AuthenticationMethods publickey,keyboard-interactive

# Use this instead for Kerberos+pubkey, both with OTP
#
#AuthenticationMethods gssapi-with-mic,keyboard-interactive publickey,keyboard-interactive

sshdBu değişiklikler yapıldıktan sonra yeniden yüklemeyi unutmayın .

PAM yapılandırması

Hala PAM'ı yapılandırmamız gerekiyor. Debian 8'in temiz bir kurulumunu varsayarsak (sorunuz başına):

  • Adlı kullanıcıdan @include common-authgelen yorum /etc/pam.d/sshd.
  • /etc/pam.d/sshdİle başlayan hiçbir satır olmadığını gözden geçirin ve onaylayın auth. Bunun temiz bir kurulum olup olmadığı olmamalı, ancak güvenli olmak en iyisidir.
  • İçin bir authgiriş ekleyin pam_google_authenticator.so.

Yerel şifrelerin hala çalıştığını unutmayın.

Yerel bir konsol aracılığıyla girişleri etkileyecek veya kullanıcıların ayrıcalıklarını yükseltmek için şifre kullanmalarını engelleyecek herhangi bir değişiklik yapmadık. sudo.Bu, sorunun kapsamı dışındaydı. Bir şeyleri daha ileri götürmeye karar verirseniz, root'un her zaman şifre ile yerel olarak oturum açmasına izin verilmesi gerektiğini unutmayın. Yanlışlıkla kendinizi sistem dışına kilitlenme riskiniz vardır.


hav test henüz ama mantıklı görünüyor ve 5 upvotes ile ben bunu kabul düşünüyorum.
c33s

Kendimi test ettim. şifreyi tamamen devre dışı bırakmak istiyorsanız, ChallengeResponseAuthentication no. bkz. blog.tankywoo.com/linux/2013/09/14/…
anonim

@anonymous OP'nin sorusuna ve ilk madde işaretine bakın. Devre dışı ChallengeResponseAuthenticationbırakıldığında, OTP'yi işleyen PAM kimlik doğrulama modülleri için gerekli olan klavye etkileşimli kimlik doğrulama yöntemi bozulur. (OP tarafından istenir) CRA'yı devre dışı bırakmak, yalnızca yığında ateşlenmesi gereken sıfır PAM modülünüz varsa güvenlidir auth. Eğer PasswordAuthenticationve GSSAPIAuthenticationdevre dışı bırakılır, bir şifre PAM bir kim sorar yetkilendirme modülü etkin olmadıkça kabul edilmeyecektir.
Andrew B

(bu harika bir bağlantı olduğunu söyledi)
Andrew B

1

şifre isteğine izin vermemek

bu satıra yorum yap

#auth       substack     password-auth

/etc/pam.d/sshd içinde

ve OTP kullanmadan ssh ile kimlik doğrulaması iyi olmazsa, bu satırın sonunda nullok olmadığından emin olun.

auth required pam_google_authenticator.so
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.