实验目的:三台虚拟机,win7客户机作为内部局域网的终端设备;中间的Linux-2作为内部局域网的网关以及连接外网的设备;Linux-1作为外网的web服务器设备。最后在Linux-2或者Linux-1上面做iptables防火墙条目来限制禁止win7客户端的访问。

IPtables的基本操作_IPtables

首先给外网服务器Linux-1配置作为外网的IP地址,别忘了网关地址,还有子网掩码不能错。IPtables的基本操作_web服务器_02

使用命令ifconfig查看网卡配置,然后启用httpd网站服务。

IPtables的基本操作_web服务器_03

在这里简单介绍一下IPtables防火墙,它由四张表格组成其中主要的控制表格有nat表格和filter表格,还有SNAT(源)和DNAT(目标)网络地址转换条目。

在表格的下一级是规则链在natfilter中包含的规则链有,INPUT进站规则链;OUTPUT出站规则链;FORWARD转发规则链;PREROUTING路由转发前规则链;POSTROUTING路由 转发后规则链。

在上述的五种规则链中添加相应的规则条目,相当于ACL语句。

使用iptables -L不加参数,默认查本机的filter表格内容,然后加-t选项可以查看nat表格的内容。

IPtables的基本操作_web服务器_04

使用iptables -F不加参数,默认清空iptablesfilter表格内容。

使用命令netstat -ntap查看本机所有开启的TCP协议,“-nuap”选项是查看本机所有UDP协议的开启状态。

IPtables的基本操作_IPtables_05

Linux-2查看一下网卡参数,作为两边的网关需要先添加一块网卡。

IPtables的基本操作_web服务器_06

右击虚拟机的名称选择下面的设置。

IPtables的基本操作_web服务器_07

在打开的新页面中点击“添加”,选择“网络适配器”最后添加就行。

IPtables的基本操作_IPtables_08

可以看到此时有了两块网卡,点击确定之后PC机需要加载一下

IPtables的基本操作_IPtables_09

使用命令ifconfig查看网卡参数,现在已经有三块网卡,在这里首先复制一下eth1新添网卡的MAC地址。

使用cd切换到eth0网卡所在的位置,ls查看此时的目录下是没有eth1网卡的。

IPtables的基本操作_web服务器_10

在本目录下,使用cp复制命令把eth0复制一份出来为eth1然后编辑网卡eth1IP地址等属性。

IPtables的基本操作_IPtables_11

需要修改的有网卡名称、HWADDRMAC地址(也就是刚才复制的)、IP地址和子网掩码。

IPtables的基本操作_Linux系统_12

现在来配置eth0作为外网网关的IP地址。

IPtables的基本操作_web服务器_13

这里只是修改一下作为外网的IP地址就行了,切换到末行模式:wq保存并退出。

IPtables的基本操作_web服务器_14

网卡配置完最好是重启或者重新加载一下网卡配置,双网卡配置完成。

IPtables的基本操作_IPtables_15

此时来看一下win7客户机的IP地址配置情况,注意网关地址要指向中间Linux-2的内网网卡地址。

IPtables的基本操作_Linux系统_16

网卡配置完成之后使用Linux-2测试一下跟另外两台虚拟机是否互联互通,这是最基本的前提条件。

IPtables的基本操作_web服务器_17

此时来查看Linux-2虚拟机的iptables防火墙内容,并清空。

IPtables的基本操作_Linux系统_18

首先证明一下在现在这种状态下使用win7客户机是不能访问Linux-1搭建的web服务的。

IPtables的基本操作_web服务器_19

然后在中间的Linux-2的虚拟机上开启路由功能。

方法一、使用vi编辑器进行修改。

IPtables的基本操作_web服务器_20

进入vi编辑器之后只需要修改nat.ipv4.ip_forward=1这条就行。

IPtables的基本操作_添加双网卡_21

方法二、临时性的开启路由功能,就是使用echo命令指定文件内容。

IPtables的基本操作_Linux系统_22

下面再次使用win7客户端访问Linux-1搭建的web网站,此时应该是可以正常访问的了。

IPtables的基本操作_web服务器_23

前面已经把Linux-1Linux-2上面的iptables表格规则清空,此时进行创建iptables规则。

Iptables是命令关键字。选项“-I”是在所有条目的最上面添加。选项“-A”是在规则条目的最末行添加规则语句。选项“-P”默认规则,当所有都匹配不到,默认的操作。接着在选项后面输入要添加的规则链(往哪个规则链里面添加)注意这里需要使用大写。

后面选项“-s”表示源地址,后面可以跟一个地址也可以是一个网段。选项“-j”后面跟执行的操作,注意后面是大写DROP表示丢弃;REJECT表示拒绝;ACCEPT表示允许。

规则条目创建完成之后,使用iptables -L进行查看,此时的INPUT规则链中多了一条规则条目。

IPtables的基本操作_IPtables_24

现在使用win7客户机进行第三次访问,表示访问失败。

IPtables的基本操作_web服务器_25

清除iptables防火墙的表格内容。

IPtables的基本操作_添加双网卡_26

进行第四次的友好访问,表示又能够正常访问了。

IPtables的基本操作_web服务器_27

刚才是在Linux-1上面添加的iptables规则条目。现在在Linux-2上面也做一下相应的实验。如图的命令解读为:

使用iptables命令创建防火墙规则条目,在filter表格的FORWARD规则链的最末行添加,源地址为192.168.100.120PC机,-j拒绝通过。

IPtables的基本操作_Linux系统_28

再次使用win7客户机进行访问Linux-1搭建的web网站,访问失败。

IPtables的基本操作_IPtables_29

经验总结:iptables防火墙是有特性的,它跟ACL访问控制列表非常相似,也是从上到下一条一条进行匹配的,如果全部匹配不到就执行-P的默认设置。另外需要注意网关地址不能指错,各个网卡的IP地址配置。总而言之细心总是没错。谢谢!!!