Sécuriser un accès ssh sur un serveur

Sécurisé un accès ssh sur un serveurCréer un double accès ssh

L’idée de départ était de modifier le port d’écoute du ssh (Secure SHell) « port 22 » pour mettre, par exemple, 6721 et interdire la connexion en « root », soit:

vi /etc/ssh/sshd_config

Et modifier les 2 linges suivantes « Port 22 » et « PermitRootLogin yes » comme suit:

Port 6721
PermitRootLogin no

Vous pouvez vérifier avec la commande suivante:

grep Port /etc/ssh/sshd_config
#Port 22
Port 6721

Un ami, Emile C., pour ne pas le nommé m’a dit:

puisque tu te connectes toujours du même pc local et du même pc distant, pourquoi ne ferais-tu pas un double ssh avec restriction sur ip?

C’est donc parti pour un double ssh.

– On va créer un lien symbolique appelé « sshd_exterieur »
– Créer un fichier de configuration appelé « sshd_config_exterieur »
– Modifier ce fichier de configuration.

ln -s /usr/sbin/sshd /usr/sbin/sshd_exterieur
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_exterieur
vi /etc/ssh/sshd_config_exterieur

Mettre le port à 6722 et « UsePAM no »
Voyons les différences entre les deux fichiers:

sdiff -s sshd_config sshd_config_exterieur
Port 6721 | Port 6722
UsePAM yes | UsePAM no

pour un démarrage lors du boot! Dans /etc/rc.local ajouter ceci :

/usr/sbin/sshd_exterieur -f /etc/ssh/sshd_config_exterieur 2>&1

Modifiez votre iptables pour accepter les deux connexions.

 

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6721 --source 192.168.1.21 -j ACCEPT #adaptez avec votre ip locale
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6722 --source 88.224.XXX.XX -j ACCEPT #adaptez avec votre ip distante

– Ajouter un service sshd_exterieur surveillé par logwatch tous les jours :

 

 

/usr/share/logwatch/default.conf/services/sshd_exterieur.conf
/usr/share/logwatch/scripts/services/sshd_exterieur

– Rebootez votre serveur et vérifier avec la commande suivante:

 

 

ps -ef | grep sshd | grep -v grep

Pensez aussi à modifier votre routeur! 🙂
Merci Emile C.!

 

Fail2ban – Bloquer les requetes phpmyAdmin w00tw00t et dos avec mod_evasive

Fail2Ban bloquer les requêtesFail2ban ou comment bloquer les requêtes phpmyAdmin w00tw00t et dos avec mod_evasive

Élément essentiel pour sécuriser son serveur, Fail2ban permet d’éviter des intrusions via force-brute. Il se charge d’analyser les logs des services installés et bannit automatiquement et pour une durée déterminée un hôte via iptables en cas d’échecs de connexion après X tentatives.

Installer Fail2ban:

sudo apt-get install fail2ban

Par défaut, Fail2ban propose déjà plusieurs filtres pré-configurés. On retrouve les filtres dans « /etc/fail2ban/filter.d/ ».
Le fichier de configuration où l’on peut spécifier pour chaque filtre le nombre d’essai avant le bannissement et le temps de bannissement, est: /etc/fail2ban/jail.conf

En plus des filtres existants, on peut ajouter des filtres pour se protéger des requêtes excessives sur phpmyadmin ainsi que bloquer les attaques w00tw00t (fruit d’un logiciel de scanning « DFind » utilisé par des kiddies) et DOS et autres, ici, nous verrons les 3 que je viens de citer.

1 – Fail2ban contre les attaques sur phpmyadmin
Créez un nouveau filtre dans « /etc/fail2ban/filter.d »

sudo nano /etc/fail2ban/filter.d/apache-phpmyadmin.conf

et copiez:

[Definition]
docroot = /var/www
badadmin = PMA|phpmyadmin|myadmin|mysql|mysqladmin|sqladmin|mypma|admin|xampp|mysqldb|mydb|db|pmadb|phpmyadmin1|phpmyadmin2|administrator|d$
failregex = [[]client <HOST>[]] File does not exist: %(docroot)s/(?:%(badadmin)s)
ignoreregex =

Et enregistrez.
Dans le fichier /etc/fail2ban/jail.conf ajoutez à la fin:

[apache-phpmyadmin]
enabled = true
port = http,https
filter = apache-phpmyadmin
logpath = /var/log/apache*/*error.log
maxretry = 3

2 – Fail2ban et protection contre les requêtes w00tw00t

 

sudo nano /etc/fail2ban/filter.d/apache-w00tw00t.conf

Copiez:

 

 

[Definition]
failregex = ^<HOST> -.*"GET \/w00tw00t\.at\.ISC\.SANS\.DFind\:\).*".*
ignoreregex =

Dans /etc/fail2ban/jail.conf copiez:

 

 

[apache-w00tw00t]
enabled = true
port = 80,443
action = %(action_mwl)s
filter = apache-w00tw00t
logpath = /var/log/apache*/*error.log
maxretry = 1

3 – Fail2ban contre les DOS avec mod_evasive (source Linux magazine, hors-série N°66)
Installation mod_evasive

 

 

sudo apt-get install libapache2-mod-evasive

Créer un répertoire pour stocker les informations liées aux attaques et préciser les propriétés du répertoire.

 

 

sudo mkdir /var/log/apache2/mod_evasive
sudo chown www-data.www-data /var/log/apache2/mod_evasive

Configurer apache

 

 

sudo nano /etc/apache2/conf.d/evasive

et collez:

 

 

DOSHashTableSize 3097
# pas plus de 5 pages toutes les 2 secondes
DOSPageCount 5
DOSPageInterval 2
# Pas plus de 100 requête par seconde (image, CSS…)
DOSSiteCount 100
DOSSiteInterval 1
# Bloquer le client pendant 10 secondes
DOSBlockingPeriod 10
# Dossier contenantles IP blacklistées
DOSLogDir "/var/log/apache2/mod_evasive"

Puis recharger la configuration

 

 

sudo service apache2 reload

Créez le filtre

 

 

sudo nano /etc/fail2ban/filter.d/apache-modevasive.conf

copiez:

 

 

[Definition]
failregex = ^\[[^\]]*\]\s+\[error\]\s+\[client <HOST>\] client denied by server configuration:\s
ignoreregex =

Dans /etc/fail2ban/jail.conf copiez:

 

 

[apache-modevasive]
enabled = true
filter&nbsp; = apache-modevasive
action = iptables-allports[name=apache-modevasive]
logpath = /var/log/apache*/*error.log
bantime = 60
bantime = 3600
maxretry = 10

FIN.
Si vous avez d’autres suggestions ou améliorations, je suis preneur…

 

https sur serveur unbuntu facile

https sur serveur unbuntu facileComment créer un accès https sur un serveur ubuntu 12.04.

Il s’agit d’un serveur LAMP (Linux, apache, Mysql, Php) ou autres…

Rapide, simple et efficace.

On active le module ssl, si ce n’est pas fait.

sudo a2enmod ssl

On redémarre apache:

sudo /etc/init.d/apache2 restart

ou

sudo service apache2 restart

Nous avons besoin de créer un nouveau répertoire dans lequel nous allons stocker la clé serveur et le certificat.
Créons un répertoire « ssl » sous /etc/
Puis un répertoire du nom de domaine, ex. « mon_serveur.fr » sous /etc/ssl/

sudo mkdir /etc/ssl
sudo mkdir /etc/ssl/mon_serveur.fr

Créez un certificat auto-signé « SSL »

Lorsque qu’on crée un nouveau certificat, nous pouvons spécifier combien de temps le certificat reste valide en mettant par exemple 365… Le certificat expire après un an… Ce qui semble logique 😉

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/mon_serveur.fr/mon_serveur.key -out /etc/ssl/mon_serveur.fr/mon_serveur.crt

Avec cette commande, nous allons à la fois créer un certificat SSL auto-signé ainsi que la clé sous le nouveau répertoire (/etc/ssl/mon_serveur.fr/).

Cette commande vous demandera un certain nombre de renseignements à remplir…

La ligne la plus importante est « Common Name (e.g. server FQDN or YOUR name) []: ». Entrez votre nom de domaine officiel ici ou, si vous n’en avez pas encore, l’adresse IP de votre site.

Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:IdF
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:mon_serveur
Organizational Unit Name (eg, section) []:mon_serveur
Common Name (e.g. server FQDN or YOUR name) []:mon_serveur.fr
Email Address []:votre_adresse@fai.fr

Maintenant, nous avons tous les éléments nécessaires pour terminer la prochaine étape est de mettre en place le serveur virtuel pour afficher le nouveau certificat.

Ouvrez le fichier de configuration de SSL:

sudo nano /etc/apache2/sites-available/default-ssl

Sur « ServerAdmin » mettez cotre mail
En dessous, rajouter la ligne:
« ServerName votre-serveur.fr:443« 
comme exemple ci-dessous

ServerAdmin votre_adresse@fai.fr
ServerName mon_serveur.fr:443

Rechercher les lignes ci-dessous et adaptez-les à votre configuration, dans notre exemple:

SSLEngine on
SSLCertificateFile /etc/ssl/mon_serveur.fr/mon_serveur.crt
SSLCertificateKeyFile /etc/ssl/mon_serveur.fr/mon_serveur.key

Sauvez et quittez.
Activez le nouveau site virtuel « Virtual host« 

sudo a2ensite default-ssl

Redémarrez le serveur:

sudo /etc/init.d/apache2 restart

ou

sudo service apache2 restart

Dans votre navigateur, tapez « https://votre-adresse » et vous serez en mesure de voir le nouveau certificat.

En cas de problème, on peut tester avec la commande suivante

curl -kv https://votreserveur.fr

Suivre son serveur avec Logwatch

regardez vos logs avec logwatchInstaller et configurer Logwatch

Pourquoi plutôt logwatch qu’une autre application de surveillance?

Je trouve logwatch très explicite, facile à configurer, simple et agréable à lire, il livre les logs bien structurés sous forme de chapitres, bref, pas besoin d’être un pro de la sécurité pour déchiffrer les logs… Qu’on peut recevoir par mail.

Logwatch sur ubuntu 14.04 server

Première chose à faire, vérifier que votre serveur peut vous envoyer un mail.

$ echo Contenu du message | mail -s "Sujet du mail" votremail@fai.fr

Supposons que vous avez bien reçu le mail… Tout va bien, on continue.

$ sudo apt-get install logwatch

Avant de configurer, faire une copie du fichier « logwatch.conf » dans /etc/logwatch/conf/

$ sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

Ensuite, ouvrez le fichier de configuration avec VIm, pour faire pro, ou comme moi avec « nano« 

$ sudo nano /etc/logwatch/conf/logwatch.conf

garder en mémoire la ligne 30 et modifier les lignes 35 (mettre « mail »), 44 (votre mail) et 77 (précision des informations traitées) comme suit :

29 # You can override the default temp directory (/tmp) here
30 TmpDir = /var/cache/logwatch
35 Output = "mail"
44 MailTo = votremail@fai.fr
77 Detail = 10

Vérifier que le dossier logwatch existe dans /var/ (vu ligne 30) sinon le créer.

$ sudo cd /var/cache/
$ ls
$ sudo mkdir logwatch

Faire un test avec la commande :

$ sudo logwatch –range=Today

Normalement, c’est fini et doit bien fonctionner !
N’hésitez pas à commenter pour apporter des précisions ou pour vos remarques.

Supprimer les métadonnées EXIF avec exiv2

supprimer données exif Womer & Cabincr3wMétadonnées EXIF, utilité et méfiance.

Si les métadonnées exif, et leur enrichissement peuvent être d’une grande utilité, sachez aussi vous en méfier.

En effet, pour des raisons professionnelles ou pour la gestion de photos à titre personnel, les données EXIF ont toutes leurs raisons d’être et sont une véritable richesse.

Par contre, si vous publier vos photos sur un quelconque site internet, dans la majeure partie des cas, pour des raisons de préserver votre vie privée, les métadonnées EXIF n’ont pas d’intérêt.

Pour les supprimer avec exiv2, rien de plus simple.

$ exiv2 -d a photo.jpg

 

En suivant les liens plus bas, vous saurez comment intégrer cette commande dans une boucle pour procéder par lot.
Pour l’anecdote avec un peu d’humour (c’était en 2012) :
Le pirate w0rmer & CabinCr3w (pour ne pas dire l’utilisateur de Scripts kiddies) a publié sur Twitter depuis son smartphone, deux photos, l’une du décolleté de sa petite amie, l’autre de son fessier moulé dans un short… Les métadonnées de ses images ont permis au FBI de le confondre…
Les médias parlent de hacker… Ha les cons! Il n’ont encore rien compris, hacker n’est pas synonyme de pirate, au contraire, et hacker ne s’applique pas seulement à l’informatique mais dans le bricolage créatif visant à améliorer le fonctionnement d’un système… Quelqu’un qui fait du tunning, est aussi un hacker! Les hackers existent depuis longtemps, bien avant les ordinateurs. Le terme de Hacker a perdu son prestige depuis le Crackdown de 1990, lorsque le système téléphonique US a globalement disjoncté, du fait d’une erreur de programmation des opérateurs, qui accusèrent pourtant le monde des BBS.

Pour en savoir plus sur les métadonnées EXIF :
Métadonnées EXIF d’une photo
Renommer les photos par lot en utilisant les métadonnées EXIF
Modifier les métadonnées EXIF de ses photos
Modifier la date de vos photos
Ajouter les coordonnées GPS dans EXIF avec exiv2

Vous pouvez aussi changer le nom de fichier de vos photos sans utiliser les métadonnées EXIF
Renommer les photos sans utiliser les métadonnées Exif

 

Modifier la date de vos photos

Modifier la date de vos photosModifier la date de vos photos sous linux en ligne de commande.

Votre appareil est resté longtemps sans ses piles, vous en avez mis des neuves, et pris des photo sans remettre votre appareil à la bonne date et heure…

Vous allez donc devoir…

Modifier la date sur le fichier EXIF de vos photos.

Mettez vos clichés à modifier dans un répertoire.

Voyez la suite….

Ouvrez un shell et vérifiez le contenu du répertoire avec la commande « ls ».

$ ls
DSCN3449.JPG  DSCN3450.JPG  DSCN3451.JPG  DSCN3452.JPG  DSCN3453.JPG  DSCN3454.JPG  DSCN3455.JPG  DSCN3456.JPG

Vérifiez la date d’une des images du répertoire avec « exiv2 image.jpg »
$ exiv2 DSCN3449.JPG

Nom du fichier        : DSCN3449.JPG
Taille du fichier     : 1230426 Octets
Type MIME             : image/jpeg
Taille de l'image     : 2304 x 3072
Marque de l'appareil  : NIKON
Modèle de l'appareil  : COOLPIX L12
Horodatage de l'image : 2010:05:02 05:32:43
Numéro de l'image     : 
Temps d'exposition    : 1/469 s
Ouverture             : F2.8

La date affiche 02/05/2010 à 05:32:43 alors que l’image a été prise (supposons) le 01/05/2012 à entre 14h et 15h.
Nous allons modifier la ligne « Horodatage de l’image: 2010:05:02 05:32:43 » en ligne de commande.
Plusieurs champs peuvent intervenir pour l’affichage de l’heure, on peut vérifier avec la ligne suivante:
exiv2 -p v DSCN3449.JPG | grep DateTime

$ exiv2 -p v DSCN3449.JPG | grep DateTime
0x0132 Image    DateTime             Ascii   20  2010:05:02 05:32:43
0x9003 Photo    DateTimeOriginal     Ascii   20  2010:05:02 05:32:43
0x9004 Photo    DateTimeDigitized    Ascii   20  2010:05:02 05:32:43

Il y a donc trois champs à modifier.
On peut déjà modifier la première photo en trois ligne avec la commande « exiv2 » et l’option « -Mset »

$ exiv2 -M"set Exif.Image.DateTime 2012:05:01 14:32:43" DSCN3449.JPG
$ exiv2 -M"set Exif.Photo.DateTimeOriginal 2012:05:01 14:32:43" DSCN3449.JPG
$ exiv2 -M"set Exif.Photo.DateTimeDigitized 2012:05:01 14:32:43" DSCN3449.JPG

Oui, mais si vous avez plusieurs photos cela risque de devenir très vite fastidieux, l’idéal est de trouver la bonne boucle à faire.
Déplacez l’image que vous venez de modifier pour éviter que les changements lui soient appliqués.
Faire une modification de date dans une boucle, c’est risquer de se retrouver avec tous les clichés à la même date, à la seconde près. A moins de faire un script assez complexe.
Nous allons nous simplifier la tâche en ajustant l’heure. L’option « ad » de la commande « exiv2 » permet l’ajustement de cette donnée en ajoutant ou retirant des tranches de temps. En fait, il faudra préciser le nombre d’années, mois, jours et heures de décalage.

Dans un premier temps nous allons chercher l’intervalle entre la date du cliché et celui de la prise de vue, soit (01/05/2012 14:32 – 02/05/2010 05:32).

Vous pouvez utiliser un tableur ou un calculateur en ligne.
Résultat: 1 year, 11 months, 29 days, 9 hours
Une fois le décalage évalué, on va l’appliquer avec « exiv2 », donc ajouter 1 ans, 11 mois, 29 jours, 9 heures et 00 minutes, il suffit d’exécuter:
« exiv2 -a 9:00 -Y 1 -O 11 -D 29 ad image.jpg »
Mais nous allons l’introduire dans une boucle « For Do Done« 

$ for i in *; do exiv2 -a 9:00 -Y 1 -O 11 -D 29 ad $i;done

Vérifions sur une des images:

$ exiv2 -p v DSCN3452.JPG | grep DateTime
0x0132 Image    DateTime            Ascii   20  2012:05:01 14:36:22
0x9003 Photo    DateTimeOriginal    Ascii   20  2012:05:01 14:36:22
0x9004 Photo    DateTimeDigitized   Ascii   20  2012:05:01 14:36:22

Réussi !
Maintenant vous pouvez renommer vos photos en utilisant la date et heure du fichier exif.

Modifier les métadonnées EXIF de ses photos

Modifier les métadonnées EXIF avec Exiv2Modifier les métadonnées EXIF de ses photos

Comment rajouter des informations aux données « EXIF » d’une photo? En effet il manque souvent l’auteur, le commentaire… Je vous propose l’une des méthodes sous linux…

Rapide, car légère, puisqu’en ligne de commande.

Avant de commencer, ayez une idée de ce qu’est un fichier EXIF d’une photographie, ensuite prenez connaissance des variables susceptibles d’enrichissement.
C’est fait? Alors c’est parti…

Imaginons, j’ai pris une série de photographies, avant de les renommer je souhaite rajouter d’autres renseignement aux métadonnées « EXIF »: Un commentaire, le lieu de prise et nom de la plante que j’ai photographié dans la série, il s’agit de la colchique d’automne (Colchicum autumnale).
Si je n’avais qu’une photographie à modifier j’utiliserai la ligne suivante:

$ exiv2 -M"set Exif.Photo.UserComment charset=Ascii Paris - Colchicum autumnale (colchique d'automne) " DSC_0013.JPG

Mais voilà, j’ai plusieurs photographies à modifier, alors je vais utiliser une boucle « for, do, done » et pourquoi pas en faire un script pour éviter la réécriture de la ligne à chaque fois, à vous de voir.

Ajoutons aux données EXIF un commentaire pour le nom et lieu: Paris – Colchicum autumnale (colchique d’automne)

$ for i in *.JPG; do exiv2 -M"set Exif.Photo.UserComment charset=Ascii Paris - Colchicum autumnale (colchique d'automne)" $i; done

Vérifions avec la commande exiv2 et l’option « -pt » pour plus de détail:

$ exiv2 -pt DSC_0012.JP
(...)
Exif.Nikon3.Saturation           Ascii      16  NORMAL
Exif.Nikon3.VariProgram          Ascii      16  AUTO
Exif.Photo.UserComment           Undefined  56  Paris - Colchicum autumnale (colchique d'automne)
Exif.Photo.SubSecTime            Ascii       3  50
(...)

De la même façon on peut mettre le nom d’auteur, le Copyright etc.
Exemple:

$ for i in *.JPG; do exiv2 -M"set Exif.Image.Artist Mon_prenom et NOM" $i; done
$ for i in *.JPG; do exiv2 -M"set Exif.Image.Copyright Creative Commons BY-NC-SA" $i; done
$ exiv2 -pt DSC_0012.JP
(...)
Exif.Image.Artist                 Ascii      18  Mon_prenom et NOM
Exif.Image.YCbCrPositioning       Short       1  Co-sited
Exif.Image.Copyright              Ascii      26  Creative Commons BY-NC-SA
(...)
Exif.Photo.UserComment            Undefined  56  Paris - Colchicum autumnale (colchique d'automne)
(...)

Renommer les photos par lot en utilisant les métadonnées EXIF

Renommer une photo en utilisant les métadonnées exif avec exiv2Renommer des photos par lot en utilisant des données EXIF de chaque image.

Ou comment avoir un nom ressemblant à « 2010-0613-16h07m08s-chantier.JPG » au lieu de « DSC_0005.JPG »

Prérequis:
« exiv2 » doit être installé.
On va utiliser les commandes « find » et « exiv2 « 

Voyons ce qu’il y a dans le répertoire courant:

$ ls
DSC_0005.JPG DSC_0006.JPG DSC_0007.JPG DSC_0008.JPG

On va renommer les photos en utilisant une partie des métadonnées EXIF de chaque image en une seule commande (ici date et heure de prise de vue).

$ find -iname "DSC_*" -exec exiv2 -r %Y-%m%d-%Hh%Mm%Ss-chantier mv {} +
$
$ ls -l
total 10004
-rwxr-xr-x 1 sima sima 2976990 2010-06-13 16:07 2010-0613-16h07m08s-chantier.JPG
-rwxr-xr-x 1 sima sima 2538376 2010-06-13 16:07 2010-0613-16h07m27s-chantier.JPG
-rwxr-xr-x 1 sima sima 2231659 2010-06-13 16:07 2010-0613-16h07m51s-chantier.JPG
-rwxr-xr-x 1 sima sima 2472989 2010-06-13 16:07 2010-0613-16h07m57s-chantier.JPG

Que c’est-il passé?
La commande find a recherché les fichiers dont le nom commence par DSC_
Lorsque la réponse est vrai (renvoi 0) exécute la commande exiv2
La commande exiv2 va renommer en prenant l’année (%Y), le mois (%m), le jour (%d), l’heure (%H), les minutes (%M) et les secondes (%S) de prise de vue en y ajoutant les personnalisations les () (hms) de heure, minutes et secondes puis chantier.

En faisant «man exiv2» ou «man find» on peut voir l’étendue des possibilités.

ATTENTION ! cette commande est récursive et si vous avez des sous-répertoires avec des fichiers correspondant à la requête, ils seront également modifiés. Dans ce cas, vous pouvez utiliser la commande exiv2 dans une boucle for, do, done

Il est facile d’en faire un script…

Renommer les photos sans utiliser les métadonnées Exif

Renommer les photos sans utiliser les métadonnées EXIFRenommer sans utiliser les métadonnées Exif.

De retour de vacances, il n’est pas rare de se retrouver avec répertoire contenant plus de 400 photos avec des noms de fichiers du genre:
dsc_0007.jpg
dsc_0009.jpg
dsc_0016.jpg

Or on souhaite que les noms soient plus explicites, genre «2010-07-vancances-numéro.jpg»

Faire des modifications une par une est fastidieux, c’est là qu’intervient la commande «sed»

On va utiliser une boucle «for, do, done», J’ai déjà donné les explications sur le billet « Initiation au shell boucle (for, do, done) » (la punition de mon fils).

Voici la ligne magique avec la commande «sed»:

for i in dsc_*; do mv $i `echo $i | sed "/^dsc_/s//2010-07-vacances-/"`; done

« dsc_ » sera remplacé par « 2010-07-vacances-« 

Ce qui donnera des noms de fichier du genre :

2010-07-vacances-0007.jpg
2010-07-vacances-0009.jpg
2010-07-vacances-0016.jpg

Pour éviter de retaper la ligne on peut faire un mini script:

#!/bin/bash
# renommer des photos dans le répertoire courant.
echo "Entrez ce que vous souhaitez remplacer, ex. dsc_, DSC ..."
echo "Gardez la numérotation finale des photos..."
echo -n "respectez les la casse, majuscules / Minuscules : "
read rempl
echo -n "Entrez ce que vous souhaitez voir à la place : "
read souhait
for i in "$rempl"*
do mv $i `echo $i | sed "/^"$rempl"/s//"$souhait"/"`
done
echo "TERMINE"

On va le nommer « renom-photos.sh »

Le rendre exécutable par:

chmod +x renom-photos.sh

Plaçons-le dans le répertoire courant et utilisons-le.
Voyons ce qu’il y a dans le répertoire courant.

$ ls -l
total 10764
-rwxr-xr-x 1 sima78 sima78 2231659 2010-06-13 16:07 DSC_0007.JPG
-rwxr-xr-x 1 sima78 sima78 2720329 2010-06-13 16:09 DSC_0009.JPG
-rwxr-xr-x 1 sima78 sima78 1996609 2010-06-18 15:04 DSC_0016.JPG
-rwxr-xr-x 1 sima78 sima78     383 2010-08-17 20:55 renom-photos.sh
-rwxr-xr-x 1 sima78 sima78 2036985 2010-06-18 15:03 souhait0015.JPG
-rwxr-xr-x 1 sima78 sima78 1996609 2010-06-18 15:04 souhait0016.JPG

On voit aussi le script qui se termine par .sh et je souhaite renommer mes photos DSC_*
Je lance le script et réponds au 2 questions…

$ ./renom-fotos.sh
Entrez ce que vous souhaitez remplacer, ex. dsc_, DSC ... (ici se serait DSC_)
Gardez la numérotation finale des photos...
respectez les la casse, majuscules / Minuscules : DSC_
Entrez ce que vous souhaitez voir à la place : 2010-07-vacances-
TERMINE

Voyons le résultat.

$ ls -l
total 10764
-rwxr-xr-x 1 sima78 sima78 2231659 2010-06-13 16:07 2010-07-vacances-0007.JPG
-rwxr-xr-x 1 sima78 sima78 2720329 2010-06-13 16:09 2010-07-vacances-0009.JPG
-rwxr-xr-x 1 sima78 sima78 1996609 2010-06-18 15:04 2010-07-vacances-0016.JPG
-rwxr-xr-x 1 sima78 sima78     383 2010-08-17 20:55 renom-fotos.sh
-rwxr-xr-x 1 sima78 sima78 2036985 2010-06-18 15:03 souhait0015.JPG
-rwxr-xr-x 1 sima78 sima78 1996609 2010-06-18 15:04 souhait0016.JPG
drwxr-xr-x 2 sima78 sima78    4096 2010-08-17 20:50 sous-photos

Il a donc bien modifier les fichiers commençant par « DSC_ »

Maintenant, tout ça peut être perfectionné… à vos shells.

Révoquer une clé GnuPG

Révoquer une clé GnupgRévoquer une clé GnuPG

Je me suis rendu compte aujourd’hui qu’une de mes clés dont j’étais persuadé avoir révoqué… Elle ne l’était pas.

Je vérifie en éditant la clé que j’avais toujours avec « gpg –edit-key » et je constate qu’elle avait bien expirée mais n’était pas révoquée.

Je décide donc dans la foulée de la révoquer et d’envoyer la révocation au serveur de clés

Attention, cette méthode fonctionne que si vous avez toujours votre clé et votre mot passe…

$ gpg --edit-key moi@fai.fr
Vous avez un message similaire, avec à la fin un invité de commande (commande>)
gpg (GnuPG) 1.4.10; Copyright (C) 2008 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

La clé secrète est disponible.

pub  2048R/BEA7AAC9  créé: 2011-03-03  expiré: 2013-03-01  utilisation: SC
                     confiance: ultime        validité: expirée
sub  2048R/380CF796  créé: 2011-03-03  expiré: 2013-03-01  utilisation: E
[ expirée ] (1). trucmuche1 (trucmuche1) <moi@fai.fr>
[ expirée ] (2)  trucmuche2 <moi2@fai.fr>
[ expirée ] (3)  trucmuche3 (trucmuche3) <moi3@fai.fr>

Commande>

Entrez un serveur de clés, dans mon exemple pgp.mit.edu

Commande> keyserver
Entrez l'URL de votre serveur de clés favori: http://pgp.mit.edu/
Vous avez besoin d'une phrase de passe pour déverrouiller la
clé secrète pour l'utilisateur: « trucmuche1 (trucmuche1) <moi@fai.fr> »
clé de 2048 bits RSA, ID BEA7AAC9, créée le 2011-03-03

pub  2048R/BEA7AAC9  créé: 2011-03-03  expiré: 2013-03-01  utilisation: SC
                     confiance: ultime        validité: expirée
sub  2048R/380CF796  créé: 2011-03-03  expiré: 2013-03-01  utilisation: E
[ expirée ] (1). trucmuche1 (trucmuche1) <moi@fai.fr>
[ expirée ] (2)  trucmuche2 <moi2@fai.fr>
[ expirée ] (3)  trucmuche3 (trucmuche3) <moi3@fai.fr>

Commande>

On révoque avec la commande « revkey » et l’adresse mail que vous souhaitez révoquer, on répond aux questions…

Commande> revkey moi@fai.fr
Voulez-vous vraiment révoquer la clé entière ? (o/N) o
choisissez la cause de la révocation: 
  0 = Aucune raison spécifiée
  1 = La clé a été compromise
  2 = La clé a été remplacée
  3 = La clé n'est plus utilisée
  Q = Annuler
Votre décision ? 3
Entrez une description optionnelle ; terminez-là par une ligne vide:
>

Cause de révocation: La clé n'est plus utilisée
(Aucune description donnée)
Est-ce d'accord ? (o/N) o

Vous avez besoin d'une phrase de passe pour déverrouiller la
clé secrète pour l'utilisateur: « trucmuche1 (trucmuche1) <moi@fai.fr> »
clé de 2048 bits RSA, ID BEA7AAC9, créée le 2011-03-03

Cette clé a été révoquée le 2013-12-09 par la clé RSA BEA7AAC9 trucmuche1 (trucmuche1) <moi@fai.fr>
pub  2048R/BEA7AAC9  créé: 2011-03-03  revoqué: 2013-12-09  utilisation: SC  
                     confiance: ultime        validité: revoquée
Cette clé a été révoquée le 2013-12-09 par la clé RSA BEA7AAC9 trucmuche1 (trucmuche1) <moi@fai.fr>
sub  2048R/380CF796  créé: 2011-03-03  revoqué: 2013-12-09  utilisation: E   
[ revoquée] (1). trucmuche1 (trucmuche1) <moi@fai.fr>
[ revoquée] (2)  trucmuche2 <moi2@fai.fr>
[ revoquée] (3)  trucmuche3 (trucmuche3) <moi3@fai.fr>

Commande>

On sauvegarde et on envoie la clé de révocation.

Commande> save

$ gpg --send-keys BEA7AAC9
gpg: envoi de la clé BEA7AAC9 au serveur hkp keys.gnupg.net

Modification du 07/02/2017

La dernière commande « gpg –send-keys BEA7AAC9 » ne fonctionnait plus à cette date. J’ai donc fait :

$ gpg --export -a BEA7AAC9

Voilà, c’est fait!

Pour aller plus loin: Tutoriel de Julien Francoz