Planet Libre

Journal du hacker : Liens intéressants Journal du hacker semaine #33

Pour la 33ème semaine de l'année 2019, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Benoît Boud@ud : La planète Archlinux (partie 6 : amélioration continue)

Sommaire 20 - pacman 21 - yay 22 - Gestion des erreurs au cours du processus de post-installation 23 - Synchronisation et mise à jour automatisée 24 - Bugs non résolus Bonjour, après quelques semaines d'utilisation, je dois dire que je suis tout à fait satisfait d'avoir basculé sur Archlinux. Nous sommes assurément en présence [...]

Gravatar de Benoît Boud@ud
Original post of Benoît Boud@ud.Votez pour ce billet sur Planet Libre.

Articles similaires

Littlewing : Mocker des méthodes « final » avec Mockito

Auparavant, dans nos tests, quand on voulait mocker des méthodes « final » ou statiques, on devait passer par PowerMock.

Depuis peu, si on utilise Mockito ( >2.1) , on n’a plus besoin d’ajouter PowerMock pour mocker des méthodes « final ».

Bon il reste toujours la gestion des méthodes statiques à gérer autrement qu’avec Mockito, mais cela va dans le bon sens.

Voici comment activer en quelques commandes le mocking des méthodes « final ».

Dans le répertoire src/test/resources, il faut créer un répertoire mockito-extensions avec un fichier nommé org.mockito.plugins.MockMaker.

src/test/resources └── mockito-extensions └── org.mockito.plugins.MockMaker

A l’intérieur de ce fichier, vous devrez ajouter le contenu suivant :

mock-maker-inline

Avec cette configuration, vous pourrez dorénavant mocker des méthodes « final » 🙂

Enjoy

Gravatar de Littlewing
Original post of Littlewing.Votez pour ce billet sur Planet Libre.

Articles similaires

Thuban : Mises à jours de packages pour -stable officiels

Jusqu'à présent, pour tenir à jour une installation d'OpenBSD, il fallait suivre la procédure à chaque nouvelle -release.

Le système de base pouvait recevoir des mises à jour avec la commande syspatch.

Cependant, les paquets installés ne recevaient pas de mise à jour à moins de : 

  • Compiler les paquets soi-même en suivant la liste de diffusion ports-security@
  • Utiliser le service tiers m::tier

C'est désormais inutile puisque solene a retroussé ses manches, a compilé elle-même les mises à jours des paquets pour les diffuser sur son serveur et montrer aux développeurs d'OpenBSD son travail. (Si l'histoire vous intéresse, vous pouvez en avoir un aperçu sur le forum. )

Cela fait désormais partie intégrante du projet.

Si vous souhaitez maintenir les paquets de votre système à jour, alors il vous suffit de lancer, sans rien avoir à modifier d'autre.

pkg_add -u

Vous pouvez lire l'annonce officielle ici.

Comme quoi, pour contribuer à un projet, il suffit de s'y mettre plutôt que d'en parler.

Merci Solène ! %λ

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Journal du hacker : Liens intéressants Journal du hacker semaine #32

Pour la 32ème semaine de l'année 2019, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Littlewing : Vérifier les commit GIT avec GPG

Juste pour un pense bête, voici comment paramétrer GIT et GITHUB/GITLAB pour signer les commits avec GPG.

Configuration GPG

Exécutez la commande suivante :

gpg --full-generate-key Sélectionnez une clé RSA (question 1) de 4096 bits (question 2).

Une fois cette commande effectuée, vous pouvez récupérer votre clé GPG avec cette commande:

gpg –list-secret-keys –keyid-format LONG

gpg --list-secret-keys --keyid-format LONG alexandre@.... /home/alexandre/.gnupg/pubring.kbx ---------------------------------- sec rsa4096/XXXXXXXXXX 2019-08-09 [SC] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX uid [ ultime ] Alexandre Touret ssb rsa4096/XXXXXXXXXX 2019-08-09 [E]

Ensuite, il faut exécuter cette commande

gpg --armor --export XXXXXXXXXX Configuration GIT

Indiquez la clé GPG à GIT

git config --local user.signingkey 6F9D7D5FCE959337

Et indiquez que vous voulez signer tous vos commits

git config --local commit.gpgsign true

Si vous ne faites pas cette dernière commande, vous devrez ajouter l’option -S à chaque exécution de la commande git commit.

Exemple:

git -a -S -m "Ajout javadoc" Configuration GITHUB

Sur Github ( il y a la même chose sur gitlab), vous pouvez dans vos paramètres ajouter cette clé . De cette manière, vos prochains commits envoyés seront vérifiés.

 En espérant que ça serve à d’autres 🙂

Gravatar de Littlewing
Original post of Littlewing.Votez pour ce billet sur Planet Libre.

Articles similaires

Benoît Boud@ud : La planète Archlinux (partie 5 : post-installation)

Notre nouveau système Archlinux est opérationnel. Cela dit, notre mission n'est pas terminée. Nous devons encore installer un environnement graphique digne de ce nom. Pour l'instant, c'est une console noire qui nous accueille et même si nous pouvons dès à présent accomplir beaucoup de choses en  ligne de commande, vous vous imaginez bien qu'une telle [...]

Gravatar de Benoît Boud@ud
Original post of Benoît Boud@ud.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #31

Pour la 31ème semaine de l'année 2019, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Chimrod : Utiliser toutes les fonts avec Xetex et Cygwin

Xetex logo

Quand on utilise xetex dans l’environnement cygwin, toutes les polices installées ne sont pas chargées par défaut. Cela vient de la configuration de cygwin qui par défaut, ne scanne pas les répertoires de latex à la recherche des polices disponibles.

La solution est simple, il faut ajouter les lignes suivantes dans le fichier /etc/fonts/fonts.conf :

/usr/share/texmf-dist/fonts/opentype /usr/share/texmf-dist/fonts/truetype

et compléter en rechargeant les polices installées :

$ fc-cache -f

Fini !

Gravatar de Chimrod
Original post of Chimrod.Votez pour ce billet sur Planet Libre.

debian-facile.org : Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

Depuis la publication de Buster , nous avons vu fleurir sur le forum pas mal de questions concernant l'impossibilité de passer certaines commandes nécessitant les droits root bien que connecté sur ce compte.
Ces commandes ont-elles disparu ? Que nenni, il s'agit juste d'une modification de la commande su permettant de passer root et en particulier de la gestion de la variable d'environnement PATH qui indique au système dans quels chemins rechercher les commandes.

Pour expliquer ce qu'est cette variable voici un court extrait du MOOC Maîtriser le Shell Bash publié sur la plateforme FunMooc par l'Université de La Réunion (sous licence CC-BY-NC-SA 4.0)

La variable PATH est une variable importante, elle donne l?accès aux commandes du système. Cette variable sert à retrouver les commandes dans l?arborescence sans qu?il ne soit nécessaire de fournir le chemin d?accès absolu. La variable PATH représente une règle de recherche pour le shell. C?est la liste des répertoires dans lesquels le shell doit rechercher une commande (en suivant l?ordre des répertoires
listés dans la variable).
Supposons que vous ayez deux commandes ls, l?une que vous avez créée et l?autre la commande classique. Celle que vous avez créée se trouve dans le répertoire /usr/local/bin et la commande classique se trouve dans /usr/bin. Pour utiliser la commande classique, vous devez saisir :

/usr/bin/ls


En revanche, si votre variable PATH contient le répertoire /usr/bin/ alors vous pouvez saisir :

ls


Si votre variable PATH contient /usr/local/bin:/usr/bin/ alors en saisissant la commande ls, la version utilisée sera celle que vous avez créée car l?ordre compte, dans la liste des répertoires de la variable PATH. Consulter le contenu d?une variable d?environnement s?effectue par une commande d?affichage echo et une substitution de variable comme le montre l?exemple avec la variable PATH.

echo $PATH


/usr/local/bin:/sbin:/bin:/usr/bin



Jusqu'à Stretch, c'est le paquet source Shadow qui fournissait la commande su. Depuis la publication de Buster, c'est util-linux qui fourni cette commande. su n'est pas absolument identique dans les deux paquets. En effet, avec l'implémentation de shadow, un simple su réinitialisait la variable PATH en y ajoutant le chemin /usr/sbin et /sbin, chemin contenant des commandes qu'on ne passe qu'avec les droits root. Comme ce n'est plus le cas avec l'implémentation issue de util-linux, le shell n'est donc pas capable de trouver ces commandes.

Voyez plutôt :

su


fdisk -l


bash: fdisk : commande introuvable


ls /sbin/fdisk


/sbin/fdisk


Le système ne trouve pas la commande, pourtant, elle est bien présente. Et voici le pourquoi du comment

echo $PATH


/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games


Pas de /sbin dans cette variable, donc, le shell ne sait pas où se trouve cette commande.

Il faut donc a présent pour ouvrir un shell root et voir la variable PATH initialisée avec ces deux répertoires taper

su -l #ou su --login
#ou
su - #oui, avec un tiret



On essaye à nouveau

su -


fdisk -l


Disque /dev/sda : 50 GiB, 53687091200 octets, 104857600 secteurs
Modèle de disque : QEMU HARDDISK  
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
...
 


Pas de problèmes ici, et le pourquoi du comment

echo $PATH


/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


Vous remarquerez l'apparition des répertoires /foo/sbin (et la disparition de /usr/games le compte root n'est pas fait pour jouer, nan mais oh, garnement tongue ).


Et voilà encore une enquête résolu par le célèbre détective Debian-Facile smile

Gravatar de debian-facile.org
Original post of debian-facile.org.Votez pour ce billet sur Planet Libre.

Thuban : Syspatch : patch smtpd - multiarch - 6.4-6.5

Un septième patch est disponible pour toutes les architectures afin de corriger un défaut dans smtpd qui pouvait planter à cause d'une entrée beaucoup trop grande, entraînant un déni de service.

 

Lancez-donc syspatch :)

Ensuite, c'est une bonne idée de relancer smtpd : rcctl restart smtpd

 

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Simon Vieille : Outil de création d’un espace web Apache et PHP

Dans mon activité personnelle et professionnelle, je suis amené à créer des espaces d’hébergement de sites web principalement écrits en PHP.

Il y a quelques années, j’ai écris un script en shell qui posait des questions et générait des fichiers de configuration pour Apache et PHP puis relançait ces services. Il a ensuite évolué et générait également les utilisateurs unix et affinait les permissions. Le principal problème du script est que d’un serveur à l’autre, il fallait mettre des coups de hache dans le code pour l’adapter.

Cette semaine, j’ai entamé une refonte complète du code. Au fur et à mesure du développement, j’ai rendu pas mal de choses configurables et je pense qu’il est fonctionnel sur des environnements relativement différents des miens.

Je vous présente donc vhost-manager, c'est un projet libre et est toujours orienté vers la génération de vhost Apache et de pools PHP FPM. Il faut make, gcc, wget pour l'installer et sh, whiptail et php sont nécessaires à son utilisation.

vhost-manager

Le code source est disponible ici. Le projet se configure via un fichier de variables et j'ai conservé le principe des questions/réponses pour générer les fichiers.

Gravatar de Simon Vieille
Original post of Simon Vieille.Votez pour ce billet sur Planet Libre.

Articles similaires

Benoît Boud@ud : La planète Archlinux (partie 4)

Sommaire 10 - Démonter et remonter les partitions 11 - Sélectionner le miroir 12 - Installer la base 13 - Configurer le nouveau système 14 - Installer le chargeur d'amorçage 15 - Redémarrage ________________________________ 10 - Démonter et remonter les partitions À ce stade de l'installation, vous pouvez très bien faire une pause-café et éteindre [...]

Gravatar de Benoît Boud@ud
Original post of Benoît Boud@ud.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #30

Pour la 30ème semaine de l'année 2019, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

ephase : Importer des clefs GnuPG dans sa Nitrokey Pro

Dans un précédent article j’ai présenté la Nitrockey Pro et fait un bref tour du propriétaire. Cette fois si je vais expliquer comment y importer des clefs PGP déjà existante.

Bien entendu je part sur un système déjà installée et configurée et part du principe que la Nitrokey est paramétrée (PIN utilisateur et administrateur, nom du propriétaire etc.)

Avant de commencer

Voici la composition des clefs:

  • une clé principale servant a créer des sous clefs, de les révoquer et de signer celles des copains.
  • une sous clé permettant de chiffrer
  • enfin une sous clé permettant de signer

A partir de là nous allons mettre mes deux sous clefs sur la Nitrokey et garder la clé principale dans un endroit sûr.

L’importation n’est pas très difficile et prendra qu’une minute. Par contre il est important de réaliser quelques opérations en plus :

  • Créer un certificat de révocations.
  • Sauvegarder comme il se doit la clé maître et ses sous clefs, le certificat de révocation. En effet l’opération d’importation de vous sous clefs les supprimera du dossier ~/.GnuPG/
  • Sortir ma Master Key du trousseau GnuPG pour la mettre en sécurité sur un périphérique de stockage externe (clé USB)
Réaliser une sauvegarde

Avant tout, il est important de garder une copie de sauvegarde de sa clé maître et de ses sous clefs au cas où une manipulations ne se passerait pas comme prévu. Exportons les clefs privées, publiques et le certificat de révocation dans un fichier compressé et chiffré.

Commençons par créer un dossier dans le répertoire /tmp afin de recevoir le certificat de révocation et les sauvegardes de clefs :

mkdir /tmp/gpg_backup chmod 700 /tmp/gpg_backup Certificat de révocation

Voici la commande utile pour créer un certificat de révocation pour notre clé maître :

gpg --gen-revoke --output /tmp/gpg_backup/revoke.cert

Où représente l’identifiant de la clé. Une boite de dialogue apparaît ensuite demandant la phrase de passe permettant de débloquer la clé privée.

Exporter les clefs

Commençons par la clé privée :

gpg --export-secret-keys --armor --output /tmp/gpg_backup/ephase_private.asc

Bien entendu la phrase de passe de la clé sera demandée

Puis la clé publique, qui ne nécessite pas de phrase de passe pour être débloquée :

gpg --export --armor --output /tmp/gpg_backup/ephase_public.asc Créer une archive sécurisée

Bien entendu il ne faut pas que ces données (du moins le certificat de révocation et la clé privée) tombent entre de mauvaise main, il suffit simplement de créer une archive chiffrée du dossier /tmp/gpg_backup :

tar cz -C '/tmp/' gpg_backup | gpg --symmetric --output ephase_key.gpg && rm -rf /tmp/gpg_backup

Après avoir rentré un mot de passe de chiffrement fort pour protéger notre sauvegarde, nous sommes fin prêt pour la suite des opérations. Pour restaurer le dossier il suffira d’utiliser la commande suivante :

gpg --decrypt ephase_key.gpg | tar xz Mettre ce fichier à l’abri

Le fichier ephase_key.gpg sera mis à l’abri sur un espace de stockage hors ligne (voire même plusieurs).

Importer la paire de clefs

La manipulation se fait depuis la gestion de clefs gpg, nous y accédons avec la commande :

gpg --expert --edit-key gpg (GnuPG) 2.2.17; Copyright (C) 2019 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 clef secrète est disponible. sec rsa4096/XXXXXXXXXXXXXXXX créé : 2016-07-07 expire : 2020-07-12 utilisation : SC confiance : ultime validité : ultime ssb rsa4096/YYYYYYYYYYYYYYYY créé : 2016-07-07 expire : 2020-07-12 utilisation : E ssb rsa4096/ZZZZZZZZZZZZZZZZ créé : 2016-07-07 expire : 2020-07-12 utilisation : S [ ultime ] (1). Yorick Barbanneau gpg>

À partir de là nous allons procéder par étape :

  1. choisir la sous clé pour 1 (le chiffrement) et l’exporter dans le slot chiffrement sur la Nitrokey
  2. choisir la sous clé 2 (signature) et l’exporter dans le slot signature

La clé maitre sera sortie du trousseau et mise à l’abri.

Exporter la clé ¨Chiffrement¨

Voici les commandes à entrer pour exporter la première clé sur la Nitrokey :

gpg> key 1 [...] gpg> keytocard

key 1 permet de dire à gpg que l’on travaille sur la première sous clé, et keytocard envoi celle-ci sur notre smartcard

gpg nous demande de déverrouiller par en entrant la phrase de passe et le code PIN administrateur de la Nitrokey.

Exporter la clé ¨Signature¨

Il faut maintenant dé-sélectionner la sous clé 1 :

gpg> key 1

Pour copier la clé 2:

gpg> key 2 [...] gpg> keytocard

Comme précédemment, gpg nous demande de déverrouiller par en entrant la phrase de passe et le code PIN administrateur de la Nitrokey.

Sauvegarder les changements.

Il ne reste plus qu’à sauvegarder nos changement sur les clefs et quitter gpg

gpg> save

Les deux sous clefs seront alors supprimées de notre trousseau et disponible uniquement via la smartcard.

Mettre sa clé maître à l’abri

La clé maître est la plus importante des clefs, elle permet de créer d’autre sous clefs, d’émettre des certificats de révocation pour celles-ci ou encore de signer les clefs publique des amis.

Il est tout à fait possible de la sortir du trousseau pour la mettre à l’abri et de la remettre lorsque l’on en a besoin.

Pour ma part j’ai choisi de mettre la clé sur un support externe chiffré, et avec l’aide d’un script de monter le support lorsque j’en ai besoin et de créer un lien symbolique de la clé depuis le répertoire de GnuPG.

Les outils utilisés sont en général installés de base : LUKS et udisk

Créer le conteneur chiffré

Toutes les opérations suivantes se font en super utilisateur ou avec sudo.

Dans un premier temps partitionnons la clé USB (ici sdb):

parted -s /dev/sdb mklabel msdos mkpart primary ext4 1MiB 100%

Il nous faut ensuite créer le conteneur chiffré :

cryptsetup luksFormat /dev/sdb1 WARNING! ======== Cette action écrasera définitivement les données sur /dev/sdb1. Are you sure? (Type uppercase yes): YES Saisissez la phrase secrète pour /dev/sdb1 : Vérifiez la phrase secrète :

Le déverrouiller :

cryptsetup luksOpen /dev/sdb1 gpg_master Saisissez la phrase secrète pour /dev/sdb1 :

Pour le formater :

mkfs.ext4 -E root_owner=1000:1000 -m 0 /dev/mapper/gpg_master

Il faut bien entendu adapter le paramètre root_owner en fonction de votre UID et de votre GID.

Et enfin monter la partition avec :

mkdir -p /mnt/usb mount /dev/mapper/gpg_master /mnt/usb

Puis s’assurer que la clé USB ne peut être lue seulement par notre utilisateur :

chmod 700 /mnt/usb Déplacer la clé maitre GnuPG sur votre clé USB

Les commandes suivante sont à faire dans la foulée mais en tant utilisateur courant.

Nous allons utilisé une fonctionnalité de GnuPG 2 : les clefs privées sont stockée dans le répertoire ~/.gnupg/private-keys-v1.d/ ou chaque fichier correspond à une clé et le nom est repris dans le champs keygrip :

gpg -K --with-keygrip /home/ephase/.gnupg/pubring.kbx ------------------------------- sec rsa4096 2016-07-07 [SC] [expire : 2020-07-12] 3526F4565D76C5674AA56690936CDF3783293949 Keygrip = ABCDEF1234567890ABCDEF1234567890ABCDEF12 uid [ ultime ] Yorick Barbanneau ssb> rsa4096 2016-07-07 [E] [expire : 2020-07-12] Keygrip = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ssb> rsa4096 2016-07-07 [S] [expire : 2020-07-12] Keygrip = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

Je doit donc chercher la clé 3526F4565D76C5674AA56690936CDF3783293949.key et la copier sur notre clé :

mkdir -p /mnt/usb/.gpg_master chown 700 /mnt/usb/.gpg_master mv ~/.gnupg/private-keys-v1.d/3526F4565D76C5674AA56690936CDF3783293949.key /mnt/usb/.usbmaster

Afin de bien vérifier que la clé n’est plus disponible, il suffit de faire :

gpg -K /home/ephase/.gnupg/pubring.kbx ------------------------------- sec# rsa4096 2016-07-07 [SC] [expire : 2020-07-12] 3526F4565D76C5674AA56690936CDF3783293949 uid [ ultime ] Yorick Barbanneau ssb> rsa4096 2016-07-07 [E] [expire : 2020-07-12] ssb> rsa4096 2016-07-07 [S] [expire : 2020-07-12]

Le # à côté de sec indique que la clé maître n’est plus disponible dans le trousseau GnuPG.

Automatiser le montage de la clé

Afin de faciliter les opération de montage et démontage de la clé USB contenant notre clé maître, on va s’aider d’un script.

L’utilisation est simple, une fois mis dans un endroit accessible via le $PATH il suffit de faire gpgmount.sh m pour monter la clé USB ou gpgmount.sh u pour la démonter.

#!/bin/bash UUID="" mountpoint="" usage () { cat < $0 m | u $0 mount | unmount mount or unmount encrypted device based on UUID and attach private keys EOF } if [ -L "/dev/disk/by-uuid/${UUID}" ] then case "$@" in "m"|"mount") echo "Mount encryted key" action=$(udisksctl unlock -b /dev/disk/by-uuid/${UUID}) if [ ! $? -eq 0 ] then echo $action exit 10 fi mountpoint=$(udisksctl mount -b /dev/mapper/luks-${UUID} | \\ awk '{print $4}') while read -r f do base=$(basename $f) #create symlink to key file if not exist if [ ! -e "~/.gnupg/private-keys-v1.d/$base" ] then ln -s $f ~/.gnupg/private-keys-v1.d/$base fi done < <(find ${mountpoint%.}/.gpg_master/ -type f -name "*.key") ;; "u"|"unmount") echo "unmount encrypted key" while read -r f do rm $f done < <(find ~/.gnupg/private-keys-v1.d -type l -name "*.key") udisksctl unmount -b /dev/mapper/luks-${UUID} 2&> /dev/null || \\ echo "Volume is already unmounted" udisksctl lock -b /dev/disk/by-uuid/${UUID} 2&> /dev/null || \\ echo "Encrypted container is not unlocked" ;; *) echo "parameter not understood, what do you want :" usage exit 1 ;; esac else echo "USB device $UUID is not connected" exit 5 fi exit 0

Il faut bien entendu mettre l’uuid de la partition contenant notre clé maître dans la variable UUID.

Pour le récupérer il suffit de lancer la commande blkid en tant que root avec en paramètre la partition en question:

blkid /dev/sdb1 /dev/sdb1: UUID="" TYPE="crypto_LUKS" PARTUUID="" En conlusion

J’ai essayé ici de créer un environnement équilibré entre sécurité et facilité. La Nitrokey permet donc de sécuriser mes sous clefs utilisées tous les jours tout en les rendant disponibles sur mes deux machines principales.

Bien sûr il serait plus sécurisé de n’utiliser la clé maître sur une machine totalement hors ligne démarrée par une distribution live. Mais avouez que pour signer les clé des amis (lors de chiffro-fête par exemple), ce n’est pas l’idéal.

Bibliographie

Kernel Maintainer PGP guide — The Linux Kernel documentation par Konstantin Ryabitsev - lien

Using an offline GnuPG master key (2015) par Damien Goutte-Gattat - lien

Gravatar de ephase
Original post of ephase.Votez pour ce billet sur Planet Libre.

Articles similaires

ephase : Importer des clefs GnuPG dans sa Nitrockey Pro

Dans un précédent article j’ai présenté la Nitrockey Pro et fait un bref tour du propriétaire. Cette fois si je vais expliquer comment y importer des clefs PGP déjà existante.

Bien entendu je part sur un système déjà installée et configurée et part du principe que la Nitrokey est paramétrée (PIN utilisateur et administrateur, nom du propriétaire etc.)

Avant de commencer

Voici la composition des clefs:

  • une clé principale servant a créer des sous clefs, de les révoquer et de signer celles des copains.
  • une sous clé permettant de chiffrer
  • enfin une sous clé permettant de signer

A partir de là nous allons mettre mes deux sous clefs sur la Nitrokey et garder la clé principale dans un endroit sûr.

L’importation n’est pas très difficile et prendra qu’une minute. Par contre il est important de réaliser quelques opérations en plus :

  • Créer un certificat de révocations.
  • Sauvegarder comme il se doit la clé maître et ses sous clefs, le certificat de révocation. En effet l’opération d’importation de vous sous clefs les supprimera du dossier ~/.GnuPG/
  • Sortir ma Master Key du trousseau GnuPG pour la mettre en sécurité sur un périphérique de stockage externe (clé USB)
Réaliser une sauvegarde

Avant tout, il est important de garder une copie de sauvegarde de sa clé maître et de ses sous clefs au cas où une manipulations ne se passerait pas comme prévu. Exportons les clefs privées, publiques et le certificat de révocation dans un fichier compressé et chiffré.

Commençons par créer un dossier dans le répertoire /tmp afin de recevoir le certificat de révocation et les sauvegardes de clefs :

mkdir /tmp/gpg_backup chmod 700 /tmp/gpg_backup Certificat de révocation

Voici la commande utile pour créer un certificat de révocation pour notre clé maître :

gpg --gen-revoke --output /tmp/gpg_backup/revoke.cert

Où représente l’identifiant de la clé. Une boite de dialogue apparaît ensuite demandant la phrase de passe permettant de débloquer la clé privée.

Exporter les clefs

Commençons par la clé privée :

gpg --export-secret-keys --armor --output /tmp/gpg_backup/ephase_private.asc

Bien entendu la phrase de passe de la clé sera demandée

Puis la clé publique, qui ne nécessite pas de phrase de passe pour être débloquée :

gpg --export --armor --output /tmp/gpg_backup/ephase_public.asc Créer une archive sécurisée

Bien entendu il ne faut pas que ces données (du moins le certificat de révocation et la clé privée) tombent entre de mauvaise main, il suffit simplement de créer une archive chiffrée du dossier /tmp/gpg_backup :

tar cz -C '/tmp/' gpg_backup | gpg --symmetric --output ephase_key.gpg && rm -rf /tmp/gpg_backup

Après avoir rentré un mot de passe de chiffrement fort pour protéger notre sauvegarde, nous sommes fin prêt pour la suite des opérations. Pour restaurer le dossier il suffira d’utiliser la commande suivante :

gpg --decrypt ephase_key.gpg | tar xz Mettre ce fichier à l’abri

Le fichier ephase_key.gpg sera mis à l’abri sur un espace de stockage hors ligne (voire même plusieurs).

Importer la paire de clefs

La manipulation se fait depuis la gestion de clefs gpg, nous y accédons avec la commande :

gpg --expert --edit-key gpg (GnuPG) 2.2.17; Copyright (C) 2019 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 clef secrète est disponible. sec rsa4096/XXXXXXXXXXXXXXXX créé : 2016-07-07 expire : 2020-07-12 utilisation : SC confiance : ultime validité : ultime ssb rsa4096/YYYYYYYYYYYYYYYY créé : 2016-07-07 expire : 2020-07-12 utilisation : E ssb rsa4096/ZZZZZZZZZZZZZZZZ créé : 2016-07-07 expire : 2020-07-12 utilisation : S [ ultime ] (1). Yorick Barbanneau gpg>

À partir de là nous allons procéder par étape :

  1. choisir la sous clé pour 1 (le chiffrement) et l’exporter dans le slot chiffrement sur la Nitrokey
  2. choisir la sous clé 2 (signature) et l’exporter dans le slot signature

La clé maitre sera sortie du trousseau et mise à l’abri.

Exporter la clé ¨Chiffrement¨

Voici les commandes à entrer pour exporter la première clé sur la Nitrokey :

gpg> key 1 [...] gpg> keytocard

key 1 permet de dire à gpg que l’on travaille sur la première sous clé, et keytocard envoi celle-ci sur notre smartcard

gpg nous demande de déverrouiller par en entrant la phrase de passe et le code PIN administrateur de la Nitrokey.

Exporter la clé ¨Signature¨

Il faut maintenant dé-sélectionner la sous clé 1 :

gpg> key 1

Pour copier la clé 2:

gpg> key 2 [...] gpg> keytocard

Comme précédemment, gpg nous demande de déverrouiller par en entrant la phrase de passe et le code PIN administrateur de la Nitrokey.

Sauvegarder les changements.

Il ne reste plus qu’à sauvegarder nos changement sur les clefs et quitter gpg

gpg> save

Les deux sous clefs seront alors supprimées de notre trousseau et disponible uniquement via la smartcard.

Mettre sa clé maître à l’abri

La clé maître est la plus importante des clefs, elle permet de créer d’autre sous clefs, d’émettre des certificats de révocation pour celles-ci ou encore de signer les clefs publique des amis.

Il est tout à fait possible de la sortir du trousseau pour la mettre à l’abri et de la remettre lorsque l’on en a besoin.

Pour ma part j’ai choisi de mettre la clé sur un support externe chiffré, et avec l’aide d’un script de monter le support lorsque j’en ai besoin et de créer un lien symbolique de la clé depuis le répertoire de GnuPG.

Les outils utilisés sont en général installés de base : LUKS et udisk

Créer le conteneur chiffré

Toutes les opérations suivantes se font en super utilisateur ou avec sudo.

Dans un premier temps partitionnons la clé USB (ici sdb):

parted -s /dev/sdb mklabel msdos mkpart primary ext4 1MiB 100%

Il nous faut ensuite créer le conteneur chiffré :

cryptsetup luksFormat /dev/sdb1 WARNING! ======== Cette action écrasera définitivement les données sur /dev/sdb1. Are you sure? (Type uppercase yes): YES Saisissez la phrase secrète pour /dev/sdb1 : Vérifiez la phrase secrète :

Le déverrouiller :

cryptsetup luksOpen /dev/sdb1 gpg_master Saisissez la phrase secrète pour /dev/sdb1 :

Pour le formater :

mkfs.ext4 -E root_owner=1000:1000 -m 0 /dev/mapper/gpg_master

Il faut bien entendu adapter le paramètre root_owner en fonction de votre UID et de votre GID.

Et enfin monter la partition avec :

mkdir -p /mnt/usb mount /dev/mapper/gpg_master /mnt/usb

Puis s’assurer que la clé USB ne peut être lue seulement par notre utilisateur :

chmod 700 /mnt/usb Déplacer la clé maitre GnuPG sur votre clé USB

Les commandes suivante sont à faire dans la foulée mais en tant utilisateur courant.

Nous allons utilisé une fonctionnalité de GnuPG 2 : les clefs privées sont stockée dans le répertoire ~/.gnupg/private-keys-v1.d/ ou chaque fichier correspond à une clé et le nom est repris dans le champs keygrip :

gpg -K --with-keygrip /home/ephase/.gnupg/pubring.kbx ------------------------------- sec rsa4096 2016-07-07 [SC] [expire : 2020-07-12] 3526F4565D76C5674AA56690936CDF3783293949 Keygrip = ABCDEF1234567890ABCDEF1234567890ABCDEF12 uid [ ultime ] Yorick Barbanneau ssb> rsa4096 2016-07-07 [E] [expire : 2020-07-12] Keygrip = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ssb> rsa4096 2016-07-07 [S] [expire : 2020-07-12] Keygrip = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

Je doit donc chercher la clé 3526F4565D76C5674AA56690936CDF3783293949.key et la copier sur notre clé :

mkdir -p /mnt/usb/.gpg_master chown 700 /mnt/usb/.gpg_master mv ~/.gnupg/private-keys-v1.d/3526F4565D76C5674AA56690936CDF3783293949.key /mnt/usb/.usbmaster

Afin de bien vérifier que la clé n’est plus disponible, il suffit de faire :

gpg -K /home/ephase/.gnupg/pubring.kbx ------------------------------- sec# rsa4096 2016-07-07 [SC] [expire : 2020-07-12] 3526F4565D76C5674AA56690936CDF3783293949 uid [ ultime ] Yorick Barbanneau ssb> rsa4096 2016-07-07 [E] [expire : 2020-07-12] ssb> rsa4096 2016-07-07 [S] [expire : 2020-07-12]

Le # à côté de sec indique que la clé maître n’est plus disponible dans le trousseau GnuPG.

Automatiser le montage de la clé

Afin de faciliter les opération de montage et démontage de la clé USB contenant notre clé maître, on va s’aider d’un script.

L’utilisation est simple, une fois mis dans un endroit accessible via le $PATH il suffit de faire gpgmount.sh m pour monter la clé USB ou gpgmount.sh u pour la démonter.

#!/bin/bash UUID="" mountpoint="" usage () { cat < $0 m | u $0 mount | unmount mount or unmount encrypted device based on UUID and attach private keys EOF } if [ -L "/dev/disk/by-uuid/${UUID}" ] then case "$@" in "m"|"mount") echo "Mount encryted key" action=$(udisksctl unlock -b /dev/disk/by-uuid/${UUID}) if [ ! $? -eq 0 ] then echo $action exit 10 fi mountpoint=$(udisksctl mount -b /dev/mapper/luks-${UUID} | \\ awk '{print $4}') while read -r f do base=$(basename $f) #create symlink to key file if not exist if [ ! -e "~/.gnupg/private-keys-v1.d/$base" ] then ln -s $f ~/.gnupg/private-keys-v1.d/$base fi done < <(find ${mountpoint%.}/.gpg_master/ -type f -name "*.key") ;; "u"|"unmount") echo "unmount encrypted key" while read -r f do rm $f done < <(find ~/.gnupg/private-keys-v1.d -type l -name "*.key") udisksctl unmount -b /dev/mapper/luks-${UUID} 2&> /dev/null || \\ echo "Volume is already unmounted" udisksctl lock -b /dev/disk/by-uuid/${UUID} 2&> /dev/null || \\ echo "Encrypted container is not unlocked" ;; *) echo "parameter not understood, what do you want :" usage exit 1 ;; esac else echo "USB device $UUID is not connected" exit 5 fi exit 0

Il faut bien entendu mettre l’uuid de la partition contenant notre clé maître dans la variable UUID.

Pour le récupérer il suffit de lancer la commande blkid en tant que root avec en paramètre la partition en question:

blkid /dev/sdb1 /dev/sdb1: UUID="" TYPE="crypto_LUKS" PARTUUID="" En conlusion

J’ai essayé ici de créer un environnement équilibré entre sécurité et facilité. La Nitrokey permet donc de sécuriser mes sous clefs utilisées tous les jours tout en les rendant disponibles sur mes deux machines principales.

Bien sûr il serait plus sécurisé de n’utiliser la clé maître sur une machine totalement hors ligne démarrée par une distribution live. Mais avouez que pour signer les clé des amis (lors de chiffro-fête par exemple), ce n’est pas l’idéal.

Bibliographie

Kernel Maintainer PGP guide — The Linux Kernel documentation par Konstantin Ryabitsev - lien

Using an offline GnuPG master key (2015) par Damien Goutte-Gattat - lien

Gravatar de ephase
Original post of ephase.Votez pour ce billet sur Planet Libre.

Articles similaires

Full Circle Magazine FR : Le numéro 146 est disponible

Bonjour !

En cette fin de juillet, l'équipe du FCMfr vous propose de quoi lire à la plage, à la compagne, en montagne ou carrément chez vous : le numéro 146 du magazine Full Circle, celui de juin 2019, en français. Comme d'habitude, il est disponible sur notre page NUMÉROS ou peut être récupéré directement en cliquant sur la photo de couverture ci-dessous. issue146fr.png

Outre les bonnes rubriques habituelles, vous y trouverez notamment :

  • une critique élogieuse de Lubuntu 19.04 avec son bureau LXQt, symbolisé par le joli colibri sur notre couverture. Vous serez peut-être tenté de l'essayer vous-même !
  • les tutoriels habituels (Inkscape, Python, Freeplane et Darktable) ;
  • d'autres liens vers de l'aide sur Ubuntu donnés par Richard dans Ubuntu au quotidien ;
  • une critique sur un livre disponible uniquement en anglais, mais qui a l'air passionnant (Math Adventures With Python) ;
  • et, dans la rubrique Mon Histoire, une présentation de tout ce qu'Erik fait quand il installe une nouvelle version d'Ubuntu, ce qui peut lui prendre entre plusieurs heures et plusieurs jours ! Et vous ?!

Nous vous en souhaitons bonne lecture.

Passez un excellent été et à la rentrée !

Bab, scribeur et relecteur, d52fr, traducteur et relecteur, mais aussi scribeur remplaçant juste avant la parution du numéro (merci, d52fr !), et moi-même, AuntieE, traductrice et relectrice

Gravatar de Full Circle Magazine FR
Original post of Full Circle Magazine FR.Votez pour ce billet sur Planet Libre.

Articles similaires

Yannic Arnoux : Je vous l’avais bien dit

Mini-bilan après les décisions des 8 derniers mois : migration Docker, refonte du blog, nouveau domaine, hébergement chez GitHub Pages…

Je n’ai pas achevé le système de sauvegarde (alors que je tourne sur un VPS à 4 euros le mois),

Je n’ai pas achevé le système de monitoring,

Je viens de découvrir que le blog a perdu magiquement sa barre de navigation ! Je ne sais pas depuis quand, ce qui est sûr c’est que je ne maîtrise pas la génération HTML des pages GitHub.

J’ai voulu lever le pied sur la gestion de l’infra, me reposer sur GitHub mais c’est la cata ! Il est temps de se retrousser les manches.

Bruce et Alfred

Nous savons tous le réel plaisir que vous avez à dire : je vous l’avais bien dit…

Gravatar de Yannic Arnoux
Original post of Yannic Arnoux.Votez pour ce billet sur Planet Libre.

RaspbianFrance : Raspbian France change de nom et devient Raspberry Pi FR !

Cela fait maintenant 5 ans que nous avons lancé le site Raspbian France. Au départ simple blog autour de Raspbian, le site s’est petit à petit étoffé et est parvenu à rassembler une communauté nombreuse et fidèle, venant apprendre avec les tutoriels, s’informer avec les articles d’actualité, ou échanger sur le forum !

Au cours de ces 5 années, le site a bien changé, et il nous semble opportun d’acter ce changement en changeant le nom du site.

Un nom reflétant mieux notre contenu.

À l’origine, Raspbian France a été lancé au cours de notre seconde année d’études supérieures, comme un blog autour du système d’exploitation Raspbian. Tutoriel après tutoriel, notre thématique s’est élargie et nous traitons maintenant de la Raspberry Pi en général plutôt que d’un système d’exploitation.

Du fait de ces évolutions, le nom Raspbian France ne nous semble plus refléter le contenu du site, et nous avons donc pris la décision de changer le nom du site ainsi que le nom de domaine associé.

Ancien design raspbian franceÀ l’époque, Raspbian France ça ressemblait à ça !Un nom plus explicite et mieux reconnaissable.

Que ce soit à travers les tutoriels, le forum ou RaspiSMS, je crois pouvoir dire que nous avons pleinement contribué à la communauté française autour de la Raspberry Pi, et que nous sommes aujourd’hui connus et reconnus par cette communauté.

Toutefois, si le site est bien connu parmi les plus confirmés, nous avons pu constater que les nouveaux venus dans la communauté ont tendance à avoir un peu de mal avec le nom du site.

En effet, pour une personne débutant avec la Raspberry Pi, le nom Raspbian n’évoque pas forcément grand chose et le lien avec la Raspberry Pi n’est pas évident.

Ce changement de nom devrait donc permettre aux nouveaux venus de trouver plus facilement le site, et de rendre le nom plus représentatif du contenu.

Comment le changement de nom va-t-il se passer ?

Dès aujourd’hui, le site va officiellement être renommé. Techniquement, cela signifie que l’ancien nom de domaine sera redirigé vers le nouveau et que les références internes à « Raspbian France » seront modifiées pour « Raspberry Pi FR ».

En clair, à chaque fois que vous tenterez d’accéder au site Raspbian France, vous serez automatiquement redirigé vers le nouveau nom de domaine, raspberry-pi.fr, sur la page que vous vouliez consulter sur le site historique. Il en va de même pour le forum.

De votre côté, tout sera donc totalement transparent ! Si vous avez fait un lien vers le site, vous n’avez pas besoin de le mettre à jour !

En interne, l’ensemble des liens vont être mis à jour vers la nouvelle adresse.

Nous souhaitons conserver le nom de domaine historique pendant encore plusieurs années pour assurer les redirections dans le temps et éviter que des tutoriels externes ne pointent vers des pages inexistantes !

Nous espérons que vous nous suivrez sous ce nouveau nom comme vous l’avez fait sous l’ancien !

Lire l'article complet : Raspbian France change de nom et devient Raspberry Pi FR !

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

Articles similaires

Pages