帮助中心

立即注册 咨询客服

当前位置:首页 > 帮助中心> 如何允许或禁止IP对Linux服务器SSH的访问

如何允许或禁止IP对Linux服务器SSH的访问

发布时间:2020年07月24日 08:24:37    来源: A5互联

如果你是一个Linux服务器系统管理员,很可能会花很多时间用SSH登录到远程服务器。也有可能你已经采取了许多措施来锁定SSH对这些远程服务器的访问。事实上,你很可能正在使用SSH密钥认证和denyhosts。这两个解决方案加在一起,可以很好地强化对远程Linux服务器的访问。

但是,你还可以采取另外一个步骤,这个步骤非常简单和明显,大多数管理员甚至忘记了它是一个选项。这个特殊的步骤不需要任何第三方软件,几秒钟就可以搞定。

准备工作:

运行SSH守护程序的Linux服务器

需要访问服务器的任何客户端的IP地址

您还应该可以访问远程服务器的控制台,以防万一出现问题并将自己锁定在服务器之外,但是任何时候使用SSH都是如此。

1、如何允许客户端IP地址

我们要做的第一件事是通过SSH将您使用的任何客户端的IP地址允许到远程服务器中。获得IP地址列表后,可以将它们添加到/etc/hosts.allow。为此,请发出命令(在远程服务器上):

sudo nano /etc/hosts.allow

在该文件的底部,添加以下内容:

sshd: IP

其中IP是需要访问服务器的远程客户端的IP地址。如果您有许多IP地址或IP地址范围,则可以这样输入:

sshd:10.83.33.77/32、10.63.152.9/32、10.12.100.11/28、10.82.192.0/28

或者像这样:

sshd : 192.168.1.0/24

sshd : 127.0.0.1

sshd : [::1]

上面的注释:我们甚至包括了服务器的回送地址。

保存并关闭文件。

2、如何阻止所有其他地址

现在我们已经允许使用IP地址或地址列表,现在该阻止所有其他地址了。要记住的一件事是,Linux系统将首先查看hosts.allow(从上到下),然后是hosts.deny(从上到下)。因此,即使hosts.deny明显阻止了所有内容,也将允许通过hosts.allow中的IP地址进行SSH连接尝试。

因此,要阻止所有其他IP地址,请使用以下命令打开必要的文件:

sudo nano /etc/hosts.deny

在该文件的底部,添加以下内容:

sshd: ALL

保存并关闭文件。

此时,hosts.allow中列出的任何客户端将被允许通过(通过SSH),而未列出的任何客户端将被拒绝。无需重新启动SSH守护程序即可完成此工作。

结合使用SSH密钥身份验证,denyhosts和hosts.allow / deny,对Linux服务器的安全外壳访问将尽可能地紧密。