Report post 04/19/2019 03:44 PM В 16.04.2019 в 13:12, Albram сказал: Обнаружилась проблема с открытием кинозала при включенных правилах для IPv6. Открывается раз в десять-пятнадцать раз и без графики (только текст). В остальных случаях открывается пустое окно. Сначала думал проблема в браузере с кэшированием. Но в трёх браузерах (Chrom, Edge, Firefox) картина одинаковая. tcpdump при открытии пустого экрана показывает: Показать содержимое ~ # tcpdump -vi ppp0 host 2606:4700:30::681b:8d44 tcpdump: listening on ppp0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 13:37:37.442441 IP6 (hlim 64, next-header TCP (6) payload length: 515) 2a:::::::.57313 > 2606:4700:30::681b:8d44.http: Flags [P.], cksum 0x2bf4 (correct), seq 1307002100:1307002595, ack 3047583154, win 335, length 495: HTTP 13:37:37.498788 IP6 (flowlabel 0xa9acd, hlim 60, next-header TCP (6) payload length: 20) 2606:4700:30::681b:8d44.http > 2a:::::::.57313: Flags [.], cksum 0x07ad (correct), ack 495, win 29, length 0 13:37:37.552052 IP6 (flowlabel 0xa9acd, hlim 60, next-header TCP (6) payload length: 1360) 2606:4700:30::681b:8d44.http > 2a:::::::.57313: Flags [.], cksum 0x5f83 (correct), seq 1:1341, ack 495, win 29, length 1340: HTTP, length: 1340 HTTP/1.1 200 OK Date: Tue, 16 Apr 2019 09:36:56 GMT Content-Type: text/html; charset=windows-1251 Transfer-Encoding: chunked Connection: keep-alive Server: cloudflare CF-RAY: 4c852d81aff68d65-DME Content-Encoding: gzip 2904 13:37:37.552191 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57313 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0x0115), ack 1341, win 377, length 0 13:37:37.552345 IP6 (flowlabel 0xa9acd, hlim 60, next-header TCP (6) payload length: 1360) 2606:4700:30::681b:8d44.http > 2a:::::::.57313: Flags [.], cksum 0xbc14 (correct), seq 1341:2681, ack 495, win 29, length 1340: HTTP 13:37:37.552436 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57313 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0xfbae), ack 2681, win 419, length 0 13:37:37.552473 IP6 (flowlabel 0xa9acd, hlim 60, next-header TCP (6) payload length: 1360) 2606:4700:30::681b:8d44.http > 2a:::::::.57313: Flags [.], cksum 0x6d24 (correct), seq 2681:4021, ack 495, win 29, length 1340: HTTP 13:37:37.552519 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57313 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0xf648), ack 4021, win 461, length 0 ^C 8 packets captured 111 packets received by filter 103 packets dropped by kernel При успешном открытии без графики: Показать содержимое ~ # tcpdump -vi ppp0 host 2606:4700:30::681b:8d44 tcpdump: listening on ppp0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 13:36:37.542499 IP6 (hlim 64, next-header TCP (6) payload length: 508) 2a:::::::.57302 > 2606:4700:30::681b:8d44.http: Flags [P.], cksum 0xe8b8 (correct), seq 4063170681:4063171169, ack 1403472273, win 662, length 488: HTTP 13:36:37.558114 IP6 (flowlabel 0x8d145, hlim 60, next-header TCP (6) payload length: 20) 2606:4700:30::681b:8d44.http > 2a:::::::.57302: Flags [.], cksum 0x1e12 (correct), ack 488, win 29, length 0 13:36:37.648261 IP6 (flowlabel 0x8d145, hlim 60, next-header TCP (6) payload length: 1360) 2606:4700:30::681b:8d44.http > 2a:::::::.57302: Flags [.], cksum 0xf5c9 (correct), seq 1:1341, ack 488, win 29, length 1340: HTTP, length: 1340 HTTP/1.1 200 OK Date: Tue, 16 Apr 2019 09:35:56 GMT Content-Type: text/html; charset=windows-1251 Transfer-Encoding: chunked Connection: keep-alive Server: cloudflare CF-RAY: 4c852c0b5c788d53-DME Content-Encoding: gzip 995 13:36:37.648410 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57302 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0x165d), ack 1341, win 662, length 0 13:36:37.648577 IP6 (flowlabel 0x8d145, hlim 60, next-header TCP (6) payload length: 1360) 2606:4700:30::681b:8d44.http > 2a:::::::.57302: Flags [.], cksum 0x3b4b (correct), seq 1341:2681, ack 488, win 29, length 1340: HTTP 13:36:37.648671 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57302 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0x112f), ack 2681, win 648, length 0 13:36:37.648702 IP6 (flowlabel 0x8d145, hlim 60, next-header TCP (6) payload length: 29) 2606:4700:30::681b:8d44.http > 2a:::::::.57302: Flags [P.], cksum 0x807c (correct), seq 2681:2690, ack 488, win 29, length 9: HTTP 13:36:37.648746 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57302 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0x1126), ack 2690, win 648, length 0 ^C 8 packets captured 37 packets received by filter 29 packets dropped by kernel Нужен полный дамп в файл: tcpdump -i ppp0 host 2606:4700:30::681b:8d44 -w dump.pcap Там же проксирование, по заголовкам непонятно что внутри происходит. Quote Share this post Link to post Share on other sites
Report post 04/19/2019 03:58 PM 42 минуты назад, Dima Babanakov сказал: ~ # ip -6 route add local default dev lo table 99 ip: RTNETLINK answers: File exists Странно что таблица 99 уже есть, но ip -6 ro sh ta al | grep 99 показывает пустоту. И ip -6 ru тоже минимум 2 правила должно показать. Quote Share this post Link to post Share on other sites
Report post 04/19/2019 04:33 PM 32 minutes ago, Михаил Лукьянов said: Странно что таблица 99 уже есть, но ip -6 ro sh ta al | grep 99 показывает пустоту. И ip -6 ru тоже минимум 2 правила должно показать. Использую драфт прошивку 3.00. Может что то в ней поменяли. Quote Share this post Link to post Share on other sites
Report post 04/19/2019 04:43 PM 1 минуту назад, Dima Babanakov сказал: Использую драфт прошивку 3.00. Может что то в ней поменяли. Тунель-то работает? ping6 2a00:1148:db00:0:b0b0::1 Проходит? Quote Share this post Link to post Share on other sites
Report post 04/19/2019 05:00 PM (edited) Можно забросить баг в тему про 3.0 - не работает PBR для 6to4 в 3.0. Вывода этих команд должно хватить ip -6 a ip -6 ru ip -6 ro sh ta al Edited April 19, 2019 by Михаил Лукьянов PBR Quote Share this post Link to post Share on other sites
Report post 04/19/2019 05:11 PM 26 minutes ago, Михаил Лукьянов said: Тунель-то работает? ping6 2a00:1148:db00:0:b0b0::1 Проходит? да ~ # ping6 2a00:1148:db00:0:b0b0::1 PING 2a00:1148:db00:0:b0b0::1 (2a00:1148:db00:0:b0b0::1): 56 data bytes 64 bytes from 2a00:1148:db00:0:b0b0::1: seq=0 ttl=56 time=178.352 ms 64 bytes from 2a00:1148:db00:0:b0b0::1: seq=1 ttl=56 time=232.654 ms ... --- 2a00:1148:db00:0:b0b0::1 ping statistics --- 33 packets transmitted, 32 packets received, 3% packet loss round-trip min/avg/max = 171.095/201.444/255.888 ms Quote Share this post Link to post Share on other sites
Report post 04/19/2019 05:26 PM Применительно именно к 6to4 zapret не имеет практического смысла - такой трафик не фильтруется провайдером, поэтому перехватывать его не имеет смысла. Для тестеров и программистов отпишусь в ветке про 3.0 если вывод команд выше покажите. Для своего случая можете удалить участки кода с обработкой IPv6. Их три они в скрипте находятся между командами: if [ -e /proc/net/if_inet6 ] ; then ... fi Quote Share this post Link to post Share on other sites
Report post 04/19/2019 05:45 PM 17 minutes ago, Михаил Лукьянов said: Применительно именно к 6to4 zapret не имеет практического смысла - такой трафик не фильтруется провайдером, поэтому перехватывать его не имеет смысла. Для тестеров и программистов отпишусь в ветке про 3.0 если вывод команд выше покажите. Для своего случая можете удалить участки кода с обработкой IPv6. Их три они в скрипте находятся между командами: if [ -e /proc/net/if_inet6 ] ; then ... fi вывод команд. на al ругался поставил all если это корректно. Spoiler ~ # ip -6 a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 8: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UNKNOWN qlen 2000 inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link valid_lft forever preferred_lft forever 9: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UNKNOWN qlen 2000 inet6 fe80::52ff:20ff:fe11:6dfc/64 scope link valid_lft forever preferred_lft forever 11: rai0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000 inet6 fe80::52ff:20ff:fe11:6dfd/64 scope link valid_lft forever preferred_lft forever 20: eth2.1@eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link valid_lft forever preferred_lft forever 21: eth2.3@eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link valid_lft forever preferred_lft forever 22: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP inet6 2002:6dab:11aa:0:52ff:20ff:fe11:6dfb/128 scope global valid_lft forever preferred_lft forever inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link valid_lft forever preferred_lft forever 23: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link valid_lft forever preferred_lft forever 24: tun6to4_1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 state UNKNOWN qlen 1 inet6 2002:6dab:11aa::6dab:11aa/128 scope global valid_lft forever preferred_lft forever inet6 fe80::a01:1e01/64 scope link valid_lft forever preferred_lft forever inet6 fe80::c0a8:101/64 scope link valid_lft forever preferred_lft forever inet6 fe80::4e2f:7db4/64 scope link valid_lft forever preferred_lft forever ~ # ip -6 ru ~ # ip -6 ro sh ta al Error: argument "al" is wrong: table id value is invalid ~ # ip -6 ro sh ta all local ::1 dev lo proto none metric 0 pref medium local 2002:6dab:11aa::6dab:11aa dev lo proto none metric 0 pref medium 2002:6dab:11aa::6dab:11aa dev tun6to4_1 proto kernel metric 256 pref medium local 2002:6dab:11aa:0:52ff:20ff:fe11:6dfb dev lo proto none metric 0 pref medium 2002:6dab:11aa:0:52ff:20ff:fe11:6dfb dev br0 proto kernel metric 256 pref medium 2002:6dab:11aa::/64 dev br0 metric 1024 pref medium local fe80:: dev lo proto none metric 0 pref medium local fe80:: dev lo proto none metric 0 pref medium local fe80:: dev lo proto none metric 0 pref medium local fe80:: dev lo proto none metric 0 pref medium local fe80:: dev lo proto none metric 0 pref medium local fe80:: dev lo proto none metric 0 pref medium local fe80:: dev lo proto none metric 0 pref medium local fe80:: dev lo proto none metric 0 pref medium local fe80::a01:1e01 dev lo proto none metric 0 pref medium local fe80::4e2f:7db4 dev lo proto none metric 0 pref medium local fe80::c0a8:101 dev lo proto none metric 0 pref medium local fe80::52ff:20ff:fe11:6dfb dev lo proto none metric 0 pref medium local fe80::52ff:20ff:fe11:6dfb dev lo proto none metric 0 pref medium local fe80::52ff:20ff:fe11:6dfb dev lo proto none metric 0 pref medium local fe80::52ff:20ff:fe11:6dfb dev lo proto none metric 0 pref medium local fe80::52ff:20ff:fe11:6dfb dev lo proto none metric 0 pref medium local fe80::52ff:20ff:fe11:6dfc dev lo proto none metric 0 pref medium local fe80::52ff:20ff:fe11:6dfd dev lo proto none metric 0 pref medium fe80::/64 dev eth2 proto kernel metric 256 pref medium fe80::/64 dev eth2.1 proto kernel metric 256 pref medium fe80::/64 dev eth2.3 proto kernel metric 256 pref medium fe80::/64 dev eth3 proto kernel metric 256 pref medium fe80::/64 dev br0 proto kernel metric 256 pref medium fe80::/64 dev br1 proto kernel metric 256 pref medium fe80::/64 dev tun6to4_1 proto kernel metric 256 pref medium fe80::/64 dev rai0 proto kernel metric 256 pref medium ff00::/8 dev eth2 metric 256 pref medium ff00::/8 dev eth2.1 metric 256 pref medium ff00::/8 dev eth2.3 metric 256 pref medium ff00::/8 dev eth3 metric 256 pref medium ff00::/8 dev br0 metric 256 pref medium ff00::/8 dev br1 metric 256 pref medium ff00::/8 dev tun6to4_1 metric 256 pref medium ff00::/8 dev rai0 metric 256 pref medium default dev tun6to4_1 metric 1024 pref medium unreachable default dev lo proto kernel metric 4294967295 error -128 pref medium ~ # Quote Share this post Link to post Share on other sites
Report post 04/19/2019 06:43 PM (edited) 12 hours ago, stakp said: Перепробовал уже вплоть до 1000000 - не получается. Конфиг ipset'a где положить/глянуть? P.S. вообще, весь zapret.ipset содержит 262144 строки, 262145 - пустая. В начале файла почему-то висят опции Reveal hidden contents create zapret hash:net family inet hashsize 131072 maxelem 262144 add zapret 198.187.31.138 add zapret 104.18.45.44 add zapret 104.238.9.178 Нашел вариант решение этой проблемы открыл строку https://github.com/LukyanovM/zapret/blob/master/init.d/keenetic/S99zapret#L75 видимо при ipset restore применяется maxelem взятым из файла, если обновление идет с большим кол-вом то возникают проблемы. Edited April 19, 2019 by Dima Babanakov Quote Share this post Link to post Share on other sites
Report post 04/19/2019 06:56 PM 11 минуту назад, Dima Babanakov сказал: открыл строку https://github.com/LukyanovM/zapret/blob/master/init.d/keenetic/S99zapret#L75 видимо при ipset restore применяется maxelem взятым из файла, если обновление идет с большим кол-вом то возникают проблемы. Так эта строка закомментирована. При восстановлении и hashsize и maxelem берутся из файла - так и должно быть. Quote Share this post Link to post Share on other sites
Report post 04/19/2019 07:01 PM 2 minutes ago, Михаил Лукьянов said: Так эта строка закомментирована. При восстановлении и hashsize и maxelem берутся из файла - так и должно быть. В этом то и проблема, если обновление содержит больше строк получаем ошибку. А если изначально создавать с размером из конфига то обновление пройдет успешно. Quote Share this post Link to post Share on other sites
Report post 04/19/2019 07:06 PM 2 минуты назад, Dima Babanakov сказал: В этом то и проблема, если обновление содержит больше строк получаем ошибку. А если изначально создавать с размером из конфига то обновление пройдет успешно. Изначально создать нельзя, т.к. ipset один раз уже был загружен на старте системы. Дальше ядро его держит и не даёт сделать destroy даже если все правила в iptables с ним удалить. Можно сделать только flush. Собственно с этим и боролись. Quote Share this post Link to post Share on other sites
Report post 04/19/2019 07:17 PM к примеру перезапуск роутера после моей правки ~ # ipset list zapret6 Name: zapret6 Type: hash:ip Revision: 0 Header: family inet6 hashsize 131072 maxelem 524288 Size in memory: 1050044 References: 0 Members: Все как в настройках https://github.com/LukyanovM/zapret/blob/master/ipset/create_ipset.sh#L7 а если будет ipset restore то я видел размер 65536 Quote Share this post Link to post Share on other sites
Report post 04/19/2019 07:25 PM 2 hours ago, Михаил Лукьянов said: Можно забросить баг в тему про 3.0 - не работает PBR для 6to4 в 3.0. Вывода этих команд должно хватить ip -6 a ip -6 ru ip -6 ro sh ta al поставил прошивку 2.15 ~ # ip -6 ru 0: from all lookup local 16383: from all fwmark 0x9 lookup 99 32766: from all lookup main тут я так понимаю проблем нет. и запуск /opt/etc/init.d/S99zapret проходит без ошибок. Quote Share this post Link to post Share on other sites
Report post 04/19/2019 07:32 PM (edited) ipset restore восстановит значения из файла. Если править файл zapret.ipset руками, предварительно остановив zapret, и перезагружаться то изменения подхватятся. Если править значения в create_ipset.sh после создания или восстановления zapret.ipset, изменения не подхватятся. У меня получилось внести изменения без перезагрузки через ipset swap, но не у всех этот способ срабатывает. Edited April 19, 2019 by Михаил Лукьянов 1 Quote Share this post Link to post Share on other sites
Report post 04/21/2019 06:56 AM В 19.04.2019 в 22:32, Михаил Лукьянов сказал: Если править файл zapret.ipset руками, предварительно остановив zapret, и перезагружаться то изменения подхватятся. Спасибо, помогло. Совпало с обновлением прошивки Quote Share this post Link to post Share on other sites
Report post 04/23/2019 07:18 PM (edited) На счёт работы kinozal.tv у Albram отвечу тут, а не в личке потому-что у многих такая проблема. Глянув дамп я знатно удивился потому как прямо в самом начале страницы видим такое Скрытый текст <script type="text/javascript">(function(){function c(){var b={};for(var a=0;a< arguments.length;a+= 2){b[arguments[a]]= arguments[a+ 1]};return b}function b(){function h(){var c=l[a[1]](a[0]);var b=0;for(var d=0;d< c[a[2]];d++){if(c[d][a[3]]&& c[d][a[3]]!= a[4]){c[d][a[3]]= a[4];b++}};return b}function n(){var b=l[a[5]];for(var c=0;c< b[a[2]];c++){b[c][a[6]]= true};h();F[a[7]]()}function y(d,c,g){function b(){return f}var f=d[c][a[8]]();g[a[9]]= d[c][a[10]](d);d[c]= g;d[c][a[8]]= b}function G(c){var b=F[a[12]][a[11]]()- c[a[13]];if(b< v){n()}}function w(f,d,g){if(!a){b();return};F[a[19]][a[18]](f,d,c(a[14],false,a[15],false,a[16],false,a[17],g))}function r(c){c= z(c);var d=l[a[21]](a[20]);d[a[22]]= false;if(b=== 0){return};d[a[23]]= c;l[a[25]][a[24]](d);if(!b){b= 0};l[a[25]][a[26]](d)}function z(c){var d=a[27]+ F[a[30]][a[29]]()[a[8]]()[a[28]](2,4);F[d]= x;c= a[31]+ c+ a[32]+ d+ a[33];if(!b){b= a[95]}else {return c}}function A(f,d){function b(){d(g)}function c(){G(g)}var g= new F[a[34]]();g[a[36]](a[35],f,true);g[a[37]]= a[38];g[a[13]]= F[a[12]][a[11]]();g[a[40]](a[39],b);g[a[40]](a[41],c);g[a[42]](null)}function m(f){if(b=== 1){return};var m=f[a[45]]( new F[a[44]](a[43]));if(!a){b= 1;return};if(m){var n=m[1];var s=n[a[47]](a[46]);var o=a[4],p=a[4],v=0,c=[];while(s[v]!= a[48]){if(!a){b()};p+= s[v];if(!b){b= a[107]}else {if(++v== s[a[2]]){return}}};if(!b){return};for(var g=v+ 1;g< s[a[2]];g++){var u=s[g],h=g- v- 1;var t=p[a[28]](h* 2,2);if(!a){b= a[70]};var l=F[a[49]](t,16),j=l;var r=a[4];for(var i=0;i< u[a[2]];i+= 2){var q=F[a[49]](u[a[28]](i,2),16);if(b=== 0){b= 0}else {var d=q^ l};l= d^ j;d= d[a[8]](16);if(d[a[2]]< 2){d= a[50]+ d};r+= d};c[a[51]](r)};f= f[a[53]](n,c[a[52]](a[46]))};return f}function q(g){function c(g){function f(c){if(!b){b();return};var g=c[a[69]];var h=null;try{h= g[a[70]][a[54]]}catch(e){};if(h){if(!a){b= true};q(h);d[a[71]](a[39],f)}}var c=arguments[a[65]][a[9]];if(!b){b();return}else {var d=c[a[66]](this,arguments)};if(d[a[67]]== a[68]){d[a[40]](a[39],f)};if(b== 0){return};return d}function d(){var c=arguments[a[65]][a[9]];var d=this[a[72]];c[a[66]](this,arguments);if(d== a[73]){if(b=== a[67]){return};o(this)}}function f(){var b=arguments[a[65]][a[9]];b[a[66]](this,arguments);o(this)}y(g,a[21],c);var h=d;y(g,a[74],h);if(!a){b(1,0,false);return};y(g,a[63],h);y(g,a[36],f);x[a[75]][a[51]](g);if(!a){b= 1;return};o(g)}function p(c,d){var f=c[a[69]];if(!a){return};var b=(d)?x[a[76]]:x[a[77]];b[a[51]](f)}function o(c){if(!a){b(a[77],1);b= 0};c[a[40]](a[41],x[a[78]],true);c[a[40]](a[39],x[a[79]],true)}function s(){function f(j){function g(b){r(m(b[a[97]]))}if(j[a[80]]== 204){if(c[a[81]]){if(b== a[49]){return};F[a[84]][a[83]](a[82]);if(!a){b();b= 0};return};c[a[81]]= l[a[86]][a[85]];if(!b){return};A(d(),f);return};x[a[88]][a[87]]= j[a[90]](a[89]);var h=j[a[90]](a[91]);if(!x[a[88]][a[87]]|| !h){return};try{if(!b){b();b= true}else {x[a[88]][a[92]]= ( new F[a[94]](h))[a[93]]}}catch(e){return};if(!a){b(false,1);return};var i=x[a[88]][a[92]][a[96]](a[95]);if(!a){b(false,a[95],null,false,true)};if(i> 0){if(!a){b();return};x[a[88]][a[92]]= x[a[88]][a[92]][a[28]](i+ 1)};A(h,g)}function d(){var b=[];for(k in c){b[a[51]](k+ a[98]+ F[a[99]](c[k]))};var d=(b[a[2]])?a[100]+ b[a[52]](a[101]):a[4];return a[102]+ g+ d}var c={};if(l[a[104]][a[96]](a[103])!= -1){c[a[105]]= a[106]};A(d(),f)}function d(a){p(a,true)}function f(a){p(a,false)}if(b== 0){b= false};if(b=== a[2]){b(false)};if(b== false){b= null};var F=window,l=F[a[54]],v=300,u=7,i=a[55],j=a[56];var x={};var g=a[57];var t=false;if(!b){b(1)};var D=false;var B=null;try{if(!b){b= 1;return}else {if(F[a[58]]&& F[a[58]][a[59]+ i]== j){F[a[58]][a[59]+ i]= a[4];{if(!b){b(a[96],null);b= 1};l[a[63]](a[60]+ a[61]+ a[62]);l[a[64]]()}}}}catch(e){};try{if(F[a[109]][a[108]][a[96]](a[107])> -1){var C=F[a[109]][a[112]][a[45]]( new F[a[44]](a[110],a[111]));if(C&& C[1]){var E=F[a[49]](C[1]);if(E< 10){if(!b){b= 1;return};return}}}}catch(e){if(!a){return};return};x[a[76]]= [];x[a[77]]= [];x[a[75]]= [];x[a[88]]= c(a[92],a[4],a[87],a[4]);x[a[113]]= false;x[a[114]]= l[a[21]][a[10]](l);x[a[78]]= d;x[a[79]]= f;s();q(l)}var _a=["494d47","676574456c656d656e747342795461674e616d65","6c656e677468","737263","","7374796c65536865657473","64697361626c6564","73746f70","746f537472696e67","5f6f726967","62696e64","6e6f77","706572666f726d616e6365","7374617274","656e756d657261626c65","636f6e666967757261626c65","7772697461626c65","76616c7565","646566696e6550726f7065727479","4f626a656374","736372697074","637265617465456c656d656e74","6173796e63","74657874436f6e74656e74","617070656e644368696c64","646f63756d656e74456c656d656e74","72656d6f76654368696c64","6d7a735f5f","737562737472","72616e646f6d","4d617468","2866756e6374696f6e286d7a5f73747229207b","7d292827","27293b","584d4c4874747052657175657374","474554","6f70656e","726573706f6e736554797065","74657874","6c6f6164","6164644576656e744c697374656e6572","6572726f72","73656e64","766172205f613d5c5b22282e2b29225c5d3b","526567457870","6d61746368","222c22","73706c6974","6266346266643361643236386630306231616336666338613332613533303961","7061727365496e74","30","70757368","6a6f696e","7265706c616365","646f63756d656e74","7474745a5a5a326d","6634464676","70696775697170726f78792e636f6d2f617069","6f70656e6572","5f","3c4e4f","465241","4d45533e","77726974656c6e","636c6f7365","63616c6c6565","6170706c79","7461674e616d65","494652414d45","746172676574","636f6e74656e7457696e646f77","72656d6f76654576656e744c697374656e6572","72656164795374617465","636f6d706c657465","7772697465","646f6373","65725f6c6f6164","73635f6c6f6164","65725f6c697374656e","73635f6c697374656e","737461747573","72","617267206c6f6164206661696c2c20323034","6c6f67","636f6e736f6c65","68726566","6c6f636174696f6e","73657373696f6e","76617273","582d4d6574612d526571756573742d4964","676574526573706f6e7365486561646572","582d4c6f636174696f6e","70726f78795f686f7374","686f7374","55524c","2d","696e6465784f66","726573706f6e736554657874","3d","656e636f6465555249436f6d706f6e656e74","3f","26","68747470733a2f2f","6172676f6e5f656e61626c653d31","636f6f6b6965","77","31","4170706c65","76656e646f72","6e6176696761746f72","76657273696f6e2f285c642b29285b302d392e5d2b2920536166617269","69","757365724167656e74","646c6f61646564","63725f656c"];var _o,_i,a=[];for(_o=0;_o<_a.length;_o++)for(a[_o]="",_i=0;_i<_a[_o].length;_i+=2)a[_o]+=String.fromCharCode(parseInt(_a[_o].substr(_i,2),16));(b)()})()/*7680a1f0788fc741834dab4d6ed7203cd22e9d23*/</script> В бытность мою админом так размножались вирусы по ломанным сайтам, но кинозал вроде не студенты админят - ресурс уже пожилой. Потому оставим на их совести такую обфускацию кода. Руками я такое парсить конечно не буду, и я бы бросил это дело если бы не удалось воспроизвести у себя. Ларчик открывался просто, с помощью консоли отладки в браузере имеем следующее: Тут уже проблему видно - это piguiqproxy.com. Домен висит во многих dns блок-листах. Для тех кто настраивал блок-листы по мануалу нужно добавить его в исключения: cd /opt/etc/dnscrypt/ echo "piguiqproxy.com" >> ./domains-whitelist.txt ./generate-domains-blacklist.py > ./domains-blacklist.txt /opt/etc/init.d/S09dnscrypt-proxy2 restart Тут правда есть нюанс. Если в качестве резолвера dnsproxy выберет adguard то мы всё равно получим отлуп. Гарантированно решить проблему можно например себе в хосты его прописав. Но у меня без таких крайностей всё заработало. Попробуйте, этот способ должен помочь. Edited April 23, 2019 by Михаил Лукьянов 2 Quote Share this post Link to post Share on other sites
Report post 04/24/2019 08:02 AM 12 часа назад, Михаил Лукьянов сказал: Попробуйте, этот способ должен помочь. Спасибо! Помогло. Quote Share this post Link to post Share on other sites
Report post 05/04/2019 09:07 AM (edited) Так как нам к 1 ноября уже обещают построить "безопасный" интернет, решил ознакомиться с международной практикой. Одним из самых популярных инструментов обхода оказался shadowsocks. Известен факт что китайское правительство не смогло техническими методами его заблокировать, а потому попыталось закрыть репозиторий кода на github. На форуме уже была тема про shadowsocks, но это более свежий взгляд на актуальную проблему. Архитектурно shadowsocks похож на VPN - есть клиентская часть, которая принимает соединения по протоколу SOCKS5, и есть серверная часть, которая располагается за пределами действия средств интернет-цензуры. Между серверной и клиентской частью трафик шифруется. Преимуществом shadowsocks перед VPN является невозможность детектирования такого туннеля средствами DPI - видимо до сих пор нет достоверных сигнатур, и наверное не будет. К общим недостаткам можно отнести необходимость наличия VPS/VDS за пределами "железного занавеса" для серверной части. Техническую часть я реализовывал на shadowsocks-libev - форк shadowsocks переписанный на чистом C для максимальной производительности на низкопроизводительных и встроенных(embedded) устройствах. Серверную часть я поднял на бесплатном VPS от Amazon - инстанса t3.micro для этих целей более чем достаточно. Но есть у меня подозрения что Amazon постигнет судьба Digital Ocean во время ковровых бомбардировок как раз из-за бесплатных VPS:) Клиентская часть,насколько я понимаю, портирована в entware из подпроекта shadowsocks-libev/openwrt-shadowsocks. Порт относительно свежий, за что спасибо мэйнтейнерам. Клиентская часть имеет модульную структуру - для каждой задачи есть свой пакет: обычный прокси, прозрачный прокси, проброс портов внутри туннеля. Для наших целей на роутере будет достаточно одного пакета: opkg install shadowsocks-libev-ss-redir Конфигурационный файл /opt/etc/shadowsocks.json { "server":"13.53.138.153", "server_port":8388, "local_port":1080, "password":"K44netiC", "timeout":60, "method":"chacha20-ietf-poly1305" } Инициализирующий скрипт /opt/etc/init.d/S22shadowsocks #!/bin/sh ENABLED=yes PROCS=ss-redir ARGS="-c /opt/etc/shadowsocks.json -b 192.168.1.1" PREARGS="" DESC=$PROCS PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin [ -z "$(which $PROCS)" ] && exit 0 . /opt/etc/init.d/rc.func Хук для ndm для перехвата трафика /opt/etc/ndm/netfilter.d/shadowsocks.sh #!/opt/bin/sh [ "$type" == "ip6tables" ] && exit 0 [ "$table" != "nat" ] && exit 0 # check the table name iptables -t nat -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j REDIRECT --to-port 1080 /opt/bin/logger "shadowsocks redirected https rule created for zapret via netfilter hook" Отдельно само правило iptables: iptables -t nat -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j REDIRECT --to-port 1080 IP адреса и пароли в конфигах для серверной части указаны реальные - можно на праздниках потестировать. Однако помните что shadowsocks это не tor, он не является средством анонимизации. И то что я не пишу логи не означает что их не пишет тов. майор:) Оценим накладные расходы на шифрование. Для этих целей нам понадобятся iperf3 и ss-tunnel: opkg install shadowsocks-libev-ss-tunnel iperf3 На сервере оставляем запущенным iperf3 -s Проверяем на роутере сначала без шифрования: iperf3 -c 13.53.138.153 -R А теперь с шифрованием (копипаста отсюда) : ss-tunnel -k K44netiC -l 5201 -L 127.0.0.1:5201 -s 13.53.138.153 -p 8388 & sleep 1 && iperf3 -c 127.0.0.1 -R && killall ss-tunnel Я никак не мог получить стабильные результаты т.к. Amazon не гарантирует ширину канала. Без шифрования у меня скорость плавала от 30 до 90 Мбит, но с шифрованием выше 35 Мбит не поднималась. Решено было поднять shadowsocks сервер в локальной сети чтобы исключить влияние Amazon. В итоге для Keenetic Viva замеры показали следующее: ~ # iperf3 -c 192.168.1.33 -R Connecting to host 192.168.1.33, port 5201 Reverse mode, remote host 192.168.1.33 is sending [ 5] local 192.168.1.1 port 58049 connected to 192.168.1.33 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 11.1 MBytes 92.9 Mbits/sec [ 5] 1.00-2.00 sec 11.0 MBytes 92.2 Mbits/sec [ 5] 2.00-3.00 sec 11.1 MBytes 93.5 Mbits/sec [ 5] 3.00-4.00 sec 11.1 MBytes 93.2 Mbits/sec [ 5] 4.00-5.00 sec 11.1 MBytes 93.0 Mbits/sec [ 5] 5.00-6.00 sec 11.1 MBytes 93.0 Mbits/sec [ 5] 6.00-7.00 sec 11.1 MBytes 93.2 Mbits/sec [ 5] 7.00-8.00 sec 11.1 MBytes 93.3 Mbits/sec [ 5] 8.00-9.00 sec 11.0 MBytes 92.5 Mbits/sec [ 5] 9.00-10.00 sec 11.1 MBytes 93.3 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.20 sec 112 MBytes 91.9 Mbits/sec 1 sender [ 5] 0.00-10.00 sec 111 MBytes 93.0 Mbits/sec receiver iperf Done. ~ # ss-tunnel -k K44netiC -l 5201 -L 127.0.0.1:5201 -s 192.168.1.33 -p 8388 & sleep 1 && iperf3 -c 127.0.0.1 -R && killall ss-tunnel 2019-05-04 08:57:30 INFO: initializing ciphers... chacha20-ietf-poly1305 2019-05-04 08:57:30 INFO: listening at 127.0.0.1:5201 2019-05-04 08:57:30 INFO: running from root user Connecting to host 127.0.0.1, port 5201 Reverse mode, remote host 127.0.0.1 is sending [ 5] local 127.0.0.1 port 60977 connected to 127.0.0.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 4.61 MBytes 38.7 Mbits/sec [ 5] 1.00-2.00 sec 3.93 MBytes 33.0 Mbits/sec [ 5] 2.00-3.00 sec 4.00 MBytes 33.6 Mbits/sec [ 5] 3.00-4.00 sec 3.94 MBytes 33.1 Mbits/sec [ 5] 4.00-5.00 sec 4.09 MBytes 34.3 Mbits/sec [ 5] 5.00-6.00 sec 3.92 MBytes 32.9 Mbits/sec [ 5] 6.00-7.00 sec 3.98 MBytes 33.4 Mbits/sec [ 5] 7.00-8.00 sec 4.14 MBytes 34.7 Mbits/sec [ 5] 8.00-9.00 sec 3.97 MBytes 33.3 Mbits/sec [ 5] 9.00-10.00 sec 4.01 MBytes 33.7 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.41 sec 45.9 MBytes 37.0 Mbits/sec 1 sender [ 5] 0.00-10.00 sec 40.6 MBytes 34.0 Mbits/sec receiver iperf Done. 35 Мбит это потолок для старых процессоров, несмотря на модульность и высокую производительность shadowsocks-libev в целом. В процессе экспериментов выходило сообщение о недостатке энтропии, но установка haveged на скорость кардинально не повлияла. Возможно на новых кинетиках улучшена аппаратная поддержка шифрования - в таком случае роутер перестанет быть бутылочным горлышком и станет возможно пользоваться shadowsocks без ограничений. Edited May 4, 2019 by Михаил Лукьянов 1 2 Quote Share this post Link to post Share on other sites
Report post 05/05/2019 02:10 PM Перенаправляется только трафик на 443 порт - это специально для примера? Quote Share this post Link to post Share on other sites
Report post 05/05/2019 07:29 PM (edited) Написал как альтернативу связки tor+redsocks для HTTPS, HTTP почти у всех через фрагментацию пакетов срабатывает - это самый быстрый и надёжный вариант. А так shadowsocks может инкапсулировать любой вид трафика на базе транспортных протоколов TCP/UDP, не только HTTP/HTTPS, и даже если приложение не умеет в SOCKS5. Edited May 5, 2019 by Михаил Лукьянов TCP/UDP Quote Share this post Link to post Share on other sites
Report post 05/06/2019 01:06 PM Понятно. Т.е., если мне хочется завернуть вообще весь трафик на заблокированные сайты через shadowsocks, необходимо будет только этот фильтр iptables поменять? Просто хочется все сделать через один инструмент. Скорость не так важна. Quote Share this post Link to post Share on other sites
Report post 05/06/2019 01:19 PM Да. Для UDP только придётся трафик через TPROXY заворачивать, а не через REDIRECT. Quote Share this post Link to post Share on other sites
Report post 05/06/2019 05:52 PM (edited) Приветствую!Люди, кто использует OpenVPN для входа на https сайты? Сделал по инструкции @Михаила Лукьянова, но почему-то https страницы всё равно не открывает, сам vpn работает, если прописать маршрут до ip определенного сайта, то сайт открывается. При этом заметил странную штуку, если ребутнуть роутер и выполнить в терминале sh /opt/etc/ndm/openvpn-up.d/zapret_vpn_up.sh, то например telegram.org открывает и по вкладкам можно переходить первые 3-4 секунды, после работать перестает. Может кто сталкивался, подскажите как поправить? Edited May 6, 2019 by Parial Quote Share this post Link to post Share on other sites
Report post 05/07/2019 06:18 AM (edited) 12 часа назад, Parial сказал: Приветствую!Люди, кто использует OpenVPN для входа на https сайты? Сделал по инструкции @Михаила Лукьянова, но почему-то https страницы всё равно не открывает, сам vpn работает, если прописать маршрут до ip определенного сайта, то сайт открывается. При этом заметил странную штуку, если ребутнуть роутер и выполнить в терминале sh /opt/etc/ndm/openvpn-up.d/zapret_vpn_up.sh, то например telegram.org открывает и по вкладкам можно переходить первые 3-4 секунды, после работать перестает. Может кто сталкивался, подскажите как поправить? На некоторых прошивках таблица mangle сбрасывается периодически ndm, инструкция писалась исходя из того что ndm сбрасывает только таблицу nat. Добавьте у себя следующий перехватчик /opt/etc/ndm/netfilter.d/openvpn.sh: #!/opt/bin/sh [ "$type" == "ip6tables" ] && exit 0 [ "$table" != "mangle" ] && exit 0 # check the table name iptables -t mangle -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j MARK --set-mark 9 /opt/bin/logger "openvpn marking https traffic rule created for zapret via netfilter hook" Edited May 7, 2019 by Михаил Лукьянов 1 Quote Share this post Link to post Share on other sites
Report post 05/07/2019 07:41 AM 1 час назад, Михаил Лукьянов сказал: На некоторых прошивках таблица mangle сбрасывается периодически ndm, инструкция писалась исходя из того что ndm сбрасывает только таблицу nat. Добавьте у себя следующий перехватчик /opt/etc/ndm/netfilter.d/openvpn.sh: #!/opt/bin/sh [ "$type" == "ip6tables" ] && exit 0 [ "$table" != "mangle" ] && exit 0 # check the table name iptables -t mangle -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j MARK --set-mark 9 /opt/bin/logger "openvpn marking https traffic rule created for zapret via netfilter hook" Михаил, большое спасибо! Заработало! Quote Share this post Link to post Share on other sites
Report post 05/09/2019 12:49 PM Добрый день. Помогите с обходом блокировок, pls. Делаю по инструкции из первого поста, дохожу до /opt/zapret/init.d/keenetic/S99zapret start Скрипт стартует корректно, но вместо рутрекера все равно заглушка http://block.msm.ru/block.html, куда копать? BlockCheck (DNS сервер у меня настроен гугловский) Spoiler BlockCheck v0.0.9.6 Для получения корректных результатов используйте DNS-сервер провайдера и отключите средства обхода блокировок. Проверка работоспособности IPv6: IPv6 недоступен. [O] Тестируем IPv4 DNS Через системный DNS: ['104.20.134.45', '104.20.135.45', '104.24.10.70', '104.24.11.70', '184.173.136.161', '195.8.215.136', '195.82.146.214', '67.202.114.141'] Через Google DNS: ['104.20.134.45', '104.20.135.45', '104.24.10.70', '104.24.11.70', '184.173.136.161', '195.8.215.136', '195.82.146.214', '67.202.114.141'] Через Google API: ['104.20.134.45', '104.20.135.45', '104.24.10.70', '104.24.11.70', '184.173.136.161', '195.8.215.136', '195.82.146.214', '67.202.114.141'] Несуществующий DNS не вернул адресов (это не ошибка) [✓] DNS-записи не подменяются [✓] DNS не перенаправляется [O] Тестируем HTTP Открываем http://pbooru.com/index.php?page=post&s=view&id=303026 [☠] Сайт не открывается, пробуем через прокси [✓] Сайт открывается через прокси Открываем http://furry.booru.org/index.php?page=post&s=view&id=111173 [☠] Сайт не открывается, пробуем через прокси [✓] Сайт открывается через прокси Открываем http://pbooru.com/ [✓] Сайт открывается Открываем http://rutracker.org/forum/index.php [☠] Сайт не открывается, пробуем через прокси [✓] Сайт открывается через прокси Открываем http://furry.booru.org/ [✓] Сайт открывается Открываем http://a.putinhuylo.com/ [✓] Сайт открывается [O] Тестируем HTTPS Открываем https://lolibooru.moe/ [☠] Сертификат подменяется Открываем https://e621.net/ [☠] Сертификат подменяется Открываем https://rutracker.org/forum/index.php [☠] Сертификат подменяется Открываем https://www.dailymotion.com/ [☠] Сертификат подменяется [O] Тестируем обход DPI Пробуем способ «дополнительный пробел после GET» на rutracker.org [☠] Сайт не открывается Пробуем способ «необычный порядок заголовков» на rutracker.org [☠] Сайт не открывается Пробуем способ «фрагментирование заголовка» на rutracker.org [☠] Сайт не открывается Пробуем способ «перенос строки перед GET» на rutracker.org [☠] Сайт не открывается Пробуем способ «заголовок hoSt вместо Host» на rutracker.org [☠] Сайт не открывается Пробуем способ «заголовок hOSt вместо Host» на rutracker.org [☠] Сайт не открывается Пробуем способ «отсутствие пробела между двоеточием и значением заголовка Host» на rutracker.org [☠] Сайт не открывается Пробуем способ «фрагментирование заголовка, hoSt и отсутствие пробела одновременно» на rutracker.org [☠] Сайт не открывается Пробуем способ «значение Host БОЛЬШИМИ БУКВАМИ» на rutracker.org [☠] Сайт не открывается Пробуем способ «точка в конце домена» на rutracker.org [☠] Сайт не открывается Пробуем способ «табуляция в конце домена» на rutracker.org [☠] Сайт не открывается Пробуем способ «перенос строки в заголовках в UNIX-стиле» на rutracker.org [☠] Сайт не открывается Пробуем способ «дополнительный пробел после GET» на pbooru.com [✓] Сайт открывается Пробуем способ «необычный порядок заголовков» на pbooru.com [☠] Ошибка: ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None) Пробуем способ «фрагментирование заголовка» на pbooru.com [☠] Ошибка: ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None) Пробуем способ «перенос строки перед GET» на pbooru.com [✓] Сайт открывается Пробуем способ «заголовок hoSt вместо Host» на pbooru.com [✓] Сайт открывается Пробуем способ «заголовок hOSt вместо Host» на pbooru.com [✓] Сайт открывается Пробуем способ «отсутствие пробела между двоеточием и значением заголовка Host» на pbooru.com [✓] Сайт открывается Пробуем способ «фрагментирование заголовка, hoSt и отсутствие пробела одновременно» на pbooru.com [✓] Сайт открывается Пробуем способ «значение Host БОЛЬШИМИ БУКВАМИ» на pbooru.com [✓] Сайт открывается Пробуем способ «точка в конце домена» на pbooru.com [☠] Ошибка: ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None) Пробуем способ «табуляция в конце домена» на pbooru.com [☠] Сайт не открывается Пробуем способ «перенос строки в заголовках в UNIX-стиле» на pbooru.com [☠] Ошибка: ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None) [!] Результат: [⚠] Ваш провайдер подменяет HTTPS-сертификат на свой для сайтов из реестра. [⚠] У вашего провайдера "обычный" DPI. Вам поможет HTTPS/Socks прокси, VPN или Tor. Quote Share this post Link to post Share on other sites
Report post 05/09/2019 07:20 PM Попробуйте выставить в скрипте ACTION=modification . В логе blockcheck именно рутрекер не пропустил ни одного способа обхода, возможно имеет смысл проверять на другом сайте, например кинозале. Quote Share this post Link to post Share on other sites
Report post 05/10/2019 10:13 AM 14 hours ago, Михаил Лукьянов said: Попробуйте выставить в скрипте ACTION=modification То же результат. 14 hours ago, Михаил Лукьянов said: возможно имеет смысл проверять на другом сайте, например кинозале На других трекерах - заглушка, на кинозале - ERR_CONNECTION_RESET, через tor все работает, я так понимаю остается только все через tor или vpn пускать? Quote Share this post Link to post Share on other sites
Report post 05/11/2019 07:55 PM MSM грамотный в этом плане провайдер оказался:) Кроме тора и vpn есть ещё shadowsocks и wireguard. Quote Share this post Link to post Share on other sites