Nginx 服务安全加固
一、 普通用户启动服务
名称:以非特权用户启动服务
实施目的:以特定用户运行服务,不要使用系统管理员帐号启动Nginx。
问题影响:越权使用造成非法攻击
系统当前状态:使用系统命令或使工具查看Nginx进程是否使用管理员或使特权用户启动的。
实施步骤:一般情况下,Nginx是由Root来安装和运行的。如果Nginx:worker进程具有Root用户特权,那么它将给系统的安全构成很大的威胁,应确保Nginx进程以最可能低的权限用户来运行。
通过修改nginx.conf 文件中的下列选项,以nginx用户运行worker达到相对安全的目的。
备份
nginx.conf
文件取消nginx 用户对所有目录的的读取权限,然后添加对网站目录的读取权限
3. 取消 nginx 对于/bin/sh 的执行权限
4. 重启nginx
二、限定非法主机访问
名称:控制哪些主机能够访问服务器
实施目的:防止恶意攻击
问题影响:非法访问
系统当前状态:通过查看nginx.conf配置文件确定系统当前状态
实施步骤:在nginx配置文件中强制限定允许某个网段或者某个IP接入服务器。
三、限定非法文件访问
名称:限定非法文件访问
实施目的:禁止nginx访问某类型的文件。
问题影响:非法访问,恶意攻击。
实施步骤:编辑nginx.conf配置文件
如,Nginx下禁止访问*.txt文件
四、限定非法目录访问
名称:限定非法目录访问
实施目的:禁止nginx访问Web目录之外的任何文件。的IP地址等内容。
问题影响:非法访问,恶意攻击。
实施步骤:
备注:
1、判定条件
无法访问Web目录之外的文件。
2、检测操作
访问服务器上不属于Web目录的一个文件,结果应无法显示。
五、修改默认服务端口
名称:更改默认端口
实施目的:更改nginx服务器默认端口,防止非法访问。
问题影响:恶意攻击。
实施步骤:
(1)修改nginx.conf配置文件,更改默认端口到6666。
(2)重启Nginx服务
备注:
1、判定条件
使用 6666 端口页面成功
2、检测操作
登陆http://ip:6666
六、隐藏服务器版本号
名称:隐藏服务器版本号
实施目的:隐藏服务器版本号,防备Nginx的版本漏洞被扫描到并利用
问题影响:恶意攻击。
实施步骤:
(1)修改 nginx.conf 配置文件,增加
(2)重启 Nginx 服务
备注:访问一个不存在的页面,错误页面404 NotFound 中不显示nginx版本号
八、控制缓冲区溢出攻击
名称:控制缓冲区溢出攻击
实施目的:控制缓冲区大小,防备溢出攻击
问题影响:恶意攻击。
实施步骤:
1、参考配置操作
(1)修改 nginx.conf 配置文件,修改缓冲区大小
(2)重启 Nginx 服务
九、控制并发连接数
名称:控制并发连接数
实施目的:控制并发连接数,防备Ddos攻击
问题影响:恶意攻击。
实施步骤:
(1)修改 nginx.conf 配置文件,修改单个 IP 的并发连接数大小
上面表示限制每个远程 IP地址的客户端同时打开连接不能超过64个。
(2)重启 Nginx 服务
十、限制可用的请求方法
名称:限制可用的请求方法
实施目的:限制可用的请求方法,防备利用应用漏洞攻击
问题影响:恶意攻击。
实施步骤:
(1)下面的指令将过滤只允许 GET,HEAD 和 POST 方法:
(2)重启 Nginx 服务
十一、漏洞补丁
名称:补丁修复
实施目的:升级Nginx修复漏洞
问题影响:容易引起恶意攻击。
系统当前状态:使用nginx -V
查看版本。
实施步骤:到Nginx 官网 查看公开的Nginx安全漏洞。
备注:升级补丁的风险极高,如当前版本没有漏洞不建议升级
十一、操作系统配置
名称:操作系统配置
实施目的:配置操作系统保护Web服务器
问题影响:控制攻击危害
系统当前状态:查看防火墙、用户权限以及Selinux配置
实施步骤:
1、Nginx以用户nginx运 行 , 但是根目录(/nginx或者/usr/local/ nginx/html)不应该设置属于用户 nginx或对用户nginx可写。
2、配置操作系统防火墙限制,下面的例子中只允许 user 用户在外面使用80连接,如果某个IP在60秒尝试连接到80端口的次数超过了15, iptables将会丢掉来自它的入站连接。
3、配置SELinux策略加固Nginx ,从项目主页下载 SELinux策略包并安装,用于强化 Linux 服务器上的 nginx 网络服务器的针对性 SELinux 策略。
最后更新于