在Debian上通过IP地址限制SSHlogin

我想只允许来自3个IP地址的SSHlogin:111.111.111.111和222.222.222.222和333.333.333.333。 我知道,我必须编辑/etc/hosts.allow和/etc/hosts.deny文件。

我的问题是关于这些文件的内容。 我看到了不同的变体:

#/etc/hosts.allow

变体1:

sshd: 111.111.111 sshd: 222.222.222 sshd: 333.333.333 

变体2:

 sshd: 111.111.111, 222.222.222, 333.333.333 

变体3 :(无逗号):

 sshd: 111.111.111 222.222.222 333.333.333 

变体4(带有sshdfwd-X11):

 sshd,sshdfwd-X11: 111.111.111 222.222.222 333.333.333 

的/etc/hosts.deny

变体1:

 sshd: ALL 

VARIANT2:

 sshd,sshdfwd-X11:ALL 

哪一个是正确的? 我害怕把我锁起来。 谢谢。

我将使用AllowUserssshd_config亲自执行此操作。

 AllowUsers = *@111.111.111.111, *@222.222.222.222, *@333.333.333.333 

对我来说,这使得所有的configuration都与你所控制的应用程序相关联。 总是有不止一种方式来使用UNIX皮肤,但是如果该工具提供了特定的控制机制,我倾向于比其他任何东西( 通常更便携)。

在对远程访问进行任何更改时,

  1. 总是在服务器上有多个会话
  2. 从屏幕或tmux会话中进行更改,以便在连接失败时重新连接
  3. 如果可能,请尝试从非ssh控制台进行更改

我发现,只要你已经有几个远程会话,你会没事的。 更改/etc/ssh/sshd_config和回收SSH不会断开任何现有会话。

虽然我明白,不回答你的具体问题。 我相信杰夫的答案 (所有这些变种是有效的,如果你使用/etc/hosts.deny/etc/hosts.allow )。

一般来说,我喜欢使用iptables来实现这样的规则。

至于正确的变体,所有这些应该工作。 相关的手册页 (感谢收到这个奥利弗)说使用空格或逗号是可以接受的。 它还会继续讨论daemon: client任何匹配daemon: client将会计数,并且可以将多个客户端列入队列中,并且将对多个守护进程的条目进行评估。