很早之前就看过关于Linux安全建议的文章,其中有一条便是:禁用root账户,平时使用普通账号,必要时通过sudo命令获取root权限(或者至少禁用root的ssh登录,登录后再用sudo或者su切换到root)。
之前在Ubuntu上吃过亏,因此我偏向于为root账户设置密码,root账户让我充满着对机器的掌控感。但暴露在公网的服务器,安全毕竟十分重要,因此按照安全建议在部分重要机器上禁止了root账户远程登录,改用普通用户+sudo提权模式。
使用一段时间后,我发现禁用root账户并没有带来太多安全性提升,反而会导致日常管理十分不便。这也让我反思如何才是禁用root账户的正确方式?
经过一番思考,个人得出禁用root的场景:
- 桌面环境使用;例如在个人电脑上安装桌面版的Ubuntu、Debian、Fedora等系统日常使用,推荐不创建root账户;
- 多人使用的工作站、服务器环境,并且自己也作为普通用户进行日常使用。
其实上面场景的核心是:平时会以普通用户身份使用Linux,因此禁用root账户是推荐的,不必记住两套密码。
而以下场景则无须禁用root账户,否则scp上传等操作会带来额外的麻烦:
- Linux系统只有你一个人用,并且用作服务器,做的都是服务器管理和运维操作;
- 多人使用场景下,你是运维/管理员,不会以普通身份使用服务器。
没必要禁用root账户核心点是,服务器的管理/运维人员,不会以普通身份使用服务器。因为维护服务器相对来说使用次数较少,每次使用几乎都要运行特权命令。
当然,无论是否禁用root账户,以下安全操作是推荐的:
- 有条件的情况下将服务器隔离,使用跳板机或者VPN登录;
- 暴露于公网环境的服务器,修改默认的22端口;
- 暴露于公网的服务器,修改为密钥登录或者密码加Google authenticator/短信/token二次授权登录;
- 服务器重要数据做好备份。
发表回复