文章目录

隐藏版本号

http {
    server_tokens off;
}

经常会有针对某个版本的nginx安全漏洞出现,隐藏nginx版本号就成了主要的安全优化手段之一,当然最重要的是及时升级修复漏洞!

开启HTTPS

server {
    listen 443;
    server_name jszbug.com;
 
    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 /jszbug/ {
    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;
    }
}


Even

一90后在读计算专业大学生,擅长各种语言的hello world以及安装各种软件。

说点什么

avatar
200
  Subscribe  
提醒