一、nginx 版本隐藏
默认配置,客户端会获取nginx版本信息
隐藏方式:
二、更改nginx服务器名称
编辑nginx源代码,重新编译
1.修改nginx内核信息
vim /opt/nginx/src/core/nginx.h
define NGINX_VERSION "8" #修改版本号
define NGINX_VER "xjm/" NGINX_VERSION #web软件名
define NGINX_VAR "xjm"
2.修改头部信息
vim src/http/ngx_http_header_filter_module.c
static char ngx_http_server_string[] = "Server: xjm" CRLF;
3.修改错误页显示
static u_char ngx_http_error_tail[] =
"<hr><center>xjm</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;
重新编译安装,返回效果如下
三、限制IP或网络访问nginx
location / {
deny 192.168.1.22;
allow 10.10.1.0/24;
deny all;
}
四、只允许通过指定域名访问
if ($host !~ ^(www.ifaxin.com|web.sendcloud.net)$ ) {
return 403;
}
五、防止爬虫
if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Yahoo!Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot")
{
return 403;
}
六、限制请求方式
if ($request_method !~ (GET|POST|HEAD)){
return 501;
}
用Chrome浏览器Advanced Rest Client 插件测试DELETE方法被拒绝
七、防止盗链
location ~* \.(gif|jpg|png|jpeg)$ {
expires 30d;
valid_referers none blocke *.sendcloud.net web.sendcloud.net *.baidu.com
*.google.com;
if ($invalid_referer) {
rewrite ^/ http://web.sendcloud.net/noimage.jpg;
}
}
八、通过iptables防火墙设置限制
◆ 入站HTTP请求(TCP 80\443端口)
◆ 入站ICMP ping请求