У меня есть роутер ASUS RT-N56U с падаваном кастомной прошивкой 3.0.3.7-079.
/home/root # cat /proc/version
Linux version 3.0.101 (padavan@hms) (gcc version 4.4.7 (GCC) ) #4 Thu Feb 13 22:57:46 KRAT 2014
У меня есть telnet-ed, и я добавляю правила брандмауэра с помощью команды iptables. В основном это работает нормально, однако, когда я пытаюсь добавить правило соответствия строк следующим образом:
/home/root # iptables -A FORWARD -p udp --dport 53 -m string --algo bm --string "yahoo.com" -j DROP
iptables: No chain/target/match by that name.
Я получаю сообщение об ошибке «iptables: нет цепочки / цели / совпадения с этим именем». Однако, когда я набираю это:
/home/root # iptables -A FORWARD -p udp --dport 53 -m string --string "yahoo.com" -j DROP
iptables v1.4.16.3: string: option "--algo" must be specified
Я получаю сообщение об ошибке, указывающее, что я должен указать параметр --algo для расширения строки (поэтому расширение строки должно работать / устанавливаться так, как я ожидал?) И если я раздену это просто
iptables -A FORWARD -m string --algo bm --string "yahoo.com"
iptables: No chain/target/match by that name.
Что, я думаю, все еще должно быть в силе (даже если у него нет цели?) Я все еще получаю ошибку ...
В качестве теста я попробовал просто:
iptables -A FORWARD
Который добавляется отлично, хотя правило ничего не делает.
Вот как выглядит моя текущая таблица фильтров:
/home/root # iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N UPNP
-N bfplimit
-N doslimit
-N logaccept
-N logdrop
-N maclist
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i br0 -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -d 224.0.0.0/4 -p igmp -j ACCEPT
-A INPUT -d 224.0.0.0/4 -p udp -m udp ! --dport 1900 -j ACCEPT
-A INPUT -i eth3 -m state --state NEW -j doslimit
-A INPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A INPUT -p icmp -m icmp ! --icmp-type 8 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -p tcp -m webstr--url ad.lgappstv.com -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url ibis.lgappstv.com -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url smartclip.com -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url smartclip.net -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url ad.lgsmartad.com -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url ibs.lgappstv.com -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url info.lgsmartad.com -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url lgtvsdp.com -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url yumenetworks.com -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url snu.lge.com -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url lgtvonline.lge.com -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url su.lge.com -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url cjpowercast.com.edgesuite.net -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url rdvs.alljoyn.org -j REJECT --reject-with tcp-reset
-A FORWARD -p tcp -m webstr--url ngfts.lge.com -j REJECT --reject-with tcp-reset
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 224.0.0.0/4 -p udp -j ACCEPT
-A FORWARD -i eth3 -m state --state NEW -j doslimit
-A FORWARD -d 192.168.0.10/32 -i br0 -p tcp -m tcp --sport 1:65535 --dport 1:65535 -j DROP
-A FORWARD -s 192.168.0.11/32 -i br0 -p tcp -m tcp --sport 1:65535 --dport 1:65535 -j DROP
-A FORWARD -d 192.168.0.11/32 -i br0 -p tcp -m tcp --sport 1:65535 --dport 1:65535 -j DROP
-A FORWARD -s 192.168.0.10/32 -i br0 -p udp -m udp --sport 1:65535 --dport 1:65535 -j DROP
-A FORWARD -d 192.168.0.10/32 -i br0 -p udp -m udp --sport 1:65535 --dport 1:65535 -j DROP
-A FORWARD -s 192.168.0.11/32 -i br0 -p udp -m udp --sport 1:65535 --dport 1:65535 -j DROP
-A FORWARD -d 192.168.0.11/32 -i br0 -p udp -m udp --sport 1:65535 --dport 1:65535 -j DROP
-A FORWARD -s 192.168.0.10/32 -i br0 -p tcp -m tcp --sport 1:65535 --dport 1:65535 -j DROP
-A FORWARD -i br0 -j ACCEPT
-A FORWARD -d 192.168.0.101/32 -p tcp -m tcp --dport 12052 -j ACCEPT
-A FORWARD -d 192.168.0.101/32 -p tcp -m tcp --dport 9921:9923 -j ACCEPT
-A FORWARD -d 192.168.0.101/32 -p tcp -m tcp --dport 8732:8733 -j ACCEPT
-A FORWARD -d 192.168.0.101/32 -p tcp -m tcp --dport 443:444 -j ACCEPT
-A FORWARD -d 192.168.0.101/32 -p udp -m udp --dport 443:444 -j ACCEPT
-A FORWARD -d 192.168.0.101/32 -p tcp -m tcp --dport 13452 -j ACCEPT
-A FORWARD -d 192.168.0.101/32 -p tcp -m tcp --dport 8333 -j ACCEPT
-A FORWARD -d 192.168.0.101/32 -p udp -m udp --dport 8333 -j ACCEPT
-A FORWARD -d 192.168.0.101/32 -p tcp -m tcp --dport 18080 -j ACCEPT
-A FORWARD -j UPNP
-A FORWARD -o br0 -j DROP
-A bfplimit -j ACCEPT
-A doslimit -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 20/sec --limit-burst 30 -j RETURN
-A doslimit -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
-A doslimit -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j RETURN
-A doslimit -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -j DROP
-A doslimit -p icmp -m icmp --icmp-type 8 -m limit --limit 2/sec -j RETURN
-A doslimit -p icmp -m icmp --icmp-type 8 -j DROP
-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logaccept -j ACCEPT
-A logdrop -m state --state NEW -j LOG --log-prefix "DROP " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logdrop -j DROP
Вот вывод справки для расширения строки
/home/root # iptables -m string --help
iptables v1.4.16.3
...
string match options:
--from Offset to start searching from
--to Offset to stop searching
--algo Algorithm
--icase Ignore case (default: 0)
[!] --string string Match a string in a packet
[!] --hex-string string Match a hex string in a packet
Кто-нибудь имеет представление о том, почему строковый фильтр -m string
дает мне ошибку?