--- date: 2017-07-27T07:07:17+02:00 description: "Comment sécuriser sa distribution GNU/Linux en utilisant le binaire chattr" draft: false tags: ['Linux','Harden','chattr'] title: "Durcir Linux : Utiliser chattr" --- ## Description Dans la continuité de mon article précédent **{{< inside "sec:linux:durcir-partitionnement" >}}** il est une commande intéressante à utiliser : `chattr` **Cet outil permet de modifier les attributs de fichiers, répertoires.** Il existe une option qui est fortement pratique : l'option `i` - *dont le but est de rendre figé, immuable l'état d'un fichier, ou répertoire et d'interdire toute modification ultérieure, même par l'administrateur système, généralement nommé `root`*. Les répertoires à protéger, tout particulièrement, sont : * `/bin`, * `/boot`, * `/etc`, * `/usr`, * `/root`, * `/sbin`, * ainsi que les fichiers liés à : `/initrd`, `/lib`, `/lib64`, `/vmlinuz` ⇒ Pour protéger/figer/rendre immuable, un petit coup de commande : `chattr -R +i /bin /boot /etc /usr /root /sbin /lib* /initrd* /vmlinuz* 2> /dev/null`
`chattr -R -i /etc/adjtime /etc/blkid.tab /etc/mtab /etc/network/run /etc/udev/rules.d 2> /dev/null`
{{< note info >}}La deuxième ligne est importante, car ces fichiers ne doivent pas être figés, sinon le système ne peut s'en servir !{{}} ⇒ Pour enlever l'option `i` sur lesdits répertoires et fichiers, en question, il suffit d'écrire la commande ainsi : `chattr -R -i /boot /usr /bin /sbin /lib* /root /vmlinuz* /initrd* /etc 2> /dev/null` ## Mise en garde Tout outil nécessitant une modification système, comme par exemple **visudo**, ou les outils de gestion de paquets, tels que ceux ci-dessous, impose la gymnastique de rendre muable avant leur usage, et d'avoir le réflexe de figer en suivant ! N'oubliez pas que si le système vous refuse l'action, c'est que vous avez probablement figer l'état de différents binaires. ;-) ### apt, dpkg, synaptic Ces commandes peuvent être insérées dans un script, pour vous faciliter la vie, et mieux, aussi vous devriez les intégrer à votre script de gestion `apt`. Si jamais vous avez la bonne idée d'abuser de cette commande, veuillez comprendre absolument qu'avec les outils **apt**, **dpkg**, **synaptic**, - *et très certainement, tout outil gérant l'installation logicielle* -, il vous faudra : * utiliser l'option `-i` ; * utilisez l'outil d'installation logiciel, * et veillez à remettre l'option `+i` en suivant… Vous êtes avertis, autrement vous seriez surpris par quelques dysfonctionnements. ## Utilisation Dans le fichier `/etc/apt/apt.conf.d/00apt`, ajouter : * en première ligne, dans l'invocation *pre*, un appel vers le script ci-dessous, tel que :
`DPkg::Pre-Invoke{`
` "/repertoire/chattr_sys 0";`
`(…)`
`}`
* et, en dernière ligne, dans l'invocation *post* :
`DPkg::Post-Invoke {`
`(…)`
` "/repertoire/chattr_sys 1";`
`}`
### Script shell {{< file "sec-linux-chattr-script" bash "chattr_sys" >}} Vous pouvez retrouver la dernière version de ce script sur mon [gitlab][1] ! ## Documentation ### Manpage * un coup de **manpage**, vous renseignera encore plus profondément : `$ man chattr` --- [1]: https://framagit.org/hucste/tools/-/raw/master/Debian/chattr_sys