不久前,我给了 root 一个密码,这样我就可以以 root 身份登录并完成一些事情。现在我想禁用 root 登录以加强安全性,因为我要将我的服务暴露给互联网。我已经看到了几种这样做的方法(sudo passwd -l root,摆弄/etc/shadow,等等),但没有任何地方说明最好/最明智的做法是什么。我已经这样做了,sudo passwd -l root但我看到一些建议说这会影响初始化脚本,而且它并不像看起来那么安全,因为如果您尝试登录,它仍然会要求输入密码,而不是完全拒绝访问。那么实现这一目标的方法是什么?
编辑:澄清一下,这是以root身份进行本地登录;我已经禁用了通过 SSH 的远程登录。尽管尝试通过 SSH 以 root 身份登录仍然会提示输入 root 的密码(总是失败)。那不好吗?
jsc*_*ott 37
对我来说,禁用 root 是值得的潜在问题值得商榷。我从未测试过以这种方式配置的服务器。我的偏好是只允许 root 本地访问。如果攻击者可以物理访问您的服务器,您无论如何都可以忘记为“保护”安装所做的一切。
ssh通过编辑/etc/ssh/sshd_config包含以下内容来禁用 root访问:
PermitRootLogin no
Run Code Online (Sandbox Code Playgroud)
摆弄/etc/shadow,chsh -s /bin/false root所有这些都可以通过一个简单的可引导 CD/拇指驱动器来完成。
根据您的评论更新:
来自help.ubuntu.com:“默认情况下,root 帐户密码在 Ubuntu 中是锁定的”。请具体参阅“重新禁用您的 root 帐户”一节。为了重置 root 帐户的状态,要 install-default,请使用以下命令:
sudo usermod -p '!' root
Run Code Online (Sandbox Code Playgroud)
kyn*_*nan 26
我假设您指的是通过 ssh 远程登录。将以下行添加到/etc/ssh/sshd_config:
PermitRootLogin no
Run Code Online (Sandbox Code Playgroud)
并重新启动 ssh 服务
sudo service ssh restart
Run Code Online (Sandbox Code Playgroud)
这应该可以完成工作,您可以保持您的 root 帐户原样(或者,如果您认为有必要,请尝试禁用它)。
主要问题已经回答了几次,但次要问题没有。SSH 作为安全功能禁用后,进入 root 后会提示输入密码。如果您尝试以 lkjfiejlksji 身份登录,它也会触发。
这是为了防止有人测试一堆用户名,试图找出哪些用户名在您的系统上有效。但是,从安全角度来看,如果您通过 SSH 禁用了 root,我还会设置一个暴力检测程序(如 fail2ban),并设置它以便如果有人甚至尝试以 root 身份登录,它会阻止他们尝试任何额外的攻击。
| 归档时间: |
|
| 查看次数: |
78894 次 |
| 最近记录: |