1.版本:应该从nginx官方提供的下载页面下载最新稳定版本,注意不要下载beta版本。nginx官网下载地址为:http://nginx.org/en/download.html
2.消除目录浏览漏洞:nginx默认不允许目录浏览,请检查目录浏览的相关配置,确保没有目录浏览漏洞:检查各个配置文件,确保autoindex的配置为off。
autoindex off |
---|
3.开启访问日志:开启日志有助于在发生安全事件后回溯分析事件的原因和定位攻击者。默认情况下,nginx已经开启日志访问功能。
access_log /backup/nginx_logs/access.log combined; |
---|
4.目录安全配置:nginx应该严格保证用户上传文件的目录没有执行脚本的权限,如取消upload目录执行php权限可以在配置文件中设置:
location ~* ^/upload/ .*\.(php|php5)$ { deny all; } |
---|
5.管理目录安全配置:对于管理目录,需要做到只允许合法ip可以访问,nginx限制白名单ip访问的配置日下:
location ~ ^/admin/ {allow 192.168.1.0/24;deny all;} |
---|
管理目录建议启用密码认证,密码认证依靠Web应用自身的认证机制。如果Web应用无认证机制,可启用nginx的密码认证机制,配置样例如下:
location ^~ /soft/ { location ~ .*\.(php|php5)?$ { fastcgi_pass unix:/tmp/php-cgi.sock;#这里按照你自己的设置 fastcgi_index index.php; include fcgi.conf; }auth_basic "Authorized users only";auth_basic_user_file 这里写前面脚本返回的文件路径;} |
---|
6.删除默认页面:删除nginx默认首页index.html,业务可以自行创建默认首页代替之。Nginx存在默认目录:
删除如下配置信息。
location /doc { root /usr/share; autoindex on; allow 127.0.0.1; deny all; } location /images { root /usr/share; autoindex off; } |
---|
删除首页index.html后,新建其他首页内容不允许出现如下首页内容: