Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#26 29-10-2022 20:48:44

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

otyugh a écrit :

Si tu permet à quelqu'un d'installer des paquets, tu lui permet de modifier n'importe quoi dans le système


Faut pas exagérer, je ne connais aucun paquet des dépôts officiels dont l'installation avec la configuration par défaut permet à un utilisateur non privilégié d'exécuter des actions privilégiées arbitraires. (Certes, le paquet policykit-1 permet à un utilisateur local non privilégié de suspendre, redémarrer ou éteindre la machine ou monter des volumes amovibles, et le paquet network-manager permet de manipuler les interfaces réseau mais tout cela est ciblé, ça ne permet pas de modifier le système.)

otyugh a écrit :

apt-get install ./litteralement_nimportequoi_pasdanslédepots.deb


A ma connaissance et à moins que ça ait changé, apt-get ne permet pas d'installer un paquet à partir d'un fichier .deb quelconque, contrairement à dpkg et apt. Voyons...

apt-get install firmware-realtek_20210315-3_all.deb


Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
E: Impossible de trouver le paquet firmware-realtek_20210315-3_all.deb
E: Impossible de trouver de paquet correspondant à l'expression rationnelle « firmware-realtek_20210315-3_all.deb »
E: Impossible de trouver de paquet correspondant à l'expression rationnelle « firmware-realtek_20210315-3_all.deb »


Marche pô...


Il vaut mieux montrer que raconter.

Hors ligne

#27 29-10-2022 20:56:52

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

Hmm...

apt-get install ./firmware-realtek_20210315-3_all.deb


Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
Note : sélection de « firmware-realtek » au lieu de « ./firmware-realtek_20210315-3_all.deb »
Les NOUVEAUX paquets suivants seront installés :
  firmware-realtek
0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 0 o/921 ko dans les archives.
Après cette opération, 2988 ko d'espace disque supplémentaires seront utilisés.
Réception de :1 /root/firmware-realtek_20210315-3_all.deb firmware-realtek all 20210315-3 [921 kB]
Sélection du paquet firmware-realtek précédemment désélectionné.
(...)


Donc avec un chemin explicite pour indiquer que c'est un nom de fichier, ça marche. Bon, j'ai appris un truc, merci.
Faut durcir le script wrapper pour filtrer les options et les chemins pour ne laisser que les noms de paquets.


Il vaut mieux montrer que raconter.

Hors ligne

#28 29-10-2022 21:41:30

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : 5.10.0-19-amd64
(G)UI : Mate 1.24.1
Inscription : 05-07-2020

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

Est-ce qu'il est possible d'obtenir, par un utilisateur charitable, un script wrapper tout fait pour brider "sudo apt-get -c" d'un user qui a la possibilité de faire des sudo apt-get ? ; en incluant l'interdiction d'installer ces 2 paquets: (policykit-1, network-manager) ainsi que la possibilité d'installer un paquet via le chemin explicite ./

Comme ça la boucle est bouclée.
Je suis encore trop débutant en algorithme bash sur ce point pour le faire moi-même.

Dernière modification par totoZero7 (29-10-2022 22:01:05)

Hors ligne

#29 29-10-2022 21:41:33

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

Donc avec un chemin explicite pour indiquer que c'est un nom de fichier, ça marche. Bon, j'ai appris un truc, merci.

J'ai appris ça sur le forum cette année, fort pratique pour installe des .deb et installant automatiquement les dépendances (quand le paquet est bien fait ~)

Dernière modification par otyugh (29-10-2022 21:42:00)


antifa.png feminism.png lgbtqi.png disarm.png kopimi.png
Pas de repos pour les oppresseurs ! (surtout quand c'est moi)

Hors ligne

#30 29-10-2022 21:48:52

saitama-san
Membre
Inscription : 28-07-2019

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

pour nuancer, il faudrait séparer le cas pour limiter les erreurs sur le système (en autorisant un 'apt upgrade' par exemple) du cas pour sécuriser sa machine.
bien configurer apt n'est pas si évident, et certaines commandes peuvent avoir des nombreuses possibilités.
j'ai en tête l''autorisation d'éditeur de texte comme vi.

Hors ligne

#31 29-10-2022 21:50:36

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

otyugh a écrit :

fort pratique pour installe des .deb et installant automatiquement les dépendances


Bof, apt le fait déjà, y avait pas besoin de ça dans apt-get...


Il vaut mieux montrer que raconter.

Hors ligne

#32 29-10-2022 21:56:59

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

totoZero7 a écrit :

brider "sudo -c"


Je ne vois pas d'option -c dans la page de manuel de sudo. C'est censé faire quoi ?

saitama-san a écrit :

j'ai en tête l''autorisation d'éditeur de texte


Avec apt-get ? apt a bien la commande edit-sources, mais je ne vois rien de tel pour apt-get.
En tout cas c'est bien le genre de fonctionnalité dont il faut se méfier quand on accorde les droits sudo sur une commande.


Il vaut mieux montrer que raconter.

Hors ligne

#33 29-10-2022 22:01:47

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : 5.10.0-19-amd64
(G)UI : Mate 1.24.1
Inscription : 05-07-2020

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

raleur a écrit :

totoZero7 a écrit :

    brider "sudo -c"


Je ne vois pas d'option -c dans la page de manuel de sudo. C'est censé faire quoi ?



c'est modifié

Hors ligne

#34 29-10-2022 22:20:27

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : 5.10.0-19-amd64
(G)UI : Mate 1.24.1
Inscription : 05-07-2020

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

Je vais certainement dériver, mais le fait qu'il y ait "apt" et "apt-get" en duo, et que ce qui se dit sur les forums à ce sujet est que "apt" serait l'avenir.
Est-ce qu'il ne faudrait pas privilégier "apt" de apt-get ?
c'est une question toto zéro

Hors ligne

#35 29-10-2022 22:31:20

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

Oh je parle des deux de manière interchangeable parce que ça s'utilise quasiment pareil pour les fonctions principales. Mais "apt" est le successeur, et c'est plus rapide à écrire old_geek.gif

Dernière modification par otyugh (29-10-2022 22:32:07)


antifa.png feminism.png lgbtqi.png disarm.png kopimi.png
Pas de repos pour les oppresseurs ! (surtout quand c'est moi)

Hors ligne

#36 29-10-2022 23:47:48

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

totoZero7 a écrit :

Est-ce qu'il est possible d'obtenir, par un utilisateur charitable, un script wrapper tout fait pour brider "sudo apt-get -c" d'un user qui a la possibilité de faire des sudo apt-get ?


Quelque chose de ce genre :

#!/bin/sh
printf "%s" "$*" | grep -vEq "^(--no-install-recommends )?(install|update|upgrade|dist-upgrade)( [a-z0-9]+(-[a-z0-9]+)*)*$" && exit 1
apt-get --no-remove "$@"


si on veut installer et mettre à jour sans désinstaller de paquets, et éventuellement ne pas installer les paquets recommandés.
J'ai regardé si on pouvait faire la même chose avec les wildcards de sudo, mais ça n'a pas l'air assez souple.

totoZero7 a écrit :

en incluant l'interdiction d'installer ces 2 paquets: (policykit-1, network-manager)


Pourquoi ? Ces paquets sont probablement déjà installés, et comme je l'ai écrit, ils ne permettent pas de modifier le système.

totoZero7 a écrit :

ainsi que la possibilité d'installer un paquet via le chemin explicite


Cette possibilité est exclue par la vérification des noms de paquets qui ne doivent contenir que des lettres minuscules, des chiffres et des tirets au milieu. Cela exclut donc aussi la possibilité d'installer une version spécifique, une architecture spécifique ou depuis une archive spécifique.

Dernière modification par raleur (30-10-2022 00:16:30)


Il vaut mieux montrer que raconter.

Hors ligne

#37 31-10-2022 15:09:59

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : 5.10.0-19-amd64
(G)UI : Mate 1.24.1
Inscription : 05-07-2020

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

Bon alors, j'ai une flopée de questions car je ne maîtrise pas encore cela, je mets tout d'un coup et je ferai un récap ensuite.

Avant de commencer, est-il possible d'obtenir un script wrapper qui interdirait par exemple uniquement la commande "ls", qui pour moi (et les débutants) serait plus simple à comprendre pour faire des tests car je n'arrive pas pour le moment à utiliser apt-get -c big_smile ?

Ensuite, le script se met où ?
- Comment on le fait fonctionner pour qu'il s'active avec sudo ? Doit-il être mis dans un fichier /etc/monsudo.conf ? car j'ai lu dans la doc que "apt.conf" lit tout le répertoire /etc/ mais je ne sais pas si c'est pareil avec apt-get.
- Dois-je le rendre exécutable ou cela se fait automatiquement ?

- Sous quelle forme (de test) on peut utiliser l'option -c de apt-get pour tester que ce la fonctionne bien ? (je ne comprends pas comment fonctionne cette commande)
un exemple avec un paquet au pif ?

Et j'ajoute aussi cela
- Comment faire pour autoriser uniquement la commande "apt autoremove" afin de pouvoir nettoyer l'espace des anciens noyaux afin de ne pas saturer l'espace et de se retrouvé bloqué ?
    Je suppose qu'il faut d'abord l'autoriser en liste blanche et ensuite en limiter son action en le spécifiant dans un script. Quelqu'un saurait l'écrire si c'est bien ça ? big_smile

Hors ligne

#38 31-10-2022 17:46:04

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

totoZero7 a écrit :

est-il possible d'obtenir un script wrapper qui interdirait par exemple uniquement la commande "ls"


Aucun intérêt. Il serait trivial de copier le programme ls sous un autre nom ou de l'appeler dans un script pour passer outre l'interdiction.
Comme on te l'a déjà dit, les listes noires sont faciles à contourner.

totoZero7 a écrit :

je n'arrive pas pour le moment à utiliser apt-get -c


Si tu ne dis pas exactement ce que tu fais et ce qui se passe, ça va être difficile de te répondre.

totoZero7 a écrit :

Ensuite, le script se met où ?


Dans un des chemins inclus dans le $PATH utilisateur. /usr/local/bin me semble le meilleur endroit car il est à la disposition de l'administrateur local contrairement à /bin et /usr/bin dont le contenu provient de la distribution.

totoZero7 a écrit :

- Comment on le fait fonctionner pour qu'il s'active avec sudo ? Doit-il être mis dans un fichier /etc/monsudo.conf ?


Si sudo est configuré pour lire ce fichier, pourquoi pas. Sinon, dans /etc/sudoers ou un fichier dans /etc/sudoers.d/ (voir le README dans ce répertoire).

totoZero7 a écrit :

Dois-je le rendre exécutable ou cela se fait automatiquement ?


Oui, comme n'importe quel programme exécutable.

totoZero7 a écrit :

Sous quelle forme (de test) on peut utiliser l'option -c de apt-get pour tester que ce la fonctionne bien ?


Peu importe. -c n'est pas la seule option dangereuse, il y a aussi -o et j'en oublie sûrement. Pas besoin que la commande fonctionne réellement pour vérifier si sudo la refuse.

totoZero7 a écrit :

Comment faire pour autoriser uniquement la commande "apt autoremove"


Ajoute "autoremove" à la liste des commandes d'apt-get acceptées dans l'expression du script.


Il vaut mieux montrer que raconter.

Hors ligne

#39 01-11-2022 15:44:39

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : 5.10.0-19-amd64
(G)UI : Mate 1.24.1
Inscription : 05-07-2020

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

J'ai galéré à trouver un exemple avec "apt-get -c" en cherchant dans le man ou sur duckduckgo, que j'utilise au quotidien. En fait, j'en ai pas trouvé. J'ai donc utilisé smartpage, je ne n'utilise pas habituellement, et hop j'en ai trouvé direct. ici.
Comme quoi, faut diversifier ses sources de recherches (de moteur de recherche là) pour trouver ce que l'on cherche.
L'objectif de cette exemple était déjà de comprendre son écriture sur une situation concrète ainsi que son action car je comprends mieux en faisant qu'en lisant un paragraphe, même si j'ai lu le man.


J'ai créé le fichier monscript et les déposer dans /usr/local/bin/monscript
Dedans j'ai mis le script suivant

#!/bin/sh
printf "%s" "$*" | grep -vEq "^(--no-install-recommends )?(install|update|upgrade|dist-upgrade)( [a-z0-9]+(-[a-z0-9]+)*)*$" && exit 1
apt-get --no-remove "$@"

Je lui ai donné les droit 755


Mais je pense que cela ce fonctionne pas. Quand je teste avec cette commande j'obtiens ceci:

sudo apt-get -c=test.conf install firefox

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
Aucune version du paquet firefox n'est disponible, mais il existe dans la base
de données. Cela signifie en général que le paquet est manquant, qu'il est devenu obsolète
ou qu'il n'est disponible que sur une autre source

E: Le paquet « firefox » n'a pas de version susceptible d'être installée


Le script n'est pas censé m’empêcher de faire cette commande ?
Ai-je oublier quelque chose ? quoi ?
D'ailleurs, que fait exactement ce script ? je n'arrive pas à le comprendre.

Hors ligne

#40 01-11-2022 20:54:46

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

totoZero7 a écrit :

Le script n'est pas censé m’empêcher de faire cette commande ?


Non, le script n'est pas censé empêcher d'exécuter apt-get avec sudo. C'est sudo lui-même qui doit être configuré pour autoriser seulement l'exécution du script et pas d'apt-get. Le script s'utilise ensuite avec sudo à la place d'apt-get.


Il vaut mieux montrer que raconter.

Hors ligne

#41 01-11-2022 22:17:56

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : 5.10.0-19-amd64
(G)UI : Mate 1.24.1
Inscription : 05-07-2020

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

Je parlais d’empêcher de faire apt-get -c ou tout autres formes d'option de apt-get, car je ne comprends pas ce script ; mais pas d’empêcher de faire un simple apt-get car j'ai autorisé apt-get en liste blanche dans un alias.


Je suis perdu.

J'étais parti sur l'idée de faire une liste blanche d'abord (comme c'était parti dans le fil) avec des aliases en incluant dedans apt-get - entre autres car j'ai mis d'autre choses en alias -, ce que j'ai fait, et ensuite, d'ajouter ce script pour réduire uniquement l'action (ici pour apt-get) de ce que j'ai mis en liste blanche.
Mais en fait non ? Je ne peux rien inclure en alias dans la liste blanche et dois passer obligatoirement passer par le script, c'est bien ça ?

Hors ligne

#42 01-11-2022 22:47:52

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : 5.10.0-19-amd64
(G)UI : Mate 1.24.1
Inscription : 05-07-2020

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

Dans sudoers, j'ai fait cela mais ça ne fonctionne pas

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
toto    ALL= /usr/local/bin/monscript

Hors ligne

#43 02-11-2022 14:40:32

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

totoZero7 a écrit :

Je parlais d’empêcher de faire apt-get -c ou tout autres formes d'option de apt-get, car je ne comprends pas ce script ; mais pas d’empêcher de faire un simple apt-get


C'est pourtant ce qu'il faut faire. Si tu mets apt-get en liste blanche, tu autorises toutes ses actions.
Le script sert à remplacer apt-get dans la liste blanche de sudo et à limiter ce qu'on peut faire avec apt-get.

totoZero7 a écrit :

Dans sudoers, j'ai fait cela mais ça ne fonctionne pas


Mais encore ?


Il vaut mieux montrer que raconter.

Hors ligne

#44 02-11-2022 15:40:32

Croutons
Membre
Distrib. : Debian10 Buster
Noyau : Linux 4.19.0-18-amd64
(G)UI : Mate
Inscription : 16-12-2016

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

hello
j’essaie de suivre mais c'est compliqué
de se que j'ai lu dans le man et sur le wiki df
pour bloqué la commande apt-get a tout les membres de sudo, petit test qui fonctionne en utilisant le point d'exclamation (negation)

visudo


# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL, !/usr/bin/apt-get



sudo apt-get update


Désolé, l'utilisateur stephane n'est pas autorisé à exécuter « /usr/bin/apt-get update » en tant que root sur NakeDeb.unassigned-domain.



par contre il faudra penser a toute les alternatives , car apt update fonctionne


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#45 02-11-2022 15:57:36

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

Croutons a écrit :

pour bloqué la commande apt-get a tout les membres de sudo


Ça ne marche pas. Il suffit de lancer l'exécutable sous un autre nom pour contourner l'interdiction.

Je ne vois pas ce qu'il y a de compliqué. Au lieu d'autoriser apt-get, on autorise un script qui lance apt-get de façon contrôlée.

Dernière modification par raleur (02-11-2022 15:59:05)


Il vaut mieux montrer que raconter.

Hors ligne

#46 02-11-2022 16:15:03

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : 5.10.0-19-amd64
(G)UI : Mate 1.24.1
Inscription : 05-07-2020

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

Mais encore ?


Je reprends,
Pour s'occuper seulement de la commande apt-get:
Il faut créer un script dédié pour "apt-get" afin de le restreindre de certaines actions (option -c par exemple)
Ce script dédié est mis idéalement dans /usr/local/bin
Ce script dédié doit être mis en exécutable
Le chemin de ce script doit être mis dans le fichier sudoers, au niveau de l'user qui sera ciblé à la partie %sudo.
Je n'ai pas mis apt-get en liste blanche (sous alias) dans sudoers, juste le script.

On est bon jusque là ?


ls -all /usr/local/bin/

-rwxr-xr-x  1 root root     159  1 nov.  21:41 monscript


cat sudoers

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
toto  ALL= /usr/local/bin/monscript


sudo apt-get update

Désolé, l'utilisateur toto n'est pas autorisé à exécuter « /usr/bin/apt-get update » en tant que root sur debM11.


J'ai fait tout cela, mais cela ne fonctionne pas.
toto n'a pas accès a apt-get tout court.

Hors ligne

#47 02-11-2022 16:20:11

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

totoZero7 a écrit :

Le chemin de ce script doit être mis dans le fichier sudoers, au niveau de l'user qui sera ciblé à la partie %sudo.


L'utilisateur ne doit pas être membre du groupe sudo, sinon il aura le droit d'exécuter n'importe quoi.

totoZero7 a écrit :

sudo apt-get update


Il faut exécuter le script, pas apt-get.


Il vaut mieux montrer que raconter.

Hors ligne

#48 02-11-2022 16:27:08

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : 5.10.0-19-amd64
(G)UI : Mate 1.24.1
Inscription : 05-07-2020

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

raleur a écrit :

L'utilisateur ne doit pas être membre du groupe sudo, sinon il aura le droit d'exécuter n'importe quoi.


Je pensais qu'on s'occupait uniquement de apt-get.
Je souhaitais ajouter ensuite des fonctions comme éteindre la machine, qui nécessite sudo.
Tout ce que je souhaite ajouter doit être mis dans le scripté dédié du coup ?

Hors ligne

#49 02-11-2022 16:31:39

raleur
Membre
Inscription : 03-10-2014

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

totoZero7 a écrit :

Tout ce que je souhaite ajouter doit être mis dans le scripté dédié du coup ?


Non, ce script ne sert qu'à "envelopper" apt-get.
Il faut ajouter les autres commandes dans sudo.


Il vaut mieux montrer que raconter.

Hors ligne

#50 02-11-2022 16:37:45

Croutons
Membre
Distrib. : Debian10 Buster
Noyau : Linux 4.19.0-18-amd64
(G)UI : Mate
Inscription : 16-12-2016

Re : [résolu] Comment sécuriser le passwd root de l'user qui utilise sudo ?

raleur a écrit :

Ça ne marche pas. Il suffit de lancer l'exécutable sous un autre nom pour contourner l'interdiction.


ah bon , j'ai pas testé mais ce serait étonnant
c'est pas un fichier de config utilisateur mais des règles établi pour tout membre du groupe sudo
donc logiquement aucun utilisateur n'aura le droit


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

Pied de page des forums