Linux Sunucularda Güvenlik Duvarı (Firewall) Nasıl Yapılandırılır? UFW, Firewalld ve iptables Rehberi
🔐 Giriş: Sunucu Güvenliği Firewall ile Başlar
Bir Linux sunucu kurduğunuzda ilk yapmanız gereken adımlardan biri güvenlik duvarı yapılandırmasıdır. İnternete açık sunucular, varsayılan ayarlarla saldırıya açık hale gelir. Bu nedenle gereksiz portları kapatmak, sadece belirli IP’lere izin vermek ve log tutmak sisteminizi korumanın temelidir.
Bu rehberde üç yaygın araçla Linux’ta firewall yönetimini adım adım öğreneceksiniz:
- UFW (Uncomplicated Firewall) – Ubuntu ve Debian için kolay arayüz
- firewalld – CentOS, AlmaLinux, Fedora için önerilen çözüm
- iptables – En temel ve güçlü yapılandırma yöntemi
🛠️ 1. UFW (Uncomplicated Firewall) ile Başlangıç (Ubuntu / Debian)
🔹 Kurulum ve Başlatma:
bashKopyalaDüzenlesudo apt update
sudo apt install ufw
sudo ufw enable
🔹 Temel Komutlar:
- Durumu Görüntüle:
sudo ufw status numbered
- SSH için izin ver:
sudo ufw allow ssh
(veyasudo ufw allow 22/tcp
) - HTTP ve HTTPS için izin ver:
sudo ufw allow 80,443/tcp
- IP’ye özel izin:
sudo ufw allow from 192.168.1.100 to any port 22
- Tüm trafiği engelle, sonra gerekli olanı aç: bashKopyalaDüzenle
sudo ufw default deny incoming sudo ufw default allow outgoing
🔹 UFW’yi devre dışı bırakmak için:
bashKopyalaDüzenlesudo ufw disable
🔥 2. firewalld ile Yönetim (CentOS / AlmaLinux / Fedora)
🔹 Başlat ve Etkinleştir:
bashKopyalaDüzenlesudo systemctl start firewalld
sudo systemctl enable firewalld
🔹 Temel Komutlar:
- Durumu kontrol et:
sudo firewall-cmd --state
- Kural ekle (kalıcı + aktif):
bashKopyalaDüzenlesudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
- Bölge ayarlarını listele:
sudo firewall-cmd --get-active-zones
- Sadece bir IP’ye izin ver: bashKopyalaDüzenle
sudo firewall-cmd --add-rich-rule='rule family=ipv4 source address=1.2.3.4 port port=22 protocol=tcp accept' --permanent
🧱 3. iptables ile Gelişmiş Güvenlik (Tüm Dağıtımlar İçin)
iptables, en temel ve güçlü güvenlik duvarı aracıdır, ancak karmaşıktır.
🔹 Basit Kurallar:
- Tüm gelen trafiği engelle, sadece SSH açık bırak:
bashKopyalaDüzenlesudo iptables -P INPUT DROP
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
- HTTP/HTTPS izin ver:
bashKopyalaDüzenlesudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
🔹 Kuralları kalıcı hale getirme:
Debian/Ubuntu için:
bashKopyalaDüzenlesudo apt install iptables-persistent
sudo netfilter-persistent save
CentOS/Red Hat için:
bashKopyalaDüzenlesudo service iptables save
🔍 Güvenlik Duvarı Seçim Önerisi
Sistem | Tavsiye Edilen Araç |
---|---|
Ubuntu / Debian | UFW |
CentOS / AlmaLinux | firewalld |
Gelişmiş kontrol | iptables |
🛡️ Ekstra Güvenlik İpuçları
- SSH portunu değiştirin:
/etc/ssh/sshd_config
dosyasını düzenleyin - Fail2ban kurun: Brute-force saldırılarını engelleyin
- Logları izleyin:
sudo journalctl -u firewalld
,sudo ufw status verbose
📝 Sonuç: İlk Kalkanınız Firewall’dur
İnternete açık her Linux sunucu için güvenlik duvarı yapılandırması bir lüks değil, zorunluluktur. UFW gibi basit araçlarla temel koruma sağlanabilir, ancak gelişmiş ihtiyaçlar için firewalld veya iptables tercih edilebilir.
Firewall doğru yapılandırıldığında, potansiyel tehditlerin büyük kısmı daha sisteminize ulaşamadan engellenir.