| 
                        副标题[/!--empirenews.page--]
                          隐藏版本号 
 
- http { 
 -  server_tokens off; 
 - } 
 
  
经常会有针对某个版本的nginx安全漏洞出现,隐藏nginx版本号就成了主要的安全优化手段之一,当然最重要的是及时升级修复漏洞。 
  
开启HTTPS 
- server { 
 -  listen 443; 
 -  server_name ops-coffee.cn; 
 -   
 -  ssl on; 
 -  ssl_certificate /etc/nginx/server.crt; 
 -  ssl_certificate_key /etc/nginx/server.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; 
 - } 
 
  
上边表示只允许192.168.1.0/24网段的主机访问,拒绝其他所有 
也可以写成黑名单的方式禁止某些地址访问,允许其他所有,例如 
- location /ops-coffee/ { 
 -  deny 192.168.1.0/24; 
 -  allow all; 
 - } 
 
  
更多的时候客户端请求会经过层层代理,我们需要通过$http_x_forwarded_for来进行限制,可以这样写 
- 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; 
 -  } 
 - } 
 
  
限制请求方法 
- if ($request_method !~ ^(GET|POST)$ ) { 
 -  return 405; 
 - } 
 
  
$request_method能够获取到请求nginx的method 
配置只允许GETPOST方法访问,其他的method返回405 
拒绝User-Agent 
- if ($http_user_agent ~* LWP::Simple|BBBike|wget|curl) { 
 -  return 444; 
 - } 
 
  
可能有一些不法者会利用wget/curl等工具扫描我们的网站,我们可以通过禁止相应的user-agent来简单的防范 
Nginx的444状态比较特殊,如果返回444那么客户端将不会收到服务端返回的信息,就像是网站无法连接一样 
图片防盗链 
- location /images/ { 
 -  valid_referers none blocked www.ops-coffee.cn ops-coffee.cn; 
 -  if ($invalid_referer) { 
 -  return 403; 
 -  } 
 - } 
 
  
valid_referers:  验证referer,其中none允许referer为空,blocked允许不带协议的请求,除了以上两类外仅允许referer为www.ops-coffee.cn或ops-coffee.cn时访问images下的图片资源,否则返回403 
当然你也可以给不符合referer规则的请求重定向到一个默认的图片,比如下边这样 
- location /images/ { 
 -  valid_referers blocked www.ops-coffee.cn ops-coffee.cn 
 -  if ($invalid_referer) { 
 -  rewrite ^/images/.*.(gif|jpg|jpeg|png)$ /static/qrcode.jpg last; 
 -  } 
 - } 
 
  
控制并发连接数 
可以通过ngx_http_limit_conn_module模块限制一个IP的并发连接数 
- http { 
 -  limit_conn_zone $binary_remote_addr zone=ops:10m; 
 -  server { 
 -  listen 80; 
 -  server_name ops-coffee.cn; 
 -   
 -  root /home/project/webapp; 
 -  index index.html; 
 -  location / { 
 -  limit_conn ops 10; 
 -  } 
 -  access_log /tmp/nginx_access.log main; 
 -  } 
 - } 
 
  
limit_conn_zone: 设定保存各个键(例如$binary_remote_addr)状态的共享内存空间的参数,zone=空间名字:大小 
                                                (编辑:52站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |