Skip to main content

Après installation d'un Debian de base, configuration des choses basiques

Sur tout nos serveurs, on a tendance à configurer en premier toute la sécurité, c'est normal.

AppArmor et Firejail

Donc nous utilisons AppArmor et Firejail que l'on peut installer via cette commande :

# apt install -y -t bullseye-backports --no-install-recommends firejail apparmor

Derrière, nous pouvons aussi les configurés :

# apparmor_parser -r /etc/apparmor.d/firejail-default
# echo 'Dpkg::Post-Invoke {"firecfg >/dev/null";}' > /etc/apt/apt.conf.d/99firecfg

A quoi servent ces soft ? Firejail sers à sandboxer des programmes, en gros il vient les mettres dans des boîtes et toutes les actions effectuée sont contrôlées et restent dans Firejail. AppArmor sers à limiter les droits sur les logiciels.

OpenSSH

Nous venons aussi reconfigurer OpenSSH en y appliquant en premier différentes restrictions sur les différents algorithmes d'échanges autorisés lors d'une connexion SSH

# echo -e "\n# Only enable RSA and ED25519 host keys.\nHostKey /etc/ssh/ssh_host_rsa_key\nHostKey /etc/ssh/ssh_host_ed25519_key\n\n# Restrict key exchange, cipher, and MAC algorithms\nKexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org\nCiphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes256-ctr\nMACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com\nHostKeyAlgorithms ssh-ed25519,rsa-sha2-512,rsa-sha2-256" >> /etc/ssh/sshd_config

On supprime aussi les clé SSH par défaut du système pour ensuite venir les recréés derrière

# rm /etc/ssh/ssh_host_*
# ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key -N ""
# ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""

Puis on vient régénérer un moduli propre (Le moduli contient des informations sur le chiffrement du SSH)

# awk '$5 >= 3071' /etc/ssh/moduli > /etc/ssh/moduli.safe
# mv /etc/ssh/moduli.safe /etc/ssh/moduli

Et enfin on fini par la configuration par des choses basiques

# sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
# sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/g' /etc/ssh/sshd_config

# systemctl restart ssh

Unattended-upgrades

Nous installons et configurons les mises à jour non attendu sur le système. Elles permettent d'assurer des mises à jours de sécurités lorsqu'une faille important peut être découverte dans un logiciel critique (par exemple sudo), de ce fait il s'assure de faire la mise sans qu'on doit la faire manuellement (il vaut mieux être sûr et s'assurer que la mise à était faite)

# apt install -y unattended-upgrades
# echo -e 'Unattended-Upgrade::Origins-Pattern {\n\t"origin=*";\n};\n\nUnattended-Upgrade::MinimalSteps "true";\nUnattended-Upgrade::Remove-Unused-Kernel-Packages "true";\nUnattended-Upgrade::Remove-New-Unused-Dependencies "true";\nUnattended-Upgrade::Remove-Unused-Dependencies "true";' > /etc/apt/apt.conf.d/50unattended-upgrades