Chinaunix首页 | 论坛 | 博客
  • 博客访问: 694200
  • 博文数量: 245
  • 博客积分: 10037
  • 博客等级: 上将
  • 技术积分: 2512
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-16 17:16
文章分类

全部博文(245)

文章存档

2008年(7)

2007年(238)

我的朋友

分类: 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-1.2.11-3.1.RHEL4

iptables-ipv6-1.2.11-3.1.RHEL4

iptables-devel-1.2.11-3.1.RHEL4

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  ]

阅读(1377) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~