J'aimerais avoir le compte root en sécurité même si mon utilisateur non privilégié est compromis.
Sur Ubuntu, vous ne pouvez utiliser sudo que pour des "raisons de sécurité" par défaut. Cependant, je ne suis pas sûr que ce soit plus sûr que d'utiliser simplement la connexion sur une console en mode texte. Trop de problèmes peuvent se produire si un attaquant peut exécuter du code comme étant mon utilisateur normal. Par exemple, ajouter des alias, ajouter des éléments à mon chemin PATH, configurer LD_PRELOAD et les enregistreurs de frappe X11, pour n'en citer que quelques-uns. Le seul avantage que je peux voir est le délai d'attente afin que je n'oublie jamais de me déconnecter.
J'ai les mêmes doutes à propos de su mais il n'y a même pas de limite de temps. Certaines opérations (en particulier la redirection IO) sont plus pratiques avec su, mais sur le plan de la sécurité, cela semble être pire.
La connexion sur une console en mode texte semble être la plus sûre. Comme il est lancé par init, si un attaquant peut contrôler PATH ou LD_PRELOAD, il est déjà root. Les événements de frappe ne peuvent pas être interceptés par les programmes fonctionnant sous X. Je ne sais pas si les programmes exécutés sous X peuvent intercepter [ctrl] + [alt] + [f1] (et ouvrir une fenêtre plein écran qui ressemble à une console) ou c'est sûr comme [ctrl] + [alt] + [del] sous Windows. En plus de cela, le seul problème que je vois est le manque de temps mort.
Alors est-ce que je manque quelque chose? Pourquoi les gars d'Ubuntu ont-ils décidé de n'autoriser que sudo? Que puis-je faire pour améliorer la sécurité de l'une de ces méthodes?
Qu'en est-il de SSH? Traditionnellement, root ne peut pas se connecter via SSH. Mais en utilisant la logique ci-dessus, cela ne serait-il pas la chose la plus sûre à faire:
- autoriser la racine via SSH
- passer en mode texte
- se connecter en tant que root
- ssh à l'autre machine
- se connecter en tant que root?