我正在招聘站点可靠性工程职位,我想创建一个“损坏的”虚拟机供他们登录和调试。
您建议我采用什么样的场景来准确测试申请人对 Linux 命令行和基本 Web 服务器(LAMP)功能的了解?
我们在 AWS 上运行 Ubuntu 环境。
答案1
编辑使用 AppArmor 替换 Ubuntu 的 SELinux
以下是一些在 VM 中易于设置的建议(多年来我遇到过):
- 为 Web 服务器应传递的内容设置无效的 POSIX 权限。
- 为内容设置无效的 SELinux 标签。
- 断开 Web 服务器和后端服务器之间的连接(例如使用 IPTables 或 SELinux)
- 正如@anx 建议的那样,使用
/etc/hosts
条目或无效的名称服务器破坏 DNS - 创建无效的虚拟主机/ SNI 配置,导致 Web 服务器以不正确的虚拟主机内容进行回复。
- 创建调用 OOM-Killer 的资源耗尽场景。
- 使用firewalld/iptables/nftables/SELinux 阻止入站连接。
- 创建一个缺少内容的配置 - 例如缺少用户和主目录、缺少内容、拼写错误的 IP 地址或目录名等。
- 阻止出站连接并从需要它们的网络服务器提供应用程序。
- 停止并禁用所需的服务 - 例如数据库服务器。
- 扰乱应用程序数据库用户的密码或输入错误。
- 删除应用程序数据库用户的授权。
- 填充文件系统。
- 根据文本编码和排序规则在应用程序中引入失败状态(例如混乱的字符、丢失的数据)。