Posté le 18/03/2021
Voici quelques manipulations à faire pour sécuriser un serveur Debian/Ubuntu après l'installation du système:
Mettre à jour le serveur
apt update && apt-upgrade
Ajouter un nouvel utilisateur
adduser username
Modifier le mot de passe root
passwd
Désactiver le login en tant que root
Editez le fichier:
/etc/ssh/sshd_config
Remplacez la ligne "PermitRootLogin yes" par "PermitRootLogin no"
systemctl restart ssh
IPTABLES
Vérifier que vous êtes bien en INPUT ACCEPT :
iptables -L
Si vous n’avez pas la ligne suivante : "Chain INPUT (policy ACCEPT)" alors utilisez cette commande :
iptables -t filter -P INPUT ACCEPT
Purger les règles existantes :
iptables -F
Garder les connexions actuelles (pour éviter de perdre sa connexion ssh actuelle lors de la prochaine commande)
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Autoriser le loopback :
iptables -A INPUT -i lo -j ACCEPT
On indique que par défaut on refuse n’importe quelle connexion en entrée :
iptables -P INPUT DROP
On autorise les connexions ssh (sur le port 22) :
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
On autorise les connexions web (ports 80 et 443), si nécessaire:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Ces règles ne sont active que jusqu'au redémarrage du serveur. Pour les rendre permanente, voici comment procéder:
apt install -y iptables-persistent
service iptables-persistent start
iptables-save > /etc/iptables/rules.v4
service iptables-persistent restart
(il faudra rejouer les deux dernieres lignes à chaque modification de la configuration iptables)
FAIL2BAN
Installez Fail2ban:
apt install fail2ban
Editez le fichier de conf:
/etc/fail2ban/jail.conf
Vous y trouverez une section réservée au ssh, éditez la comme ceci:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3