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地址限