iptables之四表五链

ps: iptables只是Linux防火墙的管理工具而已。真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构。

四表五链概念:

  • filter表——过滤数据包
  • Nat表——用于网络地址转换(IP、端口)
  • Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOS
  • Raw表——决定数据包是否被状态跟踪机制处理

 

  • INPUT链——进来的数据包应用此规则链中的策略
  • OUTPUT链——外出的数据包应用此规则链中的策略
  • FORWARD链——转发数据包时应用此规则链中的策略
  • PREROUTING链——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
  • POSTROUTING链——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

下图为精简后的数据流向:

 

iptables规则添加,示例:

# 允许访问22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -p tcp -s 10.159.1.0/24 --dport 22 -j ACCEPT

注:-s后可以跟IP段或指定IP地址

iptables -I INPUT -p tcp --dport 45000:45010 -j ACCEPT

iptables -I INPUT -p tcp -m state --state NEW -m tcp -s 192.168.11.0/24 -j ACCEPT允许该网段的所有端口

iptables -L INPUT -n --line-number  查看INPUT链规则,并显示行号。

iptables -D INPUT 1  删除INPUIT链第一行规则

#屏蔽单个IP的命令是 iptables -I INPUT -s 123.45.6.7 -j DROP

 

docker的iptables

删除docker的nat    iptables -t nat -D DOCKER ! -i docker0  -p tcp -m tcp --dport 33609 -j DNAT --to-destination 172.17.0.2:3306

iptables -t nat -A DOCKER ! -i docker0  -s 192.168.11.201  -p tcp -m tcp --dport 33609 -j DNAT --to-destination 172.17.0.2:3306

创建链 iptables -t nat -N DOCKER

删除链 iptables -t nat -X DOCKER

在链中加入规则iptables -t nat -A DOCKER -p tcp -m tcp --dport 1194 -j DNAT --to-destination 172.17.0.2:1194

删除nat表的DOCKER链的第一条规则 iptables -t nat -D DOCKER 1

 


版权声明:本文为Dwavelet原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。