如何确保托管服务提供商无法访问我的秘密?

How to make sure hosting provider can not access my secrets?

我正在考虑租用服务器来托管 Web 服务。尽管我非常信任托管服务提供商,但我仍然想确保没有人可以访问我将存储在该机器上的秘密。

这些是我目前提高安全性的措施 (taken from here):

  1. 托管服务提供商设置一切并为我提供 root 密码
  2. 我连接到服务器
ssh root@xxx.xxx.xxx.xxx
  1. 更新一切
sudo apt update
sudo apt upgrade
  1. 创建新用户,将其添加到 sudo 组,以新用户身份登录
adduser bigpenus
usermod -aG sudo bigpenus
exit
ssh bigpenus@xxx.xxx.xxx.xxx
  1. 正在从登录到 ssh 中删除 root 帐户
sudo nano /etc/ssh/sshd_config
// PermitRootLogin no (changing from yes to no)
  1. 设置防火墙
sudo ufw default deny outgoing
sudo ufw default deny incoming

sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp

sudo ufw enable
  1. 完全禁用根帐户
sudo passwd -l root

还有其他加强安全的措施。比如启用 2FA 身份验证,安装 Fail2Ban。您可以在上面的 link 中阅读它。

我还能做些什么来阻止提供商访问我的文件?

P.S。任何有关安全的建议将不胜感激!

干杯!

你所做的会阻止你的托管服务提供商通过 ssh 连接,但只要他们可以物理访问他们托管的机器,你可以想象他们可以随时拔下机器并查看硬盘驱动器直接插在另一台机器上。如果机器是虚拟机或有某种方法可以远程控制其硬件。他们甚至可能不必关闭它,他们也可能直接看到内存中的内容...

当然,如果这是一项严肃的业务,他们不会这样做,但关键是,如果您看不到(从字面上看)硬件发生了什么,那么您必须相信。

除了提供商之外,增加网络安全始终是一个好主意,我自己的提供商的一个建议是在 ssh 端口防火墙规则中添加一个 ip 白名单(当然你需要确保你可以访问如果你直接把白名单放在机器上,你把ip放在白名单里,否则你可能无法访问你自己的机器。很多云提供商在他们的管理控制台中提供了一个“安全组”功能,如果是你的情况,你可以使用那个)