Bonjour,

Je bataille actuellement à rédiger une procédure d'exploitation de sécurité. Mon problème se situe au niveau de la désactivation des modules inutiles.

sur un serveur CentOS 5.7 kernel 2.6.18-308

La méthode que j'estime classique est la blacklist
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$ vi /etc/modprobe.d/blacklist.conf
blacklist pcspkr
Au passage, je précise que le module, choisi comme exemple, se décharge sans problème avec un "modprobe -r". J'ai également vérifié dans le script du initrd qu'il n'y avait aucune référence à ce module.

Pourtant, au redémarrage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$ lsmod | grep pcspkr
pcspkr   36289   0
J'ai testé d'autres modules tels que "lp" et "parport_pc" avec la même conclusion : la blacklist ne semble pas suffisante.

J'ai donc cherché d'autres moyens de blacklister efficacement un module. Sur wikipedia, on trouve 2 autres solutions, présentées comme équivalentes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$ vi /etc/modprobe.d/test
install pcspkr /bin/true
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$ vi /etc/modprobe.conf
alias pcspkr /dev/null
Seule la première méthode fonctionne mais empêche naturellement un chargement manuel du module.

Qu'elle est donc la méthode la plus "propre" mais efficace pour décharger un module ?

Je me demande également pourquoi modprobe n'est parfois pas capable de décharger les dépendances. Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$ modprobe -r ipv6
FATAL: Module is in use.
$ modprobe -r bnx2i
$ modprobe -r ipv6
OK
Merci d'avance pour vos lumières.