Cliente Linux no servidor LDAP

Aplicar as configurações necessárias à inclusão de clientes Linux em servidores LDAP. Incluir os pacotes necessários, ajustar adequadamente os arquivos de configuração do cliente LDAP e da política de restrição do PAM (testado no Kurumin 6.0 e 7.0, Debian 3.1 e 4.0, Ubuntu 7.04 e 8.04).

[ Hits: 59.628 ]

Por: lourival araujo da silva em 02/09/2008


Alterações realizadas nos arquivos correspondentes ao cliente LDAP



Edite os arquivos de configuração do cliente LDAP:

# vim /etc/nsswitch.conf

passwd:     files ldap
shadow:     files ldap
group: files ldap
protocols:  files ldap
services:   files ldap
netgroup:   files ldap
automount:  files ldap
ethers: files ldap
rpc:       files ldap
hosts: files dns
network:    files

O parâmetro "files" refere-se a consultas realizadas nos arquivos de configuração locais e o parâmetro "ldap" refere-se a consultas realizadas no servidor remoto. Portanto, para cada parâmetro, será feita a consulta local antes de realizar-se a consulta via rede.

# vim /etc/libnss-ldap.conf (exibindo somente parâmetros alterados)

host 10.0.0.1 # endereço ip do servidor LDAP
base dc=empresa,dc=com,dc=br # domínio do servidor LDAP
ldap-version 3
pam_password crypt # padrão de autenticação utilizado no servidor
nss_base_passwd ou=usuários,dc=empresa,dc=com,dc=br # conforme base de usuários criada no servidor
nss_base_shadow ou=usuários,dc=empresa,dc=com,dc=br # conforme base de usuários criada no servidor
nss_base_group ou=grupos,dc=empresa,dc=com,dc=br # conforme base de usuários criada no servidor

Caso seja permitida consulta anônima ao servidor, os parâmetros sobre autenticação devem permanecer comentados.

#bindpw secret
#rootbinddn cn=manager,dc=empresa,dc=com,dc=br

/etc/ldap/ldap.conf: a configuração desse arquivo poderá ser realizada, para fins práticos, por meio de cópia do arquivo anterior.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Alterações realizadas nos arquivos correspondentes ao cliente LDAP
   3. Arquivos dos módulos do PAM do cliente
Outros artigos deste autor

Autenticação via hardware: o módulo pam_blue

Autenticação via hardware: o módulo pam_usb

Mudança de hábito: autenticando usuários em base de dados MySQL

Bom escudo não teme espada: o módulo pam_cracklib

Configuração "automágica" de servidor Linux PDC Samba

Leitura recomendada

Melhorando a segurança de servidores GNU/Linux (Parte 1)

Instalação do Fail2Ban no CentOS 7

Snort em modo defensivo com Flex Response 2

Instalando o Nagios

Túneis cifrados com SSH

  
Comentários
[1] Comentário enviado por wairisson em 18/02/2009 - 09:44h

ola Araujo minha situação é a seguinte possuo (ainda em testes) um servidor PDC Samba + LDAP + pam _mount autenticando usuários windows (no samba) e linux (direto no LDAP), gostaria de saber primeiro: É possivel fazer com que tanto as máquinas windows quanto as linux autenticarem só no samba (como em um PDC sem LDAP) uma vez que eu consigo fazer as maquinas windows auteticarem mais as máquinas linux eu não consegui fazer logar no samba de jeito algum ? Segundo : Possuo além do Controlador de domínio diversos outros servidores samba nas seções (ah eu não falei que sou milico também?) então tudo bem,consegui fazer as máquinas linux logarem direto no LDAP porém o não sei como configurar o samba.

[2] Comentário enviado por araujo_silva em 20/02/2009 - 20:22h

noss12

Você o mais difícil, que é autenticar o cliente Linux no LDAP, vamos então analisar a autenticação no samba.

1º O servidor Samba PDC possui uma configuração que é comum aos usuários Windows e Linux:

[globals]

workgroup = organizacao
netbios name = servidor
domain master = yes
logon script = netlogon.bat
logon home = \\%U\.profiles
logon path = \\%L\profiles\%U
logon drive = j:

security = user
encrypt passwords = yes
os level = 100

log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
hosts allow = 127.0.0.0/8 $rede

obey pam restrictions = Yes
smb passwd file = /etc/samba/smbpasswd
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
template homedir = /home/%U
template shell = /bin/bash

[netlogon]
comment = Servico de logon
path = /var/samba/netlogon
guest ok = yes
browseable = no

[profiles]
path = /var/samba/profiles
writable = yes
browseable = no
create mask = 0600
directory mask = 0700

[home]
browseable = no
read only = no

2° Devemos destacar os aspectos de que as diretivas de autenticação e domínio devem estar configuradas. Os compartilhamentos "netlogon" e "profiles" deverão estar configurados para tornar possível a autenticação dos usuários no domínio.
As permissões devem ser atribuídas a esses diretórios, e um usuário root do samba deverá ser criado no servidor de domínio:

$ mkdir -p /var/samba/profiles
$ chmod 1777 /var/samba/profiles

$ mkdir -p /var/samba/netlogon
$ chmod 775 /var/samba/netlogon $ smbpasswd -a root

3º As máquinas devem ser adicionadas ao domínio, obrigatoriamente. O que pode ser feito de forma interativa, por meio de um script:
sh maquinas.sh
#!/bin/bash
groupadd maquinas
maquinas= " ibm1 ibm2 intel1 intel2 "
for i in $maquinas;do
useradd -s /bin/false -d /dev/null -g maquinas $i$
passwd -l $i$
smbpasswd -a -m $i
done

4º Terminada a inclusão das contas das máquinas no servidor é preciso configurar as máquinas clientes: configurar o smb.conf (domain), o nsswitch.conf e os módulos da infraestrutura PAM.

[globals]

workgroup = empresa
netbios name = servidor
domain master = yes
logon script = netlogon.bat
logon home = \\%U\.profiles
logon path = \\%L\profiles\%U
logon drive = j:

security = domain
encrypt passwords = yes
os level = 33

log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192

obey pam restrictions = Yes
smb passwd file = /etc/samba/smbpasswd
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
template homedir = /home/%U
template shell = /bin/bash

[netlogon]
comment = Servico de logon
path = /var/samba/netlogon
guest ok = yes
browseable = no

[profiles]
path = /var/samba/profiles
writable = yes
browseable = no
create mask = 0600
directory mask = 0700

[home]
browseable = no
read only = no

/etc/nsswitch.conf

passwd: compat winbind
group: compat winbind
shadow: compat winbind
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
(Nesse arquivo o fundamental é que existam as associações entre passwd, group e shadow com a ferramenta winbind que irá buscar os clientes no domínio)

/etc/pam.d/login
auth requisite pam_securetty.so
auth requisite pam_nologin.so
auth required pam_unix.so
auth sufficient pam_winbind.so use_first_pass
auth optional pam_mount.so

account required pam_unix.so
account sufficient pam_winbind.so use_first_pass

session optional pam_mount.so
session optional pam_mkhomedir.so skel=/etc/skel umask=0022
session required pam_limits.so
session optional pam_motd.so

password required pam_unix.so
password sufficient pam_winbind.so use_first_pass

/etc/pam.d/kdm ou /etc/pam.d/gnome-session # Conforme se utilize kde ou gnome
auth requisite pam_nologin.so
auth required pam_unix.so
auth sufficient pam_winbind.so use_first_pass
auth optional pam_mount.so

account required pam_unix.so
account sufficient pam_winbind.so use_first_pass

session optional pam_mount.so
session optional pam_mkhomedir.so skel=/etc/skel umask=0022
session required pam_limits.so
session optional pam_motd.so

password required pam_unix.so
password sufficient pam_winbind.so use_first_pass

(A configuração desse arquivo permite o login em terminais dos clientes do domínio e dos clientes locais. Para autenticação no console é necessário alterar kdm ou gdm. Para maiores de talhes consulte o artigo publicado aqui no VOL a esse respeito).

Junte o cliente ao domínio e teste se os usuários do domínio conseguem autenticar através do terminal.

# net rpc testjoin
# net rpc join -S servidor -U administrador
# wbinfo -u
# wbinfo -g
# getent passwd
# getent group

(Não esqueça de verificar se a máquina cliente e o servidor se encontram no mesmo segmento de rede e no mesmo WORKGROUP)

Confira os logs:

# tail /var/log/auth.log
# tail /var/log/samba/log.smbd
# tail /var/log/samba/log.winbind
# tail /var/log/syslog

Abraços e Boa Sorte !!!

[3] Comentário enviado por araujo_silva em 20/02/2009 - 20:27h

Desculpe o cliente do domínio deve possuir a diretiva "domain master = no".

Abraços

[4] Comentário enviado por rafaelhenrique em 19/01/2010 - 21:11h

Parabéns! Ótimo artigo! Me esclareceram algumas dúvidas sobre PAM !
Obrigado!

[5] Comentário enviado por juno em 20/03/2013 - 15:55h

Olá
Araújo e amigos do VOL,

Vocês podem me ajudar com a configuração de um servidor sendo, cliente do meu servidor openldap, até aí sem problemas consegui obter a lista pelo 'getent passwd' o que não estou conseguindo fazer é o acesso ssh nessa máquina cliente com o usuário do ldap.

Existe alguma configuração específica?

Desde já agradeço a ajuda de todos,

att,



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts