自从我使用Centos以来,我一直在使用带有自定义防火墙脚本的iptables来parsing规则。 但是由于Centos 7 firewalld是新的默认设置。 这对我来说很好,有时间继续前进。
无论如何,我认为firewalld的文档写得不好,只有几个例子。
所以我的问题很简单,但我会说明我想实现的。
我有一个有两个接口的服务器。 一个接口连接到互联网,另一个是内部networking。 内部接口上的所有stream量都是允许的,所以我将它添加到了可信区域。 到现在为止还挺好。
我默认的思路是,所有的stream量都被阻止,除了它的服务目的(http,https在我的情况)。 对于维护和备份ssh应该打开几个IP地址。
我正在考虑使用自定义服务为ssh创build一个规则,但这不起作用,因为服务不接受源标记。 那么我该如何继续呢? 我想创build一个文件,我可以定义我的例外(ssh为一个ip,http为所有等),所以我可以将它们复制到其他服务器。
提前致谢!
我最近也有这个问题,但我能够添加访问http和https服务。 但是我有ssh服务限制到一个源地址的问题。 这是我的工作。
首先将界面添加到公共区域
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --add-rich-rule='rule family="ipv4" source address="xxxx" service name="ssh" log prefix="ssh" level="info" accept' sudo firewall-cmd --reload
源地址可以是一个范围,只需指定子网
由于ssh没有被添加到公共区域,它将被默认阻塞。 丰富的规则将启用它只有源IP /范围。
更好的解决scheme,请添加。
我在我的问题上回答了
使用Firewall-cmd在centos中创build地址特定的限制7
我不知道这是否是这样做的“最佳”方式,但是我通过增加了一个新区域来完成。 您可以将源地址放在区域中。 因此,build立一个pipe理区域并添加你想要的源地址,服务和端口。 因为我需要经常这样做,所以我只保留区域xml文件并将其放到每个启动的新服务器中。
例如。 在/ etc / firewalld / zones目录中创build一个名为mgt.xml的文件或任何你想要调用你的区域的文件。 然后做这样的事情:
<?xml version="1.0" encoding="utf-8"?> <zone> <short>Management</short> <description>The services to manage the server and the ip addressees to manage it from.</description> <source address="2001:0DB8::/64"/> <source address="192.168.0.5"/> <service name="ssh"/> <port protocol="tcp" port="10000"/> </zone>
您将需要重新启动firewalld。
我实际上也使用相同的方法来修改其他区域。 如果您将public.xml或drop.xml放入同一个文件夹,您将覆盖这些区域的默认设置。 我有4个xml文件放入firewalld,作为我的安装程序的一部分,用于任何新的服务器,为我提供一个安全的防火墙起点。
只是一个简要的说明,你可以使用firewall-cmd完成所有这些工作,但是在构build新的服务器时,我发现删除xml文件的速度会更快。