Linux iptables Komutu – Güvenlik Duvarı Yönetimi Rehberi

1. iptables Nedir?

iptables, Linux sistemlerinde ağ paketlerini filtrelemek, yönlendirmek ve engellemek için kullanılan güçlü bir güvenlik duvarı aracıdır.

Linux çekirdeğindeki netfilter modülünü kullanarak çalışır ve gelen/giden ağ trafiğini belirli kurallara göre yönetir.

Başlıca işlevleri:

  • IP adresi, port, protokol bazlı filtreleme
  • NAT (Network Address Translation) işlemleri
  • Paket yönlendirme ve engelleme
  • Trafik kaydı (logging)

2. Temel Kullanım Söz Dizimi

iptables [tablo] [seçenekler] [zincir] [koşullar] [eylem]

Örnek

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Bu komut 22 numaralı porttan gelen TCP trafiğini kabul eder.

3. Sık Kullanılan Tablo ve Zincirler

Tablolar

TabloAçıklama
filterVarsayılan tablo, paket filtreleme işlemleri
natNAT işlemleri (IP yönlendirme, maskeleme)
manglePaket başlıklarını değiştirme
rawBağlantı izleme (connection tracking) öncesi işlemler

Zincirler

ZincirAçıklama
INPUTSisteme gelen paketler
OUTPUTSistemden çıkan paketler
FORWARDSistem üzerinden yönlendirilen paketler
PREROUTINGPaket yönlendirilmeden önce
POSTROUTINGPaket yönlendirildikten sonra

3. Önemli Argümanlar

ArgümanAçıklama
-AZincire kural ekler
-DZincirden kural siler
-IZincire başa kural ekler
-LZincirdeki kuralları listeler
-FZinciri temizler
-pProtokol belirtir (tcp, udp, icmp)
–dportHedef portu belirtir
–sportKaynak portu belirtir
-sKaynak IP adresi
-dHedef IP adresi
-jYapılacak eylemi belirtir (ACCEPT, DROP, REJECT, LOG)

5. Örnek Kullanımlar

5.1. Tüm Kuralları Listeleme

sudo iptables -L -n -v

Açıklama: Kuralları detaylı ve sayısal formatta gösterir.

5.2. SSH Bağlantısına İzin Vermek

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Açıklama: TCP 22 portundan gelen bağlantılara izin verir.

5.3. Belirli Bir IP’yi Engellemek

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

Açıklama: 192.168.1.100 IP adresinden gelen tüm paketleri düşürür.

5.4. HTTP ve HTTPS Trafiğine İzin Vermek

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Açıklama: Web sunucusuna gelen HTTP (80) ve HTTPS (443) trafiğine izin verir.

5.5. NAT ile Port Yönlendirme

sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80

Açıklama: Gelen 8080 portu trafiğini 80 portuna yönlendirir.

5.6. Tüm Trafiği Engellemek

sudo iptables -P INPUT DROP

Açıklama: Varsayılan politikayı DROP yaparak tüm gelen trafiği engeller.

6. Kuralları Kaydetme ve Yükleme

iptables ile eklenen kurallar sistem yeniden başlatıldığında kaybolur. Kalıcı yapmak için:

sudo iptables-save > /etc/iptables/rules.v4
sudo iptables-restore < /etc/iptables/rules.v4

7. Güvenlik Tavsiyeleri

  • Her zaman kendinizi kilitlememek için SSH portuna izin kuralı ekleyin.
  • İzin verilen portları minimumda tutun.
  • Gereksiz tüm protokolleri kapatın.
  • Düzenli olarak kuralları gözden geçirin.