introduction
Tout au long de ce didacticiel, vous apprendrez à configurer un niveau de sécurité de base sur une toute nouvelle machine virtuelle Vultr VC2 exécutant Ubuntu 18.04.
Conditions préalables
- Un compte Vultr, vous pouvez en créer un ici
- Une nouvelle VM Vultr Ubuntu 18.04
Créer et modifier un utilisateur
La première chose que nous allons faire est de créer notre nouvel utilisateur que nous utiliserons pour nous connecter à la VM:
adduser porthorian
Remarque: Il est recommandé d'utiliser un nom d'utilisateur unique qui sera difficile à deviner. La plupart des bots par défaut pour essayer root
, admin
, moderator
et similaire.
Un mot de passe vous sera demandé ici. Il est fortement recommandé d'utiliser un mot de passe alphanumérique fort. Après cela, suivez les invites sur votre écran et quand il vous demande si les informations sont correctes, appuyez simplement sur Y.
Une fois ce nouvel utilisateur ajouté, nous devrons lui accorder des autorisations sudo afin que nous puissions exécuter des commandes de l'utilisateur au nom de l'utilisateur root:
usermod -aG sudo porthorian
Une fois que vous avez donné à votre utilisateur sudo des autorisations, passez à votre nouvel utilisateur:
su - porthorian
Pour générer la clé SSH, veuillez suivre ce document .
Une fois que vous avez généré votre nouvelle clé SSH, copiez votre clé publique. Il devrait ressembler à ceci:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAmB3uRWxAAELNJ8oGBCBmZx7S11vnAp0RG8rdKf6CLdvT7NMbKF55F8Wf0hFPewEryplaH54ibdmaTuheJVKy1lUhHnVi0AcBpkhJiiOQdEtvbYKT/eIkQl/Qm92Gz6aL3lJ0UknO4gO0LzgqI2vYX0b9LHMF+ZvApEDahLCna6RKo3/lffnANUKfExE+dVwOcJwATL3Ld5IkSatm7zBqbJAim0wj/JQ5ejzkL+aYd3YawpW3qf+WsY3HGbK2TIJt3LsiZJ3M7giZo/fVIZCJqsIOyO9NUOEx5/+KE8IniGb7gdRYgquAEJr89poDCNz/8CBODi9z3ukiE1+UnVlhfQ== rsa-key-20190408
Configurez votre annuaire d'utilisateurs
Accédez au répertoire personnel de vos utilisateurs si vous n'y êtes pas déjà:
cd $HOME
$HOME
est la variable d'environnement pour le répertoire personnel de vos utilisateurs. Ceci est automatiquement défini lors de la création du nouvel utilisateur.
Dans notre répertoire personnel, nous allons placer un autre répertoire à l'intérieur. Ce répertoire sera caché aux autres utilisateurs de la machine, à l'exception de root et de l'utilisateur qui possède le répertoire. Créez le nouveau répertoire et limitez ses autorisations avec les commandes suivantes:
mkdir ~/.ssh
chmod 700 ~/.ssh
Maintenant, nous allons ouvrir un fichier .ssh
appelé authorized_keys
. Il s'agit du fichier universel qu'OpenSSH recherche. Vous pouvez changer le nom de ceci dans la configuration OpenSSH /etc/ssh/sshd_config
, si le besoin s'en fait sentir.
Utilisez votre éditeur préféré pour créer le fichier. Ce tutoriel utilisera nano:
nano ~/.ssh/authorized_keys
Copiez et collez votre clé ssh dans le authorized_keys
fichier que nous avons ouvert. Une fois la clé publique à l'intérieur, vous pouvez enregistrer le fichier en appuyant sur CTRL+ O.
Assurez-vous que le chemin de fichier approprié s'affiche:
/home/porthorian/.ssh/authorized_keys
Si c'est le bon chemin de fichier, appuyez simplement sur ENTER, sinon, apportez les modifications nécessaires pour correspondre à l'exemple ci-dessus. Quittez ensuite le fichier avec CTRL+ X.
Maintenant, nous allons restreindre l'accès au fichier:
chmod 600 ~/.ssh/authorized_keys
Quittez notre utilisateur créé et revenez à l'utilisateur root:
exit
Désactiver l'authentification par mot de passe
Nous pouvons maintenant désactiver l'authentification par mot de passe sur le serveur, de cette façon, la connexion nécessitera une clé ssh. Il est important de noter que si vous désactivez l'authentification par mot de passe et que la clé publique n'a pas été installée correctement, vous vous verrouillerez hors de votre serveur. Il est recommandé de tester la clé avant même de vous déconnecter de votre utilisateur root.
Nous sommes actuellement connectés à notre utilisateur root, nous allons donc modifier sshd_config
:
nano /etc/ssh/sshd_config
Nous allons rechercher 3 valeurs pour nous assurer que OpenSSH est correctement configuré.
PasswordAuthentication
PubkeyAuthentication
ChallengeResponseAuthentication
Nous pouvons trouver ces valeurs en appuyant sur CTRL+ W.
Les valeurs doivent être définies comme suit:
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
Si les valeurs sont commentées, supprimez le #
au début de la ligne et assurez-vous que les valeurs de ces variables sont comme indiqué ci-dessus. Une fois que vous avez changé ces variables, sauvegardez et quittez votre éditeur, avec CTRL+ O, ENTERet enfin CTRL+ X.
Nous allons maintenant recharger sshd
avec la commande suivante:
systemctl reload sshd
Nous pouvons maintenant tester la connexion. Assurez-vous que vous ne vous êtes pas encore déconnecté de votre session racine, et ouvrez une nouvelle fenêtre ssh et connectez-vous avec votre clé ssh liée à la connexion.
Dans PuTTY c'est sous Connection
-> SSH
-> Auth
.
Naviguez pour trouver votre clé privée pour l'authentification, comme vous auriez dû l'enregistrer lors de la création de la clé ssh.
Connectez-vous à votre serveur avec la clé privée comme authentification. Vous serez maintenant connecté à votre machine virtuelle Vultr VC2.
Remarque: Si vous avez ajouté une phrase secrète lors de la génération de la clé ssh, vous serez invité à en saisir une. Ceci est complètement différent du mot de passe de votre utilisateur réel sur la machine virtuelle.
Configurer un pare-feu de base
Configurer UFW
Nous allons commencer par installer UFW s'il n'est pas déjà sur la machine virtuelle. Un bon moyen de vérifier est avec la commande suivante:
sudo ufw status
Si UFW est installé, il sortira Status:inactive
. S'il n'est pas installé, vous serez invité à le faire.
Nous pouvons l'installer avec cette commande:
sudo apt-get install ufw -y
Maintenant, nous allons autoriser le port SSH 22
dans notre pare-feu:
sudo ufw allow 22
Alternativement, vous pouvez autoriser OpenSSH:
sudo ufw allow OpenSSH
L'une ou l'autre des commandes ci-dessus fonctionnera.
Maintenant que nous avons autorisé le port à travers notre pare-feu, nous pouvons activer UFW:
sudo ufw enable
Il vous sera demandé si vous êtes sûr de vouloir effectuer cette opération. La saisie y
suivie de ENTERactivera le pare-feu:
porthorian@MEANStack:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation? y
Remarque: Si vous n'avez pas autorisé OpenSSH ou le port 22, vous vous verrouillez hors de votre machine virtuelle. Assurez-vous que l'un d'entre eux est autorisé avant d'activer UFW.
Une fois le pare-feu activé, vous serez toujours connecté à votre instance. Nous allons maintenant revérifier notre pare-feu avec la même commande qu'auparavant:
sudo ufw status
Vous verrez quelque chose de similaire à la sortie suivante:
porthorian@MEANStack:~$ sudo ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
Configuration du pare-feu Vultr
Pour sécuriser davantage notre serveur, nous allons utiliser notre pare-feu Vultr. Connectez-vous à votre compte . Une fois connecté, vous accédez à l'onglet pare-feu situé en haut de votre écran:
Nous allons maintenant ajouter un nouveau groupe de pare-feu. Cela nous permettra de spécifier quels ports peuvent même atteindre notre pare-feu UFW, nous offrant une double couche de sécurité:
Vultr va maintenant vous demander comment vous allez nommer votre pare-feu en utilisant le champ "Description". Assurez-vous de décrire ce que feront les serveurs de ce groupe de pare-feu pour une administration future plus facile. Pour les besoins de ce tutoriel, nous allons le nommer test
. Vous pouvez toujours modifier la description ultérieurement si vous le souhaitez.
Nous allons d'abord avoir besoin d'obtenir notre adresse IP. La raison pour laquelle nous le faisons directement est que si votre adresse IP n'est pas statique et change constamment, vous pouvez simplement vous connecter à votre compte Vultr et changer l'adresse IP.
C'est aussi pourquoi nous n'avions pas besoin de l'adresse IP sur le pare-feu UFW. De plus, il limite l'utilisation du pare-feu de votre machine virtuelle pour filtrer tous les autres ports et laisse simplement le pare-feu Vultr le gérer. Cela limite la pression du filtrage global du trafic sur votre instance.
Utilisez le miroir de réseau de Vultr pour trouver votre adresse IP.
Alors maintenant que nous avons notre adresse IP, nous allons ajouter une règle IPV4 à notre pare-feu nouvellement créé:
Une fois l'adresse IP entrée, cliquez sur le +
symbole pour ajouter votre adresse IP au pare-feu.
Votre groupe de pare-feu ressemblera à ceci:
Maintenant que notre IP est correctement liée dans le groupe Pare-feu, nous devons lier notre instance Vultr. Sur le côté gauche, vous verrez un onglet qui dit "Instances liées":
Une fois sur la page, vous verrez un menu déroulant avec une liste de vos instances de serveur:
Cliquez sur le menu déroulant et sélectionnez votre instance. Ensuite, lorsque vous êtes prêt à ajouter l'instance au groupe de pare-feu, cliquez sur le +
symbole.
Félicitations, vous avez réussi à sécuriser votre machine virtuelle Vultr VC2. Cela vous donne une bonne base pour une couche de sécurité très basique sans le souci de quelqu'un qui essaie de forcer votre instance par force brute.