Připojení počítače k doméně Active Directory (windows či ubuntu)

Pokud řešíte problém jak připojit počítač se systémem Windows XP/Vista/7 či linux (ubuntu) k firemní síti - doméně (nejčastěji Active Directory), tak to není až tak složité jak se může zdát.

Pro příklady budu předpokládat následující:

  • funkční Active Directory (doména "moje.firma" nebo "MOJE.FIRMA") s uživatelským účtem "franta"
  • klientský počítač (Windows či linux) se jménem frantisek-pc
  • doménové jméno nebo IP adresa počítače, kde Active Directory běží ("ad.moje.firma" nebo 192.168.111.222)

Windows XP/Vista/7

Návod je určen pro Windows XP Professional se SP3 po čisté instalaci - máme tedy nějakého lokálního uživatele s administrátorskými právy k danému počítači (řekněme "frantisek"). Počítač se jmenuje "frantisek-pc".

Změníme tedy způsob přihlašování - místo přihlašování k lokálnímu počítači nastavíme přihlášení do domény:
Pravé tlačítko na "My computer", "Properies", záložka "Computer Name", tlačítko "Change..." a pak zvolit "Member of Domain" - "MOJE.FIRMA", případně ještě pomocí tlačítka "More..." dodat DNS koncovku "moje.firma". Po uložení dialogu budeme dotázání na doménové jméno/heslo (zřejmě musíme mít také nějaké oprávnění přidávat počítač do domény) a nakonec nutné restart.

Poznámka pro Windows Vista/7:
Computer, pravé tlačítko a vybrat Properies, "Computer name, domain and workgroup settings" zvolit "Change settings", tlačítko "Change..." a pak stejné jako pro XP.

Po naběhnutí a trojkombinaci Ctrl+Alt+Delete stiskneme "Options" na přihlašovacím dialogu a zvolíme doménu "MOJE.FIRMA", pak se přihlásíme doménovým jménem/heslem.

Poznámka pro Windows Vista/7:
Ctrl+Alt+Delete, Switch User a Other User - pak se můžeme přihlásit do té domény co chceme (franta/MOJE.FIRMA).

Teď je účet franta na počítači bez oprávnění - není administrátorem, nemůže nic instalovat. Přihlásím se tedy jako lokální uživatel s administrátorskými právy "frantisek" a zvolím Control Panel, User Accounts a Add... Vyplním jméno franta a do domény MOJE.FIRMA, tlačítko Next a tam zvolím Other: Administrators a pak Finish.

Poznámka pro Windows Vista/7:
Jako lokální uživatel se přihlásíme pomocí "frantisek-pc\frantisek". Poté Control Panel, User Accounts, Give other users access to this computer, Add... a jako pro XP (v Other je primárně "Backup operators" místo Administrators).

linux ubuntu (8.04)

kerberos - část 1

Na čistou instalaci ubuntu (verze desktop 8.04 - ale bude pravděpodobně fungovat i na jiných verzích) je nutné nainstalovat tyto balíčky:

aptitude install krb5-user libpam-krb5 krb5-config libkadm55

Nastavit kerberos v konfiguráku /etc/krb5.conf - do sekce [libdefaults] přidat nebo přepsat:

default_realm = MOJE.FIRMA

a do sekce [realms] přidat:

MOJE.FIRMA = { kdc = ad.moje.firma default_domain = MOJE.FIRMA kpasswd_server = ad.moje.firma }

a nakonec do sekce [domain_realm] přidat:

.moje.firma = MOJE.FIRMA moje.firma = MOJE.FIRMA

Poznámka:
Pro správné převádění doménových jmen na IP adresy je nutné mít správně nastavenou síť, konkrétně IP adresu DNS serveru.
Já jsem se navíc setkal s problémem, že některá jména nešla převést - musel jsem změnit řádek v /etc/nsswitch.conf z:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

na:

hosts: files dns [NOTFOUND=return] mdns4 mdns4_minimal

Od teď by mělo být možné se přihlásit do Active Directory pomocí příkazu "kinit" (pokud mám na lokálním počítači již vytvořen lokální účet franta - totožné jméno jako účet u Active Direcotry). Příkaz "kinit" ukáže hlášku:

Password for franta@MOJE.FIRMA:

Po zadání správného hesla nevypíše nic. Pro zjištění jestli jsme přihlášeni stačí spustit příkaz "klist", který by měl vypsat něco takového:

Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: franta@MOJE.FIRMA Valid starting Expires Service principal 10/29/08 09:58:04 10/29/08 19:58:06 krbtgt/MOJE.FIRMA@MOJE.FIRMA renew until 10/30/08 09:58:04 Kerberos 4 ticket cache: /tmp/tkt1000 klist: You have no tickets cached

Tím jsme schopni se přihlásit k doméně, ale je nutné po přihlášení k lokálnímu počítači (s použitím lokálního hesla) spustit "kinit" a přihlásit se ještě k doméně zadáním doménového hesla.

kerberos - část 2

Pro přihlášení do domény ihned po spuštění počítače je nutné změnit obsah souboru /etc/pam.d/common-auth z:

auth requisite pam_unix.so nullok_secure auth optional pam_smbpass.so migrate missingok

na:

auth sufficient pam_krb5.so ccache=/tmp/krb5cc_%u auth sufficient pam_unix.so likeauth nullok use_first_pass auth required pam_deny.so

a pak ještě obsah souboru /etc/pam.d/common-session z:

session required pam_unix.so

na:

session required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel/ umask=0077

Automatické ověření přes kerberos přes prohlížeč

Internet Explorer to dělá sám, Konqueror (linux) to také umí bez dalšího nastavení.

Pro Firefox je nutné toto nastavení:
do adresního řádku zadat "about:config", vyhledat "network.negotiate-auth.trusted-uris" a napsat tam řetězec "moje.firma". Zase pomocí "klist" je možné zjistit získaný ticket pro danou službu.

Zdroje:

https://help.ubuntu.com/community/Samba/Kerberos
https://help.ubuntu.com/community/ActiveDirectoryHowto
http://www.helpdesk.umd.edu/topics/applications/kerberos/4782/

Aktualizováno: 10. 12. 2009