3. 搭建HTTPS 文件服务器

AI协助(ChatGpt)提问:

基于 RHEL 9.5 + Nginx + Let's Encrypt 的 HTTPS 文件服务器配置,文件路径为 /home/fs/sysidc/files,并通过端口 8888 提供文件下载服务,并且实现 安全加固

1. 安装nginx

  1. 更新系统并安装 Nginx:

dnf update -y
dnf install -y nginx
  1. 启动 Nginx 并设置为开机启动:

systemctl enable --now nginx
  1. 检查 Nginx 状态,确认是否正常运行:

systemctl status nginx

2. 配置 Let's Encrypt SSL 证书

  1. 安装 Certbot

dnf install -y certbot python3-certbot-nginx
  1. 申请证书

  • 使用 DNS 验证方式申请证书,按照提示在 DNS 配置中添加 TXT 记录:

certbot certonly --manual --preferred-challenges dns -d fs.sysidc.com
  • 生成证书后,证书和私钥将存储在以下路径:

证书:/etc/letsencrypt/live/fs.sysidc.com/fullchain.pem

私钥:/etc/letsencrypt/live/fs.sysidc.com/privkey.pem

3.配置 Nginx 作为文件服务器

  1. 创建存放文件的目录

  1. 配置 Nginx

编辑 /etc/nginx/conf.d/fs_sysidc.conf 文件,确保(开启目录浏览)配置正确:

安全起见,禁止目录浏览如下:(可选)

  1. 检查 Nginx 配置并重启

  • 检查 Nginx 配置是否正确:

  • 重启 Nginx 使配置生效:

4. 配置防火墙

启用并配置 firewalld

  1. 启动 firewalld 并使其开机启动:

  1. 开放 8888 端口并重新加载防火墙配置:

  1. 禁止 ICMP 请求(即禁止 ping):

  1. 检查防火墙状态和开放的端口:

  1. 开放 Ping(如需)

5. 配置 SELinux

  1. 确保 SELinux 处于 enforcing 模式,检查 SELinux 状态:

若输出是 SELinux status: disabled,则需要编辑 /etc/selinux/config 文件,修改为:

然后重启服务器:

  1. 允许 Nginx 访问文件目录

  1. 允许 Nginx 监听 8888 端口

6. 安全加固(可选项,配置复杂未配置成功)

安装并配置 fail2ban 防止暴力破解

  1. 安装 fail2ban:

  1. 启动并设置为开机启动:

  1. 配置 Nginx 相关的 fail2ban 规则:

  1. 重启 fail2ban:

  1. 使用 nmap 检测端口,确认服务器只开放了 8888 端口:

  1. 使用 curl 测试 HTTPS 访问

返回示例:

7. 配置自动更新证书

  1. 创建自动续期脚本编辑 /root/renew_cert.sh

  1. 赋予脚本执行权限

  1. 设置定时任务

添加:

8. 总结

  1. Nginx 文件服务器8888 端口运行,文件存放路径为 /home/fs/sysidc/files/

  2. HTTPS 证书 使用 Let's Encrypt 提供,需手动续签。

  3. 防火墙 只开放 8888 端口,禁止 Ping。

  4. SELinux 配置允许 Nginx 访问文件目录并监听 8888 端口。

  5. fail2ban 防止暴力破解,nmap 检查端口确保服务器安全。


这个配置将使 HTTPS 文件服务器 安全且高效地运行!

最后更新于