Waujito / youtubeUnblock

Bypasses Deep Packet Inspection (DPI) systems that rely on SNI
GNU General Public License v3.0
793 stars 62 forks source link

Entware, "iptables: No chain/target/match by that name" #97

Open santus118 opened 3 months ago

santus118 commented 3 months ago

Поставил на Кинетик (opkg во внутренней памяти), запускаю скрипт start, получаю вот такую ошибку: iptables: No chain/target/match by that name

OS 4.2 beta 2 Что можно подправить? Netfilter и Xtables стоят.

Waujito commented 3 months ago

Покажите iptables -nvL и iptables -nvL -t mangle

santus118 commented 3 months ago

Покажите iptables -nvL и iptables -nvL -t mangle

Там такая простыня, что гитхаб ляжет :-) Может быть что-то конкретное надо поискать?

Waujito commented 3 months ago

Отправьте просто iptables -nvL -t mangle, там поменьше должно быть. Также попробуйте вручную добавить правило

iptables -t mangle -A FORWARD -p tcp --dport 443 -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j NFQUEUE --queue-num 537 --queue-bypass
santus118 commented 3 months ago

Ага, явно лишнее чуть подсократил:

~ # iptables -nvL -t mangle Chain PREROUTING (policy ACCEPT 651K packets, 742M bytes) pkts bytes target prot opt in out source destination 402 47265 _NDM_PREROUTING_MC all -- 0.0.0.0/0 224.0.0.0/4 651K 742M _NDM_IPSEC_PREROUTING all -- 0.0.0.0/0 0.0.0.0/0 651K 742M _NDM_HOTSPOT_PRERT all -- 0.0.0.0/0 0.0.0.0/0 651K 742M _NDM_PPTPSRVVPN_MARK all -- 0.0.0.0/0 0.0.0.0/0

Chain INPUT (policy ACCEPT 2935 packets, 262K bytes) pkts bytes target prot opt in out source destination 520K 622M ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED CONNNDMMARK match 0x20/0x0 0 0 _NDM_HTTP_INPUTTLS tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443

Chain FORWARD (policy ACCEPT 128K packets, 120M bytes) pkts bytes target prot opt in out source destination 128K 120M NDMMARK all -- 0.0.0.0/0 0.0.0.0/0 NDMMARK xor 0x4 128K 120M _NDM_BACKUP_FORWARD all -- 0.0.0.0/0 0.0.0.0/0 1023 453K _NDM_DNS_FORWARD all -- 0.0.0.0/0 0.0.0.0/0 connskip 10 128K 120M _NDM_IPSEC_FORWARD_MANGLE all -- 0.0.0.0/0 0.0.0.0/0 75 3880 TCPMSS tcp -- ppp0 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 72 3748 TCPMSS tcp -- ppp0 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 0 0 TCPMSS tcp -- ovpn_br0 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 0 0 TCPMSS tcp -- ovpn_br0 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 0 0 TCPMSS tcp -- ovpn_br1 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 0 0 TCPMSS tcp -- ovpn_br1 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 0 0 TCPMSS tcp -- nwg0 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 0 0 TCPMSS tcp -- nwg0 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 0 0 TCPMSS tcp -- nwg1 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 0 0 TCPMSS tcp -- nwg1 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU

Chain OUTPUT (policy ACCEPT 502K packets, 327M bytes) pkts bytes target prot opt in out source destination 502K 327M _NDM_IPSEC_OUTPUT_MANGLE all -- 0.0.0.0/0 0.0.0.0/0

Chain POSTROUTING (policy ACCEPT 630K packets, 447M bytes) pkts bytes target prot opt in out source destination 630K 447M _NDM_IPSEC_POSTR_MANGLE all -- 0.0.0.0/0 0.0.0.0/0 240K 138M _NDM_PPPOE_POSTR_MARK all -- * ppp0 0.0.0.0/0 0.0.0.0/0

Chain _IPSEC_L2TPSERVER_MARK (0 references) pkts bytes target prot opt in out source destination 0 0 NDMMARK all -- l2tp+ 0.0.0.0/0 0.0.0.0/0 NDMMARK xor 0x10 0 0 CONNNDMMARK all -- l2tp+ 0.0.0.0/0 0.0.0.0/0 CONNNDMMARK and 0xfd

Chain _IPSEC_VIPSERVER_MARK (0 references) pkts bytes target prot opt in out source destination 0 0 NDMMARK all -- xfrms1 0.0.0.0/0 0.0.0.0/0 NDMMARK and 0xef 0 0 CONNNDMMARK all -- xfrms1 0.0.0.0/0 0.0.0.0/0 CONNNDMMARK and 0xfd 0 0 NDMMARK all -- xfrms2 0.0.0.0/0 0.0.0.0/0 NDMMARK and 0xdf 0 0 CONNNDMMARK all -- xfrms2 0.0.0.0/0 0.0.0.0/0 CONNNDMMARK and 0xfd

Chain _NDM_BACKUP_DNAT (2 references) pkts bytes target prot opt in out source destination 2 104 CONNNDMMARK all -- 0.0.0.0/0 0.0.0.0/0 ctstate DNAT CONNNDMMARK xor 0x80 2 104 NDMMARK all -- 0.0.0.0/0 0.0.0.0/0 ctstate DNAT NDMMARK xor 0x80

Chain _NDM_BACKUP_FORWARD (1 references) pkts bytes target prot opt in out source destination 126K 119M CONNNDMMARK all -- 0.0.0.0/0 0.0.0.0/0 CONNNDMMARK match 0x80/0x0 CONNNDMMARK xor 0x80 126K 119M RETURN all -- 0.0.0.0/0 0.0.0.0/0 CONNNDMMARK match 0x80/0x0 468 200K _NDM_BACKUP_DNAT all -- ppp0 0.0.0.0/0 0.0.0.0/0 0 0 _NDM_BACKUP_DNAT all -- nwg1 0.0.0.0/0 0.0.0.0/0

Chain _NDM_DNS_FORWARD (1 references) pkts bytes target prot opt in out source destination

Chain _NDM_DNS_FORWARD_BLOCK (0 references) pkts bytes target prot opt in out source destination

Chain _NDM_HOTSPOT_PRERT (1 references) pkts bytes target prot opt in out source destination

Chain _NDM_HTTP_INPUTTLS (1 references) pkts bytes target prot opt in out source destination 0 0 CONNNDMMARK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 flags:0x02/0x02 CONNNDMMARK xor 0x20 0 0 RETURN tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 flags:0x02/0x02 0 0 CONNNDMMARK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 flags:0x10/0x10 CONNNDMMARK xor 0x20 0 0 RETURN tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 flags:0x10/0x10 connskip 2 0 0 _NDM_HTTP_INPUT_TLSPASS all -- 0.0.0.0/0 0.0.0.0/0

Chain _NDM_IPSEC_FORWARD_MANGLE (1 references) pkts bytes target prot opt in out source destination

Chain _NDM_IPSEC_OUTPUT_MANGLE (1 references) pkts bytes target prot opt in out source destination

Chain _NDM_IPSEC_POSTR_MANGLE (1 references) pkts bytes target prot opt in out source destination

Chain _NDM_IPSEC_POSTR_MANGLE_BPS (0 references) pkts bytes target prot opt in out source destination

Chain _NDM_IPSEC_PREROUTING (1 references) pkts bytes target prot opt in out source destination 0 0 NDMMARK all -- 0.0.0.0/0 0.0.0.0/0 policy match dir in pol ipsec NDMMARK and 0xff

Chain _NDM_PPPOE_POSTR_MARK (1 references) pkts bytes target prot opt in out source destination 240K 138M CONNNDMMARK all -- 0.0.0.0/0 0.0.0.0/0 CONNNDMMARK and 0xfe 239K 138M CONNNDMMARK all -- 0.0.0.0/0 0.0.0.0/0 CONNNDMMARK match 0x0/0x1 CONNNDMMARK and 0xfe

Chain _NDM_PPTPSRVVPN_MARK (1 references) pkts bytes target prot opt in out source destination 259 16578 NDMMARK all -- vpn+ 0.0.0.0/0 0.0.0.0/0 NDMMARK xor 0x40 259 16578 CONNNDMMARK all -- vpn+ 0.0.0.0/0 0.0.0.0/0 CONNNDMMARK and 0xfd

Chain _NDM_PREROUTING_MC (1 references) pkts bytes target prot opt in out source destination

И тоже ругается: iptables: No chain/target/match by that name.

Waujito commented 3 months ago

Слишком страшные правила у вас... Но вроде бы всё должно работать. Попробуйте отдельно

iptables -t mangle -A FORWARD -p tcp --dport 443 -j NFQUEUE --queue-num 537 --queue-bypass
iptables -t mangle -A FORWARD -p tcp --dport 443 -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j ACCEPT

Также отправьте lsmod | grep connbytes, lsmod | grep -E "queue|NFQUEUE", find /lib/modules -name "*NFQUEUE*", find /lib/modules -name "*nfnetlink_queue*", find /lib/modules -name "*connbytes*"

Kirya2k commented 3 months ago

connbytes и NFQUEUE не загружены у нас по умолчанию. Нужно поставить kmod: opkg install kmod и дальше insmod /lib/modules/4.9-ndm-5/xt_NFQUEUE.ko insmod /lib/modules/4.9-ndm-5/xt_connbytes.ko

Waujito commented 3 months ago

Нужно поставить kmod: opkg install kmod

Увы, entware не даёт модулей ядра

Kirya2k commented 3 months ago

Модули у нас в проше лежат изображение

Waujito commented 3 months ago

Ого, это от производителя такое идёт? Круто, тогда да, надо просто их поставить

Kirya2k commented 3 months ago

Keenetic Они у нас по умолчанию стоят. Чтобы их наоборот убрать это постараться нужно...

Kirya2k commented 3 months ago

Команды проверки загрузки модулей в init файле где-то неправильно сформулированы:

root@Keenetic_Hopper:/root$ iptables -C FORWARD -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j ACCEPT iptables: Bad rule (does a matching rule exist in that chain?). root@Keenetic_Hopper:/root$ insmod /lib/modules/4.9-ndm-5/xt_connbytes.ko root@Keenetic_Hopper:/root$ iptables -C FORWARD -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j ACCEPT iptables: Bad rule (does a matching rule exist in that chain?). root@Keenetic_Hopper:/root$ lsmod |grep connbytes xt_connbytes 1911 0

root@Keenetic_Hopper:/root$ iptables -C FORWARD -t mangle -j NFQUEUE --queue-num 537 iptables: No chain/target/match by that name. root@Keenetic_Hopper:/root$ insmod /lib/modules/4.9-ndm-5/xt_NFQUEUE.ko root@Keenetic_Hopper:/root$ lsmod |grep NFQUEUE xt_NFQUEUE 3814 0 root@Keenetic_Hopper:/root$ iptables -C FORWARD -t mangle -j NFQUEUE --queue-num 537 iptables: No chain/target/match by that name.

root@Keenetic_Hopper:/root$ /opt/etc/init.d/S91youtubeUnblock start Started youtubeUnblock

Но вот где ошибка - не вижу. Не спец я по этим модулям. :(

Но спасибо Вам за работу !

Waujito commented 3 months ago

Так и должно по идее быть. У меня локально эти команды давали статус 2 если завершались без модуля и статус 1/0 если модуль был. А сообщения об ошибках я просто выкинул в /dev/null

Kirya2k commented 3 months ago

~ # lsmod |grep connbytes ~ # iptables -C FORWARD -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j ACCEPT &>/dev/null ~ # echo $? 1

~ # insmod /lib/modules/4.9-ndm-5/xt_connbytes.ko ~ # lsmod |grep connbytes xt_connbytes 1911 0 ~ # iptables -C FORWARD -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j ACCEPT &>/dev/null ~ # echo $? 1

Waujito commented 3 months ago

Вот, у вас сейчас включены модули и статус 1. Там еще могут быть случаи, когда от этой команды автоматически они включаются, тогда тоже нормальный статус будет. Можете попробовать сделать эту команду, но перед этим rmmod xt_connbytes. Тогда либо модуль сам включится и статус будет 1, либо модуль не включится и команда даст ошибку с статусом 2.

У меня по крайней мере так было.

Kirya2k commented 3 months ago

Я как-раз в вначале показываю, что и при незагруженном модуле статус 1 выдаётся. Более развёрнуто.

~ # lsmod |grep connbytes xt_connbytes 1911 0 ~ # rmmod xt_connbytes ~ # lsmod |grep connbytes ~ # iptables -C FORWARD -m connbytes --connbytes-dir original --connbytes-mode p ackets --connbytes 0:19 -j ACCEPT &>/dev/null ~ # echo $? 1 ~ # lsmod |grep connbytes

Waujito commented 3 months ago

А это интересно, значит либо я что-то не так понял, либо у меня iptables по-другому себя ведёт.