最近看了下iptables 给自己总结一下
什么是iptables?
他是一种linux的访问控制机制,也就是大家所说的防火墙了。目前大部分的linux基本都是预装的。
iptables在的实现是通过和底层的netfilter内核模块的调用。iptables/netfilter就是一个工作于用户空间和防火墙的应用软件。
那他能做些什么?
netfilter 支持的常用过滤模块
源ip 目的ip 接口 端口 协议类型 连接状态(NEW,ESTABLISHED,RELATED INVALID) mac
netfilter能够通过对这写模块数据进行允许,修改,丢弃的操作。
先讲讲iptables中的四个table
raw:使iptables不去跟踪这个数据包
( PS状态机制时iptables中特殊的一部分,其实他是一种跟踪机制。。包是和被跟踪连接的四种不同状态有关的。它们是 NEW,ESTABLISHED,RELATED 和 INVALID。由conntrack这个模块负责工作的。)
mangle:修改数据包的TOS,TTL,MARK,从而进行一些高级的路由
filter:用来过滤数据包,我们可以在任何时候匹配包并过滤它们。几乎所有的target都能在这里使用。是比较常用的table之一
nat:修改数据包中的源ip地址或者目的ip地址。进行伪装
这次就说说filter和nat这两个tables,因为这两table个人认为比较常用,第二就是我这两个table...
大家也都看到了上面那一张图了。
挺恐怖的样子... 每个表中的每个链所负责的点也都是不一样的。有的控制的是远程-->本地,有的则是相反,下面这张图一上大家也就明白了
这图就可以明显的看出来每个表中的每个链所工作的点了
iptables就是通过每个表中的每一条链制定一系列规则来进行对数据包的修改和过滤
当收到数据包的时候,按照规则顺序!!!,一条一条进行配备以及对其相应的操作,没有匹配到的数据包,每一条链都有自己的默认的规则
再次强调 这个顺序很重要!!!
讲到这里基本的iptables机制也就是这样了