| verzia 2.36, 2006/01/12 20:05:34 |
verzia 2.37, 2006/01/13 18:32:36 |
|
|
| |
|
| for iface in $INTERFACES; do |
for iface in $INTERFACES; do |
| IPS="IP_$iface"; |
IPS="IP_$iface"; |
| |
|
| |
redirect_tcp="${iface}_REDIRECT_TCP" |
| |
REDIRECT_TCP="${!redirect_tcp}" |
| |
redirect_udp="${iface}_REDIRECT_UDP" |
| |
REDIRECT_UDP="${!redirect_udp}" |
| |
|
| accept_input_tcp="${iface}_ACCEPT_INPUT_TCP" |
accept_input_tcp="${iface}_ACCEPT_INPUT_TCP" |
| ACCEPT_INPUT_TCP="${!accept_input_tcp}" |
ACCEPT_INPUT_TCP="${!accept_input_tcp}" |
| accept_input_udp="${iface}_ACCEPT_INPUT_UDP" |
accept_input_udp="${iface}_ACCEPT_INPUT_UDP" |
| ACCEPT_INPUT_UDP="${!accept_input_udp}" |
ACCEPT_INPUT_UDP="${!accept_input_udp}" |
| |
|
| |
if [ ! -z "$REDIRECT_TCP" ]; then |
| |
echo -en "$iface: redirecting TCP connections:" |
| |
ip="`get_first_ip_addr IP_$iface`"; |
| |
for redirect in $REDIRECT_TCP; do |
| |
eval `echo $redirect | \ |
| |
awk -v FS=: ' (NF == 2) { remote_ip = "0.0.0.0/0"; from_port = $1; to_port = $2; } \ |
| |
(NF == 3) { remote_ip = $1; from_port = $2; to_port = $3; } \ |
| |
END { printf "remote_ip=%s; from_port=%s; to_port=%s;", remote_ip, from_port, to_port; }'` |
| |
echo -en " $remote_ip:$from_port->$to_port" |
| |
$IPTABLES -t nat -A PREROUTING -p TCP -i $iface -s $remote_ip -d $ip --dport $from_port -j REDIRECT --to-port $to_port |
| |
done |
| |
echo " done." |
| |
fi |
| |
|
| |
if [ ! -z "$REDIRECT_UDP" ]; then |
| |
echo -en "$iface: redirecting UDP connections:" |
| |
ip="`get_first_ip_addr IP_$iface`"; |
| |
for redirect in $REDIRECT_UDP; do |
| |
eval `echo $redirect | \ |
| |
awk -v FS=: ' (NF == 2) { remote_ip = "0.0.0.0/0"; from_port = $1; to_port = $2; } \ |
| |
(NF == 3) { remote_ip = $1; from_port = $2; to_port = $3; } \ |
| |
END { printf "remote_ip=%s; from_port=%s; to_port=%s;", remote_ip, from_port, to_port; }'` |
| |
echo -en " $remote_ip:$from_port->$to_port" |
| |
$IPTABLES -t nat -A PREROUTING -p UDP -i $iface -s $remote_ip -d $ip --dport $from_port -j REDIRECT --to-port $to_port |
| |
done |
| |
echo " done." |
| |
fi |
| |
|
| if [ ! -z "$ACCEPT_INPUT_TCP" ]; then |
if [ ! -z "$ACCEPT_INPUT_TCP" ]; then |
| echo -en "$iface: Accepting INPUT TCP connections on ports:" |
echo -en "$iface: Accepting INPUT TCP connections on ports:" |
| for port in $ACCEPT_INPUT_TCP; do |
for port in $ACCEPT_INPUT_TCP; do |