预备知识
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、 打开主机。如图:
3、 使用命令cat /proc/net/ip_tables_names查看iptables的四张表。如图:
4、 使用命令iptables -t nat/raw/mangle/filter –L,查看iptables表中的规则。如图:
5、 查看某条链的rule。例如,查看nat表PREROUTING链中的规则。如图:
6、使用命令cat /proc/net/ip_tables_targets来查看iptables中共有哪些target。如图:
7、使用iptables –t raw/mangle/nat/filter –F,清空链中的rule。 清空所选链。这等于把所有规则一个
个的删除。 如图;
8、使用命令iptables –t /raw/mangle/nat/filter –X , 这条命令将试着删除每个非内建的链。
9、使用命令iptables –t /raw/mangle/nat/filter –L.查看链中的rule。如图:
10、使用命令iptables --help查看iptables的帮助文件。如图:
11、以下为iptables 的command部分帮助文档。如图:
12、option参数,帮助文档。
(以上命令和参数不详叙述,感兴趣的大家自己学习)