A feladat, hogy egy vagy több Ubuntu vagy Debian alapú linux szervert kell telepíteni a cégnél és meg kell oldani, hogy ezekre a szerverekre a Windows active directlyban felvett admin fiókokkal lehessen beléni és kezelni. Ehhez első lépésként a linux szerverünket csatlakoztatni kell a Windows AD-hez, mint egy tartományi számítógép. Ezután be kell állítani, hogy melyik Windows AD felhasználók és/vagy csoportok tagjai tudjanak SSH kapcsolaton keresztül belépni a linux szerverre. Továbbá meg kell adnunk, hogy ezek közül a felhasználók közül melyeknek adunk superadmin jogot.
A példában a Windows AD domain amihez csatlakozni szeretnénk a golnet.local lesz. A parancsok használatához lépj be sudo su -val.
Használt alkalmazások:
Előzetes ellenőrzés
Előzetes ellenőrzésként nézzük meg, hogy az IP beállítások rendben vannak-e. Az /etc/netplan/00-installer-config.yaml fájlban ellenőrizzük le, hogy legyen fix IP cím beállítva a megfelelő gateway-el, a névszerver a Windows Active Directory szerver legyen valamint a keresési domainhez az a domain név legyen beírva amelyikhez csatlakozni szeretnénk.
Amennyiben módosítottunk bármit a fájlban, akkor a következő paranccsal aktiváljuk:
netplan apply
Ellenőrizzük, hogy a belső hálózatunkban működik-e a névfeloldás: ping <belső szerver hostnév> . Ha ez rendben van, akkor mehetünk tovább.
Állítsuk be a szerverünk hosztnevét:
hostnamectl set-hostname <saját FQDN>
A <saját FQDN> a szerverünk teljes domain neve, például szerverem.golnet.local. Tehát azt a nevet adjuk meg, amilyen névem majd szerepeltetni szeretnénk a Windows AD-ben és DNS-ben.
A szükséges csomagok telepítése
apt -y install realmd libnss-sss libpam-sss sssd sssd-tools adcli samba-common-bin oddjob oddjob-mkhomedir packagekit
Csatlakozás a Windows AD-hez
A csomagok telepítése után kérdezzük le, hogy elérhető-e a domain amihez csatlakozni szeretnénk:
realm discover golnet.local
Ha sikeres a domain lekérdezés, akkor csatlakozztassuk a szervert a domainhez.
realm join -U <domain admin> golnet.local
A <domain admin> helyére a Windows AD-ben lévő olyan felhasználónevet kell magadni, akinek van joga új számítógépet regisztrálni. Ha elhagyjuk (-U is), akkor alapértelmezetten az Administrator felhasználóval próbálkozik.
Ha hiba nélkül lefutott (visszaadja a promptot), akkor nézzük meg, hogy mit lát a domainben:
realm list
A korábbi realm discover kimenetében annyiban különbözik, hogy most már megadja, hogy milyen formában lehet bejelentkezni. Ez alapértelmezetten a felhasznaloven@domain.nev .
Állítsuk be az authentikációt, illetve azt, hogy az AD felhasználói fiókkal való belépéskor hozza létre a profil könyvtárat.
pam-auth-update
Ezután indítsuk újra az sssd szolgáltatást, majd ellenőrizzük le, hogy megfelelően működik.
systemctl restart sssd
systemctl status sssd
Ellenőrizzük a kommunikációt a linux szerverünk és a Windows AD között.
id felhasznalonev@golnet.local
A fenti parancs pozitív végeredménye a lekérdezett felhasználó paraméterei és AD csoport tagságai.
SSH belépés engedélyezése Windows AD felhasználónak és/vagy csoportnak
Habár már létezik helyi felhasználói fiók a linux szerveren, de kényelmesebb ha a jól megszokott Windows AD felhasználói fiókkal lépünk be. Az SSH belépést egy adott AD felhasználónak vagy egy AD biztonsági csoportba tartozóknak tudjuk engedélyezni. Javasolt létrehozni egy külön AD biztonsági csoportot amibe csak azokat a felhasználókat tesszük bele, akiknek engedélyezzük a linux szerverre való belépést SSH-n keresztül.
Egy falhasználó engedélyezése:
realm permit felhasznalonev@golnet.local
AD biztonsági csoport engedélyezése. Ezt a módszert célszerű használni.
realm permit -g '<Ad group name>'
Ezek után az engedélyezett felhasználók már be tudnak léni a Windows AD felhasználói fiókjukkal SSH-n keresztül. Ha Windowsból szeretnénk belépni, akkor javaslom a Putty alkalmazást. Az enegdélyezett felhasználókat és csoportokat megnézheted a következő paranccsal:
realm list
Sudo engedélyezése
Habár már be tudunk jelentkezni SSH-n keresztül, de még nincs rendszergazdai jogunk. Ehhez a Windows felhasználót, vagy AD csoportot hozzá kell adnunk a sudoer-hez.
Hozz létre egy új, üres fájlt a /etc/sudoers.d könyvtárban.
touch /etc/sudoers.d/domain_admins
Nyisd meg szerkesztésre a létrehozott fájlt a kedvenc szerkesztőddel vagy a Midnight Commanderrel.
vi /etc/sudoers.d/domain_admins
Írjuk bele a következő sort ha egy Windows AD csoport tagjainak engedélyezzük a sudo belépést:
%AD_group_name@golnet.local ALL=(ALL) ALL
Ha csak egy adott AD felhasználónak enegdélyezzük a sudo belépést, akkor az alábbi sort adjuk hozzá:
felhasznalonev@golnet.local ALL=(ALL) ALL
Összefoglalás
A fenti lépésekkel sikeresen integrálhatjuk az Ubuntu/debian linux számítógépünket egy Windows AD-be és utána az AD felhasználónevünkkel és jelszavunkkal be tudunk lépni SSH-n keresztül. Windows domain környezetben javasolt elvégezni.
A munka során használt parancsok és utasítások listja sorrendben, ahogy ki kell adni. Természetesen a saját környezetednek megfelelően átírva a dőlt betűvel írt részeket.
hostnamectl set-hostname linuxszerver.golnet.local apt -y install realmd libnss-sss libpam-sss sssd sssd-tools adcli samba-common-bin oddjob oddjob-mkhomedir packagekit realm discover golnet.local realm join -U <domain admin> golnet.local realm list pam-auth-update systemctl restart sssd systemctl status sssd id felhasznalonev@golnet.local realm permit -g '<AD group name>' vagy realm permit felhasznalonev@golnet.local touch /etc/sudoers.d/domain_admins vi /etc/sudoers.d/domain_admins |--> %AD_group_name@golnet.local ALL=(ALL) ALL |--> felhasznalonev@golnet.local ALL=(ALL) ALL