1、如何添加防火墙黑名单
# 查看防火墙是否开启
[root@host32-48 vtu]# sudo systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2023-04-25 03:15:27 CST; 53s ago
Docs: man:firewalld(1)
Main PID: 45073 (firewalld)
CGroup: /system.slice/firewalld.service
└─45073 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Apr 25 03:15:27 host32-48 systemd[1]: Starting firewalld - dynamic firewall daemon...
Apr 25 03:15:27 host32-48 systemd[1]: Started firewalld - dynamic firewall daemon.
[root@host32-48 vtu]# sudo firewall-cmd --list-all
public
target: default # 默认,未明确允许的请求都会拒绝, 如果要全部允许: sudo firewall-cmd --set-default-zone=trusted
icmp-block-inversion: no # 默认,表示所有未在规则中明确阻止的 ICMP 请求都将被阻止
interfaces: # 这个参数指定了防火墙应该在哪些网络接口上工作。在这个例子中,没有指定任何接口。
sources: # 这个参数指定了哪些 IP 地址或地址段可以访问防火墙。在这个例子中,没有指定任何来源
services: ssh dhcpv6-client # 这个参数指定了防火墙应该允许哪些服务通过。在这个例子中,允许 ssh 和 dhcpv6-client 服务通过
ports: # 这个参数指定了哪些端口可以访问防火墙。在这个例子中,没有指定任何端口。
protocols: # 这个参数指定了哪些协议可以访问防火墙。在这个例子中,没有指定任何协议。
masquerade: no # 这个参数指定了是否启用 IP 地址伪装。在这个例子中,不启用
forward-ports: # 这个参数指定了哪些端口需要进行转发
source-ports: # 这个参数指定了哪些端口需要进行转发
icmp-blocks: # 这个参数指定了哪些 ICMP 包应该被阻止。在这个例子中,没有指定任何 ICMP 包。
rich rules:
#添加一条黑名单,记录,让 192.168.32.125无法访问 192.168.32.48
[root@host32-48 vtu]# sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.32.125" destination address="192.168.32.48" reject'
success
# 查询是否添加
[root@host32-48 vtu]# sudo firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.32.125" destination address="192.168.32.48" reject
# 可以执行命令删除
[root@host32-48 vtu]# sudo firewall-cmd --remove-rich-rule='rule family="ipv4" source address="192.168.32.125" destination address="192.168.32.48" reject'
success
查看防火墙状态
systemctl status firewalld
开启防火墙
systemctl start firewalld.service
开机启动防火墙
systemctl enable firewalld.service
关闭防火墙
systemctl stop firewalld.service
禁止开机自启
systemctl disable firewalld.service
白名单配置如下:
新增防火墙规则(允许指定ip访问指定端口):
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.10.101" port protocol="tcp" port="8099" accept"
删除防火墙规则:
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.10.101" port protocol="tcp" port="8099" accept"
允许10.55.39.75访问所有端口(允许指定ip访问所有端口)
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="10.55.39.75" accept' --permanent
移除10.55.39.75访问所有端口
firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4" source address="10.55.39.75" accept' --permanent
执行reload
firewall-cmd --reload
设置完规则后执行如下命令,查看防火墙规则,查看设置是否已添加
firewall-cmd --list-all
如若没生效重启防火墙
systemctl restart firewalld.service