#!/bin/bash # Variables SSH_PORT=2222 # Choisissez un port SSH personnalisé si souhaité USER_NAME="user" # Nom d'utilisateur non-root (à remplacer) # Mise à jour des paquets et des dépendances echo "Mise à jour des paquets..." apt update && apt upgrade -y # Création d'un nouvel utilisateur non-root echo "Création d'un utilisateur non-root..." adduser $USER_NAME usermod -aG sudo $USER_NAME # Ajout de l'utilisateur au groupe sudo # Désactivation de l'accès SSH pour root et configuration d'un port personnalisé echo "Configuration du SSH..." sed -i "s/#Port 22/Port $SSH_PORT/" /etc/ssh/sshd_config sed -i "s/PermitRootLogin yes/PermitRootLogin no/" /etc/ssh/sshd_config systemctl reload sshd # Configuration de l'authentification par clé SSH echo "Configuration de l'authentification par clé SSH..." mkdir -p /home/$USER_NAME/.ssh cp ~/.ssh/authorized_keys /home/$USER_NAME/.ssh/authorized_keys chown -R $USER_NAME:$USER_NAME /home/$USER_NAME/.ssh chmod 700 /home/$USER_NAME/.ssh chmod 600 /home/$USER_NAME/.ssh/authorized_keys # Installation et configuration d’UFW (Uncomplicated Firewall) echo "Installation et configuration d'UFW..." apt install ufw -y ufw default deny incoming ufw default allow outgoing ufw allow $SSH_PORT/tcp # Autorise le port SSH personnalisé ufw allow http ufw allow https ufw enable # Installation et configuration de Fail2ban echo "Installation de Fail2ban..." apt install fail2ban -y # Création d'un fichier de configuration pour protéger SSH echo "Configuration de Fail2ban pour SSH..." cat < /etc/fail2ban/jail.local [DEFAULT] bantime = 10m findtime = 10m maxretry = 5 [sshd] enabled = true port = $SSH_PORT logpath = /var/log/auth.log EOF # Redémarrage de Fail2ban pour appliquer la configuration systemctl restart fail2ban # Désactivation de l’ICMP (ping) pour réduire les risques de scan de réseau echo "Désactivation de l'ICMP..." echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf sysctl -p # Suppression des services inutiles (optionnel) echo "Suppression des services inutiles..." apt purge telnet -y apt purge rsh-client -y apt purge rsh-redone-client -y # Hardening des permissions et des protections système echo "Application de paramètres de sécurité supplémentaires..." echo "umask 027" >> /etc/profile echo "umask 027" >> /etc/bash.bashrc chmod 700 /boot echo "Configuration de sécurité terminée avec succès."