更改root用户名 – linux

我在VPS上运行一个networking服务器。 为了安全起见,我想把默认的linux root用户名改成别的。 我如何做到这一点,在做这件事情之前我应该​​考虑一下吗?

通过默默无闻的安全性…用户名本身只在/etc/passwd/etc/shadow定义,所以你可以很容易地进入并改变它。 需要注意的一点是,服务器的各种移动部分可能会默认指向不再存在的root ,并有可能开始破坏事情,使得故障排除更有趣。

如果你的目的是试图保护你的VPS,那么比改变用户名和潜在的令人头痛的问题更有效得多。 我知道一个pipe理员通过删除pipe理共享而在旧的NT服务器上执行此操作,之后导致安装软件时出现问题。 通过默默无闻的安全并没有真正做任何事情,只是提供了一种虚假的安全感。

如果你想保护这个盒子,我将首先添加一个非root用户帐户,禁用密码( PasswordAuthentication no ),并使用SSH身份密钥( PubkeyAuthentication yes )来validation远程login,为你的帐户设置sudo访问权限并禁用远程根目录通过SSHlogin( PermitRootLogin no )。 如果您想进一步设置允许远程连接的组,并使用AllowGroups选项只允许属于该组的帐户login。

Offtopic:不要冒犯,但是把root用户名改成别的东西与安全性没有任何关系。 你想这样做,以防止SSH暴力login尝试?

关于主题:单独的用户名并不重要,这是UID。 如果它保持0,我不认为你会遇到问题。

您可以通过禁用root帐户禁用以root用户身份login的function。 这将阻止任何人以本地方式,通过SSH,使用su或任何其他需要提供root密码的方法login。 但是,它不应该破坏任何可能需要名为“root”的root用户。

为此,请lockingroot用户的帐户:

 passwd -l root 

或者将/etc/shadow root用户的密码哈希replace为感叹号。

 useradd -u 0 -g root -o (somenewuser) usermod -s /sbin/nologin root 

只有在您需要使用root密码的情况下才能进入热水。 只要你没有必要跳过一些额外的箍(在另一台计算机上安装驱动器来修改/ etc / passwd作为一个极端的解决scheme,虽然有其他方法来解决大多数问题),但是这个解决scheme应该没事。

另外,只需通过设置禁用rootlogin:

 PermitRootLogin no 

在sshd_config中。 (不要忘了在更改后重新启动sshd。)

如果你想通过默认安全模式改变端口ssh监听22以外的内容。这并不能取代强密码和其他安全措施,但是许多自动化的find-ssh-servers-and-attack-them脚本永远不会见你

丢弃ICMP回应请求; 似乎很多自动化攻击先决定尝试打破之前。