
Linux sunucularda Güvenlik Duvarı(Firewall) konfigürasyonu nasıl yapılır?
Linux sunucularda güvenlik duvarı (firewall) konfigürasyonu genellikle aşağıdaki araçlarla yapılır:
1. ufw
(Uncomplicated Firewall) – Basit ve kullanıcı dostu
Ubuntu ve türevlerinde yaygındır.
Kurulum (gerekirse):
sudo apt install ufw
Temel kullanım:
# Etkinleştir
sudo ufw enable
# SSH erişimini izinle (önemli!)
sudo ufw allow ssh
veya sudo ufw allow 22
# Belirli bir portu aç
sudo ufw allow 80/tcp
# Portu kapat
sudo ufw deny 21/tcp
# Durumu kontrol et
sudo ufw status verbose
# Tüm gelen bağlantıları reddet, sadece izin verilenleri al
sudo ufw default deny incoming sudo ufw default allow outgoing
2. firewalld
– Dinamik yönetim aracı (RHEL/CentOS/Fedora)
Kurulum (varsa):
sudo yum install firewalld
Temel kullanım:
# Başlat ve etkinleştir
sudo systemctl start firewalld sudo systemctl enable firewalld
# Servis izinle (örnek: http)
sudo firewall-cmd --permanent --add-service=http
# Port izinle
sudo firewall-cmd --permanent --add-port=8080/tcp
# Değişiklikleri uygula
sudo firewall-cmd --reload
# Aktif kuralları görüntüle
sudo firewall-cmd --list-all
3. iptables
– Daha gelişmiş ve ayrıntılı kontrol
Genellikle sistem düzeyinde daha esnek kontroller sağlar, ancak kullanımı daha karmaşıktır.
Örnek kurallar:
# Tüm bağlantıları reddet
sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT
# SSH'e izin ver
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Mevcut bağlantılara izin ver
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Kuralları kaydet (dağıtıma göre değişir)
sudo iptables-save > /etc/iptables/rules.v4
iptables
yerinenftables
kullanımı artık daha yaygınlaşmaktadır (özellikle Debian 10+, Ubuntu 20.04+, RHEL 8+).
Konfigürasyon Örneği;
-
Sadece SSH (22), HTTP (80) ve HTTPS (443) portlarını dışarıdan erişime açık bırakmak.
-
Geri kalan tüm gelen bağlantıları reddetmek.
1. ufw
Konfigürasyonu (Ubuntu/Debian)
# UFW'yi başlatmadan önce kurallar tanımlanır
sudo ufw default deny incoming sudo ufw default allow outgoing
# SSH (22), HTTP (80), HTTPS (443) izin ver
sudo ufw allow ssh sudo ufw allow 80/tcp sudo ufw allow 443/tcp
# UFW'yi etkinleştir
sudo ufw enable # Durumu kontrol et sudo ufw status verbose
2. firewalld
Konfigürasyonu (CentOS/RHEL/Fedora)
# firewalld başlat ve kalıcı yap
sudo systemctl start firewalld sudo systemctl enable firewalld
# Güvenlik bölgesini kontrol et
(default: public) sudo firewall-cmd --get-default-zone
# SSH, HTTP, HTTPS servislerine izin ver (kalıcı olarak)
sudo firewall-cmd --permanent --zone=public --add-service=ssh sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https
# Gerekli değilse diğer tüm portları kapatma işlemi
sudo firewall-cmd --permanent --set-target=DROP # Ayarları yeniden yükle sudo firewall-cmd --reload
# Aktif kuralları göster
sudo firewall-cmd --list-all
3. iptables
Konfigürasyonu (Tüm Linux’lar – Gelişmiş kullanıcılar için)
# Tüm politikaları sıfırla sudo
iptables -F sudo iptables -X sudo iptables -t nat -F sudo iptables -t nat -X
# Varsayılan politikaları ayarla
sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT
# Gelen trafiğe izin ver:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT sudo iptables -A INPUT -i lo -j ACCEPT
# localhost erişimine izin ver
# Kuralları kaydet (Debian/Ubuntu için)
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
# Kuralları kaydet
(CentOS için) sudo service iptables save