禁用本地rootlogin,允许通过ssh进行rootlogin

我想阻止root用户直接从RHEL框的本地控制台login,但是允许从sshlogin。 可以这样做吗?

谢谢…

是。

  1. 为root创build一个SSH密钥,并将public一半添加到~/root/.ssh/authorized_keys
  2. 编辑/etc/ssh/sshd.conf – 将PermitRootLogin设置为without-password
  3. 重新启动sshd
  4. testing它 – 确保您可以使用密钥以root身份通过SSHlogin。
    • testing单用户模式 – 确保它不要求root的密码(一旦你完成第5步root将不能再使用密码login,所以打破单用户模式可能是一件坏事)
  5. lockingroot的login密码(用/, x等replace/ etc / shadow中的密码字段)

笔记:

  1. 你的机器仍然可以被任何可以走到控制台的人所使用(因为单用户模式不会要求input密码),但是你的机器在尝试时会掉下来,所以理论上你会知道。
    • 如果将单用户模式configuration为需要密码,那么在系统上执行恢复工作的唯一方法是使用恢复光盘,并且与上述位置处于同一安全船上,但是现在黑客已经感到烦恼了。
  2. 现在,您的机器的networkingconfiguration文件只与root的SSH密钥一样安全,所以请确保设置好密码并将密钥保存在安全的地方。
  3. 如果您丢失了SSH密钥,以root用户身份重新进入系统的唯一方法是在单用户模式下重新启动(或者破解自己的机器)。

备用configuration也是可能的,其中监听根login的单独sshd只在localhost可用,并且您使用代理转发以root身份login。 我知道至less有一家拥有这种configuration的大型公司,并且增加了一层安全性(和复杂性)。

禁用本地rootlogin是不好的主意。 在系统崩溃的情况下访问可能是必要的。 根据NSA RHEL 5安全指南 ,2.3.1.1限制根login到系统控制台

直接根login只能用于紧急情况。 非正常情况下,pipe理员应该通过一个独特的非特权帐户访问系统,并使用su或sudo来执行特权命令。 不鼓励pipe理员访问root帐户直接确保在具有多个pipe理员的组织中进行审计跟踪。 locking根连接的通道可以直接减less对根帐户进行密码猜测的端口号。

(……)

根也应该禁止通过networking协议连接。

从本地控制台禁用根login可以通过从/ etc / securetty中删除行tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9 tty10 tty11来完成。