Skip to main content

Serveur Debian

Mise à jour système

sudo apt update && sudo apt -y upgrade && sudo apt -y dist-upgrade

Création utilisateur

Création d'un utilisateur en ligne de commandes.

sudo adduser username
sudo usermod -aG sudo username

SSH

Configuration

Créer et éditer le fichier /etc/ssh/ssh_config.d/50-default.conf.

sudo vi /etc/ssh/ssh_config.d/50-default.conf

Ajouter la configuration permettant de :

  • Changer le port SSH.
  • Désactiver l'accès root.
  • Désactiver l'authentification par mot de passe et passer uniquement par clé SSH.
Port ssh_port
PermitRootLogin no
PasswordAuthentication no

Clé publique

Créer une paire de clés si aucune clé n'est présente sur la machine depuis laquelle on souhaite se connecter au serveur.

sudo ssh-keygen

Copier la clé publique sur le serveur avec l'utilisateur avec lequel on veut se connecter.

sudo ssh-copy-id username@remote_host

Redémarrage service SSH

sudo systemctl restart ssh
sudo systemctl restart sshd

Packages

Prérequis

sudo apt install -y curl apt-transport-https ca-certificates btop

Docker

sudo curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose
sudo systemctl enable docker

Unattended-upgrades

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

Rsync

sudo apt install -y rsync

UFW

sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh_port/tcp
sudo ufw allow "Nginx HTTP"
sudo ufw allow "Nginx HTTPS"
sudo ufw enable

Pour remettre par défaut ufw :

sudo ufw reset
info

Cela désactive ufw, supprime toutes les règles, remet par défaut la configuration (interdir le traffic entrant & autoriser le traffic sortant)

Fail2ban

sudo apt install -y fail2ban

Créer et éditer le fichier /etc/fail2ban/jail.local :

sudo vi /etc/fail2ban/jail.local

Ajouter la configuration suivante :

[sshd]
mode = aggressive
enabled = true
port = ssh
backend = systemd
bantime = 24h
maxretry = 3

Redémarrer le service fail2ban :

sudo systemctl restart fail2ban

Nettoyage et redémarrage

sudo apt -y autoremove
sudo apt -y autoclean
sudo reboot