如何只允许SSH从本地网络root用户?


38

我已经在CentOS 6.5机器上安装了Google-Authenticator,并配置了某些用户来提供OTP。

在编辑时,/etc/ssh/sshd_config我看到一条指令“ PermitRootLogin”,默认情况下已将其注释掉。

我想设置“ PermitRootLogin no”,但仍然只能以root身份从本地网络ssh到计算机。

那可能吗?


5
永远不要这样做。以您的用户SSH身份登录,然后使用sudo提升权限。进行此操作,以便留下笔迹,这样您就可以知道哪个帐户遭到了破坏。
SnakeDoc

3
@SnakeDoc:那是一门学问,但这不是很明确的,我会相反。sudo是一个巨大的复杂攻击面,不是我想要安装的东西。SSH pubkey auth是一个较小的攻击面。都可以记录日志,但是当用户(root)可以编辑或删除日志时,日志记录不是很有用,除非您登录到外部仅追加存储,否则情况总是如此。
R ..

1
@R ..如果使用最小特权原则正确设置sudoers,则您描述的这些问题在很大程度上不是问题。任何用户都不能进入ssh或sudo - su进入root,或者执行用户不需要的任何操作(在sudoers中,您将白名单用于命令)。如果您需要root用户,则必须亲自进入控制台-即。绝对不允许通过SSH根...密钥。
SnakeDoc '16

1
@SnakeDoc:你错了。Sudo具有自己的复杂攻击面作为suid二进制文件固有的基本复杂攻击面,其形式是跨execve继承的所有状态。在某些情况下,甚至不需要suid程序本身(suid)中的错误。诸如动​​态链接程序(例如CVE-2010-3856)之类的基础架构中的错误可能就足够了。
R..16年

1
@R ..您假设您将始终知道密钥是否泄漏。这是一个假设。此外,一旦进入,攻击者就具有root特权。最好通过一个无特权的帐户发送它们,并使它们必须提升到根目录。这样,您就有了必须泄漏的密钥,要破解的密钥密码,然后要破解的常规用户帐户密码。而且,如果攻击者克服了所有这些问题,他们将无能为力,因为该用户是在功能有限的sudoers下设置的。不允许在ssh ...期间直接root登录。身体卫生
SnakeDoc '16

Answers:


54

在以下位置使用Matchconfig参数/etc/ssh/sshd_config

# general config
PermitRootLogin no 

# the following overrides the general config when conditions are met. 
Match Address  192.168.0.*
    PermitRootLogin yes

看到 man sshd_config


我为什么没想到呢?感谢队友
Itai Ganot

8
您还可以在中限制身份验证密钥的来源~root/.ssh/authorized_keys。在密钥前面加上from="192.168.0.0/24 "
BillThor

9
我将其更改为也允许IPv6链接本地地址。链接本地地址在IPv6中的工作方式使其对于错误配置的网络非常健壮。这意味着,如果您需要使用SSH修复网络配置错误,则剩下的唯一选择就是使用IPv6本地链接地址。
kasperd

仅供参考,如果您另外使用指令AllowUser,则您还必须另外(并且违反直觉)也要这样做AllowUser root
Robert Riedl

14

Match address已经提到了该方法,但是您也可以限制允许登录到系统的用户(或组)。例如,要将登录名限制为itai(从任何地方)和root(从特定网络)登录到用户,请使用:

AllowUsers itai root@192.168.0.*

这样可以防止所有其他用户(如apache)通过SSH登录。

另请参见sshd_config(5)手册中的AllowUsers关键字。


4
我希望AllowGroups将应该能够使用SSH登录的所有用户添加到特定组。猜猜这是一个问题,但这似乎减少了对sshd_config的编辑(这意味着混乱和锁定所有人的风险较小)。
CVn

1
@MichaelKjörling另外,AllowGroups意味着如果您的团队扩大或收缩,您都不需要sshd_config的编辑权限。这甚至可以允许更多的管理人员或实习生来做。
Nzall

要点,请注意,您可以组合使用选项,拥有AllowUsers itai root@192.168.0.*和,AllowGroups ssh-users并且在实习生意外清除组的情况下也不会意外造成锁定:)
Lekensteyn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.