--- categories: ['OpenBSD','Système','Base'] date: 2018-10-11T18:43:18+01:00 description: "Comment durcir sa machine sous OpenBSD" draft: false lastmod: 2020-05-21T15:00:40+02:00 tags: ['OpenBSD','Durcissement'] title: "OpenBSD : durcir le système de fichier" translationKey: 'openbsd-harden' --- ## Securelevel Par défaut, actuellement le niveau de sécurité par défaut d'OpenBSD semble être déjà un acquis. Le manpage **securelevel** nous restitue une information pertinente. Il est possible d'augmenter ce niveau en utilisant la commande `sysctl`, telle que :
`# sysctl -w kern.securelevel=2` Mais soyez conscient des difficultés créées : * Impossible de modifier l'horloge système - *(pensez à la synchronisation NTP, par exemple…)* -, * ou vos règles PF si jamais vous les avez configurées, * etc… ## Système de fichiers en lecture seule {{% note warning %}} **ATTENTION** : Avec OpenBSD 6.4, il semble que cela pose plus d'un soucis. Les sockets qui ne peuvent être copiées ; les services qui ne peuvent être démarrés, voire redémarrés ; la régénération du kernel qui ne se fait pas ; les logs PF non consultables, etc… et unveil(2) qui logiquement se plaint ! `(…) unveil: Read-only file system` {{% /note %}} Un autre moyen est de rester en `securelevel` par défaut à `1`, mais d'utiliser les options de montage, tel que `ro` principalement, mais aussi `nodev,noexec,nosuid` sur les différentes partitions du système de fichier ffs. Pour cela, il faut d'abord modifier le fichier `/etc/fstab`, de manière à ce que soit créé au démarrage un système de fichier `mfs` *(swap)* pour monter les périphériques `/dev` dedans {{< color red >}}Ne pas oublier cette écriture, sinon, vous aurez quelques difficultés pour "monter" dynamiquement certains périphériques spéciaux{{< /color >}}, parfois nécessaires, pour certains services, tel SSH ! Copiez votre fichier `/etc/fstab` de manière à en faire une sauvegarde - cela pourrait être utile plus tard !
`# cp /etc/fstab /root/fstab.origin ; chmod 0400 /root/fstab.origin` #### Modification du fichier `/etc/fstab` {{< file "sys-openbsd-harden-fstab" cfg "/etc/fstab" >}} {{% note warning %}} **ATTENTION** à ces deux points essentiels : * la partition `/tmp`, et `/var` ont besoin de rester en écriture ; néanmoins, il n'est pas nécessaire d'avoir des droits en exécution, suid, ni d'écriture de périphériques spéciaux. * la partition `/home` peut être en lecture seule ; néanmoins, soyez conscient que cela vous compliquera la tâche pour ajouter/créer/détruire tout fichier dans votre répertoire personnel, surtout dans le contexte d'une machine.
De même si vous souhaitez tester du code *(python, shell, …)* après avoir cloné des dépôts git, compiler des binaires pour les tester…
dans ce cas-là, c'est l'option `noexec` qui vous empêchera une telle activité, somme toute légitime. À vous de voir… {{% /note %}} #### Création du fichier `sysmount` Le script [`sysmount`](https://framagit.org/hucste/omv-it/blob/master/Administration/sysmount) nous facilitera la vie, pour autoriser l'écriture et verrouiller des différentes partitions le nécessitant : {{< file "sys-openbsd-harden-sysmount-script" sh "sysmount" >}} L'usage en est très simple : avant l'installation d'un binaire, ou la modification d'un fichier de configuration, un coup de : * `./sysmount rw` pour autoriser l'écriture sur le système de fichier, * puis ensuite de `./sysmount ro` pour l'empêcher à nouveau` et, voilà ! {{% note warning %}} **Soyez attentif** au fait que ce script ne gère QUE les droits d'écriture sur la racine ainsi que les partitions `/usr/` principales… Il vous faudra le modifier en conséquence pour gérer soit d'autres partitions, soit d'autres options ! {{% /note %}} ------------------------------------------------------------------------ Lorsqu'il faudra mettre à niveau le système d'exploitation, veuillez lire cet autre article : **{{< inside "sys:openbsd:upgrade-hardened-openbsd" >}}** ------------------------------------------------------------------------ ## Documentations ### Manpages * {{< man securelevel >}}, {{< man unveil 2 >}} ## Remerciements Un petit "gros" merci @[Vincent](http://www.vincentdelft.be/) pour ces tutoriels sur le durcissement du système de fichier OpenBSD : [ici](http://www.vincentdelft.be/post/post_20160712) ou [là](http://www.vincentdelft.be/post/post_20180713). ------------------------------------------------------------------------