Add support for Portforwarding TCP/UDP using socat.
This commit is contained in:
@ -938,7 +938,7 @@ echononl "\t\tAllow (non-standard) local Services"
|
||||
if [[ ${#allow_local_service_arr[@]} -gt 0 ]] ; then
|
||||
for _dev in "${ext_if_arr[@]}" ; do
|
||||
for _val in "${allow_local_service_arr[@]}" ; do
|
||||
IFS=':' read -a _val_arr <<< "${_val}"
|
||||
IFS=',' read -a _val_arr <<< "${_val}"
|
||||
$ip6t -A INPUT -i $_dev -p ${_val_arr[1]} --dport ${_val_arr[0]} -m state --state NEW -j ACCEPT
|
||||
done
|
||||
done
|
||||
@ -2062,6 +2062,81 @@ fi
|
||||
|
||||
echo
|
||||
|
||||
# -------------
|
||||
# --- Portforwarding
|
||||
# -------------
|
||||
|
||||
# ---
|
||||
# - Portforwarding TCP
|
||||
# ---
|
||||
|
||||
echononl "\t\tPortforwarding TCP"
|
||||
|
||||
if [[ ${#portforward_tcp_arr[@]} -gt 0 ]] ; then
|
||||
for _val in "${portforward_tcp_arr[@]}" ; do
|
||||
|
||||
# - Split value
|
||||
# -
|
||||
IFS=',' read -a _val_arr <<< "${_val}"
|
||||
|
||||
# - Allow Packets IN
|
||||
# -
|
||||
$ip6t -A INPUT -i ${_val_arr[0]} -p tcp -d ${_val_arr[1]} --dport ${_val_arr[2]} -m conntrack --ctstate NEW -j ACCEPT
|
||||
|
||||
# - Allow Packets FORWARD
|
||||
# -
|
||||
$ip6t -A FORWARD -i ${_val_arr[0]} -p tcp -d ${_val_arr[3]} --dport ${_val_arr[4]} -m conntrack --ctstate NEW -j ACCEPT
|
||||
|
||||
_job_id="$(ps ax | grep "TCP6-LISTEN:${_val_arr[2]},fork,bind=\[${_val_arr[1]}\]" | grep -v grep | awk '{print$1}')"
|
||||
if [[ -n "$_job_id" ]]; then
|
||||
kill ${_job_id} > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
socat TCP6-LISTEN:${_val_arr[2]},fork,bind=[${_val_arr[1]}] TCP:[${_val_arr[3]}]:${_val_arr[4]} &
|
||||
|
||||
done
|
||||
echo_done
|
||||
else
|
||||
echo_skipped
|
||||
fi
|
||||
|
||||
|
||||
# ---
|
||||
# - Portforwarding UDP
|
||||
# ---
|
||||
|
||||
echononl "\t\tPortforwarding UDP"
|
||||
|
||||
if [[ ${#portforward_udp_arr[@]} -gt 0 ]] ; then
|
||||
for _val in "${portforward_udp_arr[@]}" ; do
|
||||
|
||||
# - Split value
|
||||
# -
|
||||
IFS=',' read -a _val_arr <<< "${_val}"
|
||||
|
||||
# - Allow Packets IN
|
||||
# -
|
||||
$ip6t -A INPUT -i ${_val_arr[0]} -p udp -d ${_val_arr[1]} --dport ${_val_arr[2]} -m conntrack --ctstate NEW -j ACCEPT
|
||||
|
||||
# - Allow Packets FORWARD
|
||||
# -
|
||||
$ip6t -A FORWARD -i ${_val_arr[0]} -p udp -d ${_val_arr[3]} --dport ${_val_arr[4]} -m conntrack --ctstate NEW -j ACCEPT
|
||||
|
||||
_job_id="$(ps ax | grep "UDP6-LISTEN:${_val_arr[2]},fork,bind=\[${_val_arr[1]}\]" | grep -v grep | awk '{print$1}')"
|
||||
if [[ -n "$_job_id" ]]; then
|
||||
kill ${_job_id} > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
socat UDP6-LISTEN:${_val_arr[2]},fork,bind=[${_val_arr[1]}] UDP:[${_val_arr[3]}]:${_val_arr[4]} &
|
||||
|
||||
done
|
||||
echo_done
|
||||
else
|
||||
echo_skipped
|
||||
fi
|
||||
|
||||
|
||||
echo
|
||||
|
||||
# ---
|
||||
# - UNIX Traceroute
|
||||
|
Reference in New Issue
Block a user