Configuration initiale du serveur avec Ubuntu 16.04
Introduction
Lorsque vous créez un nouveau serveur Ubuntu 16.04 pour la première fois, vous devez suivre quelques étapes de configuration dès le début 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 racine
Pour vous connecter à votre serveur, vous aurez besoin de connaître l'adresse IP publique de votre serveur. Vous aurez également besoin du mot de passe ou, si vous avez installé une clé SSH pour l'authentification, de la clé privée du compte de l'utilisateur « root ». Si vous n'êtes pas encore connecté à votre serveur, vous pouvez suivre le premier tutoriel de cette série, Comment se connecter à votre droplet avec SSH, qui couvre ce processus en détail.
Si vous n'êtes pas déjà connecté à votre serveur, continuez et connectez-vous en tant qu'utilisateur root
à l'aide de la commande suivante (remplacez le mot en surbrillance par l'adresse IP publique de votre serveur) :
ssh [email protected]_server_ip
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 racine (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 la racine
L'utilisateur racine est l'utilisateur administratif dans un environnement Linux qui dispose de privilèges très étendus. En raison des privilèges accrus du compte root, vous êtes en fait dissuadé de l'utiliser régulièrement. En effet, une partie du pouvoir inhérent au compte root est la capacité d'apporter des modifications très destructrices, 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 lorsque vous en avez besoin.
Deuxième étape - Créer 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 nous connecter à partir de maintenant.
Cet exemple crée un nouvel utilisateur appelé "sammy", mais vous devez le remplacer par un nom d'utilisateur que vous aimez :
adduser sammy
Quelques questions vous seront posées, en commençant par le mot de passe du compte.
Entrez un mot de passe fort et, éventuellement, remplissez les informations supplémentaires si vous le souhaitez. Ce n'est pas obligatoire et vous pouvez simplement appuyer sur ENTER
dans n'importe quel champ que vous souhaitez ignorer.
Troisième étape - Privilèges root
Maintenant, nous avons un nouveau compte d'utilisateur avec des privilèges de compte réguliers. Cependant, nous pouvons parfois être amenés à effectuer des tâches administratives.
Pour éviter d'avoir à nous déconnecter de notre utilisateur normal et à nous reconnecter en tant que compte root, nous pouvons configurer ce que l'on appelle des privilèges "superutilisateur" ou root pour notre compte normal. Cela permettra à notre utilisateur normal d'exécuter des commandes avec des privilèges administratifs en mettant le mot sudo
avant chaque commande.
Pour ajouter ces privilèges à notre nouvel utilisateur, nous devons ajouter le nouvel utilisateur au groupe "sudo". Par défaut, sur Ubuntu 16.04, les utilisateurs appartenant au groupe « sudo » sont autorisés à utiliser la commande sudo
.
En tant que root
, exécutez cette commande pour ajouter votre nouvel utilisateur au groupe sudo (remplacez le mot en surbrillance par votre nouvel utilisateur) :
usermod -aG sudo sammy
Votre utilisateur peut maintenant exécuter des commandes avec des privilèges de superutilisateur ! Pour plus d'informations sur la façon dont cela fonctionne, consultez ce tutoriel sudoers.
Si vous souhaitez augmenter la sécurité de votre serveur, suivez le reste des étapes de ce didacticiel.
Étape 4 - Ajouter une authentification par clé publique (recommandé)
La prochaine étape 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 (c'est-à-dire. ton ordinateur):
ssh-keygen
En supposant que votre utilisateur local s'appelle "localuser", vous verrez une sortie qui ressemble à ceci :
ssh-keygen outputGenerating public/private rsa key pair. Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Appuyez sur Entrée pour accepter ce nom de fichier et ce chemin (ou entrez un nouveau nom).
Ensuite, vous serez invité à saisir une phrase de passe pour sécuriser la clé. Vous pouvez soit saisir une phrase secrète, soit 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 saisir de phrase secrète. Si vous entrez une phrase de passe, vous aurez besoin à la fois de la clé privée et de la phrase de passe pour vous connecter. La sécurisation de vos clés avec des phrases secrètes est plus sécurisée, mais les deux méthodes ont leur utilité 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 localuser. 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 souhaiterez copier votre clé publique sur votre nouveau serveur. Nous allons couvrir deux façons simples 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 Droplet. 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 Droplet, utilisez option 2 à la place.
Option 1 : Utiliser 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 identifiants 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]_server_ip
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 : Installer manuellement la clé
En supposant que vous avez généré une paire de clés SSH à l'aide de 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 à ceci :
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.
Pour activer 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 basculer temporairement vers le nouvel utilisateur (remplacez votre propre nom d'utilisateur) :
su - sammy
Vous serez maintenant dans le répertoire personnel de votre nouvel utilisateur.
Créez un nouveau répertoire nommé .ssh
et restreignez ses permissions 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 nano
pour éditer le fichier :
nano ~/.ssh/authorized_keys
Insérez maintenant votre clé publique (qui devrait se trouver dans votre presse-papiers) en la collant dans l'éditeur.
Appuyez sur CTRL-x
pour quitter le fichier, puis sur y
pour enregistrer les modifications que vous avez apportées, puis sur ENTER
pour confirmer le nom du 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
Votre clé publique est maintenant installée et vous pouvez utiliser les clés SSH pour vous connecter en tant qu'utilisateur.
Pour en savoir plus sur le fonctionnement de l'authentification par clé, lisez ce didacticiel : Comment configurer l'authentification basée sur une clé SSH sur un serveur Linux.
Ensuite, nous vous montrerons comment augmenter la sécurité de votre serveur en désactivant l'authentification par mot de passe.
Cinquième étape - Désactiver l'authentification par mot de passe (recommandé)
Maintenant que votre nouvel utilisateur peut utiliser les clés SSH pour se connecter, vous pouvez augmenter la sécurité de votre serveur en désactivant l'authentification par mot de passe uniquement. Cela limitera l'accès SSH à votre serveur à l'authentification par clé publique uniquement. Autrement dit, la seule façon de se connecter à votre serveur (en dehors de la console) est de posséder la clé privée qui s'associe à la clé publique qui a été installée.
Remarque : Désactivez uniquement l'authentification par mot de passe si vous avez installé une clé publique pour votre utilisateur, comme recommandé dans la section précédente, étape 4. Sinon, vous vous verrouillez hors de votre serveur !
Pour désactiver l'authentification par mot de passe sur votre serveur, procédez comme suit.
En tant que root ou votre nouvel utilisateur sudo, ouvrez la configuration du démon SSH :
sudo nano /etc/ssh/sshd_config
Trouvez la ligne qui spécifie PasswordAuthentication
, décommentez-la en supprimant le #
précédent, puis changez sa valeur en « non ». Cela devrait ressembler à ceci après avoir effectué la modification :
sshd_config — Désactive l'authentification par mot de passe
PasswordAuthentication no
Voici deux autres paramètres qui sont importants pour l'authentification par clé uniquement et qui sont définis par défaut. Si vous n'avez pas modifié ce fichier auparavant, vous n'avez pas besoin de modifier ces paramètres :
sshd_config — Valeurs par défaut importantes
PubkeyAuthentication yes ChallengeResponseAuthentication no
Lorsque vous avez terminé vos modifications, enregistrez et fermez le fichier en utilisant la méthode décrite précédemment (CTRL-X
, puis Y
, puis ENTER
).
Tapez ceci pour recharger le démon SSH :
sudo systemctl reload sshd
L'authentification par mot de passe est maintenant désactivée. Votre serveur n'est désormais accessible qu'avec l'authentification par clé SSH.
Sixième étape - Testez la connexion
Maintenant, avant de vous déconnecter du serveur, vous devez tester votre nouvelle configuration. Ne vous déconnectez pas tant que vous n'avez pas confirmé que vous pouvez vous connecter avec succès via SSH.
Dans un nouveau terminal sur votre machine locale, connectez-vous à votre serveur en utilisant le nouveau compte que nous avons créé. Pour ce faire, utilisez cette commande (remplacez votre nom d'utilisateur et l'adresse IP du serveur) :
ssh [email protected]_server_ip
Si vous avez ajouté l'authentification par clé publique à votre utilisateur, comme décrit aux étapes quatre et cinq, votre clé privée sera utilisée comme authentification. Sinon, vous serez invité à entrer votre mot de passe d'utilisateur.
Remarque sur l'authentification par clé : Si vous avez créé votre paire de clés avec une phrase secrète, vous serez invité à saisir la phrase secrète de votre clé. Sinon, si votre paire de clés est sans mot de passe, vous devriez être connecté à votre serveur sans mot de passe.
Une fois l'authentification fournie au serveur, vous serez connecté en tant que nouvel utilisateur.
N'oubliez pas que si vous devez exécuter une commande avec les privilèges root, tapez "sudo" avant comme ceci :
sudo command_to_run
Septième étape - Configurer un pare-feu de base
Les serveurs Ubuntu 16.04 peuvent utiliser le pare-feu UFW pour s'assurer que seules les connexions à certains services sont autorisées. Nous pouvons configurer un pare-feu de base très facilement en utilisant cette application.
Différentes applications peuvent enregistrer leurs profils auprès d'UFW lors de l'installation. Ces profils permettent à UFW de gérer ces applications par leur nom. OpenSSH, le service nous permettant de nous connecter à notre serveur maintenant, a un profil enregistré auprès d'UFW.
Vous pouvez le voir en tapant :
sudo ufw app list
OutputAvailable applications: OpenSSH
Nous devons nous assurer que le pare-feu autorise les connexions SSH afin que nous puissions nous reconnecter la prochaine fois. Nous pouvons autoriser ces connexions en tapant :
sudo ufw allow OpenSSH
Ensuite, nous pouvons activer le pare-feu en tapant :
sudo ufw enable
Tapez "y" et appuyez sur ENTER pour continuer. Vous pouvez voir que les connexions SSH sont toujours autorisées en tapant :
sudo ufw status
OutputStatus: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
Si vous installez et configurez des services supplémentaires, vous devrez ajuster les paramètres du pare-feu pour autoriser un trafic acceptable. Vous pouvez apprendre certaines opérations UFW courantes dans ce guide.
Où aller en partant d'ici?
À ce stade, vous disposez d'une base solide pour votre serveur. Vous pouvez installer tous les logiciels dont vous avez besoin sur votre serveur dès maintenant.