Introduction
Lorsque vous créez un nouveau serveur pour la première fois, vous devez suivre quelques étapes de configuration dans le cadre de la configuration de base. Cela augmentera la sécurité et la convivialité de votre serveur et vous donnera une base solide pour les actions ultérieures.
Première étape – Connexion Root
Pour vous connecter à votre serveur, vous devrez connaître l’adresse IP publique de votre serveur et le mot de passe du compte de l’utilisateur « root”. Si vous ne vous êtes pas déjà connecté à votre serveur, vous pouvez suivre le premier tutoriel de cette série, Comment vous connecter à votre Droplet avec SSH, qui couvre ce processus en détail.
Si vous n’êtes pas déjà connecté à votre serveur, allez-y et connectez-vous en tant qu’utilisateur root
en utilisant la commande suivante (remplacez le mot en surbrillance par l’adresse IP publique de votre serveur) :
- ssh [email protected]_IP_ADDRESS
Terminez le processus de connexion en acceptant l’avertissement concernant l’authenticité de l’hôte, s’il apparaît, puis en fournissant votre authentification root (mot de passe ou clé privée). Si c’est la première fois que vous vous connectez au serveur, avec un mot de passe, vous serez également invité à modifier le mot de passe root.
À propos de Root
L’utilisateur root est l’utilisateur administratif dans un environnement Linux qui a de très larges privilèges. En raison des privilèges accrus du compte root, vous êtes en fait découragé de l’utiliser régulièrement. En effet, une partie du pouvoir inhérent au compte root est la capacité de faire des changements très destructeurs, même par accident.
L’étape suivante consiste à créer un compte utilisateur alternatif avec un champ d’influence réduit pour le travail quotidien. Nous vous apprendrons comment obtenir des privilèges accrus pendant les périodes où vous en avez besoin.
Deuxième étape – Créez un nouvel utilisateur
Une fois que vous êtes connecté en tant que root
, nous sommes prêts à ajouter le nouveau compte utilisateur que nous utiliserons pour vous connecter à partir de maintenant.
Cet exemple crée un nouvel utilisateur appelé « demo », mais vous devez le remplacer par un nom d’utilisateur que vous aimez:
- adduser demo
Ensuite, attribuez un mot de passe au nouvel utilisateur (encore une fois, remplacez « demo” par l’utilisateur que vous venez de créer):
- passwd demo
Entrez un mot de passe fort, et répétez-le à nouveau pour le vérifier.
Troisième étape – Privilèges Root
Maintenant, nous avons un nouveau compte utilisateur avec des privilèges de compte réguliers. Cependant, nous pouvons parfois avoir besoin de faire des tâches administratives.
Pour éviter d’avoir à se déconnecter de notre utilisateur normal et à se reconnecter en tant que compte root, nous pouvons configurer ce que l’on appelle les privilèges « super utilisateur” ou root pour notre compte normal. Cela permettra à notre utilisateur normal d’exécuter des commandes avec des privilèges d’administration en plaçant le mot sudo
avant chaque commande.
Pour ajouter ces privilèges à notre nouvel utilisateur, nous devons ajouter le nouvel utilisateur au groupe « roue”. Par défaut, sur CentOS 7, les utilisateurs appartenant au groupe ”wheel » sont autorisés à utiliser la commande sudo
.
En tant que root
, exécutez cette commande pour ajouter votre nouvel utilisateur au groupe de roues (remplacez le mot en surbrillance par votre nouvel utilisateur):
- gpasswd -a demo wheel
Maintenant, votre utilisateur peut exécuter des commandes avec des privilèges de super utilisateur! Pour plus d’informations sur la façon dont cela fonctionne, consultez notre tutoriel sudoers.
Quatrième étape – Ajout de l’authentification par clé publique (Recommandé)
L’étape suivante de la sécurisation de votre serveur consiste à configurer l’authentification par clé publique pour votre nouvel utilisateur. Cette configuration augmentera la sécurité de votre serveur en exigeant une clé SSH privée pour vous connecter.
Générer une paire de clés
Si vous ne disposez pas déjà d’une paire de clés SSH, composée d’une clé publique et d’une clé privée, vous devez en générer une. Si vous avez déjà une clé que vous souhaitez utiliser, passez à l’étape Copier la clé publique.
Pour générer une nouvelle paire de clés, entrez la commande suivante sur le terminal de votre machine locale :
- ssh-keygen
En supposant que votre utilisateur local s’appelle « localuser », vous verrez une sortie qui ressemble à ce qui suit :
ssh-keygen outputGenerating public/private rsa key pair.Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Appuyez sur retour pour accepter ce nom de fichier et ce chemin (ou entrez un nouveau nom).
Ensuite, vous serez invité à saisir une phrase secrète avec laquelle sécuriser la clé. Vous pouvez entrer une phrase secrète ou laisser la phrase secrète vide.
Remarque: Si vous laissez la phrase secrète vide, vous pourrez utiliser la clé privée pour l’authentification sans entrer de phrase secrète. Si vous entrez une phrase secrète, vous aurez besoin à la fois de la clé privée et de la phrase secrète pour vous connecter. La sécurisation de vos clés avec des mots de passe est plus sécurisée, mais les deux méthodes ont leurs utilisations et sont plus sécurisées que l’authentification par mot de passe de base.
Cela génère une clé privée, id_rsa
, et une clé publique, id_rsa.pub
, dans le répertoire .ssh
du répertoire personnel de l’utilisateur local. N’oubliez pas que la clé privée ne doit pas être partagée avec quiconque ne devrait pas avoir accès à vos serveurs !
Copiez la Clé publique
Après avoir généré une paire de clés SSH, vous voudrez copier votre clé publique sur votre nouveau serveur. Nous couvrirons deux façons faciles de le faire.
Remarque : La méthode ssh-copy-id
ne fonctionnera pas sur DigitalOcean si une clé SSH a été sélectionnée lors de la création de gouttelettes. En effet, DigitalOcean désactive l’authentification par mot de passe si une clé SSH est présente, et le ssh-copy-id
s’appuie sur l’authentification par mot de passe pour copier la clé.
Si vous utilisez DigitalOcean et que vous avez sélectionné une clé SSH lors de la création de gouttelettes, utilisez plutôt l’option 2.
Option 1 : Utilisez ssh-copy-id
Si le script ssh-copy-id
est installé sur votre machine locale, vous pouvez l’utiliser pour installer votre clé publique sur n’importe quel utilisateur pour lequel vous avez des informations de connexion.
Exécutez le script ssh-copy-id
en spécifiant l’utilisateur et l’adresse IP du serveur sur lequel vous souhaitez installer la clé, comme ceci:
- ssh-copy-id [email protected]_IP_ADDRESS
Après avoir fourni votre mot de passe à l’invite, votre clé publique sera ajoutée au fichier .ssh/authorized_keys
de l’utilisateur distant. La clé privée correspondante peut maintenant être utilisée pour se connecter au serveur.
Option 2: Installez manuellement la Clé
En supposant que vous avez généré une paire de clés SSH à l’étape précédente, utilisez la commande suivante sur le terminal de votre machine locale pour imprimer votre clé publique (id_rsa.pub
):
- cat ~/.ssh/id_rsa.pub
Cela devrait imprimer votre clé SSH publique, qui devrait ressembler à ce qui suit:
id_rsa.pub contentsssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf [email protected]
Sélectionnez la clé publique et copiez-la dans votre presse-papiers.
Ajouter une clé publique au nouvel utilisateur distant
Pour permettre l’utilisation de la clé SSH pour s’authentifier en tant que nouvel utilisateur distant, vous devez ajouter la clé publique à un fichier spécial dans le répertoire personnel de l’utilisateur.
Sur le serveur, en tant qu’utilisateur root
, entrez la commande suivante pour passer au nouvel utilisateur (remplacez votre propre nom d’utilisateur):
- su - demo
Vous serez maintenant dans le répertoire personnel de votre nouvel utilisateur.
Créez un nouveau répertoire appelé .ssh
et limitez ses autorisations avec les commandes suivantes:
- mkdir .ssh
- chmod 700 .ssh
Ouvrez maintenant un fichier dans.ssh appelé authorized_keys
avec un éditeur de texte. Nous utiliserons vi pour éditer le fichier:
- vi .ssh/authorized_keys
Entrez en mode insertion, en appuyant sur i
, puis entrez votre clé publique (qui devrait être dans votre presse-papiers) en la collant dans l’éditeur. Maintenant, appuyez sur ESC
pour quitter le mode insertion.
Entrez :x
puis ENTER
pour enregistrer et quitter le fichier.
Restreignez maintenant les permissions du fichier authorized_keys avec cette commande:
- chmod 600 .ssh/authorized_keys
Tapez cette commande une fois pour revenir à l’utilisateur root
:
- exit
Maintenant, vous pouvez vous connecter en SSH en tant que nouvel utilisateur, en utilisant la clé privée comme authentification.
Pour en savoir plus sur le fonctionnement de l’authentification par clé, lisez ce tutoriel : Comment Configurer l’authentification par clé SSH sur un serveur Linux.
Cinquième étape – Configurer le démon SSH
Maintenant que nous avons notre nouveau compte, nous pouvons sécuriser un peu notre serveur en modifiant sa configuration de démon SSH (le programme qui nous permet de nous connecter à distance) pour interdire l’accès SSH distant au compte root.
Commencez par ouvrir le fichier de configuration avec votre éditeur de texte en tant que root:
- vi /etc/ssh/sshd_config
Ici, nous avons la possibilité de désactiver la connexion root via SSH. Il s’agit généralement d’un paramètre plus sécurisé car nous pouvons désormais accéder à notre serveur via notre compte utilisateur normal et augmenter les privilèges si nécessaire.
Pour désactiver les connexions root distantes, nous devons trouver la ligne qui ressemble à ceci :
#PermitRootLogin yes
Astuce : Pour rechercher cette ligne, tapez /PermitRoot
puis appuyez sur ENTER
. Cela devrait amener le curseur sur le caractère « P” sur cette ligne.
Décommentez la ligne en supprimant le symbole ”# » (appuyez sur Shift-x
).
Maintenant, déplacez le curseur sur le « oui » en appuyant sur c
.
Remplacez maintenant « oui » en appuyant sur cw
, puis en tapant ”non ». Appuyez sur Escape
lorsque vous avez terminé l’édition. Cela devrait ressembler à ceci :
PermitRootLogin no
La désactivation de la connexion racine distante est fortement recommandée sur chaque serveur!
Entrez :x
puis ENTER
pour enregistrer et quitter le fichier.
Recharger SSH
Maintenant que nous avons apporté nos modifications, nous devons redémarrer le service SSH afin qu’il utilise notre nouvelle configuration.
Tapez ceci pour redémarrer SSH:
- systemctl reload sshd
Maintenant, avant de nous déconnecter du serveur, nous devrions tester notre nouvelle configuration. Nous ne voulons pas nous déconnecter avant de pouvoir confirmer que de nouvelles connexions peuvent être établies avec succès.
Ouvrez une nouvelle fenêtre de terminal. Dans la nouvelle fenêtre, nous devons commencer une nouvelle connexion à notre serveur. Cette fois, au lieu d’utiliser le compte racine, nous voulons utiliser le nouveau compte que nous avons créé.
Pour le serveur que nous avons configuré ci-dessus, connectez-vous à l’aide de cette commande. Remplacez vos propres informations le cas échéant :
- ssh [email protected]_IP_ADDRESS
Remarque: Si vous utilisez PuTTY pour vous connecter à vos serveurs, assurez-vous de mettre à jour le numéro de port de la session pour qu’il corresponde à la configuration actuelle de votre serveur.
Vous serez invité à saisir le mot de passe du nouvel utilisateur que vous avez configuré. Après cela, vous serez connecté en tant que nouvel utilisateur.
Rappelez-vous, si vous devez exécuter une commande avec des privilèges root, tapez « sudo » avant comme ceci:
- sudo command_to_run
Si tout va bien, vous pouvez quitter vos sessions en tapant:
- exit
Où aller à partir d’ici?
À ce stade, vous avez une base solide pour votre serveur. Vous pouvez installer n’importe quel logiciel dont vous avez besoin sur votre serveur dès maintenant.
Si vous n’êtes pas sûr de ce que vous voulez faire avec votre serveur, consultez le prochain tutoriel de cette série pour les Étapes supplémentaires recommandées pour les nouveaux serveurs CentOS 7. Il couvre des choses comme l’activation de fail2ban
pour réduire l’efficacité des attaques par force brute, des paramètres de pare-feu de base, du NTP et des fichiers d’échange. Il fournit également des liens vers des tutoriels qui vous montrent comment configurer des applications Web courantes.
Si vous voulez juste explorer, jetez un œil au reste de notre communauté pour trouver d’autres tutoriels. Certaines idées populaires sont la configuration d’une pile LAMP ou d’une pile LEMP, qui vous permettra d’héberger des sites Web.