我有一个基于云的服务器。我按照本指南配置其安全性:http://www.rubytreesoftware.com/resources/securely-setup-ubuntu-1404-server
SSH的配置如下:
# Edit or add the following configuration to sshd_config
PermitRootLogin no
PasswordAuthentication no
X11Forwarding no
AllowUsers andy deploy
我通过将笔记本电脑上的私钥添加到主机上的授权密钥来向远程服务器进行身份验证。
我担心的是,如果我在笔记本电脑上丢失了公钥,会发生什么。我是否锁定了服务器?这里的最佳做法是什么 - 以及我如何降低丢失公钥的风险?
如果我的公钥发生变化会怎样?如果发生这种情况,我是否可以“备份”我的公钥?我认为不行,因为它是特定于机器的密钥对,但值得检查。
使用的防火墙是 ufw,配置如下:
# configure ufw
sudo ufw logging on
sudo ufw allow ssh
sudo ufw allow www
如果我应该采取其他措施来保护这台提供 Web 应用程序的服务器,请告诉我我遗漏了什么。任何关于保护基于云且服务于公共应用程序的服务器的好文章都将不胜感激。
答案1
如果我在笔记本电脑上丢失了公钥,会发生什么情况?我是否被锁定在服务器之外?
如果您没有备份,那么您将被锁定,至少是暂时锁定,直到您恢复访问权限。
一些 VPS 提供商有在服务器实例上替换密钥的方法。有些提供控制台访问。在其他情况下,您必须启动第二个临时服务器并授予其对第一个服务器存储的访问权限,以手动修复访问权限。
这里的最佳做法是什么 - 以及如何降低丢失公钥的风险?
安全备份您的私钥。
如果我的公钥发生了变化会发生什么?
你的公钥为什么会改变?如果你有私钥的备份,这就不是问题了。
另外,如果发生这种情况,我可以“备份”我的公钥吗?我认为不行,因为它是特定于机器的密钥对,但值得检查。
是的,您可以备份它。不,它不与特定机器绑定。您可以在任何系统上加载您的私钥以使用它(假设该系统具有使用该密钥所需的软件)。
如果我应该做其他事情来保护这个提供 Web 应用程序的服务器,请告诉我我遗漏了什么。
此时你的问题变得太宽泛了。我建议你搜索一下常见的服务器强化原则。你会发现诸如设置 VPN、根据源 IP 限制管理访问(防火墙更改)以及使用 DenyHosts 或 fail2ban 等软件之类的东西。