Estoy configurando fail2ban para mis instancias EC2, cada una de las cuales tiene diferentes servicios en ejecución. Por lo tanto, estoy configurando las cárceles específicamente para cada servicio. Tengo dos preguntas (para las cuales no pude encontrar respuesta en ningún otro lugar):
- Si fail2ban bloquea una IP debido a una autenticación fallida en un puerto, ¿ese usuario aún podrá ingresar a través de otros puertos abiertos?
- ¿Cómo se compara el bloqueo de puertos específicos con el bloqueo de todos los puertos usando la configuración mencionada aquí? ¿No sería más seguro bloquear todos los puertos abiertos ya que, en última instancia, no quiero que entre el hacker?
Respuesta1
(Suponiendo que el sistema operativo sea Linux)
falla2banEs una herramienta bien hecha, bendecida con un alto nivel de configuración.
En Linux Ubuntu, la configuración está en/etc/fail2ban
Pregunta 1
jail.conf
A menos que cambie la configuración, solo se bloquearán los puertos mencionados para el servicio en particular.
Pregunta 2
También puedes bloquear todos los puertos. Depende del nivel de seguridad que desees, pero bloquear todos los puertos puede tener inconvenientes.
Personalmente prefiero bloquear sólo el puerto del que se ha abusado. Porque
- Si también se abusa de otros puertos (y si se declaran en
jail.conf
), también se bloquearán - algunas direcciones IP son compartidas por toda una empresa o por muchas personas; entonces, al bloquear todos los puertos por un abuso de
ssh
, evitará que todos en esa dirección accedan,http/s
por ejemplo - También podría verse afectado por un bloqueo total. Por ejemplo, comete algunos errores de contraseña al utilizar
ssh
, y no podrá acceder a otro puerto que permitiría un acceso diferente, por ejemplo del proveedor.
Para bloquear más o todos los puertos, puede modificar el jail.conf
archivo.
Algunos de los atributos predeterminados son (en [DEFAULT]
)
# "bantime" is the number of seconds that a host is banned.
bantime = 10m
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 10m
# "maxretry" is the number of failures before a host get banned.
maxretry = 5
# Ports to be banned (Usually should be overridden in a particular jail)
port = 0:65535
es decir, todos los puertos.
Por [sshd]
ejemplo (y todos los servicios) port
se redefine
[sshd]
port = ssh
Simplemente podría comentar la port
línea para volver a los valores predeterminados, pero yo agregaría un comentario y una nueva línea de puerto para facilitar el mantenimiento (otras personas/usted en 3 años)
[sshd]
# 25 Aug 2020 Rohit, block all ports
#port = ssh
port = 0:65535
Cambiar el valor predeterminado
Verás en el action.d
directorio la lista de posibles acciones. El valor predeterminado en jail.conf
,
banaction = iptables-multiport
que también se puede cambiar a
banaction = iptables-allports
eso afectaría a todos los servicios de no redefinirse banaction
.
Reiniciando fail2ban
Luego reinicie el servicio, para systemd
systemctl restart fail2ban.service
o
service fail2ban restart
(Para su información, el filter.d
directorio enumera para cada servicio la forma en quefalla2bandetecta un intento de intrusión)
Consulte también los comentarios a continuación que pueden proporcionar información valiosa.