自从我使用Centos以来,我就使用带有自定义防火墙脚本的iptables来解析规则。但是,由于Centos 7,firewalld是新的默认设置。这对我来说很好,是时候继续前进了。
无论如何,我认为firewalld的文档写得很糟糕,并举了几个例子。
所以我的问题很简单,但我会说明我想要达到的目标。
我有一个有两个接口的服务器。一个接口连接到互联网,另一个是内部网络。允许内部接口上的所有通信量,因此我将其添加到可信区域。到目前一切尚好。
我默认的想法是,所有的流量都被阻塞,除了它的服务目的(在我的例子中是http,https )。对于维护和备份,ssh应该为一些ip地址打开。
我考虑使用自定义服务为ssh创建规则,但这不起作用,因为服务不接受源标记。那我该怎么做?我想要创建一个文件,在这里我可以定义我的异常(ssh表示一个ip,http表示所有等等)。所以我可以把它们复制到其他服务器上。
提前感谢!
发布于 2014-12-09 07:59:47
最近我也遇到了这个问题,但是我能够添加对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="x.x.x.x" service name="ssh" log prefix="ssh" level="info" accept'
sudo firewall-cmd --reload源地址可以是一个范围,只需指定子网。
因为ssh不是为公共区域添加的,默认情况下它将被阻塞。富规则将只为该源ip/范围启用它。
任何更好的解决方案,请添加。
我回答了我的问题
发布于 2016-05-06 15:27:02
我不知道这是否是“最好”的方式,但我做到了增加一个新的区域。您可以在区域中放置源地址。因此,创建一个管理区域并添加所需的源地址、服务和端口。由于我经常需要这样做,所以我只保留了区域xml文件,并将其放到每个新服务器中。
例如。在/etc/firewalld/ zone目录中,创建一个名为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中,作为任何新服务器设置过程的一部分,以便为防火墙提供一个安全的起点。
只是一个FYI,您可以使用防火墙-cmd完成所有这一切,但我发现在构建新服务器时,删除xml文件的速度更快。
https://serverfault.com/questions/616291
复制相似问题