分类: LINUX
2007-04-11 13:31:51
Iptables试验二
作者:jake
电子邮箱:love2jake@21cn.com msn:
QQ号码:51548022
主页地址:
建立日期:2006年04月30日,最后修改日期:2006年08月31日
版权说明:本文章的内容归作者版权所有,同时也接受大家转贴,但要保留作者的完整信息和出处,多谢!
1、 需求:
1. 配置iptables,使之成为网关,可以通过NAT代理局域网客户机上internet;
2. 允许局域网客户机192.168.1.2-100的地址可以上网
2、 基本的拓扑图
3、 系统及其软件环境:
1.操作系统: Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
2.所需rpm软件包:
iptables-
iptables-ipv6-
iptables-devel-
4、 所需配置文件或者命令:
/sbin/iptables
5、 试验步骤:
说明:以下所有操作均服务器(192.168.1.1)上操作
1. 使用vi 编写如下脚本
[root@gdlc ~]# vi fw.sh
#!/bin/bash
# Set up a default search path.
PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
export PATH
# Source function library.
. /etc/rc.d/init.d/functions
IPT="/sbin/iptables"
localnet="192.168.1.0/24"
ctlip="192.168.1."
startip=2
endip=100
Upnic="eth1"
Downnic="eth0"
nat_func () {
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -F -t filter
$IPT -F -t nat
$IPT -F -t mangle
###IP MASQUERADE #############
$IPT -A FORWARD -i $Upnic -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -t nat -A POSTROUTING -o $Upnic -s $localnet -j MASQUERADE
###FORWARD CONTRL ############
declare n1=$startip
declare n2=$endip
for ((i=n1;i<=n2;i=i+1 )) ;do $IPT -A FORWARD -s $ctlip$i -j ACCEPT ;done
$IPT -A FORWARD -j DROP
}
stop (){
echo 0 > /proc/sys/net/ipv4/ip_forward
$IPT -F -t filter
$IPT -F -t nat
$IPT -F -t mangle
}
status (){
$IPT -n -L
}
# See how we were called.
case "$1" in
start)
nat_func && echo "IPNAT start : `echo_success`"
;;
stop)
stop && echo "IPNAT stop : `echo_success`"
;;
status)
status
;;
*)
echo $"Usage: $0 {start|stop|status}"
exit 1
;;
esac
2. 运行脚本
[root@gdlc ~]# sh fw.sh start
IPNAT start : [ OK ]
[root@gdlc ~]# sh fw.sh stop
IPNAT stop : [ OK ]