Upgrade regulier
sudo apt update
sudo apt upgrade
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
Les mises a jour de securite doivent etre automatiques en prod.
Securite
Mesures prioritaires, defenses en profondeur et checklists pour une hygiene securite solide sur postes et serveurs.
Maintenance
sudo apt update
sudo apt upgrade
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
Les mises a jour de securite doivent etre automatiques en prod.
apt list --upgradable
apt-cache policy openssl
dpkg -l | wc -l
Connaitre les packages installes permet de limiter la surface d'attaque.
SSH
sudo nano /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
AllowUsers admin
Interdire le root et favoriser les clefs est un minimum.
ssh-keygen -t ed25519
ssh-copy-id admin@host
ssh-add ~/.ssh/id_ed25519
Les clefs protegees par passphrase reduisent les risques.
MaxAuthTries 3
LoginGraceTime 20
AllowGroups sshusers
Limiter les tentatives et filtrer par groupe renforce l'acces.
Firewall
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable
UFW suffit pour la plupart des serveurs basiques.
sudo nft list ruleset
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0; }
nftables permet un controle fin et moderne du traffic.
Audit et detection
sudo apt install auditd
sudo ausearch -m avc -ts today
sudo aureport -f
auditd trace les actions critiques du systeme.
sudo apt install fail2ban
sudo fail2ban-client status
sudo fail2ban-client status sshd
Bloquer les tentatives bruteforce est indispensable.
sudo ss -tulpen
sudo lsof -i
sudo chkrootkit
Un inventaire des ports ouverts est une base simple.
nftables
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0; }
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input tcp dport 22 accept
sudo nft add rule inet filter input counter drop
Commencer par une politique deny et ouvrir uniquement le necessaire.
sudo nft list ruleset > /etc/nftables.conf
sudo systemctl enable --now nftables
sudo nft list ruleset
Sauvegarder le ruleset permet de restaurer apres reboot.
Confinement
sudo aa-status
sudo aa-enforce /etc/apparmor.d/*
cat /var/log/syslog | grep apparmor
Activer les profils stricts sur les services exposes.
Hardening
sysctl -a | grep -E 'icmp|redirects'
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
Desactiver les comportements reseau a risque limite les abus.
ss -tulpen
systemctl list-unit-files | grep enabled
sudo systemctl disable avahi-daemon
Supprimer les services inutiles reduit la surface d'attaque.
sudo chmod 600 /etc/ssh/sshd_config
sudo chown root:root /etc/sudoers
sudo find / -perm -4000 -type f
Auditer les SUID/SGID permet d'identifier les risques potentiels.
Monitoring
Centraliser les logs et envoyer des alertes sur des patterns critiques (auth failed, sudo misuse, elevation).
journalctl -p err -S \"today\"
grep -R \"Failed password\" /var/log/auth.log
sudo last -a | head
lastlog
getent passwd | cut -d: -f1
sudo grep -R \"^Allow\" /etc/ssh/sshd_config
Lister les utilisateurs actifs et les acces autorises.
Audit avance
sudo apt install lynis
sudo lynis audit system
sudo cat /var/log/lynis-report.dat | head
Lynis fournit un audit rapide et des recommandations prioritisees.
sudo apt install debsums
sudo debsums -s
sudo dpkg -V
Verifier l'integrite des fichiers critiques limite les surprises.
sudo awk -F: '$3==0 {print $1}' /etc/passwd
sudo lastlog | head
sudo find / -perm -4000 -type f 2>/dev/null
Identifier les comptes root et les binaires SUID sensibles.
Chaine d'approvisionnement
curl -fsSL https://example.org/repo.gpg | sudo gpg --dearmor -o /usr/share/keyrings/vendor.gpg
echo "deb [signed-by=/usr/share/keyrings/vendor.gpg] https://example.org/debian stable main" | sudo tee /etc/apt/sources.list.d/vendor.list
sudo apt update
Eviter apt-key et isoler chaque source par keyring.
apt-cache policy nginx
apt-get install -s nginx
sudo apt-mark hold nginx
Verifier les versions et figer les packages critiques.
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data