Linux + Autenticação de diretório ativo + permitindo apenas o acesso a determinados grupos

14

Eu tenho algumas caixas Linux que usam autenticação do Windows Active Directory, que funciona muito bem (Samba + Winbind).

O que eu gostaria de fazer agora é permitir apenas que certas pessoas ou grupos façam login usando credenciais do Active Directory. Atualmente, qualquer pessoa com uma conta válida do AD pode fazer login. Eu quero limitar isso a apenas alguns grupos. Isso é factível?

Luma
fonte

Respostas:

6

Supondo que os grupos estejam disponíveis para o sistema Linux, recomendo a edição /etc/security/access.confpara Ubuntu, distribuições RedHat (e seus garfos) e provavelmente um monte de outras. Isso não requer a edição de arquivos PAM e é um local bastante padrão para isso. Geralmente existem exemplos no arquivo comentados.

Slartibartfast
fonte
Obrigado, foi isso que acabei usando para fazer o que queria, todas as respostas acima foram ótimas, mas essa foi a que funcionou melhor para mim. Eu uso o arquivo Samba para bloquear o Samba e agora estou usando esse arquivo access.conf para bloquear logins SSH.
Luma
4

(Estou falando do samba 3 aqui, agora não há experiência no samba 4.)

Não há necessidade de editar esses arquivos /etc/pam.d/xxx. pam_winbind.conf é o arquivo que você deseja, geralmente está localizado em /etc/security/pam_winbind.conf .

É o arquivo de configuração do módulo pam_winbind e funciona para o CentOS / Redhat e o Debian / Ubuntu. Você pode ler a página de manual do pam_winbind.conf para referência.

Aqui está um arquivo de exemplo.

#
# pam_winbind configuration file
#
# /etc/security/pam_winbind.conf
#

[global]

# turn on debugging
;debug = no

# turn on extended PAM state debugging
;debug_state = no

# request a cached login if possible
# (needs "winbind offline logon = yes" in smb.conf)
cached_login = yes

# authenticate using kerberos
;krb5_auth = no

# when using kerberos, request a "FILE" krb5 credential cache type
# (leave empty to just do krb5 authentication but not have a ticket
# afterwards)
;krb5_ccache_type =

# make successful authentication dependend on membership of one SID
# (can also take a name)
# require_membership_of = SID,SID,SID
require_membership_of = S-1-5-21-4255311587-2195296704-2687208041-1794

# password expiry warning period in days
;warn_pwd_expire = 14

# omit pam conversations
;silent = no

# create homedirectory on the fly
mkhomedir = yes
yanqian
fonte
3

Atualmente, uso a AllowGroupsdiretiva /etc/ssh/sshd_configpara limitar quem pode fazer login. Especifique um ou mais grupos de anúncios nessa linha, e essas pessoas serão as únicas capazes de fazer login.

Tenha em mente que isso só funciona se os usuários são única acessar o servidor remotamente via ssh. Se eles estão cantando localmente, precisará encontrar outra solução.

EEAA
fonte
3

Sim, existem algumas maneiras de fazer isso, dependendo do que você está tentando realizar exatamente.

O primeiro método pode ser feito através da configuração do samba. Isso permitirá apenas que esses usuários se conectem ao Samba; outros usuários ainda poderão fazer login através de outros serviços (ssh, termo local, etc.). Com isso, você desejará adicionar uma linha à sua seção [global] no smb.conf:

valid users = @groupA @groupB

O outro método é modificando as regras do PAM. Distribuições diferentes têm pequenas diferenças aqui, mas de um modo geral existem regras de PAM por serviço e regras comuns, você pode decidir o que é melhor. Você deseja adicionar uma restrição de conta usando o módulo pam_require. Um exemplo no meu laptop (Fedora 13) seria modificar a seção da conta em /etc/pam.d/system-auth para:

account     required      pam_unix.so
account     required      pam_require.so @groupA @groupB
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so

Para simplificar a administração, convém criar um novo grupo no AD com o objetivo de rastrear usuários que podem fazer login neste servidor.

Ryan Bair
fonte
1

Eu lutei para conseguir que qualquer um dos itens acima funcione para mim no RHEL 7. Abaixo está o que eu consegui trabalhar.

/etc/sssd/sssd.conf

Mude access_provider = ad para access_provider = simple +simple_allow_groups = @[email protected], @[email protected]

visudo

reinicie o serviço sssd.

Adam S
fonte
-3

Consegui deixar apenas um AD_USER ou AD_GROUP para ssh fazer login na caixa do linux via autenticação do AD.

Os detalhes estão listados aqui: (preste atenção às etapas 7 e 8)

https://gist.githubusercontent.com/xianlin/8c09d916994dac7630b9/raw/ee07817a03bc5904a5404a7e7c94e08ea0c7560a/CentOS_AD_Integration

Xianlin
fonte
Informações está faltando
Geoffrey
Link está morto, post inútil.
FreeSoftwareServers
Vejo apenas o passo 404. Nº 7 e 8. #
Todd Walton