Linux
2FA avec oathtool - Authentification à deux facteurs
Mes exemples et mon utilisation est faite sous GNU/Linux.
De plus en plus de sites/applications imposent l'utilisation de l'authentification à deux facteurs. Ce qui est bien pour la sécurité.
Mais attention de ne pas déléguer votre sécurité à des services obscure.
Installation
Documentation de OATH Toolkit.
Utilisation
La commande : oathtool
Les options :
-
-b
l'encodage en base32 la clé, -
--totp
utilise basé sur le temps.
Paramètres :
- La clé transmise par le tiers
Exemple :
oathtool -b --totp LA_CLE_TRANSMISE_PAR_LE_TIERS
Stockage des clé tiers
Je garde les clés des tiers dans mon gestionnaire de mot de passe habituel : pass.
J'y ajoute les clés dans un dossier « 2fa ».
Ajout de la clé tiers dans pass :
pass edit "2fa/NOM_DU_TIERS"
La commande ouvre un éditeur de fichier, il suffit d'enregistrer la clé du tiers dedans et fermer.
Générer le code d'authentification :
pass show "2fa/NOM_DU_TIERS" | xargs -d '\n' oathtool -b --totp
Bépo - redéfinir les touches clavier (keybinding)
Modifier les touches des différents logiciels.
Commandes utiles
Tar
Création d'une archive : tar -czf chemin/du/tar/filchier.tar.gz dossier/a/tarrer
Décompresset une archeve : tar -xzf chemin/du/tar/filchier.tar.gz
Détails des options
-
-c
Créer l'archive -
-z
Compression Gzip -
-f
Fournit le chemin du tar
SCP
Envoyer un dossier : scp -rp chemin/local utilisateur@le.serveur.distant:chemin/distant
Evoyer un fichier : scp -p chemin/local/fichier.txt utilisateur@le.serveur.distant:chemin/distant/fichier.txt
Détails des options
-
-r
Inclure tous les fichiers et dossiers -
-p
Préserver les droits -
-P
Renseigner le port pour l'accès ssh
xmllint
Indenter un fichier xml : xmllint data.xml --format > destination.xml
Chroot : changement de dossier racine
La comande "chroot" permet de changer le répertoire racine vers un nouvel emplacement.
Tout ce passe en root.
Créer le répertoire où monter le système : mkdir /mnt
Monter la partition : mount /mnt
Préparation du dosser spécial "dev" : mount -o bind /mnt/dev
Préparation du dosser spécial "proc" : mount -t proc /proc /mnt/proc
Préparation du dosser spécial "sys" (pas obligatoire mais ça peut servir) : mount -t sysfs /sys /mnt/sys
Bash prompt
Voici mon bash color.
Il colore le prompt et affiche la branche en verte. Si le git est détaché du "HEAD", il affiche l'élément en bleu.
Téléchargez le ou prenez ce qui vous plait ci dessous :
#########################################
## [Colorize bash prompt with git branch #](linux/100_bash_prompt.md)
## [ By Marc EYMARD #](linux/100_bash_prompt.md)
## [ Follow me on twitter: @MarcEymard #](linux/100_bash_prompt.md)
#########################################
BLACK="\[\033[0;30m\]"
RED="\[\033[0;31m\]"
RED_BACK="\[\033[41m\]"
YELLOW="\[\033[0;33m\]"
GREEN="\[\033[0;32m\]"
BLUE="\[\033[0;34m\]"
BLUE_BACK="\[\033[44m\]"
LIGHT_RED="\[\033[1;31m\]"
LIGHT_GREEN="\[\033[1;32m\]"
WHITE="\[\033[1;37m\]"
WHITE_BACK="\[\033[47m\]"
LIGHT_GRAY="\[\033[0;37m\]"
COLOR_NONE="\[\e[0m\]"
function parse_git_branch {
git rev-parse --git-dir &> /dev/null
git_status="$(git status 2> /dev/null)"
branch_pattern="^On branch ([^${IFS}]*)"
tag_pattern="^HEAD detached at ([^${IFS}]*)"
remote_pattern="Your branch is (.*) of"
diverge_pattern="Your branch and (.*) have diverged"
if [[ ! ${git_status}} =~ "working directory clean" ]]; then
state="${LIGHT_RED}⚡"
fi
# add an else if or two here if you want to get more specific
if [[ ${git_status} =~ ${remote_pattern} ]]; then
if [[ ${BASH_REMATCH[1]} == "ahead" ]]; then
remote="${YELLOW}↑"
else
remote="${YELLOW}↓"
fi
fi
if [[ ${git_status} =~ ${diverge_pattern} ]]; then
remote="${YELLOW}↕"
fi
if [[ ${git_status} =~ ${branch_pattern} ]]; then
branch=${BASH_REMATCH[1]}
echo " (${branch})${remote}${state}"
elif [[ ${git_status} =~ ${tag_pattern} ]]; then
branch=${BASH_REMATCH[1]}
echo " ${BLUE}(${branch})${remote}${state}"
fi
}
function prompt_func() {
previous_return_value=$?;
if [ "$TERM" != "linux" -a -z "$EMACS" ]
then
TITLEBAR="\[\e]2;\u@\h:\w\a\]"
else
TITLEBAR=""
fi
prompt="${TITLEBAR}${BLUE}[${COLOR_NONE}${BLUE}\u${WHITE}@${RED}\h ${YELLOW}\w${GREEN}$(parse_git_branch)${BLUE}]${COLOR_NONE}"
if test $previous_return_value -eq 0
then
PS1="${prompt}${GREEN}\\\$${COLOR_NONE} "
else
PS1="${prompt}${LIGHT_RED}\\\$${COLOR_NONE} "
fi
}
PROMPT_COMMAND=prompt_func