Bugün Ubuntu sunucumda Kurşun Geçirmez bir SSH Sıkılaştırma (Hardening) operasyonunu tamamladım.
İnternete açık bir sunucunuz varsa, 22. portun dakikalar içinde botlar ve otomatik tarayıcılar tarafından nasıl brute-force saldırılarına maruz kaldığını çok iyi bilirsiniz. Ben de bu riski tamamen sıfırlamak için kolları sıvadım ve sunucumun kapılarını adeta çelik bir zırhla kapladım.
İşte adım adım uyguladığım Sıfır Tolerans SSH politikam:
- Varsayılan Portu Terk Ettim: 22. portu tamamen kapatıp, otomatik tarayıcıların radarından uzak, yüksek ve rastgele bir porta geçiş yaptım.
- UFW (Güvenlik Duvarı) Yapılandırması: Sisteme kapıda kalmamak için önce UFW üzerinden yeni portuma izin verdim, ardından 22. port kurallarını kalıcı olarak silip firewall'u aktif ettim.
- Şifrelere Elveda:
PasswordAuthentication novePermitRootLogin noayarlarıyla parola ile girişi tamamen kapattım. Kaba kuvvet saldırısı yapmak isteyen biri artık şifre ekranı bile göremiyor. Sadece "Ed25519" kriptografik SSH anahtarına sahip tek bir yetkili kullanıcı içeri girebiliyor (AllowUsers).
Operasyonun en keyifli kısmı ise yeni Ubuntu sürümlerinin (22.10+) çalışma mantığıyla yüzleşmek oldu. sshd_config dosyasında portu değiştirseniz bile, sistemin inatla ssh.socket (systemd) üzerinden 22'yi dinlemeye devam ettiğini gördüm.
Bu modern yapıyı aşmak için soket tabanlı dinleyiciyi tamamen öldürüp klasik servis mantığına geri döndüm:
sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh.serviceSonuç: Şifre sorma ekranı bile sunmayan, gizli portta çalışan, sadece tek bir anahtara duyarlı kapalı bir kutu!
Siber güvenlikte Defense in Depth prensibini doğrudan sahada uygulamak harika bir deneyimdi.
Siz sunucularınızda SSH güvenliğini sıkılaştırmak için fail2ban veya port knocking dışında hangi yöntemleri tercih ediyorsunuz?