登陆阿里云后台,发现阿里云的 web 防火墙显示有很多个 ip 对网站进行攻击

有GET POST请求的攻击。我们通过 nginx 日志去看下,比如61.136.155.18的访问次数,发现没有这个 ip 的访问记录。应该是直接被阿里云的防火墙拦截了。另外发现有很多 POST请求.
只允许特定的 HTTP 请求访问
我用的是 hexo,没有 POST 请求,所以,可以直接在 NGINX 配置文件server段中加入
if ($request_method !~ ^(GET|HEAD)$ ) { return 444; }
|
因为博客全部都是静态页面,不需要 POST 请求,可以直接禁止,只允许 GET 和 HEAD
禁止 IP 直接访问
另外的话,我不希望客户端直接通过 ip 访问,如果通过 ip 访问,会直接禁止
server { listen 80; server_name _; server_name www.fangwenjun.com fangwennjun.com awen.me www.awen.me; return 444; if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } rewrite ^(.*)$ https://awen.me$1 permanent; //跳转到 HTTPS }
|
配置 nginx 开启 SSL
listen 443 ssl http2; server_name awen.me www.awen.me; index index.html index.htm index.php; root /www/; ssl on; ssl_certificate /usr/local/nginx/ssl/awen/fullchain.cer; ssl_certificate_key /usr/local/nginx/ssl/awen/awen.me.key; ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:50m; ssl_session_timeout 1d; ssl_session_tickets on; resolver 114.114.114.114 valid=300s; resolver_timeout 10s;
|
配置 CDN
使用又拍云 CDN 加速,并且在 CDN 配置 SSL 证书,开启 HSTS 功能。
文章作者:阿文
版权声明:本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0 许可协议。转载请注明来自
阿文的博客!