FreshRSS

🔒
❌ À propos de FreshRSS
Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

Piratage GoDaddy : 1,2 million de comptes WordPress dans la nature !

25 novembre 2021 à 14:10

L'hébergeur américain GoDaddy a été victime d'un piratage, ce qui a donné lieu à une fuite de données importante : 1,2 million de comptes sont dans la nature. Que s'est-il passé ?

GoDaddy a été victime d'une intrusion et les pirates ont pu accéder à l'environnement Managed WordPress. Désormais, les vannes sont fermées depuis le mercredi 17 novembre suite à la découverte de l'intrusion, mais les pirates ont eu accès à des informations pendant plusieurs semaines : depuis le 6 septembre 2021, pour être précis.

Que contient cette fuite de données GoDaddy ?

Ce piratage a donné lieu à une fuite de données importante avec 1,2 million de comptes, tandis que GoDaddy compte environ 20 millions de clients dans le monde.

Au sein de cette fuite de données, on retrouve les numéros de client et les adresses e-mail associées. On retrouve aussi le mot de passe d'origine du compte "admin" de WordPress, renseigné au moment du provisionnement de l'application sur l'hébergement Web GoDaddy, est présent dans les données récupérées par les pirates.

GoDaddy précise que l'on peut aussi retrouver les noms d'utilisateur et mots de passe pour l'accès en FTP et à la base de données, ainsi que la clé privée SSL pour certains clients.

Par précaution, GoDaddy a réinitialisé les mots de passe compromis et renouvelé les certificats concernés par cette fuite de données. Les clients ont reçu un e-mail pour être avertis de la situation (voir l'e-mail reçu).

L'origine de cette attaque serait un mot de passe compromis, qui a permis à l'attaquant (ou aux attaquants) d'accéder au système d'approvisionnement des sites WordPress de l'hébergeur GoDaddy.

Source

The post Piratage GoDaddy : 1,2 million de comptes WordPress dans la nature ! first appeared on IT-Connect.

WordPress : des sites piratés, avec une demande de rançon à la clé !

17 novembre 2021 à 11:23

Depuis la semaine dernière, une nouvelle vague d'attaques touche les sites WordPress et elle aurait fait au moins 300 victimes jusqu'ici. Lorsque le site WordPress est hacké, une page s'affiche avec une demande de rançon de 0,1 bitcoin pour déchiffrer le contenu du site. Que se passe-t-il exactement ?

L'entreprise Sucuri a fait la découverte de cette nouvelle attaque à destination des sites WordPress, à la suite d'une sollicitation de la part d'un Webmaster victime de cette attaque.

Concrètement, certains webmasters ont eu la mauvaise surprise de découvrir une nouvelle page d'accueil sur leur site. En effet, le message "Site encrypted" s'affiche, accompagné par un compte à rebours de quelques jours et une adresse pour envoyer 0,1 Bitcoin afin de restaurer le site WordPress. Si l'on convertit cette somme en euros, cela correspond à un peu plus de 5 200 euros, ce qui n'est pas rien.

La bonne nouvelle, c'est que les équipes de chez Sucuri ont constaté que le site n'était pas chiffré ! À la place de ça, l'attaquant à simplement modifié le code d'un plug-in WordPress installé sur le site afin d'afficher la page d'alerte qui indique que le site est chiffré. En complément, l'ensemble des articles du site sont modifiés afin de définir l'état ("post_status") sur null, ce qui empêche l'affichage de l'article puisqu'il est dans un état inconnu.

En réalité, ce piratage  par un ransomware est une illusion dans le sens où le site n'est pas réellement chiffré, mais que le pirate cherche à tromper le Webmaster en l'incitant à payer la rançon de 0,1 Bitcoin. Sucuri estime qu'en supprimant le plug-in modifié par le pirate, en l'occurrence ici Directorist, et en exécutant une commande pour rectifier l'état des articles, le site peut revenir à son état normal.

En s'intéressant aux journaux du site, Sucuri a remarqué que le premier point où l'adresse IP de l'attaquant apparaissait était le panneau d'administration "wp-admin". On peut en déduire que l'attaquant s'est connecté en tant qu'admin sur le site, en réalisant une attaque par brute-force ou en achetant des identifiants via le dark web. Visiblement, l'attaquant n'a pas exploité une faille de sécurité dans un plug-in pour devenir admin du site. Quoi qu'il en soit, veillez à maintenir vos plug-ins et WordPress à jour.

Source

The post WordPress : des sites piratés, avec une demande de rançon à la clé ! first appeared on IT-Connect.

Comment ajouter l’authentification multifacteurs à WordPress ?

8 novembre 2021 à 10:00

I. Présentation

Dans ce tutoriel, nous allons voir comment ajouter l'authentification multifacteurs (MFA) à WordPress pour apporter une couche de sécurité supplémentaire. Le plug-in gratuit WP 2FA sera utilisé.

Pour renforcer la sécurité du formulaire de connexion WordPress, il y a plusieurs solutions et la bonne nouvelle c'est qu'elles sont cumulables. D'une part, vous pouvez mettre en place un plug-in pour bannir les adresses IP qui effectue des attaques par brute force, et d'autre part, vous pouvez mettre en place l'authentification multifacteurs sur votre site WordPress. De cette façon, il faudra saisir un code pour s'authentifier, en plus de l'habituel mot de passe.

Nous allons voir comment installer et configurer l'extension WP 2FA. Elle est totalement gratuite et va permettre de :

  • Définir un deuxième facteur d'authentification, avec un code reçu par e-mail ou généré sur une application (Microsoft Authenticator, Google Authenticator, FreeOTP, etc.)
  • Forcer l'activation du MFA sur tous les utilisateurs, uniquement sur certains utilisateurs ou certains rôles, ou laisser libre choix
  • Générer des codes de secours pour chaque utilisateur

Page du plug-in : WP 2FA

II. Authentification multifacteurs WordPress (MFA)

Je vous invite à vous connecter sur l'interface d'administration de WordPress, et sur la gauche, dans le menu "Extensions" cliquez sur "Ajouter". Ensuite, recherchez "WP 2FA" via la zone de recherche en haut à droite.

L'extension "WP 2FA - Two-factor authentication for WordPress" doit apparaître. Cliquez sur le bouton "Installer maintenant".

Installer l'extension WP 2FA
Installer l'extension WP 2FA

Dès lors que l'installation est réalisée, cliquez sur le bouton "Activer".

Un assistant de configuration s'exécute. Je vous invite à le suivre afin de configurer l'extension étape par étape. Cliquez sur le bouton "Let's get started!".

La première étape consiste à définir la ou les méthodes que vous souhaitez autoriser pour le second facteur. Voici les deux options possibles :

  • One-time code via 2FA App (TOTP) : activer ou désactiver l'utilisation des applications comme Google Authenticator, FreeOTP, Microsft Authenticator, etc... Je vous conseille d'activer cette option.
  • One-time code via e-mail (HOTP) : activer ou désactiver l'envoi d'un code de sécurité par e-mail en guise de second facteur. Je préfère désactiver cette option pour prioriser l'utilisation d'une application 2FA.

En complément, vous pouvez activer ou non la création de code de secours via l'option "Backup codes". Un code de secours peut être utilisé en remplacement du code généré par l'application 2FA par exemple.

Cliquez sur "Continue setup" pour passer à l'étape suivante.

Désormais, il faut choisir à qui vous souhaitez imposer l'authentification multifacteurs. Différentes options possibles :

  • All users : tous les utilisateurs de votre site doivent utiliser le MFA
  • Only for specific users and roles : forcer l'utilisation du MFA pour certains rôles et/ou certains utilisateurs
  • Do not enforce on any users : le MFA ne sera pas forcé, donc vous proposez l'option à vos utilisateurs, mais ils peuvent l'activer ou non

Dans l'exemple ci-dessous, je force le MFA uniquement pour les utilisateurs "Administrateurs" du site WordPress. C'est le minimum. Cliquez sur "Continue setup" une fois que le choix est fait.

Désormais, il faut choisir si l'on veut imposer la configuration du MFA dès maintenant aux utilisateurs (selon le choix de l'étape précédente) ou si on autorise une période de grâce (Give users a grace period to configure 2FA). Cliquez sur "All done".

Le temps que l'on y est, on va configurer le MFA sur le compte actuellement utilisé pour configurer le plug-in. Pour cela, cliquez sur "Configure 2FA now".

Prenez votre smartphone et ouvrez votre application 2FA. Si vous n'en avez pas, vous pouvez regarder la documentation officielle de WP 2FA pour en choisir une. Vous avez FreeOTP qui est très bien et publié par RedHat, ou sinon Google Authenticator et Microsoft Authenticator.

Pour ma part j'utilise FreeOTP (et l'application n'autorise par les copies d'écran). Il suffit d'appuyer sur le bouton en haut à droite de l'application pour scanner un nouveau code QR, et de scanner le code QR qui s'affiche sur l'interface WordPress.

Ensuite, depuis l'application, on peut générer un code et le saisir sur l'interface de WordPress pour finaliser la configuration du MFA pour mon utilisateur. Une fois que c'est fait, cliquez sur "Validate & Save Configuration".

Pour récupérer vos codes de secours dès maintenant, cliquez sur "Generate backup codes".

La liste des codes s'affiche à l'écran, pensez à la télécharger ou à l'imprimer.

La prochaine fois que je vais m'authentifier sur mon site WordPress avec cet utilisateur, il faudra saisir le mot de passe et ensuite générer un code avec l'application FreeOTP.

Authentification multifacteurs WordPress
Authentification multifacteurs WordPress

Voilà, l'authentification multifacteurs est en place sur votre site WordPress et votre compte actuel est déjà protégé !

III. Configuration du plugin WP 2FA

À tout moment, vous pouvez éditer la configuration du plugin WP 2FA, notamment pour activer ou désactiver une méthode d'authentification, mais aussi pour personnaliser le contenu de l'e-mail utilisé pour envoyer les codes (onglet "Email Settings & Templates").

Paramètres WP 2FA

Chaque utilisateur peut reconfigurer le MFA à partir de son profil : Modifier mon profil > Change 2FA Settings. Cela peut être utile pour changer d'application 2FA ou en cas de changement de smartphone, par exemple.

Dans le cas où vous n'avez plus de code de secours et que vous n'arrivez plus à vous authentifier avec votre application, il y a une solution : vous devez désactiver l'extension WP 2FA. Pour cela, accédez à votre serveur Web en ligne de commande et renommez le dossier de l'extension afin de la désactiver. Ainsi, vous allez pouvoir vous connecter uniquement avec le mot de passe le temps de remettre tout en ordre.

The post Comment ajouter l’authentification multifacteurs à WordPress ? first appeared on IT-Connect.

Une faille dans un plug-in WordPress permet d’effacer le site Web !

27 octobre 2021 à 15:37

Une faille de sécurité critique a été découverte dans un plug-in actif sur plus de 8 000 sites basés sur WordPress. Un site vulnérable permet à un attaquant authentifié de réinitialiser et d'effacer le site WordPress.

Le plug-in concerné par cette vulnérabilité critique se nomme Hashthemes Demo Importer. Son objectif ? Faciliter l'utilisation de certains thèmes en important des démos reconfigurées, comprenant les dépendances (autres plug-ins). À cause de cette faille de sécurité, un attaquant peut réinitialiser complètement le site WordPress en supprimant le contenu de la base de données et du dossier "uploads" qui contient les médias, notamment les images.

D'après Ram Gall, ingénieur chez Wordfence et analyste en menaces, le plug-in n'effectue pas correctement certaines vérifications. Ce qui pose problème, c'est une fonction AJAX nommée "hdi_install_demo" et un paramètre nommé "reset" qui peut être défini sur "true". Si c'est le cas, le plug-in va effacer le contenu de la base de données, à l'exception de trois tables : wp_options, wp_users, et wp_usermeta. Ensuite, la fonction "clear_uploads" va supprimer l'intégralité des médias.

Pour exploiter cette faille de sécurité, il faut être authentifié sur le site en question. Néanmoins, il n'est pas nécessaire d'être connecté en tant qu'administrateur, il suffit d'avoir un compte, y compris si c'est avec le rôle "Abonné" qui est le rôle avec le moins de droits sur WordPress. Si vous autorisez l'inscription de nouveaux utilisateurs, cette vulnérabilité est particulièrement dangereuse.

L'équipe de Wordfence a remonté cette faille de sécurité aux développeurs de Hashthemes Demo Importer le 25 août 2021. Néanmoins, le message est resté sans réponse... Du coup, Wordfence a contacté WordPress directement le 20 septembre dernier. Résultat, le plug-in a été retiré le jour même du site WordPress et il a été remis en ligne 4 jours plus tard, suite à la correction du bug de sécurité. Malheureusement, le changelog du plug-in ne fait pas mention de la correction d'une faille de sécurité, ce qui n'alerte pas les utilisateurs quant à l'urgence de mettre à jour le plug-in.

Dans cette histoire, heureusement que Wordfence a fait preuve de persévérance... Si vous utilisez ce plug-in, vous savez ce qu'il vous reste à faire.

Source

The post Une faille dans un plug-in WordPress permet d’effacer le site Web ! first appeared on IT-Connect.

Convertir les tables MyISAM vers InnoDB d’une base MySQL / MariaDB

25 octobre 2021 à 10:00

I. Présentation

Dans ce tutoriel, nous allons voir comment convertir les tables MyISAM vers InnoDB d'une base de données sous MySQL ou MariaDB.

MyISAM et InnoDB correspondent à des moteurs de bases de données, que l'on peut appliquer au niveau de chaque table d'une base de données. Le moteur MyISAM est utilisé sur les versions plus anciennes de MySQL tandis que sur les versions plus récentes, c'est le moteur InnoDB qui est défini par défaut.

Si votre base de données existe depuis plusieurs années, il y a des chances qu'elle s'appuie sur le moteur MyISAM si vous n'avez pas fait le changement. Dans certains cas, par exemple avec WordPress, les extensions peuvent modifier le moteur de base de données lors d'une mise à jour (pour passer de MyISAM à InnoDB), mais les tables correspondantes au cœur de WordPress peuvent rester en MyISAM.

Pourquoi passer de MyISAM à InnoDB ? Je ne suis pas un expert en bases de données, mais InnoDB est plus performant (le temps d'exécution de certaines requêtes peut fortement diminuer), moins sujet à la corruption de données grâce à la gestion de transactions, et au niveau du verrouillage, InnoDB est capable de verrouiller une seule ligne d'une table tandis que MyISAM verrouille la table complète (ce qui peut engendrer des dysfonctionnements). Par contre, le moteur InnoDB consomme plus d'espace disque.

Avant de réaliser cette opération, prenez vos précautions : effectuez une sauvegarde de votre base de données, avec mysqldump ou PhpMyAdmin par exemple, ou avec votre extension de sauvegarde si vous utilisez un CMS comme WordPress.

II. Lister les tables avec le moteur MyISAM

Pour ce tutoriel, je ne vais pas manipuler avec PhpMyAdmin, mais directement avec la console MySQL / MariaDB (pour rappel, c'est un fork open source de MySQL).

Connectez-vous à votre serveur et ouvrez la console :

mysql -u root -p

Saisissez le mot de passe "root" de votre instance MySQL, et voilà, vous avez accès à la console.

Ensuite, on va lister les tables de notre base de données qui utilisent le moteur "MyISAM". Voici un exemple pour une table nommée "dbwordpress" (nom à remplacer) :

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'dbwordpress' and ENGINE = 'myISAM';

Vous allez obtenir un tableau comme résultat. Ce tableau aura deux colonnes : TABLE_NAME (le nom de la table) et ENGINE (le nom du moteur). Si vous obtenez un résultat vide, c'est que vous n'avez pas de tables en MyISAM !

D'ailleurs, vous pouvez faire l'inverse et lister vos tables en InnoDB :

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'dbwordpress' and ENGINE = 'InnoDB';

Une fois que vous avez votre liste de tables en MyISAM, copier-coller cette liste dans un fichier texte pour la garder de côté. Pour ma part, j'ai obtenu plusieurs tables : abcd_comments, abcd_users, etc...

III. Passer de MyISAM à InnoDB

Maintenant que nous avons la liste des tables à modifier, il va falloir agir sur chacune de ces tables pour changer le moteur de base de données.

Remarque : pour effectuer cette opération, je pense qu'il vaut mieux couper les accès par la base de données. Si c'est sur un serveur Web, vous pouvez simplement arrêter le service Apache2 (systemctl stop apache2) et il faudra le démarrer à la fin de l'opération (systemctl start apache2).

Pour modifier le moteur de base de données, on va utiliser la requête SQL "ALTER TABLE". Pour chacune des tables MyISAM, il va falloir exécuter une requête sous cette forme :

ALTER TABLE dbwordpress.<nom-table> ENGINE=InnoDB;

Ce qui va donner la requête SQL suivante pour la table "abcd_comments" :

ALTER TABLE dbwordpress.abcd_comments ENGINE=InnoDB;

Une requête à répéter pour chaque table, en adaptant le nom de la table à chaque fois. Pour ma part, je préfère réaliser l'action table par table, sans envoyer toutes les requêtes d'un coup, pour être sûr que tout se passe bien et vérifier au fur et à mesure.

L'opération peut prendre moins d'une seconde comme 5 secondes, en fonction du nombre de lignes à traiter dans la table. À chaque fois, la requête ALTER TABLE va indiquer s'il y a eu une erreur ou non.

À vous de jouer et pensez à réaliser une sauvegarde avant la modification.

The post Convertir les tables MyISAM vers InnoDB d’une base MySQL / MariaDB first appeared on IT-Connect.

WordPress : comment réinitialiser le mot de passe admin via MySQL ?

20 octobre 2021 à 15:00

I. Présentation

Dans ce tutoriel, nous allons voir comment réinitialiser le mot de passe admin / administrateur de WordPress à partir de MySQL et d'une requête SQL magique. Cela est particulièrement utile si vous perdez le mot de passe admin de votre site WordPress.

Pour appliquer cette méthode, vous devez disposer d'un accès en ligne de commande à votre hébergement Web afin d'interagir avec la ligne de commande MySQL / MariaDB. Une alternative consiste à agir directement à partir de PhpMyAdmin pour exécuter la requête SQL.

Une méthode inévitable si vous avez un seul compte avec le rôle "Administrateur", que vous avez oublié le mot de passe et que vous ne pouvez pas utiliser la fonctionnalité "Mot de passe oublié".

II. Réinitialiser le mot de passe admin de WordPress

Commencer par vous connecter sur votre hébergement, à l'aide du SSH et d'un logiciel tel que Putty ou du client SSH natif de Windows.

Ensuite, ouvrez le fichier "wp-config.php" de votre WordPress afin de récupérer 4 valeurs : le nom de la base de données WordPress, l'utilisateur pour se connecter à cette base ainsi que son mot de passe, et l'adresse IP ou le nom FQDN de votre serveur de base de données.

Par exemple :

/** Nom de la base de données de WordPress. */
define('DB_NAME', 'mabddwordpress');

/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'utilisateurbddwp');

/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'MonSuperMotDePassePourBDDWordPress');

/** Adresse de l’hébergement MySQL. */
define('DB_HOST', '127.0.0.1:3306');

Maintenant que l'on a ces informations, il faut se connecter. Utilisez la commande ci-dessous en adaptant les valeurs (selon le contenu de wp-config.php) :

mysql -h <serveur-bdd> -u <utilisateur-bdd> -p
mysql -h 127.0.0.1:3306 -u utilisateurbddwp -p

Une fois connecté à votre instance MySQL / MariaDB, listez les bases de données :

show databases;

La base de données mentionnée dans le fichier wp-config.php devrait apparaître. Sélectionnez cette base :

use mabddwordpress;

Listez les tables afin de visualiser le préfixe de vos tables WordPress, étant donné qu'il sera différent de "wp_" si vous avez suivi les recommandations d'installation (à savoir utiliser un préfixe personnalisé).

show tables;

Pour ma part, je peux voir que le nom de toutes les tables commence par "wp2021_" : c'est mon préfixe. Je sais aussi que la table des utilisateurs se nomme "users". Je vais devoir cibler la table : wp2021_users.

Partons du principe que le nouveau mot de passe du compte "admin" sera "NouveauMDPadminWordPr3ss". On ne peut pas insérer la valeur en clair, car il faut insérer son hash md5. Pour cela, on va utiliser un site en ligne comme celui-ci : miraclesalad.com - md5

Il suffit de saisir le mot de passe que l'on souhaite et de copier la valeur "MD5 Hash" qui s'affiche :

Il ne reste plus qu'à modifier le mot de passe du compte "admin" qui a l'identifiant "1" puisqu'il s'agit du compte créé lors de l'installation de WordPress. Si vous avez suivi les bonnes pratiques, l'identifiant ne devrait pas être "admin" mais autre chose. Toutefois, l'ID reste "1".

Voici la requête SQL à exécuter après l'avoir adaptée (nom de la base de données, préfixe, et hash MD5) :

UPDATE `mabddwordpress`.`wp2021_users` SET user_pass="0e2cd88be9f9ba8d0b44c96220f40197" WHERE ID = 1;

Il ne reste plus qu'à quitter MySQL et à vous connecter à votre interface d'administration "WP-ADMIN" de WordPress pour gérer votre site !

Si vous souhaitez apprendre à installer WordPress sur un serveur Linux en partant de zéro, suivez ce tutoriel :

The post WordPress : comment réinitialiser le mot de passe admin via MySQL ? first appeared on IT-Connect.

Comment installer WordPress facilement sur un serveur Apache ?

15 octobre 2021 à 16:00

I. Présentation

Dans ce tutoriel, nous allons voir comment installer WordPress facilement sur son serveur Web LAMP : Linux, Apache, MariaDB (MySQL) et PHP. Ce guide vous aidera étape par étape pour installer WordPress correctement.

Tutoriel pas à pas au format vidéo, en partant de zéro :

WordPress est un CMS (Content Management System) créé en 2003 qui va permettre de mettre en ligne un site Internet sans partir de zéro puisqu'il permet de créer, de modifier et d'administrer facilement un site web.

Aujourd'hui, c'est WordPress est le CMS le plus populaire et il permet de mettre en place de nombreux types de sites : sites vitrine, blog, sites d'e-commerce, etc...Grâce à son énorme communauté et les nombreux développeurs qui proposent des plug-ins (gratuits ou payants) afin de permettre la personnalisation de son site Web.

Nativement, WordPress va permettre de créer des utilisateurs, des pages et des articles. Il va permettre aussi de gérer la configuration globale du site (nom, adresse, format des liens, etc...). Cette base solide doit être complétée par des plug-ins (appelés aussi extensions) qui vont permettre d'ajouter des fonctionnalités à votre site WordPress, mais aussi d'avoir un thème graphique correspondant à vos attentes.

II. Prérequis pour installer WordPress

Certains hébergeurs proposent une installation clé en main, il suffit de cliquer sur un bouton et WordPress se déploie tout seul. Par contre, si vous gérez vous-même votre serveur, par exemple sur un serveur VPS ou un serveur dédié, c'est vous qui allez devoir réaliser l'installation.

Quant aux ressources que doit avoir votre machine, c'est-à-dire l'espace de stockage, le CPU et la RAM, j'ai envie de dire "ça dépend". En effet, au début ce sera surement très peu, mais si votre site grossit et qu'il y a de nombreux visiteurs, vous allez avoir besoin d'adapter les ressources en conséquence.

Pour suivre ce tutoriel, vous avez besoin d'une machine sous Linux, avec un accès "root" sur cette machine (ou un niveau de droits suffisants pour réaliser les manipulations qui vont suivre).

A. L'archive d'installation de WordPress

Connectez-vous sur votre serveur Linux en SSH afin de télécharger l'archive ZIP qui contient les sources de WordPress.

Positionnez-vous dans le dossier "/tmp" et téléchargez la dernière version de WordPress :

cd /tmp
wget https://wordpress.org/latest.zip

Voilà, laissez le téléchargement s'effectuer... Nous allons utiliser cette archive dans une prochaine étape.

B. Le serveur Web

Dans cet exemple, je vais partir sur un socle LAMP sous Debian 11 pour effectuer l'installation. Cela correspond à un serveur Web basé sur Linux (Debian 11) sur lequel on va retrouver Apache, MariaDB ou MySQL et PHP.

Pour Apache, installez la dernière version disponible dans les dépôts de votre distribution et vérifiez que vous êtes en mesure d'activer certains modules ("deflate" pour la compression GZip, "rewrite" pour la réécriture d'URL et "ssl" pour le support du HTTPS).

Au sujet de PHP, pour le moment je vous recommande de commencer par PHP 7.4 dans un premier temps et de basculer sur PHP 8 dans un second temps. Le support pour les mises à jour de sécurité de PHP 7.4 expire en novembre 2022.

Pour le système de gestion de bases de données, MariaDB (open source fork de MySQL) ou MySQL (gratuit, mais propriétaire Oracle), installez la dernière version disponible.

Si vous avez besoin d'aide pour mettre en place le serveur Web, c'est-à-dire installer les différents paquets, suivez le premier lien ci-dessous. Ce sera mon point de départ.

III. Créer une base de données pour WordPress

WordPress s'appuie sur une base de données afin de stocker toutes les informations liées à la configuration et à vos contenus (catégorie, pages, articles, etc.). Sur notre serveur Web, nous allons lui créer une base de données dédiée avec un utilisateur dédié, et ce dernier aura les droits uniquement sur la BDD WordPress.

Que ce soit avec MariaDB ou MySQL, vous pouvez vous connecter à la console de votre instance avec la commande suivante :

mysql –u root –p

Saisissez le mot de passe "root" de votre instance : une console va s'ouvrir, prête à recevoir des commandes SQL.

Première étape : la création de la base de données. Ne donnez pas un nom trop évident, mais parlant malgré tout, par exemple cela peut être : wp202110_itconnect. Ce nom reste parlant pour vous : on sait qu'il s'agit de la base de données WordPress (wp), créée en octobre 2021 pour le site "itconnect".

CREATE DATABASE wp202110_itconnect;
# Retour dans la console : 
Query OK, 1 row affected (0.001 sec)

Vous pouvez lister les bases de données de votre instance avec la commande suivante :

SHOW DATABASES;

On peut voir que notre base de données apparaît bien dans la liste :

Deuxième étape : créer l'utilisateur qui sera administrateur de la base de données WordPress. Cet utilisateur sera nommé "adminwp202110_itconnect" et il aura comme mot de passe "Votre-Super-Mot-De-Passe".

Ce qui donne la requête SQL suivante :

CREATE USER 'adminwp202110_itconnect'@'localhost' IDENTIFIED BY 'Votre-Super-Mot-De-Passe';

Troisième étape : donner tous les droits à l'utilisateur "adminwp202110_itconnect" sur la base de données WordPress. Notre serveur Web et la base de données étant sur le même serveur, nous allons donner ces droits pour une connexion locale. Ce qui donne :

GRANT ALL PRIVILEGES ON wp202110_itconnect.* TO adminwp202110_itconnect@localhost;

Enfin, il faut exécuter la commande suivante pour actualiser les droits et activer les nouveaux privilèges sur notre base de données :

FLUSH PRIVILEGES;

La base de données pour WordPress est prête. Pour le moment elle est vide, mais WordPress va créer sa structure de tables lors de l'installation. Quittez la console MariaDB / MySQL :

exit

Passons à l'étape suivante.

IV. Décompresser l'archive WordPress à la racine du site

Nous allons utiliser le site par défaut d'Apache, qui a pour racine "/var/www/html" afin de stocker les données de notre site WordPress. Au préalable, on supprime la page d'index créée par défaut par Apache :

sudo rm /var/www/html/index.html

Ensuite, on installe le paquet « zip » sur notre serveur pour pouvoir décompresser l’archive de WordPress :

sudo apt-get update 
sudo apt-get install zip

On décompresser l'archive dans "/var/www/html" grâce à la commande suivante (en étant positionné dans le dossier où l'on a téléchargé le fichier latest.zip) :

sudo unzip latest.zip -d /var/www/html

L'option "-d" permet de définir là où sera décompressée l'archive. Le dossier WordPress apparaitra donc dans "/var/www/html" qui est le dossier où sont stockées les pages web par défaut.

Le problème, c'est que là on vient de décompresser le contenu de l'archive ZIP dans un dossier nommé "wordpress", ce qui donne : /var/www/html/wordpress. Du coup, pour accéder à notre site, il faudra faire : http://domaine.fr/wordpress/. Ce n'est pas top, nous allons corriger cela dès maintenant.

Déplacez-vous dans le dossier "/var/www/html" :

cd /var/www/html

Ensuite, exécutez la commande ci-dessous pour déplacer tout le contenu du dossier "wordpress" à la racine de notre site :

sudo mv wordpress/* /var/www/html/

Puisque le dossier "wordpress" ne sert plus à rien, on va le supprimer :

sudo rm wordpress/ -Rf

Enfin, on termine en donnant les droits à l'utilisateur "www-data" (correspondant à Apache) sur tous les fichiers de notre site, de manière récursive :

sudo chown -R www-data:www-data /var/www/html/

On obtient une belle liste de fichiers et dossiers. Au niveau des droits et pour des raisons de sécurité, vous devez avoir 755 sur les dossiers et 644 sur les fichiers. Ce qui est le cas par défaut si vous n'avez pas fait de modifications. En aucun cas vous ne devez poser des droits "777" sur un dossier ou un fichier.

Aperçu des droits WordPress
Aperçu des droits WordPress

Si vous avez un doute ou que vous pensez avoir modifié les droits, vous pouvez rectifier la situation.

Pour les fichiers, exécutez cette commande :

sudo find /var/www/html/ -type f -exec chmod 644 {} \;

Pour les dossiers, exécutez cette commande :

sudo find /var/www/html/ -type d -exec chmod 755 {} \;

Passez à la suite : ce sera à partir d'un navigateur.

V. Installation de WordPress

Pour la première fois, nous allons nous connecter sur l'interface web WordPress dans le but d'effectuer l'installation. Pour cela, il faut se rendre sur "http://IP-SERVEUR" avec votre navigateur préféré. Si vous avez déjà enregistré le nom de domaine et que l'enregistrement A du DNS pointe vers votre serveur, vous devriez pouvoir accéder au site grâce au nom de domaine du serveur.

Note : vous pouvez aussi tricher avec le fichier hosts de votre machine cliente (Linux : /etc/hosts - Windows : C:\Windows\System32\drivers\etc\hosts) afin d'associer l'adresse IP de votre serveur à un nom de domaine en créant un enregistrement local.

La première étape consiste à choisir la langue du site et de l'interface de WordPress. Ça devrait aller. 🙂

Ensuite, cliquez sur le bouton "C'est parti !". WordPress va générer lui-même le fichier "wp-config.php" : il s'agit d'un fichier de configuration très sensible qui contient des informations confidentielles comme le nom de la base de données, le nom de l'utilisateur pour s'y connecter et le mot de passe associé. Indispensable pour que PHP (et donc WordPress) puisse utiliser votre base de données.

Voilà l'étape la plus délicate de l'installation via l'assistant. Vous devez renseigner les différents champs pour indiquer à WordPress comment se connecter à votre base de données.

  • Nom de la base de données : dans cet exemple, ce sera "wp202110_itconnect"
  • Identifiant : le nom de l'utilisateur qui a les droits sur la base de données, en l'occurrence "adminwp202110_itconnect"
  • Mot de passe : le mot de passe de cet utilisateur
  • Adresse de la base de données : si le serveur Web et la base de données sont sur le même serveur, indiquez "localhost", sinon indiquez l'adresse IP du serveur distant
  • Préfixe des tables : chaque table de la base de données WordPress aura un préfixe. Par défaut, ce préfixe est "wp" donc par exemple la table des utilisateurs sera nommée "wp_users". Il faut personnaliser ce préfixe et le rendre un peu plus aléatoire pour des raisons de sécurité. Pour ma part, je vais partir sur "web14_", mais vous pouvez prendre aussi quelque chose d'aléatoire comme "sg389_".

Quand vous êtes prêt, cliquez sur "Envoyer". Ce qui donne au final :

Indiquez à WordPress comment il doit se connecter à votre base de données.
Indiquez à WordPress comment il doit se connecter à votre base de données.

WordPress va tester de se connecter à votre base de données et si cela fonctionne, un bouton "Lancer l'installation" va s'afficher. Cliquez dessus.

Installer WordPress sous Linux : c'est le grand moment !
Installer WordPress sous Linux : c'est le grand moment !

Il ne reste que quelques champs à renseigner comme le titre du site (modifiable ultérieurement) et la création d'un premier compte utilisateur. Je dirais même d'un compte administrateur, car ce compte sera admin du site. Évitez les identifiants trop évidents comme "admin", "administrateur", "webadmin", "adminwordpress", etc... Prenez quelque chose de plus original et personnel !

Choisissez un mot de passe complexe pour cet utilisateur, indiquez l'adresse e-mail associée et cliquez sur "Installer WordPress". Si vous désirez monter votre site tranquillement sans qu'il soit indexer par Google et consort, cochez la case associée à l'option "Visibilité par les moteurs de recherche".

WordPress est installé ! Cliquez sur le bouton "Se connecter". Sur la page de connexion qui apparaît, authentifiez-vous avec le compte admin que vous venez de créer, pour ma part "adm_florian".

Avant d'aller plus loin, prenez 30 secondes pour retourner sur votre console Linux et réaliser deux petites opérations. Tout d'abord pour supprimer le fichier "wp-config-sample.php", car il n'a plus d'intérêt (nous avons notre fichier wp-config.php définitif).

sudo rm /var/www/html/wp-config-sample.php

Ensuite, pour appliquer des droits très restrictifs sur le fichier "wp-config.php" pour le basculer en lecture seule seulement pour Apache. Indispensable pour des raisons de sécurité.

sudo chmod 400 /var/www/html/wp-config.php

Suite à la connexion, vous arrivez sur l'interface d'administration de WordPress. C'est votre centre de contrôle pour créer vos pages, vos articles, mais aussi ajouter des extensions, des thèmes et configurer WordPress dans son ensemble.

Cette interface d'administration est accessible à l'adresse suivante : http://<adresse-ip-ou-domaine>/wp-admin/.

L'interface d'administration de WordPress
L'interface d'administration de WordPress

En haut de l'interface, on peut qu'il y a une notification avec un "1". Cette icône correspond aux mises à jour et signifie qu'il y a une mise à jour disponible. Il peut s'agir d'une mise à jour de WordPress, d'une extension, d'un thème ou d'une traduction.

Par défaut, WordPress est livré avec deux extensions :

  • Akismet Anti-Spam qui est une extension performante pour lutter contre les spams dans les commentaires (je vous la recommande si vous envisagez de laisser la possibilité de publier des commentaires sur votre site)
  • Hello Dolly qui ne sert pas à grand-chose puisqu'elle sert seulement à afficher les paroles de la chanson "Hello, Dolly" de Louis Armstrong. Ne me demandez pas pourquoi, mais elle est là.

Ces deux extensions sont désactivées par défaut. En fait, une extension peut être présente sur votre installation de WordPress, c'est-à-dire qu'elle est téléchargée, mais non activée. De toute façon, lorsqu'une nouvelle extension est ajoutée sur WordPress, il faut toujours l'activer manuellement.

Le suivi des mises à jour est indispensable
Le suivi des mises à jour est indispensable

Sur le site en lui-même, c'est-à-dire la partie publique, cela donne :

WordPress est installé et il ne demande plus qu'une chose : être configuré et personnalisé.

Je vous recommande fortement de maintenir dans le temps votre site WordPress et de bien suivre les mises à jour. C'est un outil très populaire et donc, de fait, très ciblé par les hackers. Lorsque vous choisissez d'installer une extension, veillez à ce que ce soit une extension suivie (regardez la fréquence des mises à jour et la date de la dernière mise à jour) et bien notée.

Il y a également de bonnes extensions à mettre en place pour sécuriser son site WordPress contre les attaques courantes en ajoutant une fonction de pare-feu à WordPress. Pensez également à mettre en place une solution pour sauvegarder votre site (base de données + fichiers).

Si vous avez des questions sur l'installation ou sur WordPress, n'hésitez pas à laisser un commentaire sur ce tutoriel. De même si vous aimeriez un tutoriel sur une fonctionnalité particulière.

The post Comment installer WordPress facilement sur un serveur Apache ? first appeared on IT-Connect.

Comment installer et configurer memcached

25 septembre 2021 à 13:27

memcached est un cache pour objet pour les serveurs distribués.
Il permet de stocker des objets sous la forme clé/valeur.
Vous pouvez installer memcached sur n'importe quel VPS, serveur dédié (OVH, Dedibox, IONIS 1&1) car la plupart des distributions Linux le proposent.
memcached peut aussi fonctionner sur un pool de serveurs pour du load balancing par exemple pour vos serveurs WEB à travers les librairies PHP.

Dans ce tutoriel, je vous montre comment installer memcached sur un serveur dédié ou sur des serveurs partagés pour du load balancing.
Enfin quelques configurations memcached pour des applications PHP telles que WordPress, Google PageSpeed ou phpBB.

Comment installer et configurer memcached

Comment installer et configurer memcached et php-memcache

Attention, il y a deux librairies PHP php-memcache et php-memcached, donc selon le driver utilisé par votre application PHP, il faut installer le bon.

Sur les distributions Linux Redhat, CentOS, le paquet est php-pecl-memcached.

Sur un serveur dédié

  • Installez memcached avec APT :
apt-get install php-memcache memcached
  • Sur un serveur dédié seul, vous pouvez faire écouter memcached sur le localhost.
  • Pour cela, éditez le fichier /etc/memcached.conf puis décommentez le paramètre -l.
-l 127.0.0.1
  • Puis éditez le fichier de configuration de PHP /etc/php/7.3/mods-available/memcache.ini :
session.save_handler = memcache
session.save_path = 'tcp://127.0.0.1:11211'
  • On peut aussi ajouter des paramètres par exemple :
session.save_path="tcp://127.0.0.1:11211?persistent=1&amp;weight=1&amp;timeout=1&amp;retry_interval=15"
  • Enfin redémarrez les services :
/etc/init.d/php-fpm restart
/etc/init.d/memcached restart

Sur plusieurs de serveurs pour du load balancing

L'utilisation de sessions PHP peut être un problème lorsque vos applications PHP sont équilibrées en charge sur de nombreux serveurs Web.
Vous pouvez les stocker sur un export NFS ou recoder le session_set_save_handler en utilisant un backend SQL par exemple. Mais il n'y a pas de solution plus efficace, plus évolutive, plus performante et plus facile à déployer que d'utiliser memcache.

  • Installez memcached avec APT :
apt-get install php-memcache memcached
  • puis éditez le fichier éditez le fichier /etc/memcached.conf pour commencer la ligne -l.
  • Ainsi memcached va écouter sur toutes les interfaces réseaux.
  • Il est possible de spécifier les adresses IP en les séparant par des virgules mais dans mon cas cela ne fonctionnait pas.
-l 127.0.0.1, IP1, IP2
  • Ensuite éditez le fichier /etc/php/7.3/mods-available/memcache.ini et ajoutez les lignes suivantes.
  • memcache.session_redundancy doit être réglé sur nb serveur + 1. Ici il est à 4 pour un pool de trois serveurs.
memcache.allow_failover=1
memcache.session_redundancy=4
  • Enfin pour stocker la session PHP avec memcached, éditez le fichier /etc/php/7.3/mods-available/memcache.ini.
  • Puis modifiez les variables suivantes :
session.save_handler = memcache
session.save_path = 'tcp://IP1:11211,tcp://IP2:11211,tcp://IP2:11211'
  • Ensuite il convient de protéger l'accès avec iptables par exemple.
  • Inspirez vous de ces règles pour autoriser le port 11211 sur chaque serveur en remplaçant IP1, IP2 par l'adresse IP des serveurs du pool
iptables -A INPUT -s IP1 -i eth1 -p tcp -m state --state NEW -m tcp --dport 11211 -j ACCEPT
iptables -A INPUT -s IP2 -i eth1 -p tcp -m state --state NEW -m tcp --dport 11211 -j ACCEPT
  • Pour tester la connexion memcached, vous pouvez utiliser memcping disponible dans libmemcached-tools
memcping --server=IP1,IP2 --verbose
  • Enfin redémarrez les services :
/etc/init.d/php-fpm restart
/etc/init.d/memcached restart

Comment savoir si memcached est installé

Si vous rencontrez des problèmes memcached, voici comment vérifier votre installation.

Vérifier que le service memcached est actif

Commencez par vérifier que memcached est en cours de fonctionnement.
Pour cela il faut vérifier que le service (daemon) est bien actif.

systemctl status memcached

ou plus général à toutes les distributions Linux :

/etc/init.d/memcached status

Lorsque le service est actif, Active retourne active (running).

● memcached.service - memcached daemon
   Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2021-07-02 13:21:23 UTC; 3h 7min ago
     Docs: man:memcached(1)
 Main PID: 26864 (memcached)
    Tasks: 10 (limit: 4915)
   Memory: 41.8M
   CGroup: /system.slice/memcached.service
           └─26864 /usr/bin/memcached -m 2048 -p 11211 -u memcache -P /var/run/memcached/memcached.pid

Autre méthode avec ps pour vérifier que le processus memcached est en cours de fonctionnement:

ps -ef|grep memcached

Enfin vérifiez avec netstat que memcached est bien en écoute (LISTENING) :

netstat -lp|grep memcached

avec phpinfo

Ensuite il faut vérifier que le module memcached de PHP est bien actif.
La solution la plus simple est de consulter la configuration PHP avec phpinfo.

  • Créez une page PHP avec :
<?php
phpinfo();
?>
  • Puis consultez la page depuis votre navigateur internet.
  • La liste des modules se charge, vérifiez que memcached est bien présent
Vérifier que le module php-memcached est bien chargé avec phpinfo

Enfin pensez à supprimer la page de test par sécurité.

Comment configurer memcached

Ensuite vous devez configurer votre application PHP (ou autre) à utiliser memcached.
Il faut modifier la configuration, en général un fichier config.php.

Utiliser memcached avec WordPress

Il faut passer par une extension de cache telle que Total Cache ou WP Super Cache.
A partir de là, on active memcached dans la configuration de l'extension.

Il est aussi possible de passer par Batcache.
Cela nécessite

  • D'uploader le fichier advanced-cache.php dans le dossier /wp-content/ de WordPress
  • Puis de modifier le fichier de configuration de WordPress wp-config.php pour ajouter :
define(‘WP_CACHE’, true);

Utiliser memcached avec phpBB

Modifiez le fichier config.php de phpBB en remplaçant la variable acm_type de cette manière :

//$acm_type = 'phpbb\\cache\\driver\\file';
$acm_type = 'phpbb\\cache\\driver\\memcache';

Si vous avez besoin d'indiquer l'adresse memcached :

define('PHPBB_ACM_MEMCACHE_HOST', 'localhost'); // Memcache server hostname
define('PHPBB_ACM_MEMCACHE_PORT', 11211); // Memcache server port
define('PHPBB_ACM_MEMCACHE_COMPRESS', false); // Compress stored data

Utiliser memcached avec Google PageSpeed

Google PageSpeed est un module pour Apache ou Nginx pour optimiser vos sites WEB.
Il permet notamment la mise en place d'un cache que l'on peut placer dans memcached.
Pour cela, il faut déclarer les paramètres suivants :

## Speed up PageSpeed by storing it in memcached
pagespeed MemcachedThreads               1;
pagespeed MemcachedServers               "localhost:11211";

Vider ou afficher le contenu d'un serveur Memcached en ligne de commandes

Enfin pour obtenir des informations sur le contenu du serveur Memcached.
Comment interroger le contenu ou vider le cache, suivez ce tutoriel :

L’article Comment installer et configurer memcached est apparu en premier sur malekal.com.

Site Web : WordPress, thèmes, extensions, SEO…

3 septembre 2021 à 07:00
Par : Fx
code web 300x225 - Site Web : Wordpress, thèmes, extensions, SEO...Cela fait maintenant plus de 10 ans que Cachem existe et je voulais partager avec vous un peu de mon expérience. Dans cet article, je vais vous parler de WordPress, mais aussi d’hébergement, des thèmes, des extensions… Aujourd’hui, le site dispose d’une certaine audience et s’affiche pour +40 000 visiteurs par jour. J’imagine que cela peut intéresser quelques personnes… WordPress, thèmes, extensions, SEO… Lorsque j’ai lancé Cachem, ce n’était pas mon premier site Web. Comme beaucoup, j’avais déjà créé quelques […]

Accélérer WordPress en chargeant uniquement les styles des blocs utilisés

2 septembre 2021 à 09:00
Par : Korben

Si vous êtes utilisateur de WordPress et que vous utilisez les blocs dans votre thème, vous avez peut-être remarqué après avoir analysé votre site qu’une grosse feuille de style venait alourdir tout ça.

Il s’agit de la feuille de style wp-block-library qui contient tous les styles pour tous les blocs.

wp-includes/css/dist/block-library/style.css

J’avais le souci dernièrement, donc j’ai creusé un peu et j’ai découvert que WordPress 5.8 améliorait la façon dont les sites chargeaient les styles de blocs.

En ajoutant un simple filtre dans votre fichier functions.php, il est possible de charger uniquement le fichier

wp-includes/css/dist/block-library/common.css

qui est beaucoup plus petit et qui contient uniquement des styles de base. Les styles des autres blocs seront alors chargés uniquement sur les pages où vous appelez ces blocs.

Ce changement ne modifie pas le fonctionnement de WordPress et n’impacte que le front, donc peu de risque que ça casse votre site ou que ça modifie votre design. Je vous invite vraiment à mettre ça en place. De mon côté, ça a vraiment allégé mon site.

Pour cela, ouvrez le fichier functions.php et ajoutez-y la ligne suivante :

add_filter('should_load_separate_core_block_assets', '__return_true');

Sauvegardez, rechargez, observez et voilà !

Si le sujet vous intéresse, vous trouverez plus d’infos ici.

❌