Prosím počkejte chvíli...
Nepřihlášený uživatel
Výpočetní centrum
Nacházíte se: VŠCHT PrahaVýpočetní centrum  → Návody → Integrace ověřování uživatelů v OS Linux s MS Active directory
iduzel: 26779
idvazba: 33953
šablona: stranka
čas: 26.9.2017 04:05:03
verze: 3813
uzivatel:
remoteAPIs:
branch: trunk
Obnovit | RAW

Integrace ověřování uživatelů v OS Linux s MS Active directory

Tyto stránky popisují, jak nastavit OS Linux, aby využíval centralizovanou databázi uživatelů pro získávání informací o uživateli a ověřování jejich přístupových údajů.

Postupy, které jsou zde uvedeny byly otestovány na distribucích Ubuntu a RedHat(CentOS).

Upozornění než začnete: Tento postup modifikuje přístup systému k získávání uživatelských informací a jejich ověřování. V případě nekorektní modifikace popsaných konfiguračních souborů se již nebudete moci přihlásit! Doporučujeme proto zálohu konfigurace před započetím prací a před odhlášením správcovské session si ověřte, že jste se stále schopni k systému přihlásit.

Jednotné uid pomocí LDAP/NIS

K čemu je to dobré:
Pokud jste uživateli OS Linux, jistě jste již narazili na problém s UID. Typicky máte několik počítačů, na každém máte například svůj lokální účet. Například pc1 a pc2. Na obou počítačích máme lokálního uživatele honza. Uživatel honza má v systému unikátní UID, většinou 1000 a výše. Pokud je zde více uživatelů první uživatel má UID 1000, druhý 1001, atd. V případě že uživatele honza tedy na pc2 vytvořím až po uživateli petr stane se to, že soubory zkopírované z pc1 na pc2 se nám na pc2 začnou jevit jako by jejich vlastníkem byl petr. Proto je zde možnost centrální správy UID. V podstatě se jedná o to, že v celé síti má každý uživatel jedno unikátní UID.

Popsanou situaci lze jednoduše vyřešit tak, že nastavíte systémy tak, aby získávaly uživatelské údaje z centralizované databáze. Na VŠCHT můžete použít budťo údaje přistupne pomocí protokolu LDAP nebo NIS.

Nastavení LDAP

Potřebné součásti nainstalujete pomocí příkazu
Ubuntu: aptitude install libnss-ldap nscd
RedHat: yum install nss_ldap nscd

Postup specifický pro Ubuntu
Debconfu odpovíme takto:

LDAP server URI: ldap://bodlak.vscht.cz/ (Note the "ldap://", NOT "ldapi://"!)

Distinguished name of the search base: dc=vscht,dc=cz

LDAP version to use: 3

Does the LDAP database require login? No

Special LDAP privileges for root? No

Make the configuration file readable/writeable by its owner only? No

Allow LDAP admin account to behave like local root? no

Make local root Database admin. No

Does the LDAP database require login? Yes

LDAP account: uzivatel@vscht.cz

LDAP password: PASSWORD

Local crypt to use when changing passwords. md5

PAM profiles to enable: select all

Postup specifický pro RedHat
Po instalaci knihoven spuste nástroj authconfig a nastavte, že uživatelské údaje jsou získávány také z ldap.

Společný postup
Po instalaci doporučuji zkontrolovat soubor /etc/ldap.conf(V některých systémech /etc/libnss-ldap.conf )zda obsahuje tyto řádky(případné rozdíly eliminujte):

base dc=vscht,dc=cz
timelimit 120
bind_timelimit 120
idle_timelimit 3600
nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd,news,mailman,nscd,gdm
nss_srv_domain _ldap._tcp.vscht.cz
ssl no
binddn uzivatel@vscht.cz
bindpw heslo
scope sub
nss_base_passwd dc=vscht,dc=cz?sub?&(objectCategory=user)(uid=*)
nss_base_shadow dc=vscht,dc=cz?sub?&(objectCategory=user)(uid=*)
nss_base_group dc=vscht,dc=cz?sub?&(objectCategory=group)(gidnumber=*)
nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_objectclass posixGroup group
nss_map_attribute gecos DisplayName
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute uniqueMember member

Vzhledem k nutnosti ověřeného přístupu k ldap serveru je nutné v konfiguračním souboru použít pro parametr binddn a bindpw platné přihlašovací údaje. Jejich obsah Vám sdělí pracovnici Výpočetního Centra.

V souboru /etc/nsswitch.conf upravíme řádky passwd a group takto:
passwd: files ldap
group: files ldap

Nastavení NIS

Alternativou k LDAP(pokud jej Váš systém nepodporuje) může být použití protokolu NIS.

Potřebné součásti nainstalujete pomocí příkazu
Ubuntu: aptitude install nis
RedHat: yum install ypbind yp-tools

Jako doménu nastavíme vscht (zápis do souboru /etc/defaultdomain)

V /etc/yp.conf je třeba nastavit minimálně jeden server

domain vscht server frezie.vscht.cz

V souboru /etc/nsswitch.conf upravím passwd a group takto:
passwd: files nis
group: files nis

V systému RedHat lze uvedené nastavení snadno upravit pomocí nástroje authconfig.

Dokončení nastavení

Nyní zkuste, že vše funguje. Příkaz "getent passwd" by měl vrátit výpis uživatelských účtů rozšířený o položky získané z doménové databáze. Pokud se tak nestalo, zkontrolujte předchozí kroky.

Na závěr této fáze by jsme Vám ještě doporučili spustit cachovacího démona nscd, který se postará o to, že vše bude fungovat i v připadě krátkodobé nedostupnosti počítačové sítě nebo centrální databáze.

Ověřování hesel pomocí protokolu Kerberos

Pro ověřování uživatelských hesel z centrální databáze je použit protokol Kerberos v součinosti s ověřovacím mechanismem PAM.

Nastavení Kerberosu

Potřebné součást nainstalujete příkazem
Ubuntu: aptitude install libpam-krb5
RedHat: yum install pam_krb5

Poté upravte konfigurační soubory

/etc/krb.conf
VSCHT.CZ
VSCHT.CZ bodlak.vscht.cz:88
VSCHT.CZ bodlak.vscht.cz:749 admin server

/etc/krb5.conf
[logging]
default = SYSLOG:NOTICE:DAEMON
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = VSCHT.CZ
dns_lookup_realm = false
dns_lookup_kdc = true
clockskew = 600

[realms]
VSCHT.CZ = {
kdc = bodlak.vscht.cz:88
admin_server = bodlak.vscht.cz:749
default_domain = VSCHT.CZ
kpasswd_server = bodlak.vscht.cz
}

[domain_realm]
vscht.cz = VSCHT.CZ
.vscht.cz = VSCHT.CZ

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

Nastavení PAM

V RedHatu stačí pustit nástroj authconfig a přidat ověřování uživatelů pomocí Kerberosu + automatické vytváření domovských adresářů. Program sám zmodifikuje nezbytná nastavení(doporučujeme poté pro jistotu zkontrolovat, že nastavení z předchozích kroků jsou zachována).

V Ubuntu je nutné modifikovat následující konfigurační soubory

/etc/pam.d/common-auth
auth [success=3 default=ignore] pam_unix.so nullok_secure
auth [success=2 default=ignore] krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_cap.so

/etc/pam.d/common-account
account [success=3 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=2 new_authtok_reqd=done default=ignore] pam_krb5.so
account [success=1 default=ignore] pam_ldap.so
account requisite pam_deny.so
account required pam_permit.so

/etc/pam.d/common-session
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session optional pam_ldap.so
session optional pam_ck_connector.so nox11
session optional pam_krb5.so minimum_uid=1000

Závěrečná nastavení a různé tipy

Podobně jako u uživatelských informací lze nastavit i cachování hesel pro přihlášení se v případě nedostupnosti sítě.

Instalace nutných komponent
Ubuntu: aptitude install nss-updatedb libnss-db libpam-ccreds
RedHat: yum install pam_ccreds

Dále je třeba přidat použití modulu pam_ccreds do /etc/pam.d/common-auth(Ubuntu):
auth [default=ignore] pam_ccreds.so minimum_uid=1000 action=update
auth [success=2 default=ignore] pam_ccreds.so minimum_uid=1000 action=validate use_first_pass
auth optional pam_ccreds.so minimum uid=1000 action=store

Řízení přístupu

Pro omezení uživatelů, kteří mají právo se k počítači přihlásit slouží pam modul access. Konfigurace uživatelů se provádí v /etc/security/access.conf

Příklad nastavení:
+:testuser:ALL
-:ALL EXCEPT LOCAL :ALL

Toto nastevní povolí přístup uživateli testuser a všechny kromě lokálních uživatelů zakáže.

Aby byl pam modul access využíván je jej třeba aktivovat nejlépe v /etc/pam.d/common-account tímto řádkem: account required pam_access.so

Pozor! Démon pro vzdálený přístup přes ssh se v závislosti na konfiguraci v /etc/ssh/sshd_config může anebo nemusí nastavením pam řídit:

Pro použití pam musí konfigurace obsahovat volbu:
UsePAM yes

a odkazy na příslušné moduly a nastavení pam být uvedeny v /etc/pam.d/sshd.

Pokud ji neobsahuje, je nutné použít direktivy DenyUsers a AllowUsers. Např.:
DenyUsers root testuser
AllowUsers franta lojza

Lokální uživatelé

Uživatelská uid poskytovaná z LDAP/NIS začínají na uid 1000. Pokud máte v systému lokální uživatele s uid nad touto hranicí, je vhodné je přečíslovat, aby nedocházelo ke konfliktu s uživateli poskytovanými z centrální databáze. Totéž platí na pro případné budoucí ruční zakládání lokálních uživatelů.

Aktualizováno: 26.5.2016 13:46, Autor: Antonín Mareš


VŠCHT Praha
Technická 5
166 28 Praha 6 – Dejvice
IČO: 60461373
DIČ: CZ60461373

Datová schránka: sp4j9ch

Copyright VŠCHT Praha 2014
Za informace odpovídá Výpočetní centrum, technický správce Výpočetní centrum
zobrazit plnou verzi