J’y pensais depuis un certain temps, ce soir c’est chose faite : les polices d’écriture ou « Google Fonts » sont à présent désactivées sur ce WordPress. Désormais, plus de requêtes vers Google pour récupérer ces éléments à chaque visite.
La manipulation est simple à effectuer, il suffit d’installer l’extension « Disable Google Fonts » et l’effet est alors immédiat.
Si je regarde les chargements externes encore présent sur Unicoda, je trouve Gravatar, bien évidemment, et Youtube lorsque j’ajoute une vidéo à un billet. Pour Gravatar, la solution me semble relativement simple, soit je désactive la fonctionnalité, soit je trouve un plugin permettant de mettre en cache côté serveur les images issues de Gravatar. Pour les vidéos, c’est à première vue plus compliqué si on souhaite garder l’intégration et ne pas remplacer celle-ci par un simple lien sur la page. Bref, des sujets périphériques à creuser, mais qui touche à la surveillance indirecte imposée aux utilisateurs par le chargement d’éléments externes.
Depuis deux jours, un petit malin (quarante-six point cent soixante-douze point quatre-vingt-onze point quinze) tente sans succès des injections SQL sur le serveur via WordPress. Félicitations à lui, il gagne un blocage IP!
Pour bloquer une IP avec iptables, on utilisera donc la commande suivante:
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
Dans ce cas-là, c’est un blocage total qui sera effectué. Il est possible d’être plus précis pour ne bloquer qu’un port particulier pour un protocole spécifique avec les options, respectivement, --destination-port et -p. Ce qui nous donne par exemple pour le port 80 sur tcp :
iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --destination-port 80 -j DROP
Enfin, si éventuellement, on se décide à débloquer l’adresse IP, l’option -D à la place de -A fera l’affaire :
iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
À noter également la commande permettant de visualiser les règles iptables configurées :
iptables -L
Bloquer une IP est une solution facile à mettre en œuvre et (très) efficace. Si de telles attaques devaient reprendre depuis une autre IP, je me verrais dans l’obligation de créer une règle fail2ban afin de bloquer dynamiquement les nouvelles tentatives d’attaque.
Je lisais cet été le roman Légion: A fleur de peau de Brandon Sanderson. Pas spécialement long, 222 pages, mais divertissant. A la lecture, plusieurs passages m’ont interpellé, puisque la traduction française n’utilise pas les termes corrects pour parler de chiffrement. Extrait page 59:
Tous les gens qui travaillent ici sont censés crypter les données qu’ils stockent dans leurs cellules. Vous avez entendu parler des masques jetables ? – Bien sûr, répondis-je. C’est un système de cryptage aléatoire qui nécessite une clé unique pour le décoder. Il est censé être incassable. – Mathématiquement, c’est la seule forme de cryptage incassable, précisa Yol. […] La politique de l’entreprise insistait sur ce cryptage – avant d’injecter des données dans leur corps, ils les cryptaient à l’aide d’une clé unique. Ensuite, pour lire ces données, il fallait disposer de cette clé. Malheureusement, nous ne savons pas celle dont Panos s’est servi. – A supposer qu’il se soit conformé à cette politique et qu’il ait bien crypté les données.
Plus loin page 61 :
Trouver la clé de décryptage ne suffira pas, lança Yol derrière moi. Nous ignorons combien de copies il en existe – à supposer même que Panos ait suivi le protocole de cryptage.
Vous l’aurez compris, des données ont disparu et le narrateur est chargé de les retrouver. Celui-ci va donc se documenter sur la cryptographie, nous pouvons donc lire à la page 72 :
Les deux disciplines évoluaient dans le même domaine, et certains des livres que j’avais parcourus évoquaient des méthodes de déchiffrage consistant à remarquer les changements qui pouvaient survenir dans une écriture et comment, par exemple, la façon d’orienter les barres de ses t pouvait transmettre des informations cachées.
Les deux disciplines évoquaient ici sont, vous l’aurez peut-être deviné, la graphologie et la cryptographie. Le mot qui interpelle ici est déchiffrage, néanmoins, notre site de référence chiffrer.info ne précise rien à son sujet. Si chiffrage est bien sûr exclu, il peut sembler logique qu’il en soit de même pour déchiffrage. Sur ce point, le dictionnaire de l’Académie Française ne semble pas le connaître, je pense que nous pouvons donc lui préférer le terme de déchiffrement.
Le terme revient à la page 181 :
Ton frère possédait une clé de déchiffrage, déclarai-je, qui permettrait de décrypter les informations stockées dans son corps.
[…]
– Une clé de déchiffrage ?
Rebelote page 218, il faut noter tout de même le bon usage ici du terme « déchiffrer ». Attention, texte très tronqué pour éviter au maximum tout indice quant au dénouement :
Mais j’ai terminé de déchiffrer ça.
[…]
La […] clé […] destinée à décrypter les données […].[…], crypté lui aussi.
Pour terminer cet article, voici donc les passages ci-dessus modifiés pour utiliser les termes corrects :
Page 59
Tous les gens qui travaillent ici sont censés chiffrer les données qu’ils stockent dans leurs cellules. Vous avez entendu parler des masques jetables ? – Bien sûr, répondis-je. C’est un système de chiffrement aléatoire qui nécessite une clé unique pour le décoder. Il est censé être incassable. – Mathématiquement, c’est la seule forme de chiffrement incassable, précisa Yol. […] La politique de l’entreprise insistait sur ce chiffrement – avant d’injecter des données dans leur corps, ils les chiffraient à l’aide d’une clé unique. Ensuite, pour lire ces données, il fallait disposer de cette clé. Malheureusement, nous ne savons pas celle dont Panos s’est servi. – A supposer qu’il se soit conformé à cette politique et qu’il ait bien chiffré les données.
Page 61
Trouver la clé de déchiffrement ne suffira pas, lança Yol derrière moi. Nous ignorons combien de copies il en existe – à supposer même que Panos ait suivi le protocole de chiffrement.
Page 72
Les deux disciplines évoluaient dans le même domaine, et certains des livres que j’avais parcourus évoquaient des méthodes de déchiffrement consistant à remarquer les changements qui pouvaient survenir dans une écriture et comment, par exemple, la façon d’orienter les barres de ses t pouvait transmettre des informations cachées.
Page 181
Ton frère possédait une clé de déchiffrement, déclarai-je, qui permettrait de déchiffrer les informations stockées dans son corps.
[…]
– Une clé de déchiffrement ?
Page 218
Mais j’ai terminé de déchiffrer ça.
[…] La […] clé […] destinée à déchiffrer les données […].
[…], chiffré lui aussi.
Dans l’article précédent, j’évoquais quelques étapes de préparation du NAS et l’installation d’OpenMediaVault. Une fois ces étapes effectuées, je me suis donc tourné vers la mise en place des disques durs de données.
J’ai décidé de commencer doucement et j’ai choisi deux disques Western Digital Red 1 To. Afin d’éviter d’avoir deux disques provenant d’un même lot et ainsi réduire les risques de défaillance simultanée, je me suis procuré les disques auprès de deux enseignes différentes. L’un en Allemagne chez MediaMarkt, l’autre chez Amazon.
Une fois les disques en ma possession, quelques coups de tournevis pour monter le support et je charge les disques dans le NAS éteint. Démarrage. Authentification. Arrivé sur l’interface du NAS, je vérifie les disques détectés par le système : j’en vois bien trois, mes deux disques de 1 To et le SSD. Pas de problème à priori. Je clique donc sur le menu gestion du RAID pour configurer un raid miroir sur les deux disques. Bouton créer; je complète la configuration du périphérique RAID, clique sur enregistrer, et là, c’est le drame.
Rien ne se produit… Je devrais avoir un état d’avancement de la construction du RAID, rien. Pourtant, après investigation, le RAID semble avoir été initialisé. Dans le doute, je redémarre le NAS… Le système boot, puis affiche des lignes d’erreurs, avant de continuer à démarrer. L’un des disques semble avoir des problèmes.
Lignes d’erreur au démarrage
Je tente alors de diagnostiquer le problème. La question que je me pose est la suivante : « Mon disque est-il défectueux depuis son acquisition ou, une erreur lors de la création du RAID peut-elle avoir entraînée une corruption d’un secteur ? Bref, le problème est-il corrigeable ou non ? ». Pour essayer de répondre à ces interrogations, je vais exécuter des tests SMART pour tenter de déterminer précisément l’état du disque. Pour cela, je me tourne sous GNU/Linux vers Smartmontools avec la commande :
smartctl -i/dev/sdX
Je n’ai pas sauvegardé les résultats des différentes commandes. Globalement, ce que j’apprends et comprends dans les informations retenues, c’est que mon disque fonctionne (tourne), mais que le taux d’erreur est impressionnant et qu’il ne semble pas être en mesure de lire un seul secteur. Je tente donc de lancer des tests plus poussés, un long puis un cours en arrière plan :
smartctl -tshort/dev/sdX
smartctl -tlong/dev/sdX
Puis une heure plus tard, je regarde les résultats :
smartctl -a/dev/sdX
Pas de chance, les deux tests sont en erreur et n’ont pas réussi à finir. Pas beaucoup plus avancé, sinon que ça ne marche vraiment pas. En faisant des recherches sur le web pour essayer de comprendre, je tombe sur la question ATA drive is failing self-tests, but SMART health status is ‘PASSED’. What’s going on? soit en français, les tests sont en erreur, le status de santé du disque est « ok », que ce passe-t-il ? D’après ce qui est écrit en réponse, j’en déduis qu’écrire une donnée sur le disque pourrait forcer une réallocation de secteur endommagé s’il y en a un présent ou permettre d’écrire une donnée « cohérente ».
Mon disque ne contient pas de système de fichier, un certain nombre de solutions proposées tombent à l’eau. En dernier recours, je tente de réécrire des données aléatoires sur l’ensemble du disque avec :
dd if=/dev/urandom > /dev/sdX
Cela semble fonctionner, ça mouline, c’est long. Les tests ayant incriminé un secteur proche du début du disque, je coupe la commande à la moitié pour gagner du temps. Redémarrage, mais pas d’amélioration. À ce stade, j’en conclue que le disque est défectueux et qu’il va donc falloir tenter de le faire remplacer. Le disque concerné est celui en provenance d’Amazon. J’étudie leur politique de retour, ça semble plutôt facile et ils n’ont pas l’air de chipoter.
Avant de me résigner à renvoyer le disque, je décide de le tester une dernière fois avec les outils de tests du constructeur. Celui de Western Digital n’est disponible que sous Windows et le disque doit être monté en SATA; pas possible d’utiliser un connecteur USB, le disque n’est pas reconnu. Les résultats sont les suivants :
Western Digital Logo
Test Option: QUICK TEST
Model Number: WDC WD10EFRX-68FYTN0
Unit Serial Number: WD-WCC4J4VZKS2H
Firmware Number: 82.00A82
Capacity: 1000.20 GB
SMART Status: PASS
Test Result: FAIL
Test Error Code: 06-Quick Test on drive 4 did not complete! Status code = 07 (Failed read test element), Failure Checkpoint = 97 (Unknown Test) SMART self-test did not complete on drive 4!
Test Time: 17:54:31, August 01, 2016
Ce n’est pas mieux. Le contrôleur RAID du NAS, les outils de diagnostic Western Digital, Smartmontools, tous indiquent que le disque n’a jamais fonctionné correctement. Je renvoie donc le disque et demande son remboursement. Quitte à devoir en obtenir un nouveau, je préfère qu’il n’arrive pas par transporteur et lui éviter les chocs. Je me tourne donc vers materiel.net et leur boutique proche de Strasbourg qui indique que le disque est en stock pour quelques euros de moins.
Bref, achat direct d’un nouveau disque dur le lendemain et montage dans le NAS, et cette fois ça y est, la construction du RAID démarre. Je retiendrai qu’acheter un disque dur par correspondance n’est pas une bonne idée, on peut avoir de la chance ou pas, mais il est probable que le disque aura subi de nombreux chocs durant le transport. J’ai voulu essayer, je suis fixé.
Dans le premier article de cette série, je vous annoncais que j’avais choisi le HP Proliant MicroServer Gen8 pour en faire un NAS. Une fois la machine reçue, il convient de faire quelques adaptations pour rendre son utilisation, et son administration, plus agréable. Pour ces quelques opérations, je me suis à nouveau basé sur l’article très complet de L’Atelier du Geek traitant de l’installation d’OpenMediaVault sur cette machine.
En partant des informations de l’article, je me suis moi aussi doté d’un câble SATA, d’un câble adaptateur d’alimentation floppy vers SATA et d’un disque SSD sur lequel sera installé le système.
Le disque SSD placé sur le haut du NAS
On connecte le câble d’alimentation sur une broche d’alimentation libre et au SSD. Pour le câble SATA, rien de bien compliqué, la machine dispose d’un port libre sur l’un de ses côtés. En mettant en place les différents éléments, j’ai constaté que la machine semble également disposer d’un emplacement pour carte SD. Il pourrait donc être intéressant d’effectuer l’installation du système sur une carte SD, plutôt que sur le disque SSD. Ainsi, le pourcentage d’utilisation de l’espace disque serait bien plus optimisé qu’avec le SSD où plusieurs dizaines de gigaoctets sont inutilisés.
Câble SATA connecté sur le port libre de la carte mère
Au niveau matériel, notre NAS est donc prêt à fonctionner. Il reste une petite subtilité à effectuer afin de s’assurer que le NAS démarrera sur le SSD. Pour cela, il convient de créer un Array RAID contenant notre disque et de demander au BIOS de booter dessus. Voir l’étape 2 de l’article de L’Atelier du Geek pour tous les détails.
Préparation du boot sur le SSD
Une fois ces opérations effectuées, on peut se tourner vers l’installation du système d’exploitation du NAS. J’ai moi aussi choisi OpenMediaVault. On récupère l’ISO, un coup de dd pour créer une clé USB d’installation et le tour est joué, l’installation peut commencer.
Pas de difficultés particulières de ce côté là, des questions classiques pour qui aura déjà installé un système GNU/Linux. Une fois l’installation terminée et le NAS éteint, on peut se tourner vers la mise en place des disques de données.