Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Chcialem wylistowac wszystkie regoly iptables w tablicy NAT za pomoca komendy:
sudo iptables -L -n -v -t nat --line-numbers
Niestety nie podaje numeru kolejnego dla regol, wobec tego chcialem uzyc ponizszego skryptu.
Skrypt ponizej powinien listowac wszystkie regoly iptables lacznie z tymi z tablicy NAT.
#!/bin/awk -f state == 0 && /^-A/ {state=1; chain=$2; counter=1; printf "\n"} state == 1 && $2 != chain {chain=$2; counter=1; printf "\n"} !/^-A/ {state=0} state == 1 {printf "[%03d] %s\n", counter++, $0} state == 0 {print}
Chcialem trenningowo dodac nastepujaca regole:
sudo iptables -t mangle -A POSTROUTING -m conntrack --ctstate INVALID -j DROP
Nastepnie wklepalem:
sudo netfilter-persistent save sudo netfilter-persistent reload
Nie widac tej regoly ani licznikow.
Ostatnio edytowany przez Karoll (2023-09-24 14:11:49)
Offline
Wynik:
iptables -t nat -S
będzie dużo łatwiejszy do parsowania każdym regexem.
Poza tym:
iptables -L -n -v -t nat --line-numbers
Chain PREROUTING (policy ACCEPT 167K packets, 44M bytes)
num pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 10250 packets, 393K bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 3239 packets, 311K bytes)
num pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 627 packets, 131K bytes)
num pkts bytes target prot opt in out source destination
1 44138 2920K MASQUERADE all — * eth0.2 0.0.0.0/0 0.0.0.0/0
2 2412 164K MASQUERADE all — * * 0.0.0.0/0 !192.168.0.0/16
U mnie w OpenWRT numeruje reguły, natomiast nie numeruje domyślnych polityk.
numerki reguł masz wytłuszczone.
Ostatnio edytowany przez Jacekalex (2023-09-23 17:35:28)
Offline
Niestety:
sudo iptables -t nat -S -P PREROUTING ACCEPT -P INPUT ACCEPT -P OUTPUT ACCEPT -P POSTROUTING ACCEPT
nie numeruje regol.
Ponadto:
sudo iptables -L -n -v -t nat --line-numbers Chain PREROUTING (policy ACCEPT 26 packets, 8044 bytes) num pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 1337 packets, 253K bytes) num pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 1337 packets, 253K bytes) num pkts bytes target prot opt in out source destination
Nic nie wytluszcza.
Nie numeruje ani polityk ani regol.
Ostatnio edytowany przez Karoll (2023-09-23 18:17:17)
Offline
Domyślnej polityki w pustym łańcuchu nie numeruje, bo domyślna polityka jest tylko jedna.
Jak dodasz do łańcucha jakieś reguły, to one będą miały numerki.
Jak do łańcucha np PREROUTING w tablicy NAT żadnej reguły, to i numerków nie będzie, bo po prostu nie ma tam czego numerować.
Poczytaj sobie polską dokumentację netfiltera, to może lepiej zrozumiesz budowę Firewalla w Linuxie:
https://pl.wikibooks.org/wiki/Sieci_w_Linuksie/Netfilter
To by było na tyle
Offline
Poczytalem. Trzeba bylo zrobic:
lsmod | grep nat
modprobe iptable-nat
Dodac iptable-nat module do modulow autostartujacych w /etc/modules:
update-initramfs -u
Pojawiaja sie regoly:
sudo iptables -L -n -t nat
Lub dokladniej:
sudo iptables-legacy -vnL -t mangle Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
Po dodaniu reguly:
sudo iptables-legacy -vnL -t mangle Chain PREROUTING (policy ACCEPT 7 packets, 534 bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 7 packets, 534 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 6 packets, 962 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 6 packets, 962 bytes) pkts bytes target prot opt in out source destination
sudo iptables -v -n --list --table nat Chain PREROUTING (policy ACCEPT 41 packets, 12836 bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 1751 packets, 454K bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 1748 packets, 454K bytes) pkts bytes target prot opt in out source destination root@debian:~# sudo iptables-legacy -v -n --list --table nat Chain PREROUTING (policy ACCEPT 7 packets, 2338 bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 517 packets, 160K bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 517 packets, 160K bytes) pkts bytes target prot opt in out source destination
Liczniki dzialaja a numeracji jak nie bylo tak nie ma !
Zamierzalem treningowo dodac regole:
sudo iptables -t mangle -A POSTROUTING -m conntrack --ctstate INVALID -j DROP
Nastepnie wklepalem:
sudo netfilter-persistent save && sudo netfilter-persistent reload
Nie widac ani regoly ani licznikow.
Ciekawy jestem jak wyglada sprawa logow z NAT,u ?
Potrzebne jest rozwiazanie 5 problemow:
1 - komenda, ktora dla NAT-u (POSTROUTING, PREROUTING) listuje reguly w sposob rownie czytelny i jednoznaczny, jak to robia np 2 ponizsze
komendy dla pozostalych tablic:
sudo iptables -t nat -L --line-numbers -n
sudo iptables-legacy -vnL -t mangle
2 - wyjasnienie dlaczego ponizsza regola nie jest w ogole listowana (niewidoczna) po jej wprowadzeniu:
sudo iptables -t mangle -A POSTROUTING -m conntrack --ctstate INVALID -j DROP
3 - po reboocie liczniki NAT,u sa automatycznie resetowane do zera. Co zrobic zeby liczniki nie resetowaly wynikow licznikow co jest bardzo wazne
dla ustalenia w dluzszym okresie czasu, ktore regoly sa: "aktywne" a ktore "pasywne"
4 - jak logowac ruch za NAT,em ??
5 - Utrzymanie kolejnosci regol NAT-u po reebocie. NAT rules persistency after reboot.
Pozdrawiam serdecznie wszystkich "dugowiczow"......
Edyta: Dot pkt 2 = juz sam wyjasnilem. W tablicy mangle i lancuchu POSTROUTING nie mozna stosowac conntrack !.
Mozna go stosowac w tablicy mangle lancucha OUTPUT.
Ostatnio edytowany przez Karoll (2023-09-27 23:49:00)
Offline