🙊
🙊
🙊
🙊
关于作者
搜索文档…
🙊
🙊
🙊
🙊
关于作者
个人简历
联系作者
运维面试必问
RAID 磁盘阵列
MBR 与 GPT 分区
Linux 内核优化
关系型数据库
关系型数据库基本原理
SQL 基本语法
Linux运维学习笔记
计算机网络基础知识
Linux 系统启动过程
Linux 命令基本格式
Linux 文件删除原理
Linux 命令行判断GPT和MBR分区
Linux 目录结构说明
Linux 查看命令帮助信息
Linux Yum 命令
Linux Apt 命令
Linux 运维管理
Linux 硬件管理
Linux 软件管理
Linux 磁盘管理
Linux 系统管理
Linux 网络管理
Linux 用户和组管理
Linux 文件与目录管理
Linux 文件压缩与解压缩管理
Linux SSL证书自动更新管理
系统安全加固
Linux 操作系统加固
Windows 操作系统安全加固
Password 安全加固
OpenSSL 安全加固
NFS 服务安全加固
Rsync 服务安全加固
IIS 服务安全加固
PHP 语言环境安全加固
Apache 服务安全加固
Nginx 服务安全加固
Tomcat 服务安全加固
MySQL 服务安全加固
PostgreSQL 服务安全加固
Redis 服务安全加固
MongoDB 服务安全加固
暴力破解攻击和防御
Linux 系统故障排查
Linux 系统重置密码方法
Linux 系统误操作修改目录权限为 777 修复方法
Windows 系统故障排查
Windows 和 Windows Server 中启用/禁用 SMBv1、SMBv2 和 SMBv3
Windows10建立映射网络驱动器报错,无法挂载共享文件系统,解决办法
运维工具使用
常用 Git 命令简介及使用
常用 SVN 命令简介及使用
常用 Vi / Vim 文本编辑工具简介及使用
国内常用加速源使用及配置
软碟通制作U启动和再生龙恢复Linux系统及备份
常用JetBrains系列IDE快捷键
运维环境搭建
CentOS 7 安装与优化
CentOS 安装高版本Node.js
CentOS 升级安装Python2.7.X
CentOS 安装 Python3.8.X
CentOS 安装 PHP7.4.X
CentOS 安装 Mysql 8.0
CentOS 安装 Zabbix 5.0
Windows Server 部署 IIS
Cronsun 任务管理器部署
Teltport 堡垒机部署
Jump Server 堡垒机搭建及使用
CI & CD 持续集成部署
ELK6.5.0+Filebeat 日志系统部署
中间件教程学习
Nginx 极简教程
Nginx 安装
Nginx 配置
Nginx 问题集
Mysql 教程
Mysql 运维
Mysql 原理
Redis 教程
Redis 持久化
Redis 复制
Redis 哨兵
Redis 集群
Redis 运维
PostgreSQL 教程
H2 教程
SqLite 教程
Linux 命令大全
Linux 运维教程
Shell 教程
Java 教程
Python 全栈教程
nftables 中文教程
Docker -入门到实践
Docker 入门教程
Prometheus 监控
Kubernetes中文指南/云原生应用架构实践手册
ELKstack 中文指南
Elasticsearch 权威指南
Python 入门指南
Nginx 入门教程
MySQL 入门教程
Go 语言高级编程
Python 爬虫教程
Github 漫游指南
Jenkins 中文教程
数据库中间件 flyway
Nosql 数据库
常用工具快捷键
Windows10常用快捷键大全
PyCharm 使用技巧
由
GitBook
提供支持
Nginx 服务安全加固
博客作者:联系请
点击
,搬运不易,希望请作者喝咖啡,可以点击
联系博客作者
一、 普通用户启动服务
名称:
以非特权用户启动服务
实施目的:
以特定用户运行服务,不要使用系统管理员帐号启动Nginx。
问题影响:
越权使用造成非法攻击
系统当前状态:
使用系统命令或使工具查看Nginx进程是否使用管理员或使特权用户启动的。
1
User nginx;
2
Worker_processes 8;
Copied!
实施步骤:
一般情况下,Nginx是由Root来安装和运行的。如果Nginx:worker进程具有Root用户特权,那么它将给系统的安全构成很大的威胁,应确保Nginx进程以最可能低的权限用户来运行。
通过修改nginx.conf 文件中的下列选项,以nginx用户运行worker达到相对安全的目的。
1.
备份
nginx.conf
文件
2.
取消nginx 用户对所有目录的的读取权限,然后添加对网站目录的读取权限
1
chmod o-r –R /
2
chmod o+r –R html/
Copied!
3. 取消 nginx 对于/bin/sh 的执行权限
1
chmod 776 /bin/sh
Copied!
4. 重启nginx
二、限定非法主机访问
名称:
控制哪些主机能够访问服务器
实施目的:
防止恶意攻击
问题影响:
非法访问
系统当前状态:
通过查看nginx.conf配置文件确定系统当前状态
实施步骤:
在nginx配置文件中强制限定允许某个网段或者某个IP接入服务器。
1
location /
2
{
3
deny 192.168.1.1;
4
allow 192.168.1.0/24;
5
allow 10.1.1.0/16;
6
deny all;
7
}
Copied!
三、限定非法文件访问
名称:
限定非法文件访问
实施目的:
禁止nginx访问某类型的文件。
问题影响:
非法访问,恶意攻击。
实施步骤:
编辑nginx.conf配置文件
如,Nginx下禁止访问*.txt文件
1
location ~* \.(txt|doc)${
2
root /var/InfiNET/web /test;
3
deny all;
4
}
5
禁止下载以点开头的文件
6
location ~ /\..+ {
7
deny all;
8
}
Copied!
四、限定非法目录访问
名称:
限定非法目录访问
实施目的:
禁止nginx访问Web目录之外的任何文件。的IP地址等内容。
问题影响:
非法访问,恶意攻击。
实施步骤:
1
location ~ ^/(WEB-INF)/
2
{deny all;
3
}
Copied!
备注:
1、判定条件
无法访问Web目录之外的文件。
2、检测操作
访问服务器上不属于Web目录的一个文件,结果应无法显示。
五、修改默认服务端口
名称:
更改默认端口
实施目的:
更改nginx服务器默认端口,防止非法访问。
问题影响:
恶意攻击。
实施步骤:
(1)修改nginx.conf配置文件,更改默认端口到6666。
1
server{
2
listen 6666 ;
3
server_namelocalhost;
Copied!
(2)重启Nginx服务
备注:
1、判定条件
使用 6666 端口页面成功
2、检测操作
登陆http://ip:6666
六、隐藏服务器版本号
名称:
隐藏服务器版本号
实施目的:
隐藏服务器版本号,防备Nginx的版本漏洞被扫描到并利用
问题影响:
恶意攻击。
实施步骤:
(1)修改 nginx.conf 配置文件,增加
1
server_tokens off http {
2
server_tokens off;
Copied!
(2)重启 Nginx 服务
备注:
访问一个不存在的页面,错误页面404 NotFound 中不显示nginx版本号
八、控制缓冲区溢出攻击
名称:
控制缓冲区溢出攻击
实施目的:
控制缓冲区大小,防备溢出攻击
问题影响:
恶意攻击。
实施步骤:
1、参考配置操作
(1)修改 nginx.conf 配置文件,修改缓冲区大小
1
## Start: Size Limits & Buffer Overflows ## client_body_buffer_size1K; client_header_buffer_size 1k; client_max_body_size 1k; large_client_header_buffers 2 1k;
2
3
## END: Size Limits & Buffer Overflows ##
Copied!
(2)重启 Nginx 服务
九、控制并发连接数
名称:
控制并发连接数
实施目的:
控制并发连接数,防备Ddos攻击
问题影响:
恶意攻击。
实施步骤:
(1)修改 nginx.conf 配置文件,修改单个 IP 的并发连接数大小
1
### 1m can handle 32000 sessions limit_zone slimits $binary_remote_addr 5m; limit_conn slimits 64;
Copied!
上面表示限制每个远程 IP地址的客户端同时打开连接不能超过64个。
(2)重启 Nginx 服务
十、限制可用的请求方法
名称:
限制可用的请求方法
实施目的:
限制可用的请求方法,防备利用应用漏洞攻击
问题影响:
恶意攻击。
实施步骤:
(1)下面的指令将过滤只允许 GET,HEAD 和 POST 方法:
1
## Only allow these request methods ##
2
if($request_method !~ ^(GET|HEAD|POST)$ ) {
3
return444;
4
}
Copied!
(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将会丢掉来自它的入站连接。
1
iptables -A OUTPUT -o eth0 -m owner --uid-owner vivek -p tcp --dport 80 -m state --state NEW,ESTABLISHED-j ACCEPT
2
iptables -A INPUT -p tcp –dport 80 -i eth0 -m state –state NEW -m recent –update –seconds 60 –hitcount 15 -j DROP service iptables save
Copied!
3、配置SELinux策略加固Nginx ,从
项目主页
下载 SELinux策略包并安装,用于强化 Linux 服务器上的 nginx 网络服务器的针对性 SELinux 策略。
系统安全加固 - 以前
Apache 服务安全加固
下一个 - 系统安全加固
Tomcat 服务安全加固
最近更新
1yr ago
复制链接
内容
一、 普通用户启动服务
二、限定非法主机访问
三、限定非法文件访问
四、限定非法目录访问
五、修改默认服务端口
六、隐藏服务器版本号
八、控制缓冲区溢出攻击
九、控制并发连接数
十、限制可用的请求方法
十一、漏洞补丁
十一、操作系统配置