nginx安全配置
-
隐藏版本号
`http { server_tokens off;}`
-
开启HTTPS
server {
listen 443;
server_name xxx.com;
ssl on;
ssl_certificate /etc/nginx/certs/xxx.com.pem;
ssl_certificate_key /etc/nginx/certs/xx.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
}
-
ssl on:开启https -
ssl_certificate:配置nginx ssl证书的路径 -
ssl_certificate_key:配置nginx ssl证书key的路径 -
ssl_protocols:指定客户端建立连接时使用的ssl协议版本,如果不需要兼容TSLv1,直接去掉即可 -
ssl_ciphers:指定客户端连接时所使用的加密算法,你可以在这里配置更高安全的算法 -
-
黑白名单配置 -
-
白名单配置
`location /admin/ { allow 192.168.1.0/24; deny all;}`
-
黑名单配置
`location /uploads/ { deny 192.168.1.0/24; allow all;}`
`set $allow false;if ($http_x_forwarded_for = "211.144.204.2") { set $allow true; }if ($http_x_forwarded_for ~ "108.2.66.[89]") { set $allow true; }if ($allow = false) { return 404; }`
-
账号认证
server {
location / {
auth_basic "please input user&passwd";
auth_basic_user_file key/auth.key;
}
}
-
-
限制请求方法 -
-
server 块配置
if ($request_method !~ ^(GET|POST)$ ) {
return 405;
}
-
或者
location / {
limit_except GET HEAD POST { deny all; }
}
-
拒绝User-Agent
if ($http_user_agent ~* LWP::Simple|BBBike|wget|curl) {
return 444;
}
-
图片防盗链
location /images/ {
valid_referers none blocked www.xx.com xx.com;
if ($invalid_referer) {
return 403;
}
}
location /images/ {
valid_referers blocked www.xx.com xx.com
if ($invalid_referer) {
rewrite ^/images/.*.(gif|jpg|jpeg|png)$ /static/qrcode.jpg last;
}
}
-
控制并发连接数
http {
limit_conn_zone $binary_remote_addr zone=ops:10m;
server {
listen 80;
server_name xx.com;
root /home/project/webapp;
index index.html;
location / {
limit_conn ops 10;
}
access_log /var/log/nginx/nginx_access.log main;
}
}
limit_conn_zone
:设定保存各个键(例如$binary_remote_addr)状态的共享内存空间的参数,zone=空间名字:大小大小的计算与变量有关limit_conn
:指定一块已经设定的共享内存空间(例如name为ops的空间),以及每个给定键值的最大连接数-
缓冲区溢出攻击
client_body_buffer_size 1K;
client_header_buffer_size 1k;
client_max_body_size 1k;
large_client_header_buffers 2 1k;
-
-
Header头设置
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
-
禁止访问 htaccess
location ~/.ht {
deny all;
}
-
禁止访问多个目录
location ~ ^/(picture|move)/ {
deny all;
break;
}
-
禁止访问 /data 开头的文件
location ~ ^/data {
deny all;
}
-
禁止访问单个目录
location /imxhy/images/ {
deny all;
}
原文始发于微信公众号(雨笋君):网络安全基础知识---nginx安全配置
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论