运行 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 再次存在。





