27.5.12

fail2ban - como proteger nuestros servers de intrusos varios...

los dos ultimos fines de semana tuve q sacar intrusos de servidores q administro, nada peligroso ya q los servers estan actualizados y bastante protegidos dentro de lo posible, pero siempre esta el problema de los usuarios y el cuidado q le dan a sus contraseñas... en ambos casos se vieron comprometidas cuentas de los mismos. en la 1era lograron entrar x ssh y correr un script q enviaba spam, en la 2da simplemente un login de correo con el mismo proposito pero enviando una scam tipica, este era el texto:

Please be informed that you have £100,000 British Pounds Lodged in our Western Union to transfer to you as winner of ECOWAS Lottery Jackpot.

Please Contact: milton_daniel17@yahoo.com

al entrar hizo un par de pruebas enviandose a direcciones propias q son las siguientes:

kenblast2003@yahoo.com
kenblastall@hotmail.com
motide7@aol.com

no fue lo suficientemente inteligente para borrar ni siquiera los correos q enviaba, simplemente consiguio la pass del usuario y me puso en cola 10 millones de correos q se estuvieron enviando durante unas horas hasta q me di cuenta. creo q penso q siendo domingo no lo veria hasta el lunes pero x suerte suelo checkear logs bastante seguido.

los spammers/scammers estan en la escala mas baja de la porqueria existente en internet, tanto desde el punto de vista del usuario q recibe montones de correos q no le importan como del administrador q trata de hacer todo lo posible para minimizar el impacto en el buzon del usuario final.

pero el peligro no esta solo en parar la basura sino tambien en proteger nuestros servers ya q son una codiciada presa para ellos, la oportunidad de hacer unos cuantos billetes a costa de nuestro buen nombre... je

asi tambien tenemos los miles de script kiddies q pasan el dia con sus programas de fuerza bruta y sus diccionarios probando combinaciones de user/pass y algun ocasional hacker o aprendiz q puede ocasionar algo mas de trabajo. mas de uno se sorprenderia al ver los logs de un server publico, al final de la entrada voy a pastear algunos para q vean el nivel de los ataques...

para detener este tipo de ataques automatizados existe fail2ban, q es un software q en base a los logs del sistema puede bannear IPs en base a intentos fallidos de logueo. a pesar de tenerlo instalado en la mayoria de los servers tuve q ponerlo en TODOS y ajustar la configuracion para q sea todavia mas agresiva. de paso aprovecho para hacer esta entrada para q vean q no es nada dificil de instalar y configurar y ciertamente hace darse x vencido a la mayoria de los intrusos.


instalacion

a pesar de q son muy parecidas voy a explicar la instalacion tanto para centos/redhat como para debian/ubuntu. para el 1ero tenemos q descargarlo desde:

http://sourceforge.net/projects/fail2ban/

lo extraemos con:

tar xvf fail2ban-x.x.x.tar.bz2

despues...

cd fail2ban-x.x.x
python setup.py install

a continuacion lo agregamos al arranque del sistema copiando el siguiente archivo:

cp /files/redhat-initd /etc/init.d/fail2ban

y despues...

chkconfig --add fail2ban
chkconfig fail2ban on
service fail2ban start

en debian/ubuntu lo podemos bajar de los repositorios con:

apt-get install fail2ban (sudo en ubuntu)

y nos ahorramos todo el proceso anterior.


configuracion


lo siguiente es configurar las "jails" para los servicios q queremos proteger. para eso vamos a /etc/fail2ban y editamos el archivo jail.conf haciendo una copia de seguridad antes por las dudas...

la configuracion puede variar un poco de una version a otra pero las opciones son mas o menos las mismas siempre. en debian x ejemplo, las acciones, tiempos de banneo, etc vienen definidas al principio de manera gral o se pueden personalizar despues en cada jail.

lo primero es setear las redes e IPs seguras, o sea las q queremos q el sistema no blockee nunca, como el rango de nuestra propia lan o direcciones de usuarios del sistema. esto se hace modificando el campo "ignoreip", por ejemplo:

ignoreip = 127.0.0.1 192.168.0.0/24 200.53.23.1 10.0.0.0/25

mas abajo tenemos los tiempos y situaciones del blockeo, q podemos dejar como estan o editarlas como queramos. son las siguientes:

bantime: es la cantidad de segundos q una IP es banneada (default 600).
findtime: un host es banneado si se loguea erroneamente tantas veces como la cantidad en "maxretry" dentro del "findtime" (default 600seg).
maxretry: es el numero de intentos fallidos antes de ser blockeado.

pasamos ahora a configurar las jails (carceles). una de las mas usadas es la de ssh asi q empecemos x esa, vamos hasta "[ssh]" y x default (en debian x lo menos) ya la tenemos activada. sale mas o menos asi:

[ssh]
enabled = true
port    = ssh
filter    = sshd
logpath = /var/log/auth.log
maxretry = 6

y asi para centos:

[ssh-iptables]
enabled    = true
filter    = sshd
action    = iptables[name=SSH, port=ssh, protocol=tcp]
                 sendmail-whois[name=SSH, dest=root, sender=fail2ban@fail2ban]
logpath    = /var/log/secure
maxretry = 6

lo q mas nos interesa es q el enabled este en "true" (activada) y el logpath q es la ruta del log de seguridad del sistema, esta cambia de un sistema a otro como se puede ver. en debian vemos q falta el campo "action", eso es xq viene definido antes en la seccion "actions" con el campo "banaction".

en el action de centos vemos dos acciones, iptables y sendmail whois. la 1era crea una regla de iptables blockeando la IP y la 2da envia un correo con un whois de la misma al destinatario configurado (root en este caso).

vamos a crear alguna jail mas x si no quedo muy claro, postfix en centos:

[postfix-tcpwrapper]
enabled    = true
filter    = postfix
action    = hostsdeny[file=/etc/hosts.deny]    (ruta al archivo hosts.deny)
      sendmail[name=Postfix, dest=root]
logpath    = /var/log/maillog
bantime    = 6000

en debian:

[postfix]
enabled    = true
port    = smtp,ssmtp
filter    = postfix
logpath    = /var/log/mail.log

y asi tenemos todo tipo de jails para ftp, http y todos los servicios y la mayoria de los ataques posibles. seria interminable y no tendria mucho sentido explicarlas una a una, simplemente experimentando un poco se pueden activar bastante facil.


roundcube


roundcube es un cliente de webmail relativamente nuevo (todavia esta en beta) con muchisimas opciones y una interfaz q no tiene nada q envidiarle a ninguna otra. en mi humilde opinion es muy superior al eterno squirrelmail q parece casi prehistorico al darle una mirada a uno y el otro.

los logueos de correo pueden ser blockeados con la jail "postfix" o el MTA q usemos como vimos antes, pero tambien se puede dar el caso (como me paso a mi) de que el webmail corra en un server mientras q el MTA esta en otro. en este caso nos vemos obligados a agregar la IP del 1ero en la lista de ignoradas del fail2ban del 2do para no bannear a todos los usuarios ya q la direccion de origen del logueo es siempre la misma para todos.

para solucionar esto podemos usar un plugin escrito x matt rude, q se puede descargar desde aca:

http://mattrude.com/projects/roundcube-fail2ban-plugin/

hay q copiar el contenido dentro del directorio de plugins de roundcube (roundcube/plugins) y despues editar el contenido del archivo main.inc.php q esta dentro del directorio "config", agregando en la seccion de plugins la siguiente linea:

$rcmail_config['plugins'] = array('fail2ban');

con esto se crea un nuevo archivo llamado userlogins en la carpeta logs conteniendo solo los intentos fallidos q usamos para el fail2ban creando una nueva jail:

[roundcube]
enabled    = true
port    = http,https
filter    = roundcube
logpath    = /pathderouncube/logs/userlogins


el eterno punto debil


obviamente esto no nos deja 100% a salvo pero ayuda bastante, de todas formas nunca es bueno confiarnos demasiado y mantener siempre los sistemas actualizados, los permisos bien configurados y los usuarios con las passwords mas complejas posibles... aunque siempre seran usuarios y siempre cabe la posibilidad de q hagan click donde no deben entregando sus datos ante cualquier loteria de turquia o una herencia del principe de liechtenstein...

... ese es el verdadero punto debil.


apendix


como habia prometido copio unas horas del log de fail2ban en un servidor de correo publico (no muy grande) para q vean la cantidad de conexiones blockeadas. la mayoria son de postfix pero hay alguna de ssh.

2012-05-24 04:02:41,098 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 190.49.25.205
2012-05-24 04:14:01,114 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 190.224.163.183
2012-05-24 04:52:59,128 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 186.105.151.68
2012-05-24 05:01:16,142 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 90.170.212.117
2012-05-24 05:01:32,156 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 190.172.162.35
2012-05-24 05:31:24,170 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 188.138.115.237
2012-05-24 05:54:26,188 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 181.1.142.88
2012-05-24 05:56:43,202 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 190.139.154.117
2012-05-24 06:04:14,217 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 181.14.149.157
2012-05-24 06:42:19,230 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 190.16.233.253
2012-05-24 06:47:21,242 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 189.45.204.138
2012-05-24 06:54:42,259 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 41.79.176.10
2012-05-24 07:13:24,273 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 181.14.133.18
2012-05-24 07:14:32,287 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 168.226.249.18
2012-05-24 07:18:01,301 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 168.226.165.193
2012-05-24 07:19:59,315 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 181.14.130.174
2012-05-24 07:28:02,330 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 182.71.75.106
2012-05-24 07:58:49,604 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 190.31.98.41
2012-05-24 08:02:34,618 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 181.14.150.101
2012-05-24 08:03:04,633 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 190.139.223.41
2012-05-24 08:16:23,647 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 122.163.39.30
2012-05-24 08:28:23,675 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 190.139.221.178
2012-05-24 08:37:23,690 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 200.45.10.100
2012-05-24 08:50:45,706 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 190.220.206.251
2012-05-24 09:13:29,721 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 190.166.153.58
2012-05-24 09:14:36,738 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 113.161.75.97
2012-05-24 09:29:53,760 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 168.226.165.155
2012-05-24 10:03:37,798 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 181.14.140.243
2012-05-24 10:06:49,816 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 58.186.2.73
2012-05-24 10:11:35,835 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 123.26.160.109
2012-05-24 10:12:47,849 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 186.134.140.73
2012-05-24 10:14:29,866 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 123.180.71.142
2012-05-24 10:14:51,880 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 181.14.127.147
2012-05-24 10:37:40,897 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 200.45.10.239
2012-05-24 10:44:08,913 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 190.172.97.222
2012-05-24 10:54:20,928 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 181.14.180.85
2012-05-24 11:02:05,942 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 168.226.165.130
2012-05-24 11:11:21,956 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 200.74.100.150
2012-05-24 11:27:45,974 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 84.15.191.254
2012-05-24 11:30:49,993 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 122.163.197.52
2012-05-24 11:37:58,014 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 181.14.186.253
2012-05-24 11:51:08,040 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 115.84.93.94
2012-05-24 12:18:00,057 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 123.180.84.251
2012-05-24 12:31:09,010 fail2ban.actions: WARNING [ssh-iptables] Ban 66.85.142.166
2012-05-24 12:33:16,075 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 82.114.94.6
2012-05-24 12:36:31,090 fail2ban.actions: WARNING [postfix-tcpwrapper] Ban 101.99.12.1

13.5.12

DeepWeb - Onion, I2p, etc - Mitos y realidades...


a medida q internet se vuelve cada vez mas comercial y vigilada crecen (y se ponen de moda) las redes encriptadas donde es posible compartir el contenido q nos prohiben las grandes corporaciones y gobiernos. hay (siempre la hubo) una gran parte de internet q permanece invisible para el comun de la gente, no solo en estas redes sino en la gran cantidad de webs q los buscadores no indexan, ya sea x cuestiones tecnicas, legales o muchas otras. todo esto se engloba con el nombre de "deep web".



la web profunda...


hay muchisima informacion q no es accesible x medio de una busqueda sin necesidad de q este encriptada u oculta. los motores de busqueda se dividen en dos tipos, directorios y crawlers, los 1eros son armados por gente real que revisa y agrega las paginas (yahoo, open directory, etc), los 2dos (google, altavista, etc) se manejan x medio de bots q visitan las paginas, leen su contenido y lo agregan (o no) a la base de datos del buscador.

los crawlers indexan paginas en base a parametros q pueden ser bastante utiles, pero si estamos buscando algo mas o menos raro, q no tenga un interes economico o general y este en algun dominio perdido, es muy probable q no salga en una busqueda... eso no quiere decir q no exista. asi tambien cualquier webmaster puede editar su robots.txt ordenandole a los bots q no indexen la web o simplemente proteger el contenido con passwords para q acceda solo cierta gente. se estima q el total accesible x medio de google es de entre el 40 y 70% del total de la red "clasica".

...digo "clasica" xq el contenido mas "heavy" se aloja en redes anonimas donde es muchisimo mas dificil (nunca imposible) rastrear el origen (y el destino) de las cosas. imaginemos un entorno donde tanto los clientes como los servers se mueven en redes encriptadas, donde no es tan facil para la ley saber quien, como, donde y cuando alguien hace algo. donde todo es valido, util, inutil, interesante, divertido, aburrido,  fuera de la ley... en fin, casi como en la epoca de las bbs, donde el contenido dependia solo del criterio del admin, y el q queria (y lo dejaban) entraba, y el q no se iba a otro lado.

el unico problema es q tanta libertad alienta a todo tipo de delincuentes a usar estas redes como medio para poner en practica sus actividades. alli podemos encontrar "hackers" x dinero, hitmans internacionales, credenciales y pasaportes falsificados de todo tipo, y los siempre infaltables pedofilos entre mucha otra "fauna"... hasta hay webs con experimentos en humanos (reales o no pero ahi estan)... todo esto x supuesto tambien lleno de estafas en todas sus variantes q se realizan como toda transaccion interna con "bitcoins", la moneda oficial. eso no quita q gran parte del contenido sea perfectamente valido, podemos encontrar grandes librerias repletas de titulos bastante interesantes, informacion de todo tipo, hacking, electronica, servicios anonimos de correo, chat, storage y lo q se les ocurra...

toda esta diversidad de contenido convive sin problemas, el q no quiere ver algo simplemente no lo mira. el tema ya esta muy debatido y mas alla de la imposibilidad tecnica de acabar con toda la basura, es muy cierto algo q lei una vez x la red i2p... no puede haber libertad de expresion solo para cierto tipo de expresion (you cannot provide free speech "for only some speech"), aunque no nos guste la libertad es para todos o para nadie.


redes anonimas


las mas difundidas son la red i2p (invisible internet protocol (ii=i2)) y tor (onionland), ambas son redes q proveen anonimidad utilizando un sistema de tuneles para ocultar la informacion.


la red tor es ampliamente usada para navegacion anonima pero no es tan conocida esta otra parte a la q podemos acceder sin problemas una vez dentro. se encriptan los paquetes en tantos layers como servers forman el tunel (de ahi la famosa cebolla) y cada uno solamente es capaz de desencriptar el q le corresponde, de manera q solo conoce los servers proximo y anterior.


la i2p es algo mas nueva y esta orientada a proveer mas anonimato en el sentido del hosting. las dos tienen sus pro y sus contras, tor esta hecho en C mientras q i2p corre en java, lo q la hace mas pesada. por otra parte la api de i2p esta especialmente creada para anonimidad, mientras q tor simplemente usa socks, ademas de q los tuneles tienen menos vida q en este ultimo.


como acceder


no voy a hacer un paso-a-paso xq se supone q el q quiere entrar tiene algun conocimiento minimo... y si no lo tiene lo lamento, no quiero alentar simples delincuentes a expandir sus horizontes.

para acceder a onionland simplemente tenemos q tener instalado tor y la extension torbutton para firefox, o , mas facil todavia, descargar el "tor bundle" q ya viene con una version modificada de firefox, tor, vidalia y todo listo para usar. en la entrada anterior hable bastante del tema tor:

http://locvtvs.blogspot.com.ar/2012/03/privacidad-en-internet-tor-privoxy.html

para instalar i2p se van a la pagina:

http://www.i2p2.de/download

descargan el jar, lo ejecutan como cualquier otro con:

# java -jar i2pinstall_xx.xx.jar

y lo instalan. despues solo hay q lanzarlo desde la consola con:

# i2p-router start

lo cual levanta el server y abre en el browser la pantalla de bienvenida:

http://127.0.0.1:7657/home

desde ahi podemos ir a la consola, el addressbook, y muchas otras configuraciones ademas de links para algunos "eepsites" de interes. asi como en la red tor los sites se llaman "onions" (.onion), en i2p se llaman "eepsites".

es necesario configurar el proxy en localhost:4444 y, aunque no hace falta en las ultimas versiones, puede mejorar la performance forwardear el puerto 8887 hacia la maquina q corre el server.

en general la red i2p es un poco mas "limpia" que la onion aunque hay porquerias en los dos lados. la mayoria del tiempo hay q tomarse un buen tiempo explorando para encontrar cosas interesantes pero a veces vale la pena. hay tambien algunos foros con buena info pero hay q saber encontrarlos y en muchos la entrada no es libre.

ahhh... no pienso dar links de nada. adentro hay suficiente informacion como para q se diviertan aprendiendo como funciona todo.


los mitos


al ver ultimamente users de "taringa" (xD) en algunos chans en castellano busque un poco en google y vi un par de tutos de como entrar a la onion hosteados en esa web. x supuesto, como toda la info de ahi son copy/paste de algun lado q pone alguien q no sabe cuantos bits entran en un byte, pero algunas de sus mentes mas iluminadas fueron capaces de bajar el bundle y entrar.

obviamente no llegan muy lejos y se aburren enseguida. uno x ahi decia q como no entendia ingles no servia para nada xq la mayoria del contenido esta en ese idioma, otro se quejaba xq no entendia nada, otro q ponia "aguante racing"... trolls, como se les dice x ahi. duran 2 dias con suerte...

toda esa gente llega porque ve esos graficos del iceberg donde sale la punta como "la web visible" y el resto (gigantesco) con las redes encriptadas, super encriptadas, vpns, etc. y se imaginan q estan en una pelicula a punto de loguearse en una red donde va a salir en el index de la pagina de bienvenida el link de como armar una bomba atomica con pasta de dientes y detergente abajo del de las passwords de root de la nasa. el iceberg no existe, la mayoria del contenido es basura y todo es un kaos... en resumen la informacion q quieren puede q este ahi, pero no basta con instalar tor para verla.

x suerte el sistema mismo se encarga de hacer desaparecer a los "curiosos" y/o trolls, el usuario medio/bajo de la deepweb tiene el nivel de un usuario medio/alto de la web comun x lo q los lugares medianamente especializados dejan practicamente fuera al no-iniciado. ademas el manejo no es para nada amigable para el que esta acostumbrado usar el facebook desde su windows7 q tambien queda practicamente fuera tanto x imposibilidad tecnica como x desinteres x el contenido.

el aspecto gral es el de la internet de los 90's, onda "geocities", si bien hay algunas webs con algun sistema mas "moderno", tipo algun wordpress o vbulletin, no es lo q mas abunda. ni le importa a nadie tampoco, a mi x lo menos lo q me interesa es el contenido y no los flashes de colores.

x otra parte nadie ayuda mucho a nadie adentro cuando recien llega, asi q no se asombren si preguntan algo demasiado basico y nadie les contesta o se les mueren de risa con suerte, es completamente normal.


der Epilog...


i2p y onionland son las mas populares actualmente pero existen otras redes como la antigua freenet o la gnunet ademas de nuevos desarrollos como la cjdns. tal vez en el futuro sea la unica forma de acceder a contenido tan normal hoy en internet como descargas de peliculas, musica o software. se pueden bajar anonimamente torrents o e2k con cualquiera de estos protocolos ademas de los links directos.

los q estan pensando en usar esto para alguna forma de delito siempre recuerden q la anonimidad nunca es total, si alguien tiene los suficientes recursos los puede localizar cuando quiera. los curiosos tengan cuidado con lo q hacen y de quien se fian. traten de navegar con un browser distinto al q usan normalmente (o mejor otro usuario solo x seguridad) y no den datos personales... bah, no deberian hacerlo en ninguna web... no lo sabian?