Samba 4 com GPO e cliente Windows 8

logo-samba

Segue mais um excelente artigo escrito pelo nosso amigo e profissional de TI Lucas França, os contatos dele estão no final do artigo.

“Samba is the standard Windows interoperability suite of programs for Linux and Unix.” Samba.org

O samba é um software livre, licenciado pela GPL (Generic Public License) criado em 1992, que permite o compartilhamento de arquivos/impressão entre máquinas Windows e Linux, além de outras funções. O Samba permite o compartilhamento de impressão “segura” e algumas de suas características são estabilidade e velocidade para garantir a total interoperabilidade entre os Sistemas Operacionais Unix e Windows.

“Samba é um componente importante para integrar servidores e desktops Linux / Unix em ambientes Active Directory. Ele pode funcionar tanto como um controlador de domínio ou como um membro de domínio regular.”

O Propósito deste artigo não é criar uma discussão (que não terá fim – acredite, tenho experiência com isso =/ ) sobre qual sistema ou software é melhor. Se é Windows (Active Directory) ou Linux (Samba).

O intuito é mostrar uma integração simples de máquinas Windows e o Samba, e também a criação de Unidades organizacionais, como Usuários Grupos e até mesmo GPO ( Políticas de Grupo )

Vamos então para a instalação e configuração do Cenário.

Este cenário, foi utilizando máquinas Linux com as versões CentOS 6.5 e clientes com Windows 8.1
Antes da instalação do samba propriamente dito, instale todas as dependências listadas abaixo:

1. gcc
2. libacl-devel
3. libblkid-devel
4. gnutls-devel
5. readline-devel
6. python-devel
7. gdb
8. pkgconfig
9. krb5-workstation
10. zlib-devel
11. setroubleshoot-server
12. setroubleshoot-plugins
13. policycoreutils-python
14. libsemanage-python
15. setools-libs-python
16. setools-libs popt-devel
17. libpcap-devel
18. sqlite-devel
19. libidn-devel
20. libxml2-devel
21. libacl-devel
22. libsepol-devel
23. libattr-devel
24. keyutils-libs-devel
25. cyrus-sasl-devel
26. cups-devel

1-install-samba

Após o Término das dependências instale esses componentes:
OBS: o “perl” é necessário para a compilação do samba.

1. perl
2. wget
3. ntpdate

2-install-sambaApós todas as instalações estiverem concluídas, Ajuste a hora e data do servidor:

3-install-sambaOBS: Agende o ntpdate, para manter a hora do servidor corretamente (com o crontab por exemplo)

Download do código fonte do samba 4:

Entre dentro do diretório /usr/src e faça o download do pacote do Samba 4 com o comando:
root# wget http://ftp.samba.org/pub/samba/stable/samba-4.0.4.tar.gz

4-install-sambaApós a Instalação:

5-install-sambaExtraia o arquivo compactado e entre na pasta do samba-4.0.4:

6-install-samba7-install-sambaInstalação do samba 4:

Preparando para a compilação:

8-install-sambaroot# ./configure – -enable-debug – -enable-selftest – -prefix=/opt/samba

O processo de preparação será iniciado:

9-install-sambaNo final, deverá estar uma tela como esta:

10-install-sambaA Compilação será feita com os comandos:

# make

# make install

Obs: O processo pode demorar um pouco, esta é uma boa hora de ir tomar um cafezinho =)

11-install-samba12-install-sambaE também “ make install ”

13-install-samba14-install-sambaConfigurando o samba 4:

Antes de começar a configuração, ajuste o arquivo /etc/resolv.conf apontando para seu  próprio servidor.

O motivo: Samba ( por default ) trabalha com um DNS interno para resolução de nomes e nomes Netbios. Em um próximo artigo, mostrarei como integrar Samba 4 com o Bind 9.

Vamos ajustar :

15-install-samba
16-install-samba

Entre no diretório principal do Samba: /opt/samba

17-install-samba

Dentro deste diretório foi criado uma estrutura com algumas pastas importantes, por exemplo etc, var, sbin e bin. Os arquivos de configuração do samba esta dentro de /opt/samba/etc/smb.conf a deamon principal para executar o samba está em /opt/samba/sbin/samba, a ferramenta principal do samba está em /opt/samba/bin/samba-tools .

Ou seja, o seu diretório de trabalho principal, será o /opt/samba/ .

Criando a Base de Dados:

18-install-samba

Com esse comando será preciso informar o nome do domínio, o nome Netbios do domínio, Forma e Tipo de resolução de Nomes DNS e senha do Administrador do Domínio. Veja:

19-install-samba

Se tudo estiver correto, o resultado será algo parecido com:

20-install-samba

Ou caso queira passar tudo em penas uma linha de comando:

bin/samba-tool domain provision – -realm=82c.bd8.myftpupload.com – -domain=cooperati – [email protected] – – server-role=dc

Iniciando o Samba:

21-install-samba

Podemos verificar na imagem acima que não existia nenhum processo samba sendo executado.

Para iniciar o samba digite: /opt/samba/sbin/samba

Após iniciar o samba, verifique novamente os processos:

22-install-sambaVerificando se está tudo funcionando:
23-install-samba

Ingressando Windows 8 no domínio:

Verifique se há comunicação entre a estação Windows ( ex: 172.23.200.100) e o Servidor Samba ( ex: 172.23.200.5)

24-install-samba

Clique com botão direito em “Meu computador” e sem seguida em “Propriedades” e “Nome do computador

Clique em “Alterar” e insira o nome do seu domínio. ( Neste Exemplo : Cooperati )

25-install-samba

Será solicitado as Credenciais de Administrador, então entre com a senha do Administrador do samba

(obs: foi a senha gerada com o comando “samba-tool domain provision” )

Neste Exemplo:

Usuário: Administrator

Senha: [email protected]

26-install-samba

Caso encontre problemas com a senha de Administrator, reinicie o Samba e tente novamente :

27-install-samba

Bemvindo ao domínio. !!!! =)

28-install-samba

Assim que ingressar, reiniciar o computador e entre como Administrador do Domínio:

29-install-samba

No momento da efetuar o logon, selecione “Outro Usuário”:

30-install-samba

Veja que o logon será feito no domínio Cooperati, Acesse com a conta “Administrator”:

31-install-samba
32-install-samba

Instalação das Ferramentas Administrativas:

Acessando como Administrador do Domínio, faça a instalação das Ferramentas administrativas para gerenciar o Samba 4.

O Pacote de instalação – KB2693643 – das ferramentas administrativas da Microsoft poderá ser encontrado no link abaixo:

http://www.microsoft.com/pt-br/download/details.aspx?id=39296

33-install-samba
34-install-samba

Baixe e instale – Ferramentas Administrativas:

35-install-samba

Aceite os Termos da Micro$$oft

36-install-samba

37-install-samba

38-install-samba

Criação de Usuários, Grupos e OU:

Abra as ferramentas Administrativas:

39-install-samba

Entre muitas ferramentas encontradas, Abra “Usuários e Computadores do Active Directory”:

40-install-samba

Será que esta tela é familiar ?

41-install-samba

Daqui em diante o processo e idêntico com as versões do Windows Server

Criação de Unidade Organizacional: [Botão direito] Cooperati.com.br / Novo / OU

42-install-samba

Criação de Usuários: [Botão direito] OU / NOVO / usuário

43-install-samba

44-install-samba

Criação de Grupos :

45-install-samba

46-install-samba

Criação e Aplicando GPO:

47-install-samba

48-install-samba

49-install-samba

Abra as ferramentas administrativas / Gerenciamento de Política de Grupo

Criando compartilhamentos:

Pronto, O Samba configurado como Controlador de domínio já está funcionando.

Para criar os compartilhamentos edite o arquivo principal do samba:

50-install-samba

Crie os seus diretórios:

51-install-samba

Reinicie o Samba para aplicar as configurações

52-install-samba

Efetuando Teste com o Cliente:

53-install-samba

54-install-samba

Politicas de grupo funcionando perfeitamente

55-install-samba

56-install-samba

Considerações Finais

Esse foi um simples artigo para exemplificar a usabilidade do servidor Samba juntamente com suas opções.

Graças ao protocolo LDAP, é possível trabalhar de forma transparente com qualquer servidor Microsoft Active Directory. Novamente venho ressaltar que não tenho a intenção de levantar uma discussão sobre qual ferramenta é a melhor, lembre-se, a melhor é aquela que você vai ganhar mais dinheiro. =)

Finalizando este artigo, Algumas ponderações, entre elas eu destaco a utilização de um DNS externo e o Firewall que deverá passar por ajustes:As seguintes portas precisam ser abertas:

  • TCP → 53, 88, 135, 445, 464, 1024-5000, 3268
  • UDP → 53, 88, 123, 389, 464

Portas 1024-5000 são para os serviços RPC usadas pelo Samba, enquanto a porta TCP/53, é usado pelo BIND para receber atualizações de registro de DNS.

Adicione estas regras ao seu script de firewall do servidor Samba:

# Portas Samba 4
iptables -A INPUT -m state –state NEW -m tcp -p tcp -d 192.168.100.14 –dport 5666 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp -d 192.168.100.14 –dport 22 -j ACCEPT
iptables -A INPUT -m state –state NEW -m udp -p udp -d 192.168.100.14 –dport 53 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp -d 192.168.100.14 –dport 53 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp -d 192.168.100.14 –dport 88 -j ACCEPT
iptables -A INPUT -m state –state NEW -m udp -p udp -d 192.168.100.14 –dport 88 -j ACCEPT
iptables -A INPUT -m state –state NEW -m udp -p udp -d 192.168.100.14 –dport 123 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp -d 192.168.100.14 –dport 135 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp -d 192.168.100.14 –dport 389 -j ACCEPT
iptables -A INPUT -m state –state NEW -m udp -p udp -d 192.168.100.14 –dport 389 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp -d 192.168.100.14 –dport 445 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp -d 192.168.100.14 –dport 464 -j ACCEPT
iptables -A INPUT -m state –state NEW -m udp -p udp -d 192.168.100.14 –dport 464 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp -d 192.168.100.14 -m multiport –ports 1024:5000 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp -d 192.168.100.14 –dport 3268 -j ACCEPT

Um abraço, e até próximo artigo.

Espero que gostem do artigo do Lucas França e o incentivem a escrever mais. Comentem, testem e dêem seu feedback.

Os contatos dele são:
Lucas Marcelo França
Graduação: Tecnologia em Redes de Computadores
Contatos: e-mail: [email protected] / [email protected] / LinkedIN: br.linkedin.com/pub/lucas-frança/6b/583/129/
Instrutor de Curso técnico em Redes – Senac Minas