Linux sunucularda SSH (Secure Shell) erişiminin engellenmesi, genellikle güvenlik önlemleri, yapılandırma hataları veya ağ kaynaklı sorunlardan kaynaklanır. Aşağıda bu duruma yol açabilecek başlıca nedenleri teknik detaylarıyla açıklıyoruz:
1. SSH Servisinin Çalışmaması
SSH servisi (sshd
) durdurulmuş ya da çökmüş olabilir. Bu durumda bağlantı kurulamaz.
Kontrol komutu:
systemctl status sshd
Çözüm:
systemctl restart sshd
2. Güvenlik Duvarı (Firewall) Ayarları
iptables
, firewalld
veya ufw
gibi güvenlik duvarı araçları, 22 numaralı portu engellemiş olabilir.
Kontrol komutu:
sudo iptables -L
Çözüm:
sudo ufw allow 22/tcp
3. SSH Portunun Değiştirilmiş Olması
Güvenlik için varsayılan 22 portu farklı bir portla değiştirilmiş olabilir. sshd_config
dosyasını kontrol etmek gerekir.
Kontrol:
cat /etc/ssh/sshd_config | grep Port
4. TCP Wrapper veya hosts.deny
Engeli
/etc/hosts.deny
veya/etc/hosts.allow
dosyaları, belirli IP adreslerinin erişimini engelliyor olabilir.
5. SSH Anahtar veya Kimlik Doğrulama Hataları
Public key authentication kullanılıyorsa, yetkisiz veya hatalı anahtar dosyaları erişimi engelleyebilir.
~/.ssh/authorized_keys
dosyası doğru yapılandırılmalı ve dosya izinleri kontrol edilmelidir:
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
6. SELinux veya AppArmor Kısıtlamaları
Zorlayıcı güvenlik modülleri, SSH erişimini engelleyebilir.
SELinux durumu kontrol:
sestatus
7. Sunucuya Ulaşamama (Ağ Problemleri)
- DNS çözümlemesi, IP yönlendirmesi veya ağ geçidi (gateway) hataları nedeniyle SSH erişimi sağlanamıyor olabilir.
8. SSH Bağlantı Denemeleri Sonucu Engelleme
fail2ban
gibi araçlar, brute-force girişimler sonucu IP’yi kara listeye alabilir.
Sonuç:
SSH erişiminin engellenmesi birçok farklı kaynaktan olabilir ve sistematik bir kontrol süreci gerektirir. Özellikle güvenlik amacıyla yapılan yapılandırmaların dikkatli bir şekilde test edilmesi önerilir.