User Tools

Site Tools


informatique:linux:securite_sous_linux
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Previous revision
informatique:linux:securite_sous_linux [2013/10/14 20:44] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +{{tag>sécurité linux}}
  
 +======Sécurité sous Linux======
 +//(Résumé d'une partie du bouquin **Sécurité sous Linux** de Aron Hsiao, ed. Campus Press)//
 +
 +
 +=====Configuration de LILO=====
 +
 +Lilo (Linux LOader) est le programme qui lance l'image de Linux, et qui se place dans le MBR.
 +
 +  * au prompt : ''LILO boot: linux init=/bin/bash'' permet de lancer le programme **bash** à la place d'**init**, et donc de donner un sheel root au pécore moyen de base sans authentification aucune.
 +
 +  * le fichier de config est **/etc/lilo.conf** : il contient une section globale (en premier) et une 2nde section contenant les images à loader (qui commence au mot clé ''image='' ou ''other='').
 +
 +  * lilo peut demander un mot de passe pour se charger grâce au mot-clé **password**. S'il est placé dans la section globale il sera demander pour loader n'importe quelle image ; s'il est placé après il sera demandé pour loader l'image qu'il suit.
 +''password= "A9dl00!"'' le mot de passe est en clair dans le fichier de config
 +
 +  * **restricted** permet à une image protégée par mot de passe d'être amorcée sans mot de passe à moins que des arguments en ligne de commande ne soient envoyés au noyau. A l'instar de //password//, **restricted** peut se mettre dans les 2 sections pour avoir une portée différente.
 +
 +  * **prompt** permet de proposer une invite pour passer des paramètres au noyau (''LILO boot: '')
 +
 +  * **timeout** permet de définir le temps d'attente avant un boot automatique sur l'image par défaut
 +
 +  * pour prendre en compte les modification, ou recharger lilo dans le MBR : ''# /sbin/lilo''
 +
 +  * sécuriser le fichier de config pour interdire la lecture du fichier (souvenons-nous que le mot de passe est en clair dedans !) :
 +
 +  # chmod 600 /etc/lilo.conf
 +
 +
 +=====Les niveaux d'exécution=====
 +
 +//Debian GNU/Linux utilise des runlevels (runlevels) légèrement différents de ceux-ci, qui sont documentés dans **/etc/inittab**//
 +  * 0 : arrêt système, tous les processus sont arrêtés
 +  * 1 : mode mono-utilisateur (argument ''single'' au boot). Aucun service n'est lancé sauf le réseau. Seul root peut se loggué, et uniquement en console.
 +  * 2 : mode multi-utilisateur minimal. Seuls quelques services sont démarrés.
 +  * 3 : mode multi-utilisateur complet (normal).
 +  * 4 : //non utilisé ou spécifié par l'utilisateur//
 +  * 5 : mode multi-utilisateur avec serveur X (système amorcé en X11R6)
 +  * 6 : reboot = tous les processus sont arrêtés, la machine redémarre
 +
 +  * **/etc/securetty** contient le liste des terminaux qui acceptent un login root
 +  * **$HOME/.bash_logout** est lancé lorsqu'un utilisateur se déloggue. Ca peut être interessant de rajouter ''/usr/bin/clear'' à la fin.
 +Ce fichier est issu de **/etc/skel/.bash_logout** lors de la création du compte utilisateur.
 +  * **/etc/shells** contient le liste des shells proposés à l'utilisateur quand il fait la commande ''chsh''
 +
 +
 +=====Le fichier /etc/inittab=====
 +
 +Configure le service //init//, à l'origine de tous les autres processus lancéssur le système
 +  * on règle le runlevel par défaut au démarrage
 +
 +  id:5:initdefault: //on démarre ici en niveau d'exécution 5 (graphique)
 +
 +  * on peut désactiver la combinaison de touches ''Ctrl+Alt+Suppr'' qui sert à redémarrer en commentant cette ligne :
 +
 +  ca:12345:ctrlaltdel:/bin/shutdown -r now
 +
 +  * le fichier contient des lignes genre :
 +
 +  l0:0:wait:/etc/init.d/rc 0
 +  l1:1:wait:/etc/init.d/rc 1
 +  l2:2:wait:/etc/init.d/rc 2
 +  (..)
 +
 +Cela indique les scripts lancés pour chaque //runlevel// ainsi que les paramètres envoyés.
 +Par ex. le dossier **/etc/rc3.d** contient des liens symboliques vers le fichiers de scripts qui seront chargés lors d'un runlevel 3.
 +
 +  * activer les **password shadow** : les mots de passe de chaque utilisateur ne sont plus stockés dans **/etc/passwd** (lisible pour tous) mais sont hashés (md5 le plus souvent) dans **/etc/shadow** qui lui n'est lisible que par root.
 +
 +
 +=====Protections réseau=====
 +
 +//D'après http://www.dedibox-news.com/doku.php?id=distrib:debian:securiser_sa_debian //
 +
 +Se protéger contre les //Smurf Attack// :
 +  # echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
 +
 +Éviter le //source routing// :
 +  # echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
 +
 +Se protéger des attaques de type //Syn Flood// :
 +  # echo "1" > /proc/sys/net/ipv4/tcp_syncookies
 +  # echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog
 +  # echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
 +
 +Désactivez l’autorisation des redirections ICMP:
 +  # echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
 +  # echo "0" > /proc/sys/net/ipv4/conf/all/secure_redirects
 +
 +Éviter le log des paquets ICMP erroné:
 +  # echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
 +
 +Active le logging des paquets aux adresses sources falsifiées ou non routables :
 +  # echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
 +
 +
 +=====Interdire l'exécution sur /tmp=====
 +
 +Ça peut être une faille de sécurité de laisser le droit d'exécution sur ''/tmp'' ; cependant certains logiciels peuvent utiliser cet espace pour déposer des fichiers temporaires, de session ou autre (ex : mySQL). Du coup il faut faire attention aux dommages collatéraux liés à cette manipulation.
 +
 +L'idée c'est de le monter avec des droits restreints : pour cela, il faut monter la partition ainsi (dans la ''fstab'') :
 +  /dev/sda3   /tmp    ext3   noexec,nosuid        2
 +
 +Si vous n'avez pas de partition spécifique pour ''/tmp'', on peut l'émuler via un fichier :
 +  # on créer un fichier de 40 Mo
 +  cd /root
 +  dd if=/dev/zero of=/root/tmpMnt bs=1024 count=40000
 +  mkfs.ext3 -F /root/tmpMnt
 +  
 +  # on le monte dans /tmp
 +  mv /tmp /tmp.backup
 +  mkdir /tmp
 +  mount -o loop,noexec,nosuid,rw /root/tmpMnt /tmp
 +  chmod 0777 /tmp
 +  
 +  # on modifie la fstab comme vu plus haut
 +  if ! grep -qai tmpMnt /etc/fstab ; then 
 +     echo "/root/tmpMnt /tmp ext3 loop,noexec,nosuid,rw  0 0" >> /etc/fstab
 +  fi
 +  
 +  # on monte toutes les entrées de la fstab (dont /tmp)
 +  mount -a
 +  
 +  # vérification que ça marche
 +  cp /bin/ls /tmp/
 +  /tmp/ls
 +
 +
 +=====Liens=====
 +
 +  * [[http://www.cert.org/ CERT]]
 +  * [[http://www.cri.uhp-nancy.fr/secinfo/index.php?id_rub=7 CERT Renater]]
informatique/linux/securite_sous_linux.txt · Last modified: 2013/10/14 20:44 by 127.0.0.1