Neste artigo irei mostrar a integração do Serviço de Diretórios(Active Directory) já nativo no SAMBA4, e sua interpolaridade com outros softwares assim como samba 3.x, postfix, webmin, sshd entre outros softwares, através de autenticação via modulo WINBIND + PAM. A interpolaridade hoje em dia é muito difundida, pois de forma geral e definida como sendo a capacidade de plataformas diferentes atuarem plenamente em conjunto, comunicando-se por intermedio de padrões abertos, neste caso em especial o SAMBA4 pode ser utilizando tanto por aplicativos utilizandos pelo windows como no linux de uma maneira em especial a comunicação entre o Serviço de Diretório(Active Directory) entre aplicativo utilizados no Linux.
O Wibind nesta estrutura é usado na relação de confiança entre domínios e o samba, neste caso entre domínio configurado no SAMBA4 e o SAMBA3x, assim fazendo a troca de informações de usuários e serviços de rede.
O PAM(Pluggable Authentication Modules, ou Módulos de Autenticação Plugáveis/Modulares) é uma biblioteca que permite autenticar usuários em ambientes como GNU/Linux, Unix ou Solaris. A autenticação no Linux era apenas via senhas criptografadas armazenadas em dois arquivos locais chamados /etc/passwd e /etc/shadow, quando um programa que exige login pede o nome do usuário e a senha, criptografava a senha e comparava o resultado com o armazenados nestes arquivos, se fossem iguais, garantia o acesso à máquina se não era regeitado o pedido.
A Sun® criou o PAM e liberou as especificações em forma de RFC.
Os modulos PAM são divididos em quatro categorias, definindo os tipos diponiveis, no linux, normalmente estão localizados
no diretório /etc/pam.d/. Nestes arquivos, a linha de configuração é dada como:
auth:
Verifica que o usuário é realmente quem ele diz que é. Pode ser bem simples, pedindo apenas por um nome e uma senha, ou utilizando autenticação biométrica, por exemplo (como uma impressão de voz, uma imagem da retina ou impressão digital).
account:
Verifica se o usuário em questão está autorizado a utilizar este serviço ao qual ele está se autenticando. Os módulos aqui podem checar por horário, dia da semana, origem do login, login simultâneo, etc.
passwd:
Este serviço é usado quando se deseja mudar a senha. Por exemplo, aqui podem ser colocados módulos que verificam se a senha é forte ou fraca.
session:
A session fica encarregada de fazer o que for necessário para criar o ambiente do usuário. Por exemplo, fornecer o acesso a alguns dispositivos locais como o de áudio ou cdrom, montar sistemas de arquivos ou simplesmente fazer o registro do evento nos arquivos de log do sistema.
O control-flag é utilizado para indicar de que forma a biblioteca do PAM reagirá ao sucesso ou falha do módulo que está associado, alguns control-flag:
required:
O resultado deste módulo influência diretamente o resultado final. Uma falha em um módulo deste tipo só aparecerá para o usuário após todos os outros módulos desta classe serem executados.
requisite:
Se a autenticação do módulo falhar nega a autenticação imediatamente.
sufficient:
A falha deste módulo não implica em falha da autenticação como um todo. Se o módulo falhar, o próximo da classe é executado. Se não houver próximo, então a classe retorna com sucesso.
optional:
Os módulos marcados como optional praticamente não influenciam o resultado da autenticação ele só é significante se o módulo for único em relação ao serviço ou classe.
Ambiente
Instalação e requisitos do servidor Samba4:
https://diegograssato.wordpress.com/2009/10/06/instalacao-e-configuracao-samba4/
Configurações da máquina “MAIL”:
• Linux: Ubuntu Server 9.10, instalação mínima com o sistema básico e OpenSSH:
http://www.ubuntu.com/getubuntu/download-server
Após a instalação será instalado os seguintes pacotes:
|
Alguns pacotes foram adicionados para sincronização de horário e verificação de rede “ntpdate e nmap “.
Configurações
A primeira coisa a ser feita é sincronização da hora da máquina com o servidor, use este comando:
|
Para agilizar o processo adicione esta linha em “/etc/rc.local”, toda vez que o micro iniciar ele irá sincronizar o seu horário.
Agora o primeiro passo é fazer a configuração do cliente kerberos em “/etc/krb5.conf”, faça uma backup antes do arquivo original:
|
Segue conteúdo do arquivo:
|
|
Em seguida, vamos testar a comunicação com o SAMBA4 utilizando
|
Kerberos.
|
Digite a senha, e vamos testar se ele adquiriu as credenciais:
Pronto!
Em seguida, vamos editaremos o arquivo nsswitch.conf, o arquivo Network Services Switch (/etc/nsswitch.conf) determina a ordem das buscas realizadas quando uma certa informação é requisitada, exatamente como o arquivo /etc/host.conf determina o modo como
|
pesquisas de hosts são executadas.
E alterar as linhas:
|
DE:
|
PARA:
O ambiente está preparado para receber o SAMBA/Winbind.
Configurando o Samba/Winbind
|
Vamos fazer backup do arquivo original e depois vamos criaremos o nosso arquivo de configuração:
|
|
||||
|
Criado o arquivo de configuração, vamos reiniciar os serviços do Samba e do Winbind:
|
|
Colocando a máquina em domínio.
|
Verificando se o Winbind está comunicando com o SAMBA4:
|
Listando Usuários que estão cadastrados no SAMBA4:
Utilizaremos shell script para criação dos diretorios HOMEs dos usuários setando suas permissões de acesso, este script foi retirado de “http://www.vivaolinux.com.br/artigo/Postfix-+-AD-%28Active-Directory%29?pagina=9” e editador por mim, você pode fazer as alterações que achar necesseário ao seu ambiente:
|
|
|
|
Testando se o samba está realmente buscando os uasuários do SAMBA4 e puxando se GUIDs e a pasta HOME:
|
Podemos usar o comando “finger” para mostrar as informações de cada usuário:
Configurando SSHD
Agora vamos testar todo este sistema de autenticação com o aplicativo de acesso remoto a servidores mais utilizado o SSH(Secure Shell), vamos instala-lo e configura-lo:
|
|
Descomentaremos a seguinte linha “UsePAM yes”, que será reponsavél pela busca dos usuários via PAM, agora editaremos o arquivo “sshd” em “/etc/pam.d”:
|
Reinicie o daemon sshd:
|
Vamos testar a autenticação:
|
OK! Funcionando, agora testaremos se o samba direcionou para o diretório home do usuário:
Direcionado!
|
Este é um simples exemplo de sincronização de usuário entre aplicativos, também podemos usar está mesma configuração via modulo PAM_WINBIND a outros aplicativos, agora um exemplo com o software WEBMIN que é usado para administração remota de configurações de servidores via Web, iremos instalar e fazer as configurações necessarias:
|
No final da instalação ele pedirá algumas informações sobre acesso e usuário administrador, após a instalação acessaremos o webmin via web, pelo “IP+:10000”, autentique com o usuário criado, agora editaremos o modulo PAM responsavél pela busca de usuários do webmin:
|
Apague seu conteúdo e coloque este:
Agore mudaremos as configurações de autenticação do webmin siga os seguintes passos: “Webmin -> Configuração do Webmin -> Autenticação”, marque as opções “Utilizar autenticação PAM para Unix, se disponível” e “Support full PAM conversations?”, a tela irá ficar mais ou menos assim:
Quando a autenticação de sessão está habilitada, cada sessão de usuário autenticado será acompanhada pelo Webmin, possibilitando que usuário inativos sejam automaticamente desconectados. Tenha em mente que habilitar ou desabilitar autenticação de sessão pode forçar todos os usuário s se autenticarem novamente.
Agora salve as configurações fala logof e tente autenticar com algum usuário que esteje cadastrado no SAMBA4 e voilaaa!!! autenticou!!!
Podemos adicionar um nivél a mais de segurança em nas autenticações de nossos usuários adicionado aos módulos de autenticação o modulo “pam_krb5.so”, assim quando o usuário fazer a autenticação será gerado um ticket de autenticação, segue o exemplo do sshd:
|
||
|
Verificando se realmente foi criada as credenciais de autenticação:
|
OK! Ele adquiriu os tickets de autenticação relamente!, voçê pode fazer a mesma coisa o com webmin, caso você não queira complicar muito pode usar tando o modulo “pam_krb5.so” enquanto “pam_winbind.so”, o “ pam_krb5.so” é util quando somente se utliza autenticação sem acesso as diretórios correntes do shell da máquina, agora o “pam_winbind.so”, é util na comunicação e busca de informações no SAMBA4 e na montagem dos diretórios pessoais do usuários, claro que aí fica a seu critério, com este tipo de autenticação pode ser utilizado por outros serviços como de ftp, email, login, entre outros.
Muito bom seu artigo, mas tenho uma dúvida
Só disponho de um servidor como ficaria os compartilhamento privados do smb.conf eles poderiam utilizar a mesma base de usuarios do samab4 AD ou tenho que fazer a interação em localhost como neste artigo