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

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

操作系统:Ubuntu 14.04

我想从本地 ssh 以 root 身份登录,因为 backuppc 需要这样做。我想阻止以 root 身份登录的外部访问。

谢谢

答案1

您可以使用Match中的块来执行此操作/etc/ssh/sshd_config。首先,确保您有此行:

PermitRootLogin no

这将阻止 root 访问。然后,您可以使用以下命令允许本地网络访问:

## Permit local root login
Match Address 192.168.1.*,127.0.0.1
      PermitRootLogin yes

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

答案2

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

iptables -A INPUT -i eth0 -p tcp --dport 22 ! -s 192.168.122.0/24 -j DROP

如果你只想阻止来自某个来源的特定用户

在你的 /etc/ssh/sshd_config 中

AllowUsers [email protected].*

答案3

在处理了很多此类问题之后,我发现,对于 IP6 接口,你可能需要添加 ::1 作为本地主机来源,甚至是你的“外部” IP 地址(如果你依赖于你的 /etc/hosts 配置)

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes

## Permit local root login
Match Address ::1,127.0.0.1,178.56.xx.xx
  PermitRootLogin yes
Match All

相关内容