我可以阻止来自外部网络的 root ssh 访问,但不能阻止来自本地 LAN 的访问

use*_*726 5 ssh

操作系统:Ubuntu 14.04

我想从本地 ssh 登录 root,因为 backuppc 需要它。我想用 root 登录阻止外部访问。

谢谢

ter*_*don 9

您可以使用一个做到这一点Match的块/etc/ssh/sshd_config。首先,确保你有这条线:

PermitRootLogin no
Run Code Online (Sandbox Code Playgroud)

这将阻止根访问。然后,您可以通过以下方式允许它用于您的本地网络:

## Permit local root login
Match Address 192.168.1.*,127.0.0.1
      PermitRootLogin yes
Run Code Online (Sandbox Code Playgroud)

这假设您的 LAN 提供了类似的 IP 192.168.1.N,如果没有,则相应地更改。另外,我建议您在末尾添加它以/etc/ssh/sshd_config确保它不与其他指令冲突。完成此操作后,重新启动 ssh 服务 ( sudo service ssh restart),您将只能以 root 身份从本地计算机进行 ssh。


c4f*_*t0r 1

使用这个简单的 iptables 规则,您可以阻止不是来自本地网络的主机,我的网络是 192.168.122.0,所以我的规则将是:

iptables -A INPUT -i eth0 -p tcp --dport 22 ! -s 192.168.122.0/24 -j DROP
Run Code Online (Sandbox Code Playgroud)

如果您只想阻止来源中的特定用户

在 /etc/ssh/sshd_config 中

AllowUsers root@192.168.122.*
Run Code Online (Sandbox Code Playgroud)