Ubuntu Server’da SSH Brute Force Önleme

Ubuntu Server ortamlarında SSH (Secure Shell) protokolü, uzak yönetim için vazgeçilmez bir araçtır.

Reklam Alanı

Ubuntu Server ortamlarında SSH (Secure Shell) protokolü, uzak yönetim için vazgeçilmez bir araçtır. Ancak, bu erişim noktası brute force saldırıları için cazip bir hedeftir. Brute force saldırıları, saldırganların parola tahmin ederek veya sözlük tabanlı denemelerle yetkisiz erişim sağlamaya çalıştığı otomatik süreçlerdir. Ubuntu sunucularında varsayılan SSH yapılandırması, root kullanıcısı üzerinden sürekli denemelere açıktır, bu da sunucunun performansını düşürebilir ve güvenlik ihlallerine yol açabilir. Bu makalede, brute force saldırılarını önlemek için adım adım uygulanabilir stratejileri ele alacağız. Fail2Ban gibi araçlar ve SSH yapılandırması optimizasyonları ile sunucunuzu proaktif olarak koruyabilirsiniz.

Brute Force Saldırılarının Tehdidi ve Tespiti

Brute force saldırıları, genellikle botnetler tarafından gerçekleştirilir ve dakikalar içinde binlerce parola denemesi yapabilir. Ubuntu sunucularında /var/log/auth.log dosyası, bu denemeleri “Failed password for” gibi girişlerle kaydeder. Saldırganlar, yaygın kullanıcı adları (root, admin) ve parola listeleri kullanır. Bu saldırılar, CPU yükünü artırır, bağlantı kuyruklarını doldurur ve sonunda sunucuyu erişilemez hale getirebilir. Tespit için logları düzenli incelemek şarttır; örneğin, tail -f /var/log/auth.log komutu ile gerçek zamanlı izleme yapabilirsiniz. Saldırı belirtileri arasında belirli IP’lerden tekrarlanan başarısız girişler yer alır.

Önleme stratejisi geliştirmeden önce, mevcut durumu analiz edin. Logwatch veya Logwatch gibi araçlarla günlük raporlar oluşturun. Bu sayede, saldırı paternlerini erken fark edip müdahale edebilirsiniz. Pratik bir yaklaşım olarak, auth.log’dan şüpheli IP’leri grep ile filtreleyin: grep “Failed password” /var/log/auth.log | awk ‘{print $11}’ | sort | uniq -c | sort -nr. Bu komut, en çok deneme yapan IP’leri listeler ve manuel engelleme için temel sağlar. Erken tespit, otomatik araçlara geçişi hızlandırır ve sunucu güvenliğini güçlendirir.

Fail2Ban Kurulumu ve Yapılandırması

Paket Kurulumu ve Başlangıç Ayarları

Fail2Ban, başarısız giriş denemelerini izleyerek IP’leri otomatik banlayan bir intrusion prevention sistemidir. Ubuntu Server 20.04 veya 22.04’te kurmak için terminali açın ve şu komutları sırayla çalıştırın: sudo apt update && sudo apt install fail2ban -y. Kurulum sonrası servis otomatik başlar; durumunu systemctl status fail2ban ile kontrol edin. Varsayılan yapılandırma /etc/fail2ban/jail.conf dosyasındadır, ancak değişiklikler için /etc/fail2ban/jail.local dosyasını oluşturun: sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local. Bu dosya, ana ayarları override eder ve sistem güncellemelerinden korunur.

SSH Jail Yapılandırması ve Özelleştirme

jail.local dosyasında [sshd] bölümünü etkinleştirin: [sshd] enabled = true yazın. bantime = 3600 (1 saat ban), findtime = 600 (10 dakika pencere) ve maxretry = 5 (5 başarısız deneme sonrası ban) gibi değerleri ayarlayın. Backend = auto olarak bırakın, iptables-multiport chain = INPUT ile uyumlu hale getirin. Değişiklikleri kaydedip sudo systemctl reload fail2ban ile uygulayın. Fail2ban-client status sshd komutu, banlanmış IP’leri gösterir. E-posta bildirimleri için destemail ve sender parametrelerini yapılandırarak proaktif uyarılar alın.

Test Etme ve Bakım

Kurulumu doğrulamak için başka bir cihazdan 5 kez yanlış parola deneyin; IP’nizin iptables -L f2b-sshd ile banlandığını görün. Unban için fail2ban-client set sshd unbanip IP_ADRESI kullanın. Düzenli bakımda, fail2ban-client status ile jail’leri izleyin ve logrotate ile log yönetimini sağlayın. Ubuntu’nun UFW ile entegrasyonu için action’ı ufw yerine iptables olarak tutun. Bu adımlar, Fail2Ban’ı güvenilir bir kalkan haline getirir ve brute force girişimlerini %99 oranında engeller.

SSH Sunucusunu Manuel Güçlendirme Teknikleri

Anahtar Tabanlı Kimlik Doğrulama Etkinleştirme

Parola tabanlı erişimi devre dışı bırakarak brute force riskini kökten azaltın. İstemci makinede ssh-keygen -t ed25519 ile anahtar çifti oluşturun; public key’i sunucuya ~/.ssh/authorized_keys’e kopyalayın (chmod 600 authorized_keys). Sunucuda /etc/ssh/sshd_config’i düzenleyin: PubkeyAuthentication yes, PasswordAuthentication no, ChallengeResponseAuthentication no. Root için PermitRootLogin prohibit-password ekleyin. Değişiklikleri sudo systemctl restart ssh ile uygulayın. Bu yöntem, parola tahminini imkansız kılar ve sadece private key sahiplerine erişim verir.

Port Değiştirme ve Root Erişim Kısıtlaması

Varsayılan 22 portu hedef alan taramaları önlemek için Port 2222 olarak değiştirin (sshd_config’te). UFW ile yeni portu açın: sudo ufw allow 2222/tcp && sudo ufw reload. PermitRootLogin no ile root doğrudan girişini yasaklayın; sudo kullanıcı oluşturup wheel grubuna ekleyin. ClientAliveInterval 300 ve ClientAliveCountMax 2 ile idle bağlantıları kapatın. MaxAuthTries 3 ile deneme sayısını sınırlayın. Bu ayarlar, saldırganların standart tarama araçlarını etkisizleştirir ve manuel erişimi zorlaştırır.

Bu teknikler bir arada kullanıldığında, Ubuntu Server’ınız brute force saldırılarına karşı katı bir savunma kazanır. Düzenli güncellemeler (sudo apt update && sudo apt upgrade) ve log izleme ile güvenliği sürdürün. Uygulama sonrası sunucunuzun performansını test edin ve gerekirse ayarları ince ayarlayın. Sonuç olarak, proaktif önlemlerle SSH erişiminizi güvenli ve kesintisiz tutabilirsiniz.

Yazar: Editör
İçerik: 649 kelime
Okuma Süresi: 5 dakika
Zaman: Bugün
Yayım: 17-03-2026
Güncelleme: 17-03-2026
Benzer İçerikler
Dijital Dönüşüm kategorisinden ilginize çekebilecek benzer içerikler