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