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
Pronto. O nosso samba4 está trabalhando com o iptables ativo!
Fonte
Samba Wiki
Deixe um comentário