如何在Ubuntu中禁用rootlogin?

前一段时间,我给root一个密码,所以我可以以root身份login,并完成一些东西。 现在我想禁用rootlogin来加强安全性,因为我将把我的服务器暴露给互联网。 我已经看到了几种这样做的方法( sudo passwd -l root ,摆弄/etc/shadow等等),但没有说什么是最好/最明智的方法。 我已经做了sudo passwd -l root但是我看到了一些build议,说这可能会影响init脚本,并且它不像看起来那么安全,因为如果你尝试login,它仍然要求input密码,而不是平坦拒绝访问。 那么实现这个的方法是什么?

编辑:澄清,这是作为本地login; 我已经禁用通过SSH远程login。 虽然试图以root身份通过SSHlogin仍然会提示root的密码(总是失败)。 那不好吗?

对我来说,这是值得商榷的,根本上是值得的潜在问题。 我从来没有testing过以这种方式configuration的服务器。 我的首选是只允许根本地访问。 如果攻击者可以通过物理方式访问您的服务器,那么您可以忘记所做的一切来“保护”安装。

通过编辑/etc/ssh/sshd_config来禁用root ssh访问来包含:

 PermitRootLogin no 

摆弄/etc/shadowchsh -s /bin/false root都可以用一个简单的可启动CD / thumbdrive来恢复。

根据你的评论更新:

来自help.ubuntu.com : “默认情况下,root帐户密码在Ubuntu中被locking ”。 请参阅“重新禁用您的root帐户”部分。 为了重置root帐户的状态,安装默认的,使用下面的命令:

 sudo usermod -p '!' root 

我假设你参考通过SSH的远程login。 /etc/ssh/sshd_config下行添加到/etc/ssh/sshd_config

 PermitRootLogin no 

并重新启动ssh服务

 sudo service ssh restart 

这应该做的工作,你可以保持你的根帐户,因为它(或尝试禁用它,无论如何,如果你觉得是必要的)。

主要的问题已经被回答了好几次,但是中学没有。 作为安全function禁用后,SSH在inputroot后提示input密码。 如果您尝试以lkjfiejlksji身份login,它也会触发。

这是为了防止有人testing一堆用户名,尝试找出哪些在您的系统上是有效的。 然而,从安全angular度来看,如果你已经禁用了SSH的root权限,我还会设置一个暴力破解检测程序(如fail2ban),并设置它,以便如果有人甚至试图以root身份login,它会阻止他们尝试任何额外的攻击。

用/ etc / shadow(第二个字段,在第一个':'之后)replaceencryption的密码是最好的方法,恕我直言。 另外,取消激活ssh的rootlogin(这样做根本不可能通过ssh以root身份login),也许将ssh限制为证书login,这比基于密码的login更安全。

在大多数情况下,SSH应该是唯一可从外部访问的服务,可能允许rootlogin,所以这个门将被locking。

为了进一步限制这一点,你可以安装一些类似fail2ban的东西,这些东西在一些不成功的login尝试之后会禁止IP地址一段时间。

JR等人,

你的AllowUsers带我到这个https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

sudo vi / etc / ssh / sshd_config

PermitRootLogin yes(更改为no)

(在文件底部添加行)DenyUsers user1 user2

保存并退出然后

sudo服务ssh重启

解决了我的问题。 谢谢大家。

如果要禁用本地rootlogin,可以尝试修改/ etc / passwd,并用/ bin / falsereplace/ bin / bash。 然而,由于我没有testing过,所以我会说在一侧打开一个根会话,testing它,如果有任何奇怪的副作用,请将其更改回来。

回复:安全。

恕我直言,只有这么多,你可以做,安全明智的,没有拔掉盒子,从networking断开,并焊接在一个3“厚的防弹碳化钢箱。

想想这样 – 如果人们可以攻击国防部,中央情报局,联邦调查局和花旗银行 – 我们其他人都不能做得更好。

Re:SSH安全。

我不仅禁止通过SSH的根访问,我还设置了“AllowUsers”参数给我,只有我的用户名。 这样,除了我自己的用户,没有人可以通过SSHlogin。 这可能是多余的,因为在我自己的情况下,我只创build一个非root用户。

不幸的是,正如其他人之前说过的那样,只要有人进入了这个盒子,所有的投注都是closures的!

证书交换的SSHlogin? Hmmmm。 。 。 。 听起来不错。 你怎么做呢?

吉姆(JR)