在你继续之前,我必须告诉你,我于 2019 年 8 月 1 日在 unix.stackexchange 上问过这个问题,但没有得到任何适当的答复。所以我把整个问题都带到这里,但是这里是我最初提出这个问题的地方,供您参考,我鼓励您快速浏览一下。到目前为止,我还没有找到任何相关问题。提前感谢您的关注。
我订购了一台搭载 Ubuntu 16.04/64 位 LTS 服务器版本的 VPS,并开放了一些对我的应用程序至关重要的端口。
最近VPS交付给我了,所以我使用ssh访问了VPS并更改了ssh密码。
现在我的问题是:
我如何确保我收到的 Ubuntu 16.04 安装版本,是全新安装,并且相对于 Ubuntu 公开提供的原始操作系统没有任何额外的功能(恶意或非恶意)和/或额外的文件?
现在我不得不说我信任我的 VPS 提供商,但总体而言我有这个问题。
不幸的是我找不到任何类似的问题。所以如果你能给我推荐一个,我会很高兴。
以下是可能有帮助的更多详细信息。
谢谢。
cat /etc/os-release
输出:
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
hostnamectl
输出:
Static hostname: ubuntu
Icon name: computer-vm
Chassis: vm
Machine ID: *** (not shown deliberately)
Boot ID: *** (not shown deliberately)
Virtualization: vmware
Operating System: Ubuntu 16.04.6 LTS
Kernel: Linux 4.4.0-157-generic
Architecture: x86-64
uname -r
输出:
4.4.0-157-generic
答案1
我的第一个建议是使用 比较所有文件的列表diff
。您可能能够在某个地方找到默认安装中的所有文件列表,但我的搜索(虽然很粗略)没有找到任何结果。如果找不到,您需要安装一个临时的 Ubuntu 服务器,其设置尽可能与您估计的设置相似,并使用updatedb
并locate
生成所有文件的列表。
updatedb
locate / > all_files.txt
同样地,您可以使用find
。
find / > all_files.txt
从两个系统获取这些列表,然后diff
在这些列表之间执行比较,以查找系统间存在差异的所有文件。如果文件的顺序不同,这可能会非常混乱,这就是为什么我建议updatedb
这样做find
,因为我认为find
不太可能以相同的顺序生成列表(如果我错了,请纠正我)。对已识别的差异进行审查将告诉您是否有人试图偷偷带入或带出某些内容。
当然,这不会告诉你他们是否更改了文件内的内容,但如果与基本安装有很大偏差,我预计至少会看到一些新文件,因为这样做会试图破坏系统。这并不是说他们不能做出改变来创建一个故意不安全的系统,但无论如何,当你妥善保护系统时,你很可能会发现这一点。