Tienda especializada en la videoconsola Nintendo DS

 
Mar
28
Archivado en la categoria Debian, Sec-Info, Ubuntu el dia 28-Marzo-2008

Hace ya algunos años que tengo servidores Web online las 24 horas del día en mi casa ofreciendo servicios hacia Internet los cuales necesitan un nombre de usuario y un password para poder acceder a ellos como pueden ser el SSH o el FTP. He recibido todo tipo de ataques de algunos indeseables pero el mas frecuente es el ataque por fuerza bruta que viene a ser el uso de una lista de nombres tipo diccionario. Han habido días que han estado probando una y otra vez con una lista interminable de nombres haber si coincidían con el password de súper usuario root para hacerse con el servidor por el puerto del SSH.

Hasta el día de hoy los he ido bloqueando de diferentes modos pero el que os voy a explicar esta vez es el mejor que he encontrado contra este tipo de amenazas. El manual que podéis leer a continuación es aplicable en las distribuciones Linux Debian y Linux Ubuntu ya que han sido las dos en las que he probado esta técnica siendo correcta su instalación y configuración.

Este manual es aplicable a cualquier ordenador que ofrezca algún tipo de servicio hacia Internet y quieras protegerlo de un modo cómodo, seguro y funcional.

La aplicación que vamos a usar para protegernos se llama Fail2Ban y se va a encargar de hacer de guardián las 24 horas del día bloqueando a todo aquel que tenga un numero de intentos fallidos de login en alguno de nuestros servicios. Vamos con su instalación …

Ejecutamos una Terminal y nos logeamos como súper usuario ( root ) con el comando su, a continuación lo instalamos con …

apt-get install fail2ban

Ahora vamos a renombrar el fichero de configuración jail.conf por jail.confOLD ya que este mismo nos puede servir como referencia aunque mas adelante os explicare como me lo he configurado yo ;)

mv /etc/fail2ban/jail.conf /etc/fail2ban/jail.confOLD

Como podemos ver en el interior de el archivo jail.confOLD, ya hay varias opciones editadas por defecto y solo están a la espera de ser editadas para ser activadas. A continuación os voy a exponer cual es mi configuración para que os sirva como ejemplo.

Creamos un nuevo jail.conf para asignarle nuestras propias reglas …

vi /etc/fail2ban/jail.conf

Especificando un poco sobre el fichero de configuración …..

ignoreip : IPs de nuestra área local que queremos que se haga la vista gorda en caso de equivocación.
bantime : Tiempo que el usuario que fallo el logeo se quedara sin poder acceder al servicio especificado en segundos.
maxretry : Numero de intentos de logeo.
backend : Permite de un modo o otro la escritura de ficheros log. ( Yo estoy en Debian 4.0 y solo me funciona con la opción polling )
destemail : Dirección de correo donde nos enviara las alertas.
action : Forma en que iptables aplica sus reglas.
mail-whois-lines : Se especifica que queremos que nos envié al correo en caso de intrusión.

Esas lineas explican la configuración básica de el fichero, a continuación vamos a ver un ejemplo de las celdas que creamos para cada servicio …

[ssh] : Tomare ssh como ejemplo pero esta es una linea que da igual lo que pongamos, ya que no afecta a la configuración.
enable : Podemos introducir true para activarlo y false para desactivarlo.
port : Nombre del servicio relacionado con el puerto.
filter : Nombre del archivo .conf ubicado en el subdirectorio /etc/fail2ban/filter.d, este va relacionado con algún filtro ya creado.
logpath : Ruta donde se ubica el fichero log donde se almacena toda la información de el servicio en cuestión.
maxretry : Numero de intentos fallidos, aquí podemos especificar un carácter diferente para cada celda que creemos.
findtime : Si alguien prueba x intentos en este periodo de tiempo especificado en segundos se le considera ataque.
Yo voy a proteger a los servicios SSH, FTP, y al WWW que son los que ofrecen mi servidor hacia internet. A cada uno le voy a dar un retardo de 300 segundos que vienen a ser unos 5 minutos para que durante ese tiempo el usuario que quiera conectarse no le sea una molestia esta medida de seguridad. 5 minutos es suficiente para evitar el uso malintencionado de un ataque por fuerza bruta o también llamado diccionario de nombres.

Si nos fijamos en mi fichero de configuración veréis un ejemplo de como lo tengo yo montado …

[DEFAULT]

ignoreip = 127.0.0.1 192.168.1.0/24
bantime = 300
maxretry = 3
backend = polling
destemail = root@localhost
action = iptables[name=%(__name__)s, port=%(port)s]
mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s]

[ssh]

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 600

[apache]

enabled = true
port = http
filter = apache-auth
logpath = /var/log/apache*/*access.log
maxretry = 3
findtime = 600

[apache-noscript]

enabled = true
port = http
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 3
findtime = 600

[proftpd]

enabled = true
port = ftp
filter = proftpd
logpath = /var/log/proftpd/proftpd.log
maxretry = 3
findtime = 600

Como podéis ver en la configuración anterior se especifican reglas para cada servicio especificando el puerto, filtro, ruta donde se ubica el fichero log que genera el servicio y el máximo de intentos de logeo. ( Verifica en tu PC que las rutas son correctas )

Una vez editado este fichero de configuración salimos y guardamos con la tecla ESC y :wq! . A continuación ejecutamos nuestro guardián con …

fail2ban-client start

Y veremos algo así …

2008-03-26 14:19:16,700 fail2ban.server : INFO Starting Fail2ban

Si lo configuramos correctamente solo veremos esta linea, si no veremos alguna linea tipo Warning. ( ATENCIÓN : Ella siempre nos especifica el problema que tenemos en el fichero fail.conf )

Este manual a sido aplicado al servidor Web con Linux Debian que hace unos días publique. Si lo tienes montado quizás te interese aplicarle un poco de seguridad ante esta pequeña molestia que tarde o temprano todos tenemos alguna vez en la vida aunque no nos demos cuenta.

Si queréis ver que tal andamos de bloqueos podéis ver el fichero fail2ban.log que se ubica en la ruta /var/log donde se guardan todos los bloqueos, ips, fecha y hora de quien nos está atacando. Yo lo he probado localmente para ver que tal funciona y aquí tenemos el resultado …

Para mas información sobre el tema podéis visitar la web oficial Fail2ban.org donde tienen toda la documentación oficial sobre el programa en cuestión.

Ahora solo me queda irme a dormir tranquilo y mañana veré en mi correo que tal ando de intentos de logeo fallidos :D

Creative Commons License
www.forat.info sitio bajo licencia Creative Commons.

Articulos relacionados

Articulos publicados en la Factoria de Blogs


Comentarios:

[...] Como proteger tu servidor Linux de ataques por fuerza brutawww.forat.info/2008/03/28/como-proteger-tu-servidor-linux-de… por glory hace pocos segundos [...]


FaQ 28th Marzo, 2008 a las 3:33

es una buena opcion pero tambien hay otra q no necesita de instalar software.

“PermitRoot Login no” en el archivo/etc/ssh/sshd_confi g y listo, no se puede logear con el usuario de root, para eso hay q conectarse con un usuario y hacer SU, o SUDO (como en ubuntu).

con eso se puede evitar ataques de fuerza bruta, siempre y cuando tu nombre de usuario no sea “FORAT” y entonces hagan el ataque de fuerza bruta a ese usuario, y luego de entrar hacen el de fuerza bruta con el comando su… etc :P

y si usas PAM se puede limitar el horario en el que los usuarios se conectan, y eso se puede definir individual mente para cada usuario. Pero creo que no te sirve en tu caso


pacopaco 28th Marzo, 2008 a las 8:50

“Han habido dias…”
:-)

Y luego hay un “haber si coinciden” que creo que es “a ver”, aunque no estoy seguro.


magarto 28th Marzo, 2008 a las 16:04

Otra vez más… menuda currada.

Recuerda que serás mi punto de referencia en cuanto monte un servidor ajena a localhost :P


kike50 28th Marzo, 2008 a las 17:34

Buenísimo, que facil nos haces la vida a quienes intentamos meternos en este mundillo tan complicado ,
Gracias y otra vez Gracias.


N0xTrUm 28th Marzo, 2008 a las 18:18

Tio, día a día te superas en tus manuales y los de seguridad, siempre son agradecido s ;)


sepuke 28th Marzo, 2008 a las 19:16

me ha gustado, no conocia este programita y ya forma parte de mi server, que estaba hasta las narices de los logs kilometric os del ssh y de meter las ips a mano en el hosts.deny xd,, pondre un link en mi blog a este articulo sino te importa :P


sepuke 28th Marzo, 2008 a las 20:17

he tenido un problemill a al activar el noescript me he baneado yo mismo de mi servidor xd,,, no se yo si es buena idea activar eso ya que mucha gente usa ese pluguin, con esto afirmo que el programa funciona que te cagas vamos xd


forat 28th Marzo, 2008 a las 23:18

FAQ esta muy bien esa opción aunque yo no tengo el logeo desactivad o de root por ssh pq me conecto habitualme nte desde otras maquinas de mi red y bueno me es mas cómodo así, aunque es una buena idea para poner una traba. ;)

Y limitar el horario buff nunca se cuando voy a tener un rato al dia que me pueda conectar aunque sea con mi PDA y jugar un ratón con mi server … Gracias de todos modos, han sido unas buenas aportacion es. ;)

PacoPaco nunca se sospecha de nadie hasta que se tiene una prueba y yo desde ayer que active Fail2ban tengo ya alguna prueba ;)

Magarto haber si te animas, que ya tengo ganas de ver lo que montas en el cuando lo tengas online !! Si necesitas un cable ya sabes ;)

Kike50 es un placer aunque el tiempo me come y no puedo dedicar lo que me gustaría a este mundo :)

Notrum gracias tío, a mi también me gustan los how to de seguridad aunque publicar publico pocos pero mas que nada es porque necesito algún tiempo para investigar sobre el tema y voy tan justo que buffffff en fin poco a poco conseguire mos un entorno de lo mas seguro para todos ;)

Sepuke todas las ayudas a que mis manuales los vea la mas gente posible son pocas. Gracias tío ;) y si funciona que te cagaaaaaaa aaaaaaaaaa aaaaasssss sssssssss

Saludos a todos pipooooooo l


kike50 29th Marzo, 2008 a las 10:52

Forat, si puedes, dime solo si se puede instalar sin autoarranq ue del cd-rom, lo demas ya me lo busco yo. Gracias


Tus Feeds Semana X 30th Marzo, 2008 a las 11:09

[...] Forat: protege tu servidor Linux de ataques de fuerza bruta. [...]


Acort 31st Marzo, 2008 a las 10:19

Yo tenía muchos intentos de ataque al servidor ssh, y también instalé el fail2ban, pero simplement e con cambiar el puerto de escucha del ssh pasé de tener cientos de ataques al día, a casi ninguno.
Yo recomendar ía cambiar primero el puerto y luego usar el fail2ban, porque recuerda que aunque el fail2ban te ayuda a proteger contra un ataque por fuerza bruta, sigues siendo vulnerabla ante un ataque de denegación de servicio.

Un saludo.


forat 1st Abril, 2008 a las 3:12

Kike50 no entiendo tu pregunta man !!!

Acort buen apunte lo de cambiar el puerto para protegerno s de escaneos masivos al puerto 22.

Saludos !!


Jonanq 1st Abril, 2008 a las 22:05

Gracias una vez mas forat con tus manuales me sale todo a la primera :) ,ya tengo el servidor en marcha jonanq.sytes.net pero todavía no hay nada subido.


makineroes 2nd Abril, 2008 a las 9:42

muy bueno este tutorial,como todos los que haces,a la primera,aunque no paresca,tengo todos los pasos hechos,lo unico que me falla es entrar desde fuera a mi servidor.


Enrique 4th Abril, 2008 a las 1:35

Pues si! buenísimo… una cosa solo… ¿como cambio el puerto al SSH? jejeje


juan Manuel 5th Abril, 2008 a las 19:07

hola comoe stas muy bueno la verdad me vino de 10 ya que me interesa mucho este tema de todo lo que es seguirdad ahora mi pregunta es posible mostrar este archivo log mediante web, ya que segui el manula de como armar un server web en debian bueno me interesari a poner el archivo log de fail2ban pero que se vea entrando a http://www.mipagina.com/archivolog defail2ban no se si me explico por ahi no me explico bien si exciste esta posibiliad como seria desde ya agradesco todo lo que pones y te felicito por el Blog. saludos pinguinos


FaQ 21st Abril, 2008 a las 1:27

FORAT: Ponete en contacto con el autor del siguiente blog, porque te copió todo un post entero y después citó tu fuente: Esto está mal, debería haber citado solo alguna parte, o escribir “En el blog de FORAT…” porque al copiar y pegar todo el contenido Google te penaliza, ya que busca que no haya contenido duplicado.
Te dejo la URL:

http://braianet.blogspot.com/2.....ontra.html

Saludos


forat 21st Abril, 2008 a las 2:00

Si FaQ la verdad es que me entero rápido de quien me copia los artículos. Hay muchos Blog que incluso ni citan la fuente de donde lo sacaron, es una lastima que la gente te copie y pegue todo mi trabajo en su Blog atribuyéndose a ellos mismos los méritos.

Otros como este copian y pegan completame nte el articulo y me citan como autor del mismo.

Lo correcto seria redactar algo sobre el articulo y enlazarlo o simplement e copiar y pegar el principio de tal citando al autor pero la gente hace lo que quiere y lo mejor es pasar de ellos y apuntarte los malos para cuando algún día pidan algo ;)

Por lo general este tipo de blogs que copian y pegan el contenido completo de otros blogs en el suyo no suelen llegar muy lejos ya que google primero me indexo a mi y por suerte si a alguien le atribuye google el articulo es a mi, los demás los toma como contenido duplicado y les perjudica a ellos y no a mi. :)

Gracias por avisar FaQ pero la verdad es que no se puede hacer nada que no sea meter este tema por vía legal ya que mi Blog contiene una licencia creative commons que parece en algunos casos que la gente no sabe que es.

Saludos man !!!


braianet 21st Abril, 2008 a las 22:48

Pido disculpas por la copia, lo hice para poder recordar y aprender, así no tengo que estar visitando miles de paginas buscando información, no tengo problemas en sacarlo, además si a alguien le interesa el artículo va a ingresar a tu blog por que puse la fuente, mi intención nunca fué atribuirme el artículo. No hace mucho estoy con mi blog y puedo equivocarm e porque no lo sé todo. Además si FAQ se gastó el tiempo en salir a gritar, hubiera por lo menos avisarme que eso no estaba bien. Y otra cosa “Google penaliza el contenido
copiado o duplicado en otros sitios web si es que estos NO tienen un enlace hacia la fuente, identifica ndo como el original a aquel post o artículo más antiguo en su base de datos”. Yo puse la fuente, pero bue ya esta. Saludos y FAQ mejor las cosas se arreglan en privado porque las personas se pueden equivocar, o hablarías mal de una persona sin conocerla. y la verdad lo que dijo forat sobre: “lo mejor es pasar de ellos y apuntarte los malos para cuando algún día pidan algo” no me cayó nada bien, “malos”, “pedir algo”, allá utds con sus artículos, tanto rencor van a tener…chau.


forat 22nd Abril, 2008 a las 0:33

Braianet, disculpas aceptadas !!! No hay problema tal y como lo hiciste tu, anteriorme nte hablaba de los que copian y pegan atribuyéndose el trabajo a ellos mismos.

Lo correcto seria citar el articulo con una explicación pero cada uno hace lo que quiere.

AAAAAAAA y respecto a “lo mejor es pasar de ellos y apuntarte los malos para cuando algún día pidan algo”

jajajaja como se nota que no me conoces man !!!

La lastima es que el texto no puede transmitir tonos de voz si no no te lo hubieras tomado a mal ;)


sunbqto 26th Abril, 2008 a las 16:28

Se que muchos divagamos cuando escuchamos IP-Tables, pero ahora es muy facil con el uso del front Shorewall, Se los recomiendo para reforzar la seguridad del Servidor WEB, aun mejor si le agrega una segunda interface de red.

Aca les dejo un buen link:
http://com-sl.org/staticpage s/index.php?page=config-shorewall

Forat, lo has probado?, antes de ver este articulo ya lo tenia medio configurad o


rufus 1st Mayo, 2008 a las 23:24

No tengo ningun servidor, pero en el caso de que lo tuviera me serviria el ipcop que tengo en otra makina como medida de protecion mejor que esta que comentas???gracias.


josemiguel 27th Julio, 2008 a las 12:35

hola forat e seguido este manual como me indicaste y al iniciar el fail2ban-client me da el siguiente mensaje:

***@********:~$ fail2ban-client start
2008-07-27 12:13:06,441 fail2ban.server : INFO Starting Fail2ban v0.8.2
2008-07-27 12:13:06,442 fail2ban.server : ERROR Unable to create PID file: [Errno 2] No such file or directory: ‘/var/run/fail2ban/fail2ban.pid’
ERROR Could not start server. Maybe an old socket file is still present. Try to remove /var/run/fail2ban/fail2ban.sock. If you used fail2ban-client to start the server, adding the -x option will do it
***@********:~$

lo de -x e probado y nada sigue igual,
seguire buscando a ver como lo arreglo, si tu sabes como hacerlo ya me diras cosas
por cierto lo del puerto 22 ya esta cerrado, mejor asi

un saludo a todos!!!


Albertofi 27th Agosto, 2008 a las 7:35

tengo el mismo problema que jose miguel, a ver si se puede solucionar . Gracias


NESTOR 1st Octubre, 2008 a las 5:07

tengo un problema muy similar, al de josemiguel , tengo ubuntu 8.04 server hago todo lo que dice en el manual pero cuando voy a ejecutar fail2ban me aparece este error.

nestor@ubuntuserv er:~$ sudo fail2ban-client start
[sudo]password for nestor:
2008-10-01 04:37:45,722 fail2ban.server : INFO Starting Fail2ban v0.8.2
2008-10-01 04:37:45,722 fail2ban.server : ERROR Unable to create PID file:[errno 2]No surch file or directory: `/var/run/fail2ban/fail2ban.pid´
ERROR Could not start server. Maybe and old socket fail is still present. Try to remove /var/run/fail2ban/fail2ban.sock. if you used fail2ban client to start the server, adding the -x option will do it
asi que creo un directorio
sudo mkdir /var/run/fail2ban

ejecuto de nuevo

sudo fail2ban-client start

y me ejecuta bien pero cuando reinicio mi equipo se borra el directorio /var/run/fail2ban
y tengo que crearlo de nuevo y activar

sudo fail2ban-client start

si lo reinicio me pasa lo mismo no se que es lo que pasa te agradeceri a si me puedes ayudar.


Moan 8th Octubre, 2008 a las 1:14

Muy bueno el tutorial, voy a ver si instalo el programita en mi servidor…

http://www.heliopolis .tk/


[...] quien quiera jugar con vuestro servidor bloqueando los ataques por fuerza bruta que puedan haceros. Aquí os dejo un manual detallado sobre como hacerlo. Recomendad o pero no necesario para continuar con el montaje del servidor en Linux Ubuntu [...]


daviqui 5th Enero, 2009 a las 4:24

2008-07-27 12:13:06,441 fail2ban.server : INFO Starting Fail2ban v0.8.2
2008-07-27 12:13:06,442 fail2ban.server : ERROR Unable to create PID file: [Errno 2] No such file or directory: ‘/var/run/fail2ban/fail2ban.pid’
Forat, perdona pero no hay forma de que esto me funcione con el ubuntu server, tambien me salen estos errores, necesitari a una ayudita por favor. gracias
ERROR Could not start server. Maybe an old socket file is still present. Try to remove /var/run/fail2ban/fail2ban.sock. If you used fail2ban-client to start the server, adding the -x option will do it


daviqui 9th Enero, 2009 a las 5:54

Hola buenas, tengo el servidor funcionand o y va de perlas, el problema es con el Fail2ban, no hay forma de que me funcione y me esta dando todo tipo de errores, si alguien lo ha instalado y le esta funcionand o, me gustaria que me ayudara, porque con el manual creo que lo hago mal, o no se interpreta rlo. Gracias por si alguien me contesta


Jose 1st Febrero, 2009 a las 1:28

Bueno, Forat, primero mi enhorabuen a por los articulos sobrel servidor, nuenisimo. Soy muy nuevo en Linux y una cosa que no entiendo es que si al instalar soy un usuario y le doy un password, y a mysql tambien, cuando ejecuto el comando “su”, por qué no soy root. En otras distribuci ones puedes asignar un password a root pero en esta no. Es que cuando uso “vi” me dice que debo ser root. Alguien me ayuda con esto? Gracias.


juanjava 20th Febrero, 2009 a las 23:58

felicidade s forat vengo siguiendo tus manuales y me han servido de mucho, ojala sigas asi y puedas actualizar los, y con respecto a este tengo una duda con el archivo jail.conf que pasa con las secciones [apache-overflows]
[postfix]
[named-refused-udp]
[named-refused-tcp]
por ejemplo la de apache no es importante y donde puedo ver mas respecto a esto, MIL GRACIAS


juanjava 21st Febrero, 2009 a las 1:00

Nuevamente que tal forat mira lo que me sale en el archivo /var/log/fail2ban.log
2009-02-20 17:13:56,294 fail2ban.actions.action: ERROR iptables -N fail2ban-apache
iptables -A fail2ban-apache -j RETURN
iptables -I INPUT -p tcp –dport http -j fail2ban-apache returned 400
2009-02-20 17:13:56,295 fail2ban.jail : INFO Jail ’ssh’ started
2009-02-20 17:13:56,351 fail2ban.actions.action: ERROR iptables -N fail2ban-proftpd
iptables -A fail2ban-proftpd -j RETURN
iptables -I INPUT -p tcp –dport ftp -j fail2ban-proftpd returned 400
2009-02-20 17:13:56,409 fail2ban.actions.action: ERROR iptables -N fail2ban-apache-noscript
iptables -A fail2ban-apache-noscript -j RETURN
iptables -I INPUT -p tcp –dport http -j fail2ban-apache-noscript returned 400
me podrias ayudar,estoy instalando lo en ubuntu 8.10, GRACIAS, y con respecto a los manuales lei hasta el ultimo cual es la pagina, perotendra s una en español


Leo 13th Marzo, 2009 a las 15:05

Este es mi registro log de fail2ban en /var/log/fail2ban.log
Esto es normal?
http://pastebin.com/m4a884c87


Rambai 26th Agosto, 2009 a las 17:22

amigo, he estado leyendo tu aporte, mas sin embargo tengo una peke duda, lo que he logrado ver es que tu estas configuran do para apache, pero si tengo varios servicio, por ejemplo, ssh,telnet, ftp, samba, alguno servidor de correos electronic os, digo esos como los agregaria al archivo de configurac ion??????


Hexodo 4th Diciembre, 2009 a las 22:00

Hola Ferart pues estan geniales tus tutos, me han servido mucho para ir montando mi servidor, en realidad comence instalando el ubuntu server para configurar lo como proxy pero al ver tus tutoriales me dio curiosidad configurar el servicio de LAMP.
Y al pasar a este tema del fail2ban tuve problemas al querer iniciar el servicio me dice:

WARNING ´findtime´not defined in ´varios servicios´

INFO starting fail2ban
ERROR enable tu create PID File (Eroor 13) Permision denied

Una parte la solucione eliminando un archivo fail2ban.sock

pero me sigue marcando todos los warning del findtime

Podrias decirme como solucionar este problema, te lo agradecere bastante