麒麟ARM服务器运维-升级Nginx版本及漏洞修复
前言
Nginx 1.22.0漏扫发现很多漏洞,这里考虑升级后的配置兼容性建议升级到1.26.3
这个版本经过了充分测试,适合生产环境,修复了 1.22 的所有已知高危漏洞。
服务器信息
系统名称
1 | cat /etc/.productinfo |
比如银河麒麟系统V10
Kylin Linux Advanced Server
release V10 (SP2) /(Sword)-aarch64-Build09/20210524
查看服务器架构
1 | uname -m |
- 如果输出是
x86_64,则表示服务器是 x86 架构。 - 如果输出是
aarch64,则表示服务器是 ARM 架构(ARM 64位)。 - 如果输出是
armv7l,则表示服务器是 ARM 架构(ARM 32位)。
制作本地yum源
下载iso镜像
1 | scp root@10.184.70.65:/home/Kylin-Server-10-SP2-Release-Build09-20210524-arm64.iso /home |
密码是服务器的初始密码
挂载镜像
1 | cd /home |
备份数据源
1 | cd /etc/yum.repos.d/ |
配置本地源
1 | vi local.repo |
内容如下
1 | [local] |
查看源
1 | yum repolist all |
清除缓存,建立本地源
1 | yum -y clean all |
安装Nginx
备份旧版本
1 | cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak |
安装
本地下载Nginx后上传
1 | https://nginx.org/download/nginx-1.26.3.tar.gz |
安装依赖
1 | yum install -y pcre pcre-devel zlib zlib-devel gcc-c++ openssl openssl-devel |
解压
1 | tar -zxvf nginx-1.26.3.tar.gz |
编译安装
1 | ./configure \ |
查找安装路径
1 | whereis nginx |
查看配置信息
1 | cd /usr/local/nginx/sbin |
添加软连接
1 | sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx |
查看Nginx信息
1 | nginx -V |
这时就可以这样检测了
1 | nginx -t |
注意
覆盖的时候不用停止Nginx服务吗?
答:完全不需要停止服务。
这正是 Nginx 最强大的特性之一:热更新(Hot Swapping)。
你可以直接在 Nginx 正在运行的时候覆盖(替换)二进制文件,服务不会中断,现有的连接(比如用户正在下载文件或浏览网页)也不会断开。
注册服务
在 Linux 上,将 Nginx 配置为一个服务以便它可以作为系统服务启动、停止和管理,通常需要创建一个 systemd 服务文件。
以下是如何为编译安装的 Nginx 创建一个 systemd 服务文件的步骤:
1. 创建 Nginx 服务文件
在 /etc/systemd/system/ 目录下创建一个新的服务文件,例如 nginx.service:
1 | sudo vi /etc/systemd/system/nginx.service |
2. 编辑服务文件内容
将以下内容粘贴到 nginx.service 文件中。
注意,根据你的 Nginx 安装路径调整 ExecStart 和 ExecReload 的路径。
1 | [Unit] |
3. 启用并启动 Nginx 服务
保存并关闭文件后,使用以下命令重新加载 systemd 配置,启动 Nginx 服务,并设置开机自启动:
1 | sudo systemctl daemon-reload |
4. 检查服务状态
你可以使用以下命令检查 Nginx 服务的状态:
1 | sudo systemctl status nginx |
5. 常用操作
启动服务:
1 | sudo systemctl start nginx |
停止服务:
1 | sudo systemctl stop nginx |
重启服务:
1 | sudo systemctl restart nginx |
重新加载配置:
1 | sudo systemctl reload nginx |
查看服务日志:
1 | sudo journalctl -u nginx |
添加配置
1 | cd /usr/local/nginx/conf |
修改根配置
1 | vi nginx.conf |
http内,server同级添加
1 | include /etc/nginx/conf.d/*.conf; |
创建目录
1 | mkdir -p /etc/nginx/conf.d/ |
添加配置
1 | cd /etc/nginx/conf.d/ |
内容
1 | server { |
重启Nginx
1 | systemctl restart nginx |
查看是否生效
1 | lsof -i:80 |
访问测试
1 | curl http://127.0.0.1/test.txt |
禁用弱加密算法
禁用 DES 和 3DES 主要是为了修复 Sweet32 漏洞 (CVE-2016-2183)。这些是过时的 64 位弱加密算法,容易受到攻击。
找到 ssl_ciphers 这一行,将其修改为以下推荐配置。这个配置明确排除了 3DES 和 DES,并优先使用现代安全算法。
1 | server { |