#!/bin/bash
#define all variance or parameter
WAH_INT="eth0"
WAH_INT_IP="222.222.101.1"
LAN_INT="eth1"
LAN_INT_IP="192.168.222.101"
ALLOW_ACCEPT_CLIENT="192.168.222.1 192.168.222.5 192.168.222.7 192.168.222.20 192.168.222.80"
WAH_WIN2003_SRW="222.222.101.2"
PORT="20,21,25,53,80,110,143,554,1755,7070"
IPT="/sbin/iptables"
##############################################################################################
start(){
echo ""
echo -e " \033[1;032n Flush all chains....... [ok] \033[n "
# load modules if necessary
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
#flush all rules at first
$IPT -t filter -F
$IPT -t nat -F
$IPT -t mangle -F
#default policy is drop
$IPT -t filter -P INPUT DROP
$IPT -t filter -P OUTPUT DROP
$IPT -t filter -P FORWARD DROP
#open ssh service
$IPT -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
$IPT -t filetr -A OUTPUT -p tcp --dport 22 -j ACCEPT
#SNAT
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -s 192.168.222.0/24 -o $WAH_INT -j SNAT --to-source $WAH_INT_IP
################################# accept erp accept #########################################
if [ "$ALLOW_ACCEPT_CLIENT" != "" ]; then
for LAN in ${ALLOW_ACCEPT_CLIENT}
do
$IPT -t filter -A FORWARD -p tcp -m multiport -s ${LAN} -o$WAN_INT --dport $PORT -j ACCEPT
$IPT -t filter -A FORWARD -p ucp -m multiport -s ${LAN} -o$WAN_INT --dport $PORT -j ACCEPT
$IPT -t filter -A FORWARD -p tcp -m multiport -s $WAN_INT --sport $PORT -j ACCEPT
$IPT -t filter -A FORWARD -p ucp -m multiport -s $WAN_INT --sport $PORT -j ACCEPT
echo ""
echo ${LAN} Access to Extermel............ACCEPT access win2003 server [ok]
done
fi
}
#############################################################################################
stop(){
####################### Flush everything
$IPT -F
$IPT -X
$IPT -Z
$IPT -F -t nat
$IPT -X -t nat
$IPT -Z -t nat
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
echo "######################################################################################"
echo "# #"
echo "# Stop firewall server Access rule Successfull ! #"
echo "# #"
echo "######################################################################################"
}
############################################################################################
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage:$0 {start|stop|restart|}"
exit 1
esac
exit $?