Ubuntu 12.04 LTS integrare cu Active Directory

De cele mai multe ori nu ne convine ca daca avem 10 servere, sa avem si 10 usernameuri si parole diferite, asta in special cand facem parte dintr-o companie mai mare unde infrastructura este in continua crestere. Pentru asta folosim autentificarea cu un cont creat pe un domain controller (DC) pe care de obicei ruleaza un sistem de operare Windows Server cu Active Directory instalat, unde grupurile si politicile de grup sunt create pentru a aloca accesul fiecaruia in zona necesara de lucru.
La nivel de Windows, integrarea functioneaza foarte usor,dar nu e la fel de usor de facut pe Ubuntu, asta in conditiile in care vrem sa integram astfel in cat sistemul de operare sa tina cont si de policiticle de grup ale DC-ului si nu doar la nivel de LDAP.

Astfel pentru Ubuntu 12.04 LTS am ales CentrifyDC pentru integrarea cu Active Directory.
Inainte de instalarea CentrifyDC trebuie sa urmam cativa pasi pana la descarcarea lui;

Adaugam repositorurile:

apt-get install python-software-properties

add-apt-repository „deb http://archive.canonical.com/ oneiric partner”

Actualizam repositourile:

apt-get update

apoi instalam CentrifyDC:

apt-get install centrifydc

Dupa ce s-a instalat centrifydc putem face integrarea sistemului in domeniu:

adjoin -u user_domeniu -w nume.domeniu.tld

Dupa introducerea parolei de domeniu sistemul necesita restart pentru a fi posibila logarea cu contul de domeniu.

Acum ca sa putem avea acces root pe sistem va trebui sa adaugam in /etc/sudoers grupurile sau userii care sa se poata autentifica root prin comanda sudo pe acel sistem.

nano /etc/sudoers

unde adaugam:

%Nume_Grup ALL=(ALL:ALL) ALL #pentru ca un grup de pe DC sa poata avea acces root prin sudo
user_name ALL=(ALL:ALL) ALL #pentru ca un anume user de pe DC sa poata avea acces root prin sudo

In cazul in care numele grupului este „Domain Users” in /etc/sudoers se adauga: %Domain\ Users

Acum ca am editat si /etc/sudoers sistemul poate fi repornit si logarea se poate face cu contul de domeniu.
Logarea prin SSH la un sistem integrat cu Active Directory se face: ssh user_domeniu@hostname sau ssh GRUP\\user_domeniu@hostname sau ssh ‘GRUP\user_domeniu’@hostname

Pana aici este procedura pentru integrarea Ubuntu SERVER.

Pentru integrarea versiunii Desktop cu LightDM, mai trebuie urmati urmatorii pasi care presupun adaugarea unui script care forteaza CentrifyDC sa porneasca la pornirea sistemului. Aceasta implementare e necesara din cauza ca la versiunile Desktop, dupa pornirea sistemului CentrifyDC se conecteaza la domeniu abia dupa 2-3 minute, ceea ce de multe ori ne pune pe ganduri daca vrem sa ne logam soi nu reusim.

Creem un script in script in /etc/network/if-up.d/

sudo vim /etc/network/if-up.d/centrify

Unde adaugam continutul:

#!/bin/sh

if [ „$IFACE” = lo ]; then
exit 0
fi

/etc/init.d/centrifydc restart
initctl emit centrify-connected

Apoi alocam drepturile necesare:

sudo chown root /etc/network/if-up.d/centrify
sudo chgrp root /etc/network/if-up.d/centrify
sudo chmod 755 /etc/network/if-up.d/centrify
sudo chown root /etc/init/lightdm.conf
sudo chgrp root /etc/init/lightdm.conf
sudo chmod 644 /etc/init/lightdm.conf

La final editam /etc/init/lightdm.conf pentru a forta CentrifyDC sa porneasca in timp util, unde adaugam o singura linie: and centrify-connected, astfel ca fisierul sa arate asa: Acest pas nu mai este necesar daca Ubuntu are ultimele actualizari inainte de a fi integrat in domeniu.

# LightDM – light Display Manager
#
# The display manager service manages the X servers running on the
# system, providing login and auto-login services
#
# based on gdm upstart script

description „LightDM Display Manager”
author „Robert Ancell”

start on ((filesystem
and runlevel [!06]
and started dbus
and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udev-fallback-graphics)
and centrify-connected)
or runlevel PREVLEVEL=S)

stop on runlevel [016]

emits login-session-start
emits desktop-session-start
emits desktop-shutdown

script
if [ -n „$UPSTART_EVENTS” ]
then
# Check kernel command-line for inhibitors, unless we are being called
# manually
for ARG in $(cat /proc/cmdline); do
if [ „$ARG” = „text” ]; then
plymouth quit || :
stop
exit 0
fi
done

[ ! -f /etc/X11/default-display-manager -o „$(cat /etc/X11/default-display-manager 2>/dev/null)” = „/usr/bin/lightdm” -o „$(cat /etc/X11/default-display-manager 2>/dev/null)” = „/usr/sbin/lightdm” ] || { stop; exit 0; }

if [ „$RUNLEVEL” = S -o „$RUNLEVEL” = 1 ]
then
# Single-user mode
plymouth quit || :
exit 0
fi
fi

exec lightdm
end script

post-stop script
if [ „$UPSTART_STOP_EVENTS” = runlevel ]; then
initctl emit desktop-shutdown
fi
end script

Acest tutorial a mai fost testat si pe versiunile Ubuntu: 10.04 Lucid Lynx, 11.10 Oneiric Ocelot, 12.10 Quantal Quetzal, si 13.04Beta Raring Ringtail.

Leave a Reply

srv StandDuPp
Articole recente