DevOPS/Script/secure_ubuntu2204.sh

79 lines
2.4 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 dUFW (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 <<EOF > /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 lICMP (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."