Sejam todos bem vindos ao Café com Linux!
Decidi criar o primeiro post com um tutorial. Pretenderei sempre postar novos tutoriais, dicas e notícias com assuntos relacionados à área de Tecnologia da Informação, buscando priorizar sempre Software Livre.
Este será um tutorial sobre o Samba4, uma ferramenta que tem amadurecido muito desde sua primeira versão. Uma das grandes vantagem ao utilizar o Samba4 é poder criar um controlador de domínio Active Directory (AD DC) similar ao da Microsoft. O objetivo deste post é preparar um ambiente RHEL/CentOS com as dependências necessárias para a compilação, instalação e primeira configuração. Não irei abordar a instalação do RHEL/CentOS, pois imagino que já saibam como fazer.
O ambiente utilizado:
- VM CentOS 6.7 x86_64 minimal (utilizei uma imagem mínima por instalar somente o necessário para o funcionamento do S.O.);
- 1GB de RAM;
- 20GB de HD;
Como utilizei uma imagem minimal (offline), recomendo fazer a atualização após a instalação do S.O. utilizando o comando:
# yum update
Iremos fazer a instalação e configurações iniciais com o nosso serviço de firewall iptables parado e o SELinux no modo permissivo com os comandos abaixo. Lembrando que não é recomendável utilizar um servidor em produção com o firewall desabilitado e como se trata somente de um laboratório, deixaremos a criação de um arquivo iptables configurado de forma correta, liberando somente as portas necessárias para o funcionamento do Samba4 em um outro post.
# service iptables stop
# setenforce 0
Iremos editar o arquivo do SELinux e alterar a linha conforme abaixo:
# vim /etc/sysconfig/selinux
SELINUX=permissive
Iremos instalar agora os pacotes necessários para a compilação e funcionamento do samba:
# yum install -y epel-release vim wget man perl gcc attr libacl-devel libblkid-devel gnutls-devel readline-devel python-devel gdb pkgconfig krb5-workstation zlib-devel setroubleshoot-server libaio-devel setroubleshoot-plugins policycoreutils-python libsemanage-python perl-ExtUtils-MakeMaker perl-Parse-Yapp perl-Test-Base popt-devel libxml2-devel libattr-devel keyutils-libs-devel cups-devel bind-utils libxslt docbook-style-xsl openldap-devel autoconf pam-devel systemd-devel
Obtendo o samba:
Utilizaremos o “wget” para baixar a última versão estável do Samba4 no site “https://www.samba.org/samba/download/”
$ cd /usr/src
$ wget "https://ftp.samba.org/pub/samba/samba-latest.tar.gz"
$ tar zxvf samba-latest.tar.gz
$ cd /usr/src/samba-4.2.3
Compilando o samba:
Utilizaremos o comando abaixo para que seja criado o makefile e seja possível compilar o samba. Nessa etapa é interessante acompanhar o resultado final, pois será informado se há necessidade de instalação de mais algum pacote. Caso tenha ocorrido tudo com sucesso o resultado final deverá ser ” ‘configure’ finished successfully (47.522s)”.
$ ./configure
Esse processo pode levar algum tempo, de acordo com o seu hardware. Iremos executar o seguinte comando para compilar o samba:
$ make
Instalando o samba:
Esse processo também pode levar algum tempo. Iremos executar o seguinte comando para instalar o samba:
# make install
Provisionando o samba:
Após a instalação, iremos criar o Active Directory.
# /usr/local/samba/bin/samba-tool domain provision
Realm [LOCAL]: CAFE.LOCAL //Você deverá inserir o nome completo do domínio em caixa alta (FQDN); Domain [CAFE]: //Nome do domínio ou ENTER para escolher a opção já definida como padrão; Server Role (dc, member, standalone) [dc]: //Você deverá informar se será um controlador de domínio, membro ou standalone. Como iremos criar o AD DC, deveremos escolher a opção [dc] que já está como padrão; DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: //Utilizaremos o DNS do próprio samba4 como backend, então pressionamos novamente ENTER para o padrão; DNS forwarder IP address (write 'none' to disable forwarding) [192.168.1.1]: //No meu caso estou escolhendo um servidor DNS da minha rede para ser utilizado como forwarder em casos que o samba não consiga resolver os nomes; Administrator password: //Você deverá definir uma senha complexa para que o provisionamento do domínio seja criado com sucesso; Retype password: //Você deverá reinserir a senha para confirmar. Após essa etapa, se tudo estiver ocorrido bem, seu samba retornará um mensagem similar à seguir;
O resultado deverá ser parecido com o abaixo:
Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: cafecomlinux NetBIOS Domain: CAFE DNS Domain: cafe.local DOMAIN SID: S-1-5-21-11342085-354663710-1608352529
Testando o samba:
Iniciaremos o Samba4 em modo standalone para realizar alguns testes. O nosso samba ainda não tem scripts de inicialização. Estarei criando um novo post, onde utilizaremos um modelo disponível no site wiki.samba.org.
# /usr/local/samba/sbin/samba
Executaremos o “smbclient” para checar se o samba criou os compartilhamentos padrões “netlogon” e “sysvol” durante o seu provisionamento.
# /usr/local/samba/bin/smbclient -L localhost -U%
Testaremos agora a autenticação no compartilhamento “netlogon” com usuário e senha criados no momento de provisionamento do samba:
# /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator -c 'ls' Enter Administrator's password: Domain=[CAFE] OS=[Windows 6.1] Server=[Samba 4.2.3] . D 0 Thu Sep 3 23:40:16 2015 .. D 0 Thu Sep 3 23:40:55 2015 17971068 blocks of size 1024. 15315052 blocks available
Testando o DNS
O DNS é necessário para o funcionamento do Active Directory. Sem o DNS configurado, o Kerberos e alguns outros serviços podem não funcionar corretamente. Iremos alterar o arquivo “resolv.conf” inserindo as informações do nosso servidor DNS do samba.
# vim /etc/resolv.conf
; generated by /sbin/dhclient-script search cafe.local //Nome do domínio; nameserver 192.168.1.67 //Endereço de ip do servidor samba4;
Para testar se o DNS está trabalhando direito, execute os comandos a seguir e compare a saída com o mostrado abaixo:
# host -t SRV _ldap._tcp.cafe.local _ldap._tcp.cafe.local has SRV record 0 100 389 cafecomlinux.cafe.local.
# host -t SRV _kerberos._udp.cafe.local _kerberos._udp.cafe.local has SRV record 0 100 88 cafecomlinux.cafe.local.
# host -t A cafecomlinux.cafe.local cafecomlinux.cafe.local has address 192.168.1.67
Se retornar algum erro, verifique os logs.
Configurando o Kerberos:
Iremos copiar ou criar um link simbólico do arquivo de configuração gerado na criação do AD para o local padrão do arquivo de configuração no sistema.
# ln -sf /usr/local/samba/private/krb5.conf /etc/krb5.conf
Agora iremos testar o Kerberos gerando um ticket com o “kinit” e “klist”.
# kinit administrator@CAFE.LOCAL Password for administrator@CAFE.LOCAL: Warning: Your password will expire in 41 days on Thu Oct 15 23:40:53 2015
# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@CAFE.LOCAL Valid starting Expires Service principal 09/04/15 19:36:56 09/05/15 05:36:56 krbtgt/CAFE.LOCAL@CAFE.LOCAL renew until 09/05/15 19:36:47
Fonte:
Samba Wiki
Deixe um comentário