溫馨提示×

nginx訪問控制:如何限制惡意IP訪問

小樊
44
2025-10-06 19:33:55
欄目: 編程語言

在Nginx中,可以通過配置訪問控制來限制惡意IP的訪問。以下是一些常用的方法:

1. 使用allowdeny指令

你可以在serverlocation塊中使用allowdeny指令來控制IP訪問。

server {
    listen 80;
    server_name example.com;

    location / {
        allow 192.168.1.1;  # 允許特定IP訪問
        deny all;           # 拒絕所有其他IP訪問
    }
}

2. 使用geo模塊

geo模塊可以用來定義IP地址范圍,并根據這些范圍進行訪問控制。

http {
    geo $block_ip {
        default 1;  # 默認拒絕
        192.168.1.1 0;  # 允許特定IP
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            if ($block_ip) {
                return 403;  # 返回403 Forbidden
            }
            # 其他配置
        }
    }
}

3. 使用ngx_http_access_module

Nginx自帶的ngx_http_access_module模塊可以用來進行基本的訪問控制。

server {
    listen 80;
    server_name example.com;

    location / {
        allow 192.168.1.1;  # 允許特定IP訪問
        deny all;           # 拒絕所有其他IP訪問
    }
}

4. 使用第三方模塊

有一些第三方模塊可以幫助你更靈活地進行IP訪問控制,例如ngx_http_geoip_module可以用來基于地理位置進行訪問控制。

http {
    geoip2 /usr/share/GeoIP/GeoLite2-City.mmdb {
        auto_reload 60m;
        $geoip2_data_country_code default=XX country iso_code;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            if ($geoip2_data_country_code = "CN") {
                return 403;  # 拒絕中國IP訪問
            }
            # 其他配置
        }
    }
}

5. 使用防火墻規則

除了在Nginx層面進行控制,還可以使用操作系統的防火墻規則來限制惡意IP的訪問。例如,使用iptables

sudo iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j DROP

6. 使用Fail2Ban

Fail2Ban是一個入侵防御軟件框架,可以用來監控日志文件并根據規則禁止惡意IP訪問。

sudo apt-get install fail2ban
sudo cp /etc/fail2ban/jail.local /etc/fail2ban/jail.local.bak
sudo nano /etc/fail2ban/jail.local

jail.local文件中添加以下內容:

[DEFAULT]
bantime = 600
findtime = 600
maxretry = 3

[nginx]
enabled = true
filter = nginx-badbots
action = iptables-multiport[name=All, port="http,https", protocol=tcp]
logpath = /var/log/nginx/access.log

然后重啟Fail2Ban服務:

sudo systemctl restart fail2ban

通過以上方法,你可以有效地限制惡意IP訪問你的Nginx服務器。根據具體需求選擇合適的方法進行配置。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女