Acabo de iniciar sesión en un servidor GitLab y noté que tenía 18.974 inicios de sesión fallidos desde la última vez que revisé el servidor, casi 5 días. Revisé los Ip y parece que casi todos eran de China e intentaron acceder con SSH y Brute Force. Comencé a bloquear algunos Ip, pero luego me di cuenta de que es una gran pérdida de tiempo y una mejor idea sería bloquear todo el país.
¿Hay alguna forma en que pueda bloquear TODA China o cualquier otro país con iptables?
Encontré algunos artículos en Internet, pero casi todos son scripts de bash. Soy un novato en Linux, así que realmente no entiendo todos esos scripts. Encuentro iptables realmente interesante y quiero aprender más al respecto.
Algunas ideas ? ¡Gracias!
Respuestas:
Usando iptables para identificar automáticamente, y luego bloquear, los malos para ssh pueden hacerse usando el
recent
módulo. El siguiente segmento debe venir después de suESTABLISHED,RELATED
línea genérica :Ahora, el problema reciente (el último año o dos) con China es que se han vuelto muy inteligentes y, a menudo, una vez que se bloquean de una dirección IP, simplemente cambian a otra en la misma subred y continúan. Esto corre el riesgo de quedarse sin entradas de tabla recientes predeterminadas (creo que el valor predeterminado es 200). Superviso esto y luego busco el segmento IP real, y bloqueo permanentemente todo el segmento. En mi caso, no me importa el daño colateral, es decir, bloquear a alguien inocente:
Donde en lo anterior:
Puede obtener la lista completa de direcciones IP para China, o cualquier país, en iptables u otro formato aquí . Sin embargo, la lista es sorprendentemente larga y bastante dinámica. Yo mismo, decidí no bloquear toda la lista.
fuente
Bloque de China usando ipset
No puede agregar manualmente algunos miles de direcciones IP a sus iptables, e incluso hacerlo automáticamente es una mala idea porque puede causar mucha carga de CPU (o eso he leído). En cambio, podemos usar ipset, que está diseñado para este tipo de cosas. ipset maneja grandes listas de direcciones ip; simplemente crea una lista y luego le dice a iptables que use esa lista en una regla.
Nota; Supongo que la totalidad de lo siguiente se hace como root. Ajuste en consecuencia si su sistema está basado en sudo.
Luego, escribí un pequeño script de Bash para hacer todo el trabajo, que deberías poder entender de los comentarios que contiene. Crea un archivo:
Esto es lo que quieres pegar:
Guarda el archivo. Hazlo ejecutable:
Esto aún no ha hecho nada, pero lo hará en un minuto cuando ejecutemos el script. Primero, necesitamos agregar una regla en iptables que se refiera a esta nueva lista de ipset que el script anterior define:
Agregue la siguiente línea:
Guarda el archivo. Para ser claros, mi iptables.firewall.rules completo ahora se ve así:
En este momento, nada ha cambiado con el servidor porque no se han aplicado nuevas reglas; para hacerlo, ejecute el script block-china.sh:
Esto debería mostrar algunos resultados, ya que extrae una nueva lista de IP basadas en chino y luego, después de unos segundos, se completará y lo regresará a un símbolo del sistema.
Para probar si funcionó, ejecute:
Ahora debería ver una nueva regla que bloquea a China: la salida debería verse así:
¡Casi termino! Esto funciona y continuará trabajando en reiniciar. Pero, las direcciones IP cambian y esa lista se volverá obsoleta con el tiempo. Si desea extraer y aplicar una lista actualizada de IP, puede ejecutar nuevamente el script block-china.sh.
También podemos configurar la máquina para que lo haga automáticamente mediante un trabajo cron:
Agregue una línea como esta:
Esto ejecutará /etc/block-china.sh a las 5am todos los días. El usuario que ejecute el script deberá ser root o tener privilegios de root.
fuente
fuente
wget http://www.ipdeny.com/ipblocks/data/aggregated/cn-aggregated.zone
Es posible que desee instalar algo como fail2ban para que bloquee los ips que intentan iniciar sesión en su servidor y fallan.
fuente
Puede usar el módulo geoip para iptables: https://linoxide.com/linux-how-to/block-ips-countries-geoip-addons/
fuente
Que se utiliza para IP2 Lista Firewall para generar iptables para China.
El archivo tiene el siguiente formato. Ejecútelo en el shell y debería estar bloqueando todas las direcciones IP de China.
fuente