我使用这个脚本来设置防火墙。我希望只有一个IP可以访问ssh,但测试后并非如此。少了什么?
#!/bin/bash
#
# Reset to initial install of firewalld
#
rm -f /etc/firewalld/zones/*
firewall-cmd --complete-reload
firewall-cmd --runtime-to-permanent
firewall-cmd --reload
#
# Create / Setup custom zone
#
firewall-cmd --new-zone calzone --permanent
firewall-cmd --reload
firewall-cmd --zone=calzone --add-service={ssh,dhcpv6-client}
firewall-cmd --zone=calzone --add-source=10.0.0.177
firewall-cmd --change-interface enp1s0 --zone calzone --permanent
firewall-cmd --runtime-to-permanent
firewall-cmd --reload当我运行:防火墙-cmd- get -active-zone时,我得到以下信息
calzone
interfaces: enp1s0
sources: 10.0.0.177我的理解是,设置接口将首先引导从该接口到该区域的所有通信量,而且由于源中有条目,通信量将仅限于这些IP。提前鸣谢。
针对纳斯尔的评论,这个命令防火墙-cmd-列表-所有区域- sed -n '/calzone/,/rich/p‘生成:
calzone (active)
target: default
icmp-block-inversion: no
interfaces: enp1s0
sources: 10.0.0.177
services: dhcpv6-client ssh
ports:
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:我还重新启动了deamon firewalld,可以从10.0.0.188开始使用ssh --我只期望从10.0.0.177访问
发布于 2022-01-09 04:32:20
在阅读了许多小时的RedHat firewalld文档并坚持不懈地编写了一个脚本之后,我成功地得到了我想要的行为。然而,我没有100%的信心,因为我仍然不清楚为什么设置接口不工作。然而,这个脚本似乎有效。我使用了现有的工作区域,当我向它添加一个源时,它似乎变得很活跃。
#!/bin/bash
#
# Reset to initial install of firewalld
#
rm -f /etc/firewalld/zones/*
firewall-cmd --complete-reload
firewall-cmd --runtime-to-permanent
firewall-cmd --reload
systemctl restart firewalld
systemctl status firewalld
#
# Remove the services from all zones
#
# iterate through the default zones
for zone in drop block public external dmz work home internal trusted
do
# iterate through default services
for srv in $(firewall-cmd --list-services --zone=$zone)
do
echo "Removing service $srv from $zone"
firewall-cmd --zone=$zone --remove-service=$srv
firewall-cmd --zone=$zone --remove-service=$srv --permanent
done
done
#
# Drop all public traffic?
# Allow work zone to see ssh from host
#
firewall-cmd --zone=public --set-target=DROP --permanent
firewall-cmd --zone=work --add-source=10.0.0.177 --permanent
firewall-cmd --zone=work --add-service=ssh --permanent
firewall-cmd --runtime-to-permanent
firewall-cmd --reload
systemctl restart firewalld
systemctl status firewalldhttps://serverfault.com/questions/1089433
复制相似问题