Outils pour utilisateurs

Outils du site


technique:linux:securite

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é

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 <COMMAND> off, ce qui évite que <COMMAND> soit relancé au démarrage mcc → System → Services permet de faire la même chose. - soit trouver la commande ps aux |grep <COMMAND> et tuer le processu correspondant kill -9 <PID> 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 : <Ctrl><V> puis <tab>

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 <n° IP du PC> 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 <n° IP de la passerelle> Malheureusement il n'est pas possible d'enregistrer un fichier /etc/resolv.conf pour indiquer un serveur DNS (nameserver <n°IP du DNS>) 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://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

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 <mail server> 25 se connecte sur le serveur de mail <mail server>

Netcat (nc)

www.jfranken.de/homepages/johannes/vortraege/netcat_inhalt.en.html

Pour communiquer entre 2 machines. voir aussi cryptcat

Se connecter


netcat <nom/adresse de machine> <nom du service> netcat <nom/adresse de machine> <numéro de port>

En mode serveur (en attente d'une connexion sur un port spécifié)


netcat -l -p<port> (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 <serveur> 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 <serveur> 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<serveur:port> -p<port d'attente> pour une prolongation simple. nc -L<serveur:port> -p<port d'attente> -x pour tracer la conversation. nc -L<serveur:port> -p<port d'attente> -o <fichier> pour enregistrer la conversation dans un fichier.

Cryptopgraphie, chiffrer des documents

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 <enc> <file> <dir> 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 <utilisateur>:<groupe> /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=<n° ou login utilisateur> 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

  1. pour indiquer le volume à monter
  2. ou pour supprimer le point de montage

Click droit sur le nom de volume

  1. 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 <login utilisateur> # 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“);};

technique/linux/securite.txt · Dernière modification : 2020/04/06 15:38 de 127.0.0.1