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

 

Logo

「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地的深度研讨。 加入智能机器人开发者社区iRobot Developer,与全球极客并肩突破技术边界,定义机器人开发的未来范式!

更多推荐