Configurer votre VPS monté sur Ubuntu 18.04 lors de sa 1ère utilisation

publié le 21/03/2019

Ubuntu 18.04 VPS

Vous voilà, comme moi, l'heureux propriétaire d'un VPS flambant neuf ? Ubuntu 18.04 ? En ce cas, cet article peut vous être utile. J'ai rassemblé ici les manipulations à effectuer pour renforcer la sécurité du serveur. Création d'un utilisateur, pare-feu...


Je pars du principe que vous disposez de vos identifiants root et que vous êtes connectés à votre vps via ssh.

ssh root@my_server_ip

Mise à jour du système

Une fois connecté, on commence par mettre à jour Ubuntu:

sudo apt update && sudo apt dist-upgrade

Installation d'un paquet de mise à jour automatique du système

sudo apt install unattended-upgrades

Je laisse généralement le paramétrage par défaut mais si vous voulez le modifier, c'est le fichier /etc/apt/apt.conf.d/50unattended-upgrades que vous devez modifier.

Enfin il faut activer les mises à jour automatiques en éditant le fichier /etc/apt/apt.conf.d/20auto-upgrades (créez le s'il n'existe pas):


APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Création d'un nouvel utilisateur

On créé un nouvel utilisateur:

adduser my_username

On assigne ensuite le groupe sudo à notre nouvel utilisateur afin qu'il puisse lancer des commandes en mode superuser:

usermod -aG sudo my_username

Configuration d'un pare-feu

On va utiliser UFW pour régler notre pare-feu. Pour afficher la config actuelle:

ufw app list

On doit s'assurer que le port SSH soit activé

ufw allow OpenSSH
ufw enable
ufw status

Attention: si vous activez ufw sans autoriser le protocole SSH, vous ne pourrez plus vous connecter à votre VPS. Je vous conseille donc d'ouvrir un nouveau terminal et de tenter une connexion avec vos identifiants avant de quitter votre session actuelle.

Si vous destinez votre serveur à un usage web, vous aurez besoin d'ouvrir d'autres ports.

ufw allow http
ufw allow https

Plus d'infos sur UFW sur le site de Digital Ocean.


Configuration plus fine de ssh

Quittez votre session et connectez-vous avec les identifiants de votre nouvel utilisateur.

ssh my_username@my_server_ip

Puis éditez le fichier /etc/ssh/sshd_config

# /etc/ssh/sshd_config
# interdit à l'utilisateur root de se connecter via ssh
PermitRootLogin no
PasswordAuthentication yes

on redémarre le daemon ssh pour que les changements prennent effet:

sudo systemctl restart ssh

Il est possible d'aller plus loin encore dans la sécurisation de votre connexion ssh en désactivant l'authentification par mot de passe. Plus d'infos sur Digital Ocean

En bonus, si vous voulez vous connecter facilement à votre serveur depuis votre machine locale, sur votre machine, éditez le fichier ~/.ssh/config

# /.ssh/config depuis votre machine locale
Host my_machine
    Hostname my_server_ip
    Port 22
    User my_username

Puis copiez votre clé ssh vers votre machine distante en faisant:

ssh-copy-id my_machine

Renseignez votre mot de passe. Vous pouvez désormais accéder à votre machine distante en faisant un simple ssh my_machine sans renseigner votre mot de passe. Pratique !