SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
MANUEL DE
SECURITE
Manuel de sécurisation d'une distribution Linux
RESUME
Manuel Pratique de
sécurité sous Linux
https://www.jmrenouard.fr
https://www.lightpath.fr/
Version 1.8
18 mars 2024
Le présent document détaille les procédures de
sécurisation type lors d'une installation de serveur Linux.
https://www.jmrenouard.fr https://www.lightpath.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 1/24
1 Version
Version Date Auteur Description
1.0
24/04/2006
Jean-Marie Renouard Version initiale
1.1 21/06/2008 Jean-Marie Renouard Amélioration du document
Ajout de la partie sur l'installation
Changement de licence
1.2 22/08/2008 Jean-Marie Renouard Mise à jour de la syntaxe et corrections
orthographiques
1.3 23/02/2009 Jean-Marie Renouard Mise à jour des conseils autour de l'identité des
intervenants sur les serveurs
1.4 09/03/2009 Jean-Marie Renouard Mises à jour multiples et ajout d’illustrations
1.5 12/11/2011 Jean-Marie Renouard Mises à jour
1.6 26/12/2021 Jean-Marie Renouard Mises à jour
1.7 20/12/2222 Jean-Marie Renouard Ajout d’une section sur les mots de passe
1.8 18/03/2024 Jean-Marie Renouard Ajout d’une section sur Docker/MySQL
https://www.jmrenouard.fr https://www.lightpath.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 2/24
2 MENTIONS LEGALES
© Jean-Marie RENOUARD- 2006-2024
Tous droits réservés
Aux termes du présent avis, et notamment des articles L 111-1 et L 122-5 du code
de la propriété intellectuelle, vous êtes autorisés à visualiser, copier, imprimer et
distribuer ce document aux conditions suivantes :
1. Ce document sert uniquement à des fins d'information ;
2. Ce document sert à des fins non commerciales ;
3
3.
. Tou
ut
te
e c
co
op
pi
ie
e o
ou
u i
im
mp
pr
re
es
ss
si
io
on
n t
to
ot
ta
al
le
e o
ou
u p
pa
ar
rt
ti
ie
el
ll
le
e d
de
e c
ce
e d
do
oc
cu
um
me
en
nt
t d
do
oi
it
t m
me
en
nt
ti
io
on
nn
ne
er
r l
la
a
s
so
ou
ur
rc
ce
e "
" ©
© J
Je
ea
an
n-
-M
Ma
ar
ri
ie
e R
RE
EN
NO
OU
UA
AR
RD
D -
- 2
20
00
06
6-
-2
20
02
24
4"
" e
et
t r
re
ep
pr
ro
od
du
ui
ir
re
e l
le
e t
te
ex
xt
te
e i
in
nt
té
ég
gr
ra
al
l
d
du
u p
pr
ré
és
se
en
nt
t a
av
vi
is
s.
.
https://www.jmrenouard.fr https://www.lightpath.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 3/24
3 Table des matières
1 VERSION ........................................................................................................................................... 1
2 MENTIONS LEGALES ...................................................................................................................... 2
3 TABLE DES MATIERES ................................................................................................................... 3
4 INTRODUCTION................................................................................................................................ 5
4.1 OBJET DU DOCUMENT.................................................................................................................... 5
4.2 CONTEXTE DU DOCUMENT............................................................................................................ 5
4.3 REFERENCES DOCUMENTAIRES .................................................................................................. 5
4.4 TYPOLOGIE....................................................................................................................................... 5
4.5 GLOSSAIRE.................................................................................. ERREUR ! SIGNET NON DEFINI.
5 CONSIDERATIONS GLOBALES DE SECURITE. ........................................................................... 6
6 MISES A JOUR DE SECURITE ET DISTRIBUTION MAINTENUE ................................................. 7
6.1 PROCEDURE DE MISE A JOUR INTEGRALE DE LA DISTRIBUTION........................................... 7
6.2 REFLEXION DE GESTION APPLICATIVE SUR DISTRIBUTION EN FIN DE VIE .......................... 7
7 TOPOLOGIE D'INSTALLATION ....................................................................................................... 8
7.1 INSTALLATION MINIMUM................................................................................................................. 8
7.2 RETRAIT DE TOUTES LES DOCUMENTATIONS ET APPLICATIONS NON NECESSAIRES ...... 8
7.3 EFFET « SIMPLE IS BEAUTIFUL » .................................................................................................. 8
8 COMPTE A DROITS RESTREINTS.................................................................................................. 9
8.1 RESTRICTIONS DES ACCES SSH .................................................................................................. 9
8.2 MISE EN PLACE DU MECANISME D'USURPATION....................................................................... 9
8.2.1 Mise en place pour un utilisateur spécifique ...................................................................................... 9
8.2.2 Mise en place pour un groupe spécifique .......................................................................................... 9
8.2.3 Test la mise en place ....................................................................................................................... 10
8.2.4 Test de la présence des logs des actions ........................................................................................ 10
8.3 SUPPRESSION DU DROIT DE CONNEXION POUR LE SUPER UTILISATEUR ......................... 11
9 GESTION DES MOTS DE PASSE .................................................................................................. 11
9.1 CHOIX DES MOTS DE PASSES DE QUALITE POUR LE SUPER-UTILISATEUR ET
L'ENSEMBLE DES COMPTES PRIVILEGIES................................................................................................ 11
9.1 GENERATION DE MOTS DE PASSES DE QUALITE EN LIGNE DE COMMANDE...................... 11
9.1.1 Pwgen pour générer un mot de passe sécurisé sans utiliser de site Web ...................................... 12
9.1.2 OpenSSL pour générer un mot de passe sécurisé sans utiliser de site Web.................................. 12
9.2 COMMENT STOCKER SES MOTS DE PASSE EN TOUTE SECURITE ?.................................... 12
9.2.1 Utiliser un gestionnaire de mots de passe ....................................................................................... 12
9.2.2 Utiliser un papier ou un fichier sécurisé : ......................................................................................... 12
9.2.3 Utiliser la fonction de mots de passe intégrée de votre navigateur ou de votre système
d'exploitation.................................................................................................................................................... 12
9.2.4 Keepass2, un logiciel de stockage des mots de passe ................................................................... 13
10 MISE EN PLACE D'UTILITAIRE DE SECURITE............................................................................ 14
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 4/24
10.1 UTILITAIRE D'ANALYSE DE LOG .................................................................................................. 14
10.2 MISE SOUS SURVEILLANCE DES DISQUES AVEC SMART....................................................... 14
10.2.1 Activation du protocole SMART ....................................................................................................... 14
10.3 MISE SOUS SURVEILLANCE DE MODIFICATION DE CERTAINS REPERTOIRES ................... 15
10.3.1 Utilitaire de surveillance des altérations de répertoire : afick........................................................... 15
10.4 MISE EN PLACE D'UN AUDIT AUTOMATIQUE DE LA PRESENCE DE ROOTKIT ..................... 16
10.5 CONFIGURATION D'UN PARE-FEU LOCAL ET D'UN DETECTEUR D'ATTAQUE RESEAU...... 17
10.5.1 Mise en place de réaction automatique aux connexions non autorisées ........................................ 17
10.6 RESTRICTION DES CONNEXIONS AU SERVEUR X ................................................................... 18
10.7 MISE EN PLACE DU SUIVI STANDARD ........................................................................................ 18
11 SE LINUX POUR MYSQL................................................................................................................ 18
11.1 VERIFIER CE QUI SE PASSE EN MODE PERMISSIVE. .............................................................. 18
11.2 TRACER LES REGLES ................................................................................................................... 18
11.3 VERIFIER LA PRESENCE DU PAQUET SELINUX-POLICY-TARGETED .................................... 19
11.4 LISTE DES CONTEXTES DE FICHIER .......................................................................................... 19
11.5 LISTE DES PORTS.......................................................................................................................... 20
11.6 AJOUTER UNE REGLE DE PORT.................................................................................................. 20
11.7 AJOUTER UNE REGLE DE REPERTOIRE .................................................................................... 20
11.8 RETIRER UNE REGLE.................................................................................................................... 20
12 CREER UNE POLICE SELINUX ..................................................................................................... 20
12.1 PASSER EN MODE PERMISSIVE.................................................................................................. 20
12.2 CREATION D'UNE TABLE TEMPORAIRE ..................................................................................... 20
12.3 VERIFIER QUE L'INTERDICTION EST BIEN PASSEE.................................................................. 21
12.4 DESCRIPTION DU MODULE SELINUX.......................................................................................... 21
12.5 RESTE LA COMPILATION .............................................................................................................. 21
13 SECURISATION DES CONTENEURS DOCKER / MYSQL........................................................... 21
13.1 UTILISEZ DES IMAGES OFFICIELLES ET SECURISEES............................................................ 21
13.2 GESTION DES SECRETS............................................................................................................... 21
13.3 LIMITEZ LES PRIVILEGES DU CONTENEUR ............................................................................... 22
13.4 ISOLATION DU RESEAU ................................................................................................................ 22
13.5 MISES A JOUR REGULIERES........................................................................................................ 22
13.6 CONFIGURATION SECURISEE DE MYSQL.................................................................................. 22
13.7 SURVEILLANCE ET JOURNALISATION........................................................................................ 22
14 GESTION DU DOCUMENT ............................................................................................................. 23
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 5/24
4 Introduction
4.1 Objet du document
Le présent document spécifie techniquement les procédures de sécurisation d'un serveur
Linux Red Hat lors d'un déploiement d'un service sur Internet ou dans le cas d'un partage
d'application avec un partenaire extérieur.
4.2 Contexte du document
Ce document a été rédigé pour système de la famille Red Hat et fonctionne sur les systèmes
suivants :
⚫ Red Hat 7.xx
⚫ Red Hat Stream 8 et 9
⚫ Centos Stream 8.xx à 9.xx
⚫ Fedora Core
⚫ Ubuntu 22
Cependant il doit fonctionner correctement sans trop de difficultés sur l'ensemble des
serveurs utilisant un système de packaging de type RPM ou DEB.
L'ensemble de des préconisations ne sont pas uniquement valables pour systèmes
compatibles Red Hat et peuvent servir de base pour toutes variantes de Linux comme
Debian, Mandriva, Slackware, Gentoo, Ubuntu, ...
4.3 Références documentaires
4.4 Typologie
Exemple Descritpion
# ifconfig Appel de la commande « ifconfig » lors d'une
connexion super-utilisateur (root)
$ ls Appel de la commande « ls » lors d'une
connexion utilisateur (autre que root)
1.txt
2.txt
toto
foo
bazr
Résultats affichés à l'appel d'un script shell
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 6/24
5 Considérations globales de sécurité.
L'ensemble de ces préconisations a pour but d'augmenter la sécurité, des interventions et du suivi
des applications sur les plateformes Linux. L'application ou la non-application reste à la discrétion
de chacun. 123Solution ne peut pas être tenu responsable de la mauvaise application des
préconisations de ce document.
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 7/24
6 Mises à jour de sécurité et distribution maintenue
La sécurité d'une distribution dépend de 2 éléments importants :
1. Le cycle de vie de la distribution ;
2. La fréquence des mises à jour de votre système.
L'utilisation d'une distribution ayant un contrat de maintenance longue durée « long term
maintenance » est importante car en effet, une application déployée en production à pour but de
fonctionner plus de 3 à 4 mois et donc dans ce contexte nécessite un environnement système stable
et maintenable durant un temps suffisant permettant sa mise à jour régulière et la planification de
migration vers une version de distribution plus récente dans des conditions acceptable et non
contraignante ( « effet fin de course » )
6.1 Procédure de mise à jour intégrale de la distribution
# Procédure sur Red Hat 6/7
# yum -y upgrade
...
# Procédure sur Red Hat 8
# dnf -y upgrade
...
# Procédure sur les variantes de Debian/Ubuntu
# apt update && apt upgrade
...
6.2 Réflexion de gestion applicative sur distribution en fin de vie
Il est important d'anticiper la migration vers des systèmes Linux et des versions de distribution
ayant un cycle de vie permettant de rester serein dans un espace de temps suffisant afin de pouvoir
garantir un nombre de correctifs de sécurité permettant de garantir de « ne pas subir l'effet
passoire »
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 8/24
7 Topologie d'installation
7.1 Installation minimum
Les serveurs de production doivent être installés a minima.
Nous ne devons donc pas trouver sur un serveur de production les applications suivantes :
⚫ Compilateur
⚫ Serveur non nécessaire
⚫ Serveur X
⚫ Tout environnement graphique dernière génération
7.2 Retrait de toutes les documentations et applications non
nécessaires
Pour enfin permettre une sécurité optimum sur le serveur de production, nous conseillons de retirer
l'ensemble des applications qui ne sont pas strictement nécessaires au fonctionnement des
applications qu'il héberge.
Les applications à proscrire en priorité sur un serveur de production sont les suivantes :
• Tous les compilateurs de code ;
• Tous les langages de scripts non nécessaires ;
• Toutes les applications de communication : mail, jabber, irc.
• Tous les outils de configuration système.
• Toutes documentations.
7.3 Effet « simple is beautiful »
Les systèmes ayant peu de programme installé sont toujours moins vulnérables car les failles de
sécurité potentielles concernent forcément moins d'applications sur votre serveur.
De plus, les installations minimalistes installent toujours des programmes fondamentaux et qui dit
fondamental dit technologie mature, stable et donc très faiblement vulnérable.
Le fait de ne pas installer d'application serveur permets de ne pas ouvrir de service sur le serveur
qui n'ont rien à y faire (serveur de Mail, rsync, Portmap, ...)
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 9/24
8 Compte à droits restreints
Pour l'ensemble des opérations, il est impératif d'utiliser un compte ayant des droits restreints pour
plusieurs raisons :
• Pas besoin des droits d'un super administrateur pour effectuer des opérations non critiques.
• Besoins importants de traçabilité des opérations effectuées sur le serveur avec les droits du
super utilisateur.
• Sécurisation et limitation des impacts de commandes tapées trop rapidement.
• Sécurisation des accès qui peuvent être réalisées sur un compte non privilégié.
8.1 Restrictions des accès SSH
Pour éviter des accès en tant que super utilisateur sur les plateformes de l'application, il est possible
de restreindre l'accès aux utilisateurs non privilégiés.
Il est possible d'interdire simplement les connexions root par SSH. Dans de nombreux cas, cela
suffit largement à sécuriser le serveur.
Dans le fichier /etc/ssh/sshd_config, positionnez explicitement :
$ vim /etc/ssh/sshd_config
...
PermitRootLogin no
...
$ systemctl sshd reload
...
8.2 Mise en place du mécanisme d'usurpation
Cette technique permet de sécuriser l'ensemble des opérations effectuées en tant que super
utilisateur.
8.2.1 Mise en place pour un utilisateur spécifique
# adduser admin
# visudo
# User alias specification
User_Alias STAFF=admin
# User privilege specification
root ALL=(ALL) ALL
STAFF ALL=(ALL) NOPASSWD:ALL
8.2.2 Mise en place pour un groupe spécifique
# visudo
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 10/24
%wheel ALL=(ALL) NOPASSWD:ALL
# gpasswd -a admin wheel
8.2.3 Test la mise en place
# su – admin
$ sudo mount /mnt/usbdisk
Si l'opération de montage d'une clé USB fonctionne alors le mécanisme d'usurpation est
opérationnel.
8.2.4 Test de la présence des logs des actions
Ces traces contiennent l'ensemble des commandes concernant les opérations effectuées en tant que
super utilisateur :
$ sudo cat /var/log/secure
Mar 7 16:42:21 localhost sshd[2807]: Accepted password for jmrenouard from
10.194.60.94 port 4087 ssh2
Mar 7 16:43:10 localhost sshd[2886]: Accepted password for jmrenouard from
10.194.60.94 port 4088 ssh2
Mar 7 16:43:30 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/bin/chmod -R 644 .ssh
Mar 7 16:44:01 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/bin/chown -R jmrenouard: .ss
Mar 7 16:44:03 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/bin/chown -R jmrenouard: .ssh/
Mar 7 16:44:18 localhost sshd[2974]: Accepted password for jmrenouard from
10.194.60.94 port 4089 ssh2
Mar 7 16:44:34 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/bin/chmod -R 644 .ssh
Mar 7 16:44:46 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/bin/chown -R jmrenouard: .ssh/authorized_keys
Mar 7 16:46:48 localhost sshd[3096]: Accepted publickey for jmrenouard from
10.194.60.94 port 4090 ssh2
Mar 8 11:10:39 localhost sshd[2291]: Accepted publickey for jmrenouard from
10.194.60.94 port 1538 ssh2
Mar 8 11:36:47 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/yum update
Mar 8 11:37:47 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/cpan install Template
Mar 8 11:43:24 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/cpan install XML::RSS
Mar 8 11:45:25 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/cpan install Digest::SHA
Mar 8 11:45:55 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/cpan install Digest::SHA
Mar 8 11:47:25 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/cpan install XML::DOM
Mar 8 11:47:30 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/cpan notest install XML::DOM
Mar 8 11:47:40 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/cpan force install XML::DOM
Mar 8 11:47:49 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/cpan force install XML::DOM
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 11/24
Mar 8 11:47:58 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/cpan
Mar 8 11:48:37 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/cpan install Digest::SHA
Mar 8 11:48:56 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/cpan install Template
Mar 8 14:07:50 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/myisamchk -c -v -u /var/lib/mysql/crl/*
Mar 8 14:07:58 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/myisamchk -c -v -u /var/lib/mysql/crl
Mar 8 14:08:06 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ;
USER=root ; COMMAND=/usr/bin/myisamchk -c -v -u /var/lib/mysql/crl/*
8.3 Suppression du droit de connexion pour le super utilisateur
Pour finir de la configuration d'accès sécurisé au serveur et que des utilisateurs ont le droit usurper
l'identité du super utilisateur, il suffit d'interdire la connexion du super utilisateur lui-même sur la
plateforme.
Cette technique évite les attaques de type "brute force ssh attack" courant sur Internet.
Le fichier /etc/passwd doit contenir un astérisque en 2ème
champ pour interdire tout mot de passe
pour l'utilisateur root.
$ vim root /etc/passwd
root:*:…
9 Gestion des mots de passe
9.1 Choix des mots de passes de qualité pour le super-utilisateur
et l'ensemble des comptes privilégiés
Il est impératif de sécuriser l'ensemble des utilisateurs avec un mot de passe de grande qualité. Ceci
est d'autant plus vrai que le compte peut usurper les droits du super-utilisateur.
Voici donc un lien vers une application en ligne capable de valider le niveau de sécurité de votre
mot de passe :
http://www.microsoft.com/protect/yourself/password/checker.mspx
9.1 Génération de mots de passes de qualité en ligne de
commande
Pour avoir un bon mot de passe, rien de tel que de générer un mot de passe très long de 32 ou 64
caractères
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 12/24
Selon Hive Systems, il faut 438 trillions d’année pour casser un mot de passe de 18 caractères)
https://www.hivesystems.io/blog/are-your-passwords-in-the-green
Attention, au site web permettant de générer les mots de passe, ils peuvent servir à alimenter des
dictionnaires de mot de passe
9.1.1 Pwgen pour générer un mot de passe sécurisé sans utiliser de site Web
# yum -y install pwgen
Ou
# apt install pwgen
# pwgen -1 32
aimaib5Eeda7Quah5ooGhood0eejee1f
# pwgen -1 64
aiy3Oughee2eiG3Nu1auteiyuT9Bi2oeZ4jeichue2eokeipahvoongohhai0qui
9.1.2 OpenSSL pour générer un mot de passe sécurisé sans utiliser de site
Web
# openssl rand -base64 24|xargs -n1 echo -n
LGELdTzmawe/Jc0uk2TYG966smjPzh41
# openssl rand -base64 48|xargs -n1 echo -n
wWDRDq7JeANdRl7OpWEEFPWUQFjVEkpILXcKFh1poemCGT+M3BVDTiwKDqd+X/TA
9.2 Comment stocker ses mots de passe en toute sécurité ?
Il existe plusieurs façons de stocker vos mots de passe de manière sécurisée :
9.2.1 Utiliser un gestionnaire de mots de passe
Il s'agit d'un logiciel ou d'une extension de navigateur qui stocke tous vos mots de passe de
manière sécurisée et les synchronise sur tous vos appareils. Vous n'aurez qu'à mémoriser un seul
mot de passe principal pour accéder à tous vos autres mots de passe.
9.2.2 Utiliser un papier ou un fichier sécurisé :
Vous pouvez écrire vos mots de passe sur un papier et le stocker dans un endroit sécurisé, comme
un coffre-fort ou un tiroir fermé à clé. Vous pouvez également utiliser un fichier crypté sur votre
ordinateur ou votre téléphone pour stocker vos mots de passe.
9.2.3 Utiliser la fonction de mots de passe intégrée de votre navigateur ou de
votre système d'exploitation
La plupart des navigateurs et des systèmes d'exploitation proposent une fonction de gestion de mots
de passe intégrée qui peut être activée pour stocker vos mots de passe de manière sécurisée.
Cependant, il est important de choisir un mot de passe principal sécurisé pour protéger cet espace de
stockage.
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 13/24
Il est important de choisir des mots de passe forts et uniques pour chaque compte et de les changer
régulièrement pour renforcer la sécurité de vos comptes. De plus, il est recommandé de ne jamais
partager vos mots de passe avec d'autres personnes et de ne pas les enregistrer sur des appareils
publics ou partagés.
9.2.4 Keepass2, un logiciel de stockage des mots de passe
Keepass 2 est un gestionnaire de mots de passe open source qui vous permet de stocker tous vos
mots de passe de manière sécurisée dans une base de données chiffrée. Vous n'aurez qu'à mémoriser
un seul mot de passe principal pour accéder à tous vos autres mots de passe.
Keepass 2 offre plusieurs fonctionnalités pour renforcer la sécurité de vos mots de passe :
• Chiffrement fort : Keepass 2 utilise le chiffrement AES-256 pour protéger votre base de
données de mots de passe.
• Générateur de mots de passe : Keepass 2 inclut un générateur de mots de passe qui vous
permet de créer des mots de passe forts et uniques de manière aléatoire.
• Synchronisation : Keepass 2 permet de synchroniser votre base de données de mots de passe
sur plusieurs appareils en utilisant des services de stockage en nuage tels que Dropbox ou
Google Drive.
• Import et export : Keepass 2 vous permet d'importer et d'exporter facilement votre base de
données de mots de passe vers d'autres formats de fichier tels que CSV ou XML.
Keepass 2 est disponible pour Windows, Linux et macOS, et il existe également des versions
mobiles pour Android et iOS. Vous pouvez télécharger et utiliser Keepass 2 gratuitement.
Keeepass est disponible à l’addresse suivante : https://keepass.info/download.html
L’ANSSI(https://www.ssi.gouv.fr/) a certifié ce logiciel
https://www.ssi.gouv.fr/entreprise/certification_cspn/keepass-version-2-10-portable/
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 14/24
10 Mise en place d'utilitaire de sécurité
10.1Utilitaire d'analyse de log
Un analyseur de log permet de connaître au niveau système d'état général du serveur. Le rapport
peut et doit être envoyer par courriel soit en local ou à une adresse externe d'un exploitant.
Ce rapport indique les grandes lignes de l'état du serveur.
Le programme logwatch est idéal pour ce genre de tâche
$ sudo dnf -y install logwatch
…
L'analyse des traces a lieu une fois par jour et un mail est envoyé à l'utilisateur root du serveur.
Cet outil peut être configuré pour permettre en avant les erreurs au niveau des applications.
$ sudo /usr/share/logwatch/scripts/logwatch.pl --print
10.2Mise sous surveillance des disques avec SMART
La mise sous surveillance des disques est une opération permettant de prévenir des crashs de
disque. En effet, la mise sous surveillance des disques peut être simplement réalisée par le protocole
SMART fonctionnant sur l'ensemble des disques durs IDE/ATA/SCSI.
$ df
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext3 16G 2.0G 14G 13% /
/dev/sdb1 ext3 17G 306M 16G 2% /home
none tmpfs 502M 0 502M 0% /dev/shm
$ cat /etc/smartd.conf
/dev/sda -a
/dev/sdb -a
10.2.1 Activation du protocole SMART
$ sudo service smartd restart
$ sudo chkconfig –level=12345 smartd on
$ sudo smartctl –a /dev/sda1
$ sudo smartctl –a /dev/sdb1
# Lancement d'un test court
$ sudo smartctl –t short /dev/sdb1
…
$ sudo smartctl --smart=on --offlineauto=on --saveauto=on /dev/sdb1
smartctl version 5.1-11 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
Informational Exceptions (SMART) enabled
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 15/24
Temperature warning enabled
$ sudo smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda1
smartctl version 5.1-11 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
Informational Exceptions (SMART) enabled
Temperature warning enabled
…
10.3Mise sous surveillance de modification de certains répertoires
Un analyseur de modification permet de mettre en évidence des modifications survenues sur un
répertoire sur le serveur. Cela permet d'attendre 2 objectifs majeurs :
• La prévention des erreurs non volontaires par exemple dans le répertoire de configuration.
• La prévention des installations de chevaux de Troie dans le répertoire des binaires par
exemple.
10.3.1 Utilitaire de surveillance des altérations de répertoire : afick
$ sudo vim /etc/afick.conf
…
$ sudo rpm -ivh afick-2.1.noarch.rpm
#Validation de la configuration
$ sudo afick -C -c /etc/afick.conf
# config file /etc/afick.conf ok
$ sudo afick -u -c /etc/afick.conf
# Afick (2.19) update at 2011/11/10 15:54:33 with options (/etc/afick.conf):
# database:=/var/lib/afick/afick
# history:=/var/lib/afick/history
# archive:=/var/lib/afick/archive
# report_url:=stdout
# running_files:=1
# timing:=1
# exclude_suffix:= log LOG html htm HTM txt TXT xml
# max_checksum_size:=10000000
# last run on 2006/03/08 15:52:01 with afick version 2.8-2
new file : /var/lib/afick/afick.ctr
new file : /var/lib/afick/afick.dir
new file : /var/lib/afick/afick.pag
changed file : /etc/afick.conf
# detailed changes
new file : /var/lib/afick/afick.ctr
inode_date : Wed Mar 8 15:52:52 2006
new file : /var/lib/afick/afick.dir
inode_date : Wed Mar 8 15:54:33 2006
new file : /var/lib/afick/afick.pag
inode_date : Wed Mar 8 15:55:09 2006
changed file : /etc/afick.conf
md5 : Lb1Xd1ropZoWs3eFLlxmSQ
rjgzjzvyE9Th1W2Liv7L7w
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 16/24
inode : 228985 229196
filesize : 4386 4387
mtime : Wed Mar 8 15:52:00 2006 Wed Mar 8
15:54:16 2006
ctime : Wed Mar 8 15:52:00 2006 Wed Mar 8
15:54:16 2006
# Hash database updated successfully : 34930 files scanned, 4 changed (new : 3;
delete : 0; changed : 1; dangling : 6; exclude_suffix : 90; exclude_prefix : 0;
exclude_re : 0; degraded : 4)
# #################################################################
# MD5 hash of /var/lib/afick/afick => StOLSBHwHP2xJ9Jvis/RAQ
# user time : 21.86; system time : 4.28; real time : 37
#Second lancement
$ sudo afick -u -c /etc/afick.conf
# Afick (2.8-2) update at 2006/03/08 15:56:40 with options (/etc/afick.conf):
# database:=/var/lib/afick/afick
# history:=/var/lib/afick/history
# archive:=/var/lib/afick/archive
# report_url:=stdout
# running_files:=1
# timing:=1
# exclude_suffix:= log LOG html htm HTM txt TXT xml
# max_checksum_size:=10000000
# last run on 2006/03/08 15:54:33 with afick version 2.8-2
# Hash database updated successfully : 34930 files scanned, 0 changed (new : 0;
delete : 0; changed : 0; dangling : 6; exclude_suffix : 90; exclude_prefix : 0;
exclude_re : 0; degraded : 4)
# #################################################################
# MD5 hash of /var/lib/afick/afick => StOLSBHwHP2xJ9Jvis/RAQ
# user time : 21.48; system time : 3.64; real time : 27
..
10.4Mise en place d'un audit automatique de la présence de rootkit
Chkrootkit est un utilitaire de validation de la non-présence de rootkits sur une machine. Un rootkit
étant un programme binaire substituant un utilitaire du système pour permettre l'usurpation
frauduleuse de droits.
$ sudo tar xzvf chkrootkit.tar.gz
chkrootkit-0.49
chkrootkit-0.49/ifpromisc.c
chkrootkit-0.49/COPYRIGHT
chkrootkit-0.49/chkdirs.c
chkrootkit-0.49/check_wtmpx.c
chkrootkit-0.49/chkrootkit.lsm
chkrootkit-0.49/Makefile
chkrootkit-0.49/ACKNOWLEDGMENTS
chkrootkit-0.49/README.chkwtmp
chkrootkit-0.49/chklastlog.c
chkrootkit-0.49/chkrootkit
chkrootkit-0.49/chkutmp.c
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 17/24
chkrootkit-0.49/chkwtmp.c
chkrootkit-0.49/README
chkrootkit-0.49/README.chklastlog
chkrootkit-0.49/strings.c
chkrootkit-0.49/chkproc.c
$ sudo cd chkrootkit-0.49
$ sudo make
$ sudo ./chkrootkit
…
Bien sûr, il est évident que la compilation peut être réalisée sur une autre machine afin d'éviter
l'installation d'un compilateur sur la plateforme de production.
Il faut cependant prendre un peu de recul vis-à-vis de cette technologie en effet, ce logiciel n’a pas
été mis à jour depuis août 2009
10.5Configuration d'un pare-feu local et d'un détecteur d'attaque
réseau
Un pare-feu local sur les frontaux peut-être installe pour éviter toutes connections sur le serveur en
dehors des ports HTTP(80), HTTPS(443), SSH(22).
$ sudo iptables –L
$ sudo iptables-save
# Generated by iptables-save v1.2.8 on Wed Mar 8 16:31:18 2006
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [25400502:18548269096]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type 255 -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Wed Mar 8 16:31:18 2006
Un utilitaire de configuration de pare-feu existe sous Red Hat : redhat-config-security-gui
Attention, sans la consultation des fichiers de configuration, il est difficile de connaître l'intégralité
des règles de filtrage comme les règles de redirection de port.
10.5.1 Mise en place de réaction automatique aux connexions non
autorisées
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 18/24
Il est possible avec un utilitaire comme portsentry de suivre l'ensemble des tentatives de connexions
sur un serveur, de les tracer et d'y apporter une réponse automatique (blocage du port, effet miroir,
…)
$ sudo rpm -ivh portsentry-1.2-2.i386.rpm
$ sudo vim /etc/portsentry/portsentry.conf
…
$ sudo service portsentry start
$ sudo chkconfig –level=12345 portsentry on
10.6Restriction des connexions au serveur X
Pour éviter des prises de main à distance sur le serveur X au cas où les équipes d'exploitation
souhaitent pouvoir se connecter via une interface graphique, il est possible de limiter les connexions
depuis le serveur lui-même.
10.7Mise en place du suivi standard
L'activation des serveurs snmpd et snmptrapd provenant du paquet RPM net-snmp permettent de
réaliser une démarche de suivi de performances et des d'indicateurs principaux au niveau système,
applicatif et réseau.
Les fichiers de configuration sont respectivement /etc/snmpd.conf et /etc/snmptrad.conf.
$ sudo service snmpd restart
$ sudo service snmptrapd restart
$ sudo chkconfig –level=12345 snmpd on
$ sudo chkconfig –level=12345 snmptrapd on
11 SE LINUX pour MySQL
11.1Vérifier ce qui se passe en mode permissive.
tailf /var/log/messages
11.2Tracer les règles
# service auditd start
# tailf /var/log/audit/audit.log
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 19/24
11.3Vérifier la présence du paquet selinux-policy-targeted
# rpm -ql selinux-policy-targeted
Nous recherchons une police adaptée à MySQL
# semodule -l
...
mysql 1.11.3rpm -qa | grep
...
11.4Liste des contextes de fichier
# semanage fcontext -l| grep -i mysql
/usr/lib(64)?/nagios/plugins/check_mysql regular file
system_u:object_r:nagios_services_plugin_exec_t:s0
/usr/lib(64)?/nagios/plugins/check_mysql_query regular file
system_u:object_r:nagios_services_plugin_exec_t:s0
/etc/mysql(/.*)? all files
system_u:object_r:mysqld_etc_t:s0
/etc/my.cnf.d(/.*)? all files
system_u:object_r:mysqld_etc_t:s0
/var/log/mysql.* regular file
system_u:object_r:mysqld_log_t:s0
/var/lib/mysql(-files|-keyring)?(/.*)? all files
system_u:object_r:mysqld_db_t:s0
/var/run/mysqld(/.*)? all files
system_u:object_r:mysqld_var_run_t:s0
/var/log/mariadb(/.*)? all files
system_u:object_r:mysqld_log_t:s0
/var/run/mariadb(/.*)? all files
system_u:object_r:mysqld_var_run_t:s0
/usr/sbin/mysqld(-max)? regular file
system_u:object_r:mysqld_exec_t:s0
/var/lib/squeezeboxserver(/.*)? all files
system_u:object_r:mysqld_db_t:s0
/var/run/mysqld/mysqlmanager.* regular file
system_u:object_r:mysqlmanagerd_var_run_t:s0
/usr/share/munin/plugins/mysql_.* regular file
system_u:object_r:munin_services_plugin_exec_t:s0
/etc/my.cnf regular file
system_u:object_r:mysqld_etc_t:s0
/usr/libexec/mysqld regular file
system_u:object_r:mysqld_exec_t:s0
/usr/bin/mysqld_safe regular file
system_u:object_r:mysqld_safe_exec_t:s0
/usr/sbin/mysqlmanager regular file
system_u:object_r:mysqlmanagerd_exec_t:s0
/etc/rc.d/init.d/mysqld regular file
system_u:object_r:mysqld_initrc_exec_t:s0
/var/lib/mysql/mysql.sock socket
system_u:object_r:mysqld_var_run_t:s0
/usr/sbin/zabbix_proxy_mysql semanga regular file
system_u:object_r:zabbix_exec_t:s0
/etc/rc.d/init.d/mysqlmanager regular file
system_u:object_r:mysqlmanagerd_initrc_exec_t:s0
/usr/sbin/zabbix_server_mysql regular file
system_u:object_r:zabbix_exec_t:s0
/var/lib/mysql-files = /var/lib/mysql
/var/lib/mysql-keyring = /var/lib/mysql
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 20/24
11.5Liste des ports
# semanage port -l| grep -i mysql
mysqld_port_t tcp 1186, 3306, 63132-63164
mysqlmanagerd_port_t tcp 2273
[root@myserver124 ~]#
semanage boolean -l| grep -i mysql
allow_user_mysql_connect (off , off) Allow users to connect to mysql
mysql_connect_any (off , off) Allow mysqld to connect to all
ports
exim_can_connect_db (off , off) Allow exim to connect to databases
(postgres, mysql)
puppetmaster_use_db (off , off) Allow Puppet master to use connect
to mysql and postgresql database
ftpd_connect_db (off , off) Allow ftp servers to use connect
to mysql database
11.6Ajouter une règle de port
#semanage port -a -t mysqld_port_t -p tcp 3307
11.7Ajouter une règle de répertoire
semanage fcontext -a -t mysqld_db_t "/var/lib/tmp(/.*)?"
restorecon -Rv /var/lib/tmpdir
semanage port -l | grep mysqld_port_t
mysqld_port_t tcp 3307, 1186, 3306, 63132-63164
11.8Retirer une règle
semanage fcontext -d -t mysqld_db_t "/var/lib/tmp(/.*)?"
semanage port -d -t mysqld_port_t -p tcp 3307
12 Créer une police SELinux
12.1Passer en mode permissive
semanage permissive -a mysqld_t
Possitionner tmpdir vers un endroit interdit /var/lib/tmporarydir
12.2Création d'une table temporaire
mysql -e 'create temporary table xxx ( xx int ); insert into xxx values
(3),(4),(5);'
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 21/24
12.3Vérifier que l'interdiction est bien passée
grep mysqld /var/log/audit/audit.log
grep mysqld /var/log/audit/audit.log | audit2allow -m MySQL_tmpfs -o
MySQL_tmpfs.te
12.4Description du module SELinux
module MySQL_tmpfs 1.0;
require {
type tmpfs_t;
type mysqld_t;
class dir { write search read remove_name open getattr add_name };
class file { write getattr read lock create unlink open };
}
allow mysqld_t tmpfs_t:dir { write search read remove_name open getattr add_name
};
allow mysqld_t tmpfs_t:file { write getattr read lock create unlink open }
12.5Reste la compilation
checkmodule -M -m MySQL_tmpfs.te -o MySQL_tmpfs.mod
semodule_package -m MySQL_tmpfs.mod -o MySQL_tmpfs.pp
semodule -i MySQL_tmpfs.pp
semanage permissive -d mysqld_t
13 Sécurisation des conteneurs Docker / MySQL
Sécuriser un conteneur Docker qui exécute une base de données MySQL est crucial pour protéger
les données sensibles et assurer l'intégrité du système. Voici plusieurs pratiques recommandées pour
renforcer la sécurité de votre conteneur MySQL :
13.1Utilisez des images officielles et sécurisées
Avantages : Les images officielles sont régulièrement mises à jour et corrigées pour des failles de
sécurité.
Inconvénients : Peut-être pas toujours configurées selon les besoins spécifiques de votre
environnement.
Exemple : Utilisez l'image officielle MySQL depuis Docker Hub.
13.2Gestion des secrets
Avantages : Empêche l'exposition accidentelle de mots de passe et d'autres secrets.
Inconvénients : La gestion des secrets peut introduire une complexité supplémentaire dans la
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 22/24
configuration.
Exemple : Utilisez Docker Secrets ou des outils tiers comme HashiCorp Vault pour gérer les mots
de passe.
13.3 Limitez les privilèges du conteneur
Avantages : Réduit la surface d'attaque en cas de compromission du conteneur.
Inconvénients : Peut restreindre certaines fonctionnalités nécessaires de la base de données.
Exemple : Lancez le conteneur avec un utilisateur non root en utilisant l'option --user.
13.4 Isolation du réseau
Avantages : Minimise l'exposition du conteneur aux attaques externes.
Inconvénients : Peut compliquer la configuration réseau entre conteneurs.
Exemple : Utilisez des réseaux Docker personnalisés et des règles de pare-feu pour isoler le
conteneur.
13.5Mises à jour régulières
Avantages : Protège contre les vulnérabilités connues en appliquant les dernières mises à jour de
sécurité.
Inconvénients : Les mises à jour peuvent introduire des changements qui brisent la compatibilité.
Exemple : Créez une routine pour mettre à jour régulièrement l'image Docker MySQL.
13.6Configuration sécurisée de MySQL
Avantages : Renforce la sécurité interne de la base de données.
Inconvénients : Nécessite une connaissance approfondie des paramètres de configuration de
MySQL.
Exemple :
Désactivez la connexion à distance root.
Cependant, les dernières images depuis plusieurs années sont sécurisées par défaut sur l’accès
distant en tant que root
13.7 Surveillance et journalisation
Avantages : Détecte les activités suspectes et aide à diagnostiquer les problèmes de sécurité.
Inconvénients : Peut générer une grande quantité de données à analyser.
Exemple : Activez la journalisation de MySQL et utilisez des outils de surveillance pour surveiller
l'accès et les requêtes.
Exemple de commande Docker pour lancer un conteneur MySQL avec des options de sécurité :
docker run --name mysql-secure -e MYSQL_ROOT_PASSWORD=my-secret-pw -d 
--user 1000:1000 --network=my-network mysql:tag --secure-file-
priv=/var/lib/mysql
http://www.jmrenouard.fr
© Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 23/24
Cette commande lance un conteneur MySQL avec un utilisateur non root, dans un réseau Docker
personnalisé, et configure un dossier spécifique pour l'import/export de fichiers.
En appliquant ces pratiques, vous renforcez significativement la sécurité de votre conteneur
MySQL. Cependant, il est important de rester informé des dernières pratiques de sécurité et de les
adapter selon l'évolution de votre environnement et des menaces.
14 Gestion du document
Adresser toute remarque sur ce document au responsable de sa gestion :
Jean-Marie Renouard jmrenouard@gmail.com

Contenu connexe

Similaire à Manuel De Securite 1.8 (Mise à jour avec DOCKER)

The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210Mahmoud Samir Fayed
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...mouafekmazia
 
Skan it 6.0 user manual french
Skan it 6.0 user manual frenchSkan it 6.0 user manual french
Skan it 6.0 user manual frenchLenin TaMe
 
Ibm spectrum archive enterprise edition
Ibm spectrum archive enterprise editionIbm spectrum archive enterprise edition
Ibm spectrum archive enterprise editionLuciano Saia
 
Configuration des services web sous CentOS
Configuration des services web sous CentOSConfiguration des services web sous CentOS
Configuration des services web sous CentOSSarah
 
hipath_3000_man.pdf
hipath_3000_man.pdfhipath_3000_man.pdf
hipath_3000_man.pdffellahi1
 
Ms es 70-291_1.0_fr
Ms es 70-291_1.0_frMs es 70-291_1.0_fr
Ms es 70-291_1.0_frjmydsa
 
The Ring programming language version 1.2 book - Part 1 of 84
The Ring programming language version 1.2 book - Part 1 of 84The Ring programming language version 1.2 book - Part 1 of 84
The Ring programming language version 1.2 book - Part 1 of 84Mahmoud Samir Fayed
 
Ms es 70-290_0.97_fr
Ms es 70-290_0.97_frMs es 70-290_0.97_fr
Ms es 70-290_0.97_frjmydsa
 
The Ring programming language version 1.7 book - Part 1 of 196
The Ring programming language version 1.7 book - Part 1 of 196The Ring programming language version 1.7 book - Part 1 of 196
The Ring programming language version 1.7 book - Part 1 of 196Mahmoud Samir Fayed
 
Le Référentiel Nouvelles Plateformes Technologiques
Le Référentiel Nouvelles Plateformes TechnologiquesLe Référentiel Nouvelles Plateformes Technologiques
Le Référentiel Nouvelles Plateformes TechnologiquesGenève Lab
 
oecoil condens-2-notice-utilisation
oecoil condens-2-notice-utilisationoecoil condens-2-notice-utilisation
oecoil condens-2-notice-utilisationClothildeBenares
 
Microsoft Dynamics CRM 2011 - Guide administrateur
Microsoft Dynamics CRM 2011 - Guide administrateurMicrosoft Dynamics CRM 2011 - Guide administrateur
Microsoft Dynamics CRM 2011 - Guide administrateurPhilippe LEAL
 
The Ring programming language version 1.3 book - Part 1 of 88
The Ring programming language version 1.3 book - Part 1 of 88The Ring programming language version 1.3 book - Part 1 of 88
The Ring programming language version 1.3 book - Part 1 of 88Mahmoud Samir Fayed
 

Similaire à Manuel De Securite 1.8 (Mise à jour avec DOCKER) (20)

The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210
 
Protection-dun-réseau-dentreprise-via-un-firewall.pdf
Protection-dun-réseau-dentreprise-via-un-firewall.pdfProtection-dun-réseau-dentreprise-via-un-firewall.pdf
Protection-dun-réseau-dentreprise-via-un-firewall.pdf
 
Cbdsys 2
Cbdsys 2Cbdsys 2
Cbdsys 2
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
 
Skan it 6.0 user manual french
Skan it 6.0 user manual frenchSkan it 6.0 user manual french
Skan it 6.0 user manual french
 
Jmetertest
JmetertestJmetertest
Jmetertest
 
Guide administrateur22
Guide administrateur22Guide administrateur22
Guide administrateur22
 
Manuel de sécurité Linux
Manuel de sécurité Linux Manuel de sécurité Linux
Manuel de sécurité Linux
 
Ibm spectrum archive enterprise edition
Ibm spectrum archive enterprise editionIbm spectrum archive enterprise edition
Ibm spectrum archive enterprise edition
 
Configuration des services web sous CentOS
Configuration des services web sous CentOSConfiguration des services web sous CentOS
Configuration des services web sous CentOS
 
hipath_3000_man.pdf
hipath_3000_man.pdfhipath_3000_man.pdf
hipath_3000_man.pdf
 
Ms es 70-291_1.0_fr
Ms es 70-291_1.0_frMs es 70-291_1.0_fr
Ms es 70-291_1.0_fr
 
The Ring programming language version 1.2 book - Part 1 of 84
The Ring programming language version 1.2 book - Part 1 of 84The Ring programming language version 1.2 book - Part 1 of 84
The Ring programming language version 1.2 book - Part 1 of 84
 
Manuel i parapheur-v3.1
Manuel i parapheur-v3.1Manuel i parapheur-v3.1
Manuel i parapheur-v3.1
 
Ms es 70-290_0.97_fr
Ms es 70-290_0.97_frMs es 70-290_0.97_fr
Ms es 70-290_0.97_fr
 
The Ring programming language version 1.7 book - Part 1 of 196
The Ring programming language version 1.7 book - Part 1 of 196The Ring programming language version 1.7 book - Part 1 of 196
The Ring programming language version 1.7 book - Part 1 of 196
 
Le Référentiel Nouvelles Plateformes Technologiques
Le Référentiel Nouvelles Plateformes TechnologiquesLe Référentiel Nouvelles Plateformes Technologiques
Le Référentiel Nouvelles Plateformes Technologiques
 
oecoil condens-2-notice-utilisation
oecoil condens-2-notice-utilisationoecoil condens-2-notice-utilisation
oecoil condens-2-notice-utilisation
 
Microsoft Dynamics CRM 2011 - Guide administrateur
Microsoft Dynamics CRM 2011 - Guide administrateurMicrosoft Dynamics CRM 2011 - Guide administrateur
Microsoft Dynamics CRM 2011 - Guide administrateur
 
The Ring programming language version 1.3 book - Part 1 of 88
The Ring programming language version 1.3 book - Part 1 of 88The Ring programming language version 1.3 book - Part 1 of 88
The Ring programming language version 1.3 book - Part 1 of 88
 

Plus de Jean-Marie Renouard (20)

Les structures de données PHP5
Les structures de données PHP5Les structures de données PHP5
Les structures de données PHP5
 
SQL et MySQL
SQL et MySQLSQL et MySQL
SQL et MySQL
 
Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
 
Gestion de formulaires en PHP
Gestion de formulaires en PHPGestion de formulaires en PHP
Gestion de formulaires en PHP
 
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHPSécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
 
Configuration PHP5
Configuration PHP5Configuration PHP5
Configuration PHP5
 
Client base de données en PHP5
Client base de données en PHP5Client base de données en PHP5
Client base de données en PHP5
 
MVC / Frameworks PHP
MVC / Frameworks PHPMVC / Frameworks PHP
MVC / Frameworks PHP
 
Email et PHP5
Email et PHP5Email et PHP5
Email et PHP5
 
Fichier XML et PHP5
Fichier XML et PHP5Fichier XML et PHP5
Fichier XML et PHP5
 
Le client FTP de PHP5
Le client FTP de PHP5Le client FTP de PHP5
Le client FTP de PHP5
 
Le client HTTP PHP5
Le client HTTP PHP5Le client HTTP PHP5
Le client HTTP PHP5
 
PHP 5 et la programmation objet
PHP 5 et la programmation objetPHP 5 et la programmation objet
PHP 5 et la programmation objet
 
PHP5 et les fichiers
PHP5 et les fichiersPHP5 et les fichiers
PHP5 et les fichiers
 
Syntaxe du langage PHP
Syntaxe du langage PHPSyntaxe du langage PHP
Syntaxe du langage PHP
 
Présentation de PHP
Présentation de PHPPrésentation de PHP
Présentation de PHP
 
Ssh cookbook v2
Ssh cookbook v2Ssh cookbook v2
Ssh cookbook v2
 
Ssh cookbook
Ssh cookbookSsh cookbook
Ssh cookbook
 
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur LinuxManuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 

Manuel De Securite 1.8 (Mise à jour avec DOCKER)

  • 1. MANUEL DE SECURITE Manuel de sécurisation d'une distribution Linux RESUME Manuel Pratique de sécurité sous Linux https://www.jmrenouard.fr https://www.lightpath.fr/ Version 1.8 18 mars 2024 Le présent document détaille les procédures de sécurisation type lors d'une installation de serveur Linux.
  • 2. https://www.jmrenouard.fr https://www.lightpath.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 1/24 1 Version Version Date Auteur Description 1.0 24/04/2006 Jean-Marie Renouard Version initiale 1.1 21/06/2008 Jean-Marie Renouard Amélioration du document Ajout de la partie sur l'installation Changement de licence 1.2 22/08/2008 Jean-Marie Renouard Mise à jour de la syntaxe et corrections orthographiques 1.3 23/02/2009 Jean-Marie Renouard Mise à jour des conseils autour de l'identité des intervenants sur les serveurs 1.4 09/03/2009 Jean-Marie Renouard Mises à jour multiples et ajout d’illustrations 1.5 12/11/2011 Jean-Marie Renouard Mises à jour 1.6 26/12/2021 Jean-Marie Renouard Mises à jour 1.7 20/12/2222 Jean-Marie Renouard Ajout d’une section sur les mots de passe 1.8 18/03/2024 Jean-Marie Renouard Ajout d’une section sur Docker/MySQL
  • 3. https://www.jmrenouard.fr https://www.lightpath.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 2/24 2 MENTIONS LEGALES © Jean-Marie RENOUARD- 2006-2024 Tous droits réservés Aux termes du présent avis, et notamment des articles L 111-1 et L 122-5 du code de la propriété intellectuelle, vous êtes autorisés à visualiser, copier, imprimer et distribuer ce document aux conditions suivantes : 1. Ce document sert uniquement à des fins d'information ; 2. Ce document sert à des fins non commerciales ; 3 3. . Tou ut te e c co op pi ie e o ou u i im mp pr re es ss si io on n t to ot ta al le e o ou u p pa ar rt ti ie el ll le e d de e c ce e d do oc cu um me en nt t d do oi it t m me en nt ti io on nn ne er r l la a s so ou ur rc ce e " " © © J Je ea an n- -M Ma ar ri ie e R RE EN NO OU UA AR RD D - - 2 20 00 06 6- -2 20 02 24 4" " e et t r re ep pr ro od du ui ir re e l le e t te ex xt te e i in nt té ég gr ra al l d du u p pr ré és se en nt t a av vi is s. .
  • 4. https://www.jmrenouard.fr https://www.lightpath.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 3/24 3 Table des matières 1 VERSION ........................................................................................................................................... 1 2 MENTIONS LEGALES ...................................................................................................................... 2 3 TABLE DES MATIERES ................................................................................................................... 3 4 INTRODUCTION................................................................................................................................ 5 4.1 OBJET DU DOCUMENT.................................................................................................................... 5 4.2 CONTEXTE DU DOCUMENT............................................................................................................ 5 4.3 REFERENCES DOCUMENTAIRES .................................................................................................. 5 4.4 TYPOLOGIE....................................................................................................................................... 5 4.5 GLOSSAIRE.................................................................................. ERREUR ! SIGNET NON DEFINI. 5 CONSIDERATIONS GLOBALES DE SECURITE. ........................................................................... 6 6 MISES A JOUR DE SECURITE ET DISTRIBUTION MAINTENUE ................................................. 7 6.1 PROCEDURE DE MISE A JOUR INTEGRALE DE LA DISTRIBUTION........................................... 7 6.2 REFLEXION DE GESTION APPLICATIVE SUR DISTRIBUTION EN FIN DE VIE .......................... 7 7 TOPOLOGIE D'INSTALLATION ....................................................................................................... 8 7.1 INSTALLATION MINIMUM................................................................................................................. 8 7.2 RETRAIT DE TOUTES LES DOCUMENTATIONS ET APPLICATIONS NON NECESSAIRES ...... 8 7.3 EFFET « SIMPLE IS BEAUTIFUL » .................................................................................................. 8 8 COMPTE A DROITS RESTREINTS.................................................................................................. 9 8.1 RESTRICTIONS DES ACCES SSH .................................................................................................. 9 8.2 MISE EN PLACE DU MECANISME D'USURPATION....................................................................... 9 8.2.1 Mise en place pour un utilisateur spécifique ...................................................................................... 9 8.2.2 Mise en place pour un groupe spécifique .......................................................................................... 9 8.2.3 Test la mise en place ....................................................................................................................... 10 8.2.4 Test de la présence des logs des actions ........................................................................................ 10 8.3 SUPPRESSION DU DROIT DE CONNEXION POUR LE SUPER UTILISATEUR ......................... 11 9 GESTION DES MOTS DE PASSE .................................................................................................. 11 9.1 CHOIX DES MOTS DE PASSES DE QUALITE POUR LE SUPER-UTILISATEUR ET L'ENSEMBLE DES COMPTES PRIVILEGIES................................................................................................ 11 9.1 GENERATION DE MOTS DE PASSES DE QUALITE EN LIGNE DE COMMANDE...................... 11 9.1.1 Pwgen pour générer un mot de passe sécurisé sans utiliser de site Web ...................................... 12 9.1.2 OpenSSL pour générer un mot de passe sécurisé sans utiliser de site Web.................................. 12 9.2 COMMENT STOCKER SES MOTS DE PASSE EN TOUTE SECURITE ?.................................... 12 9.2.1 Utiliser un gestionnaire de mots de passe ....................................................................................... 12 9.2.2 Utiliser un papier ou un fichier sécurisé : ......................................................................................... 12 9.2.3 Utiliser la fonction de mots de passe intégrée de votre navigateur ou de votre système d'exploitation.................................................................................................................................................... 12 9.2.4 Keepass2, un logiciel de stockage des mots de passe ................................................................... 13 10 MISE EN PLACE D'UTILITAIRE DE SECURITE............................................................................ 14
  • 5. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 4/24 10.1 UTILITAIRE D'ANALYSE DE LOG .................................................................................................. 14 10.2 MISE SOUS SURVEILLANCE DES DISQUES AVEC SMART....................................................... 14 10.2.1 Activation du protocole SMART ....................................................................................................... 14 10.3 MISE SOUS SURVEILLANCE DE MODIFICATION DE CERTAINS REPERTOIRES ................... 15 10.3.1 Utilitaire de surveillance des altérations de répertoire : afick........................................................... 15 10.4 MISE EN PLACE D'UN AUDIT AUTOMATIQUE DE LA PRESENCE DE ROOTKIT ..................... 16 10.5 CONFIGURATION D'UN PARE-FEU LOCAL ET D'UN DETECTEUR D'ATTAQUE RESEAU...... 17 10.5.1 Mise en place de réaction automatique aux connexions non autorisées ........................................ 17 10.6 RESTRICTION DES CONNEXIONS AU SERVEUR X ................................................................... 18 10.7 MISE EN PLACE DU SUIVI STANDARD ........................................................................................ 18 11 SE LINUX POUR MYSQL................................................................................................................ 18 11.1 VERIFIER CE QUI SE PASSE EN MODE PERMISSIVE. .............................................................. 18 11.2 TRACER LES REGLES ................................................................................................................... 18 11.3 VERIFIER LA PRESENCE DU PAQUET SELINUX-POLICY-TARGETED .................................... 19 11.4 LISTE DES CONTEXTES DE FICHIER .......................................................................................... 19 11.5 LISTE DES PORTS.......................................................................................................................... 20 11.6 AJOUTER UNE REGLE DE PORT.................................................................................................. 20 11.7 AJOUTER UNE REGLE DE REPERTOIRE .................................................................................... 20 11.8 RETIRER UNE REGLE.................................................................................................................... 20 12 CREER UNE POLICE SELINUX ..................................................................................................... 20 12.1 PASSER EN MODE PERMISSIVE.................................................................................................. 20 12.2 CREATION D'UNE TABLE TEMPORAIRE ..................................................................................... 20 12.3 VERIFIER QUE L'INTERDICTION EST BIEN PASSEE.................................................................. 21 12.4 DESCRIPTION DU MODULE SELINUX.......................................................................................... 21 12.5 RESTE LA COMPILATION .............................................................................................................. 21 13 SECURISATION DES CONTENEURS DOCKER / MYSQL........................................................... 21 13.1 UTILISEZ DES IMAGES OFFICIELLES ET SECURISEES............................................................ 21 13.2 GESTION DES SECRETS............................................................................................................... 21 13.3 LIMITEZ LES PRIVILEGES DU CONTENEUR ............................................................................... 22 13.4 ISOLATION DU RESEAU ................................................................................................................ 22 13.5 MISES A JOUR REGULIERES........................................................................................................ 22 13.6 CONFIGURATION SECURISEE DE MYSQL.................................................................................. 22 13.7 SURVEILLANCE ET JOURNALISATION........................................................................................ 22 14 GESTION DU DOCUMENT ............................................................................................................. 23
  • 6. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 5/24 4 Introduction 4.1 Objet du document Le présent document spécifie techniquement les procédures de sécurisation d'un serveur Linux Red Hat lors d'un déploiement d'un service sur Internet ou dans le cas d'un partage d'application avec un partenaire extérieur. 4.2 Contexte du document Ce document a été rédigé pour système de la famille Red Hat et fonctionne sur les systèmes suivants : ⚫ Red Hat 7.xx ⚫ Red Hat Stream 8 et 9 ⚫ Centos Stream 8.xx à 9.xx ⚫ Fedora Core ⚫ Ubuntu 22 Cependant il doit fonctionner correctement sans trop de difficultés sur l'ensemble des serveurs utilisant un système de packaging de type RPM ou DEB. L'ensemble de des préconisations ne sont pas uniquement valables pour systèmes compatibles Red Hat et peuvent servir de base pour toutes variantes de Linux comme Debian, Mandriva, Slackware, Gentoo, Ubuntu, ... 4.3 Références documentaires 4.4 Typologie Exemple Descritpion # ifconfig Appel de la commande « ifconfig » lors d'une connexion super-utilisateur (root) $ ls Appel de la commande « ls » lors d'une connexion utilisateur (autre que root) 1.txt 2.txt toto foo bazr Résultats affichés à l'appel d'un script shell
  • 7. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 6/24 5 Considérations globales de sécurité. L'ensemble de ces préconisations a pour but d'augmenter la sécurité, des interventions et du suivi des applications sur les plateformes Linux. L'application ou la non-application reste à la discrétion de chacun. 123Solution ne peut pas être tenu responsable de la mauvaise application des préconisations de ce document.
  • 8. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 7/24 6 Mises à jour de sécurité et distribution maintenue La sécurité d'une distribution dépend de 2 éléments importants : 1. Le cycle de vie de la distribution ; 2. La fréquence des mises à jour de votre système. L'utilisation d'une distribution ayant un contrat de maintenance longue durée « long term maintenance » est importante car en effet, une application déployée en production à pour but de fonctionner plus de 3 à 4 mois et donc dans ce contexte nécessite un environnement système stable et maintenable durant un temps suffisant permettant sa mise à jour régulière et la planification de migration vers une version de distribution plus récente dans des conditions acceptable et non contraignante ( « effet fin de course » ) 6.1 Procédure de mise à jour intégrale de la distribution # Procédure sur Red Hat 6/7 # yum -y upgrade ... # Procédure sur Red Hat 8 # dnf -y upgrade ... # Procédure sur les variantes de Debian/Ubuntu # apt update && apt upgrade ... 6.2 Réflexion de gestion applicative sur distribution en fin de vie Il est important d'anticiper la migration vers des systèmes Linux et des versions de distribution ayant un cycle de vie permettant de rester serein dans un espace de temps suffisant afin de pouvoir garantir un nombre de correctifs de sécurité permettant de garantir de « ne pas subir l'effet passoire »
  • 9. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 8/24 7 Topologie d'installation 7.1 Installation minimum Les serveurs de production doivent être installés a minima. Nous ne devons donc pas trouver sur un serveur de production les applications suivantes : ⚫ Compilateur ⚫ Serveur non nécessaire ⚫ Serveur X ⚫ Tout environnement graphique dernière génération 7.2 Retrait de toutes les documentations et applications non nécessaires Pour enfin permettre une sécurité optimum sur le serveur de production, nous conseillons de retirer l'ensemble des applications qui ne sont pas strictement nécessaires au fonctionnement des applications qu'il héberge. Les applications à proscrire en priorité sur un serveur de production sont les suivantes : • Tous les compilateurs de code ; • Tous les langages de scripts non nécessaires ; • Toutes les applications de communication : mail, jabber, irc. • Tous les outils de configuration système. • Toutes documentations. 7.3 Effet « simple is beautiful » Les systèmes ayant peu de programme installé sont toujours moins vulnérables car les failles de sécurité potentielles concernent forcément moins d'applications sur votre serveur. De plus, les installations minimalistes installent toujours des programmes fondamentaux et qui dit fondamental dit technologie mature, stable et donc très faiblement vulnérable. Le fait de ne pas installer d'application serveur permets de ne pas ouvrir de service sur le serveur qui n'ont rien à y faire (serveur de Mail, rsync, Portmap, ...)
  • 10. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 9/24 8 Compte à droits restreints Pour l'ensemble des opérations, il est impératif d'utiliser un compte ayant des droits restreints pour plusieurs raisons : • Pas besoin des droits d'un super administrateur pour effectuer des opérations non critiques. • Besoins importants de traçabilité des opérations effectuées sur le serveur avec les droits du super utilisateur. • Sécurisation et limitation des impacts de commandes tapées trop rapidement. • Sécurisation des accès qui peuvent être réalisées sur un compte non privilégié. 8.1 Restrictions des accès SSH Pour éviter des accès en tant que super utilisateur sur les plateformes de l'application, il est possible de restreindre l'accès aux utilisateurs non privilégiés. Il est possible d'interdire simplement les connexions root par SSH. Dans de nombreux cas, cela suffit largement à sécuriser le serveur. Dans le fichier /etc/ssh/sshd_config, positionnez explicitement : $ vim /etc/ssh/sshd_config ... PermitRootLogin no ... $ systemctl sshd reload ... 8.2 Mise en place du mécanisme d'usurpation Cette technique permet de sécuriser l'ensemble des opérations effectuées en tant que super utilisateur. 8.2.1 Mise en place pour un utilisateur spécifique # adduser admin # visudo # User alias specification User_Alias STAFF=admin # User privilege specification root ALL=(ALL) ALL STAFF ALL=(ALL) NOPASSWD:ALL 8.2.2 Mise en place pour un groupe spécifique # visudo
  • 11. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 10/24 %wheel ALL=(ALL) NOPASSWD:ALL # gpasswd -a admin wheel 8.2.3 Test la mise en place # su – admin $ sudo mount /mnt/usbdisk Si l'opération de montage d'une clé USB fonctionne alors le mécanisme d'usurpation est opérationnel. 8.2.4 Test de la présence des logs des actions Ces traces contiennent l'ensemble des commandes concernant les opérations effectuées en tant que super utilisateur : $ sudo cat /var/log/secure Mar 7 16:42:21 localhost sshd[2807]: Accepted password for jmrenouard from 10.194.60.94 port 4087 ssh2 Mar 7 16:43:10 localhost sshd[2886]: Accepted password for jmrenouard from 10.194.60.94 port 4088 ssh2 Mar 7 16:43:30 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/bin/chmod -R 644 .ssh Mar 7 16:44:01 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/bin/chown -R jmrenouard: .ss Mar 7 16:44:03 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/bin/chown -R jmrenouard: .ssh/ Mar 7 16:44:18 localhost sshd[2974]: Accepted password for jmrenouard from 10.194.60.94 port 4089 ssh2 Mar 7 16:44:34 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/bin/chmod -R 644 .ssh Mar 7 16:44:46 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/bin/chown -R jmrenouard: .ssh/authorized_keys Mar 7 16:46:48 localhost sshd[3096]: Accepted publickey for jmrenouard from 10.194.60.94 port 4090 ssh2 Mar 8 11:10:39 localhost sshd[2291]: Accepted publickey for jmrenouard from 10.194.60.94 port 1538 ssh2 Mar 8 11:36:47 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/yum update Mar 8 11:37:47 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/cpan install Template Mar 8 11:43:24 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/cpan install XML::RSS Mar 8 11:45:25 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/cpan install Digest::SHA Mar 8 11:45:55 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/cpan install Digest::SHA Mar 8 11:47:25 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/cpan install XML::DOM Mar 8 11:47:30 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/cpan notest install XML::DOM Mar 8 11:47:40 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/cpan force install XML::DOM Mar 8 11:47:49 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/cpan force install XML::DOM
  • 12. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 11/24 Mar 8 11:47:58 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/cpan Mar 8 11:48:37 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/cpan install Digest::SHA Mar 8 11:48:56 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/cpan install Template Mar 8 14:07:50 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/myisamchk -c -v -u /var/lib/mysql/crl/* Mar 8 14:07:58 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/myisamchk -c -v -u /var/lib/mysql/crl Mar 8 14:08:06 localhost sudo: jmrenouard : TTY=pts/0 ; PWD=/home/jmrenouard ; USER=root ; COMMAND=/usr/bin/myisamchk -c -v -u /var/lib/mysql/crl/* 8.3 Suppression du droit de connexion pour le super utilisateur Pour finir de la configuration d'accès sécurisé au serveur et que des utilisateurs ont le droit usurper l'identité du super utilisateur, il suffit d'interdire la connexion du super utilisateur lui-même sur la plateforme. Cette technique évite les attaques de type "brute force ssh attack" courant sur Internet. Le fichier /etc/passwd doit contenir un astérisque en 2ème champ pour interdire tout mot de passe pour l'utilisateur root. $ vim root /etc/passwd root:*:… 9 Gestion des mots de passe 9.1 Choix des mots de passes de qualité pour le super-utilisateur et l'ensemble des comptes privilégiés Il est impératif de sécuriser l'ensemble des utilisateurs avec un mot de passe de grande qualité. Ceci est d'autant plus vrai que le compte peut usurper les droits du super-utilisateur. Voici donc un lien vers une application en ligne capable de valider le niveau de sécurité de votre mot de passe : http://www.microsoft.com/protect/yourself/password/checker.mspx 9.1 Génération de mots de passes de qualité en ligne de commande Pour avoir un bon mot de passe, rien de tel que de générer un mot de passe très long de 32 ou 64 caractères
  • 13. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 12/24 Selon Hive Systems, il faut 438 trillions d’année pour casser un mot de passe de 18 caractères) https://www.hivesystems.io/blog/are-your-passwords-in-the-green Attention, au site web permettant de générer les mots de passe, ils peuvent servir à alimenter des dictionnaires de mot de passe 9.1.1 Pwgen pour générer un mot de passe sécurisé sans utiliser de site Web # yum -y install pwgen Ou # apt install pwgen # pwgen -1 32 aimaib5Eeda7Quah5ooGhood0eejee1f # pwgen -1 64 aiy3Oughee2eiG3Nu1auteiyuT9Bi2oeZ4jeichue2eokeipahvoongohhai0qui 9.1.2 OpenSSL pour générer un mot de passe sécurisé sans utiliser de site Web # openssl rand -base64 24|xargs -n1 echo -n LGELdTzmawe/Jc0uk2TYG966smjPzh41 # openssl rand -base64 48|xargs -n1 echo -n wWDRDq7JeANdRl7OpWEEFPWUQFjVEkpILXcKFh1poemCGT+M3BVDTiwKDqd+X/TA 9.2 Comment stocker ses mots de passe en toute sécurité ? Il existe plusieurs façons de stocker vos mots de passe de manière sécurisée : 9.2.1 Utiliser un gestionnaire de mots de passe Il s'agit d'un logiciel ou d'une extension de navigateur qui stocke tous vos mots de passe de manière sécurisée et les synchronise sur tous vos appareils. Vous n'aurez qu'à mémoriser un seul mot de passe principal pour accéder à tous vos autres mots de passe. 9.2.2 Utiliser un papier ou un fichier sécurisé : Vous pouvez écrire vos mots de passe sur un papier et le stocker dans un endroit sécurisé, comme un coffre-fort ou un tiroir fermé à clé. Vous pouvez également utiliser un fichier crypté sur votre ordinateur ou votre téléphone pour stocker vos mots de passe. 9.2.3 Utiliser la fonction de mots de passe intégrée de votre navigateur ou de votre système d'exploitation La plupart des navigateurs et des systèmes d'exploitation proposent une fonction de gestion de mots de passe intégrée qui peut être activée pour stocker vos mots de passe de manière sécurisée. Cependant, il est important de choisir un mot de passe principal sécurisé pour protéger cet espace de stockage.
  • 14. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 13/24 Il est important de choisir des mots de passe forts et uniques pour chaque compte et de les changer régulièrement pour renforcer la sécurité de vos comptes. De plus, il est recommandé de ne jamais partager vos mots de passe avec d'autres personnes et de ne pas les enregistrer sur des appareils publics ou partagés. 9.2.4 Keepass2, un logiciel de stockage des mots de passe Keepass 2 est un gestionnaire de mots de passe open source qui vous permet de stocker tous vos mots de passe de manière sécurisée dans une base de données chiffrée. Vous n'aurez qu'à mémoriser un seul mot de passe principal pour accéder à tous vos autres mots de passe. Keepass 2 offre plusieurs fonctionnalités pour renforcer la sécurité de vos mots de passe : • Chiffrement fort : Keepass 2 utilise le chiffrement AES-256 pour protéger votre base de données de mots de passe. • Générateur de mots de passe : Keepass 2 inclut un générateur de mots de passe qui vous permet de créer des mots de passe forts et uniques de manière aléatoire. • Synchronisation : Keepass 2 permet de synchroniser votre base de données de mots de passe sur plusieurs appareils en utilisant des services de stockage en nuage tels que Dropbox ou Google Drive. • Import et export : Keepass 2 vous permet d'importer et d'exporter facilement votre base de données de mots de passe vers d'autres formats de fichier tels que CSV ou XML. Keepass 2 est disponible pour Windows, Linux et macOS, et il existe également des versions mobiles pour Android et iOS. Vous pouvez télécharger et utiliser Keepass 2 gratuitement. Keeepass est disponible à l’addresse suivante : https://keepass.info/download.html L’ANSSI(https://www.ssi.gouv.fr/) a certifié ce logiciel https://www.ssi.gouv.fr/entreprise/certification_cspn/keepass-version-2-10-portable/
  • 15. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 14/24 10 Mise en place d'utilitaire de sécurité 10.1Utilitaire d'analyse de log Un analyseur de log permet de connaître au niveau système d'état général du serveur. Le rapport peut et doit être envoyer par courriel soit en local ou à une adresse externe d'un exploitant. Ce rapport indique les grandes lignes de l'état du serveur. Le programme logwatch est idéal pour ce genre de tâche $ sudo dnf -y install logwatch … L'analyse des traces a lieu une fois par jour et un mail est envoyé à l'utilisateur root du serveur. Cet outil peut être configuré pour permettre en avant les erreurs au niveau des applications. $ sudo /usr/share/logwatch/scripts/logwatch.pl --print 10.2Mise sous surveillance des disques avec SMART La mise sous surveillance des disques est une opération permettant de prévenir des crashs de disque. En effet, la mise sous surveillance des disques peut être simplement réalisée par le protocole SMART fonctionnant sur l'ensemble des disques durs IDE/ATA/SCSI. $ df Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 ext3 16G 2.0G 14G 13% / /dev/sdb1 ext3 17G 306M 16G 2% /home none tmpfs 502M 0 502M 0% /dev/shm $ cat /etc/smartd.conf /dev/sda -a /dev/sdb -a 10.2.1 Activation du protocole SMART $ sudo service smartd restart $ sudo chkconfig –level=12345 smartd on $ sudo smartctl –a /dev/sda1 $ sudo smartctl –a /dev/sdb1 # Lancement d'un test court $ sudo smartctl –t short /dev/sdb1 … $ sudo smartctl --smart=on --offlineauto=on --saveauto=on /dev/sdb1 smartctl version 5.1-11 Copyright (C) 2002-3 Bruce Allen Home page is http://smartmontools.sourceforge.net/ Informational Exceptions (SMART) enabled
  • 16. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 15/24 Temperature warning enabled $ sudo smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda1 smartctl version 5.1-11 Copyright (C) 2002-3 Bruce Allen Home page is http://smartmontools.sourceforge.net/ Informational Exceptions (SMART) enabled Temperature warning enabled … 10.3Mise sous surveillance de modification de certains répertoires Un analyseur de modification permet de mettre en évidence des modifications survenues sur un répertoire sur le serveur. Cela permet d'attendre 2 objectifs majeurs : • La prévention des erreurs non volontaires par exemple dans le répertoire de configuration. • La prévention des installations de chevaux de Troie dans le répertoire des binaires par exemple. 10.3.1 Utilitaire de surveillance des altérations de répertoire : afick $ sudo vim /etc/afick.conf … $ sudo rpm -ivh afick-2.1.noarch.rpm #Validation de la configuration $ sudo afick -C -c /etc/afick.conf # config file /etc/afick.conf ok $ sudo afick -u -c /etc/afick.conf # Afick (2.19) update at 2011/11/10 15:54:33 with options (/etc/afick.conf): # database:=/var/lib/afick/afick # history:=/var/lib/afick/history # archive:=/var/lib/afick/archive # report_url:=stdout # running_files:=1 # timing:=1 # exclude_suffix:= log LOG html htm HTM txt TXT xml # max_checksum_size:=10000000 # last run on 2006/03/08 15:52:01 with afick version 2.8-2 new file : /var/lib/afick/afick.ctr new file : /var/lib/afick/afick.dir new file : /var/lib/afick/afick.pag changed file : /etc/afick.conf # detailed changes new file : /var/lib/afick/afick.ctr inode_date : Wed Mar 8 15:52:52 2006 new file : /var/lib/afick/afick.dir inode_date : Wed Mar 8 15:54:33 2006 new file : /var/lib/afick/afick.pag inode_date : Wed Mar 8 15:55:09 2006 changed file : /etc/afick.conf md5 : Lb1Xd1ropZoWs3eFLlxmSQ rjgzjzvyE9Th1W2Liv7L7w
  • 17. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 16/24 inode : 228985 229196 filesize : 4386 4387 mtime : Wed Mar 8 15:52:00 2006 Wed Mar 8 15:54:16 2006 ctime : Wed Mar 8 15:52:00 2006 Wed Mar 8 15:54:16 2006 # Hash database updated successfully : 34930 files scanned, 4 changed (new : 3; delete : 0; changed : 1; dangling : 6; exclude_suffix : 90; exclude_prefix : 0; exclude_re : 0; degraded : 4) # ################################################################# # MD5 hash of /var/lib/afick/afick => StOLSBHwHP2xJ9Jvis/RAQ # user time : 21.86; system time : 4.28; real time : 37 #Second lancement $ sudo afick -u -c /etc/afick.conf # Afick (2.8-2) update at 2006/03/08 15:56:40 with options (/etc/afick.conf): # database:=/var/lib/afick/afick # history:=/var/lib/afick/history # archive:=/var/lib/afick/archive # report_url:=stdout # running_files:=1 # timing:=1 # exclude_suffix:= log LOG html htm HTM txt TXT xml # max_checksum_size:=10000000 # last run on 2006/03/08 15:54:33 with afick version 2.8-2 # Hash database updated successfully : 34930 files scanned, 0 changed (new : 0; delete : 0; changed : 0; dangling : 6; exclude_suffix : 90; exclude_prefix : 0; exclude_re : 0; degraded : 4) # ################################################################# # MD5 hash of /var/lib/afick/afick => StOLSBHwHP2xJ9Jvis/RAQ # user time : 21.48; system time : 3.64; real time : 27 .. 10.4Mise en place d'un audit automatique de la présence de rootkit Chkrootkit est un utilitaire de validation de la non-présence de rootkits sur une machine. Un rootkit étant un programme binaire substituant un utilitaire du système pour permettre l'usurpation frauduleuse de droits. $ sudo tar xzvf chkrootkit.tar.gz chkrootkit-0.49 chkrootkit-0.49/ifpromisc.c chkrootkit-0.49/COPYRIGHT chkrootkit-0.49/chkdirs.c chkrootkit-0.49/check_wtmpx.c chkrootkit-0.49/chkrootkit.lsm chkrootkit-0.49/Makefile chkrootkit-0.49/ACKNOWLEDGMENTS chkrootkit-0.49/README.chkwtmp chkrootkit-0.49/chklastlog.c chkrootkit-0.49/chkrootkit chkrootkit-0.49/chkutmp.c
  • 18. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 17/24 chkrootkit-0.49/chkwtmp.c chkrootkit-0.49/README chkrootkit-0.49/README.chklastlog chkrootkit-0.49/strings.c chkrootkit-0.49/chkproc.c $ sudo cd chkrootkit-0.49 $ sudo make $ sudo ./chkrootkit … Bien sûr, il est évident que la compilation peut être réalisée sur une autre machine afin d'éviter l'installation d'un compilateur sur la plateforme de production. Il faut cependant prendre un peu de recul vis-à-vis de cette technologie en effet, ce logiciel n’a pas été mis à jour depuis août 2009 10.5Configuration d'un pare-feu local et d'un détecteur d'attaque réseau Un pare-feu local sur les frontaux peut-être installe pour éviter toutes connections sur le serveur en dehors des ports HTTP(80), HTTPS(443), SSH(22). $ sudo iptables –L $ sudo iptables-save # Generated by iptables-save v1.2.8 on Wed Mar 8 16:31:18 2006 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [25400502:18548269096] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type 255 -j ACCEPT -A RH-Firewall-1-INPUT -p esp -j ACCEPT -A RH-Firewall-1-INPUT -p ah -j ACCEPT -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Wed Mar 8 16:31:18 2006 Un utilitaire de configuration de pare-feu existe sous Red Hat : redhat-config-security-gui Attention, sans la consultation des fichiers de configuration, il est difficile de connaître l'intégralité des règles de filtrage comme les règles de redirection de port. 10.5.1 Mise en place de réaction automatique aux connexions non autorisées
  • 19. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 18/24 Il est possible avec un utilitaire comme portsentry de suivre l'ensemble des tentatives de connexions sur un serveur, de les tracer et d'y apporter une réponse automatique (blocage du port, effet miroir, …) $ sudo rpm -ivh portsentry-1.2-2.i386.rpm $ sudo vim /etc/portsentry/portsentry.conf … $ sudo service portsentry start $ sudo chkconfig –level=12345 portsentry on 10.6Restriction des connexions au serveur X Pour éviter des prises de main à distance sur le serveur X au cas où les équipes d'exploitation souhaitent pouvoir se connecter via une interface graphique, il est possible de limiter les connexions depuis le serveur lui-même. 10.7Mise en place du suivi standard L'activation des serveurs snmpd et snmptrapd provenant du paquet RPM net-snmp permettent de réaliser une démarche de suivi de performances et des d'indicateurs principaux au niveau système, applicatif et réseau. Les fichiers de configuration sont respectivement /etc/snmpd.conf et /etc/snmptrad.conf. $ sudo service snmpd restart $ sudo service snmptrapd restart $ sudo chkconfig –level=12345 snmpd on $ sudo chkconfig –level=12345 snmptrapd on 11 SE LINUX pour MySQL 11.1Vérifier ce qui se passe en mode permissive. tailf /var/log/messages 11.2Tracer les règles # service auditd start # tailf /var/log/audit/audit.log
  • 20. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 19/24 11.3Vérifier la présence du paquet selinux-policy-targeted # rpm -ql selinux-policy-targeted Nous recherchons une police adaptée à MySQL # semodule -l ... mysql 1.11.3rpm -qa | grep ... 11.4Liste des contextes de fichier # semanage fcontext -l| grep -i mysql /usr/lib(64)?/nagios/plugins/check_mysql regular file system_u:object_r:nagios_services_plugin_exec_t:s0 /usr/lib(64)?/nagios/plugins/check_mysql_query regular file system_u:object_r:nagios_services_plugin_exec_t:s0 /etc/mysql(/.*)? all files system_u:object_r:mysqld_etc_t:s0 /etc/my.cnf.d(/.*)? all files system_u:object_r:mysqld_etc_t:s0 /var/log/mysql.* regular file system_u:object_r:mysqld_log_t:s0 /var/lib/mysql(-files|-keyring)?(/.*)? all files system_u:object_r:mysqld_db_t:s0 /var/run/mysqld(/.*)? all files system_u:object_r:mysqld_var_run_t:s0 /var/log/mariadb(/.*)? all files system_u:object_r:mysqld_log_t:s0 /var/run/mariadb(/.*)? all files system_u:object_r:mysqld_var_run_t:s0 /usr/sbin/mysqld(-max)? regular file system_u:object_r:mysqld_exec_t:s0 /var/lib/squeezeboxserver(/.*)? all files system_u:object_r:mysqld_db_t:s0 /var/run/mysqld/mysqlmanager.* regular file system_u:object_r:mysqlmanagerd_var_run_t:s0 /usr/share/munin/plugins/mysql_.* regular file system_u:object_r:munin_services_plugin_exec_t:s0 /etc/my.cnf regular file system_u:object_r:mysqld_etc_t:s0 /usr/libexec/mysqld regular file system_u:object_r:mysqld_exec_t:s0 /usr/bin/mysqld_safe regular file system_u:object_r:mysqld_safe_exec_t:s0 /usr/sbin/mysqlmanager regular file system_u:object_r:mysqlmanagerd_exec_t:s0 /etc/rc.d/init.d/mysqld regular file system_u:object_r:mysqld_initrc_exec_t:s0 /var/lib/mysql/mysql.sock socket system_u:object_r:mysqld_var_run_t:s0 /usr/sbin/zabbix_proxy_mysql semanga regular file system_u:object_r:zabbix_exec_t:s0 /etc/rc.d/init.d/mysqlmanager regular file system_u:object_r:mysqlmanagerd_initrc_exec_t:s0 /usr/sbin/zabbix_server_mysql regular file system_u:object_r:zabbix_exec_t:s0 /var/lib/mysql-files = /var/lib/mysql /var/lib/mysql-keyring = /var/lib/mysql
  • 21. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 20/24 11.5Liste des ports # semanage port -l| grep -i mysql mysqld_port_t tcp 1186, 3306, 63132-63164 mysqlmanagerd_port_t tcp 2273 [root@myserver124 ~]# semanage boolean -l| grep -i mysql allow_user_mysql_connect (off , off) Allow users to connect to mysql mysql_connect_any (off , off) Allow mysqld to connect to all ports exim_can_connect_db (off , off) Allow exim to connect to databases (postgres, mysql) puppetmaster_use_db (off , off) Allow Puppet master to use connect to mysql and postgresql database ftpd_connect_db (off , off) Allow ftp servers to use connect to mysql database 11.6Ajouter une règle de port #semanage port -a -t mysqld_port_t -p tcp 3307 11.7Ajouter une règle de répertoire semanage fcontext -a -t mysqld_db_t "/var/lib/tmp(/.*)?" restorecon -Rv /var/lib/tmpdir semanage port -l | grep mysqld_port_t mysqld_port_t tcp 3307, 1186, 3306, 63132-63164 11.8Retirer une règle semanage fcontext -d -t mysqld_db_t "/var/lib/tmp(/.*)?" semanage port -d -t mysqld_port_t -p tcp 3307 12 Créer une police SELinux 12.1Passer en mode permissive semanage permissive -a mysqld_t Possitionner tmpdir vers un endroit interdit /var/lib/tmporarydir 12.2Création d'une table temporaire mysql -e 'create temporary table xxx ( xx int ); insert into xxx values (3),(4),(5);'
  • 22. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 21/24 12.3Vérifier que l'interdiction est bien passée grep mysqld /var/log/audit/audit.log grep mysqld /var/log/audit/audit.log | audit2allow -m MySQL_tmpfs -o MySQL_tmpfs.te 12.4Description du module SELinux module MySQL_tmpfs 1.0; require { type tmpfs_t; type mysqld_t; class dir { write search read remove_name open getattr add_name }; class file { write getattr read lock create unlink open }; } allow mysqld_t tmpfs_t:dir { write search read remove_name open getattr add_name }; allow mysqld_t tmpfs_t:file { write getattr read lock create unlink open } 12.5Reste la compilation checkmodule -M -m MySQL_tmpfs.te -o MySQL_tmpfs.mod semodule_package -m MySQL_tmpfs.mod -o MySQL_tmpfs.pp semodule -i MySQL_tmpfs.pp semanage permissive -d mysqld_t 13 Sécurisation des conteneurs Docker / MySQL Sécuriser un conteneur Docker qui exécute une base de données MySQL est crucial pour protéger les données sensibles et assurer l'intégrité du système. Voici plusieurs pratiques recommandées pour renforcer la sécurité de votre conteneur MySQL : 13.1Utilisez des images officielles et sécurisées Avantages : Les images officielles sont régulièrement mises à jour et corrigées pour des failles de sécurité. Inconvénients : Peut-être pas toujours configurées selon les besoins spécifiques de votre environnement. Exemple : Utilisez l'image officielle MySQL depuis Docker Hub. 13.2Gestion des secrets Avantages : Empêche l'exposition accidentelle de mots de passe et d'autres secrets. Inconvénients : La gestion des secrets peut introduire une complexité supplémentaire dans la
  • 23. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 22/24 configuration. Exemple : Utilisez Docker Secrets ou des outils tiers comme HashiCorp Vault pour gérer les mots de passe. 13.3 Limitez les privilèges du conteneur Avantages : Réduit la surface d'attaque en cas de compromission du conteneur. Inconvénients : Peut restreindre certaines fonctionnalités nécessaires de la base de données. Exemple : Lancez le conteneur avec un utilisateur non root en utilisant l'option --user. 13.4 Isolation du réseau Avantages : Minimise l'exposition du conteneur aux attaques externes. Inconvénients : Peut compliquer la configuration réseau entre conteneurs. Exemple : Utilisez des réseaux Docker personnalisés et des règles de pare-feu pour isoler le conteneur. 13.5Mises à jour régulières Avantages : Protège contre les vulnérabilités connues en appliquant les dernières mises à jour de sécurité. Inconvénients : Les mises à jour peuvent introduire des changements qui brisent la compatibilité. Exemple : Créez une routine pour mettre à jour régulièrement l'image Docker MySQL. 13.6Configuration sécurisée de MySQL Avantages : Renforce la sécurité interne de la base de données. Inconvénients : Nécessite une connaissance approfondie des paramètres de configuration de MySQL. Exemple : Désactivez la connexion à distance root. Cependant, les dernières images depuis plusieurs années sont sécurisées par défaut sur l’accès distant en tant que root 13.7 Surveillance et journalisation Avantages : Détecte les activités suspectes et aide à diagnostiquer les problèmes de sécurité. Inconvénients : Peut générer une grande quantité de données à analyser. Exemple : Activez la journalisation de MySQL et utilisez des outils de surveillance pour surveiller l'accès et les requêtes. Exemple de commande Docker pour lancer un conteneur MySQL avec des options de sécurité : docker run --name mysql-secure -e MYSQL_ROOT_PASSWORD=my-secret-pw -d --user 1000:1000 --network=my-network mysql:tag --secure-file- priv=/var/lib/mysql
  • 24. http://www.jmrenouard.fr © Jean-Marie RENOUARD- 2011-2024 – http://www.jmrenouard.fr Page 23/24 Cette commande lance un conteneur MySQL avec un utilisateur non root, dans un réseau Docker personnalisé, et configure un dossier spécifique pour l'import/export de fichiers. En appliquant ces pratiques, vous renforcez significativement la sécurité de votre conteneur MySQL. Cependant, il est important de rester informé des dernières pratiques de sécurité et de les adapter selon l'évolution de votre environnement et des menaces. 14 Gestion du document Adresser toute remarque sur ce document au responsable de sa gestion : Jean-Marie Renouard jmrenouard@gmail.com