===== Monitoring, sécurité, graphes, clusters, etc ===== ============================================ Top 100 Network Security Tools http://sectools.org/index.html Nagios http://www.nagios.org/ Oreon/Centreon www.oreon-project.org/ GroudWork http://www.groundworkopensource.com/community/ munin http://munin.projects.linpro.no/ MRTG RRDtool http://oss.oetiker.ch/rrdtool/ Sentinix http://sentinix.tigerteam.se/ OpenMosix http://openmosix.sourceforge.net http://openmosix.sourceforge.net/instant_openmosix_clusters.html nessus www.nessus.org/ http://mdvmondelinux.s3ii.info/Auditer-la-securite-de-son-reseau Sécurité ======== http://doc.mandrivalinux.com/MandrakeLinux/90c/fr/Server_Conf_Guide.html/security.html Hardening a Linux Installation : http://www.cromwell-intl.com/SECURITY/linux-hardening.html kdewallet --------- Configuration : K > System > Configuration > KDE > Security & Privacy > KDE Wallet ou $ kcontrol > Security & Privacy > KDE Wallet Gestion des ACL --------------- http://www.linuxfrench.net/article.php3?id_article=1463 setfacl getfacl gtk-acl Commandes simples ----------------- w Utilisateurs "logués", ce qu'il font, etc. who Utilisateurs "logués" rwho -a ? à revoir, ne semble pas fonctionner finger nom_utilisateur Infos concernant un utilisateur last |less Liste des derniers utilisateurs "logués" Nb : une connexion ftp anonymous laisse une entrée du type : ftp ftpd1385 81.184.29.30.dyn Thu May 10:14 - 10:21 (00:07) adresse source temps de connexion Comparer la liste des fichiers (ou répertoires) cachés à différents temps: # find / -type f -name ".*" -ls > hiddenFiles-`date +%Y-%m-%d` # find / -type d -name ".*" -ls> hiddenDir-`date +%Y-%m-%d` msec ---- http://www.mandrakesecure.net/en/docs/msec.php http://club.mandriva.com/xwiki/bin/KB/SecureSmsec man msec Configuration globale ou fine de la sécurité en interface graphique ------------------------------------------------------------------- # draksec ou encore : # mcc (Mandrake control center, onglet Security) drakperm -------- Pour connaître le niveau (msec) de sécurité actuel Pour voir et fixer les permissions Changer de niveau de sécurité : ----------------------------- Sous root, pour passer au niveau 4, par exemple : msec 4 Configuration : voir le fichier ------------------------------- /var/lib/msec/security.conf Outils divers -------------- nmap hping tcpdump IDS : snort psad Rejet des "script kiddies" ------------------------- Interdire la connexion à partir d'une adresse IP en cas de tentatives infructueuses répétées. Voir : - Port knocking http://www.linuxjournal.com/article/6811 http://www.portknocking.org/ - fail2ban - Blacklister les Ips indésirables : http://www.frit.net/linux/black/ - denyhost : http://tdot.blog-city.com/securing_ssh_with_denyhosts.htm - BlockHosts : http://www.aczoom.com/cms/blockhosts/ - crackblock : http://www.zipcon.net/~sirius/crackblock.html Détection des scans ------------------- scanlogd scandetd Pam --- http://www.linux-kheops.com/doc/cours/jgourdin/outils-tcp-ip/Linux-pam.html DNS : trou de sécurité ====================== http://ftp.traduc.org/doc-vf/gazette-linux/html/2008/153/lg153-C.html DNS gratuit ==================== www.opendns.com/ Voir aussi http://en.wikipedia.org/wiki/OpenDNS Liste des ports (IANA) ====================== cat /etc/services nmap ==== (pour une interface graphique : # urpmi nmap-frontend puis $ nmapfe ) Détecter les PCs on-line : $ nmap -sP 192.168.0.* $ nmap -sP 192.168.0.*/25 (scanne les 126 premières addresses) $ nmap -sP 192.168.0.{50..100} (scanne de 192.168.0.50 à 192.168.0.100) Scan des ports d'une machine ---------------------------- Lister les ports ouverts Exemple : nmap localhost Attention : 1 - Par défaut nmap ne scanne que les ports 1 à 10024 Pour scanner tous les ports possibles : nmap -p 1-65535 localhost nmap -sU -p 1-65535 localhost 2 - nmap localhost ne montre que les ports ouverts sur l'interface 127.0.0.1 (loopback) ce qui n'est pas représentatif des ports réellement accessibles Tests pour savoir si un serveur n'est pas compromis par un rootkit ================================================================== cf. A la recherche de Rootkits http://www.viginews.com/affichage_article.php?id=822 http://www.omninerd.com/2005/11/22/articles/43 Chkrootkit ---------- # urpmi chkrootkit chkrootkit vérification complète du système # cd /usr/lib/chkrootkit/ # ./ifpromisc pour vérifier que l'interface n'est pas en mode "promiscuous" # ./chkproc pour détecter un processus caché rkhunter -------- netstat ------- Keep an Eye on Your Linux Systems with Netstat: Using Netstat For Surveillance And Troubleshooting, http://www.linuxplanet.com/linuxplanet/tutorials/5633/1/ netstat -vtlnp -v verbose -l (--listening) affiche uniquement les sockets en écoute -n (--numeric) addresse du socket en numérique (sinon affichage du nom canonique) -p (--program) affiche le PID et le nom du programme associé au socket netstat -taup -a (--all) affiche tous les sockets (en écoute ou non) -t --tcp -u --udp netstat -vatn netstat -vt lsof ---- lsof -i liste les connexions internet ouvertes. lsof -i :80 liste les connexions internet ouvertes sur le port 80 On peux ainsi vérifier quels ports sont ouverts et voir si certains ports n'ont pas derrière eux un programme suspect. COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME httpd2 10738 apache 4u IPv6 22984 TCP *:http (LISTEN) httpd2 10739 apache 3u IPv6 22981 TCP *:https (LISTEN) Dans ce cas par exemple le programme httpd2 avec comme user apache ecoute en TCP sur le port 80 (http) et 443 (https), ce qui est normal lsof -i permet de détecter des processus suspects éventuellement attachés à des ports connus (80 par exemple). Pour les arrêter : - soit chkconfig off, ce qui évite que soit relancé au démarrage mcc -> System -> Services permet de faire la même chose. - soit trouver la commande ps aux |grep et tuer le processu correspondant kill -9 mais il repartira au prochain démarrage. Contrôle des ports à partir de l'extérieur ------------------------------------------- Sites proposant des contrôles : http://outils.sdv.fr/ http://grc.com/x/ne.dll?rh1dkyd2 http://scan.sygatetech.com/ Netfilter / Iptables -------------------- http://christian.caleca.free.fr/netfilter.html http://christian.caleca.free.fr/netfilter/iptables.htm http://www.netfilter.org/documentation/ (pointeurs sur documentation) http://iptables-tutorial.frozentux.net/iptables-tutorial.html http://logi.cc/linux/netfilter-log-format.php3 (netfilter log format) http://olivieraj.free.fr/fr/linux/information/firewall/fw-03.html which iptables Pour voir si la commande iptables est présente lsmod | grep iptable pour voir si le module est installé. iptables -L -v affiche les règles de fitrages. iptables -F pour supprimer toutes les règles (F = flush) tail -f netfilter.log |grep 1.25 affiche ce qui concerne la machine x.x.1.25 dans les 10 dernières lignes des logs d'iptables iptables -L FORWARD -vn |grep 80 ce qui concerne le port 80 (http, affichage numérique) iptables -L FORWARD -v |grep 80 ce qui concerne le port 80 (http, affichage en clair) Iptables pour IPv6 ------------------ Installer si ce n'est pas encore fait iptables-ipv6 Pour bloquer IPv6 tant qu'il n'est pas utilisé : # ip6tables -F # ip6tables -P INPUT DROP # ip6tables -P OUTPUT DROP # ip6tables -P FORWARD DROP Vérifier l'état des programmes installés ---------------------------------------- rpm -Va Shorewall ========== Version et aide --------------- sudo shorewall version sudo shorewall help Interface de configuration Mandriva : ------------------------------------- drakfirewall La version installée par Mandrake est souvent très en retard. Certains rpm semblent même être buggés ! D'autre part la configuration faite par MDK ou MDV est calamiteuse : plus rien ne fonctionne !! => Supprimer la version de shorewall installée par MDK / MDV, télécharger la dernière version stable sur http://www.shorewall.net/ (NB : moins de problèmes avec les derniéres versions de MDV) Tout est très bien expliqué sur le site http://www.shorewall.net/ NB : les actions prédéfinies sont dans /usr/share/shorewall/actions.std (et non pas /etc/shorewall/actions.std) Installation : -------------- - Récupérer la dernière version de shorewall sur le site http://www.shorewall.net/ - Installer : # rpm -ivh shorewall....115 Shorewall a besoin du package iproute. En cas de message d'erreur indiquant qu'iproute n'est pas trouvé, vérifier qu'il est bien installé : # which ip /sbin/ip Puis relancer l'installation avec : # rpm -ivh --nodeps shorewall.... Les fichiers à renseigner obligatoirement pour que ça fonctionne : /etc/shorewall/interfaces /etc/shorewall/rules ainsi que /etc/shorewall/zones dans le cas des versions 2.3 et /etc/shorewall/policy dans le cas de la version 3 Fichier /etc/shorewall/interfaces ''''''''''''''''''''''''''''''''' Mettre : net eth0 detect norfc1918,routefilter,tcpflags,nosmurfs dans le cas d'une connexion par modem, rajouter : net ppp0 norfc1918,routefilter,tcpflags,nosmurfs Fichier /etc/shorewall/rules '''''''''''''''''''''''''''' Indiquer ce qui est autorisé et ce qui est interdit. NB : un certain nombre d'actions sont prédéfinies dans le fichier /usr/share/shorewall/actions.std : voir le contenu de ce fichier. Mettre au moins : ACCEPT net fw icmp 8 # ou bien AllowPing net fw ACCEPT fw net icmp Rajouter éventuellement : ACCEPT net fw tcp http # ou bien AllowWeb net fw AllowSSH net fw et pour un serveur : AllowFTP net fw AllowSMB net fw AllowSMB fw net AllowSMTP net fw AllowIMAP net fw Version 3 ......... Dans /etc/shorewall/rules des macros sont utilisées au lieu de Allow... : voir http://www.shorewall.net/Macros.html. Ces macros sont situées dans /usr/share/shorewall/ Exemple : Ping/ACCEPT net fw SSH/ACCEPT:info net fw SMB/ACCEPT net fw Fichier /etc/shorewall/policy ''''''''''''''''''''''''''''' Pour que ça fonctionne, le fichier policy doit contenir : fw net ACCEPT net all DROP info all all REJECT info et non pas comme installé par défaut par les rpm MDK : loc net ACCEPT net all DROP info all all REJECT info (!!! explication ??) Version 3 ......... Le fichier /etc/shorewall.policy est vide ! /etc/shorewall/zones '''''''''''''''''''' A partir de Shorewall 2.2.0, le fichier /etc/shorewall/zones est vide : seule la zone fw est défine par défaut. Définir les zones à utiliser, par exemple (cf. http://shorewall.net/shorewall_setup_guide.htm) : net Net Internet loc Local Local networks dmz DMZ Demilitarized zone Version 3 --------- - dans /etc/shorewall/zones mettre les zones proposées en exemple : fw firewall net ipv4 loc ipv4 dmz ipv4 Puis démarrer le firewall par : # shorewall start (ou redémarrer par shorewall restart) Vérifier que les règles sont bien installées : iptables -L Principal fichier à configurer pour autoriser différents services (http, ftp, imap, etc.) à fonctionner : /etc/shorewall/rules Si les services ne sont pas prédéfinis dans /usr/share/shorewall/actions.std autoriser les ports "à la main" comme indiqué dans la doc contenue dans le fichier /etc/shorewall/rules Commandes intéressantes : ------------------------- # shorewall version par de -- ! # shorewall stop # shorewall clear # shorewall start # shorewall restart Pour voir l'état des règles de filtrage : ----------------------------------------- La dernière ligne générée par shorewall start se termine par "Shorewall Started" si shorewall a bien démarré. Sinon, en cas d'erreur la dernière ligne est "Terminated" et le PC risque de ne pas être protégé sans que l'on s'en rende compte !!! Il est donc indispensable de vérifier à postériori si shorewall a bien démarré en affichant les règles de filtrage : # iptables -L -v Il serait bon de générer un message clair (pop-p et son) pour avertir de la non-installation des règles de filtrage (à voir, ça existe peut-être déjà) Pour voir les messages générés par shorewall -------------------------------------------- less /var/log/messages tail -f /var/log/messages grep /var/log/messages Ports souvent sollicités ------------------------ DPT=631 ipp 631/tcp IPP (Internet Printing Protocol) ipp 631/udp IPP (Internet Printing Protocol) Dû à cups. Remède, dans /etc/cups/cupsd.conf changer "Browsing On" (défaut) en "Browsing off" et redémarrer cups (service cups restart Trier/formater les messages à partir des fichiers de log avec awk ------------------------------------------------------------- Par exemple, afficher le n° IP des machines (SRC=), rejetées sur le port 631 avec les ports source (SPT=) et destination (DPT=) : # grep 631 /var/log/messages |grep SPT=631 |awk '{print $9 " " $18 " " $19}' |less SRC=192.168.0.23 SPT=631 DPT=631 Repérer les tentatives réussies ou échouées de connexions ssh ------------------------------------------------------------- Pour que les connexions réussies soient enregistrées dans /var/log/messages, mettre dans /etc/shorewall/rules (on rajoute :info) : ACCEPT:info net fw tcp 22 AllowSSH:info net fw SSH/ACCEPT:info net fw Connexions réussies : # grep "Accepted password" /var/log/messages |less Connexions refusées : # grep "Failed password" /var/log/messages |less Pour compter le nombre de connexions refusées par jour # grep 'Failed password' /var/log/auth.log | grep sshd | awk '{print $1,$2}' | sort | uniq -c NB : elles sont aussi enregistrées dans /var/log/auth.log C'est le résultat du paramétrage par défaut défini dans /etc/ssh/sshd.config : # Logging #SyslogFacility AUTH #LogLevel INFO Avec un formatage : # grep "Failed password" /var/log/messages | awk '{print $2 " " $1 " " $3 " " $10 " " $11 " " $13 }' | less 14 Oct 14:17:19 user janaina ::ffff:209.209.13.165 14 Oct 14:17:20 user alves ::ffff:209.209.13.165 14 Oct 14:17:22 user miotto ::ffff:209.209.13.165 Nb : pour entrer la tabulation entre $10 et $13 : puis En savoir plus sur l'auteur de la tentative d'intrusion : $ whois 209.209.13.165 InReach Internet INREACH98 (NET-209-209-0-0-1) 209.209.0.0 - 209.209.127.255 Roger Caplan INREACH-ROGERCAPLAN (NET-209-209-13-160-1) Infos complémentaires (adresse, N° de tel, etc.) $ whois '!NET-209-209-13-160-1' ou simplement (les '! ne semblent pas nécessaires) $ whois NET-209-209-13-160-1 |less Blocage des tentatives d'accès "brute fore" sur le port 22 ---------------------------------------------------------- Anti-virus ========== Clamav/Klamav Doc : http://www.clamav.net/doc/latest/ Kalmav = interface graphique Installation ------------ # urpmi clamav Généralement pas à jour ! Installation à patir de sources $ tar -zxvf clamav-xxx.tar.gz $ cd clamav-xxx $ ./configure $ make # make install Désinstallation (à faire avant une nouvelle installation) # make uninstall Utilisation ----------- - Mise à jour de la base des virus # freshclam ERROR: Clamd was NOT notified: Can't connect to clamd through /var/lib/clamav/clamd.socket => installer Clamd ! # urpmi clamd # service clamd status clamd is stopped # service clamd start Voir "Setting up auto-updating" et le reste de la doc. ERROR: Please edit the example config file /usr/local/etc/freshclam.conf. ERROR: Please edit the example config file /usr/local/etc/clamd.conf. => Complètement idiot ! Editer ces fichiers et mettre dans : ----------------------------------------- # Comment or remove the line below. Example ----------------------------------------- "Exemple" en commentaire - Scan antivirus: # fdisk -l pour afficher la liste des partitions à scanner # clamscan -ri /point/de/montage/de/la/partition/ou/répertoire # clamscan -r --bell -–log=rapport.txt /point/de/montage/de/la/partition/ou/répertoire # clamscan -ri --remove /point/de/montage/de/la/partition/ou/répertoire -r récursive -i ou --quiet pour n'avoir que les virus de signalés CD bootables avec ClamAV ------------------------ ClamAV live CD ////////////// http://www.volatileminds.net/projects/clamav/tutorial.html Utilisation : ............. Dans un environneemnt sans DHCP : $ sudo ifconfig ethx netmask 255.255.... x = le n° de l'onterface netmask : à adapter au réseau (en général 255.255.255.0) $ sudo route add default gw Malheureusement il n'est pas possible d'enregistrer un fichier /etc/resolv.conf pour indiquer un serveur DNS (nameserver ) ce qui fait que la commande suivante (freshclam) revoie une erreur. => en l'absence de DHCP, utiliser de préférence SysRescueCD (cf. plus loin qui permet de définir un serveur DNS) Puis : $ sudo freshclam (mise à jour) $ sudo fdisk -l (pour lister les partitions) $ sudo mount -t ntfs-3g /dev/sda1 /mnt -o force (/dev/sda1 par exemple une partition NTFS ntfs-3g pour permettre l'effacement des virus sur une partition NTFS) $ sudo clamscan -ri --remove /mnt SystemRescueCd ////////////// A télécharger de www.sysresccd.org/Index.fr.php Après démarrage du CD live: - Choisir le type de clavier (16 pour français) - Si nécessaire (dans le cas où il n'y a pas de DHCP) configurer le réseau : net-setup ethx (x=0 ou plus rarement 1) - Mettre à jour l'anti-virus : freshclam - Lister les partitions à scanner : fdisk -l ou cat /proc/partitions - Créer un (ou des) point(s) de montage mkdir /mnt/1 (ne pas monter directement la partition à scanner dans /mnt) - Monter la partition à scanner (par exemple pour une partition NTFS sda1) mount -t ntfs-3g /dev/sda1 /mnt/1 ou, en cas de problème de montage : mount -t ntfs-3g /dev/sda1 /mnt -o force ls /mnt/1 (pour vérifier que c'est bien cette partition qu'on veut scanner) - Scanner avec l'anti-virus clamscan -ri /mnt/1 ou pour directement supprimer les virus : clamscan -ri --remove /mnt/1 Distributions sur CD bootable (CD live) outils pour contrôler, réparer, récupérer un système ============================================================================================ SystemRescueCd http://www.sysresccd.org/Main_Page INSERT (Inside Security Rescue Toolkit) http://www.inside-security.de/insert_en.html Ultimate Boot CD http://www.ultimatebootcd.com/index.html Installation de Mandriva (sur disque, clé USB, etc) à partir d'un site FTP ========================================================================== http://wiki.mandriva.com/fr/Installer_Mandriva_Linux#Installation_depuis_un_miroir_local.2C_disque_dur.2C_r.C3.A9seau_local.2C_ou_Internet Mandriva (ou autres distributions sur clé USB) ============================================== http://www.mcnlive.org/ http://loli.fsa.ulaval.ca/index.php?id=591 http://www.eeextra.com/eee/how-to-create-a-live-linux-usb-pendrive.html http://wiki.mandriva.com/en/Draklive ou http://wiki.mandriva.com/fr/Draklive http://wiki.mandriva.com/fr/TwikiCookerHowToFr#Installer_.C3.A0_partir_d.27une_clef_USB http://wiki.mandriva.com/fr/One_sur_live_usb http://en.wikipedia.org/wiki/Live_USB http://unetbootin.sourceforge.net/ Autres : http://pc-silencieux.disk91.com/index.php?2008/01 http://valaurea.free.fr/documents/sig11_flash.html Anti-virus sur CD bootable ========================== Utile pour vérifier la présence de virus sur un PC windows Insert (Inside Security Rescue Toolkit) --------------------------------------- http://www.inside-security.de/insert_en.html A base de Knoppix + clamav Pour contrôler une partition : 1 - monter la partition à contrôler, par exemple : # mount /dev/hda1 /mnt/hda1 2 - aide en ligne : # clamscan --help 2 - Lancer le scan anti-virus : # clamscan -r --bell /mnt/hda1 -r = recursive --bell = sonne pour chaque virus rencontré Avec enregistrement du résultat dans un fichier : # clamscan -r --bell --log=rapport.txt /mnt/hda1 ou encore : # clamscan -r --bell -log rapport.txt /mnt/hda1 Arpwatch ======== arp = address resolution protocol Maintient une base de donnée des adresses MAC visibles sur le réseau et de leurs paires d'IP associées Pour voir s'il tourne : $ ps auwx | grep arp Sinon pour lancer le démon : # arpwatch Pour voir les stations sur le réseau : # cat /var/log/messages | grep arp $ less /var/lib/arpwatch/arp.dat Pour l'afficher sous forme de page html $ arpwatch2html.pl Ethereal/Wireshark ================== Wireshark est le nouveau nom de ethereal www.ethereal.com/ www.wireshark.org/ User's guide : http://www.ethereal.com/docs/eug_html_chunked/ filtres : http://home.insight.rr.com/procana/ Utilisation : Capture/Options Capture Filter: port 80 (par exemple) Cocher "Update list of packets in real time" [Start] Mise à jour de l'affichage : bouton [Clear] (sur la page initiale, ligne "filter") Etherape ======== http://etherape.sourceforge.net/ Tcpdump ======= tcpdump -i eth0 -s0 -X host IP_ou_nom_de_la_machine_à_scanner s0 lonqueur capturée, 0 signifie à tcpdump d'utiliser une longueur ad-hoc pour capturer des paquets entiers -X affichage en hexa et ASCII NB : sur MDV tcpdump fonctionne en donnant le n° IP mais pas avec le nom de la machine : ceci est dû à un fichier /etc/hosts incorrect, voir bug /etc/hosts plus bas : tcpdump affiche ce qui se passe sur 127.0.0.1, c'est à dire rien au niveau de eth0. Exemple : voir ce qui se passe sur le port 25 : Dans une console : # tcpdump -i eth0 -c 10 -l port 25 2>/dev/nul | while read titi; do lsof -n -i :25; done -i eth0 interface -c 10 -i eth0termine après réception de 10 paquets -l pour voir les paquets titi variable quelconque pour exécution de la boucle Dans une autre console (pour tester le résultat) $ telnet 25 se connecte sur le serveur de mail Netcat (nc) =========== www.jfranken.de/homepages/johannes/vortraege/netcat_inhalt.en.html Pour communiquer entre 2 machines. voir aussi cryptcat Se connecter ------------ netcat netcat En mode serveur (en attente d'une connexion sur un port spécifié) ----------------------------------------------------------------- netcat -l -p (l = listen) Sur le serveur -------------- $ nc -l -p 45678 -l = listen -p 45678 = n° de port quelconque => nc écoute sur le port indiqué ou $ nc -L -p 45678 pour éviter la déconnexion ou bien : $ nc -l -p 45678 > reception pour récupérer le résultat dans le fichier réception Sur le client ------------- (ne pas oublier de lancer le serveur avant, sinon "connection refused !) $ nc nom_ou_IP_du_serveur 45678 En cas de non-fonctionnement, voir la configuration du (des) firewall(s) éventuel(s) Serveur et client communiquent maintenant par le port 45678 : on peut taper au clavier des caractères sur le serveur qui s'affichent sur le client, et des caractères sur le client qui s'affichent sur le serveur Envoie de fichier ----------------- $ cat /fichier.txt | nc nom_client 45678 le contenu de /fichier.txt s'affiche sur le serveur Transfert de fichier -------------------- Serveur : nc -l -p 5500 < image.jpg Client : nc -v 5500 > toto.jpg Exécution de commandes ---------------------- Sur le serveur : $ nc -v -l -p 5600 -e /bin/bash (ou en plus court : nc -vlp5600 -e/bin/bash) Sur le client : $ nc 5600 et taper les commandes qui seront exécutées sur le serveur : le résultat s'affiche sur l'écran du client Test de ports ------------- http://3psilon.free.fr/index.php?pa=35 $ nc -vv 127.0.0.1 20-90 localhost.localdomain [127.0.0.1] 90 (?) : Connection refused localhost.localdomain [127.0.0.1] 89 (?) : Connection refused localhost.localdomain [127.0.0.1] 88 (kerberos) : Connection refused localhost.localdomain [127.0.0.1] 87 (?) : Connection refused localhost.localdomain [127.0.0.1] 86 (?) : Connection refused localhost.localdomain [127.0.0.1] 85 (?) : Connection refused localhost.localdomain [127.0.0.1] 84 (?) : Connection refused localhost.localdomain [127.0.0.1] 83 (?) : Connection refused localhost.localdomain [127.0.0.1] 82 (?) : Connection refused localhost.localdomain [127.0.0.1] 81 (?) : Connection refused localhost.localdomain [127.0.0.1] 80 (http) open Netcat s'arrête sur le 1° port trouvé ouvert Pour un scan complet : $ nc -vvz 127.0.0.1 20-90 Pour que netcat n'affiche que les ports ouverts, utiliser un seul -v : $ nc -vz 127.0.0.1 1-255 Gnu netcat ========== Semble plus complet que le netcat installé par défaut sur MDV 2007.0 (pas d'option -L par exemple) Télécharger : http://netcat.sourceforge.net/download.php -> netcat-0.7.1.tar.gz Décompresser : $ tar -zxvf netcat-0.7.1.tar.gz $ cd netcat-0.7.1 $ ./configure $ make $ sudo make install NB : l'installation se fait par défaut dans /usr/local/bin alors que le netcat d'origine est dans /usr/bin/netcat Pour différencier l'un de l'autre et y accéder facilement, par exemple : $ sudo ln -s /usr/local/bin/netcat /usr/bin/ncgnu Mode tunnel ----------- Nb utilise l'option -L absente de nc v1.10 : utiliser Gnu netcat cf. http://dept-info.labri.fr/~aumage/oa/Cours/ARSA/arsa.html : nc -L -p pour une prolongation simple. nc -L -p -x pour tracer la conversation. nc -L -p -o pour enregistrer la conversation dans un fichier. Cryptopgraphie, chiffrer des documents ====================================== encfs http://wiki.mandriva.com/fr/Encfs http://linux.softpedia.com/get/Desktop-Environment/Tools/EncFs-ServiceMenu-35807.shtml Cryptographie, disques virtuels cryptés, chiffrage ================================================== http://openpgp.vie-privee.org/linux.html Mountloop et son interface drakloop °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° http://www.aerospacesoftware.com/cryptoloop-howto.html /usr/share/doc/mountloop-0.15.1/README La configuration de drakloop est stockée dans ~/.mountlooprc : on peut y modifier (si nécessaire) le nom du répertoire crypté. NB : par contre le nom du fichier crypté "encfile" est codé en dur dans drakloop (voir le code source perl) : si on modifie ce nom, drakloop ne fonctionne plus. Idem pour les possibilités de cryptage : seul aes est proposé. Il est tout a fait possible de nommer autrement le fichier crypté et d'utiliser d'autres chiffrages, cf./usr/share/doc/mountloop-0.15.1/README => dans ce cas, utiliser mountloop en ligne de commande Montage à la main ----------------- $ mountloop par exemple : $ mountloop aes256 Dossier_crypte/Fichier_crypte Dossier_crypte Menu contextuel pour monter ou démonter un fichier crypté -------------------------------------------------------------------- http://developer.kde.org/documentation/tutorials/dot/servicemenus.html http://www.kde-france.org/article.php3?id_article=82 http://www.coagul.org/article.php3?id_article=91 www.oreilly.com/catalog/linuxdeskhks/chapter/hack40.pdf http://mandrakeusers.org/lofiversion/index.php/t18068.html Ajouter dans ~/.kde/share/apps/konqueror/servicemenus (à l'usage de l'utilisateur courant) ou dans /usr/share/apps/konqueror/servicemenus (pour tous les utilisateurs) les fichiers .desktop suivants : - Pour monter le fichier crypté ```````````````````````````````` OpenCryptFile.desktop [Desktop Entry] Actions=OpenCryptFile ServiceTypes=all/allfiles [Desktop Action OpenCryptFile] Name=Open encrypted file Exec=/usr/bin/kdialog --password "Password for this crypted file?" | /usr/bin/mountloop aes256 %f %d Icon=/usr/share/pixmaps/password.png - Pour démonter le système de fichier crypté (ou tout autre système monté) ````````````````````````````````````````````````````````````````````````` UmountFS.desktop [Desktop Entry] Actions=UmountFS ServiceTypes=inode/directory [Desktop Action UmountFS] Name=Unmount File System Exec=kdesu "/bin/umount -fl %f" Icon=encrypted Pour activer ces actions, clic droit sur le fichier ou le dossier, puis sous-menu "Actions" Autre possibilité : associer le fichier encfile au programme drakloop --------------------------------------------------------------------- (K> System > Configuration > KDE > Components > File Associations encfile -> /usr/bin/drakloop) => un double clic sur le fichier lance drakloop NB : le fichier .desktop créé se trouve dans ~/.kde/share/mimelnk/application Truecrypt (renommé realcrypt sous MDV !!) °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° http://www.truecrypt.org/ Opensource, existe pour Windows et Linux : les fichiers cryptés sont visibles sous windows et linux. Mode d'emploi : http://altoptions.wordpress.com/2008/01/16/realcrypt-howto-part-1/ Installations ############# # urpmi truecrypt Mais la version disponible pour Mandirva est obsolete ! Installation à partir des sources (version 6.1 ou 6.1a) ------------------------------------------------------- - Télécharger le code source Mac OS X/Linux : http://www.truecrypt.org/downloads2.php - Décompresser : $ tar -zxvf TrueCrypt\ 6.1a\ Source.tar.gz $ cd truecrypt-6.1-source et lire le fichier Readme.txt : $ less Readme.txt - Ajouter les librairies nécessaires au fonctionnement de truecrypt (cf. fichier Readme.txt) : Cryptoki : _________ En fait il faut uniquement les pkcs*.h de cryptpki (pkcs11f.h, pkcs11.h et pkcs11t.h, ne marche pas avec uniquement pkcs11.h !) : les récupérer sur "ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11" dans le répertoire de la version la plus récente (actuellement "v2-20") et les copier dans le répertoire "truecrypt-6.1a-source/Crypto" wxWidgets _________ installation : voir plus loin "Installation de wxAll" Puis : $ make WX_ROOT=/path/complet/vers/wxWidgets-2.8. wxbuild fuse ____ # urpmi lib64fuse-devel (ou urpmi libfuse-devel en 32 bits) Compilation de truecrypt : _________________________ $ make WXSTATIC=1 Installation : ______________ l'exécutable truecrypt se trouve dans ..../truecrypt-6.1a-source/Main $ cd Main # sudo chown root:root truecrypt # $ sudo cp truecrypt /usr/bin/ Avec cette version on a une interface graphique. Associer l'extension (.tc sous Windows, mais n'importe quelle autre extension peut être utilisée) : $ kcmshell filetypes et configurer. Graver un conteneur truecrypt sur CD ou DVD ------------------------------------------- - DVD R+W 4.7 GB : créer un container truecrypt de 4480 MB maximum (truecrypt crée un fichier de 4 697 620 480 bytes). K3b rapporte 2 MO de libres. - CD Man ### $ man realcrypt (man truecrypt ne marche pas !!) # realcrypt -h # truecrypt -h aide # realcrypt -V # truecrypt -V version Documentations -------------- http://www.truecrypt.org/docs/?s=tutorial http://altoptions.wordpress.com/2008/01/16/realcrypt-howto-part-1/ Utilisation en ligne de commande """""""""""""""""""""""""""""""" Création d'un volume crypté --------------------------- # realcrypt -c et répondre aux questions NB : si on choisit : 2) None au lieu de 1) FAT il faudra par la suite formater le volume, par exemple en ext3 Formatage --------- Si ce n'a pas été fait dans l'étape précédente : # realcrypt -i associe le volume à un device et le monte et répondre aux questions. Puis : # mkfs.ext3 /dev/mapper/realcrypt0 # mount /dev/mapper/realcrypt0 /point/de/montage Les droits sont root:root. Les changer pour autoriser l'utilisateur et le groupe à y accéder : # chown : /point/de/montage # realcrypt -l facultatif : pour lister le(s) device(s) # realcrypt -d pour démonter et libérer tous les devices Pour ne démonter qu'un device (conteneur), l'une ou l'autre de ces commandes : # realcrypt -d /point/de/montage ou : # realcrypt -d /dev/mapper/realcryptx (x = 0, 1 ... n° du conteneur) ou : # realcrypt -d /FichierConteneur ou : # umount /point/de/montage (ne libère pas le device) ou : # umount /dev/mapper/realcryptx (ne libère pas le device) Utilisation courante en ligne de commande ----------------------------------------- # truecrypt volume.tc /point/de/montage montage en "read only # truecrypt -d volume.tc démonte volume.tc # truecrypt -d démonte tous les volumes montés Avec l'interface graphique pas d'option pour monter les volumes NTFS en lecture/écriture (truecrypt 6.0 ou 6.1) -> utiliser la ligne de commande : # truecrypt --filesystem=ntfs-3g --fs-options=users,rw,uid= volume.tc /point/de/montage GUI (interface graphique) """"""""""""""""""""""""" http://tcgui.tc.funpic.de/en/download.htm http://www.howtoforge.com/truecrypt-with-gui-on-ubuntu-7.10-p2 http://webscripts.softpedia.com/script/Security-Systems/truecrypt-GUI-33364.html Installation, utilisation de tcgui (obsolète ; la versin truecrypt 6 a une interface graphique) ---------------------------------- $ tar -zxvf tcgui-0.2.tar.gz # cp -r tcgui-0.2 /opt/ # /opt/tcgui-0.2/tcgui et répondre aux messages d'erreur par : # urpmi php-cli # urpmi php-gtk2 # vi /etc/php.ini chercher "extension" et ajouter la ligne : extension=php_gtk2.so. Voir le commentaire dans ce fichier : on peut aussi mettre la ligne extension=php_gtk2.so dans un fichier du répertoire /etc/php.d/ # /opt/tcgui-0.2/tcgui File > Add MountPoint pour ajouter un point de montage Click droit sur le point de montage - pour indiquer le volume à monter - ou pour supprimer le point de montage Click droit sur le nom de volume - pour le démonter Tools > Save Favorites Tools > Mount Favorites Installation de truecrypt-GUI (obsolète ; la versin truecrypt 6 a une interface graphique) ----------------------------- # urpmi java # urpmi pexpect # groupadd truecrypt # usermod -G truecrypt root # usermod -G truecrypt # chgrp truecrypt /usr/sbin/truecrypt # ln -s /usr/sbin/realcrypt /usr/bin/realcrypt # tar -zxvf tcgui.0.4.2.tar.gz # bash install.sh root $ tcgui Container truecrypt formaté en NTFS ----------------------------------- En mode graphique truecrypt 6, ou 6.1 monte un volume NTFS en "read-only"; pour autoriser l'écriture : Lecture-écriture de partitions NTFS =================================== http://www.jankratochvil.net/project/captive/ Captive: The first free NTFS read/write filesystem for GNU/Linux ntfs-3g.org http://www.ntfs-3g.org/ Serveur de log syslog-ng ======================== Voir doc et FAQ très bien faites sur : http://www.balabit.com/products/syslog_ng/ Installation ------------ Installer à partir des rpm (actuellement syslog-ng-1.4.17-5mdk) ou récupérer les sources sur http://www.balabit.com/products/syslog_ng/upgrades.bbq, actuellement : - syslog-ng-1.6.6.tar.gz - libol-0.3.15+20050407.tar.gz Décompresser : $ tar zxvf nom_fichier Compiler d'abord liblo puis syslog-ng : # cd nom_répertoire # ./configure # make # make install Fichiers syslog-ng installés : /usr/local/sbin/syslog-ng /usr/local/man/man5/syslog-ng.conf.5 /usr/local/man/man8/syslog-ng.8 Créer le répertoire /etc/syslog-ng Y copier le fichier de configuration autodocumenté que l'on trouve dans les sources /contrib/syslog-ng.conf.doc et le renommer en syslog-ng.conf Copier le script de démarrage init.d.RedHat-7.3 que l'on trouve dans les sources, répertoire contrib/, et le renommer en syslog-ng et lui donner les droits rwxr--r-- : # chmod 744 syslog-ng Commandes de base ----------------- syslog-ng --help syslog-ng -V -> version Classer les fichiers de log --------------------------- http://linuxfr.org/tips/index,1.html Pour classer les fichiers de log dans des répertoires type AAAA/MM/JJ ou encore HOSTS/AAAA/MM/JJ (si on fait un serveur de log), configurer syslog-ng.log : utiliser les variables $HOSTS $YEAR ... Exemple pour auth.log : destination authlog {file("/var/log/HOSTS/$HOST/$YEAR/$MONTH/$DAY/auth.log");};