mirror of
https://github.com/bol-van/zapret.git
synced 2024-12-28 20:30:33 +05:00
67 lines
2.2 KiB
Plaintext
67 lines
2.2 KiB
Plaintext
# this custom script runs standard mode with extra firewall rules
|
|
|
|
# config: use TPWS_ENABLE_OVERRIDE, NFQWS_ENABLE_OVERRIDE to enable standard mode daemons
|
|
# standard and override switches cannot be enabled simultaneously !
|
|
|
|
TPWS_ENABLE_OVERRIDE=${TPWS_ENABLE_OVERRIDE:-0}
|
|
NFQWS_ENABLE_OVERRIDE=${NFQWS_ENABLE_OVERRIDE:-0}
|
|
|
|
# config: some if these values must be set in config. not setting any of these makes this script meaningless.
|
|
# pre vars put ipt/nft code to the rule beginning
|
|
#FW_EXTRA_PRE_TPWS_IPT=
|
|
#FW_EXTRA_PRE_TPWS_NFT=
|
|
#FW_EXTRA_PRE_NFQWS_IPT="-m mark --mark 0x10000000/0x10000000"
|
|
#FW_EXTRA_PRE_NFQWS_NFT="mark and 0x10000000 != 0"
|
|
# post vars put ipt/nft code to the rule end
|
|
#FW_EXTRA_POST_TPWS_IPT=
|
|
#FW_EXTRA_POST_TPWS_NFT=
|
|
#FW_EXTRA_POST_NFQWS_IPT=
|
|
#FW_EXTRA_POST_NFQWS_NFT=
|
|
|
|
check_std_intersect()
|
|
{
|
|
[ "$TPWS_ENABLE_OVERRIDE" = 1 -a "$TPWS_ENABLE" = 1 ] && {
|
|
echo "ERROR ! both TPWS_ENABLE_OVERRIDE and TPWS_ENABLE are enabled"
|
|
return 1
|
|
}
|
|
[ "$NFQWS_ENABLE_OVERRIDE" = 1 -a "$NFQWS_ENABLE" = 1 ] && {
|
|
echo "ERROR ! both NFQWS_ENABLE_OVERRIDE and NFQWS_ENABLE are enabled"
|
|
return 1
|
|
}
|
|
return 0
|
|
}
|
|
|
|
zapret_custom_daemons()
|
|
{
|
|
# $1 - 1 - add, 0 - stop
|
|
|
|
check_std_intersect || return
|
|
|
|
local TPWS_SOCKS_ENABLE=0 TPWS_ENABLE=$TPWS_ENABLE_OVERRIDE NFQWS_ENABLE=$NFQWS_ENABLE_OVERRIDE
|
|
standard_mode_daemons "$1"
|
|
}
|
|
zapret_custom_firewall()
|
|
{
|
|
# $1 - 1 - run, 0 - stop
|
|
|
|
check_std_intersect || return
|
|
|
|
local FW_EXTRA_PRE FW_EXTRA_POST TPWS_ENABLE=$TPWS_ENABLE_OVERRIDE NFQWS_ENABLE=$NFQWS_ENABLE_OVERRIDE
|
|
FW_EXTRA_PRE="$FW_EXTRA_PRE_TPWS_IPT" FW_EXTRA_POST="$FW_EXTRA_POST_TPWS_IPT"
|
|
zapret_do_firewall_standard_tpws_rules_ipt $1
|
|
FW_EXTRA_PRE="$FW_EXTRA_PRE_NFQWS_IPT" FW_EXTRA_POST="$FW_EXTRA_POST_NFQWS_IPT"
|
|
zapret_do_firewall_standard_nfqws_rules_ipt $1
|
|
}
|
|
zapret_custom_firewall_nft()
|
|
{
|
|
# stop logic is not required
|
|
|
|
check_std_intersect || return
|
|
|
|
local FW_EXTRA_PRE FW_EXTRA_POST TPWS_ENABLE=$TPWS_ENABLE_OVERRIDE NFQWS_ENABLE=$NFQWS_ENABLE_OVERRIDE
|
|
FW_EXTRA_PRE="$FW_EXTRA_PRE_TPWS_NFT" FW_EXTRA_POST="$FW_EXTRA_POST_TPWS_NFT"
|
|
zapret_apply_firewall_standard_tpws_rules_nft
|
|
FW_EXTRA_PRE="$FW_EXTRA_PRE_NFQWS_NFT" FW_EXTRA_POST="$FW_EXTRA_POST_NFQWS_NFT"
|
|
zapret_apply_firewall_standard_nfqws_rules_nft
|
|
}
|