У меня есть роутер 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 дает мне ошибку?

0