如何限制ssh登录到特定的IP或主机

Modified on: Thu, 19 Sep 2019 16:40:02 +0800

我想仅为一个IP地址限制我的ssh登录,所以我修改了以下文件

$ nano /etc/ssh/sshd_config

并添加了这一行(即我的ip),希望它能正常工作

 ListenAddress 172.168.0.21  

但没有运气连接被拒绝我不想使用任何iptables的东西。为什么它不以这种方式工作,我该如何解决它,以及任何解释?

作者:jspeshu

最佳答案

我必须同意dunxd,IPTables不应该被视为可行的方法。但是,您很幸运,因为您可以将tcpwrappers用于相同的功能端。虽然比表面上更复杂,但tcpwrappers实际上归结为两个文件:/etc/hosts.allow和/etc/hosts.deny如果这些文件尚不存在,您可以安全地将它们创建为空文件:sudo touch /etc/hosts.{allow,deny}

现在是时候让事情变得更复杂了。保护网络访问的“最佳”方法是将默认且唯一的hosts.deny条目设置为ALL:ALL,但是,这可能会导致意外的访问限制。出于这个原因,以及这个问题的目的,在/etc/hosts.deny中输入sshd:ALL就足够了,这将禁止对主机的所有ssh访问。

就sshd而言,/ etc / hosts.allow中的所有条目现在都将取代默认的拒绝规则:sshd: 172.168.0.21将仅允许访问主机172.168.0.21和否认所有其他人。

tcpwrappers文件接受以逗号分隔的条目列表,因此您可以将地址附加到上面的第一个条目。 tcpwrappers也接受部分IP地址作为子网,因此您可以将整个172.168.0.0/24作为sshd: 172.168.0.

有关其他详细信息,请参阅手册页。 tcpwrappers实际上功能非常丰富,我建议阅读的不仅仅是上面的简短检查。

作者:Tok

相关问答

添加新评论