From 647351586fc392a2cb35084c140142b534dd6fd8 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 8 Apr 2021 08:41:46 +0200 Subject: [PATCH] Close v2ray ports when redirection removed in firewall page --- .../files/etc/init.d/openmptcprouter-vps | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index e2cb60c4f..b2ea9340b 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -1011,6 +1011,7 @@ _vps_firewall_close_port() { [ -n "$vpsfwlist" ] && { echo "$vpsfwlist" | while read -r line; do [ -n "$line" ] && { + type=$(echo $line | awk '{print $1}' | tr -d "\n") proto=$(echo $line | awk '{print $4}' | tr -d "\n") src_dport=$(echo $line | awk '{print $5}' | tr -d "\n") source_port=$(echo $line | awk '{print $6}' | tr -d "\n") @@ -1024,12 +1025,17 @@ _vps_firewall_close_port() { settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","proto" : "'$proto'","fwtype" : "DNAT"}' fi _set_json "shorewallclose" "$settings" + [ "$type" = "ACCEPT" ] && { + settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","proto" : "'$proto'"}' + _set_json "v2rayunredirect" "$settings" + } } done } [ -n "$vpsfw6list" ] && { echo "$vpsfw6list" | while read -r line; do [ -n "$line" ] && { + type=$(echo $line | awk '{print $1}' | tr -d "\n") proto=$(echo $line | awk '{print $4}' | tr -d "\n") src_dport=$(echo $line | awk '{print $5}' | tr -d "\n") source_port=$(echo $line | awk '{print $6}' | tr -d "\n") @@ -1043,6 +1049,10 @@ _vps_firewall_close_port() { settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","proto" : "'$proto'","fwtype" : "DNAT","ipproto" : "ipv6"}' fi _set_json "shorewallclose" "$settings" + [ "$type" = "ACCEPT" ] && { + settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","proto" : "'$proto'"}' + _set_json "v2rayunredirect" "$settings" + } } done } @@ -1088,9 +1098,15 @@ _set_vps_firewall() { settings='{"name" : "redirect router"}' fw_list=$(_set_json "shorewalllist" "$settings") vpsfwlist=$(echo $fw_list | jsonfilter -q -e '@.list[*]' | sed '/^[[:space:]]*$/d') + settings='{"name" : "open router"}' + fw_list=$(_set_json "shorewalllist" "$settings") + vpsfwlist="$vpsfwlist\n$(echo $fw_list | jsonfilter -q -e '@.list[*]' | sed '/^[[:space:]]*$/d')" settings='{"name" : "redirect router","ipproto" : "ipv6"}' fw6_list=$(_set_json "shorewalllist" "$settings") vpsfw6list=$(echo $fw6_list | jsonfilter -q -e '@.list[*]' | sed '/^[[:space:]]*$/d') + settings='{"name" : "open router","ipproto" : "ipv6"}' + fw6_list=$(_set_json "shorewalllist" "$settings") + vpsfw6list="$vpsfw6list\n$(echo $fw6_list | jsonfilter -q -e '@.list[*]' | sed '/^[[:space:]]*$/d')" config_load firewall config_foreach _vps_firewall_redirect_port redirect config_foreach _vps_firewall_redirect_port rule