GNU/Linux >> Tutoriels Linux >  >> Linux

Meilleures pratiques de sécurité Wordpress sous Linux

WordPress® est un excellent système de gestion de contenu (CMS), surtout si vous débutez dans les blogs ou le codage. Cependant, en raison du nombre élevé d'installations de WordPress, Wordpress est devenu une cible pour les attaquants. La bonne nouvelle est qu'il existe de nombreuses étapes que vous pouvez suivre pour rendre votre installation WordPress plus sécurisée.

Utilisateurs et autorisations Linux

Il est courant pour les utilisateurs qui découvrent WordPress de définir leurs autorisations en grand ouvert (définissez 777 autorisations) lorsqu'ils voient un Permission Denied erreur de WordPress. Cette configuration permet à tout utilisateur (le plus important, le processus du serveur Web) de modifier les fichiers de votre installation WordPress. Pour verrouiller cela, nous vous recommandons de créer un utilisateur pour chaque installation WordPress en tant qu'utilisateur du protocole de transfert de fichiers (FTP) pour le site. Cet article suppose que vous avez un seul site et que vous nommez ce serveur wp-user .

Utilisez la commande suivante pour créer cet utilisateur :

sudo useradd wp-user -d /home/wp-user -m -s /bin/false

Remarque :Nous vous recommandons d'utiliser uniquement l'authentification par clé Secure Shell (SSH). Si vous prévoyez d'utiliser l'authentification par mot de passe pour FTP, vous devez créer un mot de passe fort pour l'utilisateur.

Définir les autorisations

Vous devez faire d'un utilisateur, autre que l'utilisateur système du service Web, le propriétaire de la racine du document de votre site. Vous devez également refuser les autorisations d'écriture au service Web. Le service Web n'a besoin que d'une autorisation de lecture pour diffuser du contenu, et l'attribution d'autorisations d'écriture ou d'exécution laisse un vecteur d'attaque pour les étrangers. Cependant, étant donné que WordPress doit pouvoir télécharger des fichiers et mettre à jour son propre code, vous devez légèrement contourner ces règles.

Par exemple, vous devez définir la propriété de l'ensemble du répertoire sur wp-user:www-data .

Ce paramètre signifie que wp-user a la propriété de l'utilisateur, et www-data (l'utilisateur système du serveur Web Apache®) est propriétaire du groupe. Selon votre système d'exploitation, cet utilisateur peut également être nommé httpd ou apache . Si vous utilisez nginx®, l'utilisateur est nginx . Pour définir les autorisations, exécutez la commande suivante en remplaçant la valeur d'exemple /var/www/example.com/ avec la racine du document de votre site :

sudo chown -R wp-user:www-data /var/www/example.com/

Utilisez les autorisations de base suivantes pour votre installation WordPress :

  • 755 (drwxr-xr-x) pour les dossiers
  • 644 (-rw-r–r–) pour les fichiers

Ces autorisations accordent wp-user la possibilité de tout modifier et l'accès en lecture seule au serveur Web.

L'exemple suivant montre comment attribuer ces autorisations :

find /var/www/example.com/ -type d -exec sudo chmod  755 {} \;
find /var/www/example.com/ -type f -exec sudo chmod 644 {} \;

Ces autorisations accordent wp-user la possibilité de tout modifier et l'accès en lecture seule au serveur Web. Bien que ce soit une pratique courante pour les sites statiques, WordPress doit pouvoir accéder à certains fichiers et les exécuter pour fonctionner correctement. La liste suivante répertorie les exceptions et les autorisations que vous devez définir, en supposant la même racine de document :

  • find /var/www/example.com/wp-content/uploads -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/upgrade -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/themes -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/plugins -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/uploads -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/upgrade -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/themes -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/plugins -type f -exec sudo chmod 664 {} \;
  • sudo chmod 775 /var/www/example.com/wp-config.php

WordPress utilise ces répertoires pour les mises à jour du système, les mises à jour des thèmes et des plugins et les téléchargements de pièces jointes de blog (le plus souvent des images).

Utilisateur administrateur WordPress

Semblable à l'utilisateur racine Linux®, votre installation WordPress est livrée avec un administrateur utilisateur. Parce qu'il s'agit d'un utilisateur administratif qui existe dans presque toutes les installations WordPress, les pirates le ciblent dans des attaques par force brute. Le moyen le plus simple de fermer ce vecteur d'attaque consiste à supprimer l'utilisateur admin. Nous vous recommandons de créer un utilisateur avec un nom différent, de donner à cet utilisateur des privilèges d'administrateur, puis de supprimer l'utilisateur admin.

Mises à jour sécurisées

FTP est intrinsèquement non sécurisé, en particulier lorsque vous utilisez une authentification par mot de passe. Il est beaucoup plus sûr de configurer des mises à jour de clés SSH au lieu d'utiliser des mots de passe. Utilisez les étapes suivantes pour configurer les mises à jour de clé SSH :

  1. Assurez-vous que les packages nécessaires sont installés sur votre système. Sur Ubuntu® ou Debian®, exécutez les commandes suivantes :

    sudo apt-get update
    sudo apt-get install php5-dev libssh2-php libssh2-1-dev
    
  2. Configurez votre accès SSH en effectuant les étapes suivantes en tant que wp-user . Parce que vous avez refusé la connexion en tant que wp-user , vous devez ouvrir un shell à l'aide de la commande sudo suivante :

    sudo -u wp-user /bin/bash
    
  3. Utilisez les commandes suivantes pour passer au wp-user répertoire personnel et configurez les clés SSH :

    cd ~
    ssh-keygen -t rsa -b 4096
    mkdir ~/.ssh; cd ~/.ssh
    echo 'from="127.0.0.1"' cat ~/.ssh/id_rsa.pub > authorized_keys
    exit
    
  4. Ensuite, assurez-vous de définir correctement les autorisations à l'aide des commandes suivantes :

    sudo chmod 700 /home/wp-user/.ssh
    sudo chmod 040 /home/wp-user/.ssh/*
    sudo chmod 644 /home/wp-user/.ssh/authorized_keys
    
  5. Ajoutez les lignes suivantes à votre /var/www/example.com/wp-config.php fichier :

    define('FTP_PUBKEY','/home/wp-user/id_rsa.pub');
    define('FTP_PRIVKEY','/home/wp-user/id_rsa');
    define('FTP_USER','wp-user');
    define('FTP_PASS','');
    define('FTP_HOST','127.0.0.1:22');
    

Vous devriez pouvoir mettre à jour WordPress, les plug-ins et les thèmes sans être invité à fournir des informations de connexion.

Plug-ins

Nous vous recommandons d'utiliser le moins de plug-ins possible pour obtenir les résultats souhaités. Cependant, nous vous recommandons d'utiliser les plug-ins suivants pour renforcer la sécurité :

  • WP Security Pro  :Il s'agit d'un plug-in tout-en-un doté de fonctionnalités de protection telles que la protection de la connexion, l'analyse des logiciels malveillants, l'authentification à deux facteurs et un pare-feu.
  • Désactiver XML-RPC  :Vous pouvez verrouiller XML-RPC en utilisant un .htaccess dossier. Cependant, à moins que vous n'ayez une raison impérieuse d'avoir besoin du contrôle à distance de votre installation WordPress, il est préférable de le désactiver pour éviter les attaques par pingback.
  • Disqus :Parce que le système de commentaire utilisateur intégré pour WordPress est très sujet au spam, nous vous recommandons de désactiver l'enregistrement ouvert. Pour ce faire, accédez à Paramètres > Général , puis en décochant Tout le monde peut s'inscrire . Utilisez ensuite Disqus pour modérer les commentaires et demandez aux utilisateurs de s'authentifier auprès de leurs comptes Facebook® ou Google®.

Linux
  1. Qu'est-ce qu'un utilisateur Linux ?

  2. Meilleures pratiques de sécurité OpenSSH

  3. 8 Meilleures pratiques avec sudo sous Linux - À faire et à ne pas faire de sudo

  4. Meilleures pratiques de sécurité des serveurs Linux

  5. Meilleures pratiques de sécurité des serveurs Windows

Durcissement du serveur Linux – Meilleures pratiques

Configuration du serveur Ubuntu - Meilleures pratiques de sécurité

Sécurité Linux contre Windows

5 meilleures pratiques de sécurité Linux SSH pour sécuriser vos systèmes

Les 20 meilleurs outils de sécurité Linux :le choix de l'expert Linux

20+ meilleurs logiciels de caméra Linux | IP, webcam, vidéosurveillance et caméra de sécurité