LDAP mínimo + exemplo de autenticação do usuário para * nix

0

Eu preciso configurar uma configuração LDAP MUITO mínima no RHEL / Fedora.

  • não há necessidade de kerberos
  • gostaria de evitar qualquer configuração de servidor DNS
  • não se importa se é inseguro: é apenas para testes.
  • toda a autenticação do usuário é feita via ldap (sem kerberos ou dependência do / etc / passwd)

Eu vi ferramentas como o openldap, mas esperava que talvez houvesse um script enlatado ou algo que pudesse instalar os componentes mínimos do ldap e permitir as modificações necessárias em / etc / files para configurar uma configuração simples de login do usuário baseada em LDAP.

Existe alguma ferramenta desse tipo - ou são esses tipos de coisas normalmente feitas em um contexto pesado?

    
por jayunit100 18.12.2013 / 22:47

1 resposta

2

Os seguintes trabalhos para o RHEL 6.x. Com o Fedora, ele pode funcionar com muito pouca ou nenhuma alteração, embora isso não tenha sido testado.

Você precisa de pacotes nss-pam-ldapd e openldap-clients. Dependendo de como você gosta que as coisas funcionem, você pode adicionar nscd e / ou nslcd também. Instale os pacotes necessários com yum -y install nss-pam-ldapd openldap-clients , o comando também pode lançar alguns pacotes de dependência.

Aqui é onde as coisas podem ficar um pouco peludas. Você pode querer que duas coisas aconteçam: 1) autenticar os usuários em relação ao LDAP e 2) fazer com que as entradas do usuário para o passwd / group fluam do LDAP também. Eu não vou mergulhar muito neste último, porque isso depende muito dos objetos LDAP disponíveis e seus atributos. O primeiro é bastante simples, no entanto.

Para autenticar usuários do LDAP, não importa como eles estão se conectando (que pode ser um terminal virtual local, conexão SSH, uma sessão X11 GDM local ou praticamente qualquer coisa), você usa o PAM. Arquivos em geral estão localizados em /etc/pam.d e no RHEL o que você realmente quer mexer é /etc/pam.d/system-auth . Vários outros arquivos, como /etc/pam.d/password-auth , são links simbólicos para esse arquivo. O arquivo /etc/pam.d/system-auth é consultado quando um usuário é autenticado, a menos que exista uma configuração PAM específica do serviço (por exemplo, /etc/pam.d/sshd , que nos sistemas RHEL, no entanto, consulta /etc/pam.d/system-auth - para obter detalhes, consulte o conteúdo do arquivo). >

O exemplo a seguir permitirá que seus usuários se autentiquem a partir de um passwd local (por exemplo, /etc/passwd / /etc/shadow ) e, em seguida, do LDAP. A ideia é que as senhas locais substituam as senhas LDAP, mas você pode realmente querer vice-versa, ou seja, para que o passwd local seja o substituto em vez do LDAP. O que segue deve ser colocado no arquivo /etc/pam.d/system-auth (deixe o resto do /etc/pam.d/system-auth como está, não substitua todo o conteúdo do arquivo pelo seguinte):

auth sufficient pam_unix.so nullok try_first_pass # try a local passwd entry
auth sufficient pam_ldap.so use_first_pass # try a LDAP entry
auth required pam_deny.so # deny access if both passwd and LDAP fails

Além de definir como seus usuários são autenticados, você precisa tornar o pam_ldap.so ciente do seu servidor LDAP. Isso é definido em /etc/ldap.conf . A página de manual deste arquivo é legível com man pam_ldap , enquanto man ldap.conf emitirá a entrada do arquivo de configuração da biblioteca cliente OpenLDAP ( /etc/openldap/ldap.conf ) no seu terminal. O mínimo para o seu /etc/ldap.conf para o pam_ldap.so seria algo como o seguinte:

base <your_base_dn>   # ou=Admin,o=Organization
uri <your_uri>        # ldap://ldapsrv.org.com/
bind_policy soft      # you might want to use hard too, but usually not
ssl off               # you really should be using SSL/TLS

Assumindo que o seu servidor LDAP retorna objetos posixAccount apropriados (muito provavelmente este não é o caso se você estiver usando o Microsoft AD que requer pacotes extras para retornar objetos posixAccount), isso deve ser feito e seus usuários agora devem poder autenticar se contra o seu servidor LDAP. Eles ainda precisam de uma entrada local em /etc/passwd para seus UIDs e assim por diante. Se você deseja obter todas as informações do usuário do LDAP em vez de apenas autenticá-las em seu servidor LDAP, é necessário verificar o mecanismo nsswitch (consulte, por exemplo, man nss , man nsswitch.conf , man nslcd.conf ).

Agora, isso é um mínimo absoluto e não é muito utilizável nem seguro como é. Você provavelmente quer usar pam_access.so para alguns whitelisting para usuários e pam_env.so para usabilidade e assim por diante.

    
por 19.12.2013 / 08:20