Fórum Root.cz
Ostatní => /dev/null => Téma založeno: Hamparle 08. 12. 2020, 17:09:58
-
Hází mi a neresetuje čítače. Nevíte čím to?
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.
-
Zkoušel jsem workaround:
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
-
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)
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....