1、环境准备

    三台虚拟机做主机

    第一台:Internet 模拟外网客户端,网络连接方式vmnet7,IP:1.2.3.5/24

    第二台:Intranet 模拟内网客户端群和服务器群,模拟提供web服务和ftp服务,网络连接方式vmnet6。web IP:192.168.10.1 ftp IP:192.168.10.2

    第三台:iptables 模拟转发路由器 eth1 连接外网:vmnet7连接方式,IP:1.2.3.4/24。eth2 连接内网:vmnet6 IP:192.168.10.254

    

    PS:在内网主机中只使用了一块网卡eth2,指定IP地址时操作如下:

        ifconfig eth2 192.168.10.1

        ifconfig eth2:1 192.168.10.2


    其次为外网主机和内网主机分别指定网关:

    Internet: #route add default gw 1.2.3.5/24

    Intranet: #route add default gw 192.168.10.254


    指定好网关后需要打开iptables主机的转发功能

    # echo 1 > /proc/sys/net/ipv4/ip_forward


    在实验开始前为Intranet安装web和ftp服务,可以先将连接方式改成桥接方式,使用yum源安装

    # yum -y install httpd,vsftp

    修改httpd的ServerName

    # vim /etc/httpd/conf/httpd.conf 

    将ServerName 改成192.168.10.1:80


2、开始实验

    首先在iptables主机上添加目标地址转换规则

    # iptables -t nat -A PREROUTING -d 1.2.3.4 -p tcp --dport 80 -j LOG --log-prefix "iptables(web) --"


    # 对ip为192.168.10.1 端口为80的访问转换成1.2.3.4

    # iptables -t nat -A PREROUTING -d 1.2.3.4 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.1

    # 对ftp服务进行目标地址转换,被动连接只能对状态进行检测,所以规则如下

    # iptables -t nat PREROUTING -d 1.2.3.4 -p tcp -m state --state RELATED,NEW -j DNAT --to-destination 192.168.10.2


    # iptables -A FORWARD -m iprange --dst-range 192.168.10.1-192.168.10.2 -p tcp -m multiport --destination-ports 22,80 -m state --state new -j ACCEPT

    # 为ssh添加规则

    # iptables -A FORWARD -d 192.168.10.2 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT