Samba4, Windows e Linux convivendo em Harmonia

Samba4

Samba4

Muito sempre se falou e tenho de admitir, um dos serviços que a Microsoft sabe fazer muito bem é o Active Directory. Toda a facilidade de configuração centralizada, GPO’s, etc são alguns dos pontos fortes da solução. Muitos falam em substituição dessa através de Openldap e Samba, mas tenho de confessar que não era a mesma coisa. Mas isso até a pouco tempo atrás….. 

O Samba 4 estável foi lançado! (Já há algum tempo rsrs), e tenho de confessar que está muito, mas muito legal! Claro que não consegui testar todas as funcionalidades dele (Até porquê nem em um AD acredito que conseguiria rsrs) mas testei uma das principais, a grande promessa do Samba, as GPO’s… E o melhor, FUNCIONA!!

Desde um simples domínio com um controlador somente, até uma estrutura mais robusta, com PDC’s, BDC’s, etc, o Samba4 oferece.

Chega de blá blá blá e vamos as mãos na massa. Para quem já se aventurou no antigo amigo Samba3 com Openldap sabe que são várias as configurações a serem feitas, já no Samba4 totalmente diferente. É simples, prático e por incrível que pareça rápido (Tirando a parte da compilação rsrs). Vamos lá!

1. Preparando o Ambiente:

Para nosso laboratório, utilizaremos uma máquina com Debian 7 rodando em nosso KVM guerreiro! rsrs Uma VM bem simples, com 256MB de RAM (Para subir um Windows Server 2008 no mínimo 2GB, mas tudo bem….).

VM em KVM

VM em KVM

Também é importante fazer algumas alterações no que se refere a permissões e acessos do sistema. Como o Samba trabalha com ACL, é necessário ativar este tipo de complemento no sistema. Vamos editar o /etc/fstab inserindo os parâmetros: acl, user_xattr.

fstab

 

E depois, vamos remontar nosso fstab

fstab2

Também é importante configurarmos o nsswitch.conf.  Este arquivo de configuração é responsável por determinar a ordem das buscas que o sistema efetuará nos serviços de rede. Isso é importante pois os serviços do Samba além de consultarem informações de domínio, as informações do host, também precisará consultar informações do WinBind. Então vamos lá:

nsswitch

 

No nosso arquivo de configuração, inserimos o winbind após as consultas de compat em passwd e group. Isso é importante pois além da busca local, ele também fará a busca via WinBind para estes tipos de solicitações.

Outro ponto importante, configurarmos o hosts de nosso controlador de domínio, inserindo seus respectivos endereços para a correta localização dos nomes. No nosso exemplo, nosso domínio é rhm.local e o servidor, Samba4, portanto pode-se visualizar na imagem abaixo:

hosts

2. Instalando os pacotes necessários:

Não iremos instalar o Samba4 via apt-get, vamos fazer do modo “hard” , compilando este. Porém, ninguém é de ferro né?! rsrs vamos então solucionar primeiramente as dependências para o pacote.

apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl libpam0g-dev

Pode-se observar que temos instalação suporte a ACL, Phyton, PAM, Cups, ldap, entre outros, tudo para prover os serviços que o Samba disponibilizará.

apt-get

E damos um ok!

apt-get2

(No meio da instalação dos pacotes, podem ser exibidas telas de configuração do Kerberos como a exibida abaixo. Não há com o que se preocupar, pois efetuaremos a configuração do Kerberos a partir dos arquivos gerados após a instalação e configuração do Samba4, portanto podem seguir sem configurar estes)

kerberos

3. Baixando o Samba4

No site do Projeto do Samba4. vamos baixar o dito cujo.

Link: https://www.samba.org/

samba-page

4. Extrair o tar.gz

download extract

 5. Começar a “brincadeira”

Para fins organizacionais do sistema, vamos trabalhar com o Samba no /usr/src. Tomando como base que temos o Samba no respectivo diretório (No meu exemplo, eu extrai o samba no /root e depois dei um mv <diretorio_do_samba> /usr/src, mas poderia também efetuar um tar xzvf samba-4.1.7.tar.gz -C /usr/src que o resultado seria o mesmo)

Vamos lá! Vamos começar a fase de conf de nosso pacote.

configure

Demos um ./configure com os seguintes parâmetros:

–prefix=/usr -> Indica o local de instalação do pacote

–localstatedir=/var -> Local dos logs

–infodir=/usr/share/info -> Local dos helps e infos

–mandir=/usr/share/man -> Local do Man Page

–sysconfdir=/etc -> Local do arquivo de configuração do Samba

–enable-fhs -> Ativa o FHS para manter a hierarquia do sistema

 6. Make e Make install

make

Make

Make Install

Make Install

Após o make e depois make install, não se engane, não é um processo rápido. No meu caso, foram aproximadamente 8 minutos de make install. E make quase 16, então se demorar, fiquem tranquilos. O processo de compilação realmente demora um pouco. Claro que tudo depende do hardware utilizado.

 7. Samba Domain Provision

samba-domain-provision

Esta é uma parte importante. Agora transformaremos nosso Samba em um controlador de Domínio. Utilizamos os seguintes parâmentros:

–function-level=2008_R2 -> Executará a função como um Windows Server 2008 R2

–use-rfc2307 -> Utilizará a RFC 2307, que define os parâmetros de como nosso controlador de domínio funcionará

–use-xattrs=yes -> Permite a utilização de ACL’s e atributos (Nota: Efetuamos a configuração anteriormente no /etc/fstab para o suporte a este tipo de tecnologia)

–interactive -> A configuração será efetuada de modo interativo, tal que nos será questionado o Domínio e o Realm pertencentes nosso Controlador.

samba-domain-provision2

(Dica: Realm = Reino -> Meu Reino é o RHM.LOCAL

Domain = Domínio -> Meu Domínio é o RHM. O Realm sempre é o nome completo, “uma espécie de FQDN”. Já o domínio é o nome sem o FQDN. Lembrando que é um exemplo para ilustrar, esta não é a real definição de domínio e reino)

Vale lembrar também que será questionado referente ao tipo de DNS que será utilizado, entre eles como exemplo o Bind e o Samba Internal. No nosso exemplo utilizamos o Samba Internal a fim de facilitar a configuração (E por este já vir pré-configurado também rsrs).

 8. Configurando Kerberos

Este é simples, depois do samba-domain-provision, é necessário somente copiar o arquivos kerberos já “pré-moldado” pelo Samba4 para o /etc/krb5.conf

cp-kerberos(cp /var/lib/samba/private/krb5.conf /etc/)

 9. Criando Script de Start/Stop/Restart do Samba

No site https://wiki.samba.org/index.php/Samba4/InitScriptpegaremos nosso script de inicialização. Caso queira-o já pronto, é só adicionar deste Link ao seu /etc/init.d/ e efetuar o correto permissionamento chmod 755 /etc/init.d/<nome_do_script>.

No meu caso, o script chama-se samba-ad-dc, portanto chmod 755 /etc/init.d/samba-ad-dc

10. Verificando o Status de nosso Servidor Samba

Bom, para isso não tem muito segredo. Como em toda linha Linux, vamos utilizar o bom status do serviço!

service

Bom, o serviço está ativo, porém devemos nos atentar as portas que devem estar ativas e recebendo conexões para o correto funcionamento do sistema. São algumas destas:

389 – Ldap

TCP e UDP 88 – Kerberos

53 e 445 – DNS e SMB respectivamente

Outras portas podem varias de acordo com os serviços que estão rodando internamente no servidor. Sempre para verificarmos quais são as portas ativas em nosso sistema, utilizamos o bom e velho netstat, dessa forma: netstat -atun, com os parâmetros para mostrar todas as conexões TCP e UDP.

netstat_1

 

 11. Testes e validação

Poxa, todo esse trabalho e até agora nada de concreto, só um monte de códigos, linhas, explicações…. etc. Quero ver o negócio funcionando mesmo!!!! Tudo bem. Temos uma outra VM, alocada em outro computador com Windows 7 Ultimate SP1 prontinha para testes. Em nosso exemplo, não segreguei os servidores de testes da minha rede original. Portanto não inseri um serviço DHCP entregando as informações corretas a nossas máquinas teste. Para evitar problemas, vamos inserir os IP’s do Windows 7 na mão: No meu caso, meu controlador de domínio é o 192.168.1.112 e meu gateway 192.168.1.1, todos em uma rede /24. Como meu DHCP já entrega todos estes endereços, com excessão do DNS corretamente, somente definirei o DNS na mão para meu controlador de domínio.

win7

Feita configuração, vamos inseri-la no domínio! Será que vai dar certo?

win72

E não é que funcionou?! Agora sim!

Um detalhe, toda a administração, sem excessões, pode ser feita através das ferramentas administrativas de domínio do Windows! Sim! Quer inserir um usuário, é por lá que você faz! Configurar uma GPO, mesma coisa. Definir alguns compartilhamentos, também pode ser feita por lá. Enfim, toda a administração como uma ferramenta completamente Microsoft, só que base Linux. Fala ai, não é uma “belezura”?? rsrs

Este “Active Directory” será nosso controlador de domínio para nossos próximos artigos, aproveitando sua base de dados.

Dúvidas, sugestões, críticas? Aberto a todas!

(Este artigo dedico ao meu amigo Ubirata Bezerra, que foi quem de fato me mostrou o Samba 4 e que apresentou o que esta ferramenta pode prover. Inclusive uma das referências deste artigo é da nossa documentação elaborada em palestra sobre o Samba 4 apresentada ano passado).

Fontes:

RFC2307

WikiSamba

Viva o Linux

TechNet

 Tutorial Samba4 – Ubirata Bezerra

 

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *