Linux + Authentification Active Directory + permettant uniquement à certains groupes de se connecter

14

J'ai des boîtes Linux qui utilisent l'authentification Windows Active Directory, qui fonctionne très bien (Samba + Winbind).

Ce que je voudrais faire maintenant, c'est autoriser uniquement certaines personnes ou certains groupes à se connecter à l'aide des informations d'identification Active Directory. Actuellement, toute personne possédant un compte AD valide peut se connecter. Je veux limiter cela à quelques groupes seulement. Est-ce faisable?

Luma
la source

Réponses:

6

En supposant que les groupes sont disponibles pour le système Linux, je recommande l'édition /etc/security/access.confpour les distributions Ubuntu, RedHat (et leurs fourches) et probablement un tas d'autres. Cela ne nécessite pas de modification des fichiers PAM et est un endroit bien standard pour le faire. Il y a généralement des exemples dans le fichier, commentés.

Slartibartfast
la source
Merci, c'est ce que j'ai fini par utiliser pour faire ce que je voulais faire, toutes les réponses ci-dessus étaient excellentes, mais c'est celle qui a le mieux fonctionné pour moi. J'utilise le fichier Samba pour verrouiller Samba et maintenant j'utilise ce fichier access.conf pour verrouiller les connexions SSH.
Luma
4

(Je parle de samba 3 ici, aucune expérience sur samba 4 maintenant.)

Il n'est pas nécessaire de modifier ces fichiers /etc/pam.d/xxx. pam_winbind.conf est le fichier que vous voulez, il se trouve généralement dans /etc/security/pam_winbind.conf .

C'est le fichier de configuration du module pam_winbind, et il fonctionne à la fois pour CentOS / Redhat et Debian / Ubuntu. Vous pouvez lire la page de manuel de pam_winbind.conf pour référence.

Voici un exemple de fichier.

#
# 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
la source
3

J'utilise actuellement la AllowGroupsdirective in /etc/ssh/sshd_configpour limiter les personnes autorisées à se connecter. Spécifiez un ou plusieurs groupes AD sur cette ligne, et ces personnes seront les seules à pouvoir se connecter.

Gardez à l'esprit que cela ne fonctionne que si vos utilisateurs n'accèdent au serveur qu'à distance via ssh. S'ils chantent localement, vous devrez trouver une autre solution.

EEAA
la source
3

Oui, il existe plusieurs façons de procéder en fonction de ce que vous essayez d'accomplir exactement.

La première méthode peut être effectuée via la configuration de samba. Cela permettra uniquement à ces utilisateurs de se connecter à Samba, les autres utilisateurs peuvent toujours se connecter via d'autres services (ssh, terme local, etc.). Avec cela, vous voudrez ajouter une ligne à votre section [globale] dans smb.conf:

valid users = @groupA @groupB

L'autre méthode consiste à modifier les règles PAM. Différentes distributions ont de légères différences ici, mais en règle générale, il existe des règles PAM par service ainsi que des règles communes, vous pouvez décider de ce qui est le mieux. Vous voudrez ajouter une restriction de compte à l'aide du module pam_require. Un exemple sur mon ordinateur portable (Fedora 13) serait de modifier la section de compte dans /etc/pam.d/system-auth pour:

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

Pour simplifier l'administration, vous souhaiterez peut-être créer un nouveau groupe dans AD afin de suivre les utilisateurs qui peuvent se connecter à ce serveur.

Ryan Bair
la source
1

J'ai eu du mal à faire travailler tout ce qui précède pour moi dans RHEL 7. Voici ce que j'ai pu obtenir pour travailler.

/etc/sssd/sssd.conf

Passer access_provider = ad à access_provider = simple +simple_allow_groups = @[email protected], @[email protected]

visudo

redémarrez le service sssd.

Adam S
la source
-3

J'ai réussi à laisser un seul AD_USER ou AD_GROUP se connecter à la boîte Linux via l'authentification AD.

Les détails sont listés comme ici: (faites attention aux étapes 7 et 8)

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

Xianlin
la source
Informations manquantes
Geoffrey
Le lien est mort, poste inutile.
FreeSoftwareServers
Je ne vois que l'étape 404. N ° 7 et 8.
Todd Walton