Od niedawna zacząłem pracować z systemami opartymi o Microsoft Windows. I to nie po prostu pecetami, tylko systemami z siecią serwerów, tak jak to często bywa w firmach. Wtedy głównym źródłem danych logowania użytkowników jest domena Active Directory. Poniżej opiszę rewelacyjne narzędzie, do podłączenia maszyny Linuxowej do AD.
Przy okazji zerknij na mój post dla APN Promise na podobny temat.
Dlaczego uważam, że jest rewelacyjne?
Zanim je znalazłem, udało podłączyć mi się Debiana do AD “ręcznie”. Wiązało się to z zainstalowaniem 5 paczek (sssd
, samba
, realmd
, ntp
i krb5-user
), a następnie odpowiednim wyedytowaniem 4 plików konfiguracyjnych i kilkoma dodatkowymi komendami. Oczywiście nie działało za pierwszym razem i zanim doszedłem do właściewej konfiguracji minął cały dzień.
Narzędzie, które właśnie odkryłem to PowerBroker Identity Services Open.
Instalacja
Najpierw pobieramy najnowszą wersję (zakładka Releases na GitHubie) i uruchamiamy na naszej maszynie z linuxem
curl -L -O https://github.com/BeyondTrust/pbis-open/releases/download/8.5.7/pbis-open-8.5.7.385.linux.x86_64.deb.sh
chmod +x pbis-open-8.5.7.385.linux.x86_64.deb.sh
sudo ./pbis-open-8.5.7.385.linux.x86_64.deb.sh
Spowoduje to zainstalowanie aplikacji do /opt/pbis
. Po zainstalowaniu, możemy od razu dołączyć do naszej domeny
sudo /opt/pbis/bin/domainjoin-cli join domain.com User
Jest również wersja GUI (domainjoin-gui
). Zostaniemy poproszeni o podanie hasła dla użytkownika [email protected]
i następnie zostaniemy podłączeni do domeny. Zostaniemy poinformowani, że należy zrestartować komputer, i tak też uczynimy.
sudo reboot
Zarządzanie
Za pomocą polecenia pbis
możemy zarządzać domeną
$ pbis
Usage: pbis mode [--help] ...
Available modes:
account-rights acl ad-cache
ad-get-machine add-group
add-user authenticate-user
del-group del-user
enum-groups enum-members
enum-objects enum-users
find-by-sid find-group-by-id
find-group-by-name find-objects
find-user-by-id find-user-by-name
get-metrics join leave
list-groups-for-user mod-group
mod-user query-member-of
set-default-domain set-machine-name
set-machine-sid status
trace-info ypcat ypmatch
Przyda nam się również polecenie update-dns
, aby zarejestrować naszą maszynie na serwerze DNS domeny
sudo /opt/pbis/bin/update-dns --show
sudo
Będziemy jeszcze chcieli nadać uprawnienia sudo dla administratorów domenowych. W tym celu edytujemy plik /etc/sudoers
, za pomocą narzędzia visudo
, dopisując na koniec
%DOMAIN\\domain^admins ALL=(ALL) ALL
Gdzie DOMAIN
to nazwa twojej domeny.
Użytkownicy domenowi
Kolejny feature to możliwość logowania się danymi domenowymi do maszyny. Działa zarówno przez su
jak i przez ssh
, a użytkownik domenowy dostaje swój folder domowy w /home/local/DomainName/UserName/
.
Zmiana domyślnej powłoki dla użytkowników domenowych jest możliwa, ale można ustawić tylko jedną dla wszystkich.
sudo /opt/pbis/bin/config LoginShellTemplate /bin/bash
Żeby to obejść, wystarczy dodać linijkę do pliku .profile
danego użytkownika
exec /path/to/your/favourite/shell
Można również korzystać z folderu domowego użytkownika znajdującego się na pewnym zasobie SMB. Upewnij się, że masz zainstalowaną paczkę cifs-utils
w systemie. Jeśli w preferencjach użytkownika AD, ustawiony będzie folder Home (zakładka Profile) na odpowiednim zasobie to będzie on automatycznie montowany podczas logowania się użytkownika.
Troubleshooting
Jeśli podczas zmiany konfiguracji dostaniecie błąd
Problem executing '/opt/pbis/bin/ad-cache --delete-all >/dev/null 2>/dev/null'
Error: Error returned by external program
To najprawdopodobniej w lesie domenowym waszej firmy jest jakaś domena, która jest offline. Mimo, że wasza domena jest online, to trzeba wyłączyć sprawdzanie tych domen, które są wyłączone. Żeby sprawdzić która domena, zajrzyj do /var/log/syslog
.
sudo /opt/pbis/bin/config DomainManagerExcludeTrustsList my.offline.domain.com
Dlaczego sprawdzane jest, czy domena jest online? Ponieważ zmianiając niektóre ustawienia czyścimy cache, który między innymi zawiera dane logowania użytkowników domenowych. Jeśli byśmy go wyczyścili będąc offline, to dopóki system nie podłączy się ponownie do domeny, to użytkownicy domenowi nie będą w stanie się zalogować.