Table des matières

sécurité

documentation


et un magazine en français : misc


bétonner


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.

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

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

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


certification

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


crypter un filesystem

Sous linux, 2 principales méthodes :

eric gerbier 2009/09/14 09:13