如何阻止Apache HTTP Server级别的IP地址?

了解如何在Apache HTTP Server级别阻止IP地址。 在Apache Web Server的/etc/conf.d文件夹中创建包含要阻止的IP的.conf文件。

描述 description

环境

Adobe Experience Manager

问题/症状

我们的网站遇到拒绝服务攻击、垃圾邮件或受到黑客攻击。 如何阻止Apache HTTP Server (AEM Dispatcher)级别的IP地址?

解决方法 resolution

大多数Web应用程序防火墙(WAF)(如模块安全性)都可以阻止列表IP地址。 但是,如果您正在运行Apache HTTP Server,并希望立即阻止IP地址,请执行以下步骤(不适用于AEMas a Cloud Service)

  1. 创建名为的文件 block-offending-ips.conf 在您的服务器上

  2. 在编辑器中打开该文件并添加一个Location指令,该指令可阻止所有攻击型的IP地址访问任何您想要阻止的URL。 对于文件的内容,有两个选项:
    A.如果请求是采取代理方式(通过CDN、负载平衡器等),并且远程用户的IP仅位于标头(如X-Forwarded-For)中,则可以使用此配置。 请注意,如果配置了remoteip_module,则此配置不适用。

    code language-none
    LocationMatch "/.*"
        Order Allow,Deny
        Allow from all
        SetEnvif X-Forwarded-For "10\.42\.137\.123" DenyAccess
        SetEnvif X-Forwarded-For "122\.6\.218\.101" DenyAccess
        #Repeat the "SetEnvlf X-Forwarded-For ..." for each IP you want to block
        Deny from env=DenyAccess
        /LocationMatch
    

    B.或者,如果远程用户直接访问Apache或您使用的是remoteip_module(请参阅 [ 1] 在Apache中抽取和设置它,然后可以使用mod_authz_core的 需要 直接提供该功能(Apache 2.4)。

    code language-none
    LocationMatch "/.*"
        RequireAll
        Require all granted
        Require not ip 10.42.137.123
        Require not ip 122.6.218.101
        #Repeat the "Require not ip ..." for each IP you want to block
        /RequireAll
        /LocationMatch
    

    [ 1] remoteip_module

    code language-none
    # Extract true client IP from header added by load balancer/CDN
        IfModule remotetip module
        # valid for ELB or ELB+CloudFront
        RemoteIPHeader X-Forwarded-For
        IfModule
    
  3. 将block-offending-ips.conf文件放在Apache Web Server的/etc/conf.d文件夹中。

  4. 重新启动Apache HTTP Server。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f