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