Linux防火墙iptables
netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样。iptables是一个配置防火墙规则的工具,netfilter才是真正的核心,是Linux内核的安全模块。
四表五链
- 防火墙四表
- filter表:负责过滤数据包功能,内核模块:iptables_filter
- Nat表:网络地址转换功能,内核模块:iptable_nat
- Mangle表:拆解修改数据包的服务类型、TTL、并且可以配置路由实现QOS等,重新封装数据包,内核模块:iptable_mangle
- Raw表:决定数据包是否被状态跟踪机制处理,内核模块:iptable_raw
- 核心预定义的五链
- INPUT,发到本机的数据包应用此链中的策略列表
- OUTPUT,本机发出去的数据包应用此链中的策略列表
- FORWARD,通过本机转发的数据包应用此链中的策略列表
- PREROUTING,进入网卡后,被路由前的数据包应用此链中的策略列表,所有数据包进来的时候都先由此链处理
- POSTROUTING,被路由后,离开网卡前的数据包应用此链中的策略列表,所有数据包出去的时候都最后由此链处理
- 规则表处理顺序
优先级次序由高到低:Raw —> mangle —> nat —> filter
- 常用场景
- 发给本机某进程的报文: PREROUTING –> INPUT
- 由本机转发的报文:PREROUTING –> FORWARD –> POSTROUTING
- 由本机某进程发出去的报文:OUTPUT –> POSTROUTING
规则Rules
链内的策略规则是由上到下的匹配原则,所以要注意规则添加时最前面的优先级最高。
示例Examples
- 阻止往外网发包:
# iptables -t filter -I FORWARD -j DROP # iptables -t filter -I OUTPUT -o wan -j DROP (记得指定wan网口,默认是使能于全部网口,会导致LAN断开的) # iptables --flush (有的系统不能及时刷新时使用)
参考
iptables详解https://www.cnblogs.com/metoy/p/4320813.html
iptables详解1http://www.zsythink.net/archives/1199/