Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
pratique:informatique:reaction [05/01/2024 09:34] – créée Zatalyz | pratique:informatique:reaction [26/01/2024 20:59] (Version actuelle) – [Reaction, alternative à Fail2ban] Zatalyz | ||
---|---|---|---|
Ligne 13: | Ligne 13: | ||
</ | </ | ||
+ | ===== Commandes de base ===== | ||
+ | Voir qui est banni : | ||
+ | reaction show | ||
+ | Débannir quelqu' | ||
+ | reaction flush IP | ||
+ | |||
+ | Consulter l'aide : | ||
+ | reaction --help | ||
===== Envoyer des mails quand il y a une action ===== | ===== Envoyer des mails quand il y a une action ===== | ||
J'ai une commande qui va envoyer un mail via un script, en ayant en paramètre deux variables : '' | J'ai une commande qui va envoyer un mail via un script, en ayant en paramètre deux variables : '' | ||
Ligne 110: | Ligne 118: | ||
et '' | et '' | ||
+ | <WRAP center round todo 60%> | ||
+ | Mais j'ai du manquer un bout, ça me fait des erreurs ça... Il ne reconnait pas le " | ||
+ | </ | ||
===== Mes bouts de stream et de config ===== | ===== Mes bouts de stream et de config ===== | ||
Ligne 133: | Ligne 144: | ||
}; | }; | ||
- | // pourquoi ça ouvre ici ? | + | // pourquoi ça ouvre ici ? Mais, ça marche. |
{ | { | ||
// patterns are substitued in regexes. when a filter performs an action, it replaces the found pattern. | // patterns are substitued in regexes. when a filter performs an action, it replaces the found pattern. | ||
Ligne 163: | Ligne 174: | ||
// Streams : c'est là qu'on va définir les services et règles menant au bannissement | // Streams : c'est là qu'on va définir les services et règles menant au bannissement | ||
streams: { | streams: { | ||
- | // Ban hosts failing to connect via ssh | ||
ssh: import ' | ssh: import ' | ||
kernel: import ' | kernel: import ' | ||
- | | + | |
- | + | }, | |
- | + | } | |
- | | + | |
</ | </ | ||
Pour ssh et kernel, il s'agit des configurations par défaut auxquelles j'ai ajouté mon envoi de mail : | Pour ssh et kernel, il s'agit des configurations par défaut auxquelles j'ai ajouté mon envoi de mail : | ||
- | <code jsonnet ssh.jsonnet></ | + | <code jsonnet ssh.jsonnet> |
+ | { | ||
+ | cmd: [' | ||
+ | filters: { | ||
+ | failedlogin: | ||
+ | regex: [ | ||
+ | @' | ||
+ | @' | ||
+ | @' | ||
+ | ], | ||
+ | retry: 6, | ||
+ | retryperiod: | ||
+ | actions: banFor(' | ||
+ | }, | ||
+ | }, | ||
+ | }, | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code jsonnet kernel.jsonnet> | ||
+ | // Ban hosts which knock on closed ports. | ||
+ | // It needs this iptables chain to be used to drop packets: | ||
+ | // ip46tables -N log-refuse | ||
+ | // ip46tables -A log-refuse -p tcp --syn -j LOG --log-level info --log-prefix ' | ||
+ | // ip46tables -A log-refuse -m pkttype ! --pkt-type unicast -j nixos-fw-refuse | ||
+ | // ip46tables -A log-refuse -j DROP | ||
+ | { | ||
+ | cmd: [' | ||
+ | filters: { | ||
+ | portscan: { | ||
+ | regex: [' | ||
+ | retry: 4, | ||
+ | retryperiod: | ||
+ | actions: banFor(' | ||
+ | }, | ||
+ | }, | ||
+ | }, | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | Pour postfix, pour le moment je cible certains bot cons. | ||
+ | <code jsonnet badguypostfix.jsonnet> | ||
+ | { | ||
+ | cmd: [' | ||
+ | filters: { | ||
+ | badguy: { | ||
+ | regex: [ | ||
+ | @'^.* improper command pipelining after CONNECT from unknown\[< | ||
+ | @' | ||
+ | @'^.* NOQUEUE: reject: RCPT from unknown\[< | ||
+ | @' | ||
+ | @' | ||
+ | ], | ||
+ | retry: 1, | ||
+ | retryperiod: | ||
+ | actions: banFor(' | ||
+ | }, | ||
+ | }, | ||
+ | }, | ||
+ | </ | ||
{{tag> | {{tag> | ||