Samba 4 com GPO e cliente Windows 8
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
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
Após todas as instalações estiverem concluídas, Ajuste a hora e data do servidor:
OBS: 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
Após a Instalação:
Extraia o arquivo compactado e entre na pasta do samba-4.0.4:
Instalação do samba 4:
Preparando para a compilação:
root# ./configure – -enable-debug – -enable-selftest – -prefix=/opt/samba
O processo de preparação será iniciado:
No final, deverá estar uma tela como esta:
A 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 =)
E também “ make install ”
Configurando 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 :
Entre no diretório principal do Samba: /opt/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:
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:
Se tudo estiver correto, o resultado será algo parecido com:
Ou caso queira passar tudo em penas uma linha de comando:
bin/samba-tool domain provision – -realm=82c.bd8.myftpupload.com – -domain=cooperati – -adminpass=senha@123 – – server-role=dc
Iniciando o 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:
Verificando se está tudo funcionando:
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)
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 )
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: senha@123
Caso encontre problemas com a senha de Administrator, reinicie o Samba e tente novamente :
Bemvindo ao domínio. !!!! =)
Assim que ingressar, reiniciar o computador e entre como Administrador do Domínio:
No momento da efetuar o logon, selecione “Outro Usuário”:
Veja que o logon será feito no domínio Cooperati, Acesse com a conta “Administrator”:
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
Baixe e instale – Ferramentas Administrativas:
Aceite os Termos da Micro$$oft
Criação de Usuários, Grupos e OU:
Abra as ferramentas Administrativas:
Entre muitas ferramentas encontradas, Abra “Usuários e Computadores do Active Directory”:
Será que esta tela é familiar ?
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
Criação de Usuários: [Botão direito] OU / NOVO / usuário
Criação de Grupos :
Criação e Aplicando GPO:
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:
Crie os seus diretórios:
Reinicie o Samba para aplicar as configurações
Efetuando Teste com o Cliente:
Politicas de grupo funcionando perfeitamente
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