Linux’ta IPTABLES Kullanarak Güvenlik Duvarı Kuralları Yazma
Linux işletim sistemlerinde ağ trafiğini yönetmek ve siber tehditlere karşı koruma sağlamak için IPTABLES’ı kullanarak güvenlik duvarı kuralları yazma adımlarını detaylı bir şekilde ele alıyoruz. Temel ve ileri düzey kural oluşturma, örnek senaryolar, ayarları kaydetme ve ipuçları dahil olmak üzere kapsamlı bilgiler sunmayı amaçlıyoruz.
Güvenlik duvarları, siber saldırılara karşı kritik bir savunma hattı oluşturarak ağ trafiğini filtrelemek ve kontrol etmek için kullanılır. Linux sistemlerinde, IPTABLES, bu amaçla yaygın olarak kullanılan güçlü bir araçtır. Bu yazı, IPTABLES’ı kullanarak temel ve ileri düzey güvenlik duvarı kuralları yazmayı öğrenmenize ve uygulamanıza yardımcı olacaktır.
IPTABLES Kuralı Yazma
Her IPTABLES kuralı, aşağıdaki dört temel öğeden oluşur::
- Komut Seçimi:
- İzin vermek için
iptables -A
- Engellemek için
iptables -D
kullanılır.
- İzin vermek için
- Zincir (Chain) Belirleme:
- Gelen paketler için
INPUT
- Giden paketler için
OUTPUT
- Yönlendirilen paketler için
FORWARD
- Gelen paketler için
- Kriter Belirleme:
- Örneğin, belirli bir IP adresinden gelen trafik için
-s 192.168.1.1
- Belirli bir port için
--dport 22
- Örneğin, belirli bir IP adresinden gelen trafik için
- Eylem Belirleme:
- Kabul etmek için
ACCEPT
- Reddetmek için
DROP
- Başka bir zincire yönlendirmek için
JUMP
- Kabul etmek için
Örnek Kurallar
- Belirli Bir IP Adresinden Gelen Trafik İçin Engel:
-
iptables -A INPUT -s 192.168.1.1 -j DROP
Bu kural,
192.168.1.1
adresinden gelen tüm trafiği engeller. - Belirli Bir Porta Gelen Trafik İçin İzin:
-
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Bu kural, TCP üzerinden port 80’e gelen trafiği kabul eder.
- Tüm Giden Trafik İçin İzin:
-
iptables -A OUTPUT -j ACCEPT
Bu kural, tüm giden trafiği kabul eder.
İleri Düzey Örnekler
- Tüm Gelen Bağlantıları Reddet:
-
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
- HTTP ve HTTPS Portlarına İzin Ver:
-
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- SSH ve FTP için Belirli IP’lerden Erişime İzin Ver:
-
# SSH için
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.0.0.5 --dport 22 -j ACCEPT
# FTP için
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.0.0.5 --dport 21 -j ACCEPT
- Yerel Ağdan Tüm Trafiklere İzin Ver:
-
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
- Ayarları Kaydet ve Yeniden Başlatma Yönetimi:
-
sudo iptables-save > /etc/iptables/rules.v4
Bu komut, kuralların yeniden başlatmalarda uygulanmasını sağlar.
Spesifik Kurallar Ekleme: Özel durumlar için kurallar ekleyebilirsiniz. Örneğin, belirli bir IP adresinden gelen veya giden trafiğe izin vermek veya engellemek isteyebilirsiniz.
-
# Belirli bir IP adresinden gelen SSH trafiğine izin ver
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
# Tüm ICMP (ping) isteklerini reddet
sudo iptables -A INPUT -p icmp -j DROP
- Lojistik Ayarları Yapma: Yerel ağ trafiklerini kabul etmek ve mevcut bağlantılara izin vermek için:
-
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
- Kuralları Test Etme: Yeni eklenen kuralların beklenildiği gibi çalıştığından emin olmak için test edin.
iptables -L -v
komutunu kullanarak mevcut kuralları ve istatistikleri gözden geçirebilirsiniz.
IPTABLES, daha karmaşık ağ filtreleme senaryoları oluşturmak için çeşitli gelişmiş seçenekler sunar:
- Modüller: Paketleri işlemek için ek işlevler sağlayan modülleri yükleyebilirsiniz. Örneğin,
nf_nat
modülü, NAT (Network Address Translation) gibi gelişmiş yönlendirme teknikleri sağlar. - Markalama: Paketleri belirli kriterlere göre işaretleyebilir ve daha sonra bu işaretleri filtreleme işleminde kullanabilirsiniz.
- Sınırlı Hız: Belirli kaynaklardan gelen trafiği bant genişliği sınırıyla sınırlayabilirsiniz.
Güvenlik Duvarı Yönetimi İpuçları
- Beyaz Liste Yaklaşımı: Yalnızca izin verilen trafiği tanımlayın ve varsayılan olarak her şeyi engelleyin.
- En Az Ayrıcalık İlkesini Uygulayın: Gerekenden fazla erişim izni vermeyin.
- Kuralları Düzenli Olarak Güncelleyin: Sisteminizdeki değişikliklere ve yeni tehditlere ayak uydurun.
- Logları İzleyin: Şüpheli etkinlikleri ve potansiyel saldırıları belirlemek için logları inceleyin.
- Test Edin ve Doğrulayın: Herhangi bir kuralı uygulamadan önce test ortamında gerekli testleri uygulayın.
IPTABLES kuralları, sunucunuzun güvenliğini artırırken, belirli kaynaklardan sadece belirli hizmetlere erişim sağlamaya yardımcı olur. Bu kuralları uygulamadan önce, daha fazla bilgi edinmek ve özelleştirilmiş yapılandırmalar için güvenilir çevrimiçi kaynaklara başvurabilirsiniz.