Dołączył(a): piątek, 7 października 2011, 22:33 Posty: 3
Witam, próbuje skonfigurować fail2ban dla najpopularniejszych usług, pop3, ssh czy ftp, w związku z tym proszę o pomoc. Stworzyłem jail.local, w którym mam następującą konfigurację:
SSH Problem: nie banuje. Failregex wygląda następująco:
Kod:
failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from <HOST>\s*$ ^%(__prefix_line)s(?:error: PAM: )?authentication error for .* from <HOST>\s*$ ^%(__prefix_line)s(?:error: PAM: )?User not known to the underlying authentication module for .* from <HOST>\s*$ ^%(__prefix_line)sFailed (?:password|publickey) for .* from <HOST>(?: port \d*)?(?: ssh\d*)?$ ^%(__prefix_line)sROOT LOGIN REFUSED.* FROM <HOST>\s*$ ^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from <HOST>\s*$ ^%(__prefix_line)sUser \S+ from <HOST> not allowed because not listed in AllowUsers$ ^%(__prefix_line)sauthentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$ ^%(__prefix_line)srefused connect from \S+ \(<HOST>\)\s*$ ^%(__prefix_line)sAddress <HOST> .* POSSIBLE BREAK-IN ATTEMPT!*\s*$ ^%(__prefix_line)sUser \S+ from <HOST> not allowed because none of user's groups are listed in AllowGroups$
Jest to domyślny regex, dodałem jedynie drugą linijkę. Przykładowy error:
Kod:
Apr 7 20:17:33 xxxx sshd[78326]: error: PAM: authentication error for illegal user test from 217.170.168.91
ProFTPD Problem: nie banuje. Failregex wygląda nastepująco:
Kod:
failregex = \(\S+\[<HOST>\]\)[: -]+ USER \S+: no such user found from \S+ \[\S+\] to \S+:\S+$ \(\S+\[<HOST>\]\)[: -]+ USER \S+ \(Login failed\): Incorrect password\.$ \(\S+\[<HOST>\]\)[: -]+ SECURITY VIOLATION: \S+ login attempted\.$ \(\S+\[<HOST>\]\)[: -]+ Maximum login attempts \(\d+\) exceeded$
Tutaj wygląda, że wszystko działa, mimo, że domyślnie nawet nie było filtra do dovecota. W każdym razie przetestowałem przez squirrelmail, i pomyślnie zbanowano - choć był to IP vps'a, a nie mój - nie wiem czy tak musi być?
Dołączył(a): piątek, 7 października 2011, 22:33 Posty: 3
Zdebugowałem regexy, okazuje się, że dla proftpd domyślne regexy nie brały pod uwagę możliwości istnienia białego znaku, który był w każdej linii. Co do ssh, tu sprawa jest nieco inna - wyrażenia są poprawne po usunięciu:
Kod:
^%(__prefix_line)s
Nie mam pojęcia dlaczego, możliwe, że po prostu na freebsd ten kawałek nie ma prawa działać. Jeśli ktoś wie to chętnie się dowiem. Generalnie wygląda jakby problem powodowało %(__prefix_line) jak i s.
A więc obecnie dostaje wszystkie 3 e-maile, jakby bany były rozdawane, jednak w rzeczywistości nie banuje - także głównie ta sprawa pozostała do rozwiązania.