CentOS服务器如何设置才能禁止某个IP段访问?

在服务器运维中,限制特定IP段访问是保障系统安全的基础操作之一,通过精细化控制访问来源,可以有效降低来自恶意网络的攻击风险,保护关键服务和数据,在CentOS系统中,这一功能主要通过其内置的防火墙工具实现,本文将详细介绍如何使用CentOS默认的firewalld防火墙来限制IP段访问。

CentOS服务器如何设置才能禁止某个IP段访问?

理解firewalld与区域概念

firewalld(Dynamic Firewall Manager)是CentOS 7及以上版本默认的防火墙管理工具,它支持动态更新而无需重启服务,其核心概念是“区域”,不同的区域预设了不同的安全级别和规则集。public区域适用于公共网络,默认只允许SSH和DHCPv6客户端流量;而trusted区域则信任所有网络连接,我们的操作通常是在指定区域(如public)内添加规则。

使用富规则限制IP段

firewalld提供了“富规则”功能,允许我们定义非常复杂和精细的防火墙规则,这是限制IP段访问的最佳方式。

操作步骤:

  1. 检查防火墙状态
    确保firewalld服务正在运行。

    systemctl status firewalld
    firewall-cmd --state
  2. 确定活动区域
    查看当前网络接口所在的区域,通常为public

    CentOS服务器如何设置才能禁止某个IP段访问?

    firewall-cmd --get-active-zones
  3. 添加允许特定IP段的规则
    假设我们只允许168.1.0/24这个网段访问服务器的HTTP(80)端口,并拒绝其他所有IP访问,我们需要先添加允许规则。

    firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept'
    • --permanent: 表示规则永久生效。
    • --zone=public: 指定在public区域操作。
    • --add-rich-rule: 添加一条富规则。
    • family="ipv4": 指定IPv4协议。
    • source address="192.168.1.0/24": 指定源IP地址段。
    • port protocol="tcp" port="80": 指定目标端口和协议。
    • accept: 表示接受(允许)该流量。
  4. 移除服务默认的公开访问
    如果之前已经开放了80端口给所有IP,需要移除它。

    firewall-cmd --permanent --zone=public --remove-service=http
  5. 重新加载防火墙
    使所有永久规则立即生效。

    firewall-cmd --reload

通过以上步骤,就实现了仅允许168.1.0/24网段访问80端口的目的,如果需要拒绝某个IP段,只需将accept改为dropreject即可。

常用命令速查表

为了方便日常操作,下表小编总结了firewalld限制IP段的核心命令:

CentOS服务器如何设置才能禁止某个IP段访问?

功能描述 命令示例
允许IP段访问特定端口 firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="IP/子网掩码" port protocol="tcp" port="端口号" accept'
拒绝IP段所有访问 firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="IP/子网掩码" drop'
移除富规则 firewall-cmd --permanent --zone=public --remove-rich-rule='...'
查看所有富规则 firewall-cmd --list-rich-rules
重新加载防火墙 firewall-cmd --reload

相关问答FAQs

问题1:如何查看当前防火墙所有已配置的规则?
解答: 您可以使用以下命令来全面了解防火墙的当前状态。firewall-cmd --list-all会显示指定区域(默认为当前活动区域)的所有规则,包括允许的服务、端口、富规则等,如果想只查看富规则,可以使用firewall-cmd --list-rich-rules,这两个命令对于排查问题和验证配置是否生效非常有帮助。


解答: 不加--permanent参数的命令(运行时模式)会立即生效,但一旦防火墙服务重启或服务器重启,这些规则就会丢失,而加上--permanent参数(永久模式)的命令会将规则写入配置文件,但不会立即生效,需要执行firewall-cmd --reload来重新加载配置,使其永久生效,最佳实践是,在测试时先不加--permanent,确认无误后,再带上--permanent执行并reload

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-04 11:04
下一篇 2025-10-04 11:11

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信