iptables -Z jde jen u OUTPUT, jinak hlásí chybu

Hamparle

  • ****
  • 365
  • junior developer ucho
    • Zobrazit profil
    • E-mail
iptables -Z jde jen u OUTPUT, jinak hlásí chybu
« kdy: 08. 12. 2020, 17:09:58 »
Hází mi a neresetuje čítače. Nevíte čím to?
Kód: [Vybrat]
sudo iptables -v -Z INPUT nebo FORWARD
iptables v1.8.2 (nf_tables):  RULE_REPLACE failed (Invalid argument): rule in chain FORWARD

U OUTPUT ale OK. Počet pravidel u F/I/O je asi 15/10/8.
V OUTPUT jsou jen pravidla -i/-o /dst/src, ale v FORWARD / IN jsou i ctstate,nebo pro match portu...

Znamená ta chyba že tam mám neplatné pravidlo? Takové by se ani přece nevložilo.


Hamparle

  • ****
  • 365
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:iptables -Z jde jen u OUTPUT, jinak hlásí chybu
« Odpověď #1 kdy: 08. 12. 2020, 17:30:15 »
Zkoušel jsem workaround:
Kód: [Vybrat]
bug=999 ; while [[ $bug>1 ]]; do sudo iptables -Z FORWARD $((bug-=1)); done
Ale záhada je proč pro OUTPUT to jde přes workaround

Hamparle

  • ****
  • 365
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:iptables -Z jde jen u OUTPUT, jinak hlásí chybu
« Odpověď #2 kdy: 14. 12. 2020, 16:51:57 »
Snažil jsem se dopátrat chyby. Nevšiml jsem si, že dmesg hlásí po příkazu iptables -Z chain  bez  udaného čísla pravidla tyto řádky (hlášky nejsou společné, jedna ju -Z FORWARD, druhá INPUT)
Kód: [Vybrat]
x_tables: ip_tables: tcp match: only valid for protocol 6
x_tables: ip_tables: udp match: only valid for protocol 17

K tomu jsem našel:
https://shaunc.com/blog/articles/about/firewall/
Takže tam mám minimálně 2 pravidla problémová

Jenže linux pěkně trollí. Zachová pokerface v dmesg, když napíšu iptables -Z chain  <N>. (skriptem noob=32 ; while [[ $noob>1 ]]; do  iptables -Z INPUT $((noob-=1)); dmesg |tail -n 3 | grep valid  ; echo $noob; done ; dmesg
) a čítače vyresetuje...

1. Proč se tedy -Z chain chová jinak bez čísla nebo s číslem (čítače nevyresetuje a vypíše hlášku (...RULE_REPLACE...) a  do dmesg  přibyde(...invalid...) )



Nemůže třeba problém dělat pravidlo -A INPUT -i wlan0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
( že je bez udaného protokolu tcp?)


Hodila by se mi rada, kdy je potřeba psát -p tcp a kdy -m tcp .

Takže teď musím pravidla jedno po jednom mazat a zkoušet co vyflusne příkaz -Z bez čísla....


« Poslední změna: 14. 12. 2020, 16:54:35 od Hamparle »