Hola, qué tal? ante todo decir que yo no co[…]

descarga inhabilitada :triste

Alguien que me pueda copiar un Attrac Mode 128 y c[…]

Ya terminé de editar Enviado desde el fueg[…]

Sección Unicamente para Tutoriales y Guías
#820
Muy buenas! en este tutorial vamos a instalar Fail2Ban , para poner mas seguridad a nuestra Pi.

Imagen

¿Que es Fail2Ban?
Fail2ban es una herramienta que monitoriza los intentos de login de varios servicios, tales como SSH, FTP, SMTP, HTTP, entre otros; y si encuentra intentos de login fallidos una y otra vez desde una misma IP, Fail2Ban rechazará estos intentos de login bloqueando con reglas de iptables a esas IPs que estaban intentando acceder.
Nos puede ser muy util usarlo en nuestro servidor , asi evitando ataques a la fuerza bruta.

Instalando Fail2Ban:

Primero actualizaremos como de costumbre los repositorios , entrando en el terminal SSH de nuestra Pi, pondremos el siguiente comando:
Código: Seleccionar todo
sudo apt-get update
fail1.png
Una vez actualizados, instalaremos Fail2Ban con el comando:
Código: Seleccionar todo
sudo apt-get install fail2ban
fail2.png
Una vez finalizado , instalaremos IpTables, para que haga la función de "Bloquear" la IP junto Fail2Ban, pondremos el comando:
Código: Seleccionar todo
sudo apt-get install iptables
fail3.png
Configurando Fail2Ban:

Ahora vamos a proceder a modificar la configuración de Fail2Ban, el programa YA VIENE CONFIGURADO para la mayoria de servicios, asi que no será muy complicado.
Simplemente debemos cambiar los tiempos de baneo, los intentos fallidos ...etc

Ahora copiaremos el archvo de configuracion por defecto de Fail2Ban como jail.local que sera ejecutado y nos sobreescribira las configuraciones que tengamos en jail.conf , ponemos el siguiente comando en el terminal SSH:
Código: Seleccionar todo
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Y ahora abriremos el archivo copiado con el comando:
Código: Seleccionar todo
nano /etc/fail2ban/jail.local
Buscaremos los parámetros que realmente nos interesan, voy a explicarlos:

Aqui pondremos las direcciónes IP , que NUNCA queremos bloquear, por ejemplo la de nuestra Red Local o Empresa:
Por ejemplo la de mi PC conectado a la misma Red, que usa la IP 192.168.1.20
ignoreip = 127.0.0.1 192.168.1.20
Este parámetro indica el tiempo que queremos bloquear la IP que ha intentado acceder ( en SEGUNDOS , por defecto 600 )
bantime = 600
Intentos máximos que tendra el "atacante" antes de ser bloqueado, ( por defecto 5 )
Esto lo modificais a vuestro gusto :)
maxretry = 5
En un principio, con eso bastaria para proteger algunos servicios (Por ejemplo SSH), si por ejemplo, queremos proteger nuestro servidor FTP funcionando por PROFTPD,
Buscaremos las lineas que se encuentran mas abajo de:
#
# JAILS
#
Que en nuestro caso seria utilizando PROFTPD:

[proftpd]

port = ftp,ftp-data,ftps,ftps-data
logpath = %(proftpd_log)s
Para activar la función, tendriamos que añadir estas lineas:
port = ftp,ftp-data,ftps,ftps-data
logpath = /var/log/proftpd/proftpd.log
maxretry = 8
enabled = true
filter = proftpd
logpath = Ruta donde tenemos el "Log" por defecto de Proftpd .
maxretry = Máximos fallos / intentos antes de bloquear
enabled = activamos este servicio en exclusivo
filter = Filtramos por nombre del servicio, en este caso proftpd

Una vez ya tengamos todos los servicios que queremos bloquear configurados a nuestro gusto, podemos guardar cambios
del archivo pulsando estas teclas, en este caso (putty ssh)

Control + X
tecleamos Y
ENTER


Simplemente debemos iniciar el servicio Fail2Ban para empezar a bloquear "atacantes" con el comando :geek:
Código: Seleccionar todo
sudo service fail2ban restart
Espero que os haya servido! y si os ha gustado dar un Like o comentad :mrgreen: :mrgreen:
Un saludo!.
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.
Dragon.Kalos, warnerizo, Gato y 3 usuarios más les gusta esto
#2545
amobra escribió:Gracias Kike , con proftpd va bien , pero ¿y si queiro añadir este servicio a niginx y transmisson? , ¿cuales serian las lineas a configurar?, ¿donde se guardan los logs de esos servicios?.

Gracias crack.
Hola @amobra perdona por la tardanza, para proteger los logs de acceso Nginx ( con usuario y contraseña ) debes añadir lo siguiente marcado en rojo en la ruta de configuración con el comando:
Código: Seleccionar todo
sudo nano /etc/fail2ban/jail.local
[nginx-http-auth]
port = http,https
logpath = %(nginx_error_log)s
enabled = true
action = iptables-multiport[name=NoAuthFailures, port="http,https"]

Y para protegerse de ataques DDOS la mejor configuración que te permite limitar las peticiones por segundo ( te saldría error 503 ), dejando de lado el Fail2BAN, es la siguiente:
Código: Seleccionar todo
sudo nano /etc/nginx/nginx.conf
Dentro del parámetro http { añade lo siguiente:
limit_req_zone $binary_remote_addr zone=app:10m rate=2r/s;
El número marcado en azul serán las peticiones por segundo que queremos establecer.
Guardas los cambios con CONTROL + X , pulsas "Y" seguido de "Enter"

Y por último vas al parámetro de configuración NGINX por defecto de tu web, por defecto:
Código: Seleccionar todo
sudo nano /etc/nginx/sites-enabled/default
Y después de la linea location ~ \.php$ { añadimos esto:
limit_req zone=one burst=5;
Guardas los cambios con CONTROL + X , pulsas "Y" seguido de "Enter" y seguidamente reinicias nginx con:
Código: Seleccionar todo
sudo nginx -s reload
Para proteger Transmission tendré que informarme un poco la verdad, ya que no tengo ni idea 8-)
Si se algo más ya te escribo!! :victoria
#32349
koldomikel escribió:Hola! yo utilizo el apache para mi servidor web, cual seria la config. idonea para tenerlo protegido? he activado todos los q ponia apache pero no se si esta bien echo.
un saludo y gracias.
Buenas tardes, la configuración para Apache sería asi:
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 5
Es muy importante definir la ruta del Log en Apache marcado en rojo , ya que si no está correctamente podría no funcionar.
Para cualquier duda que tengas aqui estamos, un saludo!
#43767
Kike escribió:
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 5
Es muy importante definir la ruta del Log en Apache marcado en rojo , ya que si no está correctamente podría no funcionar.
Para cualquier duda que tengas aqui estamos, un saludo!
en mi caso tengo la nuve de nextcloud junto con mariadb y apache... como puedo ponerlo seguro? he intentado y no me banea... si por ssh y demas pero la nube no me banea la ip cuando falla

saludos y gracias... esta herramienta es fantástica!