Coffre fort à mots de passe

Il y a quelque temps j’avais présenté dans un post le coffre fort à mots de passe que j’utilisais basé sur KeePassX. Le principe est que la base de donnée est sur un partage réseau de mon serveur, elle est partagée pour une utilisation familiale et tout le monde l’enrichit. Une seule instance de KeePassX peut ouvrir en écriture la base et les autres en lecture. La base de donnée est copiée à droite et à gauche au cas où.

Il se trouve que KeePassX n’est plus développé depuis 4 ans, il est donc fortement recommandé de l’abandonner et de passer à autre chose. Il se trouve qu’il existe un fork de KeePassX qui s’appelle KeePassXC qu’il est préférable d’utiliser d’autant qu’il dispose d’une intégration au navigateur Firefox. Pour cela il faudra installer la dernière version 2.6.2, la version 2.4.1 qu’on trouve sur une Mageia 7.1 ne permet pas l’intégration avec Firefox. Pour cela j’ai récupéré les sources et j’ai recompilé pour être sûr d’avoir toutes les options qui m’intéressent.

Tout d’abord j’ai dû installer les packages lib64argon2-devel, lib64sodium-devel, lib64qrencode-devel, lib64yubikey-devel, ykpers-devel et asciidoctor. Les options de compilation sont :

cmake .. -DWITH_XC_NETWORKING=ON -DWITH_XC_SSHAGENT=ON -DWITH_XC_BROWSER=ON -DWITH_XC_ALL=ON
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Cela donne quelque chose comme cela :

-- Found Git HEAD Revision: e9b9582
-- Setting up build for KeePassXC v2.6.2
-- Including translations...
-- Using asciidoctor: /bin/asciidoctor
-- Enabled features:
* Auto-Type, Automatic password typing
* Networking, Compile KeePassXC with network access code (e.g. for downloading website icons)
* KeePassXC-Browser, Browser integration with KeePassXC-Browser
* SSHAgent, SSH agent integration compatible with KeeAgent
* KeeShare, Sharing integration with KeeShare (requires quazip5 for secure containers)
* YubiKey, YubiKey HMAC-SHA1 challenge-response
* UpdateCheck, Automatic update checking
* FdoSecrets, Implement freedesktop.org Secret Storage Spec server side API.
-- Disabled features:
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/linux/systeme/keepassxc-2.6.2/build
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Une fois compilé et lancé, il charge sans opération particulière la base issue de KeePassX. On a un look qui ressemble à celui là :

Continuer la lecture de Coffre fort à mots de passe

Vérifier l’état d’un disque dur avec smartmontools

J’ai rencontré quelques soucis avec un disque Seagate IronWolf placé dans mon serveur Dell PowerEdge T310 depuis à peine quelques mois dans un RAID5 comme je l’évoque dans ce post. Il est sans cesse rejeté par le RAID que je dois reconstruire à chaque fois, et ça prend des heures. Pourtant je n’ai pas d’erreur de disques SMART flagrantes. Pour mémoire SMART est une technologie qui permet de monitorer les disques. Dans un récent post, j’avais expliqué comment utiliser smartmontools sous linux pour vérifier les disques avant de lancer une sauvegarde, dans ce post je vais détailler comment on peut vérifier l’état de santé avec cet outil dont l’équivalent pourrait être Seatools de Seagate sous windows.

Tout d’abord pour vérifier l’état du disque on tapera la commande suivante qui va lancer un test court

smartctl -t short -d megaraid,7 -a /dev/sdb
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

L’option -d correspond au device pour ma part je pointe sur le disque de mon RAID à la septième position qui correspond à mon disque naze. Pour un disque SATA normalement le -d est inutile, en revanche pour un disque branché en USB (via un adaptateur ou une boîtier), vous avez le choix de mettre comme variable derrière -d sat, usbsunplus, usbcypress et usbjmicron. Dans la pratique, il faudra taper lsusb, vous allez retrouver votre disque dur branché enUSB, exemple avec un adaptateur SATA/USB

Bus 002 Device 010: ID 7825:a2a4 ULT-Best Best USB Device
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Maintenant il faut se rendre sur cette page et voir à quel device correspond votre adaptateur ou boîtier, attention tous les périphériques ne sont pas listés, il faudra donc faire des tests avec tous les devices énumérés plus haut, pour ma part ça était -d sat.à la fois pour l’adaptateur SATA/USB et à la fois pour le boîtier USB. Avantage à linux car sous windows avec Seatools la plupart du temps il ne reconnait pas les adaptateurs et boîtiers USB.

Revenons au résultat du test court, cela donne un résultat comme cela

smartctl 7.0 2018-12-30 r4883 [x86_64-linux-5.6.6-server-1.mga7] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Seagate IronWolf
Device Model: ST3000VN007-2AH16M
Serial Number: ZGY6KHBC
LU WWN Device Id: 5 000c50 0c47c70df
Firmware Version: SC60
User Capacity: 3·000·592·982·016 bytes [3,00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 5980 rpm
Form Factor: 3.5 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS-3 T13/2161-D revision 5
SATA Version is: SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is: Sat Nov 21 09:29:23 2020 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART Status not supported: ATA return descriptor not supported by controller firmware
SMART overall-health self-assessment test result: PASSED
Warning: This result is based on an Attribute check.
General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 601) seconds.
Offline data collection
capabilities: (0x73) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
No Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 525) minutes.
Conveyance self-test routine
recommended polling time: ( 2) minutes.
SCT capabilities: (0x50bd) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 079 064 044 Pre-fail Always - 78583125
3 Spin_Up_Time 0x0003 095 095 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 8
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 085 060 045 Pre-fail Always - 345223728
9 Power_On_Hours 0x0032 094 094 000 Old_age Always - 6111 (85 55 0)
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 8
184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
188 Command_Timeout 0x0032 100 099 000 Old_age Always - 4295032835
189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0022 082 073 040 Old_age Always - 18 (Min/Max 15/25)
191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 0
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 0
193 Load_Cycle_Count 0x0032 075 075 000 Old_age Always - 50402
194 Temperature_Celsius 0x0022 018 040 000 Old_age Always - 18 (0 14 0 0 0)
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 193 193 000 Old_age Always - 25
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 1894 (198 60 0)
241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 17183414698
242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 6251948358
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 6102 -
# 2 Short offline Completed without error 00% 6078 -
# 3 Short offline Completed without error 00% 6054 -
# 4 Short offline Completed without error 00% 6030 -
# 5 Short offline Completed without error 00% 6006 -
# 6 Extended offline Completed without error 00% 5990 -
# 7 Short offline Completed without error 00% 5982 -
# 8 Short offline Completed without error 00% 5958 -
# 9 Short offline Completed without error 00% 5934 -
#10 Short offline Completed without error 00% 5910 -
#11 Short offline Completed without error 00% 5886 -
#12 Short offline Completed without error 00% 5862 -
#13 Short offline Completed without error 00% 5838 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Sat Nov 21 09:30:23 2020
Use smartctl -X to abort test.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Continuer la lecture de Vérifier l’état d’un disque dur avec smartmontools

Garmin Forerunner 735XT suite et fin

Dans un précédent post je dressais un retour d’expérience d’utilisation de la montre GPS Garmin Forerunner 735XT. Ma pire crainte s’est concrétisée, j’avais quelque doute sur la solidité de la montre et en retour d’une sortie en planche à voile, j’ai constaté que l’écran était complètement fêlé. Elle a dû recevoir un choc en navigation, je m’en suis pas rendu compte sur le moment, vu qu’elle est « protégée » par ma combinaison. L’écran de protection supplémentaire sur l’écran n’a pas servi à grand chose ou peut être à empêcher une casse plus importante et une entrée d’eau.

C’est une grosse déception, cette montre est faite pour parader dans les salons, mais n’est absolument pas faite pour les activités sportives. Passez votre chemin si vous pratiquez le VTT, le trail, la randonnée, le kite, la voile ou comme moi le surf et la planche à voile, enfin tout sport où il y a un risque de chute ou de se prendre un coup. Je ne comprends pas que ce critère de solidité ait été totalement négligé par les ingénieurs de Garmin alors qu’il était bel et bien présent sur la génération précédente de Forerunner qui respirait la solidité.

Ma montre est maintenant totalement HS pour la planche à voile, je m’en sers plus que pour le footing, ça fait cher la montre du coup pour ce qu’en j’en fais. Je suis désespéré de constater qu’il n’existe pas sur le marché de montre connecté conçue pour être robuste, une sorte de montre G-Shock connectée.

Sauvegarde de données

Depuis maintenant 20 ans la numérisation touche tous les domaines, dans le domaine privé, cela concerne des données de bureautique, les échanges par mail mais également tous les fichiers multimédia photo, vidéo et images. Récemment je me pensais à l’abri de la perte de données, je suis équipé depuis des années d’un serveur Dell PowerEdge avec RAID matériel acheté d’occasion sur Ebay (PowerEdge 840 puis T310) et je fais des sauvegardes régulières sur disque dur externe USB grâce à un script lancé automatiquement avec l’utilitaire cron. Les données les plus précieuses se retrouvent sur un autre disque externe que je stocke au boulot. Mon RAID était basé sur 4 disques Seagate ST2000DM01 de 2To chacun de 2015, alors certes le RAID n’est pas assimilable à de la sauvegarde, c’est juste un système de redondance qui dispatche les données sur plusieurs disques pour éviter de tout perdre quand un disque crashe, la tolérance au panne est donc censée être meilleure qu’avec un seul disque.

Il se trouve cependant que j’ai eu au printemps dernier une panne de mon RAID bas bruit, le RAID est passé en mode dégradé avec la perte d’un disque. Puis un second disque du RAID a commandé à défaillir, c’est là que j’ai commencé à m’en rendre compte car j’ai eu un certain nombre d’erreurs système qui remontaient. Dans ce post je relate cet incident. Il était temps de changer 2 disques de mon RAID qui avaient 5 ans, après avoir fonctionné quasiment 24h/24 7j/7 dans la période. Cette durée de vie me paraît correcte pour des disques bas de gamme. Je les ai remplacés par des Seagate IronWolf de 3To. Mon RAID 5 est donc maintenant constitué de 2 disques Seagate ST2000DM01 de 2015 et de 2 disques Seagate IronWolf de 3To ce qui donne une capacité utile de 5,5To. D’ailleurs il faut sans doute que je songe à changer les deux disques les plus anciens.

Après avoir réinstallé mon RAID avec les nouveaux disques j’ai redescendu la sauvegarde , c’est là que je me suis rendu compte qu’il manquait un paquet de fichiers. Sur le coup je n’ai pas compris car les sauvegardes avaient été régulières, j’ai reconstitué alors le fil du drame. Il y a eu un crash bas bruit sur le RAID qui a dégradé des données, la sauvegarde s’est faite normalement mais a supprimé les fichiers qui avaient disparu du RAID car corrompus. Mais quel crétin ! Je n’avais pas mis en place un test d’état de santé des disques et du RAID avant de lancer la sauvegarde. Du coup j’ai essayé de récupérer les fichiers supprimés de la sauvegarde avec Photorec, ça m’a pris beaucoup de temps (des mois !) car il y en avait pour des To, mais comme il y a eu plusieurs sauvegardes dans l’intervalle je n’ai récupéré au final que peu de choses. Dans l’histoire, j’ai perdu dans les 400 films et une centaine de vidéos perso 🙁

J’ai dû revoir de fond en comble ma pratique de la sauvegarde, mes données principales sont toujours stockées sur le RAID 5 et il existe toujours une sauvegarde journalière sur disque de USB externe. Mais j’ai rajouté des sauvegardes croisées avec d’autres PC que je lance manuellement avec unison au moins une fois par semaine et j’ai rajouté également des tests d’état de santé des disques, dès dégradation des disques les sauvegardes ne sont pas lancées, j’ai mis en place un système de mail automatique journalier qui m’informe de l’état des disques.

L’architecture est maintenant celle-ci :

Architecture de sauvegarde
Continuer la lecture de Sauvegarde de données

Installer un agenda kolab sur le webmail roundcubemail

Ma tendre et chère souhaitait pouvoir disposer d’un agenda qu’elle retrouverait sur le PC et sur son mobile pour se débarrasser de son agenda papier de moins en moins pratique. Comme je ne choisis pas la facilité et dans l’esprit que mes données ne se retrouvent pas quelque part aux US ou en Chine à la merci de hackeurs ou de revendeurs de données, j’ai choisi d’intégrer un plugin d’agenda au webmail Rouncube.

Pour mémoire je me repose sur mon serveur personnel Dell PowerEdge T310 qui tourne dans mon garage et qui fait office de cloud perso et sur lequel tourne Roundcube qui me permet d’accéder à mes mails de mon mobile comme expliqué par ici. J’ai choisi d’installer le plugin kolab, le détail de l’installation est donné par . Voilà ce que ça donne sur l’ordinateur

et sur le mobile

le tout est évidemment complètement synchronisé.

Continuer la lecture de Installer un agenda kolab sur le webmail roundcubemail