Olá pessoal, como prometido anteriormente, irei falar agora de como criar o seu script iptables para que o nosso servidor samba4 possa funcionar com a nossa rede segura. O script foi criado para um servidor CentOS 6.7, mas pode ser aplicado também para outra distribuição.

Iremos utilizar o comando “netstat” para que possamos identificar os serviços e portas rodando em nosso servidor.

$ netstat -tulpn | egrep "samba|smbd|nmbd|winbind"

Segue abaixo um trecho da saída do comando.

tcp        0      0 127.0.0.1:139               0.0.0.0:*                   LISTEN      43270/smbd          
tcp        0      0 192.168.1.68:139                0.0.0.0:*                   LISTEN      43270/smbd          
tcp        0      0 192.168.1.68:88                 0.0.0.0:*                   LISTEN      43273/samba         
tcp        0      0 127.0.0.1:88                0.0.0.0:*                   LISTEN      43273/samba         
tcp        0      0 127.0.0.1:445               0.0.0.0:*                   LISTEN      43270/smbd          
tcp        0      0 192.168.1.68:445                0.0.0.0:*                   LISTEN      43270/smbd          
.....

Mostraremos abaixo uma tabela com as portas utilizadas pelo samba quando é executado como um controlador de domínio Active Directory.

Service Port protocol
DNS* 53 tcp/udp
Kerberos 88 tcp/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 (only if “tls enabled = yes”) 636 tcp
Dynamic RPC Ports** 1024-5000 tcp
Global Cataloge 3268 tcp
Global Cataloge SSL (only if “tls enabled = yes”) 3269 tcp
Multicast DNS 5353 tcp/udp

Iremos agora criar o nosso arquivo “firewall”. Lembrando que o endereço da minha rede é “192.168.1.0/24” e o endereço do meu servidor samba é “192.168.1.68”.

# vim /etc/init.d/firewall
#!/bin/sh
# Limpando as tabelas
iptables -F

# Definindo a politica padrao
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# Liberando ping
iptables -A INPUT -p icmp -j ACCEPT

# Liberando loopback
iptables -A INPUT -s 127.0.0.1 -j ACCEPT

# Liberando as portas do samba4 para o servidor
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 88 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 88 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 135 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 389 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 389 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 464 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 464 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 636 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 1024:5000 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3268 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3269 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 5353 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 5353 -j ACCEPT

# Liberando as conexões DNS e HTTP para o servidor realizar atualizações e instalações de novos pacotes
iptables -A INPUT -d 192.168.1.68 -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -d 192.168.1.68 -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -d 192.168.1.68 -p udp --sport 53 -j ACCEPT

# Liberando ssh apenas para rede local
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT

Feito isso, salvaremos o arquivo e vamos dar permissão para execução ao script criado

# chmod +x /etc/rc.d/init.d/firewall

Iremos criar um link simbolico no local referente ao nível de execução de seu servidor. No meu caso, utilizo o N3

# ln -s /etc/init.d/firewall /etc/rc3.d/S09firewall

Realizaremos um teste com uma máquina Windows XP ingressando no domínio
windows_ingressando_dominio

Pronto. O nosso samba4 está trabalhando com o iptables ativo!

Fonte
Samba Wiki