1. Noël Macé
Formateur et Consultant indépendant expert Unix et FOSS
http://www.noelmace.com
Sécurité
Sécurité système
Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
Linux LPIC1 – Comptia Linux+
noelmace.com
2. Plan
• Bonnes pratiques pour les mots de passe
• Limiter l'accès root
• Sudo
• Configuration de sudo
• Configuration de sudo : Exemple
• Limiter l'usage des ressources
• Configuration de pam_limits
• Commande ulimit
• Fichier nologin
• Localiser les fichiers avec SUID/SGID
Linux LPIC1 – Comptia Linux+
noelmace.com
3. Bonnes pratiques pour les mots de passe
• choisir de bons mots de passe
ce qui est de plus en plus difficile …
• changer les mot de passe régulièrement
cf commande chage
• utiliser les mot de passe shadow
• garder les mot de passe secrets
pas d'envoi par email ou autre, note (papier ou electronique), etc ...
• utiliser des protocoles d'authentification distante sécurisés
• attention au "shoulder surfing"
• UN mot de passe pour UN système
• attention au social engineering et au fishing
Linux LPIC1 – Comptia Linux+
noelmace.com
4. Choisir un bon "mot" de passe ?
xkcd.com - cc-by-nc
• Donc, de nos jours, il est possible de deviner les "mots" de passes :
du dictionnaire (rainbow table)
"courts" (bruteforce)
en "pass phrase" existants
•
ie. présent quelque part sur le net ou un livre
même avec remplacement des lettres classiques par des chiffres et
caractères spéciaux
ou même encore avec différentes astuces
•
exemple : écrire une pass phrase anglaise sur un clavier russe
bref … tout ce qu'un cerveau humain peu retenir plus ou moins simplement
• Et tout cela est encore plus simplifié si vous respectez une certaine
politique de sécurité accessible par l'attaquant
• Les mots de passes et pass phrases ne répondent donc plus (et
• FAUX !
depuis longtemps) aux problématiques de sécurité
cf le travail de Kevin Young
Linux LPIC1 – Comptia Linux+
noelmace.com
5. Limiter l'accès root
• ne jamais se connecter directement en tant que root
• limiter l'usage du compte root le plus possible
$ su -c "commande"
$ su -c "commande"
Linux LPIC1 – Comptia Linux+
noelmace.com
6. Sudo
• Permet de donner certains droits d'administration aux utilisateurs
• définis par des groupes de commandes
et des droits utilisateurs (comme root)
Linux LPIC1 – Comptia Linux+
noelmace.com
8. Alias
• Permettent de regrouper des éléments sous un identifiant unique
• User_Alias
• Runas_Alias
• Host_Alias
• Cmnd_Alias
Linux LPIC1 – Comptia Linux+
noelmace.com
9. Droits
• identifiant : nom de l'utilisateur ou groupe
%groupe : le groupe système groupe (un seul par ligne)
• (utilisateur : groupe) : utilisateur et groupe dont sudo donne les droits
(root : root) par défaut
ou (ALL)
options -u et -g de sudo
• commandes
priviliégier les chemins absolus
cf whereis
!cmd : refus de cette commande
Linux LPIC1 – Comptia Linux+
noelmace.com
10. Configuration de sudo : Exemple
## Storage
## Storage
Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted,
Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted,
/sbin/partprobe, /bin/mount, /bin/umount
/sbin/partprobe, /bin/mount, /bin/umount
## Processes
## Processes
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill,
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill,
/usr/bin/killall
/usr/bin/killall
%sys
%sys
%disk
%disk
%wheel
%wheel
ALL = STORAGE, PROCESSES
ALL = STORAGE, PROCESSES
ALL = STORAGE
ALL = STORAGE
ALL=(ALL) ALL
ALL=(ALL) ALL
## The user dgb may run /bin/ls, /bin/kill, and /usr/bin/lprm—but
## The user dgb may run /bin/ls, /bin/kill, and /usr/bin/lprm—but
## only as operator. E.g.,
## only as operator. E.g.,
## $ sudo -u operator /bin/ls
## $ sudo -u operator /bin/ls
dgb
boulder = (operator) /bin/ls, (root) /bin/kill, /usr/bin/lprm
dgb
boulder = (operator) /bin/ls, (root) /bin/kill, /usr/bin/lprm
alan
alan
ALL = (root, bin : operator, system) ALL
ALL = (root, bin : operator, system) ALL
Linux LPIC1 – Comptia Linux+
noelmace.com
11. Limiter l'usage des ressources
• pam_limits
intégré par défaut dans la plupart des distributions
• ulimits : pour les limites du bash
Linux LPIC1 – Comptia Linux+
noelmace.com
12. Configuration de pam_limits
• /etc/security/limits.conf
domain type item value
domain type item value
• Exemple
@limited hard cpu 2
@limited hard cpu 2
Linux LPIC1 – Comptia Linux+
noelmace.com
13. Configuration de pam_limits
• domain : entité pour laquelle les limites s'appliquent
nom d'utilisateur
nom de groupe (@groupname)
• item : quel type d'item est affecté (généralement en Ko)
tout le monde (*)
core : taille des "core files"
•
dump de l'état d'un processus en mémoire lors d'un
arrêt brutal
•
pour debugging
• type : hard ou soft limit
hard : ne peu être dépassée
•
mise en place par l'admin
- : hard ET soft
fsize : taille des fichiers créés par l'utilisateur
nofile : nombre de fichiers ouverts
rss : resident set size max
•
soft : peu être dépassée temporairement
data : taille des données programme
portion de la mémoire processus stocké en mémoire
maxlogins : nbr max de logins simultanés
Linux LPIC1 – Comptia Linux+
nproc : nombre de processus concurrents
• value : valeur à appliquer
priority : process priority
cpu : temps cpu d'un seul processus, en minutes
noelmace.com
14. Commande ulimit
• commande interne bash
n'affecte que bash et les programmes qu'il lance
•
très limité
- peu être contourné (GUI Login, SSH dans certains cas)
•
prévenir les problèmes accidentels, non intentionnels
# ulimit [options [limit]]
# ulimit [options [limit]]
Linux LPIC1 – Comptia Linux+
noelmace.com
15. Options de ulimits
• fichiers
-c : limite la taille des core dumps
-f : taille des fichiers créés par le shell
-n : nombre de descripteurs de fichiers ouverts
• stockage des variables locales et des adresses de
retour de fonctions
n'est pas pris en compte par la plupart des systèmes
-m : rss max
-d : taille max en mémoire des données d'un programme
•
pile + tas
-l : taille max pouvant être vérouillée en mémoire
• processus
-u : nombre de processus qu'un utilisateur peu lancer
-t : temps CPU total (en sec)
• limite
-H : hard limit
-S : soft limit
• mémoire
-v : taille de mémoire virtuelle disponible pour le shell
-s : taille max de la pile
Linux LPIC1 – Comptia Linux+
• -a : afficher les limites actuelles
affiche également toutes les options correspondantes
noelmace.com
16. Fichier nologin
• /etc/nologin
• interdit la connexion à tout autre utilisateur que root
pour maintenance
• Simple message
Authentification désactivée jusqu'à 14h pour maintenance.
Authentification désactivée jusqu'à 14h pour maintenance.
Linux LPIC1 – Comptia Linux+
noelmace.com
17. Localiser les fichiers avec SUID/SGID
• cf. find
• Exemple
# find / -perm +6000 -type f
# find / -perm +6000 -type f
Linux LPIC1 – Comptia Linux+
noelmace.com
18. Ce qu’on a couvert
• Sujet 110.1 : Effectuer des tâches d'administration de sécurité
Audit du système pour retrouver les fichiers ayant les permissions suid/guid
positionnées. (find)
Positionner et changer les mots de passe des utilisateurs ainsi que les informations de
validité du compte. (chage, passwd, usermod)
Imposer les limites aux utilisateurs en terme de l'utilisation de la mémoire et des
processus. (ulimit)
Configuration et utilisation basique de "sudo" (/etc/sudoers, sudo, su)
• Sujet 110.2 : Configurer la sécurité du système
Comprendre et savoir utiliser les mots de passe shadow
(/etc/nologin, /etc/passwd/, /etc/shadow)
Linux LPIC1 – Comptia Linux+
noelmace.com
19. Licence
Ce(tte) œuvre (y compris ses illustrations, sauf mention explicite) est mise à disposition selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ ou écrivez à :
Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
Vous êtes libre de :
partager — reproduire, distribuer et communiquer cette œuvre
remixer — adapter l’œuvre
Selon les conditions suivantes :
Attribution — Vous devez clairement indiquer que ce document, ou tout document dérivé de celui, est (issu de) l’œuvre
originale de Noël Macé (noelmace.com) (sans suggérer qu'il vous approuve, vous ou votre utilisation de l’œuvre, à moins
d'en demander expressément la permission).
Pas d’Utilisation Commerciale — Vous n’avez pas le droit d’utiliser cette œuvre à des fins commerciales (ie. l'intention
première ou l'objectif d'obtenir un avantage commercial ou une compensation financière privée). Pour obtenir ce droit, une
autorisation explicite de l'auteur est requise.
Partage dans les Mêmes Conditions — Si vous modifiez, transformez ou adaptez cette œuvre, vous n’avez le droit de
distribuer votre création que sous une licence identique ou similaire à celle-ci.
Pour toute demande de collaboration, d'utilisation commerciale ou de publication de ce support ou d'un dérivé de celui-ci sous une
licence incompatible, contacter l'auteur via les contacts indiqués sur le site http://www.noelmace.com. Vous êtes par ailleurs
vivement encouragé (sans obligation légale) à communiquer avec celui-ci si vous réalisez une œuvre dérivée ou toute amélioration
de ce support.
Linux LPIC1 – Comptia Linux+
noelmace.com