(4)Firewall实战
1. 防火墙黑白名单定义
当链的默认策略为ACCEPT时,链中的规则对应的动作应该为DROP或者REJECT,表示只有匹配到规则的报文才会被拒绝,没有被规则匹配到的报文都会被默认接受,这就是”黑名单”机制。
同理,当链的默认策略为DROP时,链中的规则对应的动作应该为ACCEPT,表示只有匹配到规则的报文才会被放行,没有被规则匹配到的报文都会被默认拒绝,这就是”白名单”机制。
2.有问题的白名单机制
运行ssh远程连接和web服务连接,其他全部拒绝
1 | iptables -I INPUT -p tcp --dport 22 -j ACCEPT |
但是这样配置会有问题,如果使用iptables -F
清空了所有规则,这样就会导致所有请求都会被DROP,只能通过刷机才能连上车机了。
3.正确的白名单机制
1 | iptables -I INPUT -p tcp --dport 22 -j ACCEPT |
既将INPUT链的默认策略设置为了ACCEPT,同时又使用了白名单机制,因为如果报文符合放行条件,则会被前面的放行规则匹配到,如果报文不符合放行条件,则会被最后一条拒绝规则匹配到,此刻,即使我们误操作,执行了”iptables -F”操作,也能保证管理员能够远程到主机上进行维护,因为默认策略仍然是ACCEPT。
4.自定义链
-N vendor_fw_INPUT
表示创建一个自定义链,自定义链的名称为”vendor_fw_INPUT”
1 | 新建链 |
此时 vendor_fw_INPUT
就会在INPUT链上有一次引用。
如果我们不喜欢vendor_fw_INPUT这个链的名字,需要改成gxatek_fw_INPUT。
1 | iptables -E vendor_fw_INPUT gxatek_fw_INPUT |
5.删除自定义链
使用”-X”选项可以删除自定义链,但是删除自定义链时,需要满足两个条件:
1、自定义链没有被任何默认链引用,即自定义链的引用计数为0。
2、自定义链中没有任何规则,即自定义链为空。
1 | 删除gxatek_fw_INPUT链 |
6. 设置不同协议走不同网卡
udp协议走udp_0网口,icmp协议走icmp_0网口。
1 | mangle表set-mark |
7.防火墙架构
此文章版权归Jack Ou所有,如有转载,请註明来自原作者