From 888f9cbf7dd6130db445d6a5a6b35b323f7308b5 Mon Sep 17 00:00:00 2001 From: bol-van Date: Wed, 6 Sep 2023 12:24:29 +0300 Subject: [PATCH] custom script for RKN DHT BLOCK : custom-nfqws-dht4all --- init.d/openwrt/custom-nfqws-dht4all | 46 ++++++++++++++++++++++++++++ init.d/sysv/custom-nfqws-dht4all | 47 +++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 init.d/openwrt/custom-nfqws-dht4all create mode 100644 init.d/sysv/custom-nfqws-dht4all diff --git a/init.d/openwrt/custom-nfqws-dht4all b/init.d/openwrt/custom-nfqws-dht4all new file mode 100644 index 0000000..43c727a --- /dev/null +++ b/init.d/openwrt/custom-nfqws-dht4all @@ -0,0 +1,46 @@ +# this custom script in addition to MODE=nfqws runs desync to DHT packets with udp payload length 101..399 , without ipset/hostlist filtering +# need to add to config : "NFQWS_OPT_DESYNC_DHT="--dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d2 --dpi-desync-ttl=5" + +QNUM2=$(($QNUM+20)) + +zapret_custom_daemons() +{ + # stop logic is managed by procd + + local MODE_OVERRIDE=nfqws + local opt + + start_daemons_procd + + opt="--qnum=$QNUM2 $NFQWS_OPT_BASE $NFQWS_OPT_DESYNC_DHT" + run_daemon 100 $NFQWS "$opt" +} +zapret_custom_firewall() +{ + # $1 - 1 - run, 0 - stop + + local MODE_OVERRIDE=nfqws + local f + local first_packet_only="-m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:1" + local desync="-m mark ! --mark $DESYNC_MARK/$DESYNC_MARK" + + zapret_do_firewall_rules_ipt $1 + + f="-p udp -m length --length 109:407" + fw_nfqws_post $1 "$f $desync $first_packets_only" "$f $desync $first_packets_only" $QNUM2 + +} +zapret_custom_firewall_nft() +{ + # stop logic is not required + + local MODE_OVERRIDE=nfqws + local f + local first_packet_only="ct original packets 1" + local desync="mark and $DESYNC_MARK == 0" + + zapret_apply_firewall_rules_nft + + f="meta length 109-407 meta l4proto udp @th,64,16 0x6431" + nft_fw_nfqws_post "$f $desync $first_packet_only" "$f $desync $first_packet_only" $QNUM2 +} diff --git a/init.d/sysv/custom-nfqws-dht4all b/init.d/sysv/custom-nfqws-dht4all new file mode 100644 index 0000000..5aad9a9 --- /dev/null +++ b/init.d/sysv/custom-nfqws-dht4all @@ -0,0 +1,47 @@ +# this custom script in addition to MODE=nfqws runs desync to DHT packets with udp payload length 101..399 , without ipset/hostlist filtering +# need to add to config : "NFQWS_OPT_DESYNC_DHT="--dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d2 --dpi-desync-ttl=5" + +QNUM2=$(($QNUM+20)) + +zapret_custom_daemons() +{ + # stop logic is managed by procd + + local MODE_OVERRIDE=nfqws + local opt + + zapret_do_daemons $1 + + opt="--qnum=$QNUM2 $NFQWS_OPT_BASE $NFQWS_OPT_DESYNC_DHT" + do_nfqws $1 100 "$opt" +} +zapret_custom_firewall() +{ + # $1 - 1 - run, 0 - stop + + local MODE_OVERRIDE=nfqws + local f + local first_packet_only="-m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1" + local desync="-m mark ! --mark $DESYNC_MARK/$DESYNC_MARK" + + zapret_do_firewall_rules_ipt $1 + + f="-p udp -m length --length 109:407" + fw_nfqws_post $1 "$f $desync $first_packets_only" "$f $desync $first_packets_only" $QNUM2 + +} +zapret_custom_firewall_nft() +{ + # stop logic is not required + + local MODE_OVERRIDE=nfqws + local f + local first_packet_only="ct original packets 1" + local desync="mark and $DESYNC_MARK == 0" + + zapret_apply_firewall_rules_nft + + f="meta length 109-407 meta l4proto udp @th,64,16 0x6431" + nft_fw_nfqws_post "$f $desync $first_packet_only" "$f $desync $first_packet_only" $QNUM2 +} +