GNU/Linux >> Tutoriales Linux >  >> Linux

Evite que SSH anuncie su número de versión

Solución 1:

Si bien es prohibitivamente difícil ocultar el número de versión de su demonio SSH, puede ocultar fácilmente la versión de Linux (Debian-3ubuntu4)

Agrega la siguiente línea a /etc/ssh/sshd_config

DebianBanner no

Y reinicie su demonio SSH:/etc/init.d/ssh restart o service ssh restart

Solución 2:

Ocultarlos no asegurará su servidor. Hay muchas más formas de tomar huellas dactilares de lo que está ejecutando su sistema. Para SSH en particular, el anuncio de la versión es parte del protocolo y es obligatorio.

http://www.snailbook.com/faq/version-string.auto.html

Solución 3:

Casi universalmente, los banners de identificación son parte del código compilado y no tienen opciones de configuración para alterarlos o suprimirlos. Tendrá que volver a compilar esas piezas de software.

Solución 4:

Estoy bastante seguro de que no puedes cambiar el anuncio de la versión.

Las mejores formas de asegurar sshd son:

  1. Cambie el número de puerto predeterminado.
  2. Prohibir inicios de sesión raíz.
  3. Forzar el protocolo 2 (suponiendo que no se haga de forma predeterminada).
  4. Incluya en la lista blanca los servidores que tienen permitido SSH.

Los tres primeros se pueden hacer modificando /etc/sshd_config

El cuarto depende del software de firewall que esté utilizando.

Solución 5:

Como se dijo anteriormente, cambiar un número de versión es

  1. Difícil de hacer
  2. Seguridad a través de la oscuridad
  3. No flexible

Lo que sugiero es implementar Port Knocking. Es una técnica bastante simple para ocultar cualquier cosa que se esté ejecutando en su servidor.

Aquí hay una buena implementación:http://www.zeroflux.org/projects/knock

Así es como lo implementé en mis servidores (otros números) para abrir SSH solo a las personas que conocen 'el golpe secreto':

[openSSH]
    sequence = 300,4000,32
    seq_timeout = 5
    command = /opencloseport.sh %IP% 2305
    tcpflags = syn

Esto dará una ventana de 5 segundos en la que los 3 paquetes SYN deben recibirse en el orden correcto. Elija puertos que estén alejados entre sí y no secuenciales. De esa manera, un escáner de puertos no puede abrir el puerto por accidente. Estos puertos no necesitan ser abiertos por iptables.

El script que llamo es este. Abre un puerto particular durante 5 segundos para que la IP envíe los paquetes SYN.

#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2  -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2  -j ACCEPT

Puede ser una verdadera molestia enviar los paquetes SYN, así que uso el script para conectarme al SSH de mis servidores:

#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh [email protected]$1 -p $6

(Es bastante obvio lo que está pasando aquí...)

Una vez que se establece la conexión, se puede cerrar el puerto. Sugerencia:use autenticación de clave. De lo contrario, debe ser muy rápido para escribir su contraseña.


Linux
  1. Evite que la tarea de Linux que se está ejecutando actualmente se elimine después de cerrar la sesión de SSH

  2. Cómo evitar que un proceso escriba archivos

  3. SSH:cómo incluir el comando -t en el archivo ~/.ssh/config

  4. ¿Qué versión de RHEL estoy usando?

  5. ¿Cómo evitar que un usuario inicie sesión, pero permitir su - usuario en Linux?

Cómo evitar que se agote el tiempo de espera de SSH

Ubuntu:¿cómo evitar que Firefox se actualice a la versión 57 en Ubuntu 16.04?

Cómo evitar que las conexiones SSH se desconecten por inactividad al usar MobaXterm

¿Biblioteca C para leer la versión EXE de Linux?

Cómo evitar que SSH se desconecte si ha estado inactivo por un tiempo

¿Cómo instalo 2 versiones diferentes de Java en la misma máquina de EPEL?