服务器维护:除我之外禁止所有人使用 SSH 和 HTTP

服务器维护:除我之外禁止所有人使用 SSH 和 HTTP

我如何才能关闭除我自己之外所有人的 SSH 和 HTTP 服务?

背景:我们的服务器在虚拟机内运行。我在开始维护之前对虚拟机进行了快照。当出现问题时,我只需恢复快照,这样我就可以重新开始。但是,如果有人在我更新时使用服务器,那么在我恢复快照时,他/她当时的所有工作都将丢失。为了避免这种情况,我想确保在维护期间没有人可以使用服务器。

我不是虚拟机的所有者,所以我无法将其从网络上移除。我需要像其他人一样通过 VPN 登录服务器。

维护不需要 HTTP,但如果我只是停止服务,我不确定服务器是否会喜欢它。就我而言,它是一台 GitLab 服务器,通常在其服务关闭时拒绝更新,或者其更新脚本只是在迁移开始之前重新启动服务。但是,我对适用于其他基于 Ubuntu 的服务器的解决方案也很感兴趣。

答案1

我不确定您是否从 Linux 连接到虚拟机。如果您:

首先,你可以限制 SSH 连接数通过防火墙,但要小心不要把自己也锁在外面。我不认为你可以限制使用 SSH 配置文件。

其次,您可以设置 SSH 连接到隧道本地主机,这样只能从 Web 服务器进行 HTTP 访问。

使用 ~/.ssh/config 的示例隧道:

Host YourServer
   HostName XXX.XXX.XXX.XXX
   IdentityFile ~/.ssh/YourServerKey
   User YourUser
   LocalForward 8888 127.0.0.1:80
   LocalForward 8889 127.0.0.1:443

通过可用的隧道,您可以向 HTTP 服务器配置文件添加限制,以仅允许本地主机查看该站点。

示例:Apache2 上的 phpMyAdmin,仅限本地主机

然后,当您再次准备公开访问时,注释掉这些行。

相关内容