ipt-firewall-server/ip6t-firewall-server: change order for 'Restrict Service/Net to..'.

This commit is contained in:
2021-08-20 01:33:47 +02:00
parent 5ec7c9bcea
commit c65e0102ae
2 changed files with 125 additions and 121 deletions

View File

@ -907,6 +907,75 @@ $ip6t -A OUTPUT -o lo -j ACCEPT
echo_done
echo
# -------------
# ---- Restrict local Servive to given (extern) IP-Address/Network
# -------------
echononl "\tRestrict local Servive to given (extern) IP-Address/Network"
if [[ ${#restrict_local_service_to_net_arr[@]} -gt 0 ]] ; then
_deny_service_arr=()
for _val in "${restrict_local_service_to_net_arr[@]}" ; do
IFS=',' read -a _val_arr <<< "${_val}"
for _dev in ${ext_if_arr[@]} ; do
$ip6t -A INPUT -i $_dev -p ${_val_arr[3]} -s ${_val_arr[0]} -d ${_val_arr[1]} --dport ${_val_arr[2]} -j ACCEPT
if ! containsElement "${_dev},${_val_arr[1]},${_val_arr[2]},${_val_arr[3]}" "${_deny_service_arr[@]}" ; then
_deny_service_arr+=("${_dev},${_val_arr[1]},${_val_arr[2]},${_val_arr[3]}")
fi
done
done
for _val in "${_deny_service_arr[@]}" ; do
IFS=',' read -a _val_arr <<< "${_val}"
$ip6t -A INPUT -i ${_val_arr[0]} -p ${_val_arr[3]} -d ${_val_arr[1]} --dport ${_val_arr[2]} -j DROP
done
echo_done
else
echo_skipped
fi
# -------------
# ---- Restrict local Network to given extern IP-Address/Network
# -------------
echononl "\tRestrict local Address/Network to given extern Address/Network"
if [[ ${#restrict_local_net_to_net_arr[@]} -gt 0 ]] ; then
_deny_net_arr=()
for _val in "${restrict_local_net_to_net_arr[@]}" ; do
IFS=',' read -a _val_arr <<< "${_val}"
for _dev in ${ext_if_arr[@]} ; do
$ip6t -A INPUT -i $_dev -s ${_val_arr[0]} -d ${_val_arr[1]} -j ACCEPT
if ! containsElement "${_dev},${_val_arr[1]}" "${_deny_net_arr[@]}" ; then
_deny_net_arr+=("${_dev},${_val_arr[1]}")
fi
done
done
for _val in "${_deny_net_arr[@]}" ; do
IFS=',' read -a _val_arr <<< "${_val}"
$ip6t -A INPUT -i ${_val_arr[0]} -d ${_val_arr[1]} -j DROP
done
echo_done
else
echo_skipped
fi
echo
# ---
# - Already established connections
# ---
@ -953,73 +1022,6 @@ for _vpn_if in ${vpn_if_arr[@]} ; do
done
echo_done
echo
# -------------
# ---- Restrict local Servive to given (extern) IP-Address/Network
# -------------
echononl "\tRestrict local Servive to given (extern) IP-Address/Network"
if [[ ${#restrict_local_service_to_net_arr[@]} -gt 0 ]] ; then
_deny_service_arr=()
for _val in "${restrict_local_service_to_net_arr[@]}" ; do
IFS=',' read -a _val_arr <<< "${_val}"
for _dev in ${ext_if_arr[@]} ; do
$ip6t -A INPUT -i $_dev -p ${_val_arr[3]} -s ${_val_arr[0]} -d ${_val_arr[1]} --dport ${_val_arr[2]} -m state --state NEW -j ACCEPT
if ! containsElement "${_dev},${_val_arr[1]},${_val_arr[2]},${_val_arr[3]}" "${_deny_service_arr[@]}" ; then
_deny_service_arr+=("${_dev},${_val_arr[1]},${_val_arr[2]},${_val_arr[3]}")
fi
done
done
for _val in "${_deny_service_arr[@]}" ; do
IFS=',' read -a _val_arr <<< "${_val}"
$ip6t -A INPUT -i ${_val_arr[0]} -p ${_val_arr[3]} -d ${_val_arr[1]} --dport ${_val_arr[2]} -j DROP
done
echo_done
else
echo_skipped
fi
# -------------
# ---- Restrict local Network to given extern IP-Address/Network
# -------------
echononl "\tRestrict local Address/Network to given extern Address/Network"
if [[ ${#restrict_local_net_to_net_arr[@]} -gt 0 ]] ; then
_deny_net_arr=()
for _val in "${restrict_local_net_to_net_arr[@]}" ; do
IFS=',' read -a _val_arr <<< "${_val}"
for _dev in ${ext_if_arr[@]} ; do
$ip6t -A INPUT -i $_dev -s ${_val_arr[0]} -d ${_val_arr[1]} -m state --state NEW -j ACCEPT
if ! containsElement "${_dev},${_val_arr[1]}" "${_deny_net_arr[@]}" ; then
_deny_net_arr+=("${_dev},${_val_arr[1]}")
fi
done
done
for _val in "${_deny_net_arr[@]}" ; do
IFS=',' read -a _val_arr <<< "${_val}"
$ip6t -A INPUT -i ${_val_arr[0]} -d ${_val_arr[1]} -j DROP
done
echo_done
else
echo_skipped
fi
# -------------
# --- Services