Restringir acceso ftp (ip-tiempo)

Shalauras

Buenas,

No se realmente como enfocar el tema del post, asi que pido disculpas si es poco comprensible.
Os cuento, a ver si me podeis echar una mano con este nuevo "jeroglifico". Vereis, en el trabajo hay veces que ciertas Ip's intentan el acceso bruto a la cuenta de FTP con el fin de entrar, para ello logean 200 veces seguidas cn distintos usuarios (administrator, root, apache, mysql...) siempre da fail al logeo, ya que son password robustas, pero claro, todo eso le afecta al caudal de la empresa y se ve afectada por dichos ataques. El sistema de FTP que usamos es proftpd, y mi pregunta es... hay alguna forma de restringri que una IP solo pueda intentar acceder 3 veces por cada 10min? (por ejemplo..)
He estado viendo las opcione del proftpd pero no vi ninguna como la que pido, hay una que es MaxClientsPerHost pero no creo que eso cumpla mi funcion. Tambien se que proftpd interactua cn xinetd, y que quizas se podría hacer algo ahi, pero realmente no se muy bien como hacerlo, si alguno pudiera guiarme un poco, mis agradecimientos.

Un saludo y gracias.

maRc

Si es posible, utiliza siempre un puerto no estandar, así acabarás con ese tipo de ataques por fuerza bruta.

En un curso de seguridad al que asistí, trataban este tema. Le acabo de pedir la documentación a un amigo, mañana te digo algo más. Por si quieres buscar, me suena que era con la utilidad portsentry.

Shalauras

Si, eso es cierto que es asi y barajé la idea tambien, pero .. los clientes tendrian que cambiar algo de su configuración?

Gracias

maRc

Claro, deberán decir en que otro puerto está escuchando el servidor.

Shalauras

Ese es el principal escoyo, hay muchos clientes y no es faci localizarlos y mucho menso que lo cambien, que se supone que no entienden de ordenadores para cambiar el puerto de escucha de un servicio en concreto.

maRc

Aquí tienes el curso, está bastante completita, 93 páginas ;)

http://rapidshare.com/files/121782576/seguridad_linux.pdf.html

Shalauras

Gracias, ya contaré que tal la experiencia!

AcidNos

#2 cambiando el puerto a uno no standard no soluciona el problema, ya que un puerto a la escucha es facil de localizar. El portsentry es un IDS bastante bueno y si, con eso podria solucionar el problema, pero el que pongo mas abajo, es mas especifico para lo que el quiere.

De hecho, antes de hablar con el, le recomende el Portsentry o el Snort (AIDE tambien le recomende con otros fines de cara al servidor). Despues de dejar de hablar con el, para no variar, me entro la curiosidad y me puse a buscar por google, y el fail2ban seguramente sea la eleccion mas acertada.

Fail2ban, al de X intentos fallidos, bloquea la IP actualizando IP Tables. Deberia estar en los repositorios de casi cualquier distribucion.

Para mas informacion: http://www.fail2ban.org/wiki/index.php/FAQ_spanish

A

fail2ban está muy bien.

Yo lo uso en un servidor que tengo por aquí, por si las flies.

Básicamente, configurando las primeras líneas en /etc/fail2ban/jail.conf, puedes establecer la configuración del baneo.
Estableces unas ip's seguras, sobre las que no harás chequeos de login, un número máximo de intentos de login y un tiempo de penalización si se fallan dichos intentos.

Si alguien intenta entrar a tu sistema y ve que cada 5 o 10 intentos de login, por fuerza bruta, le pones 10 o 20 minutos de espera se acabará aburriendo. :)

El fichero jail.conf es bastante sencillo y completo (no creo que tengas ninguna duda al leerlo), y configurando la aplicación que deseas "proteger" yo creo que te funcionará bastante bien. Yo lo tengo configurado para el ftp y el ssh. :-)

Por cierto, fail2ban es un demonio, no una aplicación regular. Por lo tanto está situado en /etc/init.d/fail2ban, y se arranca según se inicializa el sistema.

Un saludo.

Shalauras

Bueno, he estado en el trabajo trabajando con el, vaga la redundancia, y me ha gustado la simplicidad, aunque no consegui hacerlo del todo bien, quizás por que intenté configurar el fail2band.conf y ahora que leo la respuesta anterior, es el jail.conf, lo hice a la buya y no me pase a verlo, mañana probaré a ver que tal.
Alkaitz puedes poner tu descripcion del FTP?
Has tenido que configurar algo en iptables?
No sé, realmente me parece un muy buen sistema de seguridad de una empresa y no quiero que se me quede a medias ni hilos pendientes.

Gracias

maRc

#8, bueno, no todos, pero si los ataques que solo buscan en los puertos estándar.

AcidNos

#11 no me refiero a los ataques en si.

Si tu cambias los puertos de un servidor FTP del 21 (aunque tiene mas), al 72 por ejemplo, el puerto 72 queda a la escucha y sin ocultar. Ese puerto es facilmente visible en un escaneo y las aplicaciones de ataque normalmente te piden un puerto y no usan uno standard.

maRc

En un servidor que tengo en mi casa, tenía el SSH puesto en el estandar y me pasaba lo mismo que a #1, tenía cientos de intentos de login. Lo cambié a otro y se acabaron.

Si alguien decide atacarte a ti específicamente, buscarán cualquier puerto abierto, pero muchas veces hay ataques que solo van probando puertos estandar en ip's aleatorias.

AcidNos

#13 en ese caso si, pero ten en cuenta que el caso de #1 es para una empresa, y las empresas son muy golosas.

En su caso, tambien, los clientes no saben, la mayoria, como funciona un FTP ni como cambiar los puertos, asi que el cambiarlos le supondria tener que avisar a cada cliente uno a uno, cosa que yo veo un tanto dificil. Lo mejor es bloquear los intentos de login por fuerza bruta, de esa forma si hay algun atacante especifico, se aburrira de atacar y ser bloqueado al 3er intento.

Shalauras

El "atacante" es conocido por internet, mañana os digo el nombrecito, y siempre es desde una misma IP, pero claro es un boot del 15 y no se cansa de logearse, por eso quiero banear una IP cuando intenta hacerlo mas de 10 veces (por ejemplo)

AcidNos

#15 ya contaras mañana a ver que tal. A ver si consigues configurar el jail.

A

Shalauras,

Si editas el archivo jail.conf, hay una sección de servidores FTP. Yo uso proftp, que tiene su sección propia en [proftpd]. Activas el enable y dices el maxretry de logins erróneos que permites. Pon ahí un 10, que creo que es lo que viene, y así no le complicas la vida a usuarios torpes. Porque alguno hay que se confunde 3 o 4 veces, pero 10 no. :-)

Si tu servidor FTP no está en la lista no sé si existe alguna manera de configurarlo, pero permite 3 o 4 tipos de servidores distintos (además de servidores web, ssh y otros servicios). Mírate el fichero, que es sencillote. :-)

Cuando lo cambies y lo guardes, recuerda reiniciar el demonio fail2ban, pues sino tus cambios no valdrán hasta que se reinicie el sistema.
/etc/init.d/fail2ban restart

Y ya está. :-)

Un saludo

Shalauras

Bueno, la verdad que hoy tuve un dia duro y no pude investigar mas el fail2ban, estuve liao con el nagios y otrs, que para el que no lo sepa, dan muuucho por culo jejeje. Creo que m ha quedado lo suficientemente claro y sabre configurarlo en una maquina y probarlo en esa y a partir de ahi en las demas. Usamos proftpd también, asi que me ha venido de perla tu comentario.
En un fúturo quieren tenerlo centralizado, que desde una misma máquina haga las comprobaciones, pero bueno, eso es algo mas complejo ya que tendria que logearme y probar, pero bueno, el Lunes si puedo, comentaré si lo he conseguido o no aunque suena de perlas....
También se me olvidó mirar el boot que hace los logeos masivos, el Lunes espero tener mejor dia y poder miraoslo para que lo sepais.
Un saludo y gracias.

Shalauras

Bueno, hoy pude probar mas a fondo el fail2ban instalandolo en mi casa e intentando restringir el ssh, pero no consigo que lo haga (el problema esta en el iptables, creo..)
Os pego mi configuración por si podeis echarme una mano.

[ssh-iptables]

enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=root, [email protected]]
logpath = /var/log/secure
maxretry = 2

He iniciado el demonio, me voy a una máquina externa, fallo logeandome mas de 2 veces a mi máquina, pero no banea, después puedo seguir intentando el logeo via SSH :(
Como ya dije, creo q el problema puede ser el iptables, por que hay que añadir algo que no se muy bien como hacerlo....
Aqui una pequeña guia de implementarlo pero vaya, lo he "hecho" y sigue dejandome logear cuantas veces quiera. http://www.the-art-of-web.com/system/fail2ban/
Si alguien lo ha hecho y sabe guiarme, mis agradecimientos.

Un saludo y gracias.

Usuarios habituales