0


Nginx安全加固

本加固文档适用于nginx中间****件。明确了nginx安全配置方面的基本要求。

一.开启SELinux****

操作目的

防止大多数系统****root级攻击

检查方法

#getsebool –a 查看SELinux设置项

加固方法

getsebool -a | lessgetsebool -a | grep offgetsebool -a | grep o

然后使用setsebool命令开启需要的配置项

记录

备注

开启SELinux后,在RHEL或CentOS上通常会增加2-8%的系统开销。

二.通过mount参数提供最低权限****

操作目的

通过****mount参数提供最低权限

检查方法

cat nginx.conf|grep autoindex

加固方法

为/html/php文件创建独立的分区,例如,创建一个/dev/sda5分区挂载在/ngnix上,确定/ngnix使用了noexec,nodev和nosetuid权限挂载。下面是一个挂载实例:

LABEL=/nginx /nginx ext3 defaults,nosuid,noexec,nodev 1 2

注意:需要使用fdisk和mkfs.ext3命令创建一个新分区。

记录

备注

三.禁止autoindex

操作目的

禁止****目录列出

检查方法

查看nginx配置文件是否禁用autoindex,即autoindex off或者没有配置autoindex

加固方法

在nginx配置文件中 修改 autoindex on 为 autoindex off

记录

备注

四.关闭服务器标记

操作目的

禁止显示服务器的版本和信息

检查方法

curl -I 某个应用URL, 查看是否错误页面都会显示服务器的版本和信息

加固方法

修改nginx.conf配置文件如下:

http{

include       naxsi_core.rules;

include      mime.types;

default_type  application/octet-stream;

sendfile        on;

server_tokens off;

... ...

记录

备注

五.自定义缓存

操作目的

设置自定义缓存以限制缓冲区溢出攻击

检查方法

加固方法

修改nginx.conf配置文件如下:

http{

... ...

server{

    ... ...

    client_body_buffer_size  16K;

   client_header_buffer_size  1k;

    client_max_body_size  1m;

   large_client_header_buffers  4  8k;

    ... ... 

上述的参数不是最优参数,仅供参考

记录

六.设置连接超时****

操作目的

设置****timeout设低来防御DOS攻击

检查方法

查看nginx.conf 主配置文件是否设置timeout参数

加固方法

修改nginx.conf配置文件如下:

http {

... ...

   client_body_timeout   10;

   client_header_timeout  30;

   keepalive_timeout     30  30;

   send_timeout          10;

记录

******七.**配置日志

操作目的

设置****timeout设低来防御DOS攻击

检查方法

#tail -3f /usr/local/nginx/logs/dfh.smartcity.com.log查看Nginx的日志文件是否存在,并且访问应用时,有日志输出。

加固方法

鉴于日志的输出格式还未确定,目前暂时先使用Nginx默认的日志格式。

修改nginx.conf配置文件如下:

http {

......

log_format  main  '$remote_addr - $remote_user [$time_local]"$request" ''$status $body_bytes_sent "$http_referer"''"$http_user_agent" "$http_x_forwarded_for"';

access_log logs/ access.log  main;

... ...

记录

八.限制访问的方法

操作目的

拒绝除了post和get方式****请求

检查方法

尝试使用不同的请求方式是否能访问

加固方法

修改nginx.conf配置文件如下:

server{

   ... ...

   if($request_method !~ ^(GET|HEAD|POST)$) {        

                 return404;

          }

   ... ...

记录

九.限制访问IP

操作目的

限制某些****IP地址的客户端访问

检查方法

查看nginx.conf 主配置文件

加固方法

如下范例:

location/ {

deny  192.168.1.1;

allow 192.168.1.0/24;

allow 10.1.1.0/16;

allow 2001:0db8::/32;

deny  all;

}

注:规则按照顺序依次检测,直到匹配到第一条规则。 在这个例子里,IPv4的网络中只有 10.1.1.0/16 和 192.168.1.0/24允许访问,但 192.168.1.1除外, 对于IPv6的网络,只有2001:0db8::/32允许访问。

记录

标签: nginx web安全

本文转载自: https://blog.csdn.net/jiangteddt/article/details/127447523
版权归原作者 姑苏百晓生 所有, 如有侵权,请联系我们删除。

“Nginx安全加固”的评论:

还没有评论