老蒋的知识库

  • 首页
  • 文章归档
  • 关于页面

  • 搜索

Nginx 防御

发表于 2023-11-02 | 分类于 Nginx | 0 | 阅读次数 33

被恶意扫描,或者下载文件

配置conf


    # 限制IP访问,只允许域名访问
    server {
        listen  80  default_server;
        listen  443 default_server;
        #SSL相关配置,请勿删除或修改,必须带有证书才能配置443
        ssl_certificate     /etc/letsencrypt/live/test/fullchain.pem; // 这里要改成自己不用的证书
        ssl_certificate_key /etc/letsencrypt/live/test/privkey.pem; // 这里要改成自己不用的证书
        #SSL-END
        server_name _;

        location / {
            # 专制恶意扫描,所有请求跳转到10GB大文件慢慢下去
            rewrite \.*$ http://lg-hkg.fdcservers.net/10GBtest.zip;
            # 只匹配扫描对应文件后缀才下载
            # rewrite \.(rar|zip|tar|sql|gz|7z)/?$ http://lg-hkg.fdcservers.net/10GBtest.zip;
            return  403;
        }
    }


日志分析

访问者IP请求次数排名

awk '{print $1}' /usr/local/nginx/log/access.log |sort |uniq -c|sort -n

带有指定字段的IP,请求次数排名,这里是过滤尝试代理访问百度的请求。

cat access.log | grep 'baidu' | awk '{print $1}'  | sort | uniq -c | sort -nr -k1 | head -n 10

访问IP的请求次数

awk '{print $1}'  access.log|sort | uniq -c |wc -l

查询访问最频繁的URL

awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more

配置Ningx,屏蔽IP

将以下配置写入conf中,可应用作用域: http / server / location / limit_except

http {
	# 全局屏蔽单个 IP
	deny IP; 
    server {
        # 特定服务屏蔽单个IP
        deny IP;  
        
        location /api {
            # 特定路由屏蔽单个IP
            deny IP;  
        }
    }

    # 允许单个ip访问
    allow IP; 

    # 屏蔽所有ip访问
    deny all; 

    # 允许所有ip访问
    allow all; 

    # 屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令
    deny 123.0.0.0/8

    # 屏蔽IP段即从123.45.0.1到123.45.255.254访问的命令
    deny 124.45.0.0/16

    # 屏蔽IP段即从123.45.6.1到123.45.6.254访问的命令
    deny 123.45.6.0/24

    # 如果你想实现这样的应用,除了几个IP外,其他全部拒绝,
    # 那需要你在guolv_ip.conf中这样写

    allow 1.1.1.1; 
    allow 1.1.1.2;
    deny all;
}

配置优先级

作用范围和配置的顺序有关系,先配置的优先级高,会覆盖和后一个配置重合的部分,
可以添加多个allow和多个deny:

# 这个配置127.0.0.1可以通过访问。
allow 127.0.0.1;
deny all;

# 这个配置127.0.0.1无法通过访问。
deny all;
allow 127.0.0.1;

# 这个配置127.0.0.1无法通过访问。
deny 127.0.0.1;
allow all;

# 这个配置127.0.0.1可以通过访问。
allow all;
deny 127.0.0.1;
  • 本文作者: jagger
  • 本文链接: /archives/nginx-fang-yu
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
C# 避坑指南
Java Spring 定时任务
jagger

jagger

66 日志
31 分类
0 标签
Creative Commons
0%
© 2026 jagger
由 Halo 强力驱动