Configurer Plesk pour être conforme à la norme PCI DSS sur Linux

Dans cette section, vous trouverez les étapes à suivre pour sécuriser votre serveur et le rendre conforme à la norme PCI DSS sur un serveur Linux.

Installer la dernière version du logiciel

Avant de commencer, nous vous recommandons si possible de mettre à jour tous les logiciels sur votre serveur vers la version la plus récente.

Désactiver les protocoles et chiffrements SSL/TLS faibles

Ensuite, vous devez exécuter l'utilitaire PCI Compliance Resolver disponible dans le répertoire d'installation de Plesk. Cela vous permettra de désactiver les protocoles et chiffrements SSL/TLS faibles pour les serveurs Web et les serveurs de messagerie gérés par Plesk ; mais aussi d'appliquer d'autres modifications de sécurité.

Pour exécuter l'utilitaire :

Connectez-vous au serveur shell.

Entrez la commande suivante :

plesk sbin pci_compliance_resolver {--enable|--disable} [<service>]

Vous pouvez utiliser les valeurs suivantes pour l'argument <service> :

  • panel : applique les modifications de sécurité pour sw-cp-server (Nginx pour Plesk).
  • apache : applique les modifications de sécurité pour le serveur Apache.
  • courier : applique les modifications de sécurité pour Courier IMAP.
  • dovecot : applique les modifications de sécurité pour Dovecot.
  • qmail : applique les modifications de sécurité pour qmail.
  • postfix : applique les modifications de sécurité pour Postfix MTA.
  • proftpd : applique les modifications de sécurité pour ProFTPd.
  • all : applique les modifications de sécurité pour l'ensemble des services décris ci-dessus. Il s'agit d'une valeur par défaut.

Lorsque vous exécutez l'utilitaire avec l'option  --enable , les modifications de sécurité suivantes s'appliquent aux services spécifiés :

  • Définit la liste de chiffrement suivante : “EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES”.
  • Sur les dernières versions des systèmes d'exploitation, définit les protocoles suivants : "TLSv1.1 TLSv1.2". Sur les versions plus anciennes (y compris CentOS 5, Red Hat Enterprise Linux 5, CloudLinux 5), définit les protocoles suivants : "TLSv1 TLSv1.1 TLSv1.2" (en réalité, seul TLSv1 fonctionnera sur ces systèmes d'exploitation).
  • Définit la taille du paramètre DH sur 2048.
  • Désactive la compression SSL/TLS.
  • Définit disable_plaintext_auth = yes pour Dovecot.
  • Désactive l'authentification plein texte pour les connexions non chiffrées pour Courier.

Lorsque vous exécutez l'utilitaire avec l'option --disable , les modifications effectuées par l'utilitaire avec l'option --enable sont partiellement annulées. La taille du paramètre DH et les paramètres de compression SSL/TLS notamment restent tels quels, tandis que la liste de chiffrement et les protocoles sont redéfinis sur le jeu de valeurs par défaut (par défaut, ce jeu inclut les protocoles "TLSv1 TLSv1.1 TLSv1.2" et le chiffrement "HIGH:!aNULL:!MD5").

Si vous devez modifier les protocoles et/ou le chiffrement pour tous les services, vous pouvez appeler l'utilitaire server_pref (pour plus de détails sur cet utilitaire, cliquez ici).

Si vous devez définir des paramètres spécifiques pour certains services, appelez manuellement l'utilitaire  sslmng  :

plesk sbin sslmng --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES" --protocols="TLSv1.1 TLSv1.2" --strong-dh --disable-tls-compression

Ajoutez l'option "--service <some_service>" à la commande ci-dessus et modifiez les paramètres SSL/TLS pour un service particulier si nécessaire.

Remarque : les modifications effectuées par l'utilitaire sslmng peuvent être écrasées par un appel ultérieur à l'utilitaire server_pref ou par une mise à jour de Plesk.

Limitations

Les limitations suivantes existent :

  1. Les protocoles pour l'agent qmail mail agent ne peuvent pas être configurés ; qmail n'est pas assez sécurisé pour être conforme à la norme PCI DSS. Nous vous recommandons d'utiliser Postfix à la place.
  2. Les chiffrements de qmail ne peuvent pas être modifiés par les utilitaires Plesk (bien qu'il est possible de les modifier via le fichier de configuration).
  3. TLSv1.1 et TLSv1.2 ne sont pas pris en charge par CentOS 5, Red Hat Enterprise Linux 5 et CloudLinux 5.
  4. La taille du paramètre DH ne peut pas être gérée par Apache depuis le fournisseur de l'OS (CentOS 5, Red Hat Enterprise Linux 5, CloudLinux 5).
  5. La compression SSL/TLS n'est pas désactivée sur Debian 7 pour ProFTPd, Dovecot et Postfix.
Interdire l'accès externe au serveur de base de données MySQL

Vous devez également interdire l'accès au serveur de base de données MySQL depuis des adresses externes. Pour cela, exécutez la commande suivante :

plesk sbin mysqlmng --bind-address local
Protéger les informations sur les fichiers

Pour écarter les risques de sécurité liés à la divulgation des informations sur les fichiers et leurs propriétés par le serveur Web Apache, ajoutez la directive FileETag au fichier de configuration du serveur Web.

Pour ce faire :

  1. Ouvrez le fichier de configuration du serveur Web pour le modifier :
    • Sur Debian et Ubuntu, ce fichier se trouve sous : /etc/apache2/plesk.conf.d/roundcube.htaccess.inc.
    • Dans les autres distributions de Linux, il se trouve sous :  /etc/httpd/conf/httpd.conf.
  2. Ajoutez la ligne  FileETag MTime Size et enregistrez le fichier.
  3. Redémarrez le serveur Web.

Dans les systèmes basés sur des packs Debian, exécutez la commande /etc/init.d/apache2 restart.

Dans les systèmes basés sur des packs RPM, exécutez la commande /etc/init.d/restart.

Sécuriser l'accès FTP

Pour interdire à ProFTPd d'afficher des informations sur sa version dans les connexions FTP :

  1. Ouvrez le fichier de configuration ProFTPd /etc/psa/psa.conf pour pouvoir l'éditer.
  2. Insérez la ligne suivante dans le fichier : ServerIdent off.
  3. Sauvegardez le fichier.

Si vous autorisez les connexions FTP à votre serveur, vous devez interdire toutes les connexions FTP à l'exception des connexions sécurisées FTPS.

Pour autoriser uniquement les connexions FTPS à votre serveur :

  1. Allez dans  Outils & Paramètres > Politique de sécurité.
  2. Sélectionnez l'option Autoriser uniquement les connexions FTPS sécurisées pour la politique d'utilisation FTPS.

    Security_Policy_FTPS