Nginx安全配置文档

Nginx安全配置文档

1.配置文档中有多处明确写出了nginx的配置文件路径,该路径是测试环境中的路径,线上系统的nginx配置文件与文档中所写的路径可能不一样,在进行相关配置时,应以线上配置文件的实际路径为准。

线上系统nginx的安装目录在:/usr/local/nginx,默认配置文件在/usr/local/nginx/conf/nginx.conf,此外也引用了/usr/local/nginx/conf/conf.d目录下的配置文件。

2.本文档仅包括了用于提升安全的配置方法。

3.在遵从本文档的方法进行配置前,请做好相关配置文件的备份,以便在配置失败时可以回退到变更前状态。

1.新安装,选用安全稳定版本

编号:

Nginx_Sec_001

适用:

LINUX下新安装或者升级nginx服务器

配置要求:

1.安装包要求从nginx官方网站获取,官方网站地址:nginx

2.安装包优先选用稳定版(stable)最新版,如果要跨大版本升级nginx,则要求在测试环境测试不存在兼容性问题后才在生产环境进行部署。

3.要求对下载的源码安装包文件进行完整性验证。

具体方法参考“备注”处的方法。

安全增强说明:

1.从官方网站下载安装包及对安装包进行指纹验证可以最大程度确保安装文件未被篡改;

2.使用最新版本,最大避免旧版版中已发现安全漏洞的威胁,使用稳定版可以确保功能稳定。

备注:

完整性验证方法:

(1)每个nginx源码包都有一个签名文件,从官网访问下载nginx源码包的同时也下载该源码包的签名文件到同一目录,该签名文件是nginx官方使用pgp私钥对源码包进行签名得到,该文件后缀.为.asc,获取pgp签名文件方法:

(2)nginx源码包使用的是pgp签名,进行签名验证时需要到GnuPG程序,如果没有安装该工具,可以使用yum install gnupg进行安装。

  (3)获取pgp签名文件的公钥ID,执行:# sudo gpg --verify nginx-1.11.3.tar.gz.asc

gpg: Signature made Tue 26 Jul 2016 09:59:49 PM CST using RSA key ID A1C052F8

gpg: Can't check signature: No public key

  (4)根据ID号从公钥服务器中下载公钥,如下:

 #sudo  gpg --keyserver hkp://keys.gnupg.net --recv-keys A1C052F8

gpg: requesting key A1C052F8 from hkp server keys.gnupg.net

gpg: /root/.gnupg/trustdb.gpg: trustdb created

gpg: key A1C052F8: public key "Maxim Dounin " imported

gpg: key A1C052F8: public key "Maxim Dounin " imported

gpg: no ultimately trusted keys found

gpg: Total number processed: 2

gpg:               imported: 2  (RSA: 2)

(5)利用公钥验证nginx源码包和签名文件,如下,说明文件没有被篡改:

# sudo  gpg --verify nginx-1.11.3.tar.gz.asc

gpg: Signature made Tue 26 Jul 2016 09:59:49 PM CST using RSA key ID A1C052F8

gpg: Good signature from "Maxim Dounin "

gpg: WARNING: This key is not certified with a trusted signature!

gpg:          There is no indication that the signature belongs to the owner.

Primary key fingerprint: B0F4 2533 73F8 F6F5 10D4  2178 520A 9993 A1C0 52F8

2.使用普通账号运行nginx服务 

编号:

Nginx_Sec_002

适用:

LINUX下新安装部署或已上线nginx服务器

配置要求:

nginx服务器的work进程不能使用root账号运行,要求以普通账号运行,具体方法参考“备注”处的方法。

安全增强说明:

防范或降低攻击者通过上传webshell来获取到的执行权限

备注:

配置普通账号运行nginx服务方法:

1.nginx(worker进程)默认以nobody运行,创建普通账号nginx,使用nginx账号来运行

 # sudo  groupadd -g 1001 nginx #创建nginx组

# sudo  useradd  -s /sbin/nologin -M -g nginx -u 1001 nginx #创建nginx用户并加入到nginx组,不创建家目录,不允许nginx账号登录。

说明:GID和UID定义为1000,避免与nis系统上的账号的ID冲突。

2.以普通账号nginx来运行Nginx,两个方法:

 方法1:如果是新安装nginx,编译时添加--user=nginx  --group=nginx参数;

 方法2:已完成nginx的安装,通过修该配置文件来指定,如下:

  1)# sudo vim /usr/local/nginx/conf/nginx.conf

  2)将#user  nobody;改成user nginx nginx;

 3)测试配置文件是否正确,执行命令# sudo /usr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值