logo

Installation de mon premier serveur

🛒 1. Acheter un VPS

Connexion en SSH

ssh root@votre_ip

Mise Ă  jour du serveur

apt update && apt upgrade -y

Installation des paquets essentiels

apt install sudo ufw curl wget git jq openssl vim tmux fish -y

🌐 2. Acheter un nom de domaine

Dans la gestion DNS de votre nom de domaine, ajoutez deux enregistrements A :

Type : A
Nom : @
Contenu : IP de votre serveur

Type : A
Nom : * (astérisque)
Contenu : IP de votre serveur

Explication :

  • @ correspond au domaine racine (ex : votredomaine.com)
  • * correspond Ă  tous les sous-domaines non dĂ©finis (ex : test.votredomaine.com)

đŸ‘€ 3. CrĂ©ation d'un utilisateur non-root

Création de l'utilisateur

useradd -m -s /bin/fish votre_user
usermod -aG sudo votre_user
passwd votre_user

Déconnexion de root

exit

🔑 4. Configuration des clĂ©s SSH

Sur votre machine locale (pas sur le vps):

Génération de la clé

ssh-keygen -t ed25519 -C "[email protected]"

Copie de la clé publique sur le serveur

ssh-copy-id -i ~/.ssh/id_ed25519.pub votre_user@votre_ip

Configuration sécurisée de SSH (sur le serveur)

sudo vim /etc/ssh/sshd_config

Modifiez / ajoutez les lignes suivantes :

PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin yes

Vous pouvez modifier le port par défaut de SSH (22) et en choisir un autre (recommandé): Rechercher la ligne suivante :

#Port 22

Et la modifier (ou la décommenter) pour indiquer le nouveau port, par exemple :

Port 2222

PS : Si vous faites cela, pensez Ă  utiliser le port que vous avez choisi Ă  la place de 22 dans la partie configuration du pare-feu.

⚠⚠⚠ VĂ©rifiez bien que la connexion SSH avec le nouveau port fonctionne correctement avant de fermer votre session dĂ©jĂ  ouverte, afin de ne pas vous retrouver bloquĂ© dehors.

Redémarrez SSH :

sudo systemctl restart sshd

✅ Activer UFW au dĂ©marrage automatiquement

UFW est normalement activĂ© de maniĂšre persistante, mais pour s'assurer qu'il dĂ©marre bien au boot, on peut forcer l’activation via systemctl :

sudo systemctl enable ufw

Cette commande s’assure que le pare-feu UFW est bien lancĂ© Ă  chaque redĂ©marrage du serveur.


🔒 5. Configuration du pare-feu (UFW)

Ouverture des ports nécessaires

sudo ufw allow 22 (Port choisi pour ssh)
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 8000
sudo ufw allow 6001
sudo ufw allow 53

Activation de UFW

sudo ufw enable

⚙ 6. Installation de Coolify

  1. Accédez à Coolify :
    http://votre_ip:8000

  2. Créez votre compte administrateur.


đŸ§© 7. ParamĂ©trage dans Coolify

🔧 Paramùtres de l'instance

  • Allez dans Settings
  • Renseignez :
  • Instance domain : https://le-nom-que-tu-veu-pour-page-login.mondomaine.com
  • Instance name : Coolify

🔁 RedĂ©marrage du proxy

  • Allez dans l’onglet Servers
  • RedĂ©marrez le proxy
  • Dans Wildcard domain, ajoutez votre domaine (il gĂ©nĂ©rera automatiquement les sous-domaines nĂ©cessaires)
  • Si vous avez changer le port ssh changez le *port.

đŸ§Ș CrĂ©ation d’un projet

  1. Créez un projet
  2. Cliquez sur New GitHub App
  3. Nommez-le (ex : GitHub-Ton-Nom-User-coolify)
  4. Laissez-vous guider par GitHub pour terminer la configuration

đŸ§± 8. SĂ©curiser l’accĂšs Ă  Coolify via le domaine (et pas via l'IP)

Afin d'eviter que l'on puisse acceder comme auparavant a:

http://votre_ip:8000

Mais seulement a:

https://votre-instance-domaine.votre-nom-de-domaine

ProblĂšme : UFW ne s’applique pas aux conteneurs Docker par dĂ©faut

👉 Solution : utiliser ufw-docker


🧰 9. Installation de ufw-docker

Étapes :

  1. Téléchargez le script ufw-docker
  2. Rendez-le exécutable :
sudo chmod +x chemin/vers/ufw-docker
  1. Installez les rĂšgles :
sudo ufw-docker install

Cette commande adapte /etc/ufw/after.rules pour Docker

  1. Autorisez le conteneur coolify-proxy :
ufw-docker allow coolify-proxy
  1. Rechargez UFW si besoin :
sudo ufw reload

🧠 10. Automatiser au reboot (via cron)

UFW-Docker doit ĂȘtre relancĂ© Ă  chaque redĂ©marrage du serveur.

Ajoutez cette tñche cron pour l’utilisateur root :

sudo crontab -e

Ajoutez les lignes suivantes :

@reboot sleep 12 && /usr/local/bin/ufw-docker install
@reboot sleep 15 && /usr/local/bin/ufw-docker allow coolify-proxy

🔍 Tu peux aussi envisager un service systemd pour plus de robustesse (je verrais plus tard).


đŸ›Ąïž Bonus : Installer et configurer Fail2Ban (fortement recommandĂ©)

Fail2Ban permet de protéger ton serveur contre les tentatives de connexion SSH bruteforce (et d'autres attaques). Il bannit automatiquement les IP suspectes.

🔧 Installation

sudo apt install fail2ban -y

⚙ Configuration de base

Crée un fichier de configuration personnalisé (pour ne pas écraser les réglages par défaut lors des mises à jour) :

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Édite le fichier :

sudo vim /etc/fail2ban/jail.local

Vérifie ou modifie les paramÚtres dans la section [sshd] :

[sshd]
enabled = true
port    = ssh
logpath = %(sshd_log)s
maxretry = 5
bantime = 3600

bantime = durée du bannissement (en secondes)
maxretry = nombre de tentatives autorisées avant bannissement

✅ RedĂ©marrer Fail2Ban

sudo systemctl restart fail2ban

📋 VĂ©rifier que ça fonctionne

Pour voir l’état de la jail SSH :

sudo fail2ban-client status sshd

🔐 Avec cette config, ton serveur sera dĂ©jĂ  bien plus secure contre les attaques et grace a fail2ban j'ai vu que des gens essaye de ce connecter a ce serveur pas tres interessant ....)

sudo laissez mon serveur tranquile !!