如何优化防火墙,核心要点:规则链的遍历从上到下;每次一条规则,直接数据包匹配符合的规则。
优化#
规则组织:
首先,规则链的遍历从上到下;每次一条规则,直接数据包匹配符合的规则。并且规则链上的规则必须按照等级的方式进行排列【raw,mangle,nat,filter】,其中raw链的规则等级最高,filter链的规则等级最低。从最普通的规则到最特殊的规则。
优化收益: 基于可用的网络带宽,当站点的带宽较低时,优化不可能有太大的收益。
状态模块:
ESTABLISHED、RELATED 本质上将正在进行的交换规则移动到规则链的前端;如正在进行中的、经过验证的、已被接受的交换绕过过滤匹配是其一。
其二提供防火墙过滤,连接追踪把数据包与正在进行的交换联系起来。对于无连接、无状态的UDP作用更大。
| 类型 | 描述 |
|---|---|
| TCP: 绕过欺骗 | |
| UDP: 传入数据包规则放在欺骗之后 | |
| TCP&UDP | UPD服务通常是简单的、单数据包、查询,让一个或少量的UPD数据包通过前面的用于传输的TCP连接规则并不会明显降低UDP的查询和响应。 |
| ICMP | ICMP放到规则链后端,ICMP通常发送频率较低。 |
规则组织#
- 尽量在早期为常用的服务设置防火墙规则
- 使用网络数据流决定在哪里为多个网络接口设置规则
- 主机有多个接口时,一个给定接口规则的放置应该考虑哪个接口将要承受最大的流量。(对于单口主机则不需要)
- 自定义规则链
- 自定义的规则链当作规则目标,目标可以向外扩展或跳转到用户自定义的规则链。同时用户自定义规则链被遍历完之后,控制会返回到调用的规则链,从规则链的下一条规则向后继续匹配。【除非用户的自定义规则链匹配成功并且对数据包采取动作。】

