Primera vez que abre un servidor SSH a internet, qué verificar

9

He estado ejecutando algunos servidores durante un tiempo relativamente largo, pero siempre solo los alquilé, por lo que no tengo mucha experiencia en asegurar el servidor real (a diferencia de la aplicación que estoy ejecutando en él).

Ahora tengo ganas de abrir mi pequeño servidor SSH doméstico a Internet.

Seré el único que lo use, mis contraseñas son lo suficientemente complicadas, he cambiado el puerto SSH predeterminado a alrededor de 4000, el único puerto accesible es este puerto SSH a través del reenvío de puertos en mi enrutador / firewall, y se actualiza automáticamente todas las noches (ejecuta Arch Linux, una distribución de lanzamiento continuo).

¿Cuáles son, si las hay, otras cosas que debo hacer para mantenerlo seguro?

¡Gracias!

houbysoft
fuente

Respuestas:

22

Asegúrese de que los inicios de sesión raíz estén deshabilitados PermitRootLogin no. También consideraría deshabilitar las contraseñas por completo PasswordAuthentication noy usar claves públicas PubkeyAuthentication yes.

chx
fuente
+1 me ganó ...
gravyface
1
Si va a utilizar contraseñas, puede intentar buscar un sistema de autenticación de dos factores. Si no es así, le recomiendo que no escriba su contraseña en un sistema aleatorio de cibercafé / biblioteca.
Mark Wagner
44
Si permite que la contraseña de autenticación, considere instalar fail2ban para evitar ataques de fuerza bruta y el uso de contraseñas seguras para cualquier cuenta de inicio de sesión permitido a través de ssh
uSlackr
@embobo, ¿por qué es eso? Las contraseñas enviadas a través del cable están encriptadas en ssh. Sí, la autenticación de clave es muy superior en muchos aspectos, pero siempre que las contraseñas sean lo suficientemente fuertes y haya verificado que nadie está navegando por los hombros, entonces no es un gran problema.
EEAA
3
@Erika Creo que embobo alude a la desconfianza general de cualquier sistema extranjero. A pesar de que SSH está encriptado, una máquina extranjera aún puede decir, registre sus pulsaciones de teclas. Así contraseña = comprometida.
Ortomson
9

Asegúrese de que solo se permita SSH-2 (ya que SSH-1 ha planteado algunas preocupaciones de seguridad en el pasado):

Protocol 2

Especifique cuáles son los únicos usuarios que pueden iniciar sesión a través de SSH:

AllowUsers bob, john

Para mayor seguridad, no permita la autenticación de contraseña y use la autenticación de clave pública:

PasswordAuthentication no
PubkeyAuthentication yes

Nota: este tutorial contiene instrucciones para crear claves y configurar la autenticación de clave pública.

Bam Bam
fuente
5

Además de los puntos sobre deshabilitar el inicio de sesión raíz o usar solo la autenticación de clave pública, también verificaría que no haya cuentas de usuario en el sistema que tengan contraseñas triviales o vacías. Usted ha dicho que sus contraseñas personales están bien, pero eso no descarta que se haya creado una cuenta con una contraseña deficiente por alguna otra razón.

Como ejemplo: tuve que arreglar una red donde el administrador anterior había instalado nagios en todos sus sistemas desde la fuente, y creó un usuario de nagios sin contraseña, o la contraseña "nagios", y luego procedió a obtener tres máquinas diferentes comprometido.

Daniel Lawson
fuente
4

Es posible que desee ver algún tipo de herramienta de listas negras de IP como http://denyhosts.sourceforge.net/ . Bloquea cualquier IP que intente iniciar sesión sin éxito demasiadas veces y es altamente configurable.

Escudos de Lynden
fuente
Probablemente sea una pérdida de tiempo si tiene los inicios de sesión raíz deshabilitados. En mi experiencia (2 ish años de un servidor SSH en Internet), solo un par de personas ha tenido mi nombre de usuario (obvio) correcto. Los bots solo están verificando contraseñas obvias en nombres de usuario comunes (el 99% de los inicios de sesión fallidos en mi servidor son para root, que por supuesto está desactivado).
Brendan Long
44
Definitivamente no es una pérdida de tiempo, pero eche un vistazo a fail2ban
symcbean
+1 para fail2ban.
JamesBarnett
1
root no es la única cuenta obvia que los bots comprueban, vea nagios como se mencionó anteriormente. También hay cuentas de bases de datos como mysql y postgres. Además de cualquier otra cuenta de aplicación.
JamesBarnett
Sí, de hecho, un bot que adivinó una contraseña no root asumió mi máquina SSH con conexión a la red, por lo que definitivamente no es una pérdida de tiempo. Además, desde que obtuve una lista negra como esta, mirando los registros, un porcentaje muy pequeño de intentos son en realidad para root.
Lynden Shields
3

Le sugiero que instale Fail2ban! http://www.fail2ban.org

Prohíbe una IP después de x intentos fallidos durante y minutos, lo que ayuda a mantener los scriptkiddies bajo control;)

Luchador de corbata
fuente
0

Revisiones de registros recurrentes en las partes / componentes pertinentes de sus sistemas (dependiendo de su configuración real / específica) ...

usuario48838
fuente