From a5b9d90cbcd8336155c4e014d155312c1e742eda Mon Sep 17 00:00:00 2001 From: Batou04 Date: Fri, 25 Oct 2024 11:17:24 +0200 Subject: [PATCH] Add files via upload --- etape1.sh | 19 +++++++ etape2.sh | 20 +++++++ etape3.sh | 19 +++++++ etape4.sh | 21 +++++++ script_automatisation.sh | 119 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 198 insertions(+) create mode 100644 etape1.sh create mode 100644 etape2.sh create mode 100644 etape3.sh create mode 100644 etape4.sh create mode 100644 script_automatisation.sh diff --git a/etape1.sh b/etape1.sh new file mode 100644 index 0000000..7f2f16a --- /dev/null +++ b/etape1.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Étape 1 : Copie simple de la clé SSH publique dans ~/.ssh/authorized_keys + +# Vérification si le fichier existe, sinon il le crée +if [ ! -f ~/.ssh/id_rsa.pub ]; then + echo "La clé SSH publique n'existe pas. Veuillez générer une clé SSH avec 'ssh-keygen'." + exit 1 +fi + +# Copie de la clé publique dans authorized_keys +mkdir -p ~/.ssh +cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys + +# Configuration des permissions (simple et nécessaire) +chmod 700 ~/.ssh +chmod 600 ~/.ssh/authorized_keys + +echo "Clé SSH copiée avec succès et permissions configurées." \ No newline at end of file diff --git a/etape2.sh b/etape2.sh new file mode 100644 index 0000000..cdd0b14 --- /dev/null +++ b/etape2.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# Étape 2 : Simplification du durcissement de SSH + +# Fichier de configuration de SSH +SSHD_CONFIG="/etc/ssh/sshd_config" + +# Désactiver l'authentification par mot de passe (simple modification) +sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' $SSHD_CONFIG + +# Désactiver l'accès root via SSH +sudo sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' $SSHD_CONFIG + +# Restreindre l'accès SSH à un utilisateur spécifique +echo "AllowUsers mon_utilisateur" | sudo tee -a $SSHD_CONFIG + +# Redémarrer le service SSH pour appliquer les modifications +sudo systemctl restart sshd + +echo "SSH durci avec succès." \ No newline at end of file diff --git a/etape3.sh b/etape3.sh new file mode 100644 index 0000000..92188ba --- /dev/null +++ b/etape3.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Étape 3 : Installation et configuration simple de UFW + +# Mise à jour des paquets et installation de UFW +sudo apt update +sudo apt install -y ufw + +# Configuration simple du pare-feu +sudo ufw default deny incoming +sudo ufw default allow outgoing + +# Autorisation des connexions SSH +sudo ufw allow 22/tcp + +# Activation du pare-feu +sudo ufw enable + +echo "Pare-feu UFW installé et configuré." \ No newline at end of file diff --git a/etape4.sh b/etape4.sh new file mode 100644 index 0000000..6bf27f5 --- /dev/null +++ b/etape4.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# Étape 4 : Quelques durcissements simples pour la sécurité + +# Installation de mises à jour de sécurité automatiques +sudo apt install -y unattended-upgrades +sudo dpkg-reconfigure --priority=low unattended-upgrades + +# Désactivation des services réseau inutiles +sudo systemctl disable cups +sudo systemctl disable bluetooth + +# Installation d'un outil simple pour vérifier les fichiers système (AIDE) +sudo apt install -y aide +sudo aideinit +sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db + +# Première vérification avec AIDE +sudo aide --check + +echo "Durcissements simples terminés." \ No newline at end of file diff --git a/script_automatisation.sh b/script_automatisation.sh new file mode 100644 index 0000000..9570c3f --- /dev/null +++ b/script_automatisation.sh @@ -0,0 +1,119 @@ +#!/bin/bash + +# Script de sécurisation pour Debian +# Ce script configure le SSH, installe un pare-feu (UFW), met en place une authentification à deux facteurs (2FA), +# effectue des mises à jour automatiques, désactive les services inutiles et installe AIDE pour la surveillance du système. + +# Vérifier si le script est exécuté en tant que root +if [ "$(id -u)" -ne 0 ]; then + echo "Ce script doit être exécuté avec des privilèges root (sudo)." >&2 + exit 1 +fi + +# Variables +SSHD_CONFIG="/etc/ssh/sshd_config" +AUTHORIZED_KEYS="/home/$SUDO_USER/.ssh/authorized_keys" +UFW_CONFIG="/etc/default/ufw" +IP_WHITELIST=("192.168.1.0/24" "203.0.113.0/24") # Remplacez par vos IPs autorisées +ALLOWED_USERS=("mon_utilisateur") # Remplacez par les utilisateurs autorisés +PACKAGES="ufw aide" + +# Fonction pour installer les paquets nécessaires +install_packages() { + echo "Mise à jour des paquets..." + apt update && apt upgrade -y + + echo "Installation des paquets requis : $PACKAGES..." + apt install -y $PACKAGES +} + +# 1. Copie de la clé SSH publique +setup_ssh_keys() { + echo "Copie de la clé SSH publique dans $AUTHORIZED_KEYS..." + mkdir -p /home/$SUDO_USER/.ssh + cp /home/$SUDO_USER/.ssh/id_rsa.pub $AUTHORIZED_KEYS + chown $SUDO_USER:$SUDO_USER $AUTHORIZED_KEYS + chmod 600 $AUTHORIZED_KEYS + echo "Clé SSH copiée et permissions configurées." +} + +# 2. Durcissement de SSH +harden_ssh() { + echo "Configuration de SSH pour renforcer la sécurité..." + + # Désactiver l'authentification par mot de passe + sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' $SSHD_CONFIG + sed -i 's/^#ChallengeResponseAuthentication yes/ChallengeResponseAuthentication no/' $SSHD_CONFIG + + # Limiter l'accès SSH à certains utilisateurs + echo "AllowUsers ${ALLOWED_USERS[@]}" >> $SSHD_CONFIG + + # Désactiver l'accès root via SSH + sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' $SSHD_CONFIG + + # Configurer la liste blanche des IPs autorisées + echo "Création d'une liste blanche d'adresses IP pour SSH..." + for ip in "${IP_WHITELIST[@]}"; do + echo "AllowUsers *@$ip" >> $SSHD_CONFIG + done + + systemctl restart sshd + echo "SSH configuré et durci." +} + +# 3. Installation et configuration du Pare-feu (UFW) +setup_firewall() { + echo "Configuration du pare-feu UFW..." + + # Activer UFW + ufw default deny incoming + ufw default allow outgoing + + # Autoriser les connexions SSH + ufw allow 22/tcp + + # Autoriser d'autres services si nécessaire + ufw allow 80/tcp # HTTP + ufw allow 443/tcp # HTTPS + + # Activer UFW + ufw enable + echo "Pare-feu UFW configuré et activé." +} + +# 4. Propositions de Durcissement Simples +additional_hardening() { + # Mise en place de l'authentification à deux facteurs (2FA) pour SSH + echo "Mise en place de l'authentification à deux facteurs (2FA)..." + apt install -y libpam-google-authenticator + echo "auth required pam_google_authenticator.so" >> /etc/pam.d/sshd + + # Mise à jour automatique des paquets de sécurité + echo "Configuration des mises à jour automatiques des paquets de sécurité..." + apt install -y unattended-upgrades + dpkg-reconfigure --priority=low unattended-upgrades + + # Désactiver les services inutiles + echo "Désactivation des services inutiles..." + systemctl disable cups + systemctl disable avahi-daemon + systemctl disable bluetooth + systemctl disable rpcbind + + # Installation et configuration de AIDE + echo "Installation et configuration de AIDE pour la détection des modifications..." + aideinit + mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db + + echo "Vérification initiale avec AIDE..." + aide --check +} + +# Exécution des fonctions +install_packages +setup_ssh_keys +harden_ssh +setup_firewall +additional_hardening + +echo "Toutes les étapes de sécurisation sont terminées avec succès." \ No newline at end of file