Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
J'ai enlevé les mots de passes de mon Linux (comptes désactivés). Est-ce dangereux?
Envoyé par: Pierre Renié

Attendez... Ne vous jetez pas tout de suite sur votre clavier pour me dire que c'est très dangereux. Mais j'aimerais savoir ce que vous en pensez.

Je considère que quand on a un accès physique à la machine on peut tout faire, donc à quoi bon protéger cette partie? Il faut se protéger des attaques venant de l'extérieur.

Tout d'abord j'ai configuré le lancement automatique de mon serveur X sans mot de passe pour mon compte utilisateur.

Comme cet utilisateur n'a pas besoin de mot de passe pour se connecter je l'ai désactivé.
(dans mon /etc/shadow) :
user:!:13612:0:99999:7:::

Ensuite j'ai voulu m'inspirer de l'utilisation de sudo dans la distribution ubuntu. Je veux donner à cet utilisateur la possibilité d'utiliser les privilèges administrateurs.

Je veux éviter qu'un intrus s'étant connecté sous cet utilisateur puisse utiliser les privilèges root. Mon idée est de donner à cet utilisateur le droit de lancer un terminal en root.

Ma méthode :
- L'utilisateur a le droit de lancer un terminal en tant qu'admin (un utilisateur qui n'est pas root)
- admin a le droit de lancer n'importe quelle commande en tant que root
Voici mon fichier sudoers :
# Autorise un terminal root sans mot de passe
# - D'abord : autoriser user à lancer startxterm en tant qu'admin
user      ALL=(admin) NOPASSWD: /usr/local/bin/startxterm
# - Ensuite : autoriser admin à lancer n'importe quoi
admin   ALL=(ALL) NOPASSWD: ALL
C'est là que ça devient un peu compliqué. La variable d'environnement DISPLAY permet de rediriger l'affichage (X forwarding), et il faut l'en empêcher. C'est le rôle de startxterm, qui lance un terminal en redéfinissant la variable DISPLAY.

Voici mon programme startxterm :
#include <unistd.h>
#include <stdio.h>
int main(int argc, char**argv) {
char* environ[] = {"DISPLAY=:0.0", "HOME=/home/pi", NULL};
execle("/usr/bin/lxterm",
        "lxterm", "+vb", "-bg", "black", "-fg", "white", "-fn",        "-misc-fixed-bold-r-normal--18-120-100-100-c-90-iso8859-1", NULL,
        environ);
//Ici le processus est remplacé par xterm, donc si la suite s'exécute c'est qu'il y a une erreur.
perror(NULL);
return 0;
}
Ce programme lance un xterm, et, en redéfinissant la variable DISPLAY je m'assure que ce terminal se lancera bien sur mon écran.

Si un intrus obtient un shell en tant qu'utilisateur principal (user), il ne pourra que lancer un terminal sur mon écran, et il ne pourra pas le contrôler.

Dernière étape : le compte root n'est pas utile. Je le désactive. (comme sous Ubuntu)

Par contre ce qui m'inquiète c'est que ce n'est pas du tout standard comme configuration. Est-ce une idée totalement stupide? Je ne pense pas. À ceux qui pensent que si, dites-moi ce qui ne va pas.

Poste le Tuesday 10 April 2007 21:22:04
Répondre     Citer    
Précisions
Envoyé par: Pierre Renié

Bonjour,

J'ai quelques précisions :
J'ai défini la variable d'environnement "HOME=/home/pi" dans mon programme C startxterm, mais "pi" c'est "user", j'ai oublié de remplacer.

Je me demande aussi si une distribution (comme Ubuntu) peut envisager une configuration comme ça pour les PC de bureau, parce que si c'est sécurisé et sans mot de passe c'est l'idéal.

Poste le Tuesday 10 April 2007 21:50:25
Répondre     Citer    
Re: J'ai enlevé les mots de passes de mon Linux (comptes désactivés). Est-ce dangereux?
Envoyé par: tg(y)

Ce que tu peux faire, une application que tu lances, sans savoir qu'elle est vérolée, peut le faire aussi. Donc non, ce n'est pas sûr.

Dans Ubuntu, ce n'est pas pour rien si sudo demande le mot de passe de l'utilisateur.

Poste le Tuesday 10 April 2007 23:58:20
Répondre     Citer    
Re: J'ai enlevé les mots de passes de mon Linux (comptes désactivés). Est-ce dangereux?
Envoyé par: Pierre Renié

Citation
tg(y)
Ce que tu peux faire, une application que tu
lances, sans savoir qu'elle est vérolée, peut le
faire aussi.
Ce que je peux faire :
-Lancer un terminal. Une application peut donc aussi lancer un terminal sur mon écran
-Taper des commandes sur ce terminal. La justement, une application ne peut pas le faire car c'est mon clavier qui contrôle mon terminal.

Si Ubuntu ne demandait pas le mot de passe, alors un intrus pourrait faire n'importe quoi sans mot de passe. Dans mon cas, l'utilisateur ne peut pas taper directement des commandes en tant que root, il peut seulement lancer un terminal.

Poste le Wednesday 11 April 2007 00:08:26
Répondre     Citer    
Re: J'ai enlevé les mots de passes de mon Linux (comptes désactivés). Est-ce dangereux?
Envoyé par: tg(y)

Citation
Pierre Renié
-Taper des commandes sur ce terminal. La
justement, une application ne peut pas le faire
car c'est mon clavier qui contrôle mon terminal.

Oh que si, une application le peut. Rediriger des entrées, ça se fait. Et tu peux très bien ne pas t'en rendre compte, si tu t'absentes par exemple.

Poste le Wednesday 11 April 2007 09:16:10
Répondre     Citer    
Re: J'ai enlevé les mots de passes de mon Linux (comptes désactivés). Est-ce dangereux?
Envoyé par: Pierre Renié

Citation
tg(y)
Oh que si, une application le peut. Rediriger des entrées, ça se fait. Et tu peux très bien ne pas t'en rendre compte, si tu t'absentes par exemple.
Mais alors là c'est dangereux d'avoir un terminal root ouvert.

Poste le Wednesday 11 April 2007 19:47:56
Répondre     Citer    
Re: J'ai enlevé les mots de passes de mon Linux (comptes désactivés). Est-ce dangereux?
Envoyé par: tg(y)

Non, parce qu'un terminale root, tu ne peux l'ouvrir normalement qu'en tapant le mot de passe root. Là, n'importe quelle application peut le faire...

Poste le Thursday 12 April 2007 00:58:56
Répondre     Citer    
Re: J'ai enlevé les mots de passes de mon Linux (comptes désactivés). Est-ce dangereux?
Envoyé par: Pierre Renié

Quand un terminal root est ouvert, un intrus qui a ouvert un shell peut rediriger les entrées pour le contrôler.

La différence dans ma méthode c'est que le danger est permanent. Mais quelqu'un qui a souvent un terminal root ouvert n'est pas plus protégé, il suffit au hacker d'attendre qu'on ouvre un terminal root.

Poste le Thursday 12 April 2007 08:40:30
Répondre     Citer    
Re: J'ai enlevé les mots de passes de mon Linux (comptes désactivés). Est-ce dangereux?
Envoyé par: Pierre Renié

J'ai vérifié qu'on pouvait bien rediriger les entrées-sorties. J'ai installé VNC, j'ai lancé le serveur (x11vnc) en tant qu'utilisateur normal, puis un client VNC (xvncviewer localhost:0), et la connection s'est effectuée.

J'ai vérifié qu'il n'y a pas de programme suid root dans VNC. Ça veut dire qu'il suffit de privilèges normaux pour rediriger les entrées-sorties.

Moralité : Il est dangereux d'avoir un terminal root ouvert. Il faut utiliser sudo et autoriser seulement des commandes précises et à danger limité, comme apt-get. La commande cp est par exemple à proscrire.

Toute l'administration (commandes cp, vi...) devrait de faire sur une console tty.

Je vais activer la connection en root sans mot de passe sur l'un des tty. Là je pense qu'on ne peut pas rediriger les entrées.

Poste le Thursday 12 April 2007 21:40:35
Répondre     Citer    
Re: J'ai enlevé les mots de passes de mon Linux (comptes désactivés). Est-ce dangereux?
Envoyé par: tg(y)

Euh, rediriger les entrées sans être root, avec VNC, oui, à condition que l'utilisateur autorise la connexion de contrôle VNC sans mot de passe, ce qui est une erreur, déjà.

Poste le Thursday 12 April 2007 23:51:37
Répondre     Citer    
Re: J'ai enlevé les mots de passes de mon Linux (comptes désactivés). Est-ce dangereux?
Envoyé par: Pierre Renié

Citation
tg(y)
Euh, rediriger les entrées sans être root, avec VNC, oui, à condition que l'utilisateur autorise la connexion de contrôle VNC sans mot de passe, ce qui est une erreur, déjà.
Justement, c'est l'intrus qui peut autoriser la connection si il est loggé en tant qu'utilisateur.

Et la connection automatique en root sur un tty, c'est dangereux? Le tty on ne peut pas le rediriger, quelqu'un qui vient de l'extérieur ne peut rien faire. C'est pas plus dangereux qu'un boot loader configuré par défaut. (voir [www.lea-linux.org])

Poste le Friday 13 April 2007 00:07:30
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
J'ai enlevé les mots de passes de mon Linux (comptes désactivés). Est-ce dangereux?
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons