Interdire le chargement de modules supplémentaires

Salut à tous,

J’ai une machine qui a une config hardware fixe.
Je voulais savoir s’il y a un moyen d’interdire le chargement de tout autre module noyau que ceux que j’ai choisi (typoquement ceux de /etc/modules).

Je cherche à créer une whiteliste de modules: ceux-là et rien d’autre.

Merci

Salut,

Sachant que sous Linux seul “root” est habilité à ce genre de manoeuvre, il faut et il suffit que tu ne donnes pas ton MDP :slightly_smiling:

En supposant que la personne ait un accès root sur la machine (sécurité en profondeur), comment puis-je limiter le rajout de modules supplémentaires ?

Merci

Tu compiles ton noyau en dur et tu désactives la gestion des modules, personne ne pourra ajouter de module dans ce cas.

Le plus simple est d’enlever les modules non utilisés ou de les mettre en mode 000…

En mettant en chmod 000 cela n’empêchera pas un root de lui remettre les bons droits et ensuite d’activer le module.

C’est pour ça que les enlever est le plus simple, mais si il en est à craindre que quelqu’un soit en root sur sa machine, le problème de chargement d’un module me parait à ce stade vraiment mineur…

Au lieu de chercher à savoir comment bloquer les actions d’un root indésirable je pense qu’il est préférable de renforcer l’accès à ce compte root par un mot de passe très, des ACL et des restrictions si connexion ssh ou locale.

[quote]Au lieu de chercher à savoir comment bloquer les actions d’un root indésirable je pense qu’il est préférable de renforcer l’accès à ce compte root par un mot de passe très, des ACL et des restrictions si connexion ssh ou locale.[/quote]Tout a fait: mais l’un n’exclut pas l’autre.
Même si je durcis la machine, je ne suis pas protégé à 100%.
C’est pourquoi je liste toutes les barrières avant le chargement d’un module.

Comme dit plus haut tu as plusieurs solutions, supprimes les modules que tu ne veux pas charger ou bien compile le noyau de façon statique.

Merci

Je ne comprends pas ton problème. SI ta machine est TRÈS sensible et doit être protégée au point de redouter le chargement d’un module, le problème ne viendra pas d’un module maison mais d’un module fabriqué pour l’occasion. Si quelqu’un est root, il est très difficle d’éviter cela ne serait ce qu’avec l’option -f: Si quelqu’un peut être root, il peut importer un module, le charger, etc. La seule et unique solution consiste à faire un noyau refusant tout module mais dans ce cas, il y a des choses qui marcheront mal (l’USB, certains périphériques, etc). Cela me parait quasi impossible. Il est beaucoup plus rentable à ce stade de faire un système racine en lecture seule avec un script vérifiant les modules chargés et l’intégrité du système. Tu seras beaucoup plus efficace qu’à vouloir à tout prix essayer d’empêcher le chargement de modules à priori innofensifs…

Je suis d’accord avec toi bran.b.
Tout serait plus facile si j’avais le pouvoir de redesigner la machine, ou au moins le noyau.
Ce n’est pas le cas. Je dosi faire avec un noyau type Debian par defaut.

D’où toutes mes questions.

Fais un système de surveillance tournant en permanence, si quelqu’un est root et si le noyau est standard, alors il pourra mettre sur la machine ce qu’il veut…

Bonjour,

je ne connais pas ton probleme en details, mais voici quelques idées a creuser pour ton cas:

  • desactiver l’acces root a la machine et travailler via sudo
  • installer Linux PAM pour autentifier les utilisateurs de manière forte
  • ne pas installer make sur la machine
  • configurer /etc/modprobe.d/blacklist pour empercher udev de charger certains modules
  • virer les modules dont tu n’as pas besoin, ou compiler le noyau en dur en desactivant le chargement de modules
  • mettre /etc/modules en lecture seule
  • faire un chattr +i sur /etc/ (penser a faire chattr -i pour les installations ou mises a jour)

c’est tout ce qui me passe par la tete a ce moment…