diff --git a/init.d/openwrt/custom.d.examples/50-wg4all b/init.d/openwrt/custom.d.examples/50-wg4all new file mode 100644 index 0000000..5e234d0 --- /dev/null +++ b/init.d/openwrt/custom.d.examples/50-wg4all @@ -0,0 +1,30 @@ +# this custom script runs desync to all wireguard handshake initiation packets + +# can override in config : +NFQWS_OPT_DESYNC_WG="${NFQWS_OPT_DESYNC_WG:---dpi-desync=fake --dpi-desync-any-protocol}" + +alloc_dnum DNUM_WG4ALL +alloc_qnum QNUM_WG4ALL + +zapret_custom_daemons() +{ + # stop logic is managed by procd + + local opt="--qnum=$QNUM_WG4ALL $NFQWS_OPT_BASE $NFQWS_OPT_DESYNC_WG" + run_daemon $DNUM_WG4ALL $NFQWS "$opt" +} +# size = 156 (8 udp header + 148 payload) && payload starts with 0x01000000 +zapret_custom_firewall() +{ + # $1 - 1 - run, 0 - stop + + local f='-p udp -m u32 --u32' + fw_nfqws_post $1 "$f 0>>22&0x3C@4>>16=0x9c&&0>>22&0x3C@8=0x01000000" "$f 44>>16=0x9c&&48=0x01000000" $QNUM_WG4ALL +} +zapret_custom_firewall_nft() +{ + # stop logic is not required + + local f="udp length 156 @th,64,32 0x01000000" + nft_fw_nfqws_post "$f" "$f" $QNUM_WG4ALL +} diff --git a/init.d/sysv/custom.d.examples/50-wg4all b/init.d/sysv/custom.d.examples/50-wg4all new file mode 100644 index 0000000..00ab973 --- /dev/null +++ b/init.d/sysv/custom.d.examples/50-wg4all @@ -0,0 +1,30 @@ +# this custom script runs desync to all wireguard handshake initiation packets + +# can override in config : +NFQWS_OPT_DESYNC_WG="${NFQWS_OPT_DESYNC_WG:---dpi-desync=fake --dpi-desync-any-protocol}" + +alloc_dnum DNUM_WG4ALL +alloc_qnum QNUM_WG4ALL + +zapret_custom_daemons() +{ + # stop logic is managed by procd + + local opt="--qnum=$QNUM_WG4ALL $NFQWS_OPT_BASE $NFQWS_OPT_DESYNC_WG" + do_nfqws $1 $DNUM_WG4ALL "$opt" +} +# size = 156 (8 udp header + 148 payload) && payload starts with 0x01000000 +zapret_custom_firewall() +{ + # $1 - 1 - run, 0 - stop + + local f='-p udp -m u32 --u32' + fw_nfqws_post $1 "$f 0>>22&0x3C@4>>16=0x9c&&0>>22&0x3C@8=0x01000000" "$f 44>>16=0x9c&&48=0x01000000" $QNUM_WG4ALL +} +zapret_custom_firewall_nft() +{ + # stop logic is not required + + local f="udp length 156 @th,64,32 0x01000000" + nft_fw_nfqws_post "$f" "$f" $QNUM_WG4ALL +}