Avec Ansible
Mise a jour des fingerprints de bulbe
Pour mettre à jour la liste des relays en cours de fonctionnement, lancez :
ansible-playbook playbooks/tor_fingerprints.yml
Ça va peupler le fichier /srv/http/website/.well-known/tor-relay/rsa-fingerprint.txt
avec le contenu de /var/lib/tor-instances/**/fingerprint
Edition de la line MyFamily
Importez le contenu de bulbe dans group_vars/nodes/tor
au format liste,
Puis lancez le playbook playbooks/tor_relay.yml
sur tout les noeuds.
ansible-playbook playbooks/tor_relay.yml
Celui ci va éditer les torrc et relancer les instances. L'execution du playbook est assez longue, à cause du redémarrage des instances.
Manuellement
Récupération des fingerprints
Pour récupèrer les fingerprints sur les noeuds (en tant que root):
cat /var/lib/tor-instances/**/fingerprint
Mise à jour des fingerprints
La mise à jour se fait en modifiant d'abord les fingerprint sur /srv/http/website/.well-known/tor-relay/rsa-fingerprint.txt
puis en éditant la ligne MyFamily dans les torrc :
A date (sept 2025), cela donne la ligne de conf suivante pour torrc :
MyFamily $47EC4211A4A66768224BC18912AF8FB6E880003C,$59F2831A9BEB7AB3D5803445F946EA9FEEEFA217,$042944E139508E6A8495AA1F6F320D1087D84930,$37C984BB069C29573FB8F9F6C610DC14763B5305,$CD1FD2C1F330A3293DA6068E6A23866D063D6DCB,$42E817BE07AB39CA3BD7A442AF08E007FF2E3F5B,$5450CC0E3D08BB001E8229B8990323D11BC63332,$8F13B91FA8380842993E7C36EEF88BEC5D695587,$0DC16FEAA5A5E27A974009CBF7748BB6FAAE6DE1,$C3AACDE1671FF475D872683359777B082C1C77E6,$EEEFC9F693B3BB72C1069EC8CDAF2E6C40FCC47D,$16D3252B519861248FDEABE05A6F3B97BC510557,$4B8F0F8BB18F1D9ADC1FE7E54B3D3D605C1919A7,$CBCA0D732C95AF4F6A37DCCC4879105E426B80C9,$324053C8A296BF31A4A908CB407545DA92DF32F8,$4A39E7D2C121F664CFD9B5DF80CE9E70BB8B3C16,$5D9D80195162D7D77506EAF768F00F70A51CD191,$D4DEA60E6333B521FD5EB8E591F65C36473A2AA8,$FAA0FE94C4DF01D2CAA2204FFDBE82CD256745EB,$A6C42B3C6551EA3B020F320D383D85D19C007A91,$84F062F1BBF663D4BA71861AB6AEC74933FE1C2B,$3D979072E7FD5596CB1ABC97BE2029F8B231EE5C,$08417F5F40A190E5EB54CDC40C8C5C99969EE92C,$9F652C63770018EC6E1990C1ED3908EECABB7BAF,$88BE6B434C135557C70A013D374E53A28DA40D6A,$6012069CA4DE5780EB9A0518F15A58A274FE6F38,$1D3C3EA26EFDF8C9740DDA0402CB7222BCAAAE89,$E231DA63981425B322614331F58C7A1654EAD630,$98697EF93E26DD52CD96D3F998BF20B2A4162291,$51FDFE083BFFBF0E427178C3DEA659DF1E948819,$2EF5F5304DE04CBB5A0B361F8800AD9CC79928CC,$8E0F24062F440B4459E0AA5A6A501DAE78425516,$A319D6447B2B4107477E126EE4A2B7C38125149E,$05A48DCB220236FCCA21B432C3D4A1FCE8AFCEEB,$E2DA7E67DFC30B19C50F2957C0AAFD226143D7C8,$CFAB19E23290F5BA1F7FF24494D26FBD4E4DF6CE,$D881FA3C5A642541932ACED4A3C5140742096D11,$5409FECC2C4B59D4573AAE935BE31C5675E81431,$EFF127FA3E850B17BF9A980AFB010A172F6C6FAF,$44D1929690CF1DEF95C5D1F4F66281CF18311618,$196C05BF08CC248EE563B49D36CAC89793AFBC5E,$16E09CB06617A7215885B6C7C8436B1F8D07960F,$11C7F8EEEE7445618DD7DE562F7D1218B5DB4B2E,$746FDA7D7F633FF88BF735416A42E472D630D868,$78AD6EAF6904E777103629D6579766DB6466AA3E,$B8348F1E967D9A432F2D03E572DEF76FB25F04D3,$65935A863C1652AFD7A8FDB7C5D1ACCF562E2BFD,$F2A0F204670965A947A1AE5E2867C752E714032F,$578E007E5E4535FBFEF7758D8587B07B4C8C5D06,$90FD830C357A5109AB3C505287713F1AC811174C,$91B7A9659CDB5ACF0DEB46DAA82C122C39CC4ADF,$4F0C498701A41F4D9CA677EA763FD8CA45348E97,$5A6976353F19DAB6EB63A2CB95C00039B7D4064A,$DA380FB801539CCE1A94F9D2F4141F5916DAFB83
Puis en éditant les torrc des instances via le script
Script
Le script suivant a été développé pour faciliter la mise à jour des familles dans les différents fichiers de conf torrc de nos instances.
Le script se base sur les fingerprints présents sur https://nos-oignons.net/.well-known/tor-relay/rsa-fingerprint.txt
pour forger le bon paramètre Myfamily pour torrc, le mettre à jour sur le ou les torrc du serveur, lancer etckeeper et redémarrer le service tor.
En lancant le script update_tor_myfamily.sh
(disponible dans le $PATH pour root, sous /usr/local/bin
, ou dans /root/) :
#/bin/bash
#
# VARIABLES
URL="https://nos-oignons.net/.well-known/tor-relay/rsa-fingerprint.txt"
TOR_DIR="/etc/tor"
RSA_FILE="rsa-fingerprint.txt"
#
#
#Removing old files if exists
if [ -e $RSA_FILE ]; then
rm $RSA_FILE
fi
#Getting the RSA fingerprints of the family
if wget $URL; then
tail -n +2 rsa-fingerprint.txt | tr '\n' , > MyFamily
sed -i 's/.$//' MyFamily
sed -i 's/,/,$/g' MyFamily
sed -i '1s/^/MyFamily /' MyFamily
value=`cat MyFamily`
echo "Ready to replace family with..."
echo "$value"
else
echo "Fingerprints indisponibles"
exit 1
fi
if [ -d "$TOR_DIR/instances" ]; then
echo "Serveur tor avec instances multiples"
for i in $(seq 1 16);
do
TARGET="$TOR_DIR/instances/$i/torrc"
if [ -e $TARGET ];then
echo "Mise à jour de $TARGET"
sed -i "s/^MyFamily.*/${value}/" $TARGET
fi
done
etckeeper commit -m "MàJ de MyFamily dans tous les torrc"
systemctl restart tor || echo "ATTENTION Erreur au reboot de tor"
else
echo "Serveur tor sans instances multiples"
TARGET="$TOR_DIR/torrc"
sed -i "s/^MyFamily.*/${value}/" $TARGET
etckeeper commit -m "MàJ de MyFamily dans torrc"
systemctl restart tor || echo "ATTENTION Erreur au reboot de tor"
fi