Esse é o 21º de uma série que falamos sobre o Samba no Linux e hoje iremos falar e mostrar como liberar o samba no firewall do seu computador. Para acesso aos demais artigos clique aqui.
Em um ambiente de laboratório está ok desabilitar o firewall para realizarmos testes com o samba sem precisarmos “perder” tempo. Porém, quando em ambiente de produção teremos que ter firewall funcionando e o samba com suas portas liberadas. Um firewall ativo nos garante um nível à mais de proteção.
Introdução
A maioria dos tráfegos de rede ocorre usando o protocolo tcp. Aqui estamos falando de transporte de dados.
O Protocolo usado para compartilhamento de arquivos na rede é o SMB. O protocolo SMB cresceu muito desde a sua criação e teve novas funcionalidades acrescentadas através de Pacotes. Durante todo esse tempo o crescimento do SMB foi marcado pela inserção de conjuntos de pacotes. Esses conjuntos(grupos) de pacotes são chamados de Dialeto. Um desses dialetos é o CIFS.
O SMB/CIFS trabalha sobre o protocolo tcp/ip.
NetBIOS é coisa(protocolo) antiga e possibilita computadores ou programas a se comunicarem na rede. Netbios usa as portas 137, 138 e 139. A interface NetBIOS não é mais suportada no Windows Vista em diante(mais novos).
Começando com o Windows 2000 a Microsoft introduziu o “NetBIOS-less SMB”, ou seja, SMB sem NetBIOS. Assim, a porta 445, começou a ser usada para tráfego de rede. Quando falamos de tráfego via rede estamos falando de atividades simples como impressões enviadas para uma impressora na rede, copiar e abrir arquivos que estão em outro computador e até ao simples fato de apenas visualizar as pastas e arquivos localizados em outro local compartilhado.
Antes do Windows 2000 era usada a porta tcp 139 para tráfego de rede e era usado NetBIOS. Esse serviço tem o nome de netbios-ssn quando executamos “netstat” para consultarmos as conexões que estão sendo usadas.
Além de tcp o SAMBA também usa o udp. Quanto ao protocolo udp, ele é usado para possibilitar um rápido broadcast. Broadcast é a transmissão de sinal de um dispositivo para todos os outros da rede. Por exemplo, um roteador está sempre enviando sinal broadcast a fim de que o nome da sua rede wifi(SSID) apareça nos os celulares próximos.
Usando broadcast pelo samba para procurar nomes de computadores e servidores, nomes de domínio. O serviço de nomes do NetBIOS opera usando a porta UDP 137. A porta UDP 138 o é usada para transportar Datagramas. Esse serviço da porta 138 não é bem entendido devido à falta de documentação a respeito.
Faço separação do samba instalado via repostitório(yum, apt…) e o samba compilado pois nesse último, o método compilado, o samba acaba sendo instalado com mais funções e provavelmente irá ser usado como Controlador de Domínio e não somente para compartilhar pastas ou impressoras.
Portas para Samba Instalado via Repositório(apt, yum…)
No samba que instalamos em nosso desktop usando ferramentas como yum ou apt precisamos apenas liberar as portas abaixo:
- 445 tcp
- 137 udp
- 138 udp
- 139 tcp
Conforme texto acima, poderíamos liberar/usar apenas a porta 445 já que as outras são destinadas ao antigo NetBIOS.
Portas Usadas pelo Samba Compilado
Clique aqui para saber o que pe compilação.
Aqui temos o samba instalado via compilação e assim, praticamente deve estar sendo usado como controlado de Domínio(DC). Ele possui muito mais funções e assim muito mais portas a serem abertas. Vamos listá-las abaixo:
Service | Port | Protocol |
---|---|---|
DNS * | 53 | tcp/udp |
Kerberos | 88 | tcp/udp |
ntp ** | 123 | udp |
End Point Mapper (DCE/RPC Locator Service) | 135 | tcp |
NetBIOS Name Service | 137 | udp |
NetBIOS Datagram | 138 | udp |
NetBIOS Session | 139 | tcp |
LDAP | 389 | tcp/udp |
SMB over TCP | 445 | tcp |
Kerberos kpasswd | 464 | tcp/udp |
LDAPS *** | 636 | tcp |
Global Catalog | 3268 | tcp |
Global Catalog SSL *** | 3269 | tcp |
Dynamic RPC Ports **** | 49152-65535 | tcp |
Essa tabela foi retirada da página wiki do samba e inclui também as portas que falamos acima, no início do post.
Liberando as Portas Usadas pelo Samba no Firewall
Como há muitos firewalls e os procedimentos são bem semelhates entre eles, irei ater-me apenas em 3 deles: firewalld, ufw e iptables.
Também não irei postar exemplos liberando todas as portas acima. Irei exibir apenas alguns exemplos então você só precisa seguir o exemplo para liberar as demais.
Liberando Portas com Firewalld
firewall-cmd --add-port=53/tcp --permanent
firewall-cmd --add-port=53/udp --permanent
firewall-cmd --add-port=123/udp --permanent
firewall-cmd --add-port=135/tcp --permanent
…………..
firewall-cmd --add-port=49152-65535/tcp --permanent
Liberando Portas com ufw
ufw allow 53/tcp
ufw allow 53/udp
ufw allow 123/udp
ufw allow 135/tcp
…………..
ufw allow 49152:65535/tcp
Liberando Portas com Iptables
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A INPUT -p tcp --dport 135 -j ACCEPT
iptables -A INPUT -p tcp --dport 49152:65535 -j ACCEPT
Essa ultima opção é necessária ao usar iptables a fim de que o samba funcione adequadamente.
iptables -A INPUT conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Fontes: wiki.samba, samba.org, docs.microsoft.com, computerhope, microsoft, microsoft_netbios,
3 Comments to “Samba 21: Liberando no Firewall as Portas Usadas pelo Samba”