我正在考虑租用一台服务器来托管web服务。尽管我信任主机提供商,但我仍然希望确保没有人可以访问我将存储在该机器上的秘密。
这些是我目前提高安全性的措施(从这里开始):
- 主机提供商设置了一切,并为我提供了根密码
- 我连接到服务器
ssh root@xxx.xxx.xxx.xxx
sudo apt update
sudo apt upgrade
- 创建新用户,将其添加到sudo组,以新用户身份登录
adduser bigpenus
usermod -aG sudo bigpenus
exit
ssh bigpenus@xxx.xxx.xxx.xxx
- 删除root帐号登录到ssh
sudo nano /etc/ssh/sshd_config
// PermitRootLogin no (changing from yes to no)
- 设置防火墙
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
- 完全禁用root账号
sudo passwd -l root
还有其他措施来加强安全。比如启用2FAFail2Ban. 你可以在上面的链接中阅读。
我还能做些什么来阻止提供者访问我的文件?
注:任何关于安全的建议将非常感激!
干杯!
您所做的将阻止您的主机提供商通过ssh连接,但只要他们对他们托管的机器有物理访问权限,您可以想象他们可以随时拔掉机器的插头,通过将其插入另一台机器直接查看硬盘驱动器。如果机器是虚拟机,或者有某种方法可以远程控制其硬件。他们甚至可能不需要关闭它,他们可能还可以直接看到内存中的内容…
当然,如果这是一项严肃的业务,他们不会这样做,但关键是,如果你不能看到(字面上用你的眼睛)硬件发生了什么,那么你必须信任。
除了提供程序之外,增加网络安全性总是一个好主意,我自己的提供程序的一个建议是在ssh端口防火墙规则中添加ip白名单(当然,如果您将白名单直接放在机器上,则需要确保您将保留对白名单中的ip的访问权限,否则您可能会失去对自己机器的访问权限)。许多云提供商提供了"安全组"。功能,如果是你的情况,你可以使用)