目录
1、隐藏版本号
2、配置错误页面重定向
3、添加header防止XSS攻击
4、利用referer图片防盗链
5、拒绝某些user-agent
6、限制HTTP请求方法
7、nginx开启https
8、控制迸发连接数
1、隐藏版本号
说明: 由于某些 Nginx 漏洞只存在于特定的版本,隐藏版本号可以提高安全性。
Nginx隐藏版本信息配置示例:
[root@localhost ~]# curl -I 192.168.6.116
HTTP/1.1 200 OK
Server: nginx/1.20.1
[root@localhost ~]# vim /etc/nginx/nginx.conf
http {
server_tokens off;
[root@localhost ~]# systemctl restart nginx.service
[root@localhost ~]# curl -I 192.168.6.116
HTTP/1.1 200 OK
Server: nginx
2、配置错误页面重定向
http {
...
error_page 401 /401.html;
error_page 402 /402.html;
error_page 403 /403.html;
error_page 404 /404.html;
error_page 405 /405.html;
error_page 500 /500.html;
...
}
3、添加header防止XSS攻击
说明:
- X-Frame-Options:标识是否允许浏览器加载frame等属性。
- DENY:禁止任何网页被嵌入
- SAMEORIGIN:只允许本网站的嵌套
- ALLOW-FROM:允许指定地址的嵌套
- X-XSS-Protection:启用XSS过滤。mode=block标识若检查到XSS攻击则停止渲染页面
- X-Content-Type-Options:用来指定浏览器对未指定或错误指定Content-Type资源真正类型的猜测行为
- nosniff:标识不允许任何猜测
- 在通常的请求相应中,浏览器会根据Content-Type来分辨响应的类型,如果响应类型未指定或错误指定时,浏览器会启用MIME-sniffing来猜测资源的响应类型
Nginx添加Header示例:
location / {
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
}
4、利用referer图片防盗链
说明:
- valid_referers:验证referer
- none:允许referer为空
- blocked:允许不带协议的请求
Nginx校验referer配置示例:
location /images/ {
valid_referers none blocked <domain_name> <domain_name>;
if ($invalid_referer) {
return 403;
}
}
5、拒绝某些user-agent
说明:禁止一些爬虫的扫描
Nginx拒绝User-Agent配置示例:
if ($http_user_agent ~* LWP::Simple|BBBike|wget|curl){
return 444;
}
6、限制HTTP请求方法
说明:$request_method能获取到请求时所使用的method,应该配置只使用GET/POST方法访问,其他的method返回405
Nginx限制HTTP请求方式示例:
if ($request_method !~ ^(GET|POST)$ ){
return 405;
}
7、nginx开启https
server {
listen 443;
server_name <xxx>;
# 开启https
ssl on;
# 配置nginx ssl证书的路径
ssl_certificate <pem路径>;
# 配置nginx ssl证书key的路径
ssl_certificate_key <key路径>;
# 指定客户端建立连接时使用的ssl协议版本
ssl_protocols TLSv1.2;
# 指定客户端连接时所使用的加密算法
ssl_ciphers HIGH:!aNULL:!MD%
}
8、控制迸发连接数
说明:文章来源:https://www.toymoban.com/news/detail-717764.html
- limit_conn_zone:设定保存各个属性状态的共享内存空间的参数
- limit_conn_zone <属性> zone=<空间名称>:<大小>
- limit_conn:为已经设定zone的属性设置最大连接数
- limit_rate:限制单个连接使用的带宽
Nginx限制并发数配置示例:文章来源地址https://www.toymoban.com/news/detail-717764.html
http {
limit_conn_zone $binary_remote_addr zone=ops:10m;
limit_conn_zone $server_name zone=coffee:10m;
server {
listen 80
server_name <server_name>;
...
location / {
limit_conn opos 10; # 限制单一IP来源的连接数为10
limit_conn coffee 2000; # 限制单一虚拟服务器的总连接数为2000
limit_rate 500k; # 限制单个连接使用的带宽
}
}
}
到了这里,关于nginx通过配置文件来进行的安全方面优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!