Ajouter un commentaire

Sécuriser son serveur dédié Linux (1e partie)

Introduction


Assurer le certificat SSL de sa machine est un point essentiel qui ne doit pas être sous-estimé sous peine de devenir la cible d'attaques en provenance d'Internet.

La puissance actuelle des ordinateurs rend les techniques d'intrusions comme par exemple l'attaque par force brute ou "bruteforce" très simple à mettre en oeuvre, et ont pour but d'obtenir un accès administrateur à la machine cible en peu de temps

Vous trouverez sur cette page une liste non exhaustive de pistes pour sécuriser votre serveur Linux sur différents points, tels que le compte root, l'accès ssh, le pare-feu, etc...

Avertissement: Avant toute modification de votre système prévoyez toujours une sauvegarde de vos fichiers en cas de mauvaise manipulation.

Sur un serveur de production, pensez à effectuer ces opérations pendant les heures creuses afin de minimiser l'impact de vos actions sur votre activité. L'idéal étant de concevoir et mettre en place ces mesures avant le passage en production.


Pré-requis

La mesure la plus importante sera toujours de maintenir votre système à jour. Cela ne rendra pas votre système inviolable mais rendra les failles les plus populaires non exploitables. Vous pouvez utiliser par exemple les commandes suivantes:

#apt-get update

#apt-get upgrade

#yum update

#yum upgrade

Nb : Il est aussi possible de mettre à jour un paquet manuellement avec la commande #rpm

Afin de conserver votre système Debian à jour, assurez-vous de posséder une liste des dépôts officiels à jour.

Les dépôts officiels sont les serveurs de l'éditeur de votre distribution, sur lesquels votre système va aller chercher ses mises à jour. Vous pourrez trouver une liste des dépôts disponibles chez IKOULA et les instructions d'installation via ce lien.

Les répertoires utilisateurs

Par défaut sur un système Linux, les répertoires utilisateurs sont accessibles aux autres comptes locaux présents sur la machine.

Afin de palier à cette faille dans la sécurité, il nous est nécessaire de reconfigurer le comportement par défaut.

Faisons-en sorte que les répertoires ne soient lisibles que par leur propriétaire respectif.

dpkg-reconfigure adduser

Linux security

L'accès root

Autoriser la connexion du compte root après la première utilisation n'est en général pas une bonne idée. En effet, le compte root ou super-utilisateur possède un accès total à votre système. Si une personne malveillante vient à gagner l'accès au compte super-utilisateur, elle aura le contrôle total de votre machine.

La commande sudo

Afin de réduire les risques vous pouvez, par exemple, ajouter un utilisateur qui, au besoin, obtiendra les droits de notre super-utilisateur par l'utilisation de la commande sudo.

Avant d'installer sudo, il faut tout d'abord créer un nouvel utilisateur :

adduser votre_utilisateur

Remplissez ensuite les différents champs requis, le mot de passe sera composé, de préférence, de minuscules, de majuscules, de chiffres, de symboles pour un total de douze caractères minimum (recommandation CNIL).

Installons maintenant sudo

apt-get install sudo

Une fois sudo installé, il faut intégrer le nouvel utilisateur dans le groupe, pour qu'il puisse utiliser la commande.

usermod -a -G sudo votre_utilisateur

A partir de maintenant, notre utilisateur pourra, au besoin, faire précéder la commande souhaitée de #sudo afin de l'exécuter avec les permissions du super-utilisateur. Son mot de passe lui sera demandé avant d'exécuter toute commande.

sudo cat /etc/password

Dans l'exemple ci-dessus la commande "cat" est exécutée avec les droits administrateur, car elle est précédée de la commande "sudo"

Interdire le login root

Maintenant que nous disposons d'un autre utilisateur, nous pouvons par exemple empêcher la connexion à notre système à partir du compte root.

Tout d'abord, il vous faut éditer le fichier de configuration du service ssh Linuxsécurity

vi/etc/ssh/sshd_config

Trouvez et éditez la ligne suivante dans votre fichier sshd_config, en modifiant le yes par no. Au besoin, dé-commentez la ligne en supprimant le symbole #.

PermitRootLogin no

N'oubliez pas ensuite de sauvegarder et de fermer le fichier de configuration (:wg)

Lorsque le service SSH sera relancé, vos modifications prendront effet.

/etc/init.d/ssh restart

Conseil : Veillez à toujours garder le terminal SSH connecté en root pendant la durée des tests. Une mauvaise manipulation pourrait en effet rendre impossible la connexion à votre système.

L'ouverture d'un second terminal afin de tester la connexion et l'utilisation des modifications sur le nouvel utilisateur est donc fortement recommandée.