conflits potentiels entre ufw et fail2ban


45

L'exécution de fail2ban et d'ufw posera-t-elle des problèmes? J'ai remarqué que fail2ban modifiait les règles iptables, mais ufw a déjà une tonne de règles iptables définies ... je ne suis donc pas sûr que fail2ban les dérangera.


Quelle version d' Ubuntu ? ('ufw' s'est légèrement amélioré entre 10.04 LTS et 11.x )
david6

@ david6: désolé, je ne me souviens pas de la version que je courais lorsque j'ai posé la question à l'origine.
Adam Monsen

Réponses:


50

Vous pouvez utiliser ufw et fail2b ensemble, mais comme indiqué précédemment, l'ordre des règles (ufw) est ce qui est important.

A la sortie de la boîte, fail2ban utilise iptables et insère les règles en premier dans la chaîne INPUT. Cela ne fera aucun mal ou conflit avec ufw.

Si vous souhaitez intégrer pleinement fail2ban, utilisez ufw (plutôt que iptables). Vous devrez éditer un certain nombre de fichiers, y compris

/etc/fail2ban/jail.local

jail.local est l'endroit où vous définissez vos services, y compris le port sur lequel ils écoutent (pensez à changer de ssh en un port autre que celui par défaut) et les mesures à prendre.

** S'il vous plaît noter *: Ne jamais éditer jail.conf , vos modifications doivent être effectuées jail.local! Ce fichier commence par ceci:

# Changes:  in most of the cases you should not modify this
#           file, but provide customizations in jail.local file,
#           or separate .conf files under jail.d/ directory

En utilisant ssh comme exemple, notez la définition d’un port autre que celui par défaut =)

[ssh]
enabled = true
banaction = ufw-ssh
port = 2992
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Vous configurez ensuite fail2ban pour utiliser ufw in (un fichier .conf pour chaque service)

/etc/fail2ban/action.d/ufw-ssh.conf

La syntaxe est

[Definition]
actionstart =
actionstop =
actioncheck =
actionban = ufw insert 1 deny from <ip> to any app OpenSSH
actionunban = ufw delete deny from <ip> to any app OpenSSH

Remarque: vous configurez fail2ban pour utiliser ufw et pour insérer les nouvelles règles EN PREMIER à l'aide de la syntaxe "insert 1". La suppression trouvera la règle sans tenir compte de l'ordre.

Il y a un bon article de blog qui va plus en détail ici

http://blog.vigilcode.com/2011/05/ufw-with-fail2ban-quick-secure-setup-part-ii/

[EDIT] Pour Ubuntu 16.04+

par défaut un " defaults-debian.conf" /etc/fail2ban/jail.davec du contenu

[sshd]
enabled = true

sera activé à la protection ssh de fail2ban.

Vous devez le mettre à faux.

Créez ensuite un jail.local comme vous le feriez en général, le mien ressemblerait à ceci:

[ssh-with-ufw] 
enabled = true 
port = 22 
filter = sshd 
action = ufw[application="OpenSSH", blocktype=reject] 
logpath = /var/log/auth.log 
maxretry = 3

Il y a déjà un fichier ufw.conf dans l'installation par défaut de fail2ban, vous n'avez donc pas besoin d'en créer un.

Le seul changement spécifique pour vous jail.local serait au niveau de la ligne d’action où vous devez placer l’application concernée pour la protection et ce que vous voulez obtenir comme résultat.

ufw ont tendance à détecter automatiquement un certain nombre d'applications exécutées sur le réseau. Pour avoir la liste, tapez simplement sudo ufw app list. C'est sensible à la casse.

rechargez fail2ban et vous ne verrez plus la chaîne fail2ban et si une adresse IP se bloque, vous la verrez dans sudo ufw status


7
Donc, en bref: sans effectuer l'intégration comme expliqué, ufw et fail2ban fonctionnent comme ils le devraient. Fail2ban va insérer ses définitions de blocage avant que les règles d'ufw ne soient appliquées. D'autre part, si l'on souhaite que les blocs apparaissent ufw status, vous avez besoin de l'intégration. En plus d'avoir les blocs en place ufw status, il n'y aurait aucun autre avantage? En particulier parce que l'auteur du blog dit ce qui suit:
bouke

1
Exactement. "Don't play nice" équivaut à ne pas apparaître lorsque vous les vérifiez avec le statut ufw. Les avantages de l’intégration sont que vous utilisez un seul outil, ufw, pour gérer et afficher vos règles de pare-feu. Rien de mal à utiliser fail2ban tel quel, prêt à l'emploi, en termes de fonction. Le problème serait que pour voir les règles fail2ban, vous devriez utiliser iptables -L -v -n, et comme vous pouvez déjà le constater, lorsque vous utilisez ufw, le résultat est long et difficile à suivre. L'avantage de l'intégration est que les règles et la syntaxe sont alors plus faciles à comprendre (en supposant que vous utilisiez uww en premier lieu)
Panther

Pour mémoire, si vous cliquez n'importe où sur le site que vous avez lié, vous serez redirigé vers des logiciels malveillants / publicitaires.
Antonio Cangiano

@AntonioCangiano - Link fonctionne très bien ici, vérifiez votre navigateur et votre DNS
Panther

@ bodhi.zazen Tout clic sur l'article lié mènera à un site Web non autorisé, comme Antonio l'a correctement souligné. Je suis réticent à prendre des conseils de sécurité d'un tel article.
Goran Miskovic

4

J'utilise fail2ban et ufw depuis des années sur plusieurs ordinateurs et je n'ai jamais eu de problèmes. Pour configurer fail2ban:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano jail.local

Maintenant, éditez le fichier comme vous le souhaitez, par exemple si vous voulez bloquer les ssh non autorisés, recherchez les lignes:

[ssh]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

si "enabled" est défini sur "false", remplacez-le par "true" comme indiqué ici. Après avoir défini les règles, vous devez redémarrer le processus fail2ban:

sudo /etc/init.d/fail2ban restart

Si vous avez ouvert le port 22 sur votre pare-feu ufw, fail2ban interdira les clients qui tentent de se connecter plus de 6 fois sans succès, cela ne cassera pas votre pare-feu.


4

L’installation de 0.9.5 de fail2ban incluait une ufwaction que je devais simplement définir pour lebanaction


2
Pour mémoire, l'action est aussi présente dans la version 0.8.13
Joril
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.