Puertos TCP / IP necesarios para la operación CIFS / SMB

44

Si deseo permitir unidades de red de Windows entre dos computadoras cortafuegos, ¿debo abrir los puertos 137-139 o es suficiente el puerto 445? Tengo que enviar un formulario y obtener la aprobación para abrir los puertos de firewall, y no quiero solicitar más puertos abiertos de los que necesito. Todas las máquinas aquí son Windows XP o posterior.

Nota: cuando digo "unidades de red de Windows", no estoy completamente seguro de si me estoy refiriendo a SMB o CIFS, y no estoy del todo claro sobre la diferencia entre los dos protocolos.

Jonathan
fuente

Respuestas:

58

Los puertos 137-139 son para resolución NetBios / Name. Sin ella, tendrá que acceder a las máquinas por la dirección IP en lugar del nombre NetBIOS. Ejemplo \\192.168.1.100\share_nameopuesto a\\my_file_server\share_name

Por lo tanto, el puerto 445 es suficiente si solo puede trabajar con direcciones IP.

Tim
fuente
En mi sitio, los nombres NetBIOS son siempre los mismos que los nombres DNS. Entonces, si me refiero a las máquinas por nombre de host, ¿Windows podrá encontrar la máquina a través de DNS sin usar NetBIOS?
Jonathan
55
Siempre que tenga un DNS funcional disponible para el cliente, debería ser suficiente.
Tim
1
¿Esto también funciona con direcciones IP públicas? ¿Es suficiente abrir el puerto 445 en el firewall del módem / enrutador ADSL?
Hrqls
11
@Hrqls En teoría, sí, pero AFAIK abrir tu SMB al mundo entero es una muy mala idea.
Samuel Harmer
@ Styne666, totalmente de acuerdo. Aún más: abrir cualquier cosa, que no tiene soporte de seguridad adecuado, a todo Internet es generalmente una mala idea. Recomendaría usar el modo de transporte IPsec para protegerlo al menos.
dess
7

Esta configuración funcionó para mí: 137 / UDP, 138 / UDP, 139 / TCP y 445 / TCP. Fuente e información adicional en: http://www.icir.org/gregor/tools/ms-smb-protocols.html .

Estas son las reglas de iptables para mi servidor Samba:

# The router doesn't need SMB access.
-A INPUT -s 192.168.1.1 -p udp --dport 137 -j REJECT
-A INPUT -s 192.168.1.1 -p udp --dport 138 -j REJECT
-A INPUT -s 192.168.1.1 -p tcp --dport 139 -j REJECT
-A INPUT -s 192.168.1.1 -p tcp --dport 445 -j REJECT

# Actual Samba ports
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 137 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 138 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
Juan
fuente
44
Dado que el OP preguntó acerca de las computadoras con Windows y su nivel de comprensión de iptables es completamente desconocido, esto sería mejor escrito que como un archivo de configuración del sistema completamente diferente.
DarkMoon
1
En inglés simple, UDP 137 y 138, TCP 139 y 445
Arlen Beiler