SadServers 通关记录
本文最后更新于 2023年3月26日 凌晨
“Like LeetCode for Linux”
SadServers 通关记录
关于 SadServers
-
SadServers 是一个 SaaS,用户可以在真正的 Linux 服务器上以类似“CTF”的方式测试他们的 Linux 运维技能。
-
为了减少地球二氧化碳排放,节省作者的 AWS 账单,一旦完成题目,建议使用
sudo shotdown -h now
关闭服务器。
Troubleshoot and make a sad server happy!
通关记录
“Saint John”: what is writing to this log file?
-
题目描述:某个测试程序连续写入日志文件
/var/log/bad.log
并填充磁盘。找到并终止它。 -
解答
1 |
|
- 检测
1 |
|
“Saskatoon”: counting IPs
-
题目描述:根据Web服务器访问日志
/home/admin/access.log
找出请求最多的 IP 地址,并将其写入/home/admin/highestip.txt
-
解答
1 |
|
- 检测
1 |
|
“Santiago”: Find the secret combination
-
题目描述:
- 找到
/home/admin
目录中字符串Alice
在*.txt
文件中的出现次数 - 在字符串
Alice
仅出现一次的文件中在此之后一行中的数字 - 将这两个数字写入
/home/admin/solution
- 找到
-
解答:
1 |
|
- 检测
1 |
|
“Manhattan”: can’t write data into database
-
题目描述:现有 Postgres 数据库中无法插入,解决该问题。
- Postgres 监听 5432 端口,data_directory 在
/opt/pgdata/main
,由 systemd 作为一个名为 postgresql 的单元进行管理
- Postgres 监听 5432 端口,data_directory 在
-
解答:
1 |
|
- 检测
1 |
|
“Tokyo”: can’t serve web file
-
题目描述:配置好的 Web 服务器,代理
/var/www/html/index.html
时异常 -
解答:
1 |
|
- 检测
1 |
|
“Cape Town”: Borked Nginx
-
问题描述:执行
curl -I 127.0.0.1:80
时回显curl -I 127.0.0.1:80 returns curl: (7) Failed to connect to localhost port 80: Connection refuse
。解决该异常。Nginx 由 systemd 管理。 -
解答:
1 |
|
- 检测
1 |
|
“Salta”: Docker container won’t start
-
问题描述:在 8888 端口上启动一个用于 Node.js 应用的容器,容器镜像目录在
/home/admin/app
-
解答:
1 |
|
- 检测
1 |
|
“Venice”: Am I in a container
-
问题描述:判断是在容器中还是在宿主机中
-
解答:
1 |
|
- 检测:无
“Oaxaca”: Close an Open File
-
问题描述:文件
/home/admin/somefile
已打开以供某些进程写入。在不终止进程的情况下关闭此文件。 -
解答:
1 |
|
- 检测
1 |
|
“Melbourne”: WSGI with Gunicorn
-
问题描述:
/home/admin/WSGI.py
是一个Python WSGI web应用程序文件,其目的是提供字符串“Hello,world!”。- 该文件由 Gunicorn 服务器提供,该服务器由 nginx 服务器前置(两个服务器均由 systemd管理)。
- 因此,HTTP请求的流程是:
Web Client(curl)->Nginx->Gunicorn->wsgi.py
。 - 目标是配置服务器使得
curl -s http://localhost
时返回“Hello,world!”。
-
解答:
1 |
|
- 检测
1 |
|
“Lisbon”: etcd SSL cert troubles
-
问题描述:在
https:// localhost:2379
上运行了一个 etcd 服务器,获取键“foo”的值 -
解答:
1 |
|
- 检测
1 |
|
“Jakarta”: it’s always DNS
-
问题描述:在
ping google.com
时返回ping: google.com: Name or service not known
-
解答:
1 |
|
- 检测
1 |
|
“Bern”: Docker web container can’t connect to db container
-
问题描述:一个正常的 Wordpress Docker 无法了解到 MariaDB Docker,
curl -s localhost:80 |tail -4
时显示Error establishing a database connection
-
解答:
1 |
|
- 检测
1 |
|
“Karakorum”: WTFIT – What The Fun Is This?
-
问题描述:一个二进制文件
/home/admin/wtfit
没法正常启动,试修复之 -
解答:
1 |
|
- 检测
1 |
|
“Singara”: Docker and Kubernetes web app not working
-
问题描述:从主机访问部署的“webapp”网络服务器并找到它服务的消息
-
解答:
1 |
|
- 检测
1 |
|
“Hong-Kong”: can’t write data into database
-
问题描述:类似于 “Manhattan” 问题,需要插入一行到 Postgres 数据库中
-
解答:
1 |
|
- 检测
1 |
|
“Pokhara”: SSH and other sshenanigans
-
问题描述:一个用户 client 和它的 SSH 公钥被添加到服务器。目标是能够作为该用户使用它的 SSH 密钥在本地进行 SSH(只有一台服务器)。
-
解答:
1 |
|
- 检测
1 |
|
“Roseau”: Hack a Web Server
-
问题描述:说明:本地 Apache Web 服务器可以提供的文件中存储了一个 secret。 找到这个 secret 并将其保存为
/home/admin/secret.txt
文件。- 密码破解程序 Hashcat 和 Hydra 是从软件包安装的,而 John the Ripper 二进制文件是从
/home/admin/john/run
中的源代码构建的
- 密码破解程序 Hashcat 和 Hydra 是从软件包安装的,而 John the Ripper 二进制文件是从
-
解答:
1 |
|
- 检测
1 |
|