¿Cambiar el número de puerto predeterminado realmente aumenta la seguridad?

69

He visto consejos que dicen que debe usar diferentes números de puerto para aplicaciones privadas (por ejemplo, intranet, base de datos privada, cualquier cosa que ningún extraño usará).

No estoy completamente convencido de que pueda mejorar la seguridad porque

  1. Existen escáneres de puertos
  2. Si una aplicación es vulnerable, permanece así independientemente de su número de puerto.

¿Me perdí algo o respondí mi propia pregunta?

Sam
fuente
30
Una cosa que he hecho es utilizar ciertos puertos predeterminados (por ejemplo, el puerto SSH 22) como macetas. Cualquier persona que intente conectarse a esos puertos está bloqueada por completo por un xperíodo de tiempo. Ha demostrado ser efectivo contra el escaneo de puertos. Por supuesto, esta es solo una herramienta en la caja de herramientas de seguridad.
Belmin Fernández
La pregunta general sobre la seguridad a través de la oscuridad se hace aquí: security.stackexchange.com/questions/2430/…
Tony Meyer
bueno, tal vez sea un obstáculo para los "niños de secuencias de comandos"
Lukasz Madon
1
@BelminFernandez, "una herramienta en la caja de herramientas de seguridad" ? No, esto es para reducir la carga del servidor (rendimiento) y no tiene nada que ver con la seguridad además de la mera ilusión. En cuanto a la seguridad, es totalmente innecesario si el servidor ya es fuerte, y si el servidor es vulnerable, no lo hace más seguro.
Pacerier
@Pacerier, acordó que el esfuerzo y el enfoque deberían estar en implementar prácticas de seguridad más sólidas. Sin embargo, no hay razón por la que no puedas hacer ambas cosas.
Belmin Fernández

Respuestas:

68

No proporciona ninguna defensa seria contra un ataque dirigido. Si su servidor está siendo apuntado, entonces, como usted dice, le escanearán el puerto y descubrirán dónde están sus puertas.

Sin embargo, mover SSH fuera del puerto predeterminado de 22 disuadirá algunos de los ataques de tipo kiddie de script no objetivo y amateur. Estos son usuarios relativamente poco sofisticados que utilizan scripts para escanear puertos de grandes bloques de direcciones IP a la vez específicamente para ver si el puerto 22 está abierto y cuando encuentran uno, lanzarán algún tipo de ataque (fuerza bruta, ataque de diccionario, etc) Si su máquina está en ese bloque de IP que se está escaneando y no está ejecutando SSH en el puerto 22, entonces no responderá y, por lo tanto, no aparecerá en la lista de máquinas para que este script kiddie ataque. Ergo, se proporciona cierta seguridad de bajo nivel, pero solo para este tipo de ataque oportunista.

A modo de ejemplo, si tiene tiempo, inicie sesión en su servidor (suponiendo que SSH esté en el puerto 22) y extraiga todos los intentos únicos de SSH fallidos que pueda. Luego mueva SSH fuera de ese puerto, espere un tiempo y vuelva a bucear. Sin duda encontrarás menos ataques.

Solía ​​ejecutar Fail2Ban en un servidor web público y fue muy, muy obvio cuando saqué SSH del puerto 22. Cortó los ataques oportunistas por órdenes de magnitud.

jdw
fuente
3
Convenido. Vi una caída muy similar al experimentar moviendo SSH a un puerto no estándar. Afortunadamente con la autenticación de contraseña deshabilitada, realmente no es un problema.
EEAA
3
La mejor respuesta aquí hasta ahora. Todo se reduce a quién está atacando. Una vez ayudé a administrar un sistema que fue golpeado con un ataque de día cero de un niño escaneado. Presumiblemente en MS-RDP ya que no teníamos IIS expuesto por el firewall. Nuestro host no nos permitió cambiar el puerto RDP (hosting gestionado), por lo que básicamente tuvimos que sentarnos allí mientras trabajaban en un nuevo patrón para su filtrado IDS / IPS. Aunque puede que no sirva tanto para servidores más establecidos como SSH que parecen tener menos problemas de seguridad que algunos productos de MS.
Matt Molnar
9
Definitivamente de acuerdo. La seguridad se trata de capas, y cuanto más tenga, más seguro estará. Esta puede ser una capa débil, pero aún así es una capa. Siempre que no se confíe únicamente en él, solo puede aumentar la seguridad.
Paul Kroon
1
Otro punto para mover SSH del puerto 22 es que una gran cantidad de intentos de SSH más servicios, ya que Fail2Ban a veces puede tomar un tiempo de CPU valioso. Puede ser insignificante en la parte superior del hardware de la línea, pero algunos servidores más antiguos pueden experimentar picos de CPU. Su tiempo de CPU, memoria y ancho de banda se pueden usar para otras cosas.
artifex
He hecho lo mismo con RDP en Server 2003: redujo sustancialmente la cantidad de entradas de autenticación fallidas en el Visor de eventos.
Moshe
43

Es muy útil mantener limpios los registros.

Si usted ve intentos fallidos con sshd en ejecución en el puerto 33201 se puede asumir con seguridad que la persona se dirige a usted y usted tiene la opción de tomar la acción apropiada si así lo desea .. Tal como ponerse en contacto con las autoridades, de instrucción que puede ser esta persona ( haciendo referencias cruzadas con las IP de sus usuarios registrados o lo que sea), etc.

Si usa el puerto predeterminado, será imposible saber si alguien lo está atacando o si solo son idiotas al azar haciendo escaneos aleatorios.

Thomas Bonini
fuente
8
distinción maravillosa
ZJR
3
1 Este es el mejor argumento para cambiar los números de puerto que he oído y hasta ahora el único que me tentaría a hacerlo
squillman
2
+1 Este es un gran punto. Las amenazas dirigidas son mucho más peligrosas que las sondas aleatorias (los kiddies de script simplemente pasan a objetivos más fáciles si tienes una seguridad decente). El atacante objetivo puede saber mucho más sobre vulnerabilidades específicas o incluso patrones de contraseña. Es bueno poder reconocer estos ataques fuera del enjambre de spam en el puerto 22.
Steven T. Snyder
1
Esto es falso He visto al menos un servidor comprometido a través de un escaneo en un puerto SSH no estándar. No hay una razón inherente por la que un atacante no pueda escanear otros puertos también.
Sven Slootweg
@SvenSlootweg, True, especialmente con las computadoras cada vez más rápidas y baratas, un escaneo que tarda 65535 veces más ya no es mucho más.
Pacerier
28

No lo hace Realmente no. El término para esto es Seguridad por Oscuridad y no es una práctica confiable. Tienes razón en tus dos puntos.

En el mejor de los casos, la Seguridad por Oscuridad disuadirá los intentos casuales que solo buscan puertos predeterminados sabiendo que en algún momento encontrarán a alguien que dejó la puerta principal abierta. Sin embargo, si alguna vez se enfrenta a una amenaza grave al cambiar el puerto desactivado, a lo sumo retrasará el ataque inicial, pero solo de manera marginal debido a lo que ya ha señalado.

Hágase un favor y deje sus puertos configurados correctamente, pero tome las precauciones adecuadas para bloquearlos con un firewall adecuado, autorizaciones, ACL, etc.

squillman
fuente
17
La proyección de contraseñas (fuertes) y encriptación en la idea de seguridad por oscuridad es un poco
exagerada
55
Usando solo 8 caracteres con el rango completo de caracteres alfabéticos y numéricos (y ni siquiera permitiendo caracteres especiales), el número de combinaciones posibles es 62 ^ 8 (218,340,105,584,896). 65535 ni siquiera está en el mismo universo que eso, incluso cuando se emplean detectores de escaneo de puertos. Tenga en cuenta que estoy descontando las contraseñas débiles.
Squillman
3
Nuevamente , "no es como si el puerto no estándar fuera todo el aparato de seguridad". Cada poquito ayuda. Es un ajuste de 10 segundos que, si nada más, evitará que su servidor se muestre a alguien que busca SSH para comenzar a llamar a las puertas.
ceejayoz
8
Meh Hacer un seguimiento de los puertos no estándar no vale la pena en mi libro. Estaré de acuerdo en estar en desacuerdo con cualquiera ... Agregar más contramedidas más allá de cambiar el puerto es ciertamente parte de la ecuación y prefiero dejar las cosas en manos de esas piezas del rompecabezas.
Squillman
66
Por lo que he visto, los puertos no estándar se han vuelto bastante estándar. 2222 para ssh, 1080, 8080, 81, 82, 8088 para HTTP. De lo contrario, se vuelve demasiado oscuro y te preguntas qué servicio hay en el puerto 7201 y por qué no puedes conectarte a ssh en 7102.
BillThor
13

Es un ligero nivel de oscuridad, pero no un aumento de velocidad significativo en el camino hacia el pirateo. Es una configuración más difícil de soportar a largo plazo ya que todo lo que habla con ese servicio en particular tiene que ser informado sobre el puerto diferente.

Érase una vez una buena idea para evitar gusanos de red, ya que tendían a escanear solo un puerto. Sin embargo, el tiempo del gusano que se multiplica rápidamente ya pasó.

sysadmin1138
fuente
2
+1 para problemas de configuración y soporte más difíciles. Le hace perder el tiempo que podría dedicar a asegurar la puerta (en lugar de tener que buscar en qué parte de su casa la ha colocado).
Macke
12

Como otros han señalado, cambiar el número de puerto no le ofrece mucha seguridad.

Me gustaría agregar que cambiar el número de puerto en realidad puede ser perjudicial para su seguridad.

Imagine el siguiente escenario simplificado. Un cracker escanea 100 hosts. Noventa y nueve de estos hosts tienen servicios disponibles en estos puertos estándar:

Port    Service
22      SSH
80      HTTP
443     HTTPS

Pero luego hay un host que se destaca de la multitud, porque el propietario del sistema trató de ofuscar sus servicios.

Port    Service
2222    SSH
10080   HTTP
10443   HTTPS

Ahora, esto podría ser interesante para un cracker, porque el escaneo sugiere dos cosas:

  1. El propietario del host está tratando de ocultar los números de puerto en su sistema. Quizás el propietario piense que hay algo valioso en el sistema. Esto puede no ser un sistema normal.
  2. Eligieron el método incorrecto para asegurar su sistema. El administrador cometió un error al creer en la ofuscación del puerto, lo que indica que puede ser un administrador sin experiencia. Quizás utilizaron la ofuscación de puertos en lugar de un firewall adecuado o un IDS adecuado. Es posible que también hayan cometido otros errores de seguridad y que sean vulnerables a ataques de seguridad adicionales. Vamos a investigar un poco más ahora, ¿de acuerdo?

Si fuera un cracker, ¿elegiría echar un vistazo a uno de los 99 hosts que ejecutan servicios estándar en puertos estándar, o este host que está utilizando la ofuscación de puertos?

Stefan Lasiewski
fuente
14
Vería los 99 hosts a menos que la experiencia me enseñe lo contrario. Alguien que está moviendo puertos probablemente tenga más probabilidades de parchear y asegurar, si me preguntas.
ceejayoz
44
Me gustaría ver el 1 host que sobresalía, en caso de que algún PFY pensara "¡Si cambio los números de puerto, SOY INVINCIBLE!" pero tiene la contraseña de root establecida en "contraseña".
Andrew
3
@Ceejayoz, completamente de acuerdo. Estoy ejecutando SSH en 2222, sin valor de seguridad, pero reduce mucho los script kiddies. Me imagino que también es más probable que me ignoren, se molestaron en cambiar el puerto, probablemente también tomaron otras medidas. Obviamente, no todo es configuración predeterminada ...
Chris S
1
Entiendo que no todos están de acuerdo con mi opinión. Pero en mi experiencia, había muchos propietarios de sistemas que usarían la ofuscación de puertos, pero cometerían errores como no actualizar OpenSSH después de que se expusieran algunas vulnerabilidades de seguridad críticas, o usarían claves SSH sin cifrar de un sistema universitario compartido, etc. Algunos de Estos sistemas eran objetivos jugosos.
Stefan Lasiewski
3
Por extensión: al pasar a un puerto no estándar, es más probable que desaliente a los niños del script, pero también es más probable que intriga a un pirata informático experimentado. Lo que plantea la pregunta: ¿por qué tienes más miedo de ser el blanco?
tardate el
9

Voy a ir en contra de la tendencia general, al menos parcialmente.

Por sí solo , cambiar a un puerto diferente puede ganarle un par de segundos mientras se busca, por lo tanto, no obtendrá nada en términos reales. Sin embargo, si combina el uso de puertos no estándar junto con medidas anti-escaneo, puede dar un aumento realmente valioso en la seguridad.

Aquí está la situación tal como se aplica a mis sistemas: los servicios no públicos se ejecutan en puertos no estándar. Cualquier intento de conexión a más de dos puertos desde una sola dirección de origen, ya sea exitosa o no, dentro de un período de tiempo especificado resulta en la caída de todo el tráfico de esa fuente.

Para vencer a este sistema requeriría suerte (golpear el puerto correcto antes de ser bloqueado) o un escaneo distribuido, que desencadena otras medidas, o un tiempo muy largo, que también se notaría y actuaría.

John Gardeniers
fuente
Combine esto con el punto de Andreas Bonini sobre los ataques dirigidos y es un fuerte argumento para usar puertos alternativos.
JivanAmara
5

En mi opinión, mover el puerto en el que se ejecuta una aplicación no aumenta la seguridad en absoluto, simplemente porque la misma aplicación se está ejecutando (con las mismas fortalezas y debilidades) solo en un puerto diferente. Si su aplicación tiene una debilidad, mover el puerto que escucha a un puerto diferente no soluciona la debilidad. Peor aún, lo alienta activamente a NO abordar la debilidad porque ahora el escaneo automatizado no lo afecta constantemente. Oculta el problema real, que es el problema que debería resolverse.

Algunos ejemplos:

  • "Limpia los registros" - Entonces tiene un problema con la forma en que maneja sus registros.
  • "Reduce la sobrecarga de la conexión": la sobrecarga es insignificante (como lo es la mayoría de los escaneos) o necesita algún tipo de filtrado / mitigación de denegación de servicio en sentido ascendente
  • "Reduce la exposición de la aplicación": si su aplicación no puede resistir el escaneo y la explotación automáticos, entonces su aplicación tiene serias deficiencias de seguridad que deben abordarse (es decir, ¡manténgala parcheada!).

El verdadero problema es administrativo: la gente espera que SSH esté en 22, MSSQL en 1433 y así sucesivamente. Mover esto es una capa más de complejidad y documentación requerida. Es muy molesto sentarse en una red y tener que usar nmap solo para descubrir dónde se han movido las cosas. Las adiciones a la seguridad son efímeras en el mejor de los casos y las desventajas no son insignificantes. No lo hagas Soluciona el problema real.


fuente
2

Tiene razón en que no traerá mucha seguridad (ya que el rango de puertos del servidor TCP tiene solo 16 bits de entropía), pero puede hacerlo por otras dos razones:

  • como ya han dicho otros: los intrusos que intentan muchos inicios de sesión pueden saturar sus archivos de registro (incluso si los ataques de diccionario desde una sola IP pueden bloquearse con fail2ban);
  • SSH necesita criptografía de clave pública para intercambiar claves secretas para crear un túnel seguro (esta es una operación costosa que, en condiciones normales, no necesita hacerse con mucha frecuencia); Las conexiones SSH repetidas podrían desperdiciar la energía de la CPU .

Observación: no estoy diciendo que deba cambiar el puerto del servidor. Solo estoy describiendo razones razonables (IMO) para cambiar el número de puerto.

Si hace eso, creo que debe dejar en claro a todos los demás administradores o usuarios que esto no debe considerarse una característica de seguridad, y que el número de puerto utilizado ni siquiera es un secreto, y que describir esto como una característica de seguridad eso trae seguridad real no se considera un comportamiento aceptable.

curioso
fuente
Los archivos de registro se pueden despejar fácilmente con los filtros adecuados. Si está hablando del rendimiento del servidor debido a registros reducidos, ya no estamos hablando de seguridad. El rendimiento es un tema completamente diferente.
Pacerier
No cuando la computadora queda inutilizable debido al uso excesivo del disco.
curioso
Sí, eso es un problema de rendimiento. El rendimiento es definitivamente importante también, pero este hilo en particular está discutiendo específicamente solo sobre seguridad. (Para el propósito de este hilo, solo imagine que tiene el tamaño de Google, y Google realmente quiere esos datos para fines de análisis y / o venta.)
Pacerier
1

Puedo ver una situación hipotética en la que habría un beneficio potencial de seguridad al ejecutar su sshd en un puerto alternativo. Eso sería en el escenario donde se descubre una vulnerabilidad remota explotada trivialmente en el software sshd que está ejecutando. En tal escenario, ejecutar su sshd en un puerto alternativo podría brindarle el tiempo adicional que necesita para no ser un objetivo aleatorio.

Yo mismo ejecuto el sshd en un puerto alternativo en mis máquinas privadas, pero eso es principalmente como una conveniencia para mantener el desorden en /var/log/auth.log. En un sistema multiusuario, realmente no considero que el pequeño beneficio de seguridad hipotético presentado anteriormente sea razón suficiente para la molestia adicional causada por el sshd que no se encuentra en la parte estándar.

andol
fuente
El escenario solo sería válido si todos los administradores no toman ningún margen de maniobra con este "tiempo extra" para ir a almorzar, etc.
Pacerier,
1

Aumenta ligeramente la seguridad. En ese sentido, el atacante que ha encontrado el puerto abierto ahora tiene que resolver qué se está ejecutando en el puerto. Al no tener acceso a sus archivos de configuración (todavía :-)), no tiene idea de si el puerto 12345 está ejecutando http, sshd o uno de los miles de otros servicios comunes, por lo que deben hacer un trabajo adicional para descubrir qué se está ejecutando antes de que puedan atacarlo

También, como señaló otro póster, mientras que los intentos de iniciar sesión en el puerto 22, podrían ser secuencias de comandos para niños, troyanos zombis o incluso usuarios genuinos que escribieron mal una dirección IP. Es casi seguro que un intento de iniciar sesión en el puerto 12345 sea un usuario genuino o un atacante serio.

Otra estrategia es tener algunos puertos de "trampa de miel". Como ningún usuario genuino sabría sobre estos números de puerto, cualquier intento de conexión debe considerarse malicioso y puede bloquear / informar la dirección IP infractora automáticamente.

Hay un caso especial en el que usar un número de puerto diferente definitivamente hará que su sistema sea más seguro. Si su red está ejecutando un servicio público como un servidor web pero también un servidor web de uso interno, puede bloquear absolutamente cualquier acceso externo ejecutando en un número de puerto diferente y bloqueando cualquier acceso externo desde este puerto.

usuario23523
fuente
El aumento de seguridad de ~ 0.1% debe compararse con la disminución de seguridad relevante , lo que probablemente resulte en una pérdida neta total de seguridad dependiendo del caso de uso y el contexto.
Pacerier
0

No por si mismo. Sin embargo, no usar el puerto predeterminado para una aplicación en particular (por ejemplo, SQL Server) básicamente obligará a su atacante a escanear sus puertos; Este comportamiento puede ser detectado por su firewall u otras métricas de monitoreo, y la IP del atacante bloqueada. Además, el "script kiddie" promedio probablemente se disuadirá cuando la herramienta simple o el script de comando que están utilizando no encuentre una instancia de servidor SQL en su máquina (porque la herramienta solo verifica el puerto predeterminado).

KeithS
fuente