课时12: 防火墙IPTABLES综合实验
12.1 实验要求
拓扑(文字版):
A(.1)–局域网(172.16.10.0/24)–(eth0:0接口:10.254)B(eth0接口:6.146)–互联网(192.168.6.0/24)–(6.128)C
要求:
1.在A上ping172.16.20.2通
2.在C上ssh root@172.16.20.1跳转到局域网中的A主机
提示:
-
所有的虚拟机使用NAT模式
-
A网关指向172.16.10.254
-
B作为网关,配置NAT策略
-
B可以使用网卡别名配置多个地址,ifconfig eth0:0 x.x.x.x natmask x.x.x.x
-
B是Centos 6.x系统
12.2 实验准备
- 准备3台虚拟机,一台内网客户机PC1,一台做NAT转发的虚拟机PC2(Centos6.9),一台外网的虚拟机PC3
- 拓扑如下:
12.3 PC1网络配置
- 配置网络
[root@localhost ~]vim /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static #手动配置
IPADDR=172.16.10.1 #内网ip
NETMASK=255.255.255.0 #掩码
GATEWAY=172.16.10.254 #默认网关
DNS=114.114.114.114
[root@localhost ~]service network restart #文件保存后 重启服务
由下图可知,PC1的网卡配置成功
[root@localhost ~]ifconfig
由下图可知:可以PC1可以在内网中ping通PC2
[root@localhost ~]ping 172.16.10.254 #ping PC2
12.4 PC2网卡和防火墙配置
- 配置网卡
[root@lin ~]# ifconfig eth0:0 172.16.10.254 netmask 255.255.255.0 up #网卡配置
[root@lin ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:DD:00:64
inet addr:192.168.6.146 Bcast:192.168.6.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fedd:64/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7701 errors:0 dropped:0 overruns:0 frame:0
TX packets:167 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:476055 (464.8 KiB) TX bytes:18437 (18.0 KiB)
#网卡已经启动使用
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:DD:00:64
inet addr:172.16.10.254 Bcast:172.16.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
- 配置防火墙
#清除防火墙规则
[root@lin ~]# iptables -F
#调整内核参数,开启ip路由转发功能
[root@lin ~]# echo 1 >/proc/sys/net/ipv4/ip_forward
[root@lin ~]# cat /proc/sys/net/ipv4/ip_forward
1
#nat设置
#在POSTROUTING链上:PC2对来自网卡接口eth0:0的ip地址进行nat转换,数据包源地址改为PC2的在网卡接口eth0的地址
[root@lin ~]# iptables -t nat -A POSTROUTING -s 172.16.10.0/24 -j SNAT --to-source 192.168.6.146
#在PREROUTING链上,对来自外网192.168.6.0/24的ip主机对PC2发起的ssh连接请求进行连接跳转,跳转到内网ip:172.16.10.1对应22号端口
[root@lin ~]# iptables -t nat -A PREROUTING -d 192.168.6.146 -s 192.168.6.0/24 -p tcp --dport 22 -j DNAT --to 172.16.10.1:22
#在FORWARD链上 ,允许目的地址为内网ip:172.16.10.1的tcp包通过
[root@lin ~]# iptables -A FORWARD -d 172.16.10.1 -p tcp --dport 22 -j ACCEPT
12.5 测试
1. ping
由下图可知:内网PC1ping通外网PC3
#在PC1:172.16.10.1测试
[root@localhost ~]ping 192.168.6.128
2. ssh
由下图可知:外网PC3 向PC2(192.168.6.146)发起ssh连接,连接成功后查看网卡接口地址,发现是PC3的ip地址(172.16.10.1),说明PC2顺利完成SSH跳转,登录到PC1。
#在PC3:192.168.6.128测试
[root@localhost ~]ssh root@192.168.6.146 #向PC2发起ssh连接请求
root@192.168.6.146's password: #此处输入的是PC1:172.16.10.1的root密码
[root@localhost ~]iconfig