(Autenticação de sistema Linux usando LDAP e mapeamento do home do usuário com o SAMBA em substituição ao NFS)
Pré-requisitos:
- Instalação do Gosa;
- Criação de usuário na base LDAP (conta UNIX);
1 Introdução
Nesse artigo será mostrado como habilitar autenticação em sistema Linux, mas especificamente os sistemas baseados em Debian, tais como Ubuntu. Autenticação um sistema Linux em um servidor de autenticação com o LDAP é algo necessário e fundamental para o bom funcionamento de uma rede.
A autenticação do sistema Linux dá ao usuário o acesso a uma shell, por meio da qual ele pode interagir com o sistema. Autenticação só é possível devido ao módulo de autenticação que o Linux utiliza que é o PAM. Quando instalamos o pacote libnss-ldap, todos os ajustes no módulo PAM são feitos automaticamente.
# apt-get install libnss-ldap
Durante a instalação, alguns passos devem ser preenchidos. O primeiro passo é definir o ip do servidor LDAP, como mostra a figura 1.
Figura 1 – Configuração do ip do servidor LDAP
Na tela seguinte é solicitado o suffix do servidor LDAP, como motra a figura 02.
Figura 02 – Configuração do suffix
Na próxima tela é solicitada a versão do LDAP. Normalmente estamos trabalhando com a versão 3 do LDAP.
A próxima tela é muito importante, porque permite o armazenamento da semana do administrador do LDAP e possibilita a utilização desses dados por outras aplicações como NFS. A senha do administrador será armazenada em outro arquivo. Portanto escolha a opção "YES" como mostra a figura 03.
Figura 03 – Armazenamento do administrador do LDAP
A próxima tela define que o sistema vai utilizar o login do database.
Figura 04 – definição do login
Na telas seguintes é definido o administrador da base LDAP e a sua senha.
Após a instalação do pacote libnss-ldap todos os ajustes no PAM foram feitas pelo instalador. Dentro do diretório /etc/pam.d/, temos os arquivos common-account, common-auth, common-password contém as linhas de integração do PAM com LDAP.
Configuração dos arquivos
O arquivo nsswitch.conf define os locais onde o sistema operacional pesquisará para realizar autenticação. Na maioria dos casos é definido mais de um local, como, por exemplo, "passwd: files ldap", sendo que, neste caso, o sistema irá procurar primeiro nos arquivos (files) e em seguida no LDAP.
passwd: files ldap
shadow: files ldap
group: files ldap
Neste ponto, o sistema estará buscando as senhas na base de dados LDAP. Para verificar se isso está realmente acontecendo, use o comando getent:
# getent passwd
Ele deverá retornar todos os usuários que estão no LDAP.
Compartilhamento do HOME
Com o libnss-ldap instalado e o arquivo nsswitch.conf configurado, podemos fazer o teste para verificar se o sistema está autenticando os usuários do LDAP.
Discher login: clodonil
Password: * * * *
No directory, logginf in with HOME=/
[clodonil@Discher] /$
No exemplo acima, não existe o diretório /home/clodonil no sistema. O diretório é definido na base LDAP. Por isso que o sistema não encontrou o HOME do usuário, porque não existe. Para resolver, podemos configurar para ser montando o HOME do usuário que deve estar no servidor de arquivo, através do SAMBA ou NFS.
Neste artigo vamos utilizar o SAMBA devido aos problemas e "fama" do NFS. O SAMBA deve estar configurado e o mesmo usuário deve estar cadastrado no servidor SAMBA.
Vamos instalar os pacotes para montar o smbfs durante o login, os dois pacotes são libpam-mount e smbfs.
# apt-get install libpam-mount smbfs
Após a instalação vamos fazer um teste no shell para termos a certeza que o SAMBA está funcionando corretamente. Para isso vamos montar o HOME do usuário no /mnt.
# mount –t smbfs –o username=clodonil,password=senha //servidor_samba/clodonil /mnt
Se o mapeamento funcionar corretamente, vamos passar para a configuração do arquivo pam_mount.conf.xml que é o arquivo que faz o mapeamento automático do usuário após o login.
Vamos editar o arquivo /etc/security/pam_mount.conf.xml, adicionando a seguinte linha.
<volume fstype="smbfs" server="ip_do_servidor_samba" path="%(USER)" mountpoint="/home/%(USER)" options="iocharset=utf8,file_mode=0700,dir_mode=0700" />
Essa linha adicionada define que será utilizado o protocolo "smbfs", e também deve ser definido o ip do servidor do SAMBA no campo server. Os outros campos como %(USER) será substituído automaticamente pelo sistema na hora do login pelo usuário em questão.
Segue o arquivo /etc/security/pam_mount.conf.xml completo.
<?xml version="1.0" encoding="utf-8" ?>
quot;pam_mount.conf.xml.dtd">
<pam_mount>
<volume fstype="smbfs" server="ip_do_servidor_samba" path="%(USER)" mountpoint="/home/%(USER)" options="iocharset=utf8,file_mode=0700,dir_mode=0700" />
<debug enable="0" />
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
<mntoptions require="nosuid,nodev" />
<path>/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin</path>
<logout wait="0" hup="0" term="0" kill="0" />
<mkmountpoint enable="1" remove="true" />
</pam_mount>
Feito isso, será montado no sistema de arquivo o HOME do usuário na hora do login.
66 comentários
Enviar um comentárioTestando no ubuntu
"# mount –t smbfs –o username=clodonil,password=senha //servidor_samba/clodonil /mnt", porem com as alteracoes no arquivo /etc/security/pam_mount.conf.xml
o mesmo nao esta montando o diretorio home apos o login..
distro ubuntu 9.0.4
Como criar perfil padrão?
Ex: Área de trabalho, ícones, paineis, configurações de proxy e browser, etc...
Valeu!!!
Resposta ao Imigrante
Erro
/home/
Autenticação do Ubuntu no ldap
Autenticação do Ubuntu no ldap