Web 服务器部署与灾难恢复

在此项目中,您将扮演 DevOps 工程师的角色,负责部署、保护和维护 Web 服务环境。您将实践软件安装、服务配置、SSH 加固、日志取证和灾难恢复。

DevOps 工程师LinuxDevOps

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

运行 Web 服务器不只是提供页面:你还要控制监听方式、保护管理入口、调查访问流量,并证明重要数据能够恢复。本挑战型项目通过四个会核验最终状态的 Linux 场景串联这些职责。

你将把 Nginx 部署到自定义端口、安装 SSH 公钥、审计监听套接字、从访问日志找出请求最多的客户端,并从压缩归档执行一次破坏性恢复测试。任务提供要求和提示,但命令选择与验证流程由你完成。

你将学到什么

  • 安装 Nginx,将默认监听端口改为 8080,部署指定页面内容并重启服务
  • 生成 RSA SSH 密钥对、授权公钥,并为 SSH 路径应用 700 和 600 权限
  • 以数字形式列出监听中的 TCP 套接字,并确认 SSH 端口 22 已暴露
  • 构建 Shell 文本处理管道,按来源 IP 统计请求并提取访问量最高者
  • 将 /var/www/html 和 /var/log/nginx 一同归档为 gzip 压缩 tar 文件并检查其内容
  • 模拟 Web 根目录丢失,在 / 解压归档,并验证关键页面内容恢复

本课程适合谁

本项目适合准备在没有逐条命令指导的情况下运用 Web 服务、SSH、日志处理和备份技能的 Linux 与 DevOps 学习者。

前置要求: 熟悉软件包与服务管理、文本编辑、Shell 管道、SSH 文件、权限、网络套接字检查和 tar;这是考核型项目。

学习环境: 可通过浏览器访问的 Ubuntu 主机,提供 sudo、APT、Nginx、OpenSSH 工具、Zsh、标准 GNU/Linux 工具及预置日志和 Web 数据;无需云账户或远程服务器。

常见问题

SSH 挑战会彻底禁用密码认证吗?

不会。它会生成 /home/labex/.ssh/id_rsa,把公钥追加到 authorized_keys 并修正权限,但不会修改 sshd_config、禁用密码或测试远程登录。

我会关闭意外开放的网络端口吗?

不会。你只使用 ss 或 netstat 以数字形式列出监听 TCP 端口并确认端口 22;防火墙变更和停止服务不在任务范围内。

如何识别请求最多的客户端?

你会分析 /var/log/nginx/access.log 的第一列,对相同 IP 分组计数并按频次排序,再把最高者 203.0.113.42 单独写入 /home/labex/attacker_ip.txt。

灾难恢复测试实际删除并恢复什么?

归档包含 Web 根目录和 Nginx 日志,但模拟故障只删除 /var/www/html。你会在文件系统根目录解压归档,并验证包含 Critical Web Content 的 index.html 再次存在。

教师

labby
Labby
Labby is the LabEx teacher.