Protección SSH y FTP contra ataques de contraseña

Detén la fuerza bruta SSH en tus servidores Linux

SSH Protector es un agente Linux ligero que detiene los ataques de fuerza bruta por SSH, SFTP y FTP. Lee el propio registro de autenticación del equipo - journald o auth.log - y, cuando un atacante sigue fallando, banea todo su /24 con una sola regla de nftables que sobrevive a un reinicio. La decisión se toma en el propio servidor, así que la protección sigue funcionando aunque la conexión con el panel no lo haga. La instalación lleva un par de minutos y no requiere configuración.

Instalar con un comando
curl -fsSL https://sshprotector.com/download/installer | sudo sh

La versión gratuita incluye protección completa para un servidor.

Un agente para todas las distribuciones de Linux

Debian · Ubuntu · FedoraRHEL · Alma · Rocky · Alpinex64 · x86 · ARM64uso de CPU casi nulo
00

Instala el agente

Un mismo binario para todos y sin cuenta para descargarlo. Instálalo ahora y conecta el servidor cuando quieras: el agente pide un token de inscripción de tu panel y no protege nada hasta que lo pegues.

Descargar script de instalación

Cualquier Linux moderno con systemd - Debian, Ubuntu, RHEL/CentOS/Alma/Rocky, Fedora - en x86-64 o ARM64. El script instala el mismo servicio y es la opción práctica para un parque de servidores.

01Por qué

Un puerto SSH abierto es atacado las 24 horas

Los bots escanean todo el espacio de direcciones de Internet y prueban contraseñas en cada servidor accesible. Da igual si es una máquina corporativa o un único VPS.

Miles de intentos de inicio de sesión al día
A las pocas horas de estar en línea, un servidor ya recibe intentos de acceso de todo el mundo. Una máquina típica con el puerto SSH expuesto registra miles de inicios de sesión fallidos cada día.
Recursos del servidor desperdiciados
Cada intento cuesta tiempo de CPU, memoria, una escritura en el registro de eventos y tráfico de red. El flujo constante de peticiones de fuerza bruta crea una carga de fondo permanente, ralentiza el servidor e infla los registros.
Basta una contraseña adivinada
Un solo acierto da acceso completo a la máquina: ransomware, robo de datos, envío de spam desde su dirección. Las contraseñas débiles o reutilizadas caen ante los diccionarios en cuestión de días.
Los atacantes pueden bloquear tu cuenta de administrador
Linux (mediante PAM faillock) bloquea una cuenta tras demasiados inicios de sesión fallidos. Al adivinar un nombre de usuario válido, un atacante alcanza ese límite y bloquea al administrador real: una denegación de servicio, sin siquiera adivinar la contraseña.

SSH Protector corta los ataques en el firewall

El agente detecta una serie de inicios de sesión fallidos y bloquea toda la subred del atacante con una regla de nftables. Los paquetes bloqueados se descartan antes de que el sistema gaste nada en ellos: baja la carga de CPU y el ruido en los registros, el servidor va más rápido y los bots nunca reúnen suficientes intentos para adivinar una contraseña.

02Cómo detenerlo

Cómo detener la fuerza bruta SSH en Linux: tres métodos

Tres cambios reducen de verdad lo que llega a sshd. Se suman, y este es el orden en que conviene hacerlos.

  1. 01Autenticarse con claves, no con contraseñas

    Un ataque de adivinación no tiene nada que adivinar en cuanto sshd deja de aceptar contraseñas. Copia primero tu clave, comprueba en una segunda sesión que entras con ella y solo entonces desactiva las contraseñas: en ese orden, para que una errata no te deje fuera.

    # /etc/ssh/sshd_config.d/10-keys-only.conf
    PasswordAuthentication no
    KbdInteractiveAuthentication no
    PermitRootLogin prohibit-password
    Guía completa
  2. 02Reducir qué parte de internet alcanza el puerto

    Sacar sshd del puerto 22 elimina la mayor parte del escaneo no dirigido y no protege de nada más. Limitar el puerto a una VPN o a una lista de direcciones conocidas elimina al atacante en lugar del ruido; haz las dos cosas si el servidor tiene un conjunto fijo de administradores.

    # /etc/ssh/sshd_config.d/20-exposure.conf
    Port 2202
    AllowGroups ssh-admins
    
    # nftables: only the VPN and the office reach it at all
    nft add rule inet filter input tcp dport 2202 \
      ip saddr { 10.8.0.0/24, 203.0.113.7 } accept
    Guía completa
  3. 03Banear el origen antes de que tenga suficientes intentos

    fail2ban es la primera respuesta correcta: lee el registro de autenticación, cuenta los fallos y bloquea la dirección un rato. Sus límites son estructurales: una dirección cada vez, estado que caduca, nada compartido entre equipos y una jail que puede dejar de coincidir en silencio tras un cambio de formato. SSH Protector banea todo el /24 del atacante con una regla de nftables, mantiene el baneo tras reiniciar y comparte con los demás lo que aprendió un servidor protegido.

    # /etc/fail2ban/jail.d/sshd.local
    [sshd]
    enabled  = true
    backend  = systemd
    maxretry = 4
    findtime = 10m
    bantime  = 1h
    Guía completa

Qué cubre una sola regla de subred

Mueve los deslizadores. Esto es aritmética, no un benchmark.

Banear una dirección cada vez

32 reglas de cortafuegos

128 intentos siguen llegando a sshd

Banear todo el /24

1 reglas de cortafuegos

4 intentos siguen llegando a sshd

Un /24 tiene 256 direcciones. Con baneos por dirección, un bot que pasa a la siguiente recupera su cupo cada vez; cuando el baneo cubre el rango, ninguna. Aquí no hay nada medido: es la misma cuenta que hace el agente.

03Cómo funciona

De la descarga a un servidor protegido en minutos

Sin archivos de configuración ni línea de comandos: descargue el instalador, ejecútelo y confirme el aviso de sudo.

  1. Cree una cuenta

    Registro con email o mediante Google/GitHub. No se necesita tarjeta.

  2. Descargue el instalador

    Recibe un instalador personal firmado con su token de acceso ya incorporado.

  3. Ejecútelo en el servidor

    El agente detecta el puerto SSH por sí solo y añade su IP actual a la lista blanca para que no pueda bloquearse a sí mismo.

  4. Listo

    El servidor aparece en línea en el panel en cuestión de segundos y empieza a bloquear atacantes con ajustes predeterminados razonables.

04Funciones

Todo lo necesario para proteger y gestionar sus servidores

Protección contra fuerza bruta como núcleo, ampliada con inteligencia compartida de atacantes, reglas geográficas, acceso temporal y gestión centralizada.

Protección SSH y FTP contra fuerza bruta01

El agente lee los inicios de sesión fallidos del journal de systemd (journald) y de los registros del servidor FTP y bloquea al atacante localmente - al instante, incluso sin conexión con la nube.

Bloquea subredes enteras, no direcciones sueltas02

Los atacantes rotan direcciones dentro de su red. SSH Protector bloquea la subred completa, según datos ASN, con una única regla de firewall consolidada.

Base de datos compartida de atacantes03

Un ataque a un cliente protege a todos: la reputación de las subredes se agrega en toda la plataforma y las peores redes se bloquean antes de que lleguen a usted.

Reglas geográficas04

Permita SSH solo desde los países desde los que realmente trabaja. Todo se evalúa localmente en el agente, así que es rápido y funciona sin conexión.

Acceso temporal05

Mantenga el puerto cerrado por defecto y ábralo para una dirección concreta tras una confirmación por MFA, con temporizador y cierre automático.

Lista blanca y modo estricto06

Las direcciones de confianza y los nombres DNS dinámicos nunca se bloquean. En modo estricto, solo las fuentes de la lista blanca pueden llegar al puerto.

Notificaciones y auditoría07

Picos de bloqueos, un servidor que se desconecta, cambios de configuración - por email, Telegram, Slack o webhook. Cada acción queda registrada en el diario de auditoría.

Un agente ligero08

Un único ejecutable pequeño que funciona como servicio. Unos pocos megabytes de memoria, CPU casi a cero, todas las principales distribuciones y arquitecturas de Linux.

Gestión centralizada09

Lista de servidores, políticas, reversión de versiones, grupos y acciones masivas - todo desde el panel, sin abrir puertos entrantes en sus servidores.

Protección Always-On contra bloqueos10

Garantiza que tu cuenta nunca se bloquee durante un ataque de fuerza bruta: el agente banea a los atacantes antes del umbral de bloqueo de PAM faillock y desbloquea automáticamente las cuentas protegidas (administradores + tu lista). Activado por defecto, en todos los planes.

05Precios

Planes fijos, sin sorpresas por servidor

Free es gratis para siempre, sin tarjeta. Los planes de pago tienen un precio fijo con un número determinado de servidores incluidos.

Free

1 servidor
$0/mes

Protección SSH básica para un servidor.

  • Protección SSH contra fuerza bruta
  • Lista blanca flexible
  • Estadísticas mínimas

Solo

1 servidor
$9/mes

Protección completa para un servidor de producción.

  • Todo lo de Free
  • Protección FTP contra fuerza bruta
  • Estadísticas completas
  • Notificaciones por email
  • Auditoría básica

Pro

PopularHasta 5 servidores
$15/mes

Para equipos y flotas pequeñas de servidores.

  • Todo lo de Solo
  • Lista blanca estricta y grupos
  • Auditoría completa con exportación
  • Estadísticas ampliadas
  • Lista de bloqueo por comportamiento compartida

Enterprise

Hasta 50 servidores
$99/mes

Para empresas con una gran flota de servidores.

  • Todo lo de Pro
  • Roles de administrador y moderador
  • Soporte prioritario
  • Lista de bloqueo por comportamiento compartida

¿Necesitas un servidor más de los que incluye tu plan? Añade servidores de uno en uno por 3 $ al mes cada uno, sin cambiar de plan.

14 días de Pro gratis, sin tarjeta

Regístrate y prueba en tu propio servidor el bloqueo de subredes, las alertas por Telegram, GeoIP y la base de amenazas compartida. Al terminar, la cuenta vuelve sola a Free y la protección sigue funcionando. No se cobra nada y no hay nada que cancelar.

Empezar la prueba gratuita
06Casos

Cuándo proteger un servidor Linux se vuelve realmente necesario

Quince situaciones en las que el acceso remoto a una máquina Linux deja de ser un riesgo teórico y pasa a ser uno diario. Si reconoce su propio servidor en alguna de ellas, sus contraseñas ya se están probando.

0.0.0.0/022 · 21LISTEN 0.0.0.0$sshduptime 412dno consoleone host · always on

Cuándo es necesario proteger un servidor SSH en Linux

El primer grupo trata de la máquina en sí: dónde está, quién llega hasta ella y qué más escucha en ella. Ninguna de estas situaciones supone un error. Son formas corrientes y sensatas de operar un servidor Linux, y todas ellas colocan una petición de contraseña delante de Internet entero.

  1. 01

    SSH es alcanzable desde cualquier sitio y las contraseñas siguen funcionando

    El puerto 22 responde a todas las direcciones del mundo, sin una VPN delante y sin un bastión. Ese es el estado por defecto de una máquina alquilada: el proveedor entrega una dirección pública, el servidor se configura precisamente por SSH y, terminada la instalación, el puerto simplemente se queda donde estaba, normalmente con la autenticación por contraseña todavía activa junto a las claves.

    Rastrear todo el rango IPv4 es cuestión de minutos, no de días. Una dirección recién asignada empieza a recibir intentos de conexión pocas horas después de aparecer en la red, mucho antes de que el servidor tenga nombre, certificado o un solo usuario real. Desde ese momento la máquina responde a desconocidos las veinticuatro horas.

    • Un VPS o instancia en la nube accesible en su dirección pública
    • Un equipo de oficina tras un router, con el puerto 22 redirigido hacia él
    • Un servidor abierto «temporalmente» para una migración y nunca cerrado
    • Una máquina cuya dirección nunca se publicó, pero que igualmente cae dentro de un rango rastreado
  2. 02

    La imagen de la nube trae un nombre de usuario que ya conoce todo el mundo

    Las imágenes de distribuciones y proveedores llegan con una primera cuenta conocida: root en un VPS desnudo, ubuntu en Ubuntu, ec2-user, debian, admin, pi. La mitad del problema de adivinar -encontrar un usuario válido- está resuelta antes de que la máquina termine su primer arranque.

    Por eso un servidor expuesto ve todo el día la misma lista corta de nombres en su registro. El atacante no tiene que averiguar nada: la cuenta es estándar, existe en una gran parte de los hosts Linux de Internet y en muchos de ellos todavía sirve para entrar directamente.

  3. 03

    Un solo VPS alquilado carga con la web, la base de datos y las copias

    Las empresas pequeñas y los proyectos de un solo desarrollador suelen meterlo todo en una máquina: el servidor web, la base de datos, la cola, el volcado nocturno. No hay un segundo host al que pasar ni un administrador dedicado: quien entra para desplegar es quien mantiene la máquina.

    La protección del proveedor no llega hasta aquí. Los alojamientos filtran avalanchas volumétricas de tráfico, no adivinación de contraseñas: unos pocos intentos por segundo desde direcciones que cambian sin parar parecen tráfico ordinario desde el punto de vista de la red, y el departamento de abusos no los verá jamás.

    • No hay margen: ante un compromiso el proyecto no se ralentiza, se detiene
    • Las copias suelen estar en el mismo disco, que es justo con lo que cuenta el ransomware
    • A nadie le pagan por leer auth.log, así que los intentos se acumulan sin verse
  4. 04

    La máquina Linux es un router, un NAS o un aparato que nadie considera un servidor

    Un cortafuegos, un almacenamiento en red, una Raspberry Pi con el software de caja de una tienda, un controlador en una sala técnica, un mini PC bajo una mesa que lanza las copias: todo eso es Linux, todo eso tiene SSH activado, y nada de eso aparece en la lista de servidores de nadie.

    Son precisamente esas máquinas las que se olvidan. Se instalan una vez, siguen funcionando, y entre el día en que se eligió la contraseña y el día en que alguien vuelve a mirarlas pasan años. Mientras tanto, el puerto lleva todo ese tiempo respondiendo a Internet.

  5. 05

    FTP escucha en el mismo host que SSH

    Un servidor Linux rara vez publica un solo servicio. Un punto FTP para intercambiar archivos con un cliente o un diseñador, más SSH para administrar, conviven habitualmente en la misma dirección, y las cuentas de FTP suelen ser más antiguas que todo lo demás en la máquina.

    Cada puerto abierto es una puerta distinta con su propia petición de credenciales, y los atacantes no se especializan. La misma infraestructura de rastreo prueba ambas en sucesión, y la más débil decide el destino de todo el host, porque quien entra por cualquiera de las dos está de pie sobre el mismo sistema operativo.

    • Cuentas FTP creadas una vez para un proveedor y nunca revisadas de nuevo
    • El FTP simple hace viajar las credenciales en claro por la red
    • Una cuenta de subida compartida cuya contraseña conoce media oficina
users triedrootadminubuntudeploypostgrestestpassword:PasswordAuthentication yesfailed9 999

Cuando las cuentas y las claves dejan de estar bajo control

El segundo grupo trata de quién tiene credenciales de la máquina. Claves, cuentas de despliegue, proveedores y contraseñas antiguas se acumulan más deprisa de lo que nadie las revisa, y todas terminan en la misma petición. Ahí empieza la mayoría de las intrusiones reales.

  1. 06

    Desarrolladores y proveedores tienen sus propios accesos

    Un desarrollador externo, una diseñadora que necesita subir una versión, una agencia que mantiene la web, el fabricante de una aplicación sectorial: cada uno pidió acceso, cada uno recibió una cuenta o una clave añadida a authorized_keys, y la mayor parte de esos accesos sigue viva años después de terminado el trabajo.

    Usted no ve cómo se guardan esas credenciales. Una clave privada puede estar sin cifrar en un portátil, en una carpeta compartida en la nube o en el directorio personal de un empleado que dejó aquella empresa hace un año. Un acceso concedido una vez suele sobrevivir tanto al proyecto como a la persona para la que se concedió.

    • Claves añadidas para un único despliegue y nunca retiradas
    • Una cuenta compartida por todo el equipo del proveedor en lugar de una por persona
    • Nadie le avisa cuando cambia el personal del proveedor
  2. 07

    Las cuentas de despliegue y automatización no pueden usar un segundo factor

    Las cadenas de integración continua, los guiones de copia, los agentes de monitorización, las tareas de rsync y las herramientas de configuración tienen que entrar sin una persona presente. Por tanto no se pueden proteger con nada que pida un código a un humano, y suelen tener permisos más amplios que cualquier individuo.

    Así que esas cuentas se quedan como están: nombres previsibles, claves o contraseñas que llevan años sin cambiar, y una vía de acceso que funciona a las tres de la madrugada sin que nadie lo note. Son las cuentas a las que apunta un atacante, precisamente porque nunca cambian.

  3. 08

    La autenticación por contraseña se dejó activa «por si acaso»

    El acceso por clave está montado y las contraseñas se mantienen habilitadas como respaldo: para el día en que se pierda una clave, para el compañero que no tiene, para la consola que nadie ha probado en un año. La intención es razonable; el efecto es que toda la política de claves resulta opcional desde el lado del atacante.

    A la adivinación le da igual que existan claves. Mientras PasswordAuthentication esté en yes para alguna cuenta de la máquina, el ataque por diccionario tiene una vía de entrada, y la clave más fuerte del servidor no lo frena ni un segundo.

  4. 09

    Contraseñas que ya figuran en una filtración

    La mayoría de las intrusiones con éxito no son ingeniosas. Alguien reutilizó una contraseña de un foro, de una tienda o de un correo antiguo que desde entonces se ha filtrado, y esa misma cadena está hoy en un diccionario que recorre cada bot de rastreo.

    Adivinar deja entonces de ser cuestión de probabilidad y pasa a ser cuestión de calendario: la contraseña correcta ya está en la lista, y lo único pendiente es cuándo llega el bot a su dirección. Las reglas de complejidad no ayudan aquí, porque esa contraseña puede cumplir perfectamente todas las que usted haya escrito.

    • Una contraseña repetida entre una cuenta del servidor y un servicio personal
    • Credenciales filtradas desde los sistemas de un proveedor, no desde los suyos
    • Patrones que una política acepta y un diccionario ya contiene: Verano2024!, NombreEmpresa1
  5. 10

    Una clave privada sin frase de paso en el portátil de alguien

    Las claves son más fuertes que las contraseñas justo hasta el momento en que se copia el fichero de la clave. Un id_rsa sin cifrar en un portátil robado, en una carpeta sincronizada en la nube, en una imagen de contenedor subida a un registro público o en un repositorio donde se confirmó por descuido es un acceso operativo que no hay ni que adivinar.

    El servidor no nota la diferencia. La firma es válida, la cuenta es real y la sesión se parece exactamente a la del desarrollador. Por eso la pregunta útil no es solo quién tiene una clave, sino qué ocurre cuando alguien se conecta desde un sitio en el que ese desarrollador nunca ha estado.

/var/log/auth.log22:0023:0124:0225:0326:0427:0528:0629:07this month12 480blockedexported · signed

Cuando la pregunta la plantean el registro, el auditor o el proveedor

El tercer grupo trata de las consecuencias que llegan antes que cualquier brecha. Los intentos que nunca prosperaron cuestan igualmente disco, procesador, atención y credibilidad. Y tarde o temprano alguien de fuera del equipo técnico hace una pregunta que hay que responder con pruebas y no con garantías verbales.

  1. 11

    Un auditor, una aseguradora o un cliente pregunta cómo se protege el acceso remoto

    Los cuestionarios de ciberseguro, las revisiones de seguridad de clientes corporativos y los marcos regulatorios sobre datos de pago o personales preguntan lo mismo con distintas palabras: qué detiene la adivinación repetida de contraseñas contra su acceso remoto y cómo sabe usted que funciona.

    «Usamos claves» no sobrevive a la siguiente pregunta, porque esa pregunta irá sobre las cuentas que aún aceptan contraseñas y sobre los intentos que llegan al puerto de todas formas. Lo que se pide es una medida que exista con independencia de cualquier credencial concreta y un registro que muestre que estuvo vigente durante todo el periodo revisado.

    • Un cuestionario de ciberseguro antes de emitir o renovar la póliza
    • La revisión de proveedores de un gran cliente antes de firmar un contrato
    • Normas sobre datos de pago o personales que exigen control frente a la fuerza bruta
  2. 12

    auth.log y el disco se llenan de accesos fallidos

    Cada intento rechazado queda anotado. En un servidor expuesto eso son decenas de miles de líneas de registro al día, y el efecto se agrava: la rotación descarta eventos reales en horas, el envío de registros se factura por volumen ingerido, y una partición raíz pequeña puede llenarse de verdad por culpa de tráfico al que nunca se iba a dejar entrar.

    El coste no es solo almacenamiento. Cada intento consume una conexión TCP, un intercambio de claves y una comprobación de credenciales, así que la máquina dedica una parte medible del día a responder a gente a la que nunca va a admitir. En un VPS de un núcleo esa parte es lo bastante grande como para que la note el trabajo para el que existe el servidor.

  3. 13

    Las listas de bloqueo mantenidas a mano se han convertido en un trabajo propio

    La primera reacción habitual es un filtro local y un montón creciente de reglas de cortafuegos. Funciona durante un tiempo, y luego el conjunto de reglas tiene miles de líneas, nadie recuerda para qué sirve la mitad, una delegación quedó bloqueada en una mañana cargada, y los mismos rangos de direcciones se redescubren desde cero en cada máquina nueva.

    Lo que un parque necesita de verdad es una política decidida una vez y aplicada en todas partes, excepciones registradas en lugar de recordadas, y bloqueos que no haya que reconstruir a mano cada vez que se reinstala un servidor.

  4. 14

    Un solo administrador atiende servidores de muchos clientes

    Los proveedores de servicios gestionados, los administradores de sistemas autónomos y las pequeñas empresas de alojamiento llevan decenas de máquinas Linux en clientes distintos, en proveedores distintos y en arquitecturas de red distintas. Cada una tiene sus reglas, sus cuentas y su propia tolerancia a la interrupción.

    Configurarlas de una en una a mano no escala, ni tampoco enterarse de un problema solo cuando llama el cliente. Un parque así necesita una base común aplicada en todas partes, excepciones por máquina allí donde un cliente realmente difiere, y un único sitio donde se vea todo a la vez.

    • Máquinas repartidas entre varios proveedores y rangos de direcciones
    • Un cliente cuya delegación no debe bloquearse jamás, por rara que parezca
    • Relevos entre administradores sin perder el motivo por el que se puso un ajuste
  5. 15

    El enlace con el servidor es poco fiable y la protección debe aguantar igual

    Los enlaces caen, los operadores reencaminan, el DNS se rompe, y una máquina en un bastidor remoto puede pasar horas sin ruta hacia el exterior. Los ataques no se detienen por ello; al contrario, una avería de red es justo el momento en que menos se observa el servidor.

    Lo que defiende el acceso tiene que decidir localmente, en la propia máquina, sin depender de alcanzar un servicio externo. Todo lo que deja de aplicarse cuando no hay Internet protege solo los días en que no hacía falta.

07FAQ

Preguntas frecuentes

¿Es seguro instalarlo en un servidor de producción?

¿Es seguro instalarlo en un servidor de producción?

Sí. El agente solo lee el registro de autenticación de su propio sistema operativo y bloquea conexiones entrantes a los puertos protegidos de esa misma máquina. Solo realiza peticiones HTTPS salientes y no abre puertos entrantes.

¿Funciona la protección sin conexión a Internet?

¿Funciona la protección sin conexión a Internet?

Sí. La decisión de bloquear se toma localmente en el agente, por lo que la protección sigue funcionando con la última política aplicada aunque la nube no esté disponible.

¿Y si cambié el puerto SSH?

¿Y si cambié el puerto SSH?

El agente detecta el puerto SSH real automáticamente a partir de sshd_config y de los sockets a la escucha, y reconstruye sus reglas cuando el puerto cambia. El puerto FTP se detecta igual.

¿Puedo bloquearme a mí mismo?

¿Puedo bloquearme a mí mismo?

No. Durante la instalación su dirección IP actual se añade a la lista blanca, y las fuentes de la lista blanca siempre tienen prioridad sobre cualquier bloqueo.

¿Qué distribuciones de Linux son compatibles?

¿Qué distribuciones de Linux son compatibles?

Cualquier distribución moderna basada en systemd - Debian, Ubuntu, RHEL/CentOS/Alma/Rocky, Fedora - en x86-64 y ARM64. Un único binario estático sin dependencias adicionales.

¿Cómo funciona el pago?

¿Cómo funciona el pago?

Los pagos internacionales se procesan con PayPro Global, los pagos en Rusia con YooKassa, y la criptomoneda está disponible como alternativa. El plan Free es permanente y no requiere tarjeta.

Protección SSH con autenticación de contraseña habilitada

Dejé habilitada la autenticación de contraseña y SSH escuchó en la dirección pública del servidor Linux. Hay miles de contraseñas fallidas de diferentes IP e inicios de sesión en auth.log, mover el puerto 22 no ayuda y el acceso no se puede bloquear por completo. ¿Cómo puedo configurar la protección SSH contra la fuerza bruta de la contraseña antes de iniciar sesión correctamente?

Con SSH Protector instalo el agente como un servicio systemd: lee el registro de autenticación localmente, determina el puerto sshd real y, después de un umbral de tiempo, bloquea la red de origen en el firewall del sistema. Agrego mi dirección o VPN a la lista blanca por adelantado, controlo el historial en el panel y guardo la política más reciente cuando pierdo Internet.

Gratis sin SSH Protector. Desactivo PasswordAuthentication y PermitRootLogin, dejo las claves en Ed25519, limito AllowUsers/AllowGroups y solo permito el puerto desde VPN o CIDR confiables. Si se requiere una contraseña temporalmente, configuro fail2ban usando journald/auth.log, reviso nftables/iptables, configuro findtime, maxretry y bantime, y pruebo periódicamente las excepciones desde la consola de respaldo.

Proteger el inicio de sesión estándar de una imagen de Linux en la nube

Implementé Ubuntu/Debian/RHEL desde una imagen de nube pública, por lo que los bots conocen de antemano el nombre de usuario ubuntu, debian, ec2-user o root. Incluso con una buena contraseña, el registro está lleno de intentos específicos y una contraseña equivocada deja la cuenta vulnerable. ¿Cómo puedo proteger SSH en un VPS en la nube con un inicio de sesión estándar?

Con SSH Protector bloqueo la fuente en los inicios de sesión fallidos reales sin importar el nombre que intente, y puedo extender la prohibición a la red del atacante. Verifico el puerto SSH encontrado, agrego la VPN administrativa a la lista blanca y uso una solución de agente local para que la protección no dependa de la disponibilidad del panel.

De forma gratuita, desactivo los inicios de sesión con contraseña y root, creo un usuario separado con sudo, subo una clave única a través de cloud-init y cierro el grupo de seguridad de la VPN/mis redes. Elimino las authorized_keys no utilizadas, habilito MFA en bastión, configuro fail2ban y alertas de contraseña/clave pública aceptadas para fuentes desconocidas; Considero cambiar el puerto solo para reducir el ruido.

Proteger un único VPS Linux con un sitio web y una base de datos

Tengo un VPS Linux, donde el sitio web, la base de datos y las copias de seguridad funcionan simultáneamente, y se necesita SSH para la administración. Iniciar sesión correctamente como usuario sudo le dará al atacante acceso a todas las capas y le permitirá eliminar archivos de copia de seguridad locales. ¿Cómo puedo proteger SSH en un VPS crítico con una carga mínima?

Con SSH Protector instalo un agente estático que lee eventos locales y bloquea la fuente en el firewall hasta que la cuenta se ve comprometida. Utilizo protección gratuita para el primer servidor, incluyo mi canal en la lista blanca y me aseguro de que el agente siga trabajando sin conexión; Dejo la copia de seguridad y el privilegio mínimo como capas separadas.

De forma gratuita, bloqueo SSH detrás de WireGuard/Tailscale, desactivo las contraseñas y el root, solicito una clave con frase de contraseña y la limito a sudo. Almaceno copias de seguridad fuera del VPS con credenciales separadas, habilito actualizaciones de seguridad automáticas, fail2ban y auditoría de inicios de sesión exitosos; Compruebo la consola de emergencia del proveedor antes de reforzar el firewall.

Protección SSH en enrutador, NAS y dispositivo Linux

Administro un enrutador Linux, un dispositivo NAS o ARM, que no considero un servidor completo, pero ejecuta sshd y se puede acceder al puerto desde la red externa. El dispositivo rara vez se actualiza, los recursos son escasos y el compromiso le dará un punto de apoyo dentro de la red local. ¿Cómo puedo proteger SSH en un dispositivo Linux de bajo consumo?

Con SSH Protector utilizo un binario estático compatible para la arquitectura y el sistema apropiados, habilito el análisis de registros locales y el bloqueo de firewall sin un puerto de control entrante. Verifico la compatibilidad del sistema operativo y el firewall antes de la instalación, configuro una lista blanca de administración y me aseguro de que el agente no sobrecargue los recursos limitados del dispositivo.

De forma gratuita, no publico SSH externamente en absoluto: conecto el dispositivo a través de VPN, desactivo la contraseña y la raíz, permito una clave y una subred de control. Actualizo el firmware, desactivo los servicios no utilizados, configuro el fail2ban mínimo solo si hay suficiente memoria y guardo la configuración del firewall; Para un sistema operativo no compatible, elijo una puerta de enlace externa en lugar de un binario desconocido.

Seguridad unificada SSH y FTP en Linux

Tengo SSH y FTP abiertos en un host Linux y los robots atraviesan ambos servicios a través de diferentes registros. La IP bloqueada por el script sshd continúa atacando a FTP y las cadenas manuales de iptables divergen. ¿Cómo puedo bloquear de forma centralizada la adivinación de contraseñas a través de SSH y FTP?

Con SSH Protector, habilito la lectura de registros SSH y FTP admitidos, dejo que el agente determine los puertos y aplico una única regla local a la red de origen. Agrego integraciones confiables a la lista blanca, verifico el historial en el panel y tengo en cuenta que la protección FTP avanzada y las funciones adicionales pueden depender de la tarifa.

De forma gratuita, reemplazo el FTP normal por SFTP sobre SSH o FTPS, si el protocolo es realmente necesario, y cierro el servicio de todo Internet. Creo cárceles fail2ban separadas para sshd y FTP, las dirijo a una nftables configurada con tiempo de espera, verifico el formato de registro después de las actualizaciones y desactivo las cuentas compartidas.

Controlar los inicios de sesión SSH de desarrolladores y contratistas

Emití inicios de sesión de Linux y claves SSH por separado para desarrolladores y contratistas, pero algunas de las claves se copiaron en computadoras portátiles personales y la lista de propietarios estaba desactualizada. Necesito detener la fuerza bruta, llamar rápidamente a una persona y entender quién entró sin usar una clave común. ¿Cómo puedo asegurar el acceso SSH multiusuario?

Con SSH Protector, dejo el bloqueo automático de red en todas las fuentes externas y incluyo en la lista blanca solo la VPN controlada, y no todas las IP domésticas. Utilizo el panel para ataques, pero guardo la identidad en cuentas y claves Unix separadas: el agente protege el perímetro y revoco el acceso eliminando una clave específica.

De forma gratuita, administro authorized_keys de forma centralizada a través de Ansible, emito una clave por persona y dispositivo con un comentario claro, desactivo cuentas compartidas y limito sudo. Habilito VPN/MFA en el bastión, configuro el período de acceso en el inventario, recopilo la clave pública aceptada con huella digital en SIEM y elimino automáticamente la clave al final del contrato.

Proteger cuentas SSH comerciales sin MFA

Tengo cuentas de implementación/respaldo que utilizan CI y automatización, por lo que MFA interactiva no se aplica a ellas. Sus claves deberían funcionar sin un operador, pero comprometer al corredor o repetir contraseñas podría abrir el servidor. ¿Cómo puedo proteger el acceso SSH a la máquina sin interrumpir la implementación?

Con SSH Protector, separo las direcciones de los corredores confiables a través de una lista blanca precisa y dejo todas las demás fuentes bloqueadas por inicios de sesión fallidos. No considero que esto sea un reemplazo del control de claves: el agente reduce la fuerza bruta desde el exterior mientras que las restricciones de la cuenta de servicio en sí contienen las consecuencias de una autenticación exitosa.

De forma gratuita, uso una clave Ed25519 separada para el trabajo, la almaceno en un almacén secreto, la restrinjo en authorized_keys a través de from=, command=, no-port-forwarding, no-agent-forwarding y no-pty. Solo permito SSH desde la red del corredor, emito comandos sudo mínimos, giro la clave regularmente y registro una huella digital en el registro de implementación.

Deshabilite de forma segura el inicio de sesión con contraseña a través de SSH

Dejé la contraseña de inicio de sesión SSH "por si acaso" porque tengo miedo de perder la clave o quedar bloqueado después de cambiar sshd_config. Como resultado, PasswordAuthentication sí permanece durante años y auth.log muestra constantemente la selección. ¿Cómo puedo cambiar a claves SSH sin riesgo de perder el acceso al servidor?

Con SSH Protector, primero instalo una capa protectora adicional y pongo en la lista blanca la dirección administrativa actual mientras realizo la migración. El agente bloquea la fuerza bruta activa, toma en cuenta automáticamente el puerto real y deja la política fuera de línea, pero después de verificar con éxito las claves, todavía desactivo el inicio de sesión con contraseña.

De forma gratuita, abro una segunda sesión SSH y la consola del proveedor, agrego una clave única, verifico los permisos ~/.ssh 700 y Authorized_keys 600, ejecuto sshd -t y vuelvo a cargar sin cerrar la primera sesión. Luego configuro PasswordAuthentication no, KbdInteractiveAuthentication no y PermitRootLogin no, verifico el nuevo inicio de sesión y guardo la clave de emergencia por separado.

Reacción a la contraseña SSH filtrada

Descubrí que se filtró la contraseña del usuario de Linux y aparecieron intentos con su nombre desde varios países en auth.log. No estoy seguro de si el inicio de sesión se realizó correctamente porque el servidor se utiliza desde diferentes redes. ¿Cómo puedo cerrar urgentemente la búsqueda SSH y comprobar si hay compromiso?

Con SSH Protector bloqueo inmediatamente fuentes y redes activas, reviso el historial de ataques y dejo el acceso solo a través de una lista blanca confiable. Luego cambio la contraseña/clave, finalizo las sesiones y analizo por separado la contraseña/clave pública aceptada; el bloqueo reduce la ventana de ataque, pero no prueba la ausencia de un inicio de sesión exitoso.

De forma gratuita, cierro temporalmente el grupo de seguridad SSH o nftables a la VPN, bloqueo al usuario, revoco las claves y cambio los secretos asociados. Verifico last/lastlog, journalctl, sudo, nuevos usuarios/claves, unidades cron/systemd, procesos y conexiones de red, luego restauro el acceso solo con clave y desactivo las contraseñas reutilizadas.

Protección de clave privada SSH sin frase de contraseña

Encontré una clave SSH privada sin contraseña en la computadora portátil de un empleado; la clave está permitida en varios servidores y podría haber terminado en una copia de seguridad o en malware. Dicho inicio de sesión no creará una serie de contraseñas incorrectas, por lo que la fuerza antibruta habitual no lo detendrá. ¿Cómo puedo limitar el daño y proteger adecuadamente las claves SSH?

Con SSH Protector sigo bloqueando la fuerza bruta externa y veo fuentes sospechosas, pero no confío en ella para obtener la clave robada correcta. Inmediatamente elimino la huella digital de todos los servidores, emito una nueva clave con frase de contraseña y dejo la lista blanca solo para VPN; Investigaré las entradas exitosas por separado.

De forma gratuita, busco la clave pública anterior en todas las authorized_keys, la revoco mediante la administración de configuración y verifico la clave pública aceptada por huella digital y fuente. Emito un FIDO2/ed25519-sk de hardware o una clave con frase de contraseña y tiempo de espera de ssh-agent, desactivo el reenvío de agentes a menos que sea necesario y mantengo un registro del propietario, el dispositivo y las fechas de rotación.

Confirmar la seguridad SSH para la auditoría

Tengo que mostrarle al auditor, cliente o aseguradora cómo se protege el acceso administrativo SSH: qué puertos y hosts se controlan, cómo se bloquea la selección automática, quién está en la lista blanca y qué sucede cuando se pierde Internet. ¿Cómo puedo recopilar pruebas verificables de protección de fuerza bruta SSH?

Con SSH Protector adjunto un historial de ataques y bloqueos, configuración de políticas, una lista de servicios protegidos y excepciones aprobadas. Documento la solución local del agente, el canal TLS saliente y la falta de un puerto de control entrante, luego realizo inicios de sesión incorrectos controlados y guardo las líneas de registro, la regla del firewall y la notificación.

De forma gratuita, exporto sshd_config, nftables/ufw, fail2ban jail y changelog desde Git, y envío auth.log/journald a un almacenamiento seguro. Verifico PasswordAuthentication, PermitRootLogin, MFA/VPN y pruebo la revocación de clave mensualmente, firmo el resultado y almaceno evidencia durante el período requerido.

Disminución del volumen de auth.log debido a la fuerza bruta de SSH

Mi auth.log o journald está lleno de contraseña fallida y usuario no válido, el historial útil se pierde debido a la rotación y el analizador de registros desperdicia recursos. No quiero deshabilitar la auditoría porque es necesario investigar el inicio de sesión exitoso. ¿Cómo puedo reducir el flujo de eventos de fuerza bruta SSH?

Con SSH Protector bloqueo la fuente en el firewall después de una serie de fallas, para que las siguientes conexiones TCP no lleguen a sshd y no creen tantas entradas. Mantengo una auditoría del sistema, controlo por separado el tamaño/retención del diario y uso el historial de ataques en el panel como índice, no como reemplazo del registro original.

De forma gratuita, cierro SSH a VPN/lista de permitidos, desactivo contraseñas e inicios de sesión estándar y envío fail2ban a nftables configurado con tiempo de espera. Configuro SystemMaxUse y la rotación de diario/rsyslog, envío eventos aceptados y fallidos clave a un syslog externo y no reduzco LogLevel por debajo del valor necesario para la investigación.

Automatización del bloqueo de Linux en lugar de lista negra manual

Copio manualmente la IP de auth.log a ufw/iptables, pero las direcciones cambian rápidamente, las reglas antiguas no se eliminan, la cadena crece y un error puede cerrar mi acceso. El soporte de la lista negra se ha convertido en una tarea diaria separada. ¿Cómo puedo automatizar el bloqueo de fuerza bruta SSH de forma segura?

Con SSH Protector configuro el umbral y la ventana una vez, después de lo cual el agente crea y libera bloqueos localmente y la lista blanca tiene prioridad. Utilizo una prohibición de red donde el atacante rota las direcciones vecinas, verifica los cambios en el panel y guarda una consola de respaldo antes de la primera política.

De forma gratuita, reemplazo las reglas individuales eternas de iptables con nftables configuradas con tiempo de espera o acción fail2ban, configuro maxretry/findtime/bantime e ignoreip para VPN. Pruebo el filtro en líneas de registro reales, habilito la recidiva con cuidado, limito el tamaño establecido y superviso los errores de recarga después de una actualización de distribución.

Administrar la seguridad SSH en múltiples clientes

Mantengo servidores Linux para varios clientes en Debian, Ubuntu, RHEL y ARM, cada uno con sus propios puertos, redes confiables y contactos. Las configuraciones locales de fail2ban y firewall divergen, y una lista blanca común entre clientes es inaceptable. ¿Cómo puedo centralizar la seguridad SSH en una flota multiinquilino?

Con SSH Protector conecto hosts con un agente compatible, veo los puertos y ataques detectados desde un panel, pero mantengo las excepciones y políticas dentro de los límites del servidor/cliente deseado. Aplico valores de referencia, documento las desviaciones por separado y notifico al cliente responsable.

De forma gratuita, describo sshd, fail2ban y nftables en roles de Ansible con un inventario y una bóveda separados para cada cliente, verifico cambios en CI y recopilo registros en Wazuh/syslog central con etiquetas de inquilino. Comparo automáticamente la configuración con la línea base y nunca combino claves, CIDR y secretos de diferentes clientes.

Protección SSH sin conexión en Internet inestable

Mi servidor Linux está en una sucursal o detrás de un canal inestable: el panel de la nube y el DNS a veces no están disponibles, pero SSH dentro o a través de un puerto reenviado continúa respondiendo. La seguridad no tiene que esperar a una API remota para cada solución. ¿Cómo mantengo el bloqueo de fuerza bruta SSH fuera de línea?

Con SSH Protector hago cumplir la política al agente por adelantado; continúa leyendo el registro local y cambia el firewall del sistema a la última configuración cuando se pierde la comunicación con el panel. Sincronizo la lista blanca antes del apagado, verifico el historial acumulado después de la restauración y no abro el puerto de control del agente entrante.

De forma gratuita, hago el control completamente local: nftables/ufw permite SSH solo desde una VPN o las subredes requeridas, y fail2ban funciona a través de journald sin una red externa. Guardo las reglas para la carga, configuro una cola local para notificaciones, pruebo un reinicio sin DNS y salgo de la consola física/del proveedor para restaurar la regla errónea.

Sustituir fail2ban sin dejar un hueco de protección

fail2ban lleva dos años en este servidor Linux y la jail de sshd funciona. Quiero probar un agente gestionado en su lugar, pero no puedo dejar el puerto 22 sin protección ni unos minutos, y no quiero dos herramientas peleándose por las mismas reglas de cortafuegos. ¿Cómo sustituyo fail2ban por SSH Protector sin tiempo de inactividad?

Instalo el agente de SSH Protector mientras fail2ban sigue en marcha. El agente tiene su propia tabla de nftables (inet sshprotector, o un espacio de nombres de ipset con prefijo en equipos más antiguos) y solo reconstruye esa, así que nunca toca las cadenas de fail2ban y ninguno de los dos revierte al otro. Al instalar pongo primero mi propia dirección en la lista blanca y luego miro el panel durante un día para ver si el agente está cazando las mismas fuentes que la jail. Solo entonces paro fail2ban y retiro sus reglas. Si cambio de idea, desinstalar el agente se lleva sus propias reglas y deja el cortafuegos como estaba.

Sin ningún agente, el cambio entre dos herramientas que leen un registro se hace igual. Deja la vieja funcionando, dale a la nueva su propio nombre de cadena o de tabla para que las reglas no choquen, compara durante un día entero de tráfico real qué cazó cada una, y desactiva la vieja solo cuando el contador de baneos de la nueva haya dejado de ser el menor de los dos. Nunca quites primero la que funciona: unos pocos minutos sin protección en un puerto SSH expuesto le bastan a una botnet que ya te está escaneando.

Elegir entre CrowdSec y un agente gestionado

Estoy comparando opciones de protección contra fuerza bruta SSH para un parque pequeño de Linux y CrowdSec sale una y otra vez: código abierto, blocklist comunitaria, cobertura más allá de SSH. ¿Qué hace SSH Protector que CrowdSec no haga, y cómo decido entre los dos?

Los dos resuelven problemas que se solapan, pero desde extremos distintos, y elijo por forma y no por puntuación. CrowdSec es un motor: un lenguaje de escenarios, componentes de bloqueo que instalas y conectas tú mismo, y una blocklist alimentada por todos los que lo ejecutan; su alcance va mucho más allá de SSH. SSH Protector es un binario que hace una cosa: lee el registro de autenticación de SSH, SFTP y FTP, banea todo el /24 del atacante en su propia tabla de nftables, mantiene ese baneo tras reiniciar, detecta el puerto real de sshd en vez de suponer el 22, e informa a un panel que me avisa cuando un servidor protegido se ha quedado callado. La reputación se comparte entre cuentas protegidas, no con el internet público.

Así que la decisión trata de lo que tengo de verdad. Si necesito amplitud - HTTP, bases de datos, fuentes de registro arbitrarias, mis propios escenarios de detección -, CrowdSec tiene sitio para eso y ejecutarlo no cuesta nada. Si lo que tengo es un puñado de máquinas Linux con el puerto SSH expuesto y nadie que mantenga una pila de detección, quiero la cosa estrecha que acierta sin configuración. No he medido las dos una contra otra en el mismo equipo, así que no elijo por cifras de rendimiento, y quien me las cite tampoco debería.

Proteja su primer servidor hoy mismo

El plan Free es gratis para siempre. Cambie de plan con un clic cuando lo necesite.

08Confianza

Quién lo desarrolla, a quién le paga y qué puede hacer el agente en su servidor

Tres preguntas que merecen respuesta antes de instalar nada con permisos de administrador en un servidor en producción.

Quién lo desarrolla01

SSH Protector lo escribe Victor G. Bobrov, especialista principal en seguridad de servidores en Recovery Toolbox: más de 20 años en ingeniería de sistemas y seguridad y certificaciones Microsoft MCSD/MCDBA. Las reglas de detección, la lógica de bloqueo y los artículos de este sitio son su trabajo, publicados con su nombre y no bajo una marca anónima. Sobre el autor →

A quién le paga02

El proveedor es File Master LLC, empresa registrada en Bulgaria (UE): Bulstat/IVA 180842207, oficina en Varna, localizable por teléfono y correo. Los pagos los gestiona PayPro Global como comerciante registrado; los términos, la política de privacidad y el acuerdo de tratamiento de datos están publicados íntegros, no resumidos. Términos del servicio · Política de privacidad · DPA

Qué puede y qué no puede hacer el agente03

El agente lee el registro de autenticación SSH de su propio host y escribe reglas de nftables en ese mismo host. No abre ningún puerto entrante, no tiene canal de comandos remotos y hacia fuera solo habla por HTTPS. No tiene capacidad ofensiva: nada en él puede atacar a otra máquina. Las decisiones de bloqueo se toman localmente, así que la protección sigue funcionando sin conexión con la nube, y su IP actual entra en la lista blanca durante la instalación: el agente no puede dejarle fuera de su propio servidor. El instalador está firmado. Cómo funciona →

09Recursos

Recursos: el protocolo, los ataques y las normas en las que todo esto se apoya

La protección de SSH contra la fuerza bruta no es un tema en sí mismo: es donde se encuentran un protocolo, una clase de ataque y un conjunto de normas publicadas. Estas son las fuentes que definen cada uno de ellos.

Los enlaces llevan a las fuentes mismas: Wikidata cuando la entidad tiene identificador y la fuente primaria cuando no.

Recovery Toolbox / File Master LLC

Contactar con Recovery Toolbox

Datos de contacto de Recovery Toolbox y File Master LLC, además del perfil de Victor G. Bobrov, especialista principal en seguridad de la empresa.

Oficina de la empresa

File Master LLC es la entidad jurídica detrás de los servicios en línea y los productos de software de Recovery Toolbox.

File Master LLC
Serena app., office C13
Golden Sands, Varna, 9007
Bulgaria, Unión Europea
Bulstat/IVA
180842207

Acerca de Recovery Toolbox

File Master LLC desarrolla y mantiene los servicios en línea y los productos de software de Recovery Toolbox para reparar archivos, bases de datos y formatos de correo dañados. La empresa se centra en herramientas de recuperación prácticas para usuarios, especialistas de TI y empresas que necesitan restaurar el acceso a datos dañados.

Sus comentarios y sugerencias son bienvenidos. Envíenos su opinión sobre el sitio web por correo electrónico: webmaster@recoverytoolbox.com

Victor G. Bobrov, server security specialist and author of SSH Protector
Especialista en seguridad

Victor G. Bobrov

Especialista en seguridad de servidores · más de 20 años en ingeniería de sistemas y seguridad

Victor G. Bobrov dirige la ingeniería de seguridad en File Master LLC / Recovery Toolbox. Diseña la lógica de detección y bloqueo de SSH Protector: lectura del registro de autenticación SSH, distinción entre un ataque de fuerza bruta o de difusión de contraseñas y un simple error de tecleo, bloqueo de la subred atacante con una sola regla de nftables e intercambio de reputación de atacantes entre los parques protegidos.

  • Protección contra fuerza bruta
  • Fortificación de Linux y SSH
  • nftables y políticas de red
  • MCSD
  • MCDBA
Sobre el autor →

Certificaciones de Microsoft

Microsoft Certified Solutions Developer - MCSD. Microsoft Certified Database Administrator - MCDBA.

MCSD MCDBA