临时文件

确保firewalld服务正在运行:

sh
复制代码
sudo systemctl start firewalld
sudo systemctl enable firewalld
禁止所有流量:

首先,设置默认的策略为拒绝所有进入和外出的流量。

sh
复制代码
sudo firewall-cmd --set-default-zone=drop
允许26.6.6.1访问主机的22端口:

为了允许特定主机访问22端口,您可以添加以下规则:

sh
复制代码
sudo firewall-cmd --permanent --new-zone=special
sudo firewall-cmd --permanent --zone=special --add-source=26.6.6.1
sudo firewall-cmd --permanent --zone=special --add-port=22/tcp
sudo firewall-cmd --reload
允许主机访问10.0.0.3的9200端口:

为了允许特定的主机访问外部主机的特定端口,您需要在 trusted 区域中添加规则:

sh
复制代码
sudo firewall-cmd --permanent --zone=trusted --add-source=10.0.0.10
sudo firewall-cmd --permanent --zone=trusted --add-rich-rule='rule family="ipv4" source address="10.0.0.10" destination address="10.0.0.3" port protocol="tcp" port="9200" accept'
sudo firewall-cmd --reload
综上所述,这些命令将完成以下几件事:

将默认区域设置为 drop,拒绝所有未明确允许的流量。
创建一个新的区域 special,允许 26.6.6.1 访问22端口。
在 trusted 区域中,允许 10.0.0.10 访问 10.0.0.3 的9200端口。
这样配置后,您的RHEL 8主机将会符合您的需求:只允许 26.6.6.1 访问22端口,并且主机可以访问 10.0.0.3 的9200端口,同时禁止所有其他的入站和出站连接。

如有其他问题,请随时告知!

多个zone太乱了。能否在一个默认zone里面实现功能
ChatGPT
当然可以,我们可以在一个默认区域(比如 public 区域)中配置所有的规则。以下是实现这些需求的步骤:

确保firewalld服务正在运行:

sh
复制代码
sudo systemctl start firewalld
sudo systemctl enable firewalld
设置默认区域为public:

sh
复制代码
sudo firewall-cmd --set-default-zone=public
清除public区域的所有现有规则:

sh
复制代码
sudo firewall-cmd --permanent --zone=public --remove-service=ssh
sudo firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client
sudo firewall-cmd --permanent --zone=public --remove-service=cockpit
sudo firewall-cmd --reload
禁止所有流量:

设置默认的策略为拒绝所有进入和外出的流量:

sh
复制代码
sudo firewall-cmd --permanent --zone=public --set-target=DROP
sudo firewall-cmd --reload
允许26.6.6.1访问主机的22端口:

为了允许特定主机访问22端口,您可以添加以下规则:

sh
复制代码
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="26.6.6.1" port port="22" protocol="tcp" accept'
sudo firewall-cmd --reload
允许主机访问10.0.0.3的9200端口:

为了允许主机访问外部主机的特定端口,您可以添加以下规则:

sh
复制代码
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.10" destination address="10.0.0.3" port port="9200" protocol="tcp" accept'
sudo firewall-cmd --reload
综上所述,这些命令将完成以下几件事:

设置 public 区域为默认区域,并且将其策略设置为 DROP,以禁止所有未明确允许的流量。
允许来自 26.6.6.1 的流量访问主机的22端口。
允许主机 10.0.0.10 访问 10.0.0.3 的9200端口。
这样配置后,您的RHEL 8主机将在public区域中实现所需的防火墙规则。如果有其他问题或需要进一步调整,请随时告知!

不要使用富规则,可以直接使用direct规则吗
ChatGPT
当然可以使用 firewalld 的 direct 规则来实现这些需求。以下是具体步骤:

确保 firewalld 服务正在运行:

sh
复制代码
sudo systemctl start firewalld
sudo systemctl enable firewalld
设置默认区域为 public:

sh
复制代码
sudo firewall-cmd --set-default-zone=public
清除 public 区域的所有现有规则:

sh
复制代码
sudo firewall-cmd --permanent --zone=public --remove-service=ssh
sudo firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client
sudo firewall-cmd --permanent --zone=public --remove-service=cockpit
sudo firewall-cmd --reload
使用 direct 规则配置防火墙:

禁止所有流量:

由于默认策略是 DROP,所以不需要额外的规则来禁止流量。我们仅需要配置允许的流量。

允许 26.6.6.1 访问主机的 22 端口:

sh
复制代码
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 22 -s 26.6.6.1 -j ACCEPT
允许主机访问 10.0.0.3 的 9200 端口:

sh
复制代码
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp --dport 9200 -d 10.0.0.3 -j ACCEPT
重新加载 firewalld 配置:

sh
复制代码
sudo firewall-cmd --reload
综上所述,这些命令将完成以下几件事:

确保 firewalld 服务正在运行,并设置默认区域为 public。
移除 public 区域的所有现有规则。
使用 direct 规则允许 26.6.6.1 访问主机的 22 端口。
使用 direct 规则允许主机访问 10.0.0.3 的 9200 端口。
这样配置后,您的 RHEL 8 主机将会符合您的需求:只允许 26.6.6.1 访问 22 端口,并且主机可以访问 10.0.0.3 的 9200 端口,同时禁止所有其他的入站和出站连接。

如有其他问题,请随时告知!

可以使用direct 规则来禁止所有流量吗
ChatGPT
可以使用 direct 规则来禁止所有流量。下面是使用 direct 规则来实现您的需求的详细步骤:

确保 firewalld 服务正在运行:

sh
复制代码
sudo systemctl start firewalld
sudo systemctl enable firewalld
清除所有现有规则:

sh
复制代码
sudo firewall-cmd --permanent --direct --remove-rules ipv4 filter INPUT
sudo firewall-cmd --permanent --direct --remove-rules ipv4 filter OUTPUT
sudo firewall-cmd --reload
使用 direct 规则禁止所有流量:

sh
复制代码
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -j DROP
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -j DROP
允许 26.6.6.1 访问主机的 22 端口:

sh
复制代码
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 26.6.6.1 -j ACCEPT
允许主机访问 10.0.0.3 的 9200 端口:

sh
复制代码
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp --dport 9200 -d 10.0.0.3 -j ACCEPT
重新加载 firewalld 配置:

sh
复制代码
sudo firewall-cmd --reload
综上所述,这些命令将完成以下几件事:

确保 firewalld 服务正在运行。
清除所有现有的 direct 规则。
使用 direct 规则禁止所有入站和出站的流量。
使用 direct 规则允许 26.6.6.1 访问主机的 22 端口。
使用 direct 规则允许主机访问 10.0.0.3 的 9200 端口。
这样配置后,您的 RHEL 8 主机将会符合您的需求:只允许 26.6.6.1 访问 22 端口,并且主机可以访问 10.0.0.3 的 9200 端口,同时禁止所有其他的入站和出站连接。

posted @ 2024-07-22 11:16  18cm的烦恼  阅读(3)  评论(0编辑  收藏  举报