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
allowssh
gruptaki kullanıcılar için (pubkey) giriş izni verir .
sftponly
Gruptaki 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 yes
için Match Group allowssh
dörtlük. Bu, allowssh
kullanıcılar için hem pubkey hem de parola kimlik doğrulaması yapmanıza olanak sağlar.
Bu yapılandırma, herhangi bir sftponly
kullanıcıyı giriş diziniyle sınırlar. Bunu istemiyorsanız ChrootDirectory %h
yö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:root
ve 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 /home
iyi bir alternatif olabilir.
sftponly
Kullanıcıların kabuğunu ayarlamak, /sbin/nologin
bu çö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/nologin
Bunları kullanmak , başka yollarla (fiziksel konsol, samba vb.) Giriş yapmalarını engellemekte yardımcı olabilir.
Bu kurulum, root
SSH ü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 PermitRootLogin
yönergesi. Olarak ayarlayarak düşünün forced-commands-only
, prohibit-password
ve (son çare olarak) yes
.
Bonus puanlar için kimlerin su
root olabileceğini kısıtlamaya bakın ; adlı bir sistem grubu eklemek wheel
ve etkinleştirmek / eklemek auth required pam_wheel.so
içinde /etc/pam.d/su
.