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 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.

[[step-one -—- root-login]] == Étape 1 - Connexion root

Pour vous connecter à votre serveur, vous devez 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 pour le compte de l’utilisateur «root». Si vous n'êtes pas encore connecté à votre serveur, vous pouvez suivre le premier tutoriel de cette série,How to Connect to Your Droplet with 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'utilisateurroot à 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 vous vous connectez pour la première fois au serveur avec un mot de passe, vous serez également invité à modifier le mot de passe root.

À propos de la racine

L'utilisateur root est l'utilisateur administratif dans un environnement Linux doté de privilèges très étendus. En raison des privilèges accrus du compte root, vous êtes en faitdiscouraged de l'utiliser régulièrement. En effet, une partie du pouvoir inhérent au compte root réside dans sa capacité à effectuer des modifications très destructrices, même par accident.

L'étape suivante consiste à configurer un compte d'utilisateur alternatif avec une influence réduite pour le travail quotidien. Nous allons vous apprendre à obtenir des privilèges plus importants lorsque vous en avez besoin.

[[step-two -—- create-a-new-user]] == Étape 2 - Créer un nouvel utilisateur

Une fois que vous êtes connecté en tant queroot, 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

On vous posera quelques questions, en commençant par le mot de passe du compte.

Entrez un mot de passe fort et, éventuellement, renseignez les informations supplémentaires si vous le souhaitez. Ce n'est pas obligatoire et vous pouvez simplement appuyer surENTER dans n'importe quel champ que vous souhaitez ignorer.

[[step-three -—- root-privileges]] == Étape trois - Root Privileges

Nous avons maintenant un nouveau compte utilisateur avec des privilèges de compte réguliers. Cependant, nous pouvons parfois avoir besoin de tâches administratives.

Pour éviter de devoir vous déconnecter de notre utilisateur normal et vous reconnecter en tant que compte root, nous pouvons configurer ce que nous appelons des privilèges «superutilisateur» ou privilèges root pour notre compte normal. Cela permettra à notre utilisateur normal d'exécuter des commandes avec des privilèges administratifs en mettant le motsudo 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 commandesudo.

En tant queroot, exécutez cette commande pour ajouter votre nouvel utilisateur au groupesudo (remplacez le mot en surbrillance par votre nouvel utilisateur):

usermod -aG sudo sammy

Maintenant, votre utilisateur peut exécuter des commandes avec les privilèges de superutilisateur! Pour plus d'informations sur son fonctionnement, consultezthis sudoers tutorial.

Si vous souhaitez augmenter la sécurité de votre serveur, suivez les étapes restantes de ce didacticiel.

[[step-four -—- add-public-key-authentication-recommended]] == Étape quatre - 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é privée SSH 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'étapeCopy the Public Key.

Pour générer une nouvelle paire de clés, entrez la commande suivante sur le terminal de voslocal machine (ie. ton ordinateur):

ssh-keygen

En supposant que votre utilisateur local s'appelle «localuser», vous obtiendrez un résultat ressemblant à 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 Entrée pour accepter ce nom de fichier et ce chemin (ou entrez un nouveau nom).

Ensuite, vous serez invité à entrer un mot de passe composé pour sécuriser la clé. Vous pouvez soit entrer une phrase secrète, soit la laisser vide.

Note: 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 de passe, vous aurez besoin à la fois de la clé privéeandet de la phrase de passe pour vous connecter. Sécuriser vos clés avec des mots de passe est plus sécurisé, mais les deux méthodes ont leurs utilisations et sont plus sécurisées que l’authentification de base par mot de passe.

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 delocaluser. Rappelez-vous que la clé privée ne doit pas être partagée avec des personnes qui ne devraient pas avoir accès à vos serveurs!

Copier 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]##

Note: la méthodessh-copy-id ne fonctionnera pas sur DigitalOcean si une clé SSH a été sélectionnée lors de la création de gouttelettes. Cela est dû au fait que DigitalOcean désactive l'authentification par mot de passe si une clé SSH est présente et quessh-copy-id s'appuie sur l'authentification par mot de passe pour copier la clé.

Si vous utilisez DigitalOcean et avez sélectionné une clé SSH lors de la création de droplet, utilisez plutôtoption 2.

Option 1: Utiliser ssh-copy-id

Si le scriptssh-copy-id est installé sur votre ordinateur local, vous pouvez l'utiliser pour installer votre clé publique auprès de tout utilisateur pour lequel vous avez des informations de connexion.

Exécutez le scriptssh-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 ayez généré une paire de clés SSH en utilisant l'étape précédente, utilisez la commande suivante sur le terminal de votrelocal machine pour imprimer votre clé publique (id_rsa.pub):

cat ~/.ssh/id_rsa.pub

Cela devrait imprimer votre clé publique SSH, 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 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 du répertoire de base de l’utilisateur.

On the server, en tant qu'utilisateurroot, entrez la commande suivante pour basculer temporairement vers le nouvel utilisateur (remplacez votre propre nom d'utilisateur):

su - sammy

Maintenant, vous serez dans le répertoire de base 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 utiliseronsnano pour éditer le fichier:

nano ~/.ssh/authorized_keys

Maintenant, insérez votre clé publique (qui devrait être dans votre presse-papiers) en la collant dans l'éditeur.

Appuyez surCTRL-x pour quitter le fichier, puis sury pour enregistrer les modifications que vous avez effectuées, puis surENTER pour confirmer le nom du fichier.

Maintenant, limitez les permissions du fichierauthorized_keys avec cette commande:

chmod 600 ~/.ssh/authorized_keys

Tapez cette commandeonce pour retourner à l'utilisateurroot:

exit

Maintenant, votre clé publique est 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:How To Configure SSH Key-Based Authentication on a Linux Server.

Nous verrons ensuite comment augmenter la sécurité de votre serveur en désactivant l’authentification par mot de passe.

[[step-five -—- disable-password-authentication-recommended]] == Étape cinq - 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. Cela limiterait l'accès SSH à votre serveur à l'authentification par clé publique uniquement. Autrement dit, le seul moyen de vous connecter à votre serveur (en dehors de la console) consiste à posséder la clé privée qui s'apparie à la clé publique qui a été installée.

[.note] #Note: Ne désactivez l'authentification par mot de passe que si vous avez installé une clé publique pour votre utilisateur comme recommandé dans la section précédente, étape quatre. Sinon, vous vous bloquerez hors de votre serveur!
#

Pour désactiver l'authentification par mot de passe sur votre serveur, procédez comme suit.

En tant queroot ouyour new sudo user, ouvrez la configuration du démon SSH:

sudo nano /etc/ssh/sshd_config

Trouvez la ligne qui spécifiePasswordAuthentication, décommentez-la en supprimant les# précédents, puis changez sa valeur en «no». Cela devrait ressembler à ceci après avoir effectué le changement:

sshd_config - Désactive l'authentification par mot de passe

PasswordAuthentication no

Voici deux autres paramètres importants pour l'authentification par clé uniquement et définis par défaut. Si vous n’avez pas encore modifié ce fichier, vous devezdo notmodifier 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, puisY, puisENTER).

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.

[[step-six -—- test-log-in]] == Sixième étape - Tester la connexion

Maintenant, avant de vous déconnecter du serveur, vous devez tester votre nouvelle configuration. Ne déconnectez pas avant de confirmer que vous pouvez vous connecter avec succès via SSH.

Dans un nouveau terminal sur votrelocal machine, 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 votre adresse IP du serveur):

ssh [email protected]_server_ip

Si vous avez ajouté une authentification par clé publique à votre utilisateur, comme décrit aux étapes 4 et 5, votre clé privée sera utilisée comme authentification. Sinon, vous serez invité à saisir le mot de passe de votre utilisateur.

[.note] #Note about key authentication: Si vous avez créé votre paire de clés avec une phrase de passe, vous serez invité à entrer la phrase de passe de votre clé. Sinon, si votre paire de clés est sans mot de passe, vous devez être connecté à votre serveur sans mot de passe.
#

Une fois l'authentification fournie au serveur, vous serez connecté en tant que nouvel utilisateur.

Rappelez-vous, si vous devez exécuter une commande avec les privilèges root, tapez «sudo» comme suit:

sudo command_to_run

[[step-seven -—- set-up-a-basic-firewall]] == Étape sept - 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 de UFW lors de l'installation. Ces profils permettent à UFW de gérer ces applications par nom. OpenSSH, le service qui nous permet maintenant de nous connecter à notre serveur, a un profil enregistré auprès de 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 permettre 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 ENTREE 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 quelques opérations UFW courantes dansthis guide.

Où aller en partant d'ici?

À ce stade, votre serveur repose sur une base solide. Vous pouvez maintenant installer n’importe quel logiciel dont vous avez besoin sur votre serveur.