被恶意扫描,或者下载文件
配置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;