Sujet 110 : Sécurité
110.1 Effectuer des tâches concernant la sécurité au niveau
utilisateurs (Weight 3)
110.2 Configurer la sécurité du système (Weight 3)
110.3 Sécuriser des échanges réseau avec le cryptage (Weight 3)
ziedbouziri.com
1
Sécurité des utilisateurs
Vérifier les droits SUID et SGID : Supprimer les fichiers dangereux find / -user root -perm -4000 -print | /bin/mail -s "Setuid root files" root
Vérifier les packages installés : rpm -Va
Expiration des comptes et des mots de passe : chage
Interdire la connexion : /bin/false, /etc/nologin, /etc/shadow, passwd, usermod.
Les droits SUDO
– Fichiers de configuration : /etc/sudoers – Edition : visudo
ziedbouziri.com
2
Limites des utilisateurs (1)
Agir sur l'environnement du shell et des processus qu'il contrôle :
● Taille de fichier, nombre de fichiers ouverts, nombre de processus, la taille de
mémoire max que l'utilisateur peut occuper etc ...
● Limite Soft et Limite Hard.
● Limite Hard est définie par le super-utilisateur pour un utilisateur ou un groupe
d'utilisateurs et ne peut pas être dépassée.
● Limite Soft est également définie par le super-utilisateur, mais elle peut être
remplacée temporairement par un utilisateur en cas de besoin avec la commande ulimit.
● Limite Soft et Limite Hard sont définies /etc/security/limits.conf
● Valeurs par défaut : ulimit -a
●
ziedbouziri.com
3
Limites des utilisateurs (2)
Root définit la limite Soft et Hard pour la taille des fichiers que peut créer
l'utilisateur Salah : /etc/security/limits.conf salah hard fsize 204800
salah soft fsize 102400
L'utilisateur salah peut vérifier ses limites : ulimit -a
ziedbouziri.com
4
Ports ouverts
Liste des ports ouverts en local : lsof, netstat
Publicité
Outil d'audit des ports ouverts à distance : nmap # nmap -A machine
Starting Nmap 4.20 ( http://insecure.org ) at 2008-05-22 19:54 CEST
Interesting ports on machine.mondomaine.com (192.168.1.25):
Not shown: 1676 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.0.5
22/tcp open ssh OpenSSH 4.3p2 Debian 9 (protocol 2.0)
25/tcp open smtp Postfix smtpd
...
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.14 - 2.6.17
....
ziedbouziri.com
5
Contrôler les services
Trou de sécurité dans un service bien particulier,
Mauvais paramètrage d'un service :
– Votre MTA devient un «open relay » utilisé par les spammers, open relay blacklists
– sshd acceptant les connexions root de l'Internet
Désactiver les services que vous n'avez pas besoin :
– Service standalone : chkconfig , update-rc.d
– Service géré par le super démon : inetd / xinetd
ziedbouziri.com
6
Super démon inetd
Fichier de configuration /etc/inetd.conf # <service_name> <sock_type> <proto> <flags> <user> <server_path>
<args>
To re-read this file after changes, just do a ‘killall -HUP inetd’
#
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
ziedbouziri.com
7
Super démon xinetd
Intégrer les fonction du démon tcpd et rendre plus lisible et flexible la
configuration.
Fonctionnalités de gestion des log
Fichier de configuration globale : /etc/xinetd.conf :
Répertoire contenant les fichiers spécifiques aux services : /etc/xinetd.d/ defaults
Publicité
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
ziedbouziri.com
8
tcp_wrappers
tcp_wrappers permet la vérification des accès à un service réseau.
Le binaire du service est compilé avec la librairie statique libwrap.
La vérification des accès à un service réseau a lieu en trois étapes :
–
–
–
l’accès est-il explicitement autorisé ?
sinon, l’accès est-il explicitement interdit ?
sinon, par défaut, l’accès est autorisé.
Fichiers de configuration : /etc/hosts.allow et /etc/hosts.deny.
Syntaxe :
– daemon_list : client_list
ziedbouziri.com
9
Secure Shell (SSH)
Remplacer les services de connexion à distance vulnérables : ftp, rlogin, rcp, et telnet.
OpenSSH est une version LIBRE du protocole SSH développé par OpenBSD
Boite d'outils : ssh, scp, sftp, ssh-keygen, ssh-add, ssh-agent ...
Version 1
– Se limiter à une simple fonctionnalité de connectivité à distance pour le shell.
– Une faille permettant à un pirate d'insérer des données dans le flux chiffré
Version 2
– Sécurisation de n’importe quel protocole applicatif et ceci grâce à ses mécanismes de « port
forwarding » et de « tunneling ».
–
sftp
– Normalisée en 2006 à l’IETF. RFC 4250 à 4256
ziedbouziri.com
Publicité
10
Installation
Programme serveur : sshd, port 22
Programmes client : ssh, scp, sftp,
Boite d'outils ssh-keygen, ssh-agent
Fichier de configuration du serveur sshd_config
Fichier de configuration du client ssh_config
Couple de clés de la machine
– ssh_host_rsa_key et ssh_host_rsa_key.pub
– ssh_host_dsa_key et ssh_host_dsa_key.pub
– ssh_host_key (ssh version 1)
Known hosts : ~/.ssh/known_hosts et /etc/ssh/ssh_known_hosts
ziedbouziri.com
11
GPG (Gnu Privacy Guard)
Clone libre de PGP (Pretty Good Privacy).
ali
Générer le couple de clés : ali@bagdad:~$ gpg --gen-key
Exporter la clé publique : ali@bagdad:~$ gpg --export aloulou > gpg.pub
Salah
Importer la clé publique : salah@bagdad:~$ gpg --import gpg.pub
Gérer le trousseau des clés : gpg --list-keys
Crypter : gpg --out cryptogramme --recipient aloulou --armor --encrypt message
ali
Décrypter : ali@bagdad:~$ gpg --out lisible --decrypt cryptogramme
ziedbouziri.com
12
GPG : Signature numérique
ali
Signer : ali@bagdad:~$ gpg --clearsign lisible
salah
Vérifier Signature : salah@bagdad:~$ gpg --verify lisible.asc
ziedbouziri.com
13