Projet

Général

Profil

Wiki » Historique » Version 7

Eric Seigne, 09/07/2021 13:30

1 1 Eric Seigne
# Wiki
2
3 3 Eric Seigne
fail2band : une api qui permet de [[remonter ses ip bannies]] et de les télécharger depuis ses autres serveurs ... voir à terme de les partager avec d'autres utilisateurs ...
4 2 Eric Seigne
5 4 Eric Seigne
Pour l'instant l'idée est la suivante:
6
* un utilisateur (administrateur) créé autant de clé d'API qu'il a de serveur sur lesquels fail2ban tournent
7
* il ne faut surtout pas utiliser la même clé d'API sur 2 serveurs, car c'est un élément qui permet de ne pas "boucler" (ie renvoyer la blacklist du serveur 1 sur serveur 1)
8
* l'administrateur se connecte sur le panneau d'admin fail2band.com pour créer ses clés d'api et :
9
* un script "push" permet d'envoyer ses données vers le serveur
10
* un script "pull" permet de télécharger la blacklist
11 1 Eric Seigne
12 6 Eric Seigne
## Configuration initiale
13
14 7 Eric Seigne
### En automatique via le script setup (préféré)
15
16 6 Eric Seigne
Directement sur votre serveur, téléchargez l'assistant de configuration https://projets.cap-rel.fr/projects/fail2band/repository/webservice-fail2band/revisions/master/raw/tools/fail2band_setup.sh et lancez le : il créé votre compte utilisateur et si vous en avez déjà un vous génère la clé d'accès à l'api pour le serveur et créé le fichier de configuration /etc/fail2band/config !
17 1 Eric Seigne
18 7 Eric Seigne
### Ou manuellement
19 1 Eric Seigne
20
* 1. Créer son compte sur https://fail2band.com/
21
* 2. Créer une clé d'API pour ce serveur via la console web de https://fail2band.com (à terme le script CLI devra permettre de le faire direct sur le serveur "client")
22
23 7 Eric Seigne
24
## Configuration pour un nouveau serveur (uploader sa blacklist)
25
26
* 1. Installer le script https://projets.cap-rel.fr/projects/fail2band/repository/webservice-fail2band/revisions/master/entry/tools/fail2band_push.sh
27
* 2. Installer https://projets.cap-rel.fr/projects/fail2band/repository/webservice-fail2band/revisions/master/entry/tools/fail2ban/action.d/fail2band.conf dans /etc/fail2ban/action.d/
28
* 3. Modifier ses règles fail2ban pour ajouter fail2band dans les actions, par exemple ajout de fail2band pour inli-authlog:
29
30 3 Eric Seigne
```
31
[inli-authlog]
32
enabled = true
33
filter = inli-authlog
34
banaction = %(banaction_allports)s
35
	    fail2band
36
protocol = all
37 1 Eric Seigne
logpath = /var/log/auth.log
38
maxretry = 1
39 3 Eric Seigne
bantime = 2678400
40
41
```
42 7 Eric Seigne
* 4. Relancer fail2ban et vérifier sur le fichier log local de fail2ban que les nouvelles IP bannies sont aussi "poussées" sur le serveur fail2band.com ... (en regardant sur le panneau d'admin du serveur web dans la section fail2ban que les ip remontées sont bien là)
43 4 Eric Seigne
44 1 Eric Seigne
45
## Configuration pour télécharger sa blacklist depuis un autre serveur
46 4 Eric Seigne
47
48
Rappel: le principe de base est que la blacklist est commune pour le compte utilisateur mais différentiée pour les clés d'api utilisées ...
49
50
* 1. Installer le script https://projets.cap-rel.fr/projects/fail2band/repository/webservice-fail2band/revisions/master/entry/tools/fail2band_pull.sh
51 6 Eric Seigne
* 2. Installer https://projets.cap-rel.fr/projects/fail2band/repository/webservice-fail2band/revisions/master/entry/tools/fail2ban/filter.d/fail2band-remote.conf dans /etc/fail2ban/filter.d/
52
* 3. Installer https://projets.cap-rel.fr/projects/fail2band/repository/webservice-fail2band/revisions/master/entry/tools/fail2ban/jail.d/fail2band-remote.conf dans /etc/fail2ban/jail.d/
53
* 4. Modifier/adapter le fichier de configuration de la prison, par exemple
54 4 Eric Seigne
55
```
56
[fail2band-remote-ssh]
57
enabled = true
58
banaction = iptables-allports
59
filter = fail2band-remote
60
protocol = all
61
logpath = /var/log/fail2band-remote-ssh.log
62
maxretry = 1
63 1 Eric Seigne
findtime = 1h
64 4 Eric Seigne
bantime = 1d
65
66
```
67
68
Important: vous voyez le suffixe "ssh" à fail2band-remote ? il est également sur le nom du fichier log à monitorer, c'est aussi le nom du filtre qu'on va envoyer à la requête réseau via le script pull
69
70
Ce suffixe correspond aux noms des collecteurs de vos règles fail2ban lors de l'envoi. Ainsi si vous envoyez des données de postfix-sasl vous pourrez télécharger uniquement les IP bannies par ce filtre ...
71
72 6 Eric Seigne
* 5. Relancer fail2ban et vérifier sur le fichier log local de fail2ban que tout marche bien
73 4 Eric Seigne
74 5 Eric Seigne
Ensuite il faut que le fichier /var/log/fail2band-remote-ssh.log se remplisse à partir de la base centrale ... il faut lancer le script fail2band_pull.sh via un cron par exemple, dans le futur on regardera de plus près les websockets ou autres bricoles permises par http2
75
76
77 1 Eric Seigne
```
78 5 Eric Seigne
/usr/local/bin/fail2band_pull.sh ssh
79 4 Eric Seigne
```
Go to top
Ajouter une image à partir du presse-papier (Taille maximale: 50 Mo)