¿Cuál es el número máximo de puertos?


67

Me gustaría establecer algunos servicios de Linux en puertos no estándar: ¿cuál es el número de puerto válido más alto?

Respuestas:


73

(2 ^ 16) -1, o 0-65,535 (el -1 se debe a que el puerto 0 está reservado y no está disponible). (editado porque o_O Tync me recordó que no podemos usar el puerto 0, y Steve Folly me recordó que solicitó el puerto más alto, no la cantidad de puertos)

Pero probablemente estés haciendo esto de la manera incorrecta. Hay personas que defienden a favor y en contra de los puertos no estándar. Digo que son irrelevantes, excepto para el escáner más informal, y el escáner más informal puede mantenerse a raya mediante el uso de software actualizado y técnicas de firewall adecuadas, junto con contraseñas seguras. En otras palabras, las mejores prácticas de seguridad.


3
-1 por la respuesta incorrecta. Prueba 65.535. Pero un buen punto sobre el argumento a favor / en contra de los puertos no estándar.
Steve Folly

2
Hay personas de seguridad / cumplimiento que fuerzan este tipo de decisiones. Ejecutamos servicios SMTP en un puerto alto predeterminado para protegernos contra la oficina del oficial de seguridad que nos acosa.
duffbeer703

1
Steve, editado, y tienes razón. Respondí la pregunta incorrecta con mi número :)
Matt Simmons

2
@Matt: eliminado -1 :-)
Steve Folly

1
Superviso los intentos de inicio de sesión con ssh y múltiples intentos tienen la IP bloqueada (solución CPanel VPS estándar). Solo estoy tratando de reducir la cantidad de intentos que tengo que mirar cada día. El escaneo de puertos también está bloqueado, por lo que debería reducir esa multitud. También estoy considerando una VPN, pero parecía que cambiar el puerto sería un primer paso más fácil.
Yehosef

41

1-65535 están disponibles, y los puertos en el rango 1-1023 son los privilegiados : una aplicación debe ejecutarse como root para escuchar estos puertos.


8

Aunque 1-65535 son puertos TCP legítimos y es cierto que 1-1023 son para servicios portuarios bien conocidos. Puede encontrarse con problemas aleatorios con sus propios servicios si se inician después de que se establezca un puerto efímero. Para aquellos que no saben, los puertos efímeros son aquellos que están conectados localmente para puntos finales remotos (o algo por el estilo). Entonces, si escribe un servicio TCP que escucha en el puerto 20001. Puede ser bueno hoy ... y mañana. Pero un día su servicio puede iniciarse e intentar vincularse a 20001 y fallará porque se tomó como un puerto efímero. Hay una solucion. Debe hacer que su administrador, o usted mismo, cambie la política efímera de rango de puertos del sistema en su servidor. En sistemas Linux se realiza en dos pasos:

  • Dinamicamente
  • Permanentemente

Deben tomarse ambos pasos, de nada sirve que planee reiniciar, en cuyo caso el paso dinámico no es necesario. Para configurar su rango de 40000 a 65535, haga lo siguiente:

Dinámica

echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range

o

sysctl -w net.ipv4.ip_local_port_range="40000 65535"

Permanente

Agregue lo siguiente a /etc/sysctl.conf:

net.ipv4.ip_local_port_range = 40000 65535

Para leer la configuración actual o confirmar el cambio:

/sbin/sysctl net.ipv4.ip_local_port_range

La salida será algo como esto:

net.ipv4.ip_local_port_range = 9000 65500

Asegúrese de comprender el propósito de su servidor. Reducir demasiado el rango puede conducir a otros problemas.

¡Feliz codificación! (o lo que sea que hagas)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.