Portál AbcLinuxu, 8. května 2025 06:55
iptables -A --source 10.0.1.0/255.0.255.0 -j NECO
ale to pochopitelně nefunguje, protože netmask musí být souvislá řada bitů.
Existuje v iptables nebo v nftables způsob (např. nějaký modul), který by uměl adresy vyhodnocovat podle konkrétních bitů?
define WORKSTATION = { 10.1.1.0/24, 10.2.1.0/24, 10.3.1.0/24... }b] nebo si to cele naskriptovat.
iptables -A INPUT --source 10.0.1.0/255.0.255.0 -j NECOProtože jinak se mi zdá, že to funguje.
# iptables -A INPUT --source 10.0.1.0/255.0.255.0 -j ACCEPT # iptables -L -v -n Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 10.0.0.0/8 0.0.0.0/0 (...)Jinými slovy to dopadlo tak, jak píše X výše, tzn. že druhou 255 to ignorovalo. A aby to bylo ještě lepší, nedaří se mi zreplikovat to chování, kdy jsem zadal pravidlo s "děravou" netmask a iptables mě poslaly do háje, že to neuměj.
iptables -Apřidá pravidlo na konec řetězce, takže ve výpisu, tak jak ho máš, nebude...
[2022-03-16 11:35:58] root@srv1.lab3a.local:~# iptables -A INPUT --source 10.0.1.0/255.0.255.0 -j ACCEPT [2022-03-16 11:36:16] root@srv1.lab3a.local:~# iptables -L -v -n Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 10.0.0.0/8 0.0.0.0/0 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
iptables -A INPUT --source 10.0.1.0/255.0.255.0 -j DROP iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 10.0.1.0/255.0.255.0 0.0.0.0/0
root@localhost: #iptables -F root@localhost: #iptables -A OUTPUT --dst 192.0.192.0/255.0.255.0 -j ACCEPT root@localhost: #iptables -A OUTPUT --dst 192.0.203.0/255.0.255.0 -j ACCEPT root@localhost: #iptables -A OUTPUT --dst 192.0.0.1/255.0.0.255 -j ACCEPT root@localhost: #iptables -A OUTPUT --dst 192.0.1.0/255.0.255.0 -j ACCEPT root@localhost: #ping 192.168.192.1 -c 2 -q PING 192.168.192.1 (192.168.192.1) 56(84) bytes of data. --- 192.168.192.1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 40ms rtt min/avg/max/mdev = 0.816/0.866/0.917/0.058 ms root@localhost: #ping 192.168.203.1 -c 3 -q PING 192.168.203.1 (192.168.203.1) 56(84) bytes of data. --- 192.168.203.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 97ms rtt min/avg/max/mdev = 0.771/1.025/1.433/0.292 ms root@localhost: #ping 192.168.1.42 -c 5 -q PING 192.168.1.42 (192.168.1.42) 56(84) bytes of data. --- 192.168.1.42 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 131ms rtt min/avg/max/mdev = 0.439/0.655/1.332/0.341 ms root@localhost: #ping 192.168.208.1 -c 7 -q PING 192.168.208.1 (192.168.208.1) 56(84) bytes of data. --- 192.168.208.1 ping statistics --- 7 packets transmitted, 7 received, 0% packet loss, time 108ms rtt min/avg/max/mdev = 0.819/1.266/1.920/0.418 ms root@localhost: #ping 192.168.207.101 -c 11 -q PING 192.168.207.101 (192.168.207.101) 56(84) bytes of data. --- 192.168.207.101 ping statistics --- 11 packets transmitted, 0 received, +11 errors, 100% packet loss, time 345ms pipe 4 root@localhost: #iptables -nvL Chain INPUT (policy ACCEPT 33 packets, 3000 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 11 packets, 924 bytes) pkts bytes target prot opt in out source destination 2 168 ACCEPT all -- * * 0.0.0.0/0 192.0.192.0/255.0.255.0 3 252 ACCEPT all -- * * 0.0.0.0/0 192.0.203.0/255.0.255.0 7 588 ACCEPT all -- * * 0.0.0.0/0 192.0.0.1/255.0.0.255 5 420 ACCEPT all -- * * 0.0.0.0/0 192.0.1.0/255.0.255.0 root@localhost: #
[2022-03-16 13:21:53] root@srv1.lab3a.local:~# iptables-legacy -A INPUT --source 10.0.1.0/255.0.255.0 -j ACCEPT [2022-03-16 13:22:08] root@srv1.lab3a.local:~# iptables-legacy -L -v -n Chain INPUT (policy ACCEPT 70 packets, 5664 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 10.0.1.0/255.0.255.0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 57 packets, 5528 bytes) pkts bytes target prot opt in out source destination [2022-03-16 13:22:15] root@srv1.lab3a.local:~# iptables-legacy --version iptables v1.8.7 (legacy)Tím mám v podstatě vyřešeno, celý můj problém byl v použití iptables-nft. Sice nftables nejdou úplně ignorovat a musím hledat řešení i pro ně, ale to už mě teď nepálí tolik. Díky moc!
[2022-03-16 12:53:27] root@srv1.lab3a.local:~# iptables --version iptables v1.8.7 (nf_tables)Už od nálezu toho dotazu na serverfault.com mám podezření, že iptables by to možná uměly, ale buď to neumí nftables (což se mi úplně nezdá), nebo se to ztrácí někde v překladu v iptables-nft.
nft insert rule ip filter INPUT 'ip saddr & 255.0.255.0 == 10.0.1.0 drop'
(matchne všechny adresy 10.*.1.*)iptables v1.8.7 (nf_tables): table `filter' is incompatible, use 'nft' tool.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.