0°

Nginx安全加固

1.nginx编译安装指定用户nginx

2.隐藏nginx信息

3.虚拟主机防webshell跨目录浏览

4.php_info的文件名解析漏洞

5.上传目录无执行权限

6.nginx的访问权限控制

7.根据需求做rewrite重写,增强安全性

8.https根据需要决定是否启用

9.有必要的情况下增加xss模块

10.404一类状态返回200隐藏URL

11.nginx日志

12.模块选择http_sub_module with-http_ssl_module http_stub_status_module xss-nginx-module

1.nginx编译安装指定用户nginx

使用命令useradd -M -s /sbin/nologin nginx

nginx安装编译参数–user=nginx –group=nginx

2.隐藏nginx信息

修改nginx_http_header_filter_module

#vi nginx-1.9.11/src/http/ngx_http_header_filter_module.c

将如下

static char ngx_http_server_string[] = “Server: nginx” ;

修改为

static char ngx_http_server_string[] = “Server: LTWS” ;

a) 修改nginx_http_header_filter_module

#vi nginx-1.9.11/src/http/ngx_http_special_response.c

将如下:

static u_char ngx_http_error_full_tail[] =

“<hr><center>” NGINX_VER “</center>”

“</body>”

“</html>”

;

static u_char ngx_http_error_tail[] =

“<hr><center>nginx</center>”

“</body>”

“</html>”

;

修改为:

static u_char ngx_http_error_full_tail[] =

“<center> “NGINX_VER” </center>”

“<hr><center>http://www.aqzt.com</center>”

“</body>”

“</html>”

;

static u_char ngx_http_error_tail[] =

“<hr><center>LTWS</center>”

“</body>”

“</html>”

;

修改后重新编译一下环境

3.主机防webshell跨目录浏览

a.在nginx.conf里把每个虚拟主机站点请求端口给区别开

b.为每个站点建一个conf,并进行配置

c.修改php-fpm启动脚本

d.启动服务

4.php_info的文件名解析漏洞

if ($request_filename ~* (.*)\.php) {

set $php_url $1;

}

if (!-e $php_url.php) {

return 403;

}

加入fcgi.conf即可

5..上传目录无执行权限

location ^~ /upload/ {

location ~* .*\.php?$ {

deny all;

}

}

6.nginx的访问权限控制

location ~ ^/script/ {

auth_basic “welcome to aqzt.com”;

auth_basic_user_file /var/www/test/script/.htpasswd;

}

mkdir /var/www/test/script

perl -e “print crypt(‘aqzt.com’,”\n”);”

nnUygd3RSf3u6

echo ‘nginx:nnUygd3RSf3u6’ > /var/www/test/script/.htpasswd

/usr/local/nginx/sbin/nginx -s reload

7.根据需求做rewrite重写,增强安全性

8.https根据需要决定是否启用

9.有必要的情况下增加xss-nginx-module

10.404一类状态返回200隐藏URL

server

{

listen 80;

server_name aqzt.com;

index index.html index.htm index.php;

root /data/web;

error_page 404 =200 /404.jpg;

11.nginx的日志启用,日志文件放在分区较大分区,定时清理或用定时日志脚本清理。

12.模块选择http_sub_module with-http_ssl_module http_stub_status_module xss-nginx-module

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!