Le durcicement de linux est une étape très importante à faire une fois celui-ci est installé afin de le sécuriser.
Dans ce guide je vais vous présenter les configurations nécessaire à fair pour sécurisier CentOS 8 /redhat 8
Remarque :
Il est à noter que ces configurations peuvent être faite aussi pour CentOS 7 / Redhat 7.
1- Complexité du mot de passe :
Pour renforcer la complexité du mot de passe, nous allons utiliser le module pam pwquality en éditant le fichier /etc/pam.d/system-auth.
localiser la ligne contennat le module pwquality.so :
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
Modifier la ligne comme ci-dessous :
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root

Pour plus d’information sur la complexité du mot de passe pour les système Linux CentOS et Redhat, je vous conseil de vous réferez à l’article Renforcer la complexité du mot de passe sur CentOS / RHEL.
2- Délai d’expiration pour la session ssh :
Par défaut les session SSH n’expire jamais et cela n’est pas recomandé :

Pour définir une valeur précise éditer le fichier /etc/ssh/sshd_config et mettez une valeur de votre choix ( une valeur de 900s est recommandée) :

3 – Durée de vie du mot de passe :
Par défaut la duréé de vie du mot de passe est définit à 99999 cela veux dire que le mot n’expirera jamais et cela n’est pas recommandé :
[root@linux ~]# grep PASS_MAX /etc/login.defs # PASS_MAX_DAYS Maximum number of days a password may be used. PASS_MAX_DAYS 90
Editer le fichier /etc/login.defs et modifier la valeur 90 ( recommandé) :

4- Interdire l’accès ssh du compte root
Editer le fichier de configuration de ssh /etc/ssh/sshd_config et localiser la ligne contenant le paramétre PermitRootLogin :

Remplacer yes par no :

redémarrer ensuite le service sshd pour ce changement soit pris en charge.
Si vous essayer de vous connecter avec root l’accés sera interdit :

5- Historique du mot de passe :
L’objectif est d’interdire un utilisateur d’utiliser des anciens mot de passe, moi je vais choisir de retenir 4 ancien mot de passe, pour cela éditer le fichier /etc/security/ et localiser la vbaleur « remember »

Décomenter la ligne et mettez la valeur de votre choix :

6- Nombre de tentive d’accès
On peux mettre une politique de désactiver un compte si la tentative de connexion a échoué plusieurs cela est très utils si quelqu’un est entrain de tester des mot de passes pour se connecter.
Pour ce faire éditer le fichier /etc/pam.d/password-auth et ajouter la ligne ci-dessous comme présenté sur la capture suivante :
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=1800

7- Duréé du blockage du compte
Si un compte est désactivé après le nombre de tentative déterminé a été étainte, le compte sear désactivé pour tempe déteminé que vous pouver précisé sur le fichier /etc/pam.d/password-auth avec le paramétre unlock_time :

Configurer le bonding réseau avec nmcli sous Linux
nmap : les 12 commandes que vous devez connaître
Résoudre l’erreur : WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
Migrer Rocky Linux 8 vers Rocky Linux 9
Fail2Ban : How to protect Linux services