Sécuriser sudo

Bonsoir,

Je fait se post en références aux post de fran.b dans le fil “retour douteu ubuntu” dans la section aide et support du fofo.

http://forum.debian-fr.org/viewtopic.php?p=252230#p252230

Ce truc s’adresse surtout a ceux qui soit, son sur ubuntu avec la config sudo par defaut, soit ont installer le sudo sur leur debian et y ont simplement ajouter leur login utilisateur pour executer les commandes root.

Pour faire court et simple, quand vous executer une commande avec sudo, vous pouvez retaper une autre commande avec sudo dans n’importe quel terminal sans que celui si ne vous redemande le mot de passe, pendant un certains temps ( 15 min sur ubuntu il me semble ). Sa signifie simplement que si par manque de bol ou de vigilence vous avez un script foireux type maleware, il peut simplement executer en sudo ce qu’il veut pendant ces 15min … Alors certes il faut deja avoir fait la connerie de s’etre choper un malware ce qui ne devrait pas arriver si vous respecter certaine regle. Mais bon même si vous faites gaffe autant etre trop prudent que pas asser !

Il y’a donc 2 options possible pour rendre sudo un peu plus sur :

tty_tickets -> les 15 min de session sudo ne seront valable que sur le tty ou le sudo a ete executé la permiere fois.
timestamp_timeout=0 -> La si vous êtes carrement parano, le sudo n’est valable que pour la commande que vous vener d’entrer, a la fin de cette commande si vous refaites un sudo il vous demandera systematiquement le pass !

Pour exemple mon /etc/sudoers :

[code]Defaults env_reset,timestamp_timeout=0,tty_tickets

Host alias specification

User alias specification

Cmnd alias specification

User privilege specification

root ALL=(ALL) ALL
nokcy ALL=(ALL) ALL[/code]

Par sécurité, n’édité pas ce fichier a la main, mais utiliser plutot la commande visudo, il verifie la syntaxe a l’enregistrement du fichier et vous previent d’une eventuel erreur.

A+

Bonjour,

Voici le mien :

[code]# User privilege specification
root ALL=(ALL) ALL
jeumeu ALL=(ALL) ALL

Defaults specification

Defaults:jeumeu timestamp_timeout=0, passwd_tries=1 [/code]

Bonjour,

[quote=“nokcy”]# User privilege specification nokcy ALL=(ALL) ALL[/quote]C’est ligne veut dire que ton user a la possibilité d’executer n’importe quelle commande avec sudo, donc si ton mot de passe utilisateur est cracké, ça revient à avoir un accès root à ta machine.

Qu’on me corrige si j’ai dit une connerie.

Je pense que le sudo est à utiliser avec parcimonie, même si on l’utilise avec les mesures de sécurité comme “tickets” “timestamp”, etc … et pas comme un simple substitut à root.

une ligne comme :nokcy nom_de_ta_machine=NOPASSWD: /sbin/shutdown
accompagné des alias adéquat dans ton .bashrc, ex:alias shn='sudo shutdown -h now' alias srn='sudo shutdown -r now'

uniquement pour les commandes utiles me semble plus sûr et pourtant comme tu peux le voir, aucun mot de passe n’est exigé.

Bon, je ferais pas ça pour mon éditeur de texte par contre. :slightly_smiling:

Pour les utilisateurs ayant le droit d’exécuter sudo, je préfère utiliser le groupe sudo :

Non, tu as raison, mais il faut bien un accès root à un moment donné :confused:

[quote=“gege2061”]Pour les utilisateurs ayant le droit d’exécuter sudo, je préfère utiliser le groupe sudo :

[quote]%sudo ALL=(ALL) ALL[/quote][/quote]Ça reviendrait au même,
tu donnes les droits root aux utilisateurs appartenant au groupe sudo et ce pour toute les commandes.

Non, tu as raison, mais il faut bien un accès root à un moment donné :/[/quote]
Si j’ai besoin de passer root juste à un moment donné pour un commande sensible, le bon vieux$ sume suffit.

[quote=“eol”][quote=“gege2061”]Pour les utilisateurs ayant le droit d’exécuter sudo, je préfère utiliser le groupe sudo :

[quote]%sudo ALL=(ALL) ALL[/quote][/quote]Ça reviendrait au même,
tu donnes les droits root aux utilisateurs appartenant au groupe sudo et ce pour toute les commandes.[/quote]
ça n’a rien à voir avec ce problème, juste une question de syntaxe : plutôt que d’éditer la configuration de sudo pour chaque utilisateur, un simple ajout au groupe sudo suffit.

Non, tu as raison, mais il faut bien un accès root à un moment donné :/[/quote]
Si j’ai besoin de passer root juste à un moment donné pour un commande sensible, le bon vieux$ sume suffit.[/quote]

Donc le compte root est activé, je ne sais pas si c’est une mieux de pouvoir se loguer directement en tant que root :confused:

Euh… Il y a TOUJOURS un compte root sur une machine. Et c’est précisément celui qu’on DOIT utiliser pour faire les opérations sensibles. Son mot de passe DOIT être plus sécurisé que celui de l’user simple, que ne DOIT DONC PAS avoir autant de droit que root.

Donc sudo pour rendre la vie pratique (shutdown en première ligne), oui, sudo pour s’octroyer aveuglément les droits administrateurs, non.

Ne dites pas n’importe quoi …de 1 le pc est cher moi et je vis seul pour le moment , donc a moins que casper ce decide a vouloir me peter mon nux en locale … voila quoi, 2 mon mot de passe root est aussi securisé que l’est mon pass utilisateur, 3 sudo peut etre bien pratique avec la config donner si dessus pour un simple apt-get dist-upgrade par exemple, puisque a la fin de la commande tout les privileges sont abandonner, tandis que si vous passer par su, non seulement vous etes root plus longtemps et en plus c’est facile d’oublier sa session ( sisi j’en connait ).

Je me servirait pas de sudo pour un serveur c’est evident, mais il peut etre parfois utile sur un desktop de s’octroyer les droits super utilisateur sans passer par SU.

Il devrait l’etre plus qur ton mot de passe utilisateur !

Plus serieusement, il est evident que pour l’utilisation que tu as apparemment de ton PC et vu les risques d’attaques que tu encoures, toutes ces protections sont un peu superflues !
Comme tu dis, il y a peu de risque que quelqu’un s’assoie sur ta chaise pour jouer du ‘sudo rm -rf /*’…

Mais il est vrai que pour un PC utilise professionnellement, une telle utilisation de sudo serait un enorme trou de securite !

Même en usage desktop familial ou personnel, ça reste anti-pédagogique, et j’en sais quelque chose. À mes débuts sous Ubuntu, c’était sudo par-ci sudo par-là, au point que je savais même plus quelles commandes étaient à moi et quelles commandes étaient à root. Un jour j’suis arrivé sur un PC de la fac qui m’a refusé une commande, ben hop, sudo. Évidemment, quand t’es pas sudoer ça marche moins bien.

Donc je vois que des avantages à su, puisqu’au final, avec le timestamp_timeout à 0 et le tty_tickets, sudo = su -c (à l’auto-complétion près).

J’utilise aussi exclusivement su (occasionnellement -c, toujours -l), et deconseille l’usage de sudo a part sous la forme d’applications declarees une par une dans sudoers (les ALL c’est tres moche) et d’un timestamp general de 0…
Mais reste a mon avis que pour un PC exclusivement “familial”, la methode du sudo omnipotent, outre son “confort”, n’apporte pas de reels problemes de securite !

Tout le monde ne tient pas forcement a profiter de la “pedagogie” du systeme, certains se content d’etre de “simples” utilisateurs…

On est bien d’accord, sudo sur un pc professionnel et encore pire sur un serveur je pense que j’eviterai, ou du moins sa serait plus restrictif au niveau des commandes que pour executer mon compte user.

@ seb,

Ce que tu dit est vrai pour un user qui n’a pas conscience du principe de fonctionne d’un compte user et d’un compte root sous linux. Un utilisateur avertit lui saura tres bien ne pas abusé du sudo a tout bout de champ, avec les 2 options cité plus haut sa fait deja une bonne couche de sécurité supplémentaire, sans ces options un simple script peut arriver a ces fins, avec ces options c’est deja beaucoup plus chaud puisque il faudrait a distance craqué le mot de passe user, ce qui est deja plus délicat.

On est d’accord dans le fond, mais au-delà des problèmes de sécurité qui n’existent plus vraiment dès lors que l’utilisateur n’est pas trop con, effectivement, je continue à penser que le sudo avec “ALL” est une mauvaise habitude.
Enfin, j’en ferais pas une religion non plus hein, mais une philosophie si :slightly_smiling:

D’accord a 300% !

La dernière fois que j’ ai installé Squeeze(ça remonte pas à vieux car je suis passé en 64 bit il n’ y a pas très longtemps) à l’ installation j’ ai eu le choix entre créer un compte root ou utiliser sudo, donc le compte root ne serait plus une obligation.

La dernière fois que j’ ai installé Squeeze(ça remonte pas à vieux car je suis passé en 64 bit il n’ y a pas très longtemps) à l’ installation j’ ai eu le choix entre créer un compte root ou utiliser sudo, donc le compte root ne serait plus une obligation.[/quote]
C’etait une install expert?

Tiens c’est vrai, il me semble avoir vu ça aussi à ma dernière install. Ceci dit, il me semble qu’on gros avertissement allait avec et qu’il conseillait la création d’un compte root :stuck_out_tongue:
J’imagine pas ce qu’y peut se passer en cas de pépin sévère sans root…

Oui si mes souvenirs sont bons, en principe je choisi toujours expert lors de l’ installation.

Oui si mes souvenirs sont bons, en principe je choisi toujours expert lors de l’ installation.[/quote]
Je me trompe peut-etre, mais il me semble que c’est la raison pour laquelle tu as eu ce choix. Si c’est bien ca ca veut dire que cette possibilite est laissee a “l’expert”, pas au “debutant” qui fait une install de base. :wink:

  • Il y a toujours un compte root, mais on peut le vérouiller (avec un « sudo ALL ») : sudo passwd -l root
  • Inversement, sudo peut demander le mdp root au lieu de l’utilisateur, en mettant l’option rootpw dans sudoers