From 3bb71b42a02e4af8e863b81be1968b1bf614d3c4 Mon Sep 17 00:00:00 2001 From: bolvan Date: Thu, 8 Dec 2016 16:36:49 +0300 Subject: [PATCH] hostspell, openwrt procd, beeline ISP fix --- binaries/armhf/nfqws | Bin 67616 -> 68016 bytes binaries/armhf/tpws | Bin 54676 -> 54676 bytes binaries/mips32r1-lsb/nfqws | Bin 95960 -> 107900 bytes binaries/mips32r1-lsb/tpws | Bin 85600 -> 96624 bytes binaries/mips32r1-msb/nfqws | Bin 95960 -> 107516 bytes binaries/mips32r1-msb/tpws | Bin 85520 -> 96592 bytes binaries/x86_64/nfqws | Bin 80032 -> 80032 bytes binaries/x86_64/tpws | Bin 71712 -> 71776 bytes changes.txt | 7 ++++++ init.d/openwrt/zapret | 27 ++++++++++------------- init.d/ubuntu12/zapret.conf | 8 +------ nfq/nfqws.c | 25 +++++++++++++++------ readme.txt | 10 +++++---- tpws/tpws.c | 42 +++++++++++++++++++++++------------- tpws/tpws_conn.c | 9 ++++---- 15 files changed, 75 insertions(+), 53 deletions(-) diff --git a/binaries/armhf/nfqws b/binaries/armhf/nfqws index 86c1f04c5b4fbfb15dc9907af215cbe155af1ef9..9eab5c34df3d668591acb70c94a953dcf4dfbf99 100755 GIT binary patch delta 7978 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 XF-hAwdBB$k delta 7563 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 Mq4t2lb}2Id3&qH^N&o-= delta 11304 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 delta 11074 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 diff --git a/binaries/mips32r1-msb/nfqws b/binaries/mips32r1-msb/nfqws index 7a181c850ae30ac41c157bfdbc1f63553aae5d68..dc7027c5f23144c257580ea29a3326c8d13f3e10 100755 GIT binary patch delta 20526 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 Tic>iuzc7uz2jsr;M`r)ukyW!2 delta 10316 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 diff --git a/binaries/mips32r1-msb/tpws b/binaries/mips32r1-msb/tpws index 3c23a6d4737c954d9691f278eec264283d348ab7..e15838be55b4773c60010967aef1ea4a6a8c1004 100755 GIT binary patch delta 19507 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 W5oXQhU3k~i9(1GjjNU}4u>1$dUKBY1 delta 11444 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�e;0geM>2aB)gqTZ?(NB?2Jg{anxWaIBi;}3KNF>M z1;ggX<_B9#bBzDkYHVqK(6}4~WtTKq5tmfUrC3(E%`LR z&C(=-H2<+#TIc(sW3!0gf$030&C-4y-Z4KXIyQ^=`7@IK$aQ$HAe;ZJwpo1hi0IfX z!}yLAFn%3=#{1Uobm=M?zs;*qg?2Yy!D#_Tzz~s_SO6GbvWdtkNq~-{zEyNXRLZlv z=dS$g)ZCS4qW}hg1t0_JkERvTvvF;o2Ij7O+BbLQQsdl}&j>&ZNCTJvApWcfPzI<1 ztOwKsHUYK)ngFeUy?}N=2jCFk2%uM$D`bCm9&ka$Kbu9rA22+3Wtz;jDaxmzR1gZ7 zP6DI>OaKd@C^TM%eidLnpdPRd&;o$+dENup`r)zb+v!b_G;NUxg!KS~5k7#ha1<~O zfS0Bx06~?0dJ_F909JDmUc0CTNB{%i%r%)8vFeMUnE}lVXl6h&1DY8lzzqJjL)VCB ztQaf-$N&ex31|Sg08M~a09HHG4(I@YcjgG77tjwF0*pk+8v}j{a0YM=FbSAOsA0?{ zJs@fBN?X`Hmn;}40+d03?yO+||@1%Eg>Fa664UI$BNBHSCnz8(fDQ)4LAu<#jaeu#;wp zX>FU$Y$P_b8DIsJh;oFsN@>+E{PyJNC-!wwp>|WaPmLie`&WI$eh)yjk)ZJSi0qI7 z4S*KFxe%Aqc;CI9#(3wPG_FKEd*MS>QOzNdLTnh;3Du~0Ulb?SdaDqzI&q!ruTI8! zjbEd28hf+P+xj)y*;amv*g_z*+N!1$5Pk8nMfWIe#Ftz2<)!$Afn30ghai#P>mzaj zmQ>nEY8CT%_Na}U}Ew7o>$?j-UyLgaM-Z#R+gmrA)1iXN1%Un}T6kkgA6GHZfF{ypHG zaU!3bAo5xC@%KylkE2AsW1@}7lSWttVT2I*POPHdMdZ5x^`k`o-@yMgg%f#xiDPah!i`=A{e0S-B93`Bn0iTMDL&wyq?0tjP`#NLdtw)a3(O)!8z zz1CI{8yh7yib?zr$X*M9FO3oT9GK2c0if)C7X*!>#oPxtT|Xp5{zFWyp&6v=Li+5MU*?G=Nbiwk2R#<{`Eu5M=Zan_+_35(9u1Vv~G`^*B~4 z1F8TPfEj>Q))@gNKp7PJi0xKDEW8j8-URR(r--cv{Y)RRWf5Xq?n1l3No?6Jv31L$ J=H@(6{}&PMJJtXI diff --git a/binaries/x86_64/nfqws b/binaries/x86_64/nfqws index 822600bbadf60619ebbb01cbbb77fa023c037b03..8cab852384d9ebeac4d1adc0af47e47c749fd94f 100755 GIT binary patch delta 17445 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 diff --git a/binaries/x86_64/tpws b/binaries/x86_64/tpws index d852fe1cb1fbcdc84a955313a239e1817d0aa620..365fdf9bfda826e54ce467aed75f4c348b9f377e 100755 GIT binary patch delta 15488 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 TQ8uG=`rCs@_;{1ng9QH<0HGtB diff --git a/changes.txt b/changes.txt index b6ee0d1..c8c2740 100644 --- a/changes.txt +++ b/changes.txt @@ -70,3 +70,10 @@ v14 change get_antizapret script to work with https://github.com/zapret-info/z-i/raw/master/dump.csv filter out 192.168.*, 127.*, 10.* from blocked ips + +v15 + +added --hostspell option to nfqws and tpws +ISP support : beeline now catches "host" but other spellings still work +openwrt/LEDE : changed init script to work with procd +tpws, nfqws : minor cosmetic fixes diff --git a/init.d/openwrt/zapret b/init.d/openwrt/zapret index 2e7b449..a3f16ae 100755 --- a/init.d/openwrt/zapret +++ b/init.d/openwrt/zapret @@ -4,11 +4,15 @@ # CHOOSE ISP HERE. UNCOMMENT ONLY ONE LINE. #ISP=mns #ISP=rt -#ISP=beeline +ISP=beeline #ISP=domru -ISP=tiera +#ISP=tiera #ISP=none +USE_PROCD=1 +# start betfore firewall - we need ipset populated +START=18 + # !!!!! in openwrt you need to add firewall rules manually to /etc/firewall.user QNUM=200 @@ -19,9 +23,6 @@ TPWS=/opt/zapret/tpws/tpws IPSET_CR=/opt/zapret/ipset/create_ipset.sh TPWS_USER=daemon -# start betfore firewall - we need ipset populated -START=18 - # must execute /etc/firewall.user on every firewall reload set_firewall_user_reload() { @@ -53,7 +54,7 @@ get_daemon() { DAEMON=$NFQWS ;; beeline) - DAEMON_OPTS="--qnum=$QNUM --hostcase" + DAEMON_OPTS="--qnum=$QNUM --hostspell=HOST" DAEMON=$NFQWS ;; domru) @@ -68,7 +69,7 @@ get_daemon() { } -start() { +start_service() { set_firewall_user_reload echo "Creating ipset" ($IPSET_CR) @@ -76,14 +77,8 @@ start() { get_daemon [ -n "$DAEMON" ] && { echo "Starting $DAEMON" - service_start $DAEMON --daemon $DAEMON_OPTS + procd_open_instance + procd_set_param command $DAEMON $DAEMON_OPTS + procd_close_instance } } - -stop() { - get_daemon - [ -n "$DAEMON" ] && { - service_stop $DAEMON - } -} - diff --git a/init.d/ubuntu12/zapret.conf b/init.d/ubuntu12/zapret.conf index 46c2e7b..18b6e8b 100644 --- a/init.d/ubuntu12/zapret.conf +++ b/init.d/ubuntu12/zapret.conf @@ -45,10 +45,6 @@ pre-start script iptables -t raw -I PREROUTING -p udp --sport 53 -m string --hex-string "|5cfff164|" --algo bm -j DROP --from 40 --to 300 iptables -t raw -C PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000064|" --algo bm -j DROP --from 40 --to 300 || iptables -t raw -I PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000064|" --algo bm -j DROP --from 40 --to 300 - iptables -t raw -C PREROUTING -p udp --sport 53 -m string --hex-string "|5cfff16e|" --algo bm -j DROP --from 40 --to 300 || - iptables -t raw -I PREROUTING -p udp --sport 53 -m string --hex-string "|5cfff16e|" --algo bm -j DROP --from 40 --to 300 - iptables -t raw -C PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000110|" --algo bm -j DROP --from 40 --to 300 || - iptables -t raw -I PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000110|" --algo bm -j DROP --from 40 --to 300 ;; tiera) adduser --disabled-login --no-create-home --system --quiet $TPWS_USER @@ -73,7 +69,7 @@ script ;; beeline) NFEXE=$NFQWS - NFARG="--qnum $QNUM --hostcase" + NFARG="--qnum $QNUM --hostspell=HOST" ;; domru) NFEXE=$TPWS @@ -102,8 +98,6 @@ pre-stop script iptables -t nat -D OUTPUT -p tcp --dport 80 -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|5cfff164|" --algo bm -j DROP --from 40 --to 300 iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000064|" --algo bm -j DROP --from 40 --to 300 - iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|5cfff16e|" --algo bm -j DROP --from 40 --to 300 - iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000110|" --algo bm -j DROP --from 40 --to 300 ;; tiera) sysctl -w net.ipv4.conf.$SLAVE_ETH.route_localnet=0 diff --git a/nfq/nfqws.c b/nfq/nfqws.c index e244f17..0ee221c 100644 --- a/nfq/nfqws.c +++ b/nfq/nfqws.c @@ -248,6 +248,7 @@ struct cbdata_s int wsize; int qnum; bool hostcase; + char hostspell[4]; }; // ret: false - not modified, true - modified @@ -291,8 +292,8 @@ bool processPacketData(unsigned char *data,int len,const struct cbdata_s *cbdata } if (cbdata->hostcase && (p = find_bin(data,len,"\r\nHost: ",8))) { - printf("modifying Host: => host:\n"); - p[2]='h'; // "Host:" => "host:" + printf("modifying Host: => %c%c%c%c:\n",cbdata->hostspell[0],cbdata->hostspell[1],cbdata->hostspell[2],cbdata->hostspell[3]); + memcpy(p+2,cbdata->hostspell,4); bRet = true; } if (bRet) @@ -349,7 +350,7 @@ bool droproot(uid_t uid, gid_t gid) void exithelp() { - printf(" --qnum=\n --wsize=\t; set window size. 0 = do not modify\n --hostcase\t\t; change Host: => host:\n --daemon\t\t; daemonize\n"); + printf(" --qnum=\n --wsize=\t; set window size. 0 = do not modify\n --hostcase\t\t; change Host: => host:\n --hostspell\t\t; exact spelling of \"Host\" header. must be 4 chars. default is \"host\"\n --daemon\t\t; daemonize\n"); exit(1); } @@ -368,12 +369,15 @@ int main(int argc, char **argv) gid_t gid; memset(&cbdata,0,sizeof(cbdata)); + memcpy(cbdata.hostspell,"host",4); // default hostspell + const struct option long_options[] = { {"qnum",required_argument,0,0}, // optidx=0 {"daemon",no_argument,0,0}, // optidx=1 {"wsize",required_argument,0,0}, // optidx=2 {"hostcase",no_argument,0,0}, // optidx=3 - {"user",required_argument,0,0}, // optidx=4 + {"hostspell",required_argument,0,0}, // optidx=4 + {"user",required_argument,0,0}, // optidx=5 {NULL,0,NULL,0} }; if (argc<2) exithelp(); @@ -397,14 +401,23 @@ int main(int argc, char **argv) cbdata.wsize=atoi(optarg); if (cbdata.wsize<0 || cbdata.wsize>65535) { - fprintf(stdout,"bad qnum\n"); + fprintf(stdout,"bad wsize\n"); exit(1); } break; case 3: /* hostcase */ cbdata.hostcase = true; break; - case 4: /* user */ + case 4: /* hostspell */ + if (strlen(optarg)!=4) + { + fprintf(stdout,"hostspell must be exactly 4 chars long\n"); + exit(1); + } + cbdata.hostcase = true; + memcpy(cbdata.hostspell,optarg,4); + break; + case 5: /* user */ { struct passwd *pwd = getpwnam(optarg); if (!pwd) diff --git a/readme.txt b/readme.txt index d15d218..62fb863 100644 --- a/readme.txt +++ b/readme.txt @@ -1,4 +1,4 @@ -zapret v.14 +zapret v.15 Для чего это надо ----------------- @@ -99,7 +99,8 @@ nfqws --daemon ; демонизировать прогу --qnum=200 ; номер очереди --wsize=4 ; менять tcp window size на указанный размер - --hostcase ; менять регистр заголовка "Host:" + --hostcase ; менять регистр заголовка "Host:" по умолчанию на "host:". + --hostspell=HoST ; точное написание заголовка Host (можно "HOST" или "HoSt"). автоматом включает --hostcase Параметры манипуляции могут сочетаться в любых комбинациях. tpws @@ -112,7 +113,8 @@ tpws - это transparent proxy. --user= ; менять uid процесса --split-http-req=method|host ; способ разделения http запросов на сегменты : около метода (GET,POST) или около заголовка Host --split-pos= ; делить все посылы на сегменты в указанной позиции. Если отсыл длинее 8Kb (размер буфера приема), то будет разделен каждый блок по 8Kb. - --hostcase ; замена "Host:" => "host:" + --hostcase ; менять регистр заголовка "Host:". по умолчанию на "host:". + --hostspell=HoST ; точное написание заголовка Host (можно "HOST" или "HoSt"). автоматом включает --hostcase --hostdot ; добавление точки после имени хоста : "Host: kinozal.tv." --methodspace ; добавить пробел после метода : "GET /" => "GET /" Параметры манипуляции могут сочетаться в любых комбинациях. @@ -122,7 +124,7 @@ tpws - это transparent proxy. ---------- mns.ru : нужна замена window size на 4 -beeline (corbina) : нужна замена регистра "Host:" на протяжении всей http сессии +beeline (corbina) : нужна замена регистра "Host:" на протяжении всей http сессии. С некоторых пор "host" не работает, но работают другие регистры букв. dom.ru : нужно проксирование HTTP сессий через tpws с заменой регистра "Host:" и разделение TCP сегментов на хедере "Host:". Ахтунг ! Домру блокирует все поддомены заблоченого домена. IP адреса всевозможных поддоменов узнать невозможно из реестра блокировок, поэтому если вдруг на каком-то сайте вылезает блокировочный баннер, то идите в консоль firefox, вкладка network. diff --git a/tpws/tpws.c b/tpws/tpws.c index 6cca936..5cfdd87 100644 --- a/tpws/tpws.c +++ b/tpws/tpws.c @@ -34,6 +34,7 @@ struct params_s uint16_t port; bool daemon; bool hostcase,hostdot,methodspace; + char hostspell[4]; enum splithttpreq split_http_req; int split_pos; int maxconn; @@ -123,7 +124,7 @@ bool handle_epollin(tproxy_conn_t *conn,int *data_transferred){ if (p=find_bin(buf,bs,*item,l)) { pos = p-buf; - printf("Found http method '%s' at pos %d. Adding extra space.\n",*item,(unsigned int)pos); + printf("Found http method '%s' at pos %zd. Adding extra space.\n",*item,pos); p += l-1; pos += l-1; memmove(p+1,p,bs-pos); @@ -144,7 +145,7 @@ bool handle_epollin(tproxy_conn_t *conn,int *data_transferred){ if (p<(buf+bs)) { pos = p-buf; - printf("Adding dot to host name at pos %d\n",(unsigned int)pos); + printf("Adding dot to host name at pos %zd\n",pos); memmove(p+1,p,bs-pos); *p = '.'; // insert dot bs++; // block will grow by 1 byte @@ -193,7 +194,7 @@ bool handle_epollin(tproxy_conn_t *conn,int *data_transferred){ if (p=find_bin(buf,bs,*split_item,l)) { split_pos = p-buf; - printf("Found split item '%s' at pos %d\n",*split_item,(unsigned int)split_pos); + printf("Found split item '%s' at pos %zd\n",*split_item,split_pos); split_pos += l-1; break; } @@ -203,13 +204,13 @@ bool handle_epollin(tproxy_conn_t *conn,int *data_transferred){ { if (phost || (phost=find_bin(buf,bs,"\r\nHost: ",8))) { - printf("Changing 'Host:' => 'host:' at pos %d\n",(unsigned int)(phost-buf)); - phost[2]='h'; + printf("Changing 'Host:' => '%c%c%c%c:' at pos %zd\n",params.hostspell[0],params.hostspell[1],params.hostspell[2],params.hostspell[3],phost-buf+2); + memcpy(phost+2,params.hostspell,4); } } if (split_pos) { - printf("Splitting at pos %d\n",(unsigned int)split_pos); + printf("Splitting at pos %zd\n",split_pos); wr=send_with_flush(fd_out,buf,split_pos,0); if (wr>=0) wr=send(fd_out,buf+split_pos,bs-split_pos,0); @@ -393,7 +394,7 @@ int8_t block_sigpipe(){ void exithelp() { - printf(" --bind-addr=|\n --port=\n --maxconn=\n --split-http-req=method|host\n --split-pos=\t; split at specified pos. invalidates split-http-req.\n --hostcase\t\t; change Host: => host:\n --hostdot\t\t; add \".\" after Host: name\n --methodspace\t\t; add extra space after method\n --daemon\t\t; daemonize\n --user=\t; drop root privs\n"); + printf(" --bind-addr=|\n --port=\n --maxconn=\n --split-http-req=method|host\n --split-pos=\t; split at specified pos. invalidates split-http-req.\n --hostcase\t\t; change Host: => host:\n --hostspell\t\t; exact spelling of \"Host\" header. must be 4 chars. default is \"host\"\n --hostdot\t\t; add \".\" after Host: name\n --methodspace\t\t; add extra space after method\n --daemon\t\t; daemonize\n --user=\t; drop root privs\n"); exit(1); } @@ -403,6 +404,7 @@ void parse_params(int argc, char *argv[]) int v,i; memset(¶ms,0,sizeof(params)); + memcpy(params.hostspell,"host",4); // default hostspell params.maxconn = DEFAULT_MAX_CONN; const struct option long_options[] = { @@ -414,10 +416,11 @@ void parse_params(int argc, char *argv[]) {"user",required_argument,0,0},// optidx=5 {"maxconn",required_argument,0,0},// optidx=6 {"hostcase",no_argument,0,0},// optidx=7 - {"hostdot",no_argument,0,0},// optidx=8 - {"split-http-req",required_argument,0,0},// optidx=9 - {"split-pos",required_argument,0,0},// optidx=10 - {"methodspace",no_argument,0,0},// optidx=11 + {"hostspell",required_argument,0,0},// optidx=8 + {"hostdot",no_argument,0,0},// optidx=9 + {"split-http-req",required_argument,0,0},// optidx=10 + {"split-pos",required_argument,0,0},// optidx=11 + {"methodspace",no_argument,0,0},// optidx=12 {NULL,0,NULL,0} }; while ((v=getopt_long_only(argc,argv,"",long_options,&option_index))!=-1) @@ -468,10 +471,19 @@ void parse_params(int argc, char *argv[]) case 7: /* hostcase */ params.hostcase = true; break; - case 8: /* hostdot */ + case 8: /* hostspell */ + if (strlen(optarg)!=4) + { + fprintf(stdout,"hostspell must be exactly 4 chars long\n"); + exit(1); + } + params.hostcase = true; + memcpy(params.hostspell,optarg,4); + break; + case 9: /* hostdot */ params.hostdot = true; break; - case 9: /* split-http-req */ + case 10: /* split-http-req */ if (!strcmp(optarg,"method")) params.split_http_req = split_method; else if (!strcmp(optarg,"host")) @@ -482,7 +494,7 @@ void parse_params(int argc, char *argv[]) exit(1); } break; - case 10: /* split-pos */ + case 11: /* split-pos */ i = atoi(optarg); if (i) params.split_pos = i; @@ -492,7 +504,7 @@ void parse_params(int argc, char *argv[]) exit(1); } break; - case 11: /* methodspace */ + case 12: /* methodspace */ params.methodspace = true; break; } diff --git a/tpws/tpws_conn.c b/tpws/tpws_conn.c index 6a2f3ef..8419e32 100644 --- a/tpws/tpws_conn.c +++ b/tpws/tpws_conn.c @@ -1,17 +1,16 @@ -#define _GNU_SOURCE #include #include +#include +#include +#include #include #include #include #include #include -#include -#include #include #include -#include -#include "linux/netfilter_ipv4.h" +#include #include #include "tpws_conn.h"