[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ldap no debian stable [longo]



Minha configuração de autenticação faz o seguinte, primeiro procura e tenta 
autenticar os usuários usando os famosos "flat files", que são passwd, shadow 
e group, depois usa o LDAP.

Resolvi fazer assim por motivo de segurança e estabilidade, caso o servidor 
LDAP contendo os usuários e senhas caia, as máquinas dependentes dele não 
ficarão jogadas ao vento.

Nota: Ao usar o pacote migrationtools, não incluí usuários com UID abaixo de 
1000 e nem grupos com GID abaixo de 100 (que são os chamados usuários e 
grupos de sistema) nem usuários com UID acima de 9999 e nem grupos com GID 
acima de 9999.

Dessa forma, nem root nem usuários de sistema (usados para executar serviços 
sob certas credenciais) serão usados no LDAP, e cada máquina poderá ter o seu 
individualmente, deixando somente na base LDAP os usuários comuns.

/etc/nsswitch.conf

passwd:	compat ldap
group:	compat ldap
shadow:	compat ldap
e outros.

Arquivos de configuração do PAM (notem a sequência).

Nota: se um módulo que tenha o comportamento "sufficient" vir primeiro e 
obtiver sucesso, o sistema irá parar de processar para aquele tipo de módulo, 
no nosso caso será "auth" (que verifica a identidade do usuário, ou seja, 
valida a senha), mas não irá afetar os tipos account, session e password.

Exemplo:

auth		sufficient	pam_unix.so (em caso de sucesso, pára aqui, pam_ldap e 
pam_deny não serão processados).

auth		sufficient	pam_ldap.so (em caso de sucesso, pára aqui, pam_deny não será 
processado).

auth		required	pam_deny.so (em caso de falha dos dois módulos anteriores, este 
será processado, e negará o acesso).

# /etc/pam.d/login
auth		requisite	pam_securetty.so
auth		requisite	pam_nologin.so
auth		required	pam_env.so
auth		sufficient	pam_unix.so
auth		sufficient	pam_ldap.so try_first_pass
auth		required	pam_deny.so

account	sufficient	pam_unix.so
account	sufficient	pam_ldap.so
account	required	pam_deny.so

session	sufficient	pam_unix.so
session	sufficient	pam_ldap.so
session	required	pam_deny.so

password	required	pam_cracklib.so
password	sufficient	pam_unix.so obscure md5 try_first_pass use_authtok
password	sufficient	pam_ldap.so try_first_pass use_authtok
password	required	pam_deny.so


Notem a presença do "sufficient" no comportamento dos módulos.
Isso quer dizer que o sistema tentará verificar/validar o usuário localmente 
(pam_unix), em caso de sucesso, irá parar alí mesmo, ou seja, não tentará 
verificar/validar no LDAP.

Mas em caso de falha do primeiro módulo (pam_unix), o sistema tentará 
verificar/validar o usuário no LDAP, isso de forma transparente, ou seja, se 
houver falha na primeira tentativa (pam_unix) ele tentará verificar/validar o 
usuário no LDAP, isso ocorre de forma transparente.

Já a presença do pam_deny, é só uma questão de segurança, caso a 
verificação/validação falhe tanto no pam_unix, como no pam_ldap, o sistema 
negará o acesso ao usuário.

Dessa forma, caso o servidor LDAP caia, não esquente, seu sistema não ficará 
inutilizado (você poderá logar como root, apenas não terá os usuários 
normais).

Espero que tenha ficado claro.


Sempre combatendo a M$ e elevando o Linux...

Manoel Lôbo.
--
Kopete/GAIM: mmessiaslobo@hotmail.com



Reply to: