share-image
ESC

阿里云 ECS 被攻击的处理记录

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

GET POST请求的攻击。我们通过 nginx 日志去看下,比如61.136.155.18的访问次数,发现没有这个 ip 的访问记录。应该是直接被阿里云的防火墙拦截了。另外发现有很多 POST请求.

只允许特定的 HTTP 请求访问

我用的是 hexo,没有 POST 请求,所以,可以直接在 NGINX 配置文件server段中加入

if ($request_method !~ ^(GET|HEAD)$ ) {
return 444;
}

因为博客全部都是静态页面,不需要 POST 请求,可以直接禁止,只允许 GETHEAD

禁止 IP 直接访问

另外的话,我不希望客户端直接通过 ip 访问,如果通过 ip 访问,会直接禁止

server {
listen 80;
server_name _; #加入这条
server_name www.fangwenjun.com fangwennjun.com awen.me www.awen.me;
return 444; #返回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 功能。

文章作者:阿文
文章链接: https://www.awen.me/post/2148756081.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客
本文于 2017-05-22 发布,已超过半年(3174天),请注意甄别内容是否已过期。