预备知识


1、iptables 是与 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服



务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。



2、netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,



这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组



件 netfilter 和 iptables 组成。



3、netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。




4、iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中规则变得容易。




5、iptables包含4个表,5个链。其中表是按照对数据包的操作区分的,链是按照不同的Hook点来区分的,表和链实际上是netfilter的两个维度。




4个表:filter,nat,mangle,raw,默认表是filter(没有指定表的时候就是filter表)。表的处



理优先级:raw>mangle>nat>filter。



filter:一般的过滤功能



nat:用于nat功能(端口映射,地址映射等)



mangle:用于对特定数据包的修改



raw:有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能




5、5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。



PREROUTING:数据包进入路由表之前



INPUT:通过路由表后目的地为本机



FORWARDING:通过路由表后,目的地不为本机



OUTPUT:由本机产生,向外转发



POSTROUTIONG:发送到网卡接口之前。





实验

1、此实验用utm,可能需要装Java


2、 打开主机。如图:




iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_linux


3、 使用命令cat /proc/net/ip_tables_names查看iptables的四张表。如图:


iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_包过滤_02


4、 使用命令iptables -t nat/raw/mangle/filter –L,查看iptables表中的规则。如图:


iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_服务器_03


iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_网络_04

iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_linux_05

iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_IP_06


5、 查看某条链的rule。例如,查看nat表PREROUTING链中的规则。如图:


iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_服务器_07


  


6、使用命令cat /proc/net/ip_tables_targets来查看iptables中共有哪些target。如图:


iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_网络_08


7、使用iptables –t raw/mangle/nat/filter –F,清空链中的rule。 清空所选链。这等于把所有规则一个


个的删除。 如图;


iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_网络_09


8、使用命令iptables –t /raw/mangle/nat/filter –X , 这条命令将试着删除每个非内建的链。


iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_linux_10


9、使用命令iptables –t /raw/mangle/nat/filter –L.查看链中的rule。如图:


iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_linux_11


10、使用命令iptables --help查看iptables的帮助文件。如图:


iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_包过滤_12


11、以下为iptables 的command部分帮助文档。如图:


iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_包过滤_13


12、option参数,帮助文档。


iptables 过滤外来的ICMP 会拦截正常的流量吗 iptables内容过滤_包过滤_14


(以上命令和参数不详叙述,感兴趣的大家自己学习)