Linux + Uwierzytelnianie w usłudze Active Directory + pozwalanie tylko niektórym grupom na logowanie

14

Mam kilka Linux-ów, które używają uwierzytelniania Windows Active Directory, które działa dobrze (Samba + Winbind).

Chciałbym teraz zezwolić tylko niektórym osobom lub określonym grupom na logowanie się przy użyciu poświadczeń Active Directory. Obecnie każdy z ważnym kontem AD może się zalogować. Chcę ograniczyć to tylko do kilku grup. Czy to jest wykonalne?

Luma
źródło

Odpowiedzi:

6

Zakładając, że grupy są dostępne dla systemu Linux, zalecam edycję /etc/security/access.confdla Ubuntu, dystrybucji RedHat (i ich rozwidleń) i prawdopodobnie kilku innych. Nie wymaga edycji plików PAM i jest to całkiem standardowe miejsce do zrobienia tego. Plik zawiera zazwyczaj przykłady, które zostały skomentowane.

Slartibartfast
źródło
Dzięki, to właśnie skończyło się na robieniu tego, co chciałem zrobić, wszystkie powyższe odpowiedzi były świetne, ale ta była dla mnie najlepsza. Używam pliku Samba do blokowania Samby, a teraz używam tego pliku access.conf do blokowania logowania SSH.
Luma,
4

(Mówię tutaj o sambie 3, teraz nie ma doświadczenia na sambie 4).

Nie ma potrzeby edytowania tych plików /etc/pam.d/xxx. pam_winbind.conf to plik, który chcesz, zwykle znajduje się w /etc/security/pam_winbind.conf .

Jest to plik konfiguracyjny modułu pam_winbind i działa zarówno dla CentOS / Redhat, jak i Debian / Ubuntu. Możesz przeczytać stronę podręcznika pam_winbind.conf w celach informacyjnych.

Oto przykładowy plik.

#
# 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
źródło
3

Obecnie używam AllowGroupsdyrektywy w /etc/ssh/sshd_configcelu ograniczenia, kto może się zalogować. Podaj jedną lub więcej grup AD w tej linii, a te osoby będą jedynymi, które będą mogły się zalogować.

Należy pamiętać, że to działa tylko jeśli użytkownicy są tylko dostęp do serwera zdalnie poprzez ssh. Jeśli śpiewają lokalnie, musisz znaleźć inne rozwiązanie.

EEAA
źródło
3

Tak, istnieje kilka sposobów na zrobienie tego w zależności od tego, co dokładnie chcesz osiągnąć.

Pierwszą metodę można wykonać za pomocą konfiguracji samby. Umożliwi to tylko tym użytkownikom łączenie się z Sambą, inni użytkownicy mogą nadal logować się za pośrednictwem innych usług (ssh, termin lokalny itp.). Dzięki temu będziesz chciał dodać linię do swojej [globalnej] sekcji w smb.conf:

valid users = @groupA @groupB

Inną metodą jest modyfikacja reguł PAM. Różne dystrybucje mają tutaj niewielkie różnice, ale ogólnie mówiąc, istnieją reguły PAM na usługę, a także wspólne reguły, możesz zdecydować, co jest najlepsze. Będziesz chciał dodać ograniczenie konta za pomocą modułu pam_require. Przykładem na moim laptopie (Fedora 13) może być zmodyfikowanie sekcji konta w /etc/pam.d/system-auth, aby:

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

Aby uprościć administrację, możesz chcieć utworzyć nową grupę w AD w celu śledzenia użytkowników, którzy mogą zalogować się na tym serwerze.

Ryan Bair
źródło
1

Walczyłem z tym, żeby którykolwiek z powyższych pracował dla mnie w RHEL 7. Poniżej znajduje się to, co udało mi się dostać do pracy.

/etc/sssd/sssd.conf

Zmień access_provider = ad na access_provider = simple +simple_allow_groups = @[email protected], @[email protected]

visudo

uruchom ponownie usługę sssd.

Adam S.
źródło
-3

Osiągnąłem, że tylko jeden AD_USER lub AD_GROUP może ssh zalogować się do systemu Linux za pomocą uwierzytelnienia AD.

Szczegóły są wymienione jak tutaj: (zwróć uwagę na krok 7 i 8)

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

Xianlin
źródło
Brakuje informacji
Geoffrey
Link jest martwy, bezużyteczny post.
FreeSoftwareServers
Widzę tylko krok 404. Nr 7 i 8.
Todd Walton