Linux'ta iptables Kurallarını Listeleme ve Silme Rehberi
Bu rehberde ne öğreneceksiniz?
Bu rehber, Linux sistemlerde iptables kullanarak mevcut güvenlik duvarı kurallarını nasıl listeleyeceğinizi, paket sayaçlarını sıfırlayacağınızı, belirli kuralları sileceğinizi ve tüm zincirleri ya da firewall yapılandırmasını nasıl sıfırlayacağınızı anlatır. Tablo ve spesifikasyon formatlarını okumayı öğrenir, kural numarasıyla silme gibi pratik komutlara hâkim olursunuz.
💻 iptables Yönetimi: Listeleme ve Silme Adımları
iptables, sunucunuzdaki ağ trafiğini yöneten temel Linux güvenlik aracıdır. Güvenlik duvarı yönetimi, sunucu güvenliği için kritik önem taşır.
1️⃣ Aktif Kuralları Listeleme
iptables kurallarını iki farklı formatta listeleyebilirsiniz:
1.1 Spesifikasyon Formatı (-S)
Bu format, kuralların oluşturulurken kullanılan komut dizimine benzer. En teknik ve ayrıntılı görünüm budur.
Tüm kuralları listeleme:
sudo iptables -S
Açıklama: Kuralları tam tanımıyla, oluşturuldukları şekle yakın formatta listeler.
Belirli bir zinciri listeleme:
sudo iptables -S INPUT
Açıklama: INPUT zincirindeki kuralların spesifikasyonlarını gösterir.
1.2 Tablo Formatı (-L)
Bu format, kuralları sütunlar hâlinde daha okunaklı gösterir.
Tüm zincirleri tablo olarak listeleme:
sudo iptables -L
Açıklama: Hedef (target), protokol, kaynak ve hedef alanlarını sütunlu biçimde gösterir.
INPUT zincirini tablo olarak görüntüleme:
sudo iptables -L INPUT
Açıklama: INPUT zincirindeki kurallar tablo biçiminde listelenir.
1.3 Paket ve Byte Sayaçlarıyla Listeleme (-v)
sudo iptables -L INPUT -v
Açıklama: Her kuralın kaç paket ve kaç byte veri ile eşleştiğini gösterir.
2️⃣ Paket ve Bayt Sayaçlarını Sıfırlama (-Z)
Sayaç sıfırlama, yeni trafik akışını takip etmek için kullanışlıdır.
Tüm zincirlerdeki sayaçları sıfırlama:
sudo iptables -Z
Açıklama: Sistemdeki tüm zincirlerin sayaçlarını sıfırlar.
Belirli zincirin sayaçlarını sıfırlama:
bash
sudo iptables -Z INPUT Açıklama: INPUT zincirindeki tüm sayaçlar temizlenir.
Belirli kuralın sayaçlarını sıfırlama:
sudo iptables -Z INPUT 1
Açıklama: INPUT zincirindeki ilk kuralın sayaçlarını sıfırlar.
3️⃣ iptables Kurallarını Silme (-D)
Kurallar iki şekilde silinebilir: Spesifikasyon ile veya satır numarası ile.
3.1 Spesifikasyonla Silme
Kuralı oluştururken kullandığınız komutun aynısını, -A yerine -D kullanarak çalıştırırsınız.
Örnek:
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
Açıklama: INVALID durumundaki paketleri düşüren kuralı siler.
3.2 Satır Numarası ile Silme
Önce numaralı liste alın:
sudo iptables -L --line-numbers
Açıklama: Her kuralın başına bir sıra numarası ekler.
Ardından istediğiniz kuralı silin:
sudo iptables -D INPUT 3
Açıklama: INPUT zincirinin 3. kuralını siler.
4️⃣ Zincirleri Toplu Olarak Temizleme (Flush)
⚠️ Dikkat: SSH kuralınız yoksa erişiminizi kaybedebilirsiniz.
Belirli bir zinciri temizleme:
sudo iptables -F INPUT
Açıklama: INPUT zincirindeki tüm kuralları siler.
Tüm zincirlerdeki kuralları temizleme:
sudo iptables -F
Açıklama: Tüm zincirler boşaltılır.
5️⃣ Tam Yapılandırma Sıfırlama (Tüm Trafiği Açma)
Bu işlem firewall’u fiilen devre dışı bırakır.
Varsayılan politikaları ACCEPT olarak ayarlayın:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
Açıklama: Yanlışlıkla kilitlenmemek için tüm zincirler trafiğe izin verir.
Diğer tabloları temizleyin:
sudo iptables -t nat -F
sudo iptables -t mangle -F
Açıklama: nat ve mangle tablolarını boşaltır.
Tüm zincirleri temizleyin:
sudo iptables -F
Kullanıcı zincirlerini silin:
sudo iptables -X
Açıklama: Varsayılan olmayan tüm zincirler kaldırılır.
6️⃣ -D ve -F Arasındaki Fark
| Komut | Açıklama | Amaç | Örnek |
|---|---|---|---|
| -D | Belirli bir kuralı siler | Tek kural kaldırma | sudo iptables -D INPUT 1 |
| -F | Zincirdeki tüm kuralları siler | Toplu temizlik | sudo iptables -F INPUT |
7️⃣ Custom Chain (Özel Zincir) Kurallarını Silme
Belirli bir custom chain’deki kuralı silme:
sudo iptables -D custom_chain 1
Açıklama: custom_chain içindeki ilk kural silinir.
🐞 Yaygın Hatalar ve Çözümleri
❌ “No chain/target/match by that name” Zincir adı yanlış yazılmıştır.
sudo iptables -L
❌ Spesifikasyon eşleşmiyor → kural silinmiyor Doğru kuralı bulmak için:
sudo iptables -S INPUT
❌ Yanlış kural silme riski Güvenli listeleme için:
sudo iptables -nL INPUT
❓ Sıkça Sorulan Sorular (SSS)
1. Aktif kuralları nasıl görüntülerim?
sudo iptables -L
sudo iptables -S
2. Belirli bir kuralı nasıl silerim?
sudo iptables -D INPUT <numara>
3. Flush ile delete arasındaki fark nedir?
Delete → Tek kural siler
Flush → Zincirdeki tüm kuralları temizler
4. Yanlışlıkla SSH kuralını sildim, ne yapacağım?
Bulut panelinin web konsolundan bağlanıp yeni bir kural eklemeniz gerekir.
5. iptables değişiklikleri kalıcı mı?
Hayır. iptables değişiklikleri geçicidir (ephemeral). Kalıcı olması için:
sudo apt install iptables-persistent
🎯 Sonuç
Bu rehber ile iptables kurallarını listelemeyi, sayaçları sıfırlamayı, kural silmeyi, zincir flush etmeyi ve firewall’u tamamen sıfırlamayı öğrendiniz.
iptables yönetimi, sunucu güvenliğinin en önemli parçalarından biridir. Doğru kural setiyle saldırı yüzeyini minimuma indirebilirsiniz.
Rabisu Bulut ile Linux sunucularınızı kolayca yönetin ve güvenliğinizi güçlendirin.