6.11 工作中的Linux防火墙总结

以下是笔者在工作中使用iptables后得到的总结。

1)iptables防火墙并不能阻止DDoS攻击,建议在项目实施中采购硬件防火墙,并将其置于整个系统之前,用于防止DDoS攻击和端口映射;如果对安全有特殊要求,可再加上应用层级的防火墙,比如天泰应用防火墙,其功能会很强大。应用层级的防火墙能够基于对数据报文头部和载荷的完整检测,对Web应用客户端输入进行验证,从而对各类已知的及新兴的Web应用威胁提供全方位的防护,如SQL注入、跨站脚本、蠕虫、黑客扫描和攻击等。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

2)如果线上的机器采用了集群架构方案的话,建议关闭iptables防火墙,这样的目的是可以更好地提高后端服务器的网络性能,方便数据流在整个业务系统内部进行流通,安全方面的工作由硬件防火墙来承担。

3)线上的机器(包括AWS EC2云主机)一般都有公网和内网两个IP地址,除了Web对外的业务(即22、80和443)对公网开放以外,其他的尽量不要对公网开放,业务尽量走内网地址,比如MySQL或Redis业务等。

4)iptables的L是命令,而-v和-n只是选项,它们不能进行组合,如-Lvn;如果要列出防火墙的详细规则,可采用iptables-nv-L或iptables-n-v-L。

5)如果是使用远程来调试iptables防火墙,最好设置Crontab作业定时停止防火墙,以防止自己被锁定了,5分钟停止一次iptables即可,等整个脚本完全稳定后再关闭此Crontab作业。

6)如果使用默认禁止一切策略,在写防火墙策略时应该开放回环接口lo(因为禁止一切也就包括了lo回环口),回环接口lo在Linux系统中被用来作为提供本地、基于网络服务的专用网络接口,不用通过网络接口驱动器来发送本地数据流,而是采用操作系统通过回环接口来发送,这大大地提高了性能;而关闭lo也会带来一些莫名其妙的问题,所以iptables脚本建议开启lo回环接口。

7)如果是电信、双线或BGP机房托管的服务器,在没有配置前端硬件防火墙的情况下,建议开启Linux机器的iptables防火墙(有集群环境的话视具体情况而定)。

8)如果经费足够的话,最前端的硬件防火墙最好也做双机冗余,防止单防火墙出问题而导致整个网站崩溃,防火墙跟人一样,总有顶不住压力的时候,如果有双机的话,网站出问题的概率会小很多。

9)工作中可以利用iptables加上TCP_Wrappers双结合的方法来对主机进行防护,如果说iptables是基于IP来过滤的话,那么TCP_Wrappers就是一种应用级的防火墙,两者结合起来Linux系统的安全性会得到进一步的提高。

上面的iptables相关环节,主要向大家介绍了工作中iptables经常会涉及的部分,而iptables的mangle链和iptables的模块开发并没有涉及,这个在平时的工作中用得很少,有兴趣的朋友可以自行研究。如果环境允许,可能会多熟悉下硬件防火墙的性能和特点,这些在我们的工作中很有可能会涉及。