Secure Shell (SSH), Linux ve Unix tabanlı sistemlerde uzak sunucu erişimi için en yaygın kullanılan protokoldür. Ancak, SSH varsayılan yapılandırmayla kullanıldığında brute-force saldırıları, kimlik avı girişimleri ve yetkisiz erişimler gibi güvenlik tehditlerine açık olabilir.
1. SSH İçin Varsayılan Portu Değiştirme
Varsayılan olarak, SSH 22. portu kullanır ve bu, saldırganların brute-force denemeleri yapmasını kolaylaştırır. SSH portunu değiştirerek bu tür saldırıları azaltabilirsiniz.
Port Değiştirme Adımları:
sudo nano /etc/ssh/sshd_config
Aşağıdaki satırı bulun ve yeni bir port numarası belirleyin:
Port 2222
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
sudo systemctl restart sshd
Bağlantıyı test ettikten sonra eski portu kapatın:
sudo ufw deny 22/tcp
sudo ufw allow 2222/tcp
✅ Önemli: Seçtiğiniz yeni portun 1-65535 arasında ve kullanılmayan bir port olması gerekir. 1024’ten büyük port numaraları tercih edilmelidir.
2. Root Kullanıcısı ile SSH Erişimini Devre Dışı Bırakma
Root hesabıyla doğrudan SSH bağlantısı yapmak ciddi bir güvenlik riskidir. Root erişimini devre dışı bırakmak, sunucunun ele geçirilmesini zorlaştırır.
Root SSH Erişimini Kapatma:
sudo nano /etc/ssh/sshd_config
Aşağıdaki satırı bulun ve şu şekilde değiştirin:
PermitRootLogin no
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
sudo systemctl restart sshd
Bundan sonra root kullanıcısı SSH ile giriş yapamaz, ancak normal kullanıcılar sudo yetkisi ile root erişimi sağlayabilir.
3. SSH İçin Güçlü Kimlik Doğrulama Kullanımı
3.1. Şifre Doğrulamasını Devre Dışı Bırakın ve SSH Anahtarlarını Kullanın
Şifre tabanlı doğrulama, brute-force saldırılarına açıktır. SSH anahtar tabanlı kimlik doğrulama kullanarak güvenliği artırabilirsiniz.
Anahtar çifti oluşturma:
ssh-keygen -t rsa -b 4096
Oluşturulan anahtarı sunucuya kopyalama:
ssh-copy-id -i ~/.ssh/id_rsa.pub kullanıcı_adı@sunucu_ip
Daha sonra şifreli girişleri tamamen devre dışı bırakın:
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
Servisi yeniden başlatın:
sudo systemctl restart sshd
✅ SSH anahtarlarını kullanmak, şifreli giriş yöntemine göre çok daha güvenlidir.
4. SSH Bağlantıları İçin Timeout Süresini Kısaltma
Saldırganların sistemde açık bağlantılar üzerinden işlem yapmasını önlemek için otomatik zaman aşımı süresi belirlemek önemlidir.
sudo nano /etc/ssh/sshd_config
Aşağıdaki satırları ekleyin veya düzenleyin:
ClientAliveInterval 300
ClientAliveCountMax 2
Bu ayarlar, 5 dakika (300 saniye) içinde aktif olmayan bağlantıları kapatacaktır.
Servisi yeniden başlatın:
sudo systemctl restart sshd
5. SSH Erişimini Belli IP’lerle Sınırlamak
Eğer belirli bir IP veya ağ bloğu dışında SSH bağlantısı yapılmasını istemiyorsanız, erişimi kısıtlayabilirsiniz.
sudo nano /etc/ssh/sshd_config
Şu satırları ekleyin:
AllowUsers kullanıcı_adı@192.168.1.*
Bunu kullanarak sadece 192.168.1.0/24 ağı içindeki cihazların SSH bağlantısı yapmasına izin vermiş olursunuz.
6. Fail2Ban ile Brute-Force Saldırılarını Önleme
Brute-force saldırılarında sürekli yanlış giriş denemeleri yapılır. Fail2Ban, belirli sayıda hatalı girişten sonra IP’yi otomatik olarak engeller.
Fail2Ban Kurulumu:
sudo apt install fail2ban -y # Debian/Ubuntu
sudo yum install fail2ban -y # CentOS/RHEL
SSH İçin Fail2Ban Yapılandırması:
sudo nano /etc/fail2ban/jail.local
Aşağıdaki satırları ekleyin veya düzenleyin:
[sshd]
enabled = true
bantime = 3600
findtime = 600
maxretry = 3
✔ maxretry = 3: 3 başarısız girişten sonra IP engellenir.
✔ bantime = 3600: Engellenen IP, 1 saat (3600 saniye) boyunca yasaklanır.
Fail2Ban servisini yeniden başlatın:
sudo systemctl restart fail2ban
Engellenen IP adreslerini görmek için:
sudo fail2ban-client status sshd
Özetle
SSH güvenliği, brute-force saldırıları ve yetkisiz erişim risklerini azaltmak için kritik bir konudur. Aşağıdaki adımları uygulayarak sunucunuzu daha güvenli hale getirebilirsiniz:
✔ SSH portunu değiştirin ve varsayılan 22 yerine farklı bir port kullanın.
✔ Root kullanıcı erişimini kapatın ve normal kullanıcı hesaplarıyla oturum açın.
✔ SSH anahtar tabanlı kimlik doğrulama kullanarak şifre girişlerini devre dışı bırakın.
✔ Timeout süresini kısaltarak inaktif oturumları otomatik sonlandırın.
✔ IP bazlı erişim kısıtlamaları yaparak sadece belirlenen IP’lerin bağlantı yapmasına izin verin.
✔ Fail2Ban gibi ek güvenlik yazılımları kullanarak brute-force saldırılarını engelleyin.
💡 Unutmayın: SSH güvenliğini sağlamak, tüm sisteminizin güvenliğini artırır. Düzenli güvenlik kontrolleri yaparak sisteminizi güncel tutun!
Yorum gönder