====== sécurité ====== ====== documentation ====== ---- * le Security-HOWTO * [[http://www.linuxsecurity.com/docs/LDP/Security-Quickstart-Redhat-HOWTO/|Security-Quickstart-Redhat-HOWTO]] * [[http://www.seifried.org/security/|linux administration security guide]] * [[http://www.linuxsecurity.com/|linux sécurity]] * le [[news://fr.comp.security|forum]] sécurite (fr.comp.security) * la [[http://michel.arboi.free.fr/secu/FAQNOPI/index.html|faq]] du forum sécurité * [[http://all.net/|Strategic Security Intelligence]]: site de Fred Cohen * [[http://www.sans.org|sans institute]] * [[http://www.incidents.org/|incidents]] * [[http://www.insecure.org/|insecure]] * [[http://www.iana.org/assignments/port-numbers|port numbers]] : une liste des ports utilises par les logiciels * [[http://www.doshelp.com/trojanports.htm|trojan port]] une liste des ports dangereux et un magazine en français : [[http://www.miscmag.com/|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|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|informe]] des failles de sécurité * garder ses logiciels a jours des patch de sécurité(voir [[gestion_logicielle.html|gestion logicielle]]) * utiliser [[#ssh|ssh]] ou openssh pour remplacer les remote-commandes, telnet, ftp ... * appliquer [[#bastille-linux|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 [[admin-tips.html#securisation|démarrage]] ===== fermer les ports ===== - utiliser [[#nmap|nmap]] pour détecter les ports ouverts - 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 : * [[http://www.cert.org/|cert]] * [[http://linuxsecurity.com/|linuxsecurity]] * [[http://www.securityfocus.com/archive/1/|bugtraq]] ou de s'abonner a des flux rss d'annonces des nouveautes logicielles : * [[http://www.freshmeat.net/|freshmeat]] ===== 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 ==== * [[http://www.samag.com/documents/s=1160/sam0010a/0010a.htm|Installing and Configuring OpenSSH]] * [[http://www-106.ibm.com/developerworks/security/library/l-keyc.html|OpenSSH key management]] : les docs ibm - supprimer le service sshd des démon lances : //chkconfig sshd off// - rajouter dans ///etc/inetd.conf// la ligne : //ssh stream tcp nowait root /usr/sbin/tcpd /usr/sbin/sshd -i// - modifier le fichier ///etc/ssh/sshd_config// : * mettre IgnoreRhosts no * mettre RhostsRSAAuthentication yes - pour chaque user : - positionner un fichier .shosts (droits 600) contenant des lignes "machine compte" (syntaxe identique au .rhosts) - lancer la commande ssh-keygen - transferer la clef publique (identity.pub) et la rajouter au fichier ~/.ssh/authorized_keys (droits 600) - 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 ==== [[ftp://ftp.ntua.gr/pub/crypt/mirrors/utopia.hacktic.nl/linux/redhat/unsorted/|ssh]] (fourni par tuxfinder)\\ [[http://www.openssh.com/portable.html|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 : [[http://bastille-linux.sourceforge.net|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 [[controleintegrite|article]] plus complet est consacré à ce sujet. ===== controle des logs ===== en utilisant [[http://logcheck.org/|logcheck]] : on peut "sortir" des logs les évenements anormaux ===== analyse des ports ===== [[http://www.psionic.com/abacus/portsentry/|portsentry]] permet de détecter les scan de ports ===== ids ===== ids = intrusion detection system * [[http://www.snort.org/|snort]] : le plus utilisé, assez complet et complexe * [[http://www.prelude-ids.org/|prelude]] : le petit nouveau qui monte ... * [[ http://www.ossec.net/ | ossec ]] : un autre outil libre qui n'a pas l'air mal pour faciliter l'exploitation de snort, on peut utiliser : * [[http://fwlogwatch.inside-security.de/|fwlogwatch]] : un outil d'analyse et de reaction sur iptables/snort * [[http://jeremy.chartier.free.fr/snortalog/|snortalog]] : idem ===== 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 ....) : [[http://www.fail2ban.org|url de fail2ban]] ===== recherche de rootkit ===== * [[http://www.chkrootkit.org/|chrootkit]] : le plus connu * [[http://www.rootkit.nl/|Rootkit Hunter]] : le "petit nouveau" qui monte * [[http://www.hzeroseven.org/projects/aexpl/|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 : * [[http://all.net/dtk/dtk.html|deception toolkit]] : très élaboré : on peut simuler de façon configurable un protocole * [[http://project.honeynet.org/|honeynet]] ===== 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 [[mac|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 ===== * [[http://usat.sourceforge.net/|lsat]] (linux security auditing tool) * [[http://savannah.nongnu.org/files/?group=tiger|tiger]] * [[http://www.wwdsi.com/saint/|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 [[http://www.keyserver.net/|keyserver]] ---- ====== crypter un filesystem ====== Sous linux, 2 principales méthodes : * [[http://loop-aes.sourceforge.net/|loop-aes]] * [[http://www.kerneli.org/|kerneli]] --- //[[eric.gerbier@free.fr|eric gerbier]] 2009/09/14 09:13// {{tag>securite}}