Outils pour utilisateurs

Outils du site


securite

sécurité

documentation


et un magazine en français : misc


bétonner


  • n'installer que des logiciels de source sure (c'est à dire des packages signés)
  • réduire les accès par l'utilisation d'un firewall
  • limiter le nombre des services lances au démarrage(chkconfig)
  • limiter les nombre des services lances via inetd/xinetd
  • rendre moins bavards les services : supprimer bannières, versions …
  • réduire les accès aux services via les tcp-wrappers
  • utiliser les shadow password (pwconv, grpconv) pour cacher les mots de passes cryptes
  • travailler le moins possible sur le user root
  • se tenir informe des failles de sécurité
  • garder ses logiciels a jours des patch de sécurité(voir gestion logicielle)
  • utiliser ssh ou openssh pour remplacer les remote-commandes, telnet, ftp …
  • appliquer bastille-linux a sa configuration
  • monter ses file-systemes avec des options restrictives: par exemple
    • /tmp : noexec (sur debian, pb avec certains scripts de paquetages), nosuid, nodev (sur debian pb avec loadndiswrapper)
    • /home : nosuid, nodev
    • /var : nosuid, nodev (pas de noexec sur debian a cause des scripts de pre/post-installation)
  • réduire les possibilités d'accès root au démarrage

fermer les ports

  1. utiliser nmap pour détecter les ports ouverts
  2. avec la commande fuser -v -n tcp num_port pour identifier le programme qui utilise un port

se tenir informé

pourquoi

La licence GPL impose la disponibilité des codes sources, ce qui “facilite” la relecture et le debugage des programmes. Les Bugs sont donc plus vite trouvées et corrigées
Par contre, les rapports de bugs étant publics, il est plus facile à un pirate d'exploiter les failles de sécurité …
Il est donc indispensable de suivre les évolutions logicielles

comment ?

il faut pour cela s'abonner a des listes de diffusion :

ou de s'abonner a des flux rss d'annonces des nouveautes logicielles :

ssh

le problème

les commandes rlogin, rcp, rsh ne sont pas sures (les autres non plus) : au pire les mots de passe circulent en clair sur le réseau, au mieux, il est facile de tromper l'identification de l'usager : ce sont de gros trous de sécurités.

les solutions

c'est d'utiliser un soft qui crypte les sessions.

  • openssh : est un clone libre de ssh (du monde bsd), utiliser imperativement le protocole version 2

configuration

  1. supprimer le service sshd des démon lances : chkconfig sshd off
  2. rajouter dans /etc/inetd.conf la ligne : ssh stream tcp nowait root /usr/sbin/tcpd /usr/sbin/sshd -i
  3. modifier le fichier /etc/ssh/sshd_config :
    • mettre IgnoreRhosts no
    • mettre RhostsRSAAuthentication yes
  4. pour chaque user :
    1. positionner un fichier .shosts (droits 600) contenant des lignes “machine compte” (syntaxe identique au .rhosts)
    2. lancer la commande ssh-keygen
    3. transferer la clef publique (identity.pub) et la rajouter au fichier ~/.ssh/authorized_keys (droits 600)
    4. ajouter soit dans le fichier /etc/ssh/ssh_known_hosts (global) soit dans ~/.ssh/known_hosts la clef de la machine source : faire un slogin inverse pour cela

download

ssh (fourni par tuxfinder)
site central openssh

astuces

remplacer ses fichiers .rhosts par des .shosts (mv .rhosts .shosts; chmod 600 .shosts
ne pas oublier dans un second temps de modifier /etc/inetd.conf pour devalider totalement les remotes commandes.

bastille-linux

il existe un projet pour sécuriser les distributions Redhat/Mandriva : bastille-linux
c'est une série de scripts perls interactifs.


détecter les intrusions


controle d'intégrité

Pour vérifier que son systèmes n'a pas été modifie a son insu, il faut comparer à intervalles réguliers les signatures des fichiers “sensibles” avec une base. Un article plus complet est consacré à ce sujet.

controle des logs

en utilisant logcheck : on peut “sortir” des logs les évenements anormaux

analyse des ports

portsentry permet de détecter les scan de ports

ids

ids = intrusion detection system

  • snort : le plus utilisé, assez complet et complexe
  • prelude : le petit nouveau qui monte …
  • ossec : un autre outil libre qui n'a pas l'air mal

pour faciliter l'exploitation de snort, on peut utiliser :

fail2ban

le principe est simple : analyse en temps réel ( appel par fam/gamin) des log et mise en quarantaine (provisoire) reseau (firewall) des adresses IP trouvées. cela permet par exemple d'empecher toute attaque en force brute. on peut proteger tout service (ssh, apache ….) : url de fail2ban

recherche de rootkit

  • chrootkit : le plus connu
  • Rootkit Hunter : le “petit nouveau” qui monte
  • AntiExploit : utilise un module noyau (dazuko) avec un démon en machine pour une surveillance permanente

installer un "pot de miel" (honeypot)

le principe est d'installer un “faux” serveur sur un port connu (ftp par exemple) et de logguer tout ce qui essaie de s'y connecter :

installer un logiciel de controle d'acces

le principe est d'avoir des droits d'acces aux fichiers plus fins que les droits unix. par exemple, un serveur apache doit pouvoir accéder a certains fichiers de configuration sous /etc, mais pas à /etc/shadow

une page plus complète lui est consacrée


tester la sécurité


on va utiliser des méthodes un peu semblables a celles des pirates :

nmap

c'est un scanner de ports : il permet de savoir ce qui est ouvert sur une machine

nessus

pour détecter les failles de sécurité

logiciels d'audit

  • lsat (linux security auditing tool)
  • saint : un successeur de SATAN

certification

la plupart des certifications se font avec un mécanisme clef publique/clef privée.
c'est utilise notamment dans :

  • ssh : connexion sécurisée
  • gpg : signature de packages, de mails; on peut s'enregistrer sur keyserver

crypter un filesystem

Sous linux, 2 principales méthodes :

eric gerbier 2009/09/14 09:13

securite.txt · Dernière modification: 2012/02/05 16:43 (modification externe)