Note sur ce contenu

Pensez à remplace <my_user> par le nom d’utilisateur que vous souhaitez utiliser sur votre serveur.
Pensez à remplace <ssh_pport> avec la valeur du port SSH que vous souhaitez utiliser (port 22 par défaut).

Mise à jour du serveur

Une fois le VPS commandé et opérationnel, se connecter au serveur et faire les mises à jour. Personnellement j’aime bien aptitude donc je l’utilise, mais ce n’est pas une obligation.

ssh user@remote_host
apt-get update
apt-get install aptitude locales gpg wget sudo sysvinit-utils
aptitude update && aptitude full-upgrade

Vous pouvez également installer les paquest Debian backport. Les packages Debian backports sont des versions plus récentes de logiciels qui ont été adaptées pour fonctionner sur une version stable antérieure de Debian.

echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/sources.list.d/debian-backports.list
aptitude update && aptitude full-upgrade

Locales

Une fois la mise à jour effectuée, profitez-en pour mettre à jour les locales (si vraiment vous en avez besoin).

dpkg-reconfigure locales

pour mettre le serveur en français sélectionner fr_FR.UTF-8

puis mettre à jour /etc/default/locale en ajoutant

echo -e "LANG=fr_FR.UTF-8
LANGUAGE=fr_FR.UTF-8
LC_ALL=fr_FR.UTF-8" >> /etc/default/locale

Création d’un utilisateur

adduser --home /home/<my_user> <my_user>
adduser <my_user> sudo

Creation d’une clé SSH pour accéder au serveur

À partir de votre ordinateur local, utilisez la commande suivant créer une clé publique

ssh-keygen -t rsa -b 4096 -C "commentaire de ma nouvelle clé"

puis pour copier la clé publique sur le serveur distant

ssh-copy-id -i ./.ssh/id_rsa_...pub <my_user>@remote_host

S’assurer des droits sur fichier authorized_keys

chmod 0600 /home/<my_user>/.ssh/authorized_keys

Ensuite, mettre à jour la configuration pour ssh

echo -e "Port <ssh_port>
AllowUsers <my_user>
PermitRootLogin no" >> /etc/ssh/sshd_config.d/01_<my_user>.conf

service ssh restart

Mise en place et configuration de sécurités

Installation de fail2ban et ufw

aptitude install iptables ufw fail2ban 
ufw allow <ssh_port>
ufw enable

Update fail2ban

Créer le fichier

nano /etc/fail2ban/fail.local

et y coller

[DEFAULT]
# Debian 12 has no log files, just journalctl
backend = systemd

# "bantime" is the number of seconds that a host is banned.
bantime  = 1d
# "maxretry" is the number of failures before a host get banned.
maxretry = 5
# A host is banned if it has generated "maxretry" during the last "findtime"
findtime  = 1h

[sshd]
enabled = true

installer python3-systemd si non présent sur le système avec aptitude install python3-systemd

À partir le là, vous pouvez ajouter toutes les règles dont vous pouvez avoir besoin sur votre machine.

Voici la commande pour voir les régles installées

fail2ban-client status

et pour voir les IP bannies

grep Ban /var/log/fail2ban.log

Disable IP V6

Si vous souhaitez désactiver IP V6, voici comment faire

echo -e "net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.d/99-sysctl.conf

sysctl -p

Pour vérifier si IPV6 est désactivé exécuter

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Si la commande affiche 1 cela signifie que IPV6 est bien désactivé.

Install Nginx

Si par exemple vous voulez installer Nginx vous l’installez avec aptitude ou apt puis vous devez ouvrir le port pour ufw afin que l’appel sur les ports 80 et 443 soit possible.

aptitude install nginx
ufw allow 'Nginx Full'