Projet

Général

Profil

Wiki » Historique » Version 14

Eric Seigne, 09/07/2021 18:05

1 1 Eric Seigne
# Wiki
2
3 10 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 (de confiance) ...
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 14 Eric Seigne
**Attention pour l'instant la commande unban n'est pas "propagée" sur le reste de votre infrastructure !**
13
14 6 Eric Seigne
## Configuration initiale
15
16 7 Eric Seigne
### En automatique via le script setup (préféré)
17
18 9 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.sh et lancez le avec l'option --setup : 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 !
19 1 Eric Seigne
20 10 Eric Seigne
Vous pouvez aussi lancer [[fail2band.sh --help]] qui devrait vous donner toute l'aide intégrée !
21 9 Eric Seigne
22 7 Eric Seigne
### Ou manuellement
23 1 Eric Seigne
24
* 1. Créer son compte sur https://fail2band.com/
25
* 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")
26
27 7 Eric Seigne
28 1 Eric Seigne
## Configuration pour uploader sa blacklist
29
30 9 Eric Seigne
(faire la Configuration initiale comme indiquée dans le paragraphe "Configuration initiale")
31 1 Eric Seigne
32 11 Eric Seigne
* 1. Installer https://projets.cap-rel.fr/projects/fail2band/repository/webservice-fail2band/revisions/master/raw/tools/fail2ban/action.d/fail2band.conf dans /etc/fail2ban/action.d/
33 9 Eric Seigne
* 2. Modifier ses règles fail2ban pour ajouter fail2band dans les actions, par exemple ajout de fail2band pour la prison sshd
34
35 3 Eric Seigne
```
36 9 Eric Seigne
[sshd]
37 3 Eric Seigne
enabled = true
38 1 Eric Seigne
banaction = %(banaction_allports)s
39
	    fail2band
40
41
```
42 9 Eric Seigne
* 3. 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 8 Eric Seigne
## Configuration pour télécharger sa blacklist sur un autre serveur
45 4 Eric Seigne
46 9 Eric Seigne
(faire la Configuration initiale comme indiquée dans le paragraphe "Configuration initiale")
47 4 Eric Seigne
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 1 Eric Seigne
50 12 Eric Seigne
* 1. Installer https://projets.cap-rel.fr/projects/fail2band/repository/webservice-fail2band/revisions/master/raw/tools/fail2ban/filter.d/fail2band-remote.conf dans /etc/fail2ban/filter.d/
51
* 2. Installer https://projets.cap-rel.fr/projects/fail2band/repository/webservice-fail2band/revisions/master/raw/tools/fail2ban/jail.d/fail2band-remote.conf dans /etc/fail2ban/jail.d/
52
53
54 9 Eric Seigne
* 3. Modifier/adapter le fichier de configuration de la prison, par exemple
55 6 Eric Seigne
56 4 Eric Seigne
```
57 9 Eric Seigne
[fail2band-remote-sshd]
58 4 Eric Seigne
enabled = true
59 1 Eric Seigne
banaction = iptables-allports
60 4 Eric Seigne
filter = fail2band-remote
61
protocol = all
62
logpath = /var/log/fail2band-remote-ssh.log
63
maxretry = 1
64 1 Eric Seigne
findtime = 1h
65 4 Eric Seigne
bantime = 1d
66
67
```
68
69 9 Eric Seigne
Important: vous voyez le suffixe "sshd" à 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
70 4 Eric Seigne
71 9 Eric Seigne
Ce suffixe correspond aux noms des collecteurs (jail) de vos règles fail2ban lors de l'envoi. Ainsi si vous envoyez des données de sshd vous pourrez télécharger uniquement les IP bannies par ce filtre ...
72 4 Eric Seigne
73 9 Eric Seigne
* 4. Relancer fail2ban et vérifier sur le fichier log local de fail2ban que tout marche bien
74 4 Eric Seigne
75 9 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.sh avec l'option --get via un cron par exemple, dans le futur on regardera de plus près les websockets ou autres bricoles permises par http2
76 5 Eric Seigne
77
78 1 Eric Seigne
```
79 9 Eric Seigne
/usr/local/bin/fail2band.sh --get --filter ssh
80 4 Eric Seigne
```
81 13 Eric Seigne
82
83
En [[résumé condensé]] ce que je fais actuellement pour déployer fail2band sur mes serveurs ...
Go to top
Ajouter une image à partir du presse-papier (Taille maximale: 50 Mo)