Skip to main content
Sommaire du guide
Débutant14 min

Configuration de VPS Hetzner

D'un serveur vide à une machine prête pour la production et sécurisée. Choisissez comment vous souhaitez configurer votre serveur.

Publié :
POUR AGENT IAChatGPTClaude
Dépôt GitHub

Configuration automatique via AI

Accordez à votre assistant AI l'accès à ce dépôt. Il effectuera automatiquement tous les contrôles, configurera la sécurité et générera un fichier contenant tous les accès (credentials guide) sur votre ordinateur.

Ouvrir le Dépôt GitHub

1. Création d'une clé SSH (Localement)

À exécuter sur votre ordinateur (Mac ou Linux) AVANT de vous connecter au serveur.

bash
ssh-keygen -t ed25519 -C "{username}@{nickname}" -f ~/.ssh/{nickname}_key -N "" cat ~/.ssh/{nickname}_key.pub

Copiez la sortie de la deuxième commande (elle commence par ssh-ed25519 ...). C'est votre clé publique.

2. Connexion en tant que Root

Connectez-vous au serveur avec le mot de passe envoyé par Hetzner par e-mail.

Avertissement

Hetzner peut demander un changement de mot de passe. Entrez le mot de passe actuel, puis deux fois le nouveau mot de passe temporaire. Si la connexion est interrompue après cela, reconnectez-vous simplement avec le nouveau mot de passe.

bash
ssh root@{SERVER_IP}

3. Mise à jour du système

Mise à jour de tous les paquets en mode non interactif (sans fenêtres pop-up grub).

bash
apt update && DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt upgrade -y

4. Création d'un utilisateur avec sudo

Travailler sous root est dangereux. Nous créons un utilisateur standard et lui accordons les droits administrateur.

bash
useradd -m -s /bin/bash {username} echo "{username}:YOUR_SECURE_PASSWORD" | chpasswd usermod -aG sudo {username}

5. Déploiement de la clé SSH

Nous allons enregistrer votre clé publique, copiée à l'étape 1, sur le serveur.

bash
mkdir -p /home/{username}/.ssh echo "{PUBLIC_KEY_CONTENT}" > /home/{username}/.ssh/authorized_keys chmod 700 /home/{username}/.ssh chmod 600 /home/{username}/.ssh/authorized_keys chown -R {username}:{username} /home/{username}/.ssh

6. Vérification de la connexion

Important

CHECKPOINT OBLIGATOIRE Ne fermez pas la session root ! Ouvrez une nouvelle fenêtre de terminal sur votre PC et essayez de vous connecter via la clé. Vous ne pouvez continuer qu'après une connexion réussie.

Vérifiez si sudo fonctionne (le système doit demander le mot de passe défini à l'étape 4 et afficher "root") :

bash
ssh -i ~/.ssh/{nickname}_key {username}@{SERVER_IP} sudo whoami

7. Firewall (UFW)

Exécutez toutes les commandes suivantes en tant que votre nouvel utilisateur (avec sudo). Nous configurons la politique « tout refuser entrant, sauf SSH, HTTP et HTTPS ».

bash
sudo apt install -y ufw sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw --force enable sudo ufw status

8. Protection du noyau (sysctl)

Application des paramètres pour se protéger contre les attaques réseau.

bash
sudo tee /etc/sysctl.d/99-security.conf << 'EOF' net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.tcp_syncookies = 1 net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.log_martians = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 EOF sudo sysctl -p /etc/sysctl.d/99-security.conf

9. Paquets de base et heure

Une heure précise est critique pour les logs, les certificats SSL et fail2ban.

bash
sudo apt install -y chrony curl wget git unzip net-tools sudo systemctl enable chrony

10. Configuration SSH locale

Configuration d'un raccourci sur votre PC local pour vous connecter ultérieurement avec la commande courte ssh {nickname}.

bash
mkdir -p ~/.ssh && touch ~/.ssh/config && chmod 600 ~/.ssh/config cat >> ~/.ssh/config << 'EOF' Host {nickname} HostName {SERVER_IP} User {username} IdentityFile ~/.ssh/{nickname}_key IdentitiesOnly yes EOF

11. Vérification de la sécurité

Vérifiez si la commande courte fonctionne depuis le PC local et si les protections de base sont activées.

bash
ssh {nickname} sudo ufw status sysctl net.ipv4.tcp_syncookies

12. Verrouillage final

Installation de la protection contre le brute-force (fail2ban) et interdiction définitive de la connexion par mot de passe et de la connexion root.

bash
sudo apt install -y fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo systemctl enable fail2ban sudo systemctl start fail2ban sudo tee /etc/ssh/sshd_config.d/99-hardening.conf << 'EOF' PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes AuthenticationMethods publickey EOF sudo sshd -t && sudo systemctl restart ssh
Astuce

Terminé ! Le serveur est entièrement configuré et sécurisé.

Ce guide est entièrement gratuit. S'il vous a fait gagner une soirée, vous pouvez soutenir la croissance du projet.
Soutenir l'auteur