0% ont trouvé ce document utile (0 vote)
24 vues3 pages

Securite

Le script 'securite.sh' applique des politiques de sécurité complètes sur un système Linux. Il installe et configure AppArmor, sécurise le service SSH, configure le pare-feu UFW, applique un umask sécurisé, et met en place des sauvegardes automatiques. Un rapport détaillé des actions effectuées est généré dans un fichier log.

Transféré par

rijag22480
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
24 vues3 pages

Securite

Le script 'securite.sh' applique des politiques de sécurité complètes sur un système Linux. Il installe et configure AppArmor, sécurise le service SSH, configure le pare-feu UFW, applique un umask sécurisé, et met en place des sauvegardes automatiques. Un rapport détaillé des actions effectuées est généré dans un fichier log.

Transféré par

rijag22480
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

#!

/bin/bash

# SCRIPT: securite.sh - Apply comprehensive security policies


# Must be run as root
if [[ $EUID -ne 0 ]]; then
echo "Error: This script must be run as root." >&2
exit 1
fi

# Log file
rapport="/var/log/rapport_securite.txt"

# Ensure log file is writable


touch "$rapport" 2>/dev/null || {
echo "Error: Cannot write to $rapport. Check permissions." >&2
exit 1
}

# Initialize log file


echo "==============================" > "$rapport"
echo "RAPPORT DE SÉCURITÉ - $(date)" >> "$rapport"
echo "==============================" >> "$rapport"

echo "🔐 Application des politiques de sécurité..."

# 1. Install and enable AppArmor


echo "➡️ Installation et activation d'AppArmor..." | tee -a "$rapport"
apt update && apt install -y apparmor apparmor-profiles
systemctl enable apparmor >/dev/null 2>&1
systemctl start apparmor >/dev/null 2>&1
aa-enforce /etc/apparmor.d/* 2>/dev/null
echo "✅ AppArmor activé et appliqué." >> "$rapport"

# 2. Secure SSH
echo "➡️ Sécurisation du service SSH..." | tee -a "$rapport"
apt install -y openssh-server
sed -i 's/^#*PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#*Port .*/Port 2222/' /etc/ssh/sshd_config
if ! grep -q '^UseDNS no' /etc/ssh/sshd_config; then
echo 'UseDNS no' >> /etc/ssh/sshd_config
fi
systemctl restart sshd >/dev/null 2>&1
systemctl enable sshd >/dev/null 2>&1
echo "✅ SSH configuré : root interdit, port 2222." >> "$rapport"

# 3. Configure UFW firewall


echo "➡️ Configuration du pare-feu UFW..." | tee -a "$rapport"
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp
ufw --force enable
echo "✅ UFW configuré avec règles par défaut et port SSH ouvert." >> "$rapport"

# 4. Apply secure umask


echo "➡️ Application du umask de sécurité (umask 077)..." | tee -a "$rapport"
if ! grep -q "umask 077" /etc/profile; then
echo "umask 077" >> /etc/profile
fi
echo "✅ umask 077 appliqué." >> "$rapport"

# 5. Create secure group directory


echo "➡️ Création d'un répertoire partagé pour un groupe..." | tee -a "$rapport"
groupadd -f groupe # Create group if it doesn't exist
useradd -m -s /bin/bash -G groupe chef_de_groupe 2>/dev/null || true
mkdir -p /partage/repertoire_du_groupe
chown chef_de_groupe:groupe /partage/repertoire_du_groupe
chmod g+s /partage/repertoire_du_groupe
chmod 750 /partage/repertoire_du_groupe
echo "✅ Répertoire partagé /partage/repertoire_du_groupe créé et sécurisé." >>
"$rapport"

# 6. Set password policy (INACTIVE=30)


echo "➡️ Configuration de l'inactivité maximale des comptes utilisateurs (30
jours)..." | tee -a "$rapport"
if ! grep -q '^INACTIVE=30' /etc/default/useradd; then
sed -i 's/^INACTIVE.*/INACTIVE=30/' /etc/default/useradd || echo "INACTIVE=30"
>> /etc/default/useradd
fi
echo "✅ Comptes inactifs verrouillés après 30 jours." >> "$rapport"

# 7. Create secure backup directory


echo "➡️ Création du dossier de backup..." | tee -a "$rapport"
mkdir -p /backup
chown root:root /backup
chmod 700 /backup
echo "✅ Répertoire /backup créé avec permissions strictes." >> "$rapport"

# 8. Schedule automatic backup with rsync


echo "➡️ Mise en place de la sauvegarde quotidienne avec rsync..." | tee -a
"$rapport"
(crontab -l 2>/dev/null; echo "0 2 * * * rsync -av --delete /home /backup") |
crontab -
echo "✅ Tâche crontab ajoutée pour sauvegarde quotidienne à 2h." >> "$rapport"

# 9. Install and configure Fail2Ban


echo "➡️ Installation et configuration de Fail2Ban..." | tee -a "$rapport"
apt install -y fail2ban
cat > /etc/fail2ban/jail.local <<EOF
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h
findtime = 10m
EOF
systemctl enable fail2ban >/dev/null 2>&1
systemctl restart fail2ban >/dev/null 2>&1
echo "✅ Fail2Ban installé et configuré pour SSH." >> "$rapport"

# 10. Configure PAM for account lockout


echo "➡️ Configuration du verrouillage PAM..." | tee -a "$rapport"
if ! grep -q 'pam_tally2.so' /etc/pam.d/common-auth; then
echo 'auth required pam_tally2.so onerr=fail deny=5 unlock_time=900' >>
/etc/pam.d/common-auth
fi
echo "✅ PAM verrouillage après 5 échecs activé." >> "$rapport"

# Finalize report
cat >> "$rapport" <<EOF
- 🔐 AppArmor en mode enforcement
- 🔒 Port SSH personnalisé (2222), login root désactivé
- 🔐 Politique Fail2Ban active (3 essais, 1h de ban)
- 🔒 Répertoires de groupe sécurisés avec setgid
- 🔁 Sauvegarde automatique de /home chaque nuit
- 🕒 Comptes inactifs verrouillés après 30 jours
- 🔐 Verrouillage PAM après 5 tentatives échouées
- 🔐 umask de sécurité appliqué globalement
✅ Rapport généré avec succès dans : $rapport
EOF

echo "✅ Security policies applied. Report generated at $rapport."

Vous aimerez peut-être aussi