Configuration VPS

Configurer la connexion SSH

Pour accéder à la console de votre serveur vous devrez effectuer une connexion par tunel SSH. C’est une connexion sécurisée qui va chiffrer le dialogue entre votre ordinateur et votre serveur. Pour cela, vous devez avoir un client SSH sur votre ordinateur local et configurer le service SSH sur votre serveur. Sommaire du tutoriel 1. Première connexion 2. Sécurisation du server 2.1 Ajouter un utilisateur 2.2 Changer le port SSH 2.3 Créer une clé public/privée (côté client) 2.4 Authentification par clé (côté serveur) 1. Première connexion Linux / MacOS Windows Ouvrez simplement un terminal Cliquez simultanément sur la touche windows + r Entrez cmd dans le champ de la fenêtre qui s’affiche en bas à gauche de votre écran puis cliquez sur OK > ssh root@ip_du_serveur le message suivant s’affiche: The authenticity of host '138.68.87.113 (138.68.87.113)' can't be established. ECDSA key fingerprint is SHA256:RBuop6/a8DrySzRx+XSw2uhY38DKkmlrjfMY+55iGAo. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes répondre yes Warning: Permanently added '138.68.87.113' (ECDSA) to the list of known hosts. Le terminal vous demande maintenant le mot de passe pour l’utilisateur root root@138.68.87.113's password: Entrez le mot de passe puis validez en appuyant sur la touche entrée. Vous êtes maintenant connecté au terminal de votre serveur distant ! root@v2202206177897232182:~# 2. Sécurisation du server Nous allons maintenant ajouter quelques sécurités supplémentaires à votre connexion SSH. 2.1 Ajouter un utilisateur La première chose à faire est de réduire les droits d’exécution de votre utilisateur de connexion. L’utilisateur root a tous les droits sur le système et il peut être dangereux qu’il tombe entre de mauvaises mains ou que vous exécutiez une mauvaise manipulation par erreur. Nous allons donc créer un nouvel utilisateur dédié à cette connexion. Connectez-vous avec l’utilisateur root à votre serveur puis entrez les commandes suivantes : > adduser --gecos "" maintainer L’option --gecos n’affichera pas les question relative à l’identité du nouvel utilsateur (Nom, Prénom, N° de téléphone, …) Adding user `maintainer' ... Adding new group `maintainer' (1000) ... Adding new user `maintainer' (1000) with group `maintainer' ... Creating home directory `/home/maintainer' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Choisissez votre mot de passe puis validez par la touche entrée. Ajoutons le nouvel utilisateur créé au groupe des “sudoers” pour élever son niveau d’exécution > usermod -aG sudo maintainer Vous pouvez maintenant vous connecter avec l’utilisateur maintainer ! 2.2 Changer le port SSH Pour cela nous allons éditer le fichier de configuration du service SSH Connectez-vous avec l’utilisateur maintainer à votre serveur puis entrez les commandes suivantes : > sudo nano /etc/ssh/sshd_config Remplacer la ligne #Port 22 par (ou tout autre port disponible de votre choix) Port 22123 Pour sauvegarder avec nano: Ctrl+x et validez par la touche y puis la touche entrée Pour que le système prenne en compte la modification : > sudo systemctl restart ssh A l’avenir pour vous connectez au serveur vous devrez entrer depuis votre terminal local : > ssh maintainer@ip_du_serveur -p 22123 2.3 Créer une clé public/privée (côté client) Pour sécuriser un peu plus notre connexion SSH, nous allons maintenant créer un paire de clé pubic/privée pour chiffrer nos échanges avec le serveur. Linux / MacOS Windows Ouvrez simplement un terminal Cliquez simultanément sur la touche windows + r Entrez powershell dans le champ de la fenêtre qui s’affiche en bas à gauche de votre écran puis cliquez sur OK Dans le terminal qui s’affiche > start-process PowerShell -verb runas cela lancera un nouveau shell en mode administrateur Entrez la commande suivante pour activer le service SSH sur votre machine > Get-Service -Name sshd | Set-Service -StartupType Automatic puis la commande > Start-Service sshd Nous allons créer une paire de clé public / clé privée > ssh-keygen -t RSA -C "tuto@bitgen.com" Vous pouvez appuyer sur entrée pour accepter la valeur par défaut ou indiquer un chemin et/ou un nom de fichier où vous aimeriez que vos clés soient générées. La passphrase est optionnelle Generating public/private RSA key pair. Enter file in which to save the key (C:\Users\hlavi/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in id_rsa. Your public key has been saved in id_rsa.pub. The key fingerprint is: SHA256:mvNMWgMO+QbD9GTQuSjD556wYK63kwMp3nyZzRVftGU tuto@bitgen.com The key's randomart image is: +---[RSA 3072]----+ | .. . | | .o . E | | . ..o. . + | | +oo=. . o | | . =* o S o . | |=.. .* + . . | |=oo= .% = | | o*oo= X . | |o..+. . o | +----[SHA256]-----+ Nous devons ensuite copier la clé public sur le server. Créons le dossier /home/maintainer/.ssh pour l’utilisateur maintainersur le serveur : > ssh maintainer@ip_du_serveur -p 22123 mkdir /home/maintainer/.ssh Entrez le mot de passe pour valider la création du dossier Linux / MacOS Windows > ssh-copy-id -p 22123 -i ~/.ssh/id_rsa.pub maintainer@ip_du_serveur Toujours dans la console PowerShell Copions la clé dans le répertoire tout juste créé > scp -P 22123 C:\Users\votre_utilisateur_windows/.ssh/id_rsa.pub maintainer@ip_du_serveur:/home/maintainer/.ssh/authorized_keys Entrez le mot de passe pour valider la copie du fichier 2.4 Authentification par clé (côté serveur) Maintenant que nous avons créé un nouvel utilisateur, changé le port de connexion de notre service SSH et transféré la clé public de notre ordinateur sur le serveur, nous allons interdire la connexion direct par mot de passe ainsi que l’utilisateur root et plutôt préférer une clé d’authentification. Editez le fichier de configuration du service SSH > sudo nano /etc/ssh/sshd_config Remplacer la ligne PermitRootLogin yes Par PermitRootLogin no Puis la ligne PasswordAuthentication yes Par PasswordAuthentication no Et pour finir, dé-commenter la ligne #PubkeyAuthentication yes par PubkeyAuthentication yes Pour sauvegarder avec nano: Ctrl+x et validez par la touche y puis la touche entrée Valider ensuite la configuration en redémarrant le service SSH > sudo systemctl restart ssh Vous pouvez maintenant vous connecter sans mot de passe, directement à partir de votre clé SSH !

Installer & configurer un firewall

Ce document va vous aider à installer et configurer un firewall UFW pour sécuriser les connexions entrante de votre serveur. Nous détaillerons ici les bases à personnaliser au fil des tutoriels disponible sur ce blog. Sommaire du tutoriel 0. Pré-requis 1. Installation 2. Configuration Pré-requis Avant de commencer ce tutoriel, veuillez lire attentivement les pré-requis suivants : Configurer le SSH 1. Installation Connecter vous en SSH à la console du serveur. Commençons ensuite par mettre à jour notre serveur : > sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get autoremove Puis installons le package firewall UFW : > sudo apt install -y ufw 2. Configuration Dans notre configuration de base, nous interdirons toutes les connexions entrantes > sudo ufw default deny incoming Puis nous autoriserons uniquement les connexions au port SSH (ici le port 22123) > sudo ufw allow 22123/tcp Pour valider la configuration lancer la commande : > sudo ufw enable Pour vérifier le status de votre firewall : > sudo ufw status verbose Si tout c’est bien passé, cette dernière commande devrait afficher : Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22123/tcp ALLOW IN Anywhere 22123/tcp (v6) ALLOW IN Anywhere (v6)

Installer Docker

Ce document va vous aider à installer et configurer le gestionnaire de conteneurs Docker. Docker est une plate-forme logicielle qui vous permet de concevoir, tester et déployer des applications rapidement. Docker intègre les logiciels dans des unités normalisées appelées conteneurs, qui rassemblent tous les éléments nécessaires à leur fonctionnement, dont les bibliothèques, les outils système, le code et l’environnement d’exécution. Il vous servira à déployer vos masternodes plus simplement et rapidement à l’aide des dépôts de code BITGEN. Sommaire du tutoriel 0. Pré-requis 1. Préparation du gestionnaire de paquets 2. Installation de Docker Engine 3. Installation de Docker Compose Pré-requis Avant de commencer ce tutoriel, veuillez lire attentivement les pré-requis suivants: Configurer le SSH 1. Préparation du gestionnaire de paquets Connecter vous en SSH à la console du serveur. Commençons ensuite par mettre à jour notre serveur: > sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get autoremove Puis configurons le gestionnaire de paquets pour récupérer Docker correctement : > sudo apt-get -y install ca-certificates curl gnupg lsb-release > sudo mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg && sudo chmod a+r /etc/apt/keyrings/docker.gpg > echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 2. Installation de Docker Engine > sudo apt-get -y update && sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin Pour vérifier l’installation : > docker --version Docker version 20.10.17, build 100c701

Installer & configurer GIT

Ce document va vous aider à installer et configurer le gestionnaire de versions de codes GIT. Il vous servira à déployer vos masternodes plus simplement et rapidement à l’aide des dépôts de code BITGEN. Sommaire du tutoriel 0. Pré-requis 2. Installation 3. Configuration Pré-requis Avant de commencer ce tutoriel, veuillez lire attentivement les pré-requis suivants: Configurer le SSH 1. Installation Connecter vous en SSH à la console du serveur. Commençons ensuite par mettre à jour notre serveur : > sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get autoremove Puis installons le paquet nécessaire à GIT : > sudo apt-get -y install git 2. Configuration Les commandes suivantes vont renseigner GIT sur l’utilisateur qui va gérer les dépôts de codes > git config --global user.name "Maintainer BITGEN" > git config --global user.email tuto@bitgen.com