CentOS 7默认使用的防火墙是firewalld,要限制IP访问需要进行以下步骤:
防火墙必须是开启的
systemctl start firewalld
1. 查看已有规则
在终端输入以下命令:
firewall-cmd --list-all
这会输出当前防火墙的所有规则。
2. 创建新的规则
假设我们要禁止IP地址为192.168.0.1
的主机访问本机,可以通过以下命令创建规则:
#
firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.0.1 reject'
# 删除
firewall-cmd --remove-rich-rule='rule family=ipv4 source address=10.6.8.176 reject'
其中,rich rule
是一种在firewalld中比较灵活的规则配置方式。上述命令的含义是:
-
family=ipv4
:指定IPv4协议。 -
source address=192.168.0.1
:指定源IP地址为192.168.0.1
。 -
reject
:拒绝连接。也可以使用drop
让连接超时。
3. 永久保存规则
当前规则只是在运行时生效,不会永久保留。为了让规则永久生效,需要使用以下命令将规则存储到防火墙的数据库中:
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.0.1 reject'
以上命令将规则添加到了permanent
区域,表示该规则会在重启后依然保留。如果要删除某个规则,可以使用类似的命令:
firewall-cmd --permanent --remove-rich-rule='rule family=ipv4 source address=192.168.0.1 reject'
4. 重载防火墙
为了让上述修改生效,还需重载防火墙配置:
firewall-cmd --reload
至此,防火墙就完成了IP地址限