Skip to content

防火墙配置

iptables

iptables 的架构由四个内建的表(tables)和五个链(chains)组成,用于不同的过滤和处理功能。

四个内建表
  • filter: 负责过滤数据包,确定是否放行该数据包(过滤)。包含INPUT、FORWARD、OUTPUT三个链。
  • nat: 负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含 PREROUTING、POSTROUTING、OUTPUT三个链。
  • mangle: 修改数据包内容,用来做流量整形的,给数据包设置标记。包含INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING五个链。
  • rwa: 确定是否对该数据包进行状态跟踪。包含OUTPUT、PREROUTING两个链。
五个链
  • INPUT:处理入站数据包,匹配目标IP为本机的数据包。
  • OUTPUT:处理出站数据包,一般不在此链上做配置。
  • FORWARD:处理转发数据包,匹配流经本机的数据包。
  • PREROUTING:在进行路由选择前处理数据包,用来做DNAT。
  • POSTROUTING:在进行路由选择后处理数据包,用来做SNAT。

修改配置文件

shell
vi /etc/sysconfig/iptables

放开端口

放开 80 端口:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

  • -A INPUT: 追加一个 INPUT 规则
  • -m state --state NEW: 使用状态模块检测状态为 NEW(表示这是一个新的连接请求,即这个数据包是某个连接的第一个数据包)的数据包
  • -m tcp: 使用 TCP 模块
  • -p tcp: 只过滤 TCP 包
  • --dport 8: 指定目的端口为 80
  • -j ACCEPT: 表示匹配的数据包允许访问(即接受这些数据包)

重启 iptables 服务

shell
service iptables restart

通过 firewall-cmd 配置

CentOS 7 支持的特性

TODO