防火墙firewalld使用小结

服务器管理员们有件事肯定最头疼,那就是有些黑客一天到晚的在那里进行密码爆破,一天不登录,就能有数十万次的登录尝试。运气不好的话,上次成功登录的可能已经就不是你了。

当然,这种情况自古有之。为了对抗这种行为,各个操作系统厂商专门为系统开发了防火墙。下面记录一下我在防火墙(firewalld)操作中经常使用到的命令。

1、开启防火墙

如果ssh端口是默认的#22端口,启动防火墙后不会有任何影响,因为ssh使用的#22端口已经被加入到了默认规则“public”的例外中。

2、查看防火墙状态

3、重新加载配置文件

4、列出默认配置中已经开放的端口和服务

5、在默认规则中添加/移除端口例外
在默认规则中添加端口例外有两种形式,一种是直接开放端口+协议,还有一种是开放相关“服务”。“服务”中包含了某种功能对应的端口和协议,直接开放协议即可将对应的端口和协议一次性添加。

命令中的,“–permanent”代表永久保存,但不能立即生效,需要重新加载配置文件。“80/tcp”和“http”可以根据实际情况进行修改,移除端口和服务可以将命令中的“add”修改为“remove”。

如果默认存在的服务不能满足需要,可以自行添加。

6、富规则
“富规则”直译自“rich rules”,代表通过这些命令,可以实现更多的功能,比如,允许某个范围的IP对某个端口/服务的访问

防火墙默认规则是将所有访问挡在墙外,通过上述命令,192.168.0.0/24范围内的所有IP,从192.168.0.1到192.168.0.254已经能够正常访问服务器#22端口上的TCP(ssh)服务了。不要忘记,“–permanent”代表保存,但是并未生效,需要重新加载配置文件。

7、可信域
随着服务器功能越来越多,需要添加的富规则也就越多,不方便管理。这时,我们可以将管理员常用的IP加入“信任”区域,将管理员的访问自动放行,对公共区域仅开放必须的端口,比如http等。

firewalld中一共存在“block”、“dmz”、“drop”、“external”、“home”,“internal”、“public”、“trusted”、“work”共9个信任区域,每
个区域的默认设置是不相同的。1-6点中的所有设置被默认保存在默认区域“public”中。

这样,192.168.0.0/24范围内的地址再次访问服务器时就不会受到防火墙阻挡了,同时也精简了防火墙规则。