Küçük sunuculardan oluşan bir grup kullanıcıyı yönetmek için işte kullandığım SSH erişimini yönetmek için aşağıdaki kurulumu seviyorum. Güvenlik ve yönetim kolaylığı önceliklerim listesinde yüksek.
Temel özellikleri SSH haklarını Unix grup üyeliği ile kolayca yönetebilmekte, sıkı tanımlanmış izinlere sahip olmakta ve varsayılan olarak güvendedir.
Kurma
Yazılım yükleyin (isteğe bağlı ancak kullanışlı):
yum install members # or apt install members
Grup ekle:
addgroup --system allowssh
addgroup --system sftponly
Olarak /etc/ssh/sshd_config, ayarlara şu olmasını sağlamak No:
PermitRootLogin no
PubkeyAuthentication no
PasswordAuthentication no
Ve sonunda /etc/ssh/sshd_config, bu iki stanza ekleyin:
Match Group allowssh
PubkeyAuthentication yes
Match Group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
(dosyayı düzenledikten sonra SSH'yi yeniden başlatmayı unutmayın)
açıklama
Peki, bunlar ne işe yarıyor?
- Ek bir güvenlik önlemi olarak her zaman kök girişlerini devre dışı bırakır.
- Parola tabanlı girişleri her zaman devre dışı bırakır (zayıf şifreler sshd çalıştıran sunucular için büyük bir risktir).
- Yalnızca
allowsshgruptaki kullanıcılar için (pubkey) giriş izni verir .
sftponlyGruptaki kullanıcılar SSH üzerinden kabuk alamazlar, sadece SFTP.
Kimlerin erişimi olduğunu yönetmek daha sonra grup üyeliğini yöneterek yapılır (bu değişiklikler hemen etkili olur, SSH yeniden başlatılması gerekmez):
# adduser marcelm allowssh
# members allowssh
marcelm
# deluser marcelm allowssh
# members allowssh
#
Sftp kullanıcılarınızın her ikisinin de üyesi olmaları gerektiğini sftponly(bir kabuk almadıklarından emin olmak için) ve allowssh(ilk etapta giriş yapmaya izin vermek için) olması gerektiğini unutmayın.
Daha fazla bilgi
Lütfen bu konfigürasyonun şifre girişlerine izin vermediğini unutmayın ; tüm hesapların ortak anahtar kimlik doğrulaması kullanması gerekir . Bu muhtemelen SSH ile alabileceğiniz en büyük güvenlik kazancıdır, bu yüzden şimdi başlamak zorunda olsanız bile çabaya değer.
Eğer gerçekten bu istemiyorsanız, o zaman da eklemek PasswordAuthentication yesiçin Match Group allowsshdörtlük. Bu, allowsshkullanıcılar için hem pubkey hem de parola kimlik doğrulaması yapmanıza olanak sağlar.
Bu yapılandırma, herhangi bir sftponlykullanıcıyı giriş diziniyle sınırlar. Bunu istemiyorsanız ChrootDirectory %hyönergeyi kaldırın .
Eğer varsa do işe chrooting'e istiyorum, kullanıcının ev dizini (ve üstüne konacak dizin) aittir önemlidir root:rootve diğer grup / gruplar tarafından değil yazılabilir. Giriş dizininin alt dizinlerinin kullanıcıya ait ve / veya yazılabilir olması sorun değil.
Evet, kullanıcının giriş dizini kök kullanıcıya ait ve kullanıcıya ait olmamalıdır. Ne yazık ki, bu sınırlamanın iyi nedenleri var . Durumunuza bağlı olarak, ChrootDirectory /homeiyi bir alternatif olabilir.
sftponlyKullanıcıların kabuğunu ayarlamak, /sbin/nologinbu çözüm için ne gerekli ne de zararlıdır, çünkü SSH ForceCommand internal-sftp, kullanıcının kabuğunu geçersiz kılar.
/sbin/nologinBunları kullanmak , başka yollarla (fiziksel konsol, samba vb.) Giriş yapmalarını engellemekte yardımcı olabilir.
Bu kurulum, rootSSH üzerinden doğrudan oturum açmaya izin vermiyor ; bu, ekstra bir güvenlik katmanı oluşturur. Eğer gerçekten varsa do direkt root bağlantılarını ihtiyaç değiştirmek PermitRootLoginyönergesi. Olarak ayarlayarak düşünün forced-commands-only, prohibit-passwordve (son çare olarak) yes.
Bonus puanlar için kimlerin suroot olabileceğini kısıtlamaya bakın ; adlı bir sistem grubu eklemek wheelve etkinleştirmek / eklemek auth required pam_wheel.soiçinde /etc/pam.d/su.