0

0

Apache 基于 IP 的黑白名单过滤配置

星降

星降

发布时间:2025-06-24 11:24:02

|

1083人浏览过

|

来源于php中文网

原创

apache 基于 ip 的黑白名单过滤可通过 mod_authz_host 模块或 .htaccess 文件实现。1. 使用 mod_authz_host 模块时,需启用该模块并在主配置文件的 中设置 order、allow 和 deny 规则,如白名单先拒绝所有再允许特定 ip,黑名单则反之,之后重启 apache 生效;2. 使用 .htaccess 文件则需在对应目录创建该文件并写入相同规则,同时确保 allowoverride all 已启用,无需重启服务。此外,识别恶意 ip 需分析日志并结合威胁情报平台,选择策略上白名单适合限制访问场景,黑名单适合阻止已知恶意 ip。若使用 cdn,应启用 mod_remoteip 模块以获取用户真实 ip 并进行过滤。

Apache 基于 IP 的黑白名单过滤配置

Apache 基于 IP 的黑白名单过滤配置,简单来说,就是允许或拒绝特定 IP 地址访问你的网站。这是一种基础但有效的安全措施,尤其是在面对恶意扫描、DDoS 攻击等情况时。

解决方案

配置 Apache 基于 IP 的黑白名单,通常有两种方式:使用 mod_authz_host 模块,或者使用 .htaccess 文件。前者更适合全局配置,后者则适用于单个目录。

1. 使用 mod_authz_host 模块 (推荐):

这种方式需要修改 Apache 的主配置文件(例如 httpd.confapache2.conf,具体位置取决于你的操作系统和 Apache 版本)。

  • 启用 mod_authz_host 模块: 首先确保该模块已启用。在配置文件中查找类似 LoadModule authz_host_module modules/mod_authz_host.so 的行,如果被注释掉了(前面有 #),去掉 # 并保存。如果找不到,可能需要手动安装该模块。

  • 配置访问控制: 标签内,或者在 标签内(取决于你想要控制的范围),添加如下配置:

    • 白名单示例:
    
        Order Deny,Allow
        Deny from all
        Allow from 192.168.1.0/24
        Allow from 10.0.0.1
    

    这段配置的意思是:先拒绝所有 IP 地址的访问,然后允许 192.168.1.0/24 网段和 10.0.0.1 这个 IP 地址的访问。

    • 黑名单示例:
    
        Order Allow,Deny
        Allow from all
        Deny from 1.2.3.4
        Deny from 5.6.7.0/24
    

    这段配置的意思是:先允许所有 IP 地址的访问,然后拒绝 1.2.3.4 这个 IP 地址和 5.6.7.0/24 网段的访问。

    注意: Order 指令定义了规则的执行顺序。Deny,Allow 表示先执行 Deny 规则,再执行 Allow 规则;Allow,Deny 则相反。

    Shakespeare
    Shakespeare

    一款人工智能文案软件,能够创建几乎任何类型的文案。

    下载
  • 重启 Apache: 修改配置文件后,需要重启 Apache 服务才能使配置生效。命令通常是 sudo systemctl restart apache2sudo service apache2 restart

2. 使用 .htaccess 文件:

这种方式不需要修改 Apache 的主配置文件,但需要在网站的根目录或子目录中创建一个 .htaccess 文件。 注意: 需要在 Apache 主配置文件中启用 AllowOverride All 才能使 .htaccess 文件生效。

  • 创建 .htaccess 文件: 在需要控制的目录下创建一个名为 .htaccess 的文件。

  • 配置访问控制:.htaccess 文件中添加如下配置:

    • 白名单示例:
    Order Deny,Allow
    Deny from all
    Allow from 192.168.1.0/24
    Allow from 10.0.0.1
    • 黑名单示例:
    Order Allow,Deny
    Allow from all
    Deny from 1.2.3.4
    Deny from 5.6.7.0/24
  • 保存文件: 保存 .htaccess 文件后,配置会立即生效,无需重启 Apache。

如何确定恶意 IP 地址?

确定恶意 IP 地址并非易事,需要综合考虑多种因素。一种方法是分析服务器日志,查找频繁请求特定资源、尝试非法访问等行为的 IP 地址。还可以利用一些在线威胁情报平台,查询 IP 地址的信誉评分,例如 AbuseIPDB、VirusTotal 等。另外,防火墙和入侵检测系统(IDS)也可以帮助识别和阻止恶意 IP 地址。我个人更倾向于结合多种数据源,进行综合判断,避免误判。

白名单和黑名单应该如何选择?

选择白名单还是黑名单,取决于你的安全策略和应用场景。如果你的网站主要面向特定用户群体,或者需要严格控制访问权限,那么白名单可能更适合。例如,内部系统只允许公司员工访问。另一方面,如果你的网站面向公众开放,但需要阻止某些已知的恶意 IP 地址,那么黑名单可能更有效。实际上,很多时候,白名单和黑名单可以结合使用,以达到更佳的安全效果。例如,先设置一个全局的黑名单,阻止已知的恶意 IP 地址,然后再针对特定目录设置白名单,只允许特定用户访问。

使用 CDN 后如何获取真实 IP 地址?

当网站使用 CDN 时,服务器看到的 IP 地址通常是 CDN 节点的 IP 地址,而不是用户的真实 IP 地址。为了获取用户的真实 IP 地址,你需要查看 HTTP 请求头中的 X-Forwarded-ForX-Real-IP 字段。不同的 CDN 提供商使用的字段可能略有不同,你需要查阅 CDN 的文档,了解具体的字段名称。然后在 Apache 配置中,使用 mod_remoteip 模块,将 CDN 节点的 IP 地址替换为 X-Forwarded-ForX-Real-IP 字段中的 IP 地址。这样,Apache 才能正确地识别用户的真实 IP 地址,并应用 IP 黑白名单过滤规则。需要注意的是,X-Forwarded-For 字段可能被伪造,因此需要谨慎处理,只信任来自可信 CDN 节点的 X-Forwarded-For 字段。

相关专题

更多
apache是什么意思
apache是什么意思

Apache是Apache HTTP Server的简称,是一个开源的Web服务器软件。是目前全球使用最广泛的Web服务器软件之一,由Apache软件基金会开发和维护,Apache具有稳定、安全和高性能的特点,得益于其成熟的开发和广泛的应用实践,被广泛用于托管网站、搭建Web应用程序、构建Web服务和代理等场景。本专题为大家提供了Apache相关的各种文章、以及下载和课程,希望对各位有所帮助。

405

2023.08.23

apache启动失败
apache启动失败

Apache启动失败可能有多种原因。需要检查日志文件、检查配置文件等等。想了解更多apache启动的相关内容,可以阅读本专题下面的文章。

930

2024.01.16

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

337

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

406

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

1727

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1969

2024.08.16

ddos攻击工具有哪些
ddos攻击工具有哪些

ddos攻击工具有LOIC、HOIC、Slowloris、ICMP洪水攻击、SYN洪水攻击和UDP洪水攻击。详细介绍:1、LOIC,可以使用单个用户或多个用户协同工作,形成分布式攻击,从而增加攻击的威力;2、HOIC,可以使用多个代理服务器,从而隐藏攻击者的真实IP地址;3、Slowloris,通过发送大量的半连接请求来占用目标服务器的资源,从而使其无法处理其他合法的连接请求等等。

476

2023.10.09

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

4

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

23

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
RunnerGo从入门到精通
RunnerGo从入门到精通

共22课时 | 1.7万人学习

尚学堂Mahout视频教程
尚学堂Mahout视频教程

共18课时 | 3.2万人学习

Linux优化视频教程
Linux优化视频教程

共14课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号