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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2023-09-22 22:06:29

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Sprawdzenie skryptu.

Chcialem wylistowac wszystkie regoly iptables w tablicy NAT za pomoca komendy:

Kod:

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.

Kod:

#!/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:

Kod:

sudo iptables -t mangle -A POSTROUTING -m conntrack --ctstate INVALID -j DROP

Nastepnie wklepalem:

Kod:

sudo netfilter-persistent save sudo netfilter-persistent reload

Nie widac tej regoly ani licznikow.

Ostatnio edytowany przez Karoll (2023-09-24 14:11:49)


Tolerancja i apatia, to ostatnie cnoty umierającego społeczeństwa

Offline

 

#2  2023-09-23 16:03:08

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Sprawdzenie skryptu.

Wynik:

Kod:

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)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2023-09-23 18:12:27

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: Sprawdzenie skryptu.

Niestety:

Kod:

sudo iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT

nie numeruje regol.
Ponadto:

Kod:

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)


Tolerancja i apatia, to ostatnie cnoty umierającego społeczeństwa

Offline

 

#4  2023-09-23 21:15:37

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Sprawdzenie skryptu.

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


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2023-09-24 10:36:32

  Karoll - Użytkownik

Karoll
Użytkownik
Zarejestrowany: 2019-08-12

Re: Sprawdzenie skryptu.

Poczytalem. Trzeba bylo zrobic:

Kod:

lsmod | grep nat

Kod:

modprobe iptable-nat

Dodac iptable-nat module do modulow autostartujacych w /etc/modules:

Kod:

update-initramfs -u

Pojawiaja sie regoly:

Kod:

sudo iptables -L -n -t nat

Lub dokladniej:

Kod:

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:

Kod:

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

Kod:

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:

Kod:

 sudo iptables -t mangle -A POSTROUTING -m conntrack --ctstate INVALID -j DROP

Nastepnie wklepalem:

Kod:

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:

Kod:

sudo iptables -t nat -L --line-numbers -n

Kod:

sudo iptables-legacy -vnL -t mangle

2 - wyjasnienie dlaczego ponizsza regola nie jest w ogole listowana (niewidoczna) po jej wprowadzeniu:

Kod:

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)


Tolerancja i apatia, to ostatnie cnoty umierającego społeczeństwa

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)