Uno de los errores mas comunes de los sysadmin es olvidar lo que esta pasando en el servidor de DNS media vez este funcionando bien. Yo reviso los logs al menos 3 veces al día, y en total manejo 3 servidores de DNS, uno como primario y dos como secundarios.
El día de hoy me pareció MUY extraño ver esto en el /var/log/syslog:
Feb 27 09:56:43 nsx named[2006]: client 62.109.4.89#62095: query (cache) ‘./NS/IN’ denied
Feb 27 09:56:43 nsx named[2006]: client 62.109.4.89#49971: query (cache) ‘./NS/IN’ denied
Feb 27 09:56:44 nsx named[2006]: client 62.109.4.89#50374: query (cache) ‘./NS/IN’ denied
Feb 27 09:56:45 nsx named[2006]: client 62.109.4.89#57868: query (cache) ‘./NS/IN’ denied
Feb 27 09:56:49 nsx named[2006]: client 62.109.4.89#44877: query (cache) ‘./NS/IN’ denied
Feb 27 09:56:50 nsx named[2006]: client 62.109.4.89#32333: query (cache) ‘./NS/IN’ denied
Feb 27 09:56:51 nsx named[2006]: client 62.109.4.89#5181: query (cache) ‘./NS/IN’ denied
Feb 27 09:56:52 nsx named[2006]: client 62.109.4.89#23041: query (cache) ‘./NS/IN’ denied
Feb 27 09:56:56 nsx named[2006]: client 62.109.4.89#18390: query (cache) ‘./NS/IN’ denied
Feb 27 09:56:56 nsx named[2006]: client 62.109.4.89#22196: query (cache) ‘./NS/IN’ denied
Feb 27 09:56:57 nsx named[2006]: client 62.109.4.89#65334: query (cache) ‘./NS/IN’ denied
Feb 27 09:56:58 nsx named[2006]: client 62.109.4.89#16382: query (cache) ‘./NS/IN’ denied
Feb 27 09:57:02 nsx named[2006]: client 62.109.4.89#25512: query (cache) ‘./NS/IN’ denied
Feb 27 09:57:02 nsx named[2006]: client 62.109.4.89#55121: query (cache) ‘./NS/IN’ denied
Feb 27 09:57:03 nsx named[2006]: client 62.109.4.89#55107: query (cache) ‘./NS/IN’ denied
Solo copie una parte del log acá, ya que era inmenso.
Hacia una peticion de DNS cada segundo, asi que decidi investigar un poco de donde venian estas peticiones. Si quieren averiguar informacion de algun IP lo pueden hacer en la pagina de ARIN.
Los datos de la red de donde me estaban atacando eran los siguientes:
inetnum: 62.109.0.0 – 62.109.7.255
netname: ISPSYSTEM
descr: ISPsystem at MSM
country: RU
admin-c: PAS28-RIPE
tech-c: AB11726-RIPE
status: ASSIGNED PA
mnt-by: ISPSYSTEM-MNT
source: RIPE # Filteredperson: Peter A Svistunov
address: ISPsystem, Raduzhny 34a
address: Irkutsk, 664017, Russian Federation
phone: +7 3952 525789
nic-hdl: PAS28-RIPE
source: RIPE # Filteredperson: Alexandr Brukhanov
address: PoBox30, 664017, Irkutsk, Russia
phone: +7 495 727 38 79
nic-hdl: AB11726-RIPE
source: RIPE # Filtered
Suena ilógico que una persona de Rusia estuviera realizando una petición por segundo a un servidor de DNS que sirve peticiones para sitios en español, confirme entonces que era un ataque de D.o.S (Denial of Service). Asi que procedí a bloquear esta red atraves de IPTABLES.
Bloquie la red con el siguiente comando de iptables:
iptables -A INPUT -p udp -s 62.109.0.0/21 -d 0/0 -j DROP
iptables -A INPUT -p tcp -s 62.109.0.0/21 -d 0/0 -j DROP
Con este comando le denegué el acceso a toda esta red (clase b) a mi servidor en los protocolos UDP y TCP.
Después de hacer esto el log ya no mostró todas estas peticiones de este IP de Rusia. No me afecto en nada este ataque ya que si se fijan en el log mi servidor de DNS estaba denegando las conexiones ya que tengo restringidas las peticiones a no mas de 5 cada 10 segundos desde la misma dirección IP.
En conclusión, mi recomendación para todos los sysadmin es que revisen sus logs todos los días para evitar así ser victimas de ataques de denegación de servicios.
Que buena información. muy util.
De verdad que buena información y además tambien la solución. ¡Muchas gracias!
Es verdad, siempre hay que revisar los log a diario y si uno dispone de más tiemo, revisarlos varias veces en el día.
Hay una muy buena herramienta para este fin, LogWatch. Es un módulo que está en todas las distro, simplemente hay que instalarla. Te dará un detalle de TODOS los logs de tu linux y te lo envia por e-mail.
Sldos,
Marcelo Olcese.