Linux Firewall: firewalld ve UFW ile HTTP, HTTPS ve SSH Kuralları
Ubuntu/Debian için UFW ve AlmaLinux/CentOS için firewalld ile güvenlik duvarı yapılandırması. HTTP, HTTPS ve SSH kuralları.
Linux Güvenlik Duvarı Nedir?
Güvenlik duvarı (firewall), ağ trafiğini belirli kurallara göre filtreleyerek yetkisiz erişimleri engelleyen bir güvenlik mekanizmasıdır. Linux çekirdeğinde bu görev netfilter (iptables/nftables) alt sistemi tarafından yerine getirilir. UFW (Uncomplicated Firewall) ve firewalld ise bu alt sistemi daha kolay yönetmek için geliştirilmiş yönetim araçlarıdır.
Her Linux sunucuda bir güvenlik duvarı aktif olmalı ve yalnızca gerekli portlar açık bırakılmalıdır. "En az yetki" prensibine göre: önce her şeyi engelle, sonra ihtiyaç duyulan portları izin ver.
UFW (Ubuntu/Debian)
Kurulum ve Temel Kullanım
apt install -y ufw
# Varsayılan politika: gelen trafiği engelle, gideni izin ver
ufw default deny incoming
ufw default allow outgoing
# SSH portunu mutlaka ilk olarak açın (yoksa kilitlenirsiniz!)
ufw allow 22/tcp comment 'SSH'
# Web sunucusu portları
ufw allow 80/tcp comment 'HTTP'
ufw allow 443/tcp comment 'HTTPS'
# UFW'yi etkinleştir
ufw enable
# Durum kontrolü
ufw status verbose
IP Bazlı Kurallar
# Belirli IP'ye SSH izni ver
ufw allow from 203.0.113.5 to any port 22
# Bir ağ bloğuna HTTP izni ver
ufw allow from 192.168.1.0/24 to any port 80
# Belirli IP'yi tamamen engelle
ufw deny from 198.51.100.10
# Port aralığı
ufw allow 6000:6100/tcp
Kural Silme
ufw status numbered # Numaralı liste
ufw delete 3 # Kural numarası ile sil
ufw delete allow 8080 # Kural içeriği ile sil
firewalld (AlmaLinux/CentOS)
Kurulum ve Temel Kullanım
dnf install -y firewalld
systemctl enable --now firewalld
firewall-cmd --state
Zone Yönetimi
firewalld, ağ arabirimlerini "zone" adı verilen güven bölgelerine atar. Varsayılan zone genellikle public'tir.
# Aktif zone'ları listele
firewall-cmd --get-active-zones
# Zone'daki mevcut kuralları görüntüle
firewall-cmd --zone=public --list-all
Servis ve Port Ekleme
# Önceden tanımlı servisler
firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
# Manuel port ekleme
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --permanent --zone=public --add-port=6000-6100/tcp
# Değişiklikleri uygula
firewall-cmd --reload
firewall-cmd --zone=public --list-all
IP Engelleme ve Rich Rules
# Belirli IP'yi engelle
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="198.51.100.10" reject'
# Belirli IP'ye belirli porta izin ver
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.5" port port="22" protocol="tcp" accept'
firewall-cmd --reload
İleri Seviye: iptables Kuralları
# Mevcut kuralları listele
iptables -L -n -v
# SSH brute-force koruması (dakikada max 4 deneme)
iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
-m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
-m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP
# Kuralları kalıcı hale getir
apt install -y iptables-persistent
netfilter-persistent save
Sık Karşılaşılan Sorunlar
- UFW etkinleştirince SSH bağlantısı kesildi: SSH portunu açmadan
ufw enableçalıştırdınız. VPS konsolundan bağlanıpufw allow 22çalıştırın. - firewalld değişiklikleri kayboldu:
--permanentbayrağı olmadan yapılan değişiklikler sunucu yeniden başlatılınca sıfırlanır. - Docker ve UFW çakışması: Docker, iptables kurallarını doğrudan değiştirir ve UFW kurallarını atlayabilir.
/etc/docker/daemon.jsondosyasına{"iptables": false}ekleyin.
İlgili Makaleler
- UFW Firewall Nasıl Kurulur? Ubuntu ve Debian Güvenlik Duvarı Rehberi
- SSH Güvenliği: Anahtar Tabanlı Giriş, Port Değiştirme ve Bastion
- SSH Permission Denied (publickey) Hatası Nasıl Çözülür?
- Ubuntu Server 22.04 LTS Kurulumu ve Güvenli Yapılandırma Rehberi
- AlmaLinux 9 Kurulumu ve İlk Yapılandırma Rehberi
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!