Мой вариант скрипта для разрешения прохода мимо маршрутизатора нужных хостов на удалёную машину
#!/bin/bash
#
# filename: firewall-dynhosts.sh
#
PATH="/usr/local/sbin/dynhosts"
NOW=$(/bin/date)
CHAIN="dynamichosts" # change this to whatever chain you want.
IPTABLES="/sbin/iptables"
# create the chain in iptables.
$IPTABLES -N $CHAIN -t nat
FILES='/bin/ls --format=single-column $PATH/zones/'
echo $FILES
for file in $FILES
do
HOSTFILE="$PATH/zones/$file"
echo $HOSTFILE
# lookup host name from dns tables
IP='/usr/bin/dig +short $file | /usr/bin/tail -n 1'
if [ "${#IP}" = "0" ]; then
echo "$NOW Couldn't lookup hostname for $file, failed." >> /$PATH/logs/dynhosts.log
continue
fi
OLDIP=""
if [ -a $HOSTFILE ]; then
OLDIP='cat $HOSTFILE'
echo "CAT returned: $?"
fi
# save off new ip.
echo $IP>$HOSTFILE
echo "Updating $file in iptables."
echo "Inserting new rule ($IP)"
$IPTABLES -I $CHAIN -t nat -p tcp -s $IP --dport 6666 -j DNAT --to-destination 192.168.1.1:3389
done
#$IPTABLES -F $CHAIN
NUMFILES='/bin/ls $PATH/zones -1A|/usr/bin/wc -l'
for file in $FILES
do
I=1
let "SUM=$I+$NUMFILES"
echo "Deleting $SUM rule from $CHAIN"
'$IPTABLES -t nat -D $CHAIN $SUM '
let "I=$I+1"
done
exit
|