SX, Centos 7 et un peu de sécurité

Comme vous l’avez sûrement vu, nous avons été offline pendant deux jours début mars. Cela nous a permis de passer de Centos 6 à Centos 7, Centos 6 arrivant à la fin de son support complet en Mai 2017 (comme l’indique le tableau suivant https://wiki.centos.org/About/Product ).

Je vais faire une série de petits posts sur les problèmes que nous avons rencontrés lors de l’installation, configuration et exploitation de cette nouvelle version de Centos 7 et des mécanismes de sécurité que nous avons voulus mettre en place.

Pourquoi choisir Centos ?

Il n’y a pas vraiment de vraies bonnes raisons. Les deux principales sont :

– Une distribution stable et fonctionnelle, c’est-à-dire que les paquets de base sont fonctionnelles et sont, pour la plupart, utilisables dès leur installation.
– Un support natif de SELinux. Si vous avez lu les précédents posts orientés Admin système et réseau, SELinux est le mécanisme de sécurité que nous avons choisi car il est intégré nativement au noyau et que les politiques de base sont presque toujours fonctionnelles. Nous aurions pu choisir “son grand concurrent”, à savoir Grsecurity, mais il est nécessaire de recompiler son noyau à chaque mise à jour, ce qui est assez contraignant.

Et, à la différence de ce que préconise l’ANSSI dans son guide de sécurisation d’un serveur Linux (https://www.ssi.gouv.fr/uploads/2015/10/NP_Linux_Configuration.pdf), nous avons choisi la politique MLS (multi-level security), qui, comme nous le verrons par la suite, ne s’est pas révélée sans conséquence.

La politique targeted, celle préconisée par l’ANSSI, laisse les utilisateurs et certaines applications n’ayant pas de politique SELinux spécifiques, dans un domaine non confiné (donc non contrôlé).

Inconvénient majeur : la version de certains paquets. En effet, PHP, Apache, etc, sont en version assez vieillottes, ce qui nous privent de fonctionnalités parfois importantes.

Qu’est-ce que l’on va installer ?

De manière non exhaustive :

– un serveur HTTP
– une base de données MySQL
– un serveur de mail
– un ensemble d’autres applications utiles à la gestion d’un serveur.

Et l’objectif étant de sécuriser le tout avec un peu de SELinx, un peu de Fail2Ban et un peu du reste.