Snif, mon blog …

C’est bien connu: Bien mal acquis …blabla … Il m’est arrivé une mésaventure très récemment qui m’a bien ennuyée.

J’ai fait très récemment l’expérience de l’installation d’un thème vérolé sur mon blog. Dans ce qui suit, je vous expose mon erreur ainsi que les différentes mesures prises, non seulement pour les corriger mais également pour me prémunir d’un nouvel incident.

L’erreur conduisant au problème

Ainsi donc, je récupère sur un site de torrents bien connu le thème Divi. Un thème WordPress très puissant qui me semble pouvoir faire tout ce que je désire pour mon blog et plus encore. Divi est un thème payant (89$ par an). Le récupérer pour pas un rond est effectivement une aubaine semble-t-il. J’installe le thème par la procédure classique sur le blog que vous lisez en ce moment (upload du .zip), Divi apparaît bien dans la liste des thèmes. Je demande à prévisualiser avant d’activer le thème de façon à me rendre compte du rendu par défaut du thème “out of the box”… Et là, patatras … Page blanche, le site ne se charge plus … pas de message d’erreur, juste un blocage infini du chargement… Je flaire aussitôt une “arnaque”, et je n’ai pas tort.

La seule solution que j’ai est de me connecter sur l’interface de mon hébergeur web, d’accéder par ftp à mon arborescence et de supprimer le répertoire du thème Divi. J’essaie également une restauration de ma base de données WordPress à l’aide des snapshots quotidiens réalisés automatiquement par l’hébergeur: Cela ne fonctionne pas, la restauration se bloque et met la base dans un statut foireux. Je constate que mon site est de nouveau accessible mais complètement vierge: Tout a disparu et l’installation de WordPress m’est proposée, Snif.

La résolution

En essayant de me connecter à ma base de données avec PhpMyAdminn je constate que l’accès m’est refusé: Le thème vérolé a modifié le mot de passe d’accès à la base. Heureusement, quelqu’un qui connait bien WordPress m’indique que ce mot de passe en clair est dans le fichier wp-config du site. je me connecte donc avec ce nouveau mot de passe à ma base de données vierge et j’essaie de modifier le, mot de passe afin d’éviter une nouvelle intrusion. Peine perdue, la base étant en “Invalid status: restoring”, le changement de mot de passe n’est pas accepté.

Je décide donc quand même de faire repartir le blog (en créant quand même un ticket auprès de mon fournisseur pour remédier au problème de changement de mot de passe). J’exporte en local le snapshot de sauvegarde qui m’intéresse (drôlement confortable d’avoir une Save journalière), je supprime toutes les tables de ma base de données et je ré-importe: Tout fonctionne, je récupère tout mon site en quelques secondes.

Mesures prises

  1. C’est la dernière fois que j’installe un truc piraté sur un blog de production…et même sûrement sur n’importe quoi d’ailleurs. En effet, ce n’est pas parce que je vais tester un truc vérolé pendant 15 jours avec un comportement exemplaire qu’il ne va pas déclencher un cataclysme au bout d’un temps défini. Si, par exemple, mon blog avait été effacé 35 jours après l’installation du thème vérolé, toutes les sauvegardes journalières auraient été corrompues (il y a un mois de Save quotidiennes) et j’aurais été bien plus embêté !
  2. Création d’un Blog de test sur mon Synology de façon à tester avant de mettre en production. Je pourrais le faire en multisite chez mon hébergeur mais cela m’obligerait à partager ma base de données entre la production et le test. Je préfère deux bases séparées. De plus, sur mon Syno, c’est gratuit. je me demande même si je ne vais pas en faire une plateforme de secours avec recopie de la production tous les jours.
  3. Installation du plugin WordFence permettant, dans sa version gratuite, le Scan de détection de malwares dans l’installation.
  4. Installation d’un accès “authentification multifacteurs” (2FA) pour accéder à l’interface d’administration du blog (wp-admin) et également pour accéder à l’interface de mon compte chez l’hébergeur

Installation de Ubooquity 2.1.2 sur Synology avec Docker

1. Introduction

Pour cet article, je pars du principe que vous avez déjà installé Docker sur votre Synology. Si ce n’est pas le cas, je vous invite à lire cet article. Pour Docker en architecture Intel 64bits, il existe plusieurs conteneurs Ubooquity prêts à l’emploi. Ils n’ont pas tous la même popularité:

J’en ai testé deux et un seul des deux a démarré correctement:

  • linuxserver/ubooquity : Pas de problème
  • zerpex/ubooquity-docker : démarre, se plante au bout de 15 secondes puis redémarre et ainsi de suite …

En préalable, sur votre Synology, dans le répertoire /docker, créez un sous-répertoire linuxserver-ubooquity (avec votre compte administrateur).

2. Récupération de l’image

Dans Docker, sur votre Synology, allez sur Registre, tapez “ubooquity” dans le champ de recherche et sélectionnez le conteneur le plus populaire “linuxserver/ubooquity”. cliquez ensuite sur le bouton “Téléchargez”. Il vous est proposé de télécharger la “lastest” version, confirmez.

Positionnez-vous dans la partie “Image”, sélectionnez “linuxserver/ubooquity” et cliquez sur “Lancer”:

3. Paramétrage du conteneur

Vous arrivez alors au paramétrage du conteneur, vous pouvez vous inspirer de ce que j’ai mis (Attention , j’ai 8 Go de RAM sur le serveur donc j’ai forcé un peu la dose car on va le voir, Ubooquity peut être assez gourmand en RAM quand il indexe ses fichiers). Si vous n’avez que 2Go, ne dépassez pas 1536Mo (ou un truc comme ça).

3.1 Paramétrages avancés

Cliquez ensuite sur “Paramètres avancés” et inspirez-vous …

3.2 Volumes

L’onglet “Volumes” est sûrement le plus “touchy” à saisir…

Quelques explications … Tout d’abord, le seul bouton que j’utilise est “Ajouter un dossier”. En effet, je veux indexer le contenu de dossiers/sous-dossiers dans lesquels j’ai mis mes fichiers (ePub, mobiles, pdf et quelques cbr/cbz). Attention aux majuscules/minuscules dans les noms …

A quoi sert ce paramétrage ? En fait, pour accéder à vos répertoires, le conteneur possède des points d’entrée. Ces points d’entrée sont dans la colonne “Chemin d’accès”. C’est à dire que le conteneur ne va connaître vos répertoires du Synology que par les noms que vous avez définis dans cette colonne. un seul point d’entrée et obligatoire et non modifiable : “/config”. tout le reste, vous pouvez mettre les noms de votre choix. En face de chaque “Chemin d’accès”, vous avez le vrai répertoire dans le quel le conteneur va lire. On a donc par ce paramétrage mappé les points d’entrée du conteneur avec les vrais dossiers su Synology. Pour ma part, en voici la description (on peut créer autant de points d’entrée que l’on veut):

  • /LivresPDF : Contient tous les livres (hors BD) en PDF, répartis dans plusieurs sous répertoires. Le dossier Livres est à la racine de mon volume principal sur le Synology
  • /books : Contient tous les ePub/mobi de la bibliothèque Calibre. celle ci est sur mon Mac et je la recopie tous les jours dans un répertoire du Synology
  • /config : C’est l’endroit où Ubooquity va stocker ses infos, paramétrage, base de données, etc. C’est à vous de créer ce répertoire avant de démarrer le conteneur pour la première fois (indiqué au début de ce poste)
  • /Magazines : Tous les magazines en PDF (Le répertoire Magazines est à la racine du volume)
  • /BD : Toutes les BD (à la racine aussi …)

Pour vous donner une idée de l’arborescence sur le Synology:

Vous pouvez créer autant de points d’entrée que vous le souhaitez. C’est en effet lors de la configuration de Ubooquity une fois le conteneur lancé que nous définirons ces points d’entrée. Le seul obligatoire est “/config”.

3.3 Paramètrage des ports de communication

Comme pour les répertoires, il faut mapper les ports “virtuels” du conteneur avec les vrais ports de communication du Synology. Dans cet exemple, les ports par défaut du conteneur sont 2202 et 2203. J’ai fait correspondre ces deux ports au 2204 et 2203 car le port 2202 du Synology était déjà occupé.

3.4 Les derniers onglets …

Dans l’onglet “Liens”, je n’ai rien mis. Pour le dernier onglet, “Environnement’, si vous envisagez d’indexer des pdf de plus de 300Mo (c’est mon cas), je vous conseille de rajouter la variable MAXMEM que vous fixerez selon votre quantité de RAM et la quantité que vous avez indiquée dans le paramétrage du conteneur. La variable MAXMEM est passée en paramètre à Ubooquity lors du démarrage. Pour ma part, MAXMEM=4096. (Mo)

4. Lancement du conteneur

Un petit résumé de votre conteneur s’affiche à la fin de l’assistant, cochez la case “Exécutez ce conteneur lorsque l’assistant a terminé” puis validez le tout … Vous devriez avoir un écran similaire au mien:

5. Paramètrage de Ubooquity

Nous pouvons passer maintenant à la partie paramètrage de Ubooquity (pour l’instant, nous n’avons que paramétré le conteneur Docker pour son exécution).

5.1 Adresse IP du Synology

Allez sur votre navigateur web préféré, situé sur le même réseau local que votre Synology. vous devez connaître l’adresse IP de votre NAS. Si vous ne la connaissez pas, allez sur la console et lancez le panneau de configuration, vous la trouverez dans “Centre d’infos’. Il est conseillé pour la suite d’avoir attribué une adresse fixe au serveur Synology, c’est bien plus simple …(Remarque, on peut aussi accéder au serveur via son nom, ici : SynoArnaud.)

5.2 Administration de Ubooquity

Retour donc dans votre navigateur, nous allons nous connecter à l’écran d’administration de Ubooquity. Le port d’admin de Ubooquity pour ce conteneur est 2203, port que nous avons mappé sur le Synology en 2203 (pas de changement). L’adresse IP de mon Synology étant 192.168.0.31, je tape la ligne suivante dans la barre d’URL du navigateur:

Pour le premier lancement, il vous sera demandé de définir un mot de passe administrateur, vous pourrez ensuite vous connecter en saisissant ce mot de passe pour arriver à l’interface de configuration:

Je ne vais pas définir ici toutes les options disponibles dans Ubooquity. Je vais détailler uniquement le paramétrage des points d’entrée (définis lors de la création du conteneur Docker) ainsi que la création d’un utilisateur.

5.2.1 Les bandes dessinées

Nous nous rendons d’abord dans l’onglet “Comics” afin de paramétrer l’entrée (ou les entrées) des bandes dessinées:

On peut voir que j’ai créé un point d’entrée /BD correspondant au /BD de la colonne “Chemin d’accès” qui va pointer sur le répertoire /BD. Ceci est un peu perturbant car tout a le même nom… Un peu plus loin, pour les livres, c’est différent, vous comprendrez peut-être mieux. C’est en cliquant sur le bouton “ADD FOLDER” que Ubooquity vous proposera la liste des points d’entrée connus par lui-même et que vous avez définis lors du paramétrage du conteneur. Lorsque vous aurez créé des utilisateurs, vous pourrez les ajouter à l’aire de la petite icône à droite de la ligne afin qu’ils puissent accéder à la ressource.

5.2.2 Livres autres que les BD

On voit les 3 points d’entrée qui ont été définis précédemment lors de la création du conteneur. Si vous décidez d’ajoutez un nouveau répertoire à scanner par Ubooquity, vous avez deux solutions:

  • C’est un sous-répertoire de ce qui existe dèjà et qui est défini dans Ubooquity: Vous n’avez rien à faire, Ubooquity va le scanner au prochain scan.
  • C’est un nouveau répertoire hors de tout ce qui existe dans Ubooquity: Vous devez arrêter le conteneur, modifier le paramétrage et rajouter un dossier dans l’onglet Volumes du conteneur, relancer le conteneur (vous ne perdrez rien, pas d’inquiétude). vous devez ensuite rajouter le point d’entrée dans le paramètrage (comics ou books) et relancer un scan …

5.2.3 Création d’un utilisateur

Pour la création d’un utilisateur, cela se déroule dans la partie “Security”:

Faire “ADD USER”, donner un nom et un mot de passe pour le nouvel utilisateur et cliquer sur “CREATE USER”. rien de plus simple.

5.3 Le premier scan…

Vous pouvez revenir à l’onglet “GENERAL” et cliquer sur “LAUNCH NEW SCAN”.

A signaler: Le premier scan est long (48h dans mon cas pour presque 40000 documents …) car l’intégralité des répertoires est parcourue et indexée. Par la suite, seuls les nouveaux fichiers/répertoires seront indexés (Ubooquity détecte les changements de nom, de date et de taille).

L’utilisation de Ubooquity.

Jusque là, nous n’avons pas encore utilisé le logiciel, nous l’avons installé, paramètres et peuplé. Pour accéder à l’interface utilisateur, il faut se connecter sur l’autre port de communication défini en 3.3. Le port d’utilisation à utiliser est le 2204 (mappé sur le 2202 du conteneur). Il faut avoir de préférence défini des utilisateurs avant d’accéder à l’interface de consultation.

Comme pour l’interface d’administration, rendez-vous dans votre navigateur. dans mon cas, il me suffit de taper l’adresse du Synology suivie du port 2204/ubooquity pour accéder au logiciel:

Il suffit d’entrer le nom et mot de passe d’un utilisateur créé en 5.2.3 pour accéder au paradis … Tous vos documents apparaissent dans les différentes sections correspondant aux répertoires de votre Synology.

6. Accès au serveur depuis l’extérieur de votre réseau local (c’est à dire depuis le monde entier).

Ce qui suit permettra décrit le paramètrage à mettre en oeuvre afin d’accéder à Ubooquity en dehors de chez vous et de permettre ainsi à vos amis de bénéficier des services de votre serveur Ubooquity. Je suis pour ma part chez Free, l’exemple ci-dessous concernera donc un paramétrage sur la box de Free.

6.1 Un Synology en IP fixe (statique) sur votre réseau local.

Il est important que votre serveur Synology ait tout le temps la même adresse IP sur votre réseau local. je vous invite pour cela à lire cet article.

6.2 Redirection des ports sur la Box de Free.

Nous avons besoin d’accéder aux ports 2203 et 2204 du Synology (définis au point 3.3). Il faut accéder à l’interface de paramétrage de la Freebox à l’adresse : http://mafreebox.freebox.fr

En bas à gauche, le bouton rouge vous permet de vous connecter en mode admin et à sortir du mode “Invité”. On arrive à l’écran suivant:

Cliquer sur “Paramètres de la Freebox:

Sélectionner l’onglet “Mode avancé”. puis l’icône “gestion des ports”:

Une liste s’ouvre (plus ou moins remplie, peut être même vide …). Cliquer sur “Ajouter une redirection”, le formulaire de saisie d’une redirection apparait:

Il nous faut rediriger les deux ports donc nous ajouterons 2 redirections (donc deux fois ce formulaire). pour la première redirection, saisissez les informations suivantes:

  • IP Destination: Choisissez votre NAS dans la liste déroulante (ici: SynoArnaud)
  • IP Source: En général, pas de choix possible, c’est “Toutes”
  • Protocole: Laisser TCP
  • Port de début: 32xxx (c’est à vous de choisir une valeur de port pour se connecter de l’extérieur. il est possible que 32xxx soit indisponible car déjà utilisée, dans ce cas en choisir une autre, proche). Je ne vous mets pas ma vraie valeur par sécurité. une valeur correcte serait 32745 par exemple
  • Port de fin: Même valeur que port de début
  • Port de destination: 2203

Vous devez avoir 2 redirections dans votre liste à la fin du paramétrage. L’accès à l’interface admin de Ubooquity se fait par le port 32xxx et l’accès pour consultation par le port 32yyy.

6.3 Accès depuis l’internet au serveur

Si vous ne l’avez jamais fait, il est nécessaire de paramétrer le Synology afin qu’il s’ouvre un peu à l’internet. Ce paramétrage est très bien documenté sur le site de Synology.

Vous avez donc une adresse internet pour votre serveur Synology. cette adresse est du style : http://xxxxxxxxxxx.myds.me:32xxx

L’autre solution serait de passer par votre adresse IP fixe (à demander à votre opérateur internet s’il en propose. c’est mon cas chez Free où je possède une IP fixe avec ports non partagés).

Pour accéder de l’extérieur à votre serveur Ubooquity:

  • en mode admin: http://xxxxxxxxxxx.myds.me:32xxx/ubooquity/admin
  • en mode consultation : http://xxxxxxxxxxx.myds.me:32yyy/ubooquity

Installation et settings de Ubooquity (1.10.1) sur Synology avec Docker

J’ai eu plusieurs fois la même demande concernant mon article sur Ubooquity: Comment ça s’installe et comment ça se paramètre ?

Je vais décrire ici les différents steps permettant la création d’un serveur Ubooquity sur un Synology via un conteneur Docker. Ce tuto sera écrit en plusieurs fois mais j’espère bien l’avoir terminé dans la semaine, donc revenez de temps en temps sur cette page…

Les pré-requis

Ce tuto décrit l’installation de Ubooquity sur un NAS Synology équipé d’un processus Intel 64 bits. je ne sais pas s’il fonctionnera sur un NAS avec un processeur ARM ou autre. Mon Synology est une DS916+, équipé de 8Go de RAM (et de 18 To de disque)

J’ai rencontré des problèmes d’indexation et de “fuite mémoire” lors de l’indexation de la base de documents (environ 35000 documents) lorsque mon Synology n’avait que 2Go de mémoire. ceux-ci ont complètement disparus quand je suis passé à 8Go.

La version d’Ubooquity installée est la version 1.10.1 de 2016. Je ne suis pas passé en version 2.xx, la version 1.10.1 me satisfait pleinement et je ne suis pas sûr que les conteneurs Docker de Ubooquity en version 2 marchent correctement. Il est tout à fait possible de faire marcher les deux versions en parallèle me direz-vous … Oui, il faut juste un peu de temps !

[Edit du 23 mai 2020] Je suis finalement passé sur la version 2.1.2 de Ubooquity, toujours avec Docker. Je vous invite à lire mon nouvel article sur l’installation de cette nouvelle version ici. Si vous n’avez pas encore installé Docker sur votre Synology, l’installation est décrite ci-dessous et n’est pas reprise dans le nouvel article.

Ubooquity nécessite l’ouverture de ports sur la box, je décrirai l’ouverture des ports sur une Freebox, c’est ce que j’ai. mais j’étais chez Orange avant et c’est tout à fait possible de le faire avec une Livebox.

Je ne suis pas un pro de la technologie Docker, ce que je sais, je l’ai appris grâce à Reddit où les gens ont répondu gentiment à mes questions.

Certaines copie d’écran ne seront pas le reflet réel d’une installation car mon Docker et mon Ubooquiyy sont déjà installés et je ne vais pas tout casser pour tout vous montrer…

Installation de Docker sur le Synology

Tout d’abord, ouvrez une session sur votre Synology en tant qu’administrateur. Chez moi, le Synology est configuré avec une IP fixe et est accédé avec l’URL http://192.168.0.31:5000. le port 5000 est le port par défaut (il me semble). Vous vous identifiez avec un utilisateur de type administrateur.

Arrivé sur la console, cliquez sur l’icône “Centre de paquets”

Dans la barre latérale de navigation, cliquez sur “Tous les paquets” et repérez dans la zone de droite le paquet Docker et sa petite baleine. Cliquez sur “Installer”.

Une fois installé, vous retrouvez votre paquet dans la partie “Installé” du centre de paquets et au niveau du paquet Docker, vous avez soit un bouton “Lancer”, soit un bouton “Ouvrir”. Dans les deux cas, cliquez sur ce bouton. dans ce qui suit, nous supposerons que Docker est déjà lancé et que nous avons le bouton “Ouvrir”…

Paramétrage de Docker et installation du conteneur

Téléchargement de l’image

L’interface de Docker apparait alors. Si vous n’avez pas d’image de conteneur ou de conteneur en cours d’exécution, votre fenêtre sera différente de la mienne…

On peut voir ici que ‘ai deux conteneurs en fonctionnement, dont un qui nous concerne, le conteneur Ubooquity. Dans votre cas, nous allons supposer que vous n’avez pas ce conteneur Ubooquity dans la fenêtre Docker. Il va falloir aller le chercher.

Dans la barre latérale, cliquez sur “Image” puis sur le bouton puis sur “Ajouter” puis “Ajouter à partir d’une URL”. Dans la zone “Page du concentrateur”, indiquez l’URL suivante: https://github.com/cromigon/ubooquity-docker.git

Note 7/01/2020 : Depuis quelques temps déjà, Cromigon ne maintient plus son conteneur et l’image a été placée ici : https://raw.githubusercontent.com/cromigon/ubooquity-docker/master/Dockerfile

Puis cliquer sur “Ajouter”. Le téléchargement de l’image commence. attendez que cela soit terminé.

Une fois chargé, vous devriez avoir l’image affichée dans la liste des images:

Ici, on voit bien l’image cromigon/ubooquity:1.10.1 de 121MB disponible. J’ai aussi chargé d’autres images mais pour le moment, je n’ai pas encore eu la motivation pour les tester. la version actuelle me suffit amplement.

Une fois l’image chargée, vérifiez qu’elle est sélectionnée et cliquer sur “Lancer” afin de créer un conteneur exécutable. La fenêtre de paramètre du conteneur apparaît alors:

Le nom du conteneur sera sûrement différent pour vous car pour ma part, j’ai déjà un conteneur “cromigon-ubooquity” qui tourne. Docker m’a donc rajouté un petit “1” à la suite du nom du conteneur. Modifiez les paramètres généraux sont comme indiqués sur la copie d’écran (privilèges, limitation des ressources et limites de la mémoire). Cliquez ensuite sur “Paramètres avancés”. C’est là que survient la partie un peu délicate du paramétrage.

Onglet “Paramètres avancés”

Sur ce premier écran de paramétrage, j’ai activé le redémarrage automatique.

Onglet Volume

Sur le deuxième onglet “Volume”, la fenêtre se présente ainsi:

Cette fenêtre va vous permettre de relier un répertoire physique à une entrée logique de cotre conteneur Docker. La zone “Fichier/Dossier” indique le nom de l’emplacement que va connaître votre conteneur Docker (le nom “logique” et la zone “Chemin d’accès” correspond à un véritable chemin physique sur votre Synology. Pour ma part, j’ai les entrées suivantes pour ce mapping (attention de bien respecter minuscules et majuscules):

Seule la ligne “docker/Ubooquity” est obligatoire.

On peut voir que j’ai un nom logique “Magazines” qui pointe sur un volume /Magazines. Pour les livres en pub et moi, j’ai un processus périodique qui recopie tout le répertoire des data de calibre de mon mac vers un répertoire du Synology.En effet, j’ai remarqué que Calibre n’aime pas travailler sur un répertoire situé sur un NAS. Et à la lecture de différentes forum, il est préférable en effet de travailler en local…

Le répertoire /opt/ubooquity-data qui va contenir toute l’indexation de Ubooquity est créé automatiquement lors de la création du conteneur.

Tous les volumes sont en rw (lecture/écriture) pour ubooquity (à vrai dire, je pense que l’on peut les mettre en read only sauf pour le répertoire /opt/ubooquity-data. A essayer).

Onglet Réseau

J’ai laissé par défaut la création du réseau proposé: bridge.

Onglet Paramètre des ports

Tout se joue pour moi sur le port 2202, c’est le port proposé par défaut. Ja’i aussi mis le port local à 2202 en fixe (au lieu de “auto”).

Onglet Liens

je n’ai rien mis dans cet onglet …

Onglet Environnement

j’ai les données suivantes sur cet écran. A noter qu’il s’agit des entrées par défaut sauf pour la zone “commande” où j’ai rajouté “-webadmin” pour pouvoir administrer Ubooquity à travers la console d’administration.

Le lancement…

Une fois tout configuré, il ne vous reste lus qu’à appliquer le paramétrage et à cliquer sur “Suivant” dans la fenêtre “Créer un conteneur”:

Un résumé apparait alors pour le conteneur qui sera créé. Vous pouvez le valider par “Appliquer”. Cochez “Exécuter ce conteneur lorsque l’assistant a terminé”.

Si tout ce passe bien, vous retrouverez votre conteneur en ordre de marche dans la zone “conteneur” de la fenêtre Docker:

La petite icône curseur en bout de ligne vous permet d’arrêter et de relancer le conteneur.

Edit: Je vous invite à suivre le nouveau tutoriel traitant de la nouvelle version 2.1.2 de Ubooquity (toujours avec Docker sur Synology).