Commandes utiles (ou pas)

Afficher les connexions courantes

L'utilitaire netstat permet d'afficher les connexions ouvertes sur la machine.

Les options de netstat

Protocoles :

  • -t : afficher les connexions tcp ;
  • -u : afficher les connexions udp ;
  • -x : afficher les connexions Unix ;
  • -w : afficher les connexions raw.

États :

  • par défaut : afficher les connexions ouvertes ;
  • -l : afficher les connexions en écoute ;
  • -a : afficher toutes les connexions.

L'option -p permet d'afficher le PID et le nom du programme associé à chaque connexion. Vous devez lancer netstat en root pour cette option.

Example

Pour afficher tous les programmes ayant un port tcp en écoute sur la machine :

netstat -ltp

Copie par SSH avec récupération en cas d'interruption

Cette commande utilise en réalité l'utilitaire rsync qui permet la synchronisation de répertoire distant, utilitaire très puissant mais néanmoins dangeureux (avec l'option –delete).

rsync --size-only --partial --progress --stats --inplace UTILISATEUR@MACHINE:SOURCE DESTINATION

N'hésitez pas à en faire un alias pour plus de simplicité :

alias rescp='rsync --size-only --partial --progress --stats --inplace'

Pour SSH avec un port différent du port stantard, cette commande est très utile :

rescp -r --rsh='ssh -p118' 'user@server:/path/' ./

Compter les tentatives d'intrusions sur SSH

Il est interessant de savoir le nombre de tentatives de brute force sur votre ssh. Une bonne exploitation des log n'est pas toujours aisée. Cependant, une petite ligne va vous permettre de vous faire une idée :

cat /var/log/auth.log* | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort | uniq -c

Voici un exemple de sortie :

      9 Feb 25
      4 Feb 26
      8 Feb 27
     16 Feb 28
     10 Feb 29
      9 Mar 1
      9 Mar 2
      7 Mar 3
     25 Mar 5
     15 Mar 6
      8 Mar 7

Ce nombre est plutôt faible, grâce à une règle iptable spécifique.

Là aussi, un petit alias peut vous simplifier la vie :) (par exemple, nommé "sshcount").

alias sshcount="cat /var/log/auth.log* | grep 'Failed password' | grep sshd | awk '{print \$1,\$2}' | sort | uniq -c"

Réduire les tentatives d'intrusions sur SSH

Une petite règle simple sur iptable va vous éviter de nombreuses tentatives d'intrusions, et considérablement ralentir le brute force :

iptables -I INPUT -p tcp --dport 22 -i eth1 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -i eth1 -m state --state NEW -m recent --update --seconds 300 --hitcount 8 -j DROP

Bien entendu, eth1 est votre interface exposée. Cette règle va tout simplement bannir l'ip qui tente de se connecter plus de 8 fois, pendant 5 minutes. De quoi bien ralentir une attaque par dictionnaire ;)

Identifier les processus utilisant un fichier

fuser -v FICHIER …

Pour tuer automatiquement ces processus :

fuser -kv FICHIER …

fuser peut également afficher (ou tuer) les processus utilisant un système de fichiers avec l'option -m :

fuser -vm POINT_DE_MONTAGE …

Renommer ses photos selon les données EXIF

exiv2

exiv2 est un programme qui permet de manipuler (affichage, export, import, modification, …) les données EXIF d'images au formats PNG, JPEG, TIFF et certains format RAW.

Il peut très rapidement renommer une grande quantité de fichiers en fonction de la date de prise de vue. Nous allons ici, par exemple, renommer tous les fichiers JPEG du repertoire courant et ajuster leur date de dernière modification afin qu'elle corresponde à la date de prise de vue :

exiv2 -t *.{jpeg,jpg}

renrot

renrot peut également renommer en masse des photographies selon la date de prise de vue, mais il est bien moins rapide que exiv2. Il possède malgré tout une fonctionnalité très agréable : il peut retourner une image pour qu'elle corresponde à l'orientation spécifiée dans l'en-tête EXIF.

Je m'explique : avec certains appareils photographiques, une information est enregistrée dans l'image indiquant si celle-ci est en portrait ou en paysage, malheureusement certains lecteurs d'images ne comprennent pas cette information et sont incapables d'afficher d'eux-même l'image dans le bon sens ; renrot va faire ce travail.

# Rotation seule.
renrot --no-rename *.{jpeg,jpg}
 
# Renommage, ajustement de la date de modification du fichier et rotation.
renrot -n '%Y%m%d_%H%M%S' -mtime *.{jpeg,jpg}

Vérifier qu'un cable réseau soit branché

L'utilitaire mii-tool est là. Pour infos : man mii-tool.

GREP avec des expressions rationnelles Perl

L'utilitaire pcregrep est similaire à grep mais utilise les expressions rationnelles Perl (PCRE). Celles-ci sont beaucoup plus complètes et vous permettent par exemple de rechercher la chaîne « <? » tout en évitant « <?php » :

# Rechercher tous fichiers .php utilisant « <? » au lieu de « <?php »
find -type f -name '*.php' -exec pcregrep -r '<\?(?!php)' '{}' '+'

Remplacer des occurrences de texte dans des fichiers grâce à Perl

Ah Perl, magicien des fichiers textes, tu les manipules comme tu veux et avec tant d'aisance !!!

Par exemple, si tu veux remplacer la version de Debian dans tous les fichiers de dépôts apt dans '/etc/apt/sources.list.d', une seule ligne te suffit :

perl -pi -e 's/etch/lenny/g' "/etc/apt/sources.list.d/*.list"

Ou encore, transformer toutes les fins de lignes Windows en Unix :

perl -pi -e 's/\r//g' FICHIER…

N'est-ce pas magique ?

Attention, par défaut, perl lit les fichiers ligne par ligne, si vous souhaitez faire des remplacements de '\n' (caractère de saut de ligne) il faut changer (ou supprimer) la variable de découpe de chaîne de perl :

perl -i -e 'undef $/;while(<>) { s/\s*\n\s*(?={\n)/ /g ;print($_)}' FICHIER...

linux/commandes_utiles_ou_pas.txt · Dernière modification: 2009/06/04 08:44 (édition externe)
Haut de page
CC Attribution-Noncommercial-Share Alike 3.0 Unported chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0