Sunucu güvenliğinin temel taşı, yalnızca ihtiyaç duyulan portları açık bırakmak ve tekrarlayan saldırı denemelerini otomatik engellemektir. Bu rehberde Ubuntu/Debian sunucuda UFW (Uncomplicated Firewall) güvenlik duvarını yapılandıracak ve Fail2Ban ile kaba kuvvet saldırılarını engelleyeceğiz.
Bölüm 1: UFW güvenlik duvarı
UFW'yi kurun
UFW, Ubuntu'da genellikle kurulu gelir. Değilse:
sudo apt update && sudo apt install -y ufwVarsayılan politikaları belirleyin
Gelen tüm bağlantıları reddedip giden bağlantılara izin vermek en güvenli başlangıçtır:
sudo ufw default deny incoming
sudo ufw default allow outgoingGerekli portlara izin verin
UFW'yi etkinleştirmeden önce mutlaka SSH portuna izin verin, aksi takdirde sunucuyla bağlantınız kesilir. SSH portunu değiştirdiyseniz kendi port numaranızı yazın.
sudo ufw allow OpenSSH # veya: sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPSBelirli bir servise yalnızca kendi IP adresinizden erişim vermek için (örneğin MySQL):
sudo ufw allow from 203.0.113.10 to any port 3306 proto tcpUFW'yi etkinleştirin
sudo ufw enable
sudo ufw status verboseKural yönetimi
sudo ufw status numbered # Kuralları numaralı listele
sudo ufw delete 3 # 3 numaralı kuralı sil
sudo ufw limit OpenSSH # SSH'a hız sınırı uygula (30 sn'de 6+ deneme engellenir)Bölüm 2: Fail2Ban
Fail2Ban, log dosyalarını izleyerek çok sayıda başarısız giriş denemesi yapan IP adreslerini belirli bir süre engeller.
Kurulum
sudo apt install -y fail2ban
sudo systemctl enable --now fail2banYapılandırma
Ana yapılandırma dosyasını doğrudan düzenlemek yerine jail.local dosyası oluşturun; böylece güncellemelerde ayarlarınız korunur:
sudo nano /etc/fail2ban/jail.local[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
backend = systemd
banaction = ufw
ignoreip = 127.0.0.1/8 ::1
[sshd]
enabled = true
port = ssh
# SSH portunu değiştirdiyseniz: port = 2222Bu ayarlarla 10 dakika içinde 5 kez hatalı giriş yapan IP adresi 1 saat boyunca engellenir. ignoreip satırına kendi sabit IP adresinizi ekleyerek kendinizi yanlışlıkla engellemekten kurtulabilirsiniz.
sudo systemctl restart fail2banDurumu kontrol edin
sudo fail2ban-client status
sudo fail2ban-client status sshdYanlışlıkla engellenen bir IP adresini kaldırmak için:
sudo fail2ban-client set sshd unbanip 203.0.113.10Nginx için ek koruma
Nginx üzerindeki şüpheli bot taramalarını da engelleyebilirsiniz. jail.local dosyasına ekleyin:
[nginx-botsearch]
enabled = true
port = http,https
logpath = /var/log/nginx/access.log
backend = autoFail2Ban ve UFW, sunucu seviyesinde koruma sağlar. Hacimsel DDoS saldırıları ise sunucunuza ulaşmadan ağ seviyesinde filtrelenmelidir. MerkezHost altyapısı Mikrotik + Stormwall + AstGuard katmanlı DDoS koruması ile bu görevi üstlenir.
Sonuç
Sunucunuz artık yalnızca gerekli portları dışarıya açıyor ve kaba kuvvet saldırılarını otomatik engelliyor. Bu rehberi SSH güvenliği rehberimizle birlikte uygulayarak güçlü bir temel güvenlik katmanı oluşturabilirsiniz.
Sık Sorulan Sorular
UFW'yi açınca SSH bağlantım kopar mı?
UFW'yi etkinleştirmeden önce SSH portuna izin vermezseniz bağlantınız kesilir. Bu nedenle her zaman önce ufw allow OpenSSH (veya özel portunuz) komutunu çalıştırın.
Fail2Ban DDoS saldırılarını engeller mi?
Hayır. Fail2Ban kaba kuvvet giriş denemelerini engeller. Hacimsel DDoS saldırılarına karşı ağ seviyesinde koruma gerekir; MerkezHost altyapısında bu koruma katmanlı olarak sağlanır.
