本加固文档适用于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允许访问。
记录
版权归原作者 姑苏百晓生 所有, 如有侵权,请联系我们删除。