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'