Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
elearning:workbooks:centos:6:sec:l103 [2020/02/21 06:07] – créée admin | elearning:workbooks:centos:6:sec:l103 [2021/03/02 08:31] (Version actuelle) – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
~~PDF: | ~~PDF: | ||
- | Version : **2020.01** | + | Version : **2021.01** |
Dernière mise-à-jour : ~~LASTMOD~~ | Dernière mise-à-jour : ~~LASTMOD~~ | ||
Ligne 7: | Ligne 7: | ||
======LRF403 - Authentification====== | ======LRF403 - Authentification====== | ||
- | Dans cette unité, vous allez apprendre : | + | =====Contenu du Module===== |
- | * Comment installer le logiciel | + | * **LRF403 - Authentification** |
- | * Comment procéder au renforcement de la sécurité des comptes, | + | * Contenu du Module |
- | * Comment configurer | + | * Le Problématique |
- | * Comment configurer PAM sous Linux afin de bloquer | + | * LAB #1 - John the Ripper |
- | * Comment mettre | + | * Surveillance Sécuritaire |
+ | * La commande last | ||
+ | * La commande lastlog | ||
+ | * La Commande lastb | ||
+ | * / | ||
+ | * Les Contre-Mesures | ||
+ | * LAB #2 - Renforcer | ||
+ | * LAB #3 - PAM sous RHEL/CentOS 7 | ||
+ | * Bloquer | ||
+ | * Configuration | ||
+ | * LAB #4 - Mise en place du Système de Prévention d' | ||
+ | * Installation | ||
+ | * Configuration | ||
+ | * Le répertoire / | ||
+ | * Le fichier fail2ban.conf | ||
+ | * Le répertoire / | ||
+ | * Le répertoire / | ||
+ | * Commandes | ||
+ | * Activer et Démarrer le Serveur | ||
+ | * Utiliser la Commande Fail2Ban-server | ||
+ | * Ajouter un Prison | ||
=====Le Problématique===== | =====Le Problématique===== | ||
Ligne 21: | Ligne 41: | ||
Le principe de ces logiciels est simples - le logiciel utilise des dictionnaires de mots de passe qui sont utilisés le uns après les autres à une vitesse qui peut atteindre des milliers par seconde. | Le principe de ces logiciels est simples - le logiciel utilise des dictionnaires de mots de passe qui sont utilisés le uns après les autres à une vitesse qui peut atteindre des milliers par seconde. | ||
- | ====LAB #1 - Installer | + | ====LAB #1 - John the Ripper==== |
- | Exécutez le script suivant dans un terminal de RHEL/CentOS 7 en tant que root : | + | ===Installation=== |
- | <file> | + | Créez le script suivant dans un terminal de RHEL/CentOS 7 en tant que root : |
+ | |||
+ | <code> | ||
+ | [trainee@centos7 ~]$ su - | ||
+ | Password: fenestros | ||
+ | Last login: Mon Apr 23 17:23:14 CEST 2018 on tty1 | ||
+ | [root@centos7 ~]# vi john.sh | ||
+ | [root@centos7 ~]# cat john.sh | ||
#!/bin/bash | #!/bin/bash | ||
# Centos 7 John the Ripper Installation | # Centos 7 John the Ripper Installation | ||
Ligne 43: | Ligne 70: | ||
#password dictionnary download | #password dictionnary download | ||
wget -O - http:// | wget -O - http:// | ||
- | </file> | + | </code> |
+ | |||
+ | Rendez-le exécutable : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# chmod u+x john.sh | ||
+ | </ | ||
+ | |||
+ | Exécutez le script : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# ./john.sh | ||
+ | </ | ||
+ | |||
+ | ===Utilisation=== | ||
+ | |||
+ | Placez-vous dans le répertoire **/ | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# cd john-1.8.0/ | ||
+ | </ | ||
+ | |||
+ | Utilisez l' | ||
+ | |||
+ | < | ||
+ | [root@centos7 run]# ./unshadow /etc/passwd /etc/shadow > mypasswd | ||
+ | </ | ||
+ | |||
+ | Consultez le fichier **mypasswd** : | ||
+ | |||
+ | < | ||
+ | [root@centos7 run]# cat mypasswd | ||
+ | root: | ||
+ | bin: | ||
+ | daemon: | ||
+ | adm: | ||
+ | lp: | ||
+ | sync: | ||
+ | shutdown: | ||
+ | halt: | ||
+ | mail: | ||
+ | operator: | ||
+ | games: | ||
+ | ftp: | ||
+ | nobody: | ||
+ | avahi-autoipd: | ||
+ | systemd-bus-proxy: | ||
+ | systemd-network: | ||
+ | dbus: | ||
+ | polkitd: | ||
+ | abrt: | ||
+ | usbmuxd: | ||
+ | colord: | ||
+ | libstoragemgmt: | ||
+ | setroubleshoot: | ||
+ | rpc: | ||
+ | rtkit: | ||
+ | chrony: | ||
+ | unbound: | ||
+ | tss: | ||
+ | geoclue: | ||
+ | ntp: | ||
+ | sssd: | ||
+ | rpcuser: | ||
+ | nfsnobody: | ||
+ | pulse: | ||
+ | gdm: | ||
+ | gnome-initial-setup: | ||
+ | avahi: | ||
+ | postfix: | ||
+ | sshd: | ||
+ | tcpdump: | ||
+ | trainee: | ||
+ | vboxadd: | ||
+ | </ | ||
+ | |||
+ | Lancez **john** pour craquer le fichier **mypasswd** : | ||
+ | |||
+ | < | ||
+ | [root@centos7 run]# ./john mypasswd | ||
+ | Loaded 2 password hashes with 2 different salts (crypt, generic crypt(3) [?/64]) | ||
+ | Press ' | ||
+ | trainee | ||
+ | 1g 0:00:00:26 4% 2/3 0.03831g/s 230.1p/s 230.2c/s 230.2C/s Hanson..Kristine | ||
+ | 1g 0:00:00:27 4% 2/3 0.03658g/s 230.3p/s 230.4c/s 230.4C/s Ruthless..Tanner | ||
+ | 1g 0:00:00:28 4% 2/3 0.03549g/s 230.3p/s 230.3c/s 230.3C/s Bonjour..Blessing | ||
+ | 1g 0:00:00:36 5% 2/3 0.02775g/s 230.6p/s 230.7c/s 230.7C/s dances..olivias | ||
+ | 1g 0:00:01:14 10% 2/3 0.01348g/s 231.2p/s 231.2c/s 231.2C/s rabbitrabbit..dennisdennis | ||
+ | 1g 0:00:01:16 11% 2/3 0.01311g/s 231.1p/s 231.2c/s 231.2C/s grahamgraham..sharkshark | ||
+ | 1g 0:00:01:18 11% 2/3 0.01277g/s 231.2p/s 231.2c/s 231.2C/s reggiereggie..vickivicki | ||
+ | 1g 0:00:01:19 11% 2/3 0.01263g/s 231.1p/s 231.1c/s 231.1C/s javierjavier..melvinmelvin | ||
+ | 1g 0:00:01:20 12% 2/3 0.01244g/s 231.2p/s 231.2c/s 231.2C/s goldengolden..dixondixon | ||
+ | 1g 0:00:01:21 12% 2/3 0.01231g/s 231.2p/s 231.2c/s 231.2C/s obiwanobiwan..bytemebyteme | ||
+ | 1g 0:00:01:22 12% 2/3 0.01218g/s 231.1p/s 231.1c/s 231.1C/s suzysuzy..raeb | ||
+ | 1g 0:00:01:23 12% 2/3 0.01200g/s 231.1p/s 231.2c/s 231.2C/s xilef..ognimalf | ||
+ | 1g 0:00:01:24 12% 2/3 0.01188g/s 231.1p/s 231.2c/s 231.2C/s auhsoj..trebreh | ||
+ | 1g 0:00:01:25 12% 2/3 0.01171g/s 231.2p/s 231.2c/s 231.2C/s namgib..lareneg | ||
+ | 1g 0:00:02:34 21% 2/3 0.006482g/s 231.2p/s 231.2c/s 231.2C/s tinker3..ashraf3 | ||
+ | [q] < | ||
+ | Use the " | ||
+ | Session aborted | ||
+ | </ | ||
+ | |||
+ | Consultez la liste des mots de passe craqués : | ||
+ | |||
+ | < | ||
+ | [root@centos7 run]# ./john --show mypasswd | ||
+ | trainee: | ||
+ | |||
+ | 1 password hash cracked, 1 left | ||
+ | </code> | ||
=====Surveillance Sécuritaire===== | =====Surveillance Sécuritaire===== | ||
Ligne 335: | Ligne 472: | ||
* Le **numéro** du jour après le **01/ | * Le **numéro** du jour après le **01/ | ||
- | =====LAB #3 - PAM sous RHEL/CentOS 6===== | + | =====LAB #3 - PAM sous RHEL/CentOS 7===== |
- | + | ||
- | **PAM** ( //Pluggable Authentification Modules// ou Modules d' | + | |
- | + | ||
- | Les fichiers de configuration se trouvent dans le répertoire **/ | + | |
- | + | ||
- | < | + | |
- | [root@centos6 ~]# ls / | + | |
- | atd halt smartcard-auth-ac | + | |
- | authconfig | + | |
- | authconfig-gtk | + | |
- | authconfig-tui | + | |
- | chfn | + | |
- | chsh | + | |
- | config-util | + | |
- | crond password-auth-ac | + | |
- | cups | + | |
- | cvs poweroff | + | |
- | eject ppp | + | |
- | fingerprint-auth | + | |
- | fingerprint-auth-ac | + | |
- | gdm run_init | + | |
- | gdm-autologin | + | |
- | gdm-fingerprint | + | |
- | gdm-password | + | |
- | gnome-screensaver | + | |
- | </ | + | |
- | + | ||
- | Ces fichiers ont une structure spécifique et sont nommés d' | + | |
- | + | ||
- | < | + | |
- | [root@centos6 ~]# ls / | + | |
- | pam_access.so | + | |
- | pam_cap.so | + | |
- | pam_chroot.so | + | |
- | pam_ck_connector.so | + | |
- | pam_console.so | + | |
- | pam_cracklib.so | + | |
- | pam_debug.so | + | |
- | pam_deny.so | + | |
- | pam_echo.so | + | |
- | pam_env.so | + | |
- | pam_exec.so | + | |
- | pam_faildelay.so | + | |
- | pam_filter | + | |
- | pam_filter.so | + | |
- | pam_fprintd.so | + | |
- | pam_ftp.so | + | |
- | pam_gnome_keyring.so | + | |
- | pam_group.so | + | |
- | pam_issue.so | + | |
- | pam_keyinit.so | + | |
- | pam_krb5 | + | |
- | pam_krb5afs.so | + | |
- | </ | + | |
- | + | ||
- | Les modules les plus importants sont : | + | |
- | + | ||
- | ^ Module ^ Description ^ | + | |
- | | pam_listfile.so | Ce module est utilisé pour consulter un fichier spécifique pour vérifier les authiorisations. Par exemple, le service ftp utilise ce module pour consulter le fichier **/ | + | |
- | | pam_access.so | Ce module est utilisé pour interdire l' | + | |
- | | pam_nologin.so | Ce module interdit les connexions d' | + | |
- | | pam_securetty.so | Ce module interdit des connexions de root à partir des périphériques tty qui ne sont pas listés dans le fichier **/ | + | |
- | | pam_cracklib.so | Ce module est utilisé pour vérifier le mot de passe d'un utilisateur | | + | |
- | | pam_unix.so | Ce module est utilisé pour vérifier les informations suivantes ; expire, last_change, | + | |
- | | pam_limits.so | Ce module implémente les limites des ressources détaillées dans le fichier **/ | + | |
- | | pam_echo.so | Ce module présente le contenu du fichier passé en argument à tout utilisateur lors de sa connexion. | | + | |
- | + | ||
- | + | ||
- | Chaque fichier dans /etc/pam.d contient les règles PAM utilisées pendant l' | + | |
- | + | ||
- | < | + | |
- | [root@centos6 ~]# cat / | + | |
- | #%PAM-1.0 | + | |
- | auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so | + | |
- | auth | + | |
- | account | + | |
- | account | + | |
- | password | + | |
- | # pam_selinux.so close should be the first session rule | + | |
- | session | + | |
- | session | + | |
- | session | + | |
- | # pam_selinux.so open should only be followed by sessions to be executed in the user context | + | |
- | session | + | |
- | session | + | |
- | session | + | |
- | session | + | |
- | -session | + | |
- | </ | + | |
- | + | ||
- | La première ligne de ce fichier est un commentaire qui spécifie que le fichier est conforme à la spécification PAM 1.0. | + | |
- | + | ||
- | Ce fichier, tout comme les autres, est ensuite structuré de la façon suivante : | + | |
- | + | ||
- | * Une module par ligne, | + | |
- | * Quatre champs séparés par un espace dans chaque règle dont les trois premières sont obligatoires. | + | |
- | + | ||
- | Le **premier champs** est le //**type de module**//. Il en existe quatre : | + | |
- | + | ||
- | ^ Type ^ Description ^ | + | |
- | | **auth** | Utilisé pour authentifier un utilisateur ou les pré-requis système ( par exemple / | + | |
- | | **account** | Utilisé pour vérifier si l' | + | |
- | | **password** | Utilisé pour vérifier si l' | + | |
- | | **session** | Utilisé pour gérer la session après l' | + | |
- | + | ||
- | Le **deuxième champs** est le // | + | |
- | + | ||
- | ^ Control-flag ^ Description ^ | + | |
- | | **required** | La réussite de ce module est indispensable. L' | + | |
- | | **requisite** | La réussite de ce module est indispensable. L' | + | |
- | | **sufficient** | La réussite de ce module est suffisant pour authoriser l' | + | |
- | | **optional** | La réussite ou l' | + | |
- | | **include** | Ce control-flag permet d' | + | |
- | + | ||
- | Le **troisième champs** stipule le // | + | |
- | + | ||
- | Le **quatrième champs** contient éventuellement les **arguments**. | + | |
- | + | ||
- | Ouvrez maintenant le fichier **system-auth** : | + | |
- | + | ||
- | < | + | |
- | [root@centos6 ~]# cat / | + | |
- | #%PAM-1.0 | + | |
- | # This file is auto-generated. | + | |
- | # User changes will be destroyed the next time authconfig is run. | + | |
- | auth required | + | |
- | auth sufficient | + | |
- | auth sufficient | + | |
- | auth requisite | + | |
- | auth required | + | |
- | + | ||
- | account | + | |
- | account | + | |
- | account | + | |
- | account | + | |
- | + | ||
- | password | + | |
- | password | + | |
- | password | + | |
- | + | ||
- | session | + | |
- | session | + | |
- | session | + | |
- | session | + | |
- | </ | + | |
- | + | ||
- | Dans ce fichier, si la règle **sufficient** réussit, les modules suivants ne sont pas invoqués. | + | |
- | + | ||
- | ===Utiliser des Mots de Passe Complexe=== | + | |
- | + | ||
- | La complexité des mots de passe est gérée par le module **pam_cracklib.so**. Afin de mettre en place une politique de mots de passe complexe, il convient de modifier la ligne : | + | |
- | + | ||
- | < | + | |
- | password | + | |
- | </ | + | |
- | + | ||
- | en | + | |
- | + | ||
- | < | + | |
- | password | + | |
- | </ | + | |
- | + | ||
- | Dans ce cas, le mot de passe doit être long de 8 caractères et doit contenir au moins un caractère minuscule, un caractère majuscule, deux chiffres et un caractère spécial. | + | |
- | + | ||
- | ===Bloquer un Compte après N Echecs de Connexion=== | + | |
- | + | ||
- | Le module PAM **pam_tally.so** permet de bloquer un compte après N échecs de connexion. Afin d' | + | |
- | + | ||
- | < | + | |
- | auth required pam_tally.so onerr=fail deny=3 unlock_time=300 | + | |
- | </ | + | |
- | + | ||
- | Dans ce cas, après trois tentatives infructueuses de connexion, le compte sera bloquer pendant 5 minutes. | + | |
- | + | ||
- | ===Configuration=== | + | |
- | + | ||
- | Certains modules de PAM peuvent être configurés grâce aux fichiers présents dans le répertoire **/ | + | |
- | + | ||
- | < | + | |
- | [root@centos6 ~]# ls / | + | |
- | access.conf | + | |
- | chroot.conf | + | |
- | console.apps | + | |
- | console.handlers | + | |
- | </ | + | |
- | + | ||
- | Parmi les fichiers cités on note ceux qui peuvent être utilisés pour configurer les modules suivants : | + | |
- | + | ||
- | ^ Fichier/// | + | |
- | | **access.conf** | Utilisé par le module pam_access.so | | + | |
- | | **// | + | |
- | | **console.perms** | Utilisé par le module pam_console.so | | + | |
- | | **// | + | |
- | | **group.conf** | Utilisés par le module pam_group.so | | + | |
- | | **limits.conf** | Utilisé par le module pam_limits.so | | + | |
- | | **pam_env.conf** | Utilisé par le module pam_env.so | | + | |
- | | **time.conf** | Utilisé par le module pam_time.so | | + | |
- | + | ||
- | <WRAP center round todo 50%> | + | |
- | **A faire** : Passez en revue chacun de ces fichiers. | + | |
- | </ | + | |
- | + | ||
- | Dernièrement, | + | |
- | + | ||
- | < | + | |
- | [root@centos6 ~]# cat / | + | |
- | #%PAM-1.0 | + | |
- | auth | + | |
- | account | + | |
- | password required | + | |
- | session | + | |
- | </ | + | |
- | + | ||
- | =====LAB #4 - PAM sous RHEL/CentOS 7===== | + | |
**PAM** ( //Pluggable Authentification Modules// ou Modules d' | **PAM** ( //Pluggable Authentification Modules// ou Modules d' | ||
Ligne 695: | Ligne 618: | ||
Dans ce fichier, si la règle **sufficient** réussit, les modules suivants ne sont pas invoqués. | Dans ce fichier, si la règle **sufficient** réussit, les modules suivants ne sont pas invoqués. | ||
- | |||
- | ===Utiliser des Mots de Passe Complexe=== | ||
- | |||
- | La complexité des mots de passe est gérée par le module **pam_pwquality.so**. Afin de mettre en place une politique de mots de passe complexe, il convient de modifier la ligne : | ||
- | |||
- | < | ||
- | password | ||
- | </ | ||
- | |||
- | en | ||
- | |||
- | < | ||
- | password | ||
- | </ | ||
- | |||
- | Dans ce cas, le mot de passe doit être long de 8 caractères et doit contenir au moins un caractère minuscule, un caractère majuscule, deux chiffres et un caractère spécial. | ||
===Bloquer un Compte après N Echecs de Connexion=== | ===Bloquer un Compte après N Echecs de Connexion=== | ||
Ligne 761: | Ligne 668: | ||
</ | </ | ||
- | =====LAB #5 - Mise en place du Système de Prévention d' | + | =====LAB #4 - Mise en place du Système de Prévention d' |
Fail2Ban est un **S**ystème de **P**révention d' | Fail2Ban est un **S**ystème de **P**révention d' | ||
Ligne 850: | Ligne 757: | ||
[root@centos7 ~]# cat / | [root@centos7 ~]# cat / | ||
[DEFAULT] | [DEFAULT] | ||
- | ignoreip = 127.0.0.1 | + | ignoreip = 127.0.0.1 |
findtime = 3600 | findtime = 3600 | ||
bantime = 86400 | bantime = 86400 | ||
Ligne 866: | Ligne 773: | ||
<WRAP center round important 50%> | <WRAP center round important 50%> | ||
- | **Important** - Notez que la définition des variables dans la section **[GLOBAL]** du fichier **/ | + | **Important** - Notez que la définition des variables dans la section **[DEFAULT]** du fichier **/ |
</ | </ | ||
Ligne 1504: | Ligne 1411: | ||
< | < | ||
<div align=" | <div align=" | ||
- | Copyright © 2020 Hugh Norris.< | + | Copyright © 2021 Hugh Norris.< |
</ | </ | ||
</ | </ |