原文:http://www.ourlinux.net/wz/Article_show.php?id=1037
花了一个下午,从开始装系统开始
我的系统:
网关服务器:RedHat 8.0
web/ftp服务器:win2k,其中web用iis,ftp用serv-U
系统安装过程就不介绍了,简单的写一下我所用到的脚本程序。
为了能通俗点,我把NAT和端口映射分开了写单独的shell,不过后面再加上一个2个合并的脚本,仅供参考,当然也欢迎各位大虾给我意见和建议,在此先3Q!同时感谢CU的帮助。
下面是我的nat.sh
#!/bin/sh
# Name: nat.sh
# Author: Bixuan
# Date: 2003/04/04
echo "Your user the iptables firewall.";
#eth1_IP="192.168.1.1" #内网IP地址
SRC="192.168.1.0/24" # 内网地址段
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/iptables -F INPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F POSTROUTING -t nat
/sbin/iptables -P FORWARD DROP
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s $SRC -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -s $SRC -j ACCEPT
echo "Nat is strating ...... [ OK ]"
;;
stop)
echo 0 > /proc/sys/net/ipv4/ip_forward
;;
*)
echo $"Usage: $0 {start|stop}";
esac
也可以看本站的文章:http://www.ourlinux.net/wz/Article_show.php?id=919 这是一份去年的文档。
端口映射的脚本DNAT.sh:
#!/bin/sh
#Name: DNAT.sh
IP="192.168.2.165" # 外网IP
SIP="192.168.1.2" #内网IP
GATE_WAY="192.168.1.1" #内网网关
#iptables -t nat -A PREROUTING -d ..IP -p tcp --dport 80 -j DNAT --to ..IP
#iptables -t nat -A POSTROUTING -d ..IP -p tcp --dport 80 -j SNAT --to ......
#iptables -A FORWARD -o eth1 -d ..IP -j ACCEPT
#iptables -A FORWARD -i eth1 -s..IP -m state --state ESTABLISHED -j ACCEPT
####################### pub 部分 ##############################
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
iptables -F
iptables -t nat -F
iptables -F INPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -P FORWARD DROP
############## 端口映射 Start ###########################
#Web
iptables -F
iptables -t nat -F
iptables -t nat -A PREROUTING -d $IP -p tcp --dport 80 -j DNAT --to $SIP:80
iptables -t nat -A POSTROUTING -d $SIP -p tcp --dport 80 -j SNAT --to $GATE_WAY
#iptables -A FORWARD -d $SIP -j ACCEPT
#iptables -A FORWARD -s $SIP -m state --state ESTABLISHED -j ACCEPT
#FTP
iptables -t nat -A PREROUTING -d $IP -p tcp --dport 21 -j DNAT --to $SIP:21
iptables -t nat -A POSTROUTING -d $SIP -p tcp --dport 21 -j SNAT --to $GATE_WAY
iptables -A FORWARD -d $SIP -j ACCEPT
iptables -A FORWARD -s $SIP -m state --state ESTABLISHED -j ACCEPT
############## 端口映射 End ###########################
为了方便,下面是2大功能合并的脚本NAT_DNAT.sh:
#!/bin/sh
#Name: NAT_DNAT.sh
IP="192.168.2.165"
SIP="192.168.1.2"
GATE_WAY="192.168.1.1"
SRC_NAT="192.168.1.0/24"
#
####################### pub 部分 ##############################
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
iptables -F
iptables -t nat -F
iptables -F INPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -P FORWARD DROP
####################### NAT 部分 ##############################
iptables -t nat -A POSTROUTING -o eth0 -s $SRC_NAT -j MASQUERADE
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s $SRC_NAT -j ACCEPT
################################## 端口映射 Start ####################################
#iptables -t nat -A PREROUTING -d 外部IP -p tcp --dport 80 -j DNAT --to 内部IP
#iptables -t nat -A POSTROUTING -d 内部IP -p tcp --dport 80 -j SNAT --to 内部网关地址
#iptables -A FORWARD -o eth1 -d 内部IP -j ACCEPT
#iptables -A FORWARD -i eth1 -s内部IP -m state --state ESTABLISHED -j ACCEPT
#Web
#iptables -F
#iptables -t nat -F
iptables -t nat -A PREROUTING -d $IP -p tcp --dport 80 -j DNAT --to $SIP:80
iptables -t nat -A POSTROUTING -d $SIP -p tcp --dport 80 -j SNAT --to $GATE_WAY
#iptables -A FORWARD -d $SIP -j ACCEPT
#iptables -A FORWARD -s $SIP -m state --state ESTABLISHED -j ACCEPT
#FTP
iptables -t nat -A PREROUTING -d $IP -p tcp --dport 21 -j DNAT --to $SIP:21
iptables -t nat -A POSTROUTING -d $SIP -p tcp --dport 21 -j SNAT --to $GATE_WAY
# Forward rules
iptables -A FORWARD -d $SIP -j ACCEPT
iptables -A FORWARD -s $SIP -m state --state ESTABLISHED -j ACCEPT
################################## 端口映射 End ###########################################
脚本写的很粗糙,希望其他朋友能修改成简单的脚本,最好是可以定制的,当然有时候自己也修改一下。以上是自己的一点小“聪明”欢迎指正批评,谢谢!