为什么应该禁用ssh的root访问?我总是听到这是出于安全原因。但是我不明白。先以非root身份登录又有什么区别sudo su -?处理需要特权权限的任务的首选方法是什么?
谢谢
汤玛士
为什么应该禁用ssh的root访问?我总是听到这是出于安全原因。但是我不明白。先以非root身份登录又有什么区别sudo su -?处理需要特权权限的任务的首选方法是什么?
谢谢
汤玛士
Answers:
Sudo是您需要委派管理任务的首选方式,因为它具有可审核性和丰富的粒度。Sudo允许记录所有命令,并允许管理员为个人或组设置不同的sudo配置文件。
su或root访问是全部或全部
sudo -s或可以避免规避审核sudo bash。除非您在谈论中限制命令集,否则/etc/sudoers我从未见过在交互式使用sudo的生产环境中部署过这些命令。启用sudo后,恶意软件(例如,通过键入make或python setup.py从刚从GitHub克隆的随机存储库中执行)有效地具有root权限。将其与禁用sudo的情况进行比较,而是使用单独的SSH连接以root身份执行命令。
根是保证在每台unix计算机上都启用并启用的一个帐户,因此选择它来尝试强行使用密码是不费吹灰之力的。如果没有外部工具(可以杀死明显的扫描仪的包装器,入侵防御设备等),那么找出密码只是时间问题。即使使用外部工具阻止了这种行为,还是要强制传入的用户以普通用户身份登录,然后使用su / sudo / pfexec直至增强的privs,这仍然是一个好主意。是的,这是一个额外的步骤,这意味着您必须在root用户之间共享的计算机上创建用户帐户,但这是攻击者与对盒子的无限制控制之间的又一障碍。
主要区别在于,攻击者也必须猜测用户名。如果让root登录,那么他只需要猜测密码即可。
他还可以欺骗使用man-in-the-middle方法获得ssh密钥或重新发送数据的用户登录,并且他可以登录系统而不必键入密码。但是,如果他以用户身份登录,则必须对命令进行sudo-ize,因此他被迫手动输入密码。如果以root用户身份登录,则无需对内容进行伪装,因此安全性降低了一步。