我的服务器已被外部人员使用我的root用户资格渗透。
随着root密码的改变,我试图find保护服务器的额外策略。
使用/etc/hosts.allow和/etc/hosts.deny似乎是一个可行的解决scheme来pipe理IP地址的访问,但我有一个潜在的问题。
我想在hosts.allow文件中指定我的工作IP。 但问题是服务提供商可能会更改IP地址。 如果发生这种情况,我会被锁在我的服务器之外。 我们的服务器是自我pipe理。
任何人都可以启发我如何预防或克服这种情况下,请?
我采取了几个步骤来保护我的服务器:
首先是明显的一个:
不要在标准端口上运行ssh让你摆脱通常的skript kiddies攻击。
第二个也是国家的:
使用敲门精灵。 knock-daemon在打开服务器上的ssh-connection端口之前,首先会等待特定端口和协议的一系列命中。 因此,ssh服务器对任何攻击者来说都是不可见的,直到他们敲击正确的端口序列为止。 大多数knock-daemon实现提供了一种集成事务序列的机制,所以每次成功login后,敲入序列都会改变。
有了这个标准的设置,您将获得更多的安全层。
使用encryption的用户名和密码并限制ssh – build议login到特定的(非root)用户。 执行根任务时,您可以切换到服务器上的根用户。
安装像Nagios这样的监控系统也为您和您的环境提供了更高的安全性,这很容易configuration,并通过ubuntu包装系统提供。 你可以configuration它给你发送电子邮件,当有人通过SSHlogin到你的服务器时,至less你会得到你需要进一步调查的信息。
但是,说实话:如果有人以root用户身份访问你的服务器,你应该做一切完整的重新安装。 可以replace不容易检测的二进制文件,引入后门程序。 想象一下,你运行一个简单的命令,像useradd和二进制文件已经被replace,以便在执行命令时打开一个TCP连接,用户凭据发送给你的入侵者。 或者更糟的是:ssh-server二进制文件已经被一个定制的版本所取代,该版本允许通过特定的用户组合来访问。
从提供商处购买静态IP。
除了@Kazimieras的回答,你也可以使用一个系统,如dyndns,并添加新的主机名到etc/hosts.allow 。
您可以设置通过证书进行无密码login ,而不是使用基于IP的限制。
您将需要在您正在访问的服务器上放置公共证书。 您需要确保〜/ .ssh目录中所需文件的权限正确无误。
也许你可以在你的服务器和你的办公networking之间build立一个VPN连接