Linux işletim sistemlerinde güvenliği sağlamak için en önemli araçlardan biri güvenlik duvarlarıdır (firewall). Linux’ta yaygın olarak kullanılan iki güvenlik duvarı yönetim sistemi iptables ve firewalld’dir. Bu yazıda, iptables ve firewalld kullanarak güvenlik duvarı yapılandırmalarını detaylı bir şekilde anlatacağım.
1. Güvenlik Duvarı Nedir ve Neden Önemlidir?
Güvenlik duvarı, yetkisiz ağ erişimlerini engelleyen bir sistemdir. Linux sunucularında güvenliği sağlamak için belirli bağlantılara izin verebilir veya engelleyebilirsiniz.
🔹 Örneğin: Bir sunucunun sadece SSH (22) ve HTTP (80) bağlantılarını kabul etmesini, diğer tüm istekleri reddetmesini sağlayabilirsiniz.
Linux’ta güvenlik duvarı yönetmek için iki ana araç bulunur:
- iptables: Eski ama güçlü bir güvenlik duvarı yöneticisi.
- firewalld: iptables üzerine kurulu, daha modern ve kolay bir yönetim sağlar.
2. iptables Kullanımı
iptables, ağ paketlerini filtrelemek için kullanılan güçlü bir güvenlik duvarı aracıdır.
Temel iptables Komutları
İşlem | Komut |
---|---|
Mevcut kuralları listeleme | sudo iptables -L -v -n |
Tüm kuralları sıfırlama | sudo iptables -F |
Belirli bir portu açma (SSH – 22) | sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT |
Belirli bir portu engelleme | sudo iptables -A INPUT -p tcp --dport 23 -j DROP |
Tüm gelen bağlantıları engelleme | sudo iptables -P INPUT DROP |
Örnek: SSH ve HTTP’yi Aç, Diğer Tüm Bağlantıları Engelle
sudo iptables -F
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 -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
Bu komut seti: SSH (22), HTTP (80) ve HTTPS (443) izin verir. Diğer tüm bağlantıları engeller.
🔹 Kuralları kalıcı yapmak için:
sudo iptables-save > /etc/iptables/rules.v4
3. firewalld Kullanımı
firewalld, iptables’e kıyasla daha esnek ve kullanıcı dostu bir güvenlik duvarı yönetim sistemidir.
Firewalld’yi Başlatma ve Kontrol Etme
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --state
Temel firewalld Komutları
İşlem | Komut |
---|---|
Aktif bölgeleri listeleme | sudo firewall-cmd --get-active-zones |
Belirli bir portu açma (SSH – 22) | sudo firewall-cmd --permanent --add-service=ssh |
Belirli bir portu kapatma | sudo firewall-cmd --permanent --remove-service=http |
Mevcut kuralları listeleme | sudo firewall-cmd --list-all |
Firewalld’yi yeniden yükleme | sudo firewall-cmd --reload |
Örnek: SSH, HTTP ve HTTPS’yi Aç, Diğer Tüm Bağlantıları Engelle
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
🔹 firewalld’de kurallar kalıcıdır, --permanent
parametresi ile kaydedilir.
4. Temel Güvenlik Senaryoları
Linux sistemlerinde yaygın olarak kullanılan güvenlik duvarı kurallarına birkaç örnek:
1️⃣ SSH (22) Portunu Belirli IP’lere Açmak
Eğer sadece belirli bir IP’nin SSH erişimi olmasını istiyorsanız:
📌 iptables ile:
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
📌 firewalld ile:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
2️⃣ Tüm Gelen Trafiği Engelle, Sadece Belirli Portları Aç
📌 iptables ile:
sudo iptables -P INPUT DROP
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
📌 firewalld ile:
sudo firewall-cmd --permanent --remove-service=all
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
5. Kalıcı Kurallar ve Otomatik Yükleme
iptables kurallarını kalıcı yapmak için:
sudo iptables-save > /etc/iptables/rules.v4
firewalld’de yapılan değişiklikler kalıcıdır, ancak firewalld servisini etkin tutmanız gerekir:
sudo systemctl enable firewalld
6. Özetle;
Linux güvenliğini artırmak için iptables veya firewalld kullanarak gelen ve giden trafiği yönetmek kritik bir adımdır.
✔ Gereksiz tüm bağlantı noktalarını kapatın.
✔ Sadece belirli IP adreslerine izin verin.
✔ Düzenli olarak güvenlik duvarı kurallarınızı gözden geçirin.
✔ Güvenlik politikalarınızı düzenli olarak güncelleyin.
Bu yöntemleri kullanarak Linux sunucunuzu daha güvenli hale getirebilirsiniz!