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

$nano /etc/ssh/sshd_config

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

ListenAddress 172.168.0.21

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

我必须同意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.

有关其他详细信息,请参阅man page. tcpwrappers实际上功能非常丰富,我建议阅读的内容不仅仅是上面的简短检查.