Portas TCP / IP necessárias para operação CIFS / SMB

44

Se eu quiser permitir unidades de rede do Windows entre dois computadores com firewall, preciso abrir as portas 137-139 ou a porta 445 é suficiente? Preciso enviar um formulário e obter aprovação para abrir portas de firewall e não quero solicitar mais portas abertas do que preciso. Todas as máquinas aqui são Windows XP ou posterior.

Nota: quando digo "unidades de rede do Windows", não tenho certeza se estou me referindo a SMB ou CIFS e não tenho muita certeza sobre a diferença entre os dois protocolos.

Jonathan
fonte

Respostas:

58

As portas 137-139 são para resolução de NetBios / Nome. Sem ele, você terá que acessar as máquinas pelo endereço IP, ao contrário do nome NetBIOS. Exemplo \\192.168.1.100\share_namecontrário a\\my_file_server\share_name

Portanto, a porta 445 é suficiente se você puder trabalhar apenas com endereços IP.

Tim
fonte
No meu site, os nomes NetBIOS são sempre os mesmos que os nomes DNS. Portanto, se eu me referir às máquinas por nome de host, o Windows poderá encontrar a máquina pelo DNS sem usar o NetBIOS?
Jonathan
5
Contanto que você tenha o DNS em funcionamento disponível para o cliente, isso será suficiente.
Tim
1
isso também funciona com endereços IP públicos? É suficiente abrir a porta 445 no firewall do modem / roteador ADSL?
Hrqls
11
@Hrqls Em teoria, sim, mas a AFAIK abrir sua SMB para o mundo inteiro é uma péssima idéia.
Samuel Harmer
@ Styne666, concordo totalmente. Ainda mais: abrir qualquer coisa, que não possua suporte de segurança adequado, para toda a Internet geralmente é uma má ideia. Eu recomendaria usar o modo de transporte IPsec para protegê-lo pelo menos.
dess
7

Essa configuração funcionou para mim: 137 / UDP, 138 / UDP, 139 / TCP e 445 / TCP. Fonte e informações adicionais em: http://www.icir.org/gregor/tools/ms-smb-protocols.html .

Portanto, estas são as regras do iptables para o meu 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
fonte
4
Dado que o OP perguntado sobre computadores Windows e seu nível de entendimento do iptables é completamente desconhecido, seria melhor escrever do que como um arquivo de configuração do sistema completamente diferente.
DarkMoon 14/10
1
Em inglês simples, UDP 137 e 138, TCP 139 e 445
Arlen Beiler