Ce que vous saurez faire à la fin
- Durcir SSH et le firewall UFW
- Activer Fail2ban et les mises à jour auto
- Monitorer avec auditd et AIDE
Étape 1 — Utilisateur non-root
sudo adduser aminata
sudo usermod -aG sudo aminata
ssh-copy-id aminata@serveur
Étape 2 — SSH durci
# /etc/ssh/sshd_config
Port 2222
PasswordAuthentication no
PermitRootLogin no
MaxAuthTries 3
AllowUsers aminata deploy
sudo sshd -t && sudo systemctl reload sshd
Étape 3 — UFW firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp
sudo ufw allow 80,443/tcp
sudo ufw limit 2222/tcp
sudo ufw enable
Étape 4 — Fail2ban
sudo apt install -y fail2ban
sudo tee /etc/fail2ban/jail.local <<EOF
[DEFAULT]
bantime = 1h
maxretry = 5
[sshd]
enabled = true
port = 2222
EOF
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd
Étape 5 — Mises à jour auto
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
Étape 6 — sysctl hardening
# /etc/sysctl.d/99-secu.conf
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
kernel.randomize_va_space = 2
kernel.kptr_restrict = 2
sudo sysctl --system
Étape 7 — auditd
sudo apt install -y auditd
sudo systemctl enable --now auditd
sudo tee /etc/audit/rules.d/itsc.rules <<EOF
-w /etc/passwd -p wa -k passwd
-w /etc/sudoers -p wa -k sudoers
-a always,exit -F arch=b64 -S execve -F euid=0 -k root_exec
EOF
sudo augenrules --load
sudo systemctl restart auditd
Étape 8 — AIDE
sudo apt install -y aide
sudo aideinit
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
echo "0 3 * * * root /usr/bin/aide --check | mail -s 'AIDE' admin@example.sn" \
| sudo tee /etc/cron.d/aide
Étape 9 — Audit hebdo script
sudo tee /usr/local/bin/secu-hebdo.sh <<'SCRIPT'
#!/bin/bash
{
echo "=== Audit $(hostname) $(date) ==="
apt list --upgradable 2>/dev/null | head -20
journalctl -u ssh --since "7 days ago" | grep -c "Failed"
ss -tulpn | grep LISTEN
fail2ban-client status sshd | grep Currently
} | mail -s "[Secu] $(hostname)" admin@example.sn
SCRIPT
sudo chmod +x /usr/local/bin/secu-hebdo.sh
echo "0 6 * * 1 root /usr/local/bin/secu-hebdo.sh" | sudo tee /etc/cron.d/secu
Checklist
✓ SSH clés uniquement, port custom
✓ UFW deny incoming par défaut
✓ Fail2ban actif
✓ Unattended-upgrades
✓ UID 0 = root seul
✓ sysctl hardening
✓ auditd règles critiques
✓ AIDE baseline
✓ Email audit hebdo
Besoin d'un site web ?
Confiez-nous la Création de Votre Site Web
Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.
À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité