• Home
  • Blog
    • Technews
    • Pensiero del giorno
  • Informatica
  • Fotografie
    • Concerti
    • Vacanze
    • Varie
  • Acqua
  • La Wishlist

Traforatori di DNS

Mercoledì 21 Gennaio 2009 14:27

Questa mattina ho deciso di dare ascolto ad un alert che mi lampeggia nella casella di posta da almeno un paio di giorni: ci sono ripetute query puzzolenti (a cui viene comunque risposto "pussa via" ) ai server DNS di vari clienti.

I DNS solitamente vivono in una scatola chiusa, nella stanza più inaccessibile della torre più alta di un castello isolato ai quattro lati da un fossato pieno di coccodrilli e senza ponte levatoio. Insomma, solitamente i DNS sono messi in condizione di non nuocere se per caso un gufo ci fa il nido dentro. Comunque per conoscenza di tutti gli IP dei paciosi amici sono:

{xtypo_code}
Chain fail2ban-bind (1 references)
target     prot opt source               destination
DROP       0    --  76.9.16.171          0.0.0.0/0
DROP       0    --  66.230.160.1         0.0.0.0/0
DROP       0    --  66.230.128.15        0.0.0.0/0
RETURN     0    --  0.0.0.0/0            0.0.0.0/0

{/xtypo_code}

Pare ce ne siano un altro paio, ma non ne ho ancora fatto la conoscenza.

Ora urge prendere provvedimenti, perché quello che si configura con un tentatativo fallito di DDOS  può diventare un tentativo riuscito di riempimento dello spazio disco del log server. Vediamo quindi assieme come prendere per le orecchie personaggi come questi mettendoli in condizione di nuocere meno.

Fail2ban, di cui vediamo gli effetti nella lista "dei piccoli amici" di cui sopra è un programma che analizza costantemente i log e se evidenzia una particolare espressione regolare in una unità di tempo "ristretta" prende provvedimenti. Utile per bannare gente che magari manda dalla mattina alla sera SMAP (si, è possibile organizzarsi anche per questo) oppure tartassa il proprio FTP server, si può configurareper mandare anche una mail di notifica, vediamo ora come.

Una volta installato con i tool forniti dalla propria distribuzione (nel mio caso apt-get) si aggiunge una regola che di default manca e cioè l'analisi sommaria del log DNS:

{xtypo_code}
File /etc/fail2ban/filter.d/bind.conf

# Fail2Ban configuration file
# Author: Angelo Conforti
#

[Definition]

# Option:  failregex
# Sample:  named[1865]: client 87.118.100.173#64638: view public: query (cache) './ANY/IN' denied
failregex = named\[\d*\]: client <HOST>\#.* denied$
ignoreregex =

{/xtypo_code} 

A questo punto si configura cosa deve fare il programma e per quali eventi (ad esempio di default fail2ban blocca anche i tentativi falliti di accesso SSH, che in questo momento non ci interessano):

{xtypo_code}
File /etc/fail2ban/jail.local
[DEFAULT]
destemail = Questo indirizzo e-mail è protetto dallo spam bot. Abilita Javascript per vederlo.
bantime  = 3600
protocol = tcp

action = iptables-new[name=%(__name__)s, port=%(port)s, protocol=%(protocol)s]
         mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s]

[ssh]
enabled = no

[bind]
enabled = true
port    = 53
filter  = bind
logpath  = /var/log/syslog
maxretry = 10
protocol = udp

{/xtypo_code}

Ecco fatto. Dopo 10 occorrenze della espressione regolare da noi definita in bind.conf fail2ban prenderà provvedimenti, utilizzando iptables per bloccare la porta in ingresso 53/udp (o volendo anche 53/tcp o entrambe) e l'smtp locale per mandare una mail di notifica. Il ban non è perpetuo, mi pare che di default duri una mezz'oretta, ma questo può facilmente bastare.

Twitter status

: me ne lamento sempre, ma avere dei clienti con consulenti incompetenti ha degli indubbi vantaggi
perde un amico
LUI "cara aspettiamo ospiti a casa?", LEI "si... perché?", LUI "ora si spiega perché non ci sono scarpe sparse per l'ingresso"
 

Meteo

Anguillara Sabazia: 21.1 °C
Genova Albaro: 29.2 °C

Temperatura Casa: 27.9 °C
Pressione Casa: 973.1 hPa
Umidità Casa: 89 %
Pioggia ultime 24h: 0.0 mm