Protéger un accès SSH avec fail2ban sous CentOS 7

Se prémunir de tentatives d’intrusion serveur en protégeant l’accès SSH avec fail2ban sous CentOS 7

Une connexion SSH sur un serveur est une opération plutôt sécurisée, mais cela ne veut pas dire que le serveur en question est protégé d’une quelconque tentative d’intrusion, notamment par force brute. D’ailleurs en analysant les logs système, même sur un petit serveur anodin, on peut en général voir des dizaines, voir des centaines de connexions avec des utilisateurs connus (root) ou inconnus qui échouent. Ce ne sont pas des attaques à proprement parler, mais des tentatives de connexion en essayant des combinaisons de nom d’utilisateur et de mot de passe. C’est sur ce genre de terrain que fail2ban peut aider à mieux protéger un serveur de connexions non voulues en créant des règles de pare-feu automatiquement suivant certaines conditions.

Continue reading « Protéger un accès SSH avec fail2ban sous CentOS 7 »

Mémo pour le pare-feu firewalld de Fedora

Ce court billet me servira de mémo pour tout ce qui concerne le pare-feu firewalld que j’utilise avec mon serveur sous Fedora.

La gestion de firewall m’a toujours ennuyé, je ne me suis jamais vraiment attardé à être un expert en la matière, c’était le cas avec IPtables, c’est toujours le cas avec firewalld qui est le pare-feu par défaut sous Fedora depuis plusieurs versions (officiellement depuis Fedora 18). A noter que firewalld s’appuie toujours sur l’architecture netfilter.



Ce billet regroupe donc simplement les commandes classiques que l’on est amené à exécuter pour gérer le firewall.

# Voir l'état de fonctionnement du pare-feu :
firewall-cmd --state

# Obtenir la liste des zones supportées :
firewall-cmd --get-zones

# Obtenir la liste des services supportés :
firewall-cmd --get-services

# Lister ce qui est activé sur toutes les zones :
firewall-cmd --list-all-zones

# Voir ce qui est activé sur la zone 'public' :
firewall-cmd --zone=public --list-all

# Lister les services actifs de la zone 'public' :
firewall-cmd --zone=public --list-services

# Lister les ports actifs :
firewall-cmd --zone=public --list-ports

# Voir la zone par défaut pour les connexions réseau :
firewall-cmd --get-default-zone

# Définir la zone par défaut à 'public' :
firewall-cmd --set-default-zone=public

#Lister les zones actives :
firewall-cmd --get-active-zones

# Ajouter (ouvrir) le port 8080 (protocole tcp) à la zone 'public' :
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=7000-8000/tcp

# Supprimer (fermer) le port 8080 (protocole tcp) pour la zone 'public' :
firewall-cmd --zone=public --remove-port=8080/tcp
firewall-cmd --zone=public --remove-port=7000-8000/tcp

# Ajouter (ouvrir) le service http pour la zone 'public' :
firewall-cmd --zone=public --add-service=http

# Supprimer (fermer) le service http pour la zone 'public' :
firewall-cmd --zone=public --remove-service=http

# Vérifier si le service http est actif pour la zone 'public' :
firewall-cmd --zone=public --query-service=http

# Recharger la configuration :
firewall-cmd --reload



Pour modifier la configuration de façon permanente, il suffit d’ajouter l’option --permanent, dans ce cas les changements ne sont pas répercutés immédiatement, il faut recharger la configuration avec firewall-cmd --reload pour qu’ils soient pris en compte.