Miałem nadzieję, że niektórzy guru PAM / LDAP mogą mi pomóc tutaj. Niedawno skonfigurowałem katalog LDAP na Ubuntu Server, aby przechowywać konta zarówno dla moich klientów (do użytku z systemami internetowymi), jak i pracowników (którzy będą musieli zalogować się przez SSH).
Uwierzytelnianie LDAP działa idealnie. Jednak nie mogę dostać pracy ograniczenia konta: Konta pracownicy będą mieli identyfikatory między 2001
a 2999
i będzie członkiem ssh-users
grupy, aby umożliwić ich do logowania do serwerów.
Ograniczenia te zostały wydane w /etc/ldap.conf
, i to pam_min_uid
, pam_max_uid
i pam_groupdn
.
pam_groupdn
zawiera pełną nazwę wyróżniającą dla mojej ssh-users
grupy. pam_min_uid
= 2000
i pam_max_uid
= 2999
.
Teraz udało mi się je uruchomić, dodając:
account [success=1 default=ignore] pam_ldap.so
powyżej pam_unix.so
linii w /etc/pam.d/common-account
. Jednak lokalne konta Unix NIE mogą się zalogować: serwer SSH przerywa połączenie, gdy tylko spróbują.
Ustawiłem pam_ldap.so
moduł na sufficient
w powyższym pliku, ale wtedy niepoprawni użytkownicy otrzymują komunikat, że nie mogą się zalogować, ale i tak je rejestruje.
Jak więc ustawić te ograniczenia konta dla użytkowników LDAP, jednocześnie umożliwiając użytkownikom UNIX logowanie się?
Jak zapewne domyślacie się, jestem nowicjuszem w PAM, chociaż udało mi się uruchomić moduł „automatycznie twórz katalogi domowe” :-)
Wielkie dzięki, Andy
Po prostu bym użył
zezwalać tylko na określone grupy (zarówno dla grup lokalnych, jak i LDAP). W ten sposób nie musisz nic wpisywać
ldap.conf
.Jeśli chcesz zachować autoryzację na swój sposób, nie powinieneś filtrować użytkowników po przepustce „konto”. Uważam, że powinieneś to zrobić raczej po przejściu „auth”. Po drugie, jak możesz się przekonać, pam_unix przetwarza zarówno konta lokalne, jak i LDAP (przynajmniej na karcie „konto”), więc wydaje się, że pam_ldap wcale nie jest potrzebny.
EDYCJA: Po trzecie, jeśli nalegasz na posiadanie rzeczy związanych z „przejściem” na konto (które moim zdaniem mogą mieć dziwne skutki uboczne), twoja sekwencja powinna kończyć się: ..., „wystarczająca pam_ldap”, „wymagana pam_localuser”, „wymagana pam_unix” . Mam na myśli, jeśli masz jakieś inne moduły, przenieś je przed pam_ldap - w przeciwnym razie zostaną zignorowane dla kont LDAP z powodu klauzuli „wystarczającej” liczby.
źródło
Aby dodać do @ andy-shellam, oto mój
common-account
plik:źródło