如何向firewalld添加两条规则以便
- 否认所有人和
- 只接受一组 IP 地址?
在本例中,我谈论的是 SSH 端口 - 22。
我使用的是 CentOS 7 和 firewalld。
答案1
您可以使用
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" \
source address="1.2.3.4/32" \
port protocol="tcp" port="22" accept"
只需将 IP 替换为您想要允许 ssh 的 IP
答案2
检查当前处于活动状态并默认用于您的连接的区域,
# firewall-cmd --get-active-zones
work
interfaces: work-vpn
home
interfaces: enp0s25
例如,在上面的输出中,我有 2 个活动区域,每个接口一个。
然后您需要列出特定区域的活动服务,
# firewall-cmd --list-services --zone=public
dhcpv6-client mdns ssh
因此,在上述情况下,公共区域有一条允许 ssh 进入的规则。因此,如果您想允许从特定地址进行访问,您首先需要删除 ssh 服务,以及@noqqe 提到的上面的丰富规则。
# firewall-cmd
--permanent # this will add the rule permanently, su make sure not to run it on a remote host, until you verified it!
--zone=public # to which zone add the rule, make sure is the one you actively/currently using.