使用防火墙让你的 Linux 更加强大(3)

这样一来,任何你新加入的网络都会被指定使用 drop 区域,除非你手动将它制定为另一个没有这么严格的区域。

通过开放端口和服务实现自定义区域

Firewalld 的开发者们并不是想让他们设定的��域能够适应世界上所有不同的网络和所有级别的信任程度。你可以直接使用这些区域,也可以在它们基础上进行个性化配置。

你可以根据自己所需要进行的网络活动决定开放或关闭哪些端口,这并不需要对防火墙有多深的理解。

预设服务

在你的防火墙上添加许可的最简单的方式就是添加预设服务。严格来讲,你的防火墙并不懂什么是“服务”,因为它只知道端口号码和使用协议的类型。不过在标准和传统的基础之上,防火墙可以为你提供一套端口和协议的组合。

比如说,如果你是一个 web 开发者并且希望你的计算机对本地网络开放(这样你的同事就可以看到你正在搭建的网站了),可以添加 http 和 https 服务。如果你是一名游戏玩家,并且在为你的游戏公会运行开源的 murmur 语音聊天服务器,那么你可以添加 murmur 服务。还有其它很多可用的服务,你可以使用下面这个命令查看:

$ sudo firewall-cmd --get-services

amanda-client amanda-k5-client bacula bacula-client \

bgp bitcoin bitcoin-rpc ceph cfengine condor-collector \

ctdb dhcp dhcpv6 dhcpv6-client dns elasticsearch \

freeipa-ldap freeipa-ldaps ftp [...]

如果你找到了一个自己需要的服务,可以将它添加到当前的防火墙配置中,比如说:

$ sudo firewall-cmd --add-service murmur

这个命令 在你的默认区域里 添加了指定服务所需要的所有端口和协议,不过在重启计算机或者防火墙之后就会失效。如果想让你的修改永久有效,可以使用 --permanent 标志:

$ sudo firewall-cmd --add-service murmur --permanent

你也可以将这个命令用于一个非默认区域:

$ sudo firewall-cmd --add-service murmur --permanent --zone home

端口

有时候你希望允许的流量并不在 firewalld 定义的服务之中。也许你想在一个非标准的端口上运行一个常规服务,或者就是想随意开放一个端口。

举例来说,也许你正在运行开源的 虚拟桌游 软件 MapTool。由于 MapTool 服务器应该使用哪个端口这件事情并没有一个行业标准,所以你可以自行决定使用哪个端口,然后在防火墙上“开一个洞”,让它允许该端口上的流量。

实现方式和添加服务差不多:

$ sudo firewall-cmd --add-port 51234/tcp

这个命令 在你的默认区域 里将 51234 端口向 TCP 传入连接开放,不过在重启计算机或者防火墙之后就会失效。如果想让你的修改永久有效,可以使用 --permanent 标志:

$ sudo firewall-cmd --add-port 51234/tcp --permanent

你也可以将这个命令用于一个非默认区域:

$ sudo firewall-cmd --add-port 51234/tcp --permanent --zone home

在路由器的防火墙上设置允许流量和在本机上设置的方式是不同的。你的路由器可能会为它的内嵌防火墙提供一个不同的配置界面(原理上是相同的),不过这就超出本文范围了。

移除端口和服务

如果你不再需要某项服务或者某个端口了,并且设置的时候没有使用 --permanent 标志的话,那么可以通过重启防火墙来清除修改。

如果你已经将修改设置为永久生效了,可以使用 --remove-port 或者 --remove-service 标志来清除:

$ sudo firewall-cmd --remove-port 51234/tcp --permanent

你可以通过在命令中指定一个区域以将端口或者服务从一个非默认区域中移除。

$ sudo firewall-cmd --remove-service murmur --permanent --zone home

自定义区域

你可以随意使用 firewalld 默认提供的这些区域,不过也完全可以创建自己的区域。比如如果希望有一个针对游戏的特别区域,你可以创建一个,然后只有在玩儿游戏的时候切换到该区域。

如果想要创建一个新的空白区域,你可以创建一个名为 game 的新区域,然后重新加载防火墙规则,这样你的新区域就启用了:

$ sudo firewall-cmd --new-zone game --permanent

success

$ sudo firewall-cmd --reload

一旦创建好并且处于启用状态,你就可以通过添加玩游戏时所需要的服务和端口来实现个性化定制了。

勤勉

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/11949.html