mirror of
https://github.com/bol-van/zapret.git
synced 2025-05-11 04:50:48 +05:00
113 lines
2.4 KiB
Bash
113 lines
2.4 KiB
Bash
#!/bin/sh /etc/rc.common
|
|
|
|
. /lib/functions/network.sh
|
|
|
|
USE_PROCD=1
|
|
# after network
|
|
START=21
|
|
|
|
CONFIGURATION=zapret
|
|
PIDDIR=/var/run
|
|
|
|
load_fw_rules()
|
|
{
|
|
for fp in $3
|
|
do
|
|
json_add_object ""
|
|
json_add_string type redirect
|
|
json_add_string name "Transparent Proxy Redirect port $fp"
|
|
json_add_string src lan
|
|
json_add_string proto tcp
|
|
json_add_string dest_port "$1"
|
|
json_add_string src_dip "!$2"
|
|
json_add_string dest_ip "$2"
|
|
json_add_string src_dport "$fp"
|
|
json_add_string dest lan
|
|
json_close_object
|
|
done
|
|
|
|
if [ "$4" = "1" ]; then
|
|
json_add_object ""
|
|
json_add_string type rule
|
|
json_add_string name "deny quic traffic"
|
|
json_add_string src lan
|
|
json_add_string proto udp
|
|
json_add_string dest_port "443"
|
|
json_add_string dest wan
|
|
json_add_string target "REJECT"
|
|
json_close_object
|
|
fi
|
|
}
|
|
|
|
start_service()
|
|
{
|
|
echo "Starting Zapret service"
|
|
config_load "$CONFIGURATION"
|
|
|
|
local opts
|
|
local pid
|
|
local lanaddr
|
|
local lport
|
|
local fports
|
|
local blockq
|
|
local ifname
|
|
|
|
config_get opts tpws opts
|
|
config_get pid tpws pid "tpws.pid"
|
|
config_get lport tpws port "8088"
|
|
config_get fports tpws forward_ports "80 443"
|
|
config_get_bool blockq tpws block_quic 0
|
|
|
|
config_load "network"
|
|
config_get lanaddr lan ipaddr
|
|
|
|
procd_open_instance
|
|
|
|
procd_set_param command "/usr/bin/tpws"
|
|
procd_append_param command "--port=$lport"
|
|
procd_append_param command "--user=nobody"
|
|
procd_append_param command "--bind-addr=$lanaddr"
|
|
procd_append_param command "--bind-wait-ifup=30"
|
|
procd_append_param command "--bind-wait-ip=10"
|
|
procd_append_param command "$opts"
|
|
|
|
procd_set_param pidfile "$PIDDIR/$pid"
|
|
network_get_device ifname lan
|
|
procd_set_param netdev "$ifname"
|
|
|
|
procd_open_data
|
|
|
|
json_add_array firewall
|
|
load_fw_rules "$lport" "$lanaddr" "$fports" "$blockq"
|
|
json_close_array
|
|
|
|
procd_close_data
|
|
|
|
procd_close_instance
|
|
}
|
|
|
|
stop_service()
|
|
{
|
|
# this procedure is called from stop()
|
|
# stop() already stop daemons
|
|
procd_set_config_changed firewall
|
|
echo "STOP Zapret service"
|
|
}
|
|
|
|
service_triggers()
|
|
{
|
|
procd_add_reload_trigger "zapret"
|
|
}
|
|
|
|
reload_service()
|
|
{
|
|
echo "Restarting service"
|
|
stop
|
|
start
|
|
}
|
|
|
|
service_started()
|
|
{
|
|
procd_set_config_changed firewall
|
|
}
|