iptables基础
iptables全局图
表的作用
- filter表:负责过滤功能,防火墙;内核模块:iptables_filter
- nat表:network address translation,网络地址转换功能;内核模块:iptable_nat
- mangle表:拆解报文,做出修改,并重新封装 的功能;内核模块:iptable_mangle
- raw表:关闭nat表上启用的连接追踪机制;内核模块:iptable_raw
表链关系
- raw表中的规则可以被哪些链使用:PREROUTING,OUTPUT
- mangle表中的规则可以被哪些链使用:(所有链)PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
- nat表中的规则可以被哪些链使用:PREROUTING,OUTPUT,POSTROUTING(CentOS7中还有INPUT,CentOS6中没有)
- filter表中的规则可以被哪些链使用:INPUT,FORWARD,OUTPUT
- raw表的作用是关闭nat表上启用的连接追踪机制,所以在conntrack表前面。
- 优先级次序(由高而低):raw --> mangle --> nat --> filter
Targets
找到匹配的数据包之后怎么办,常见的有下面几种:
- ACCEPT: 同意数据包通过,继续执行后续的rule
- DROP:直接丢弃数据包,不给任何回应信息,这时候客户端会感觉自己的请求泥牛入海了,过了超时时间才会有反应。
- REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息。
- RETURN: 跳出当前chain,该chain里后续的rule不再执行
- SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题。
- MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的ip上。
- DNAT:目标地址转换。
- REDIRECT:在本机做端口映射。
- QUEUE: 将数据包放入用户空间的队列,供用户空间的程序处理
- LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,也就是说除了记录以外不对数据包做任何其他操作,仍然让下一条规则去匹配。
- 跳转到其它用户自定义的chain继续执行