---
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