Wiki » Historique » Version 18
Eric Seigne, 14/07/2021 15:19
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 | 16 | Eric Seigne | * un utilisateur (administrateur) créé autant de clé d'API qu'il a de serveur sur lesquels fail2ban tourne |
7 | 4 | Eric Seigne | * 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 | |||
9 | 17 | Eric Seigne | |
10 | 1 | Eric Seigne | ## Configuration initiale |
11 | 6 | Eric Seigne | |
12 | 17 | Eric Seigne | ### En automatique via le script et l'option --setup |
13 | 1 | Eric Seigne | |
14 | 7 | 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 ! |
15 | |||
16 | 17 | Eric Seigne | ```fail2band.sh --setup``` |
17 | |||
18 | 1 | Eric Seigne | Vous pouvez aussi lancer [[fail2band.sh --help]] qui devrait vous donner toute l'aide intégrée ! |
19 | |||
20 | 7 | Eric Seigne | ## Configuration pour uploader sa blacklist |
21 | 1 | Eric Seigne | |
22 | 17 | Eric Seigne | (faire la Configuration initiale comme indiqué dans le paragraphe "Configuration initiale") |
23 | 1 | Eric Seigne | |
24 | 17 | Eric Seigne | * 1. Installez https://projets.cap-rel.fr/projects/fail2band/repository/webservice-fail2band/revisions/master/raw/tools/fail2ban/action.d/fail2band.conf dans /etc/fail2ban/action.d/ |
25 | * 2. Modifiez les règles fail2ban pour ajouter **fail2band** dans les actions, par exemple ajout de fail2band pour la prison sshd |
||
26 | 11 | Eric Seigne | |
27 | 9 | Eric Seigne | ``` |
28 | 1 | Eric Seigne | [sshd] |
29 | 9 | Eric Seigne | enabled = true |
30 | 3 | Eric Seigne | banaction = %(banaction_allports)s |
31 | 17 | Eric Seigne | fail2band <------------------------ c'est ça qu'il faut ajouter à vos blocs banaction |
32 | 1 | Eric Seigne | |
33 | ``` |
||
34 | |||
35 | 17 | Eric Seigne | * 3. Relancez fail2ban et vérifiez sur le fichier log local de fail2ban que les nouvelles IP bannies sont aussi "poussées" sur le serveur fail2band.com ... (vérifiez sur le panneau d'admin du serveur web dans la section fail2ban que les ip remontées sont bien là) |
36 | |||
37 | 4 | Eric Seigne | ## Configuration pour télécharger sa blacklist sur un autre serveur |
38 | 8 | Eric Seigne | |
39 | 17 | Eric Seigne | (faire la Configuration initiale comme indiqué dans le paragraphe "Configuration initiale") |
40 | 4 | Eric Seigne | |
41 | 1 | Eric Seigne | 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 ... |
42 | 4 | Eric Seigne | |
43 | 17 | Eric Seigne | * 1. Installez 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/ |
44 | * 2. Installez 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/ |
||
45 | * 3. Modifiez et adaptez le fichier de configuration de la prison, par exemple |
||
46 | 1 | Eric Seigne | |
47 | 4 | Eric Seigne | ``` |
48 | 17 | Eric Seigne | [fail2band-remote] |
49 | 4 | Eric Seigne | enabled = true |
50 | banaction = iptables-allports |
||
51 | 1 | Eric Seigne | filter = fail2band-remote |
52 | 4 | Eric Seigne | protocol = all |
53 | 17 | Eric Seigne | logpath = /var/log/fail2band-remote.log |
54 | 4 | Eric Seigne | maxretry = 1 |
55 | findtime = 1h |
||
56 | 9 | Eric Seigne | bantime = 1d |
57 | 4 | Eric Seigne | |
58 | 9 | Eric Seigne | ``` |
59 | 4 | Eric Seigne | |
60 | 17 | Eric Seigne | * 4. Relancez fail2ban et vérifier sur le fichier log local de fail2ban que tout marche bien |
61 | 4 | Eric Seigne | |
62 | 17 | Eric Seigne | Ensuite il faut que le fichier /var/log/fail2band-remote.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) |
63 | 5 | Eric Seigne | |
64 | |||
65 | 1 | Eric Seigne | ``` |
66 | 9 | Eric Seigne | /usr/local/bin/fail2band.sh --get --filter ssh |
67 | 4 | Eric Seigne | ``` |
68 | 13 | Eric Seigne | |
69 | |||
70 | En [[résumé condensé]] ce que je fais actuellement pour déployer fail2band sur mes serveurs ... |