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
-
Accédez à Coolify :
http://votre_ip:8000 -
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
- Créez un projet
- Cliquez sur New GitHub App
- Nommez-le (ex :
GitHub-Ton-Nom-User-coolify) - 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 :
- Téléchargez le script
ufw-docker - Rendez-le exécutable :
sudo chmod +x chemin/vers/ufw-docker
- Installez les rĂšgles :
sudo ufw-docker install
Cette commande adapte
/etc/ufw/after.rulespour Docker
- Autorisez le conteneur
coolify-proxy:
ufw-docker allow coolify-proxy
- 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 !!