Restrinja o login ssh do LDAP aos usuários que possuem um diretório / home

5

Eu tenho um servidor Apache (RHEL 6) hospedando várias páginas da web de usuários que atualmente estão conectadas ao meu ambiente do Active Directory para autenticar usuários. O servidor é usado para hospedar automaticamente o conteúdo que os usuários colocam em sua pasta / home / < user > / public_html. Eu também estou configurando este servidor para usar o chroot para que os usuários não consigam navegar em qualquer outro conteúdo no servidor fora de sua pasta pessoal. Os scripts de login não criam uma pasta inicial para os usuários. Esses são criados manualmente porque queremos que apenas determinados usuários possam hospedar páginas da web a partir deste servidor.

O problema é que, atualmente, qualquer usuário pode efetuar login no servidor e, em vez de ir para a pasta / home (porque não existe), ele entra automaticamente em /. Isso permite que eles visualizem quaisquer arquivos / pastas no servidor ao qual seu grupo tenha acesso de leitura. Esta é uma questão de segurança e gostaria de restringir logins para usuários que possuem um diretório / home. Não queremos especificar um grupo AD ou uma lista de usuários como autenticados, pois essa lista pode ficar bastante longa e ser difícil de gerenciar, embora possa ser mais fácil do que escrever um módulo PAM.

Existe uma maneira de restringir logins LDAP apenas para usuários que já possuem um diretório / home? Eu não estou encontrando nada nas opções ou na documentação do PAM.

    
por Rothgar 21.03.2013 / 23:34

3 respostas

2

Como o gerenciamento de acesso exigiria muitos esforços no host local, decidimos apenas criar um grupo no Active Directory e restringir logons a usuários desse grupo.

Isso pode ser feito editando o arquivo /etc/security/pam_winbind.conf com o seguinte campo com os SIDs dos grupos ou usuários aos quais queremos restringir o acesso (separados por vírgulas).

require_membership_of=

Em seguida, filtraremos nossas restrições chroot para esse grupo (ou colocaremos os usuários em um grupo local) para restringir seu acesso sftp aos seus próprios diretórios pessoais. Isso também nos permitirá adicionar o oddjobs mkhomedir de volta ao pam e, em seguida, para permitir o acesso ao servidor, basta adicionar o usuário a esse grupo. Eles podem fazer login e seu diretório inicial será criado automaticamente.

Obrigado a todos pela ajuda / ideias, mas parece que os grupos AD serão os mais fáceis de gerenciar, afinal.

    
por 22.03.2013 / 16:50
1

Solução 1:

Você pode módulo PAM pam_homecheck

Tudo o que ele faz é verificar se existe um diretório inicial do usuário e recusar uma sessão, se nenhuma for encontrada.

o problema é que ele só está disponível no openSUSE, mas você pode colocar pam_homecheck.so dos pacotes baixados e instalar a dependência com a ajuda de ldd pam_homecheck.so .

Solução 2: você pode adicionar conteúdo abaixo em /etc/bashrc , mas aplicável somente para login shell / putty

[[ $HOME == / ]] && { echo "Error: Home Dir not define.."; exit 1; }

Solução 3:

Negar se o diretório home não está definido (testado e trabalhando abaixo dos passos no Ubuntu)

Para negar o WinScp

aptitude install libpam-script

Abra " /etc/pam.d/common-auth " com o seu editor de faorite e adicione as entradas abaixo

auth optional pam_script.so  # add at the last 

Abra " /usr/share/libpam-script/pam_script_auth " com o seu editor favorito e adicione as entradas abaixo

#!/bin/bash

Pam_home=$(awk -v u=$PAM_USER -F: '($1 == u ){print $6}' /etc/passwd)

if [[ $Pam_home == / ]]; then
        echo "Error: Home Dir not define.."
        kill -9 $PPID # Force fully kill winscp pid
else
        /usr/lib/openssh/sftp-server
fi

Para negar o login do Shell / putty

Ele indicará e executará o mesmo script do local padrão, por exemplo, " /usr/share/libpam-script/pam_script_auth " Ou você pode verificar nos registros " tail -f /var/log/auth.log "

    
por 25.03.2013 / 01:53
0

Uma maneira de fazer isso seria forçá-los a usar chaves para o ssh e proibir logins do ssh usando senhas. Dessa forma, apenas pessoas com um arquivo /home/<user>/.ssh/authorized_keys poderão se conectar.

    
por 22.03.2013 / 00:02