Skip to main content

Cerca

Elementi taggati con: )


 
That's broken: it only has ten digits. You also need digit 0xA (*) and 0xB (#).
#)

 
That's broken: it only has ten digits. You also need digit 0xA (*) and 0xB (#).
#)

 

Aggiungere una regola su Fail2ban


Fail2ban, di default su debian blocca temporaneamente gli ip da cui arrivano tentativi falliti di login su ssh. E se uno volesse aggiungere altro? Si puo' fare, vediamo come.

Nel mio caso volevo bloccare gli ip da cui arrivano scansioni su pagine potenzialmente vulnerabili su lighttpd. Primo passo creare un filtro:

/etc/fail2ban/filter.d/lighttpd-scan.conf


# Fail2Ban filter to match frequent scan from bot for lighttpd
#


[Definition]failregex = ^<HOST> .*GET /sqlitemanager/main.php
^<HOST> .*GET /script
^<HOST> .*GET /jenkins
^<HOST> .*GET /hudson
^<HOST> .*GET /login
^<HOST> .*GET /manager/html
^<HOST> .*GET /phpmyadmin
^<HOST> .*GET /phpMyAdmin
^<HOST> .*GET /mysql
^<HOST> .*GET /sql
^<HOST> .*GET /xmlrpc.php

ignoreregex =



Failregex contiene le regexp che devono essere cercate nel file di log, e che causeranno l'eventuale ban.

Per verificare se il filtro funziona:


root@scw-3a2c2d:/etc/fail2ban# fail2ban-regex /var/log/lighttpd/access.log /etc/fail2ban/filter.d/lighttpd-scan.conf

Running tests
=============

Use failregex filter file : lighttpd-scan, basedir: /etc/fail2ban
Use log file : /var/log/lighttpd/access.log
Use encoding : UTF-8


Results
=======

Failregex: 25 total
|- #) [# of hits] regular expression
| 1) [1]^<HOST> .*GET /sqlitemanager/main.php
| 2) [1]^<HOST> .*GET /script
| 3) [2]^<HOST> .*GET /jenkins
| 4) [2]^<HOST> .*GET /hudson
| 5) [1]^<HOST> .*GET /login
| 6) [2]^<HOST> .*GET /manager/html
| 7) [3]^<HOST> .*GET /phpmyadmin
| 8) [3]^<HOST> .*GET /phpMyAdmin
| 9) [3]^<HOST> .*GET /mysql
| 10) [4]^<HOST> .*GET /sql
| 11) [3]^<HOST> .*GET /xmlrpc.php
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
| [83]Day(?P<_sep>[-/])MON(?P=_sep)Year[ :]?24hour:Minute:Second(?:\.Microseconds)?(?: Zone offset)?
`-

Lines: 83 lines, 0 ignored, 25 matched, 58 missed
[processed in 0.16 sec]




Ora che abbiamo visto che funziona possiamo abilitarlo, creando un altro file:

jail.d/lighttpd-scanbot.conf


[lighttpd-scan]
port = http,https
logpath = /var/log/lighttpd/access.log
enabled = true



Riavviare fail2ban, con "service fail2ban restart", e verificare che sia configurato correttamente con:


root@scw-3a2c2d:/etc/fail2ban# fail2ban-client status
Status
|- Number of jail: 2
`- Jail list: lighttpd-scan, sshd



Per maggiori informazioni, c'e' una comoda guida qui:

http://www.fail2ban.org/wiki/index.php/MANUAL_0_8

L'importante e' prima di fare esperimenti, avere un altro modo di accedere alla macchina, in caso ci si autobanni. A me non e' successo, ma meglio avere un piano B nel caso. ;-)

@Gruppo Linux Como