Tüm iptables kurallarını görüntüleme


144

iptablesKuralları biraz daha ayrıntılı görmenin bir yolu var mı ?

Yakın zamanda bir dizi IP'ye maskeli balo ekledim:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service iptables save
service iptables restart

İstediğim şeyi yaptım, ama kullandığım zaman:

iptables -L

Normalde aldığım aynı çıktıyı alıyorum:

Chain INPUT (policy ACCEPT)
target    prot opt source        destination

Chain FORWARD (policy ACCEPT)
target    prot opt source        destination

Chain OUTPUT (policy ACCEPT)
target    prot opt source        destination

Eklediklerimi de içeren kuralları nasıl görebilirim? (sistem CentOS 6’dır)

Yanıtlar:


116

Kullanırken -L, --listgeçerli güvenlik duvarı kurallarını listelemek için seçenek, ayrıca uygun Netfilter tablo belirtmek gerekir (birini filter, nat, mangle, rawveya security). Eğer bir kural ekledikten Yani, natmasa, açıkça kullanarak bu tabloyu belirtmelidir -t, --tableseçeneği:

iptables --table nat --list

Veya seçenekler kısa biçimini kullanarak:

iptables -t nat -L

Belirli bir tablo belirtmezseniz, filtertablo varsayılan olarak kullanılır.


Hızlı sonuç almak için, o da içerecek şekilde yararlı olabilir -n, --numericböylece ters DNS aramaları için beklemek ihtiyacını ortadan kaldırmak yerine ana bilgisayar adlarının sayısal IP adreslerini yazdırma seçeneği.

-v, --verboseSeçeneğini ekleyerek daha fazla bilgi edinebilirsiniz .


113

iptables: Beş farklı tablolar kontrol filter, nat, mangle, rawve security. Belirli bir aramada, iptablesyalnızca seçenek için argüman ile belirtilen bu tablolardan birini görüntüler veya değiştirir -t(varsayılan olarak filter). Güvenlik duvarının tam durumunu görmek için, iptablessırayla tabloların her birini çağırmanız gerekir .

Ek olarak, kuralların doğru bir temsilini almak için seçeneği geçmeniz gerekir -v. Aksi takdirde, çıktıda, filtre kurallarındaki arabirim (ör. “Her şeyi kabul et” yazan bir kural ve “geridöngü arabirimindeki her şeyi kabul et” yazan bir kural ancak ayırt edilebilir -v) gibi bazı önemli ölçütler belirtilmez .

Böylece, netfilter kurallarının tam bir sunumunu yapmak için,

iptables -vL -t filter
iptables -vL -t nat
iptables -vL -t mangle
iptables -vL -t raw
iptables -vL -t security

Alternatif olarak, iptables-savetüm tablolardaki tüm kuralları ayrıştırılabilecek biçimde görüntüleyen programı çağırabilirsiniz iptables-restore. Bu biçim insanlar tarafından da makul bir şekilde okunabilir ( iptablestabloyu kurmak için yapılan bir dizi çağrı gibidir).


56

iptables -Shile benim için yapar. Hizmet kapalı olsa bile tüm etkin kuralları listeliyor gibi görünüyor.

Man sayfasından:

-S, --list-rules [chain] Seçilen zincirdeki tüm kuralları yazdır. Hiçbir zincir seçilmezse, tüm zincirler iptables-save gibi yazdırılır. Diğer tüm iptables komutları gibi, belirtilen tabloya uygulanır (filtre varsayılandır).


Bu gerçekten kwl bir cevaptır, ayrıca / sbin / service iptables durumunun da benzer bir çıktı verdiğini farkettim
TheLovelySausage

6
+1. Bu konuda 'görünmüyor' - man sayfasından: "-S, Seçilen zincirdeki tüm kuralları yazdır. Hiçbir zincir seçilmezse, tüm zincirler iptables-save gibi yazdırılır". Genelde ihtiyacım olan şey bu.
Mike S

3
böyle bir şey bulamadım. iptables -Siptables -L -t nat
kaçtığımda

1
@MikeS Man sayfasından, BOTH komutları yalnızca belirtilen tabloda çalışır, varsayılan olarak filtre uygular. "Diğer tüm iptables komutları gibi, belirtilen tabloya uygulanır (filtre varsayılandır)." Belgelerdeki ifadeler hemen hemen aynı olarak -S ve -L için kopyalanır, basılan kuralları değil, yalnızca çıktının biçimlendirmesinde farklılık gösterir. Bu en azından sistemimde iptables v1.6.0 olan Ubuntu 16.04 için geçerlidir.
Scott

@Mulllhausen ile burada katılıyorum. Nat masa kurallarını göstermek için "sudo iptables --table nat --list" e ihtiyacım vardı. "-S" bayrağı kendi başına göstermedi.
Robert Oschler

15

Yapmam gereken, iptables-save > iptables_bckptüm katmanları yedekleyecek, sonra dosyayı düzenleyecek ve iptables dosyasını geri yükleyecek.iptables-restore < iptables_bckp

# iptables-save > iptables_bckp
# vim iptables_bckp
# iptables-restore < iptables_bckp

İkili yedekleme yapabilirsiniz, böylece geçmiş ipoteklerinizi kaybetmeden bunlardan birini değiştirebilirsiniz.

Bu kişisel bir uygulamadır, bunun en iyi yol olduğunu söylemiyorum ama benim için harika çalışıyor.

Bir dene


Bu, şu ana kadar bulduğum tek gerçekçi cevap, aslında tüm tabloları da atıyor.
Chris Harrington,

4

iptablesKomut ayrıca tablo filtrelemek için aksi takdirde varsayılan tablo belirtmek için gereklidir. O zaman dene:

iptables -t nat -L

1

Kullanabilirsiniz:

# lsmod | grep ip_tables
ip_tables              13193  4 iptable_raw,iptable_mangle,iptable_nat,iptable_filter

Tüm tabloları bulmak ve tablodaki belirli kuralları göstermek için.


1

Eğer gerçekten yardımcı olacaksa, bir bash betiği yazıp yolunuz tarafından referans verilen bir klasöre koyabilir veya ~ / .bashrc dosyasındaki bir takma adla başvuruda bulunabilirsiniz.

AllRules.sh

#!/bin/bash

 echo "Filter table:"
 iptables -t filter -vL

 echo "Nat table:"
 iptables -t nat -vL

 echo "Mangle table:"
 iptables -t mangle -vL

 echo "Raw table:"
 iptables -t raw -vL

 echo "Security table:"
 iptables -t security -vL

 echo 
 echo "All rules in all tables printed"

Yeni bash betiğinize yürütme izinlerini vermeyi unutmayın. chmod

İzin bir sorunsa, tüm iptableskomutların önüne sudo eklemeniz gerekebilir .


0
iptables -vnxL
iptables -vnxL -tnat

muhtemelen ek olarak, bunlar çok nadiren kullanılsa da:

iptables -vnxL -traw
iptables -vnxL -tmangle
iptables -vnxL -tsecuriy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.