Klient sítě Windows

Z Milan Kerslager
Přejít na: navigace, hledání

Součástí projektu Samba je i klientská část, která spolupracuje s modulem v jádře linuxu a umožňuje tak Linuxu využívat služby v síti Windows. Protistranou může být jak stanice (či server) s MS Windows, tak jiná Samba (která může být spuštěna na Linuxu, Mac OS X nebo i jiném systému).

Klient AD nebo DC

Samba může být členem AD (Active Directory) nebo klasické domény s DC (Domain Controller), ve které si počítače (servery) důvěřují a sdílejí zejména informace o uživatelských účtech. Aby Samba mohla komunikovat s ostatními servery začleněnými v AD nebo DC, musí být nejprve mezi ní a AD nebo servery DC vytvořen vztah důvěry. Tomuto aktu, kdy si obě strany u sebe uloží autentizační informace, podle kterých si dále navzájem mezi sebou při komunikaci prokazují svoji identitu, se říká „vstup do domény“.

Soubor /etc/samba/smb.conf změňte tak, aby obsahoval:

[global]
  security = domain
  workgroup = oalib.cz
  password server = *
  idmap config * : range = 16777216-33554431
  template shell = /bin/bash
  winbind use default domain = yes
  winbind offline logon = false
  wins server = 10.0.0.2

Parametr security=domain definuje stanici jako klienta domény windows (server je PDC nebo BDC), jejíž název je určen parametrem workgroup. Parametr password server může obsahovat IP adresu PDC nebo BDC, ale je možné zde uvést hvězdičku, takže klient si jeho adresu zjistí sám. Parametr idmap config slouží k definování volné oblasti UID (identifikační číslo uživatele), které by nesmí kolidovat s lokálními uživateli. Parametr template shell definuje shell pro uživatele, který po úspěšném přihlášení (úspěšné autentizaci proti doméně) na klientovi vznikne. Musí to být platný shell, který je obsažen v souboru /etc/shells a obvykle je přihlašovací bezpečnostní politika nastavena tak, že to musí být skutečný shell, aby se dalo přihlásit do grafického rozhraní. Parametr winbind use default domain=yes umožní, aby přihlašující se uživatel nemusel doménu uvádět (uvedenou v parametru workgroup). Parametr winbind offline logon umožňuje přihlášení i bez dostupnosti řadičů domény (PDC, BDC). Parametr wins server obsahuje IP adresu WINS serveru, který usnadní rozpoznávání jmen počítačů v síti Windows.

Kontrola smb.conf

Provedené změny v /etc/samba/smb.conf zkontrolujte příkazem testparm.

Kontrola dostupnosti serveru (AD, DC)

Zajistěte, že je na severu vytvořen uživatel a znáte jeho heslo nebo že je na serveru dovolen přístup anonymního uživatele. Nejprve zkuste kontaktovat server (se Sambou v roli AD nebo DC) pomocí IP adresy, a pak pomocí (NetBIOS) jména. Přepínač -U umožňuje uvést uživatele, který se bude serveru dotazovat. Příkaz smbclient se zeptá na heslo, pokud je při výpisu systémových prostředků potřeba. Pokud se autentizace nezdaří (heslo není správně, pokusí se příkaz o výpis prostředků jako anonymní uživatel.

smbclient -L //10.0.0.2
smbclient -U huzva -L //10.0.0.2
smbclient -L //jmenoserveru
smbclient -U huzva -L //jmenoserveru

Pokud nefunguje kontaktování serveru podle jména, ujistěte se, že funguje převod jména počítače na IP adresu pomocí DNS (příkaz ping jmenoserveru). Místo DNS lze použít i NetBIOS jména (používaná v sítích Windows), avšak v takovém případě musí na klientovi být správně nakonfigurována adresa WINS serveru (viz výše v nastavení /etc/samba/smb.conf).

ping jmenoserveru

I když je server dostupný příkazem ping, nemusí být komunikace s ním pomocí SMB protokolu možná v případě, že je na klientovi nastaven restriktivní firewall. Vypnout ho můžete například pomocí následujících příkazů (poslední příkaz vypíše aktuální nastavení pravidel firewallu):

systemctl stop iptables.service
iptables -F
iptables -X
iptables -n -L

Active Directory

Do ADS (doména či Active Directory) vstoupíte příkazem:

net ads join oalib.cz

Při vstupu do domény je potřeba heslo správce domény (root, administrator). Informace se ukládají do souboru /var/lib/samba/private/secrets.tdb. Na severu je automaticky vytvořen účet stanice s přidaným znakem $ na konci.

Test, opuštění domény

net ads status
net ads leave

Na Samba serveru je možné ověřit účet stanice výpisem z interní databáze Samby pomocí příkazu (merlin je název připojené stanice):

pdbedit -Lw merlin\$

Klasická Doména Windows

Vstup do klasické domény, která je řízena PDC (Primary Domain Controller), resp. BDC (Backup Domain Controller) probíhá podobně, jako připojení k AD. Stanice pak přejímá od serveru informace o účtech uživatelů, kteří jsou v doméně nadefinováni. Server (PDC, BDC) sděluje informace klientovi jen za předpokladu, že je vztah důvěry navázán. Nejčastěji se používá pro ověření přihlašovacích informací uživatelů (jméno+heslo).

Na klientovi (tj. stanice s Linuem) přidejte do souboru /etc/samba/smb.conf ještě následující řádky:

 client lanman auth = yes
 client plaintext auth = yes

Aby bylo možné použít v síti pro rozlišení jmen počítačů i jejich „windows“ jména, je potřeba zařadit tento požadavek do konfigurace knihovny pro resolver, tj. do souboru /etc/nsswitch.conf společně s identifikací uživatele pomocí démona windbind:

passwd:     files winbind
shadow:     files winbind
group:      files winbind
hosts:      files dns wins

Na řádku s hosts: je definováno, že při požadavku převodu jména na IP adresu bude nejprve využit obsah souboru /etc/hosts, poté klasické DNS a poté i informace od WINS serveru (jehož adresa je definována v /etc/samba/smb.conf).

Vstup do domény

Pokud je /etc/samba/smb.conf správně nastaven, stanice (snadno a správně) zjistí, kdo je řadič domény (tj. PDC, BDC). Test dostupnosti DC (domain controller, řadič domény) tedy musí vypsat IP adresu (či více adres).

net lookup dc oalib.cz

Adresa DC se získává tak, že se nejdříve zjistí řadiče domény, které mohou být zapsány v souboru /etc/samba/smb.conf, dále z dat, která jsou dočasně uložena na lokálním disku a následně pak z dotazu na WINS server. Pokud jsou data špatně, je nutné zastavit řadič domény (tj. Sambu a tím i WINS server), smazat cache WINS serveru v souboru /var/lib/samba/wins.tdb a wbinfo --user-info , a pak smazat i cache na lokálním počítači v souborech /var/lib/samba/gencache*.

Pokud je zjištění DC správně, použijte pro vstup klientské stanice do domény příkaz:

net rpc join oalib.cz

Kontrola členství v doméně

net rpc info
net rpc testjoin

Zjišťování informací z domény

Po vstupu do domény lze z klienta zjišťovat informace o uživateli:

wbinfo --user-info john
wbinfo --user-groups john
wbinfo --gid-info <číslo-skupiny>
wbinfo --pam-logon john
wbinfo --authenticate john

Pokud příkaz wbinfo hlásí chybu WBC_ERR_WINBIND_NOT_AVAILABLE, neběží na klientovi démon winbind. Zkuste stav démona otestovat, a pak ho restartovat:

systemctl status winbind.service
systemctl restart winbind.service

Na serveru zkontrolujte existenci účtu počítače, který tam automaticky vznikl. K názvu počítače (klienta, který do domény vstoupil) připojte při dotazu na Samba serveru znak dolar („$“), čímž se odlišují běžné uživatelské účty od účtů počítačů. Slovo „merlin“ nahraďte jménem vstupujícího počítače (zjistíte ho na vstupujícím klientovi, resp. stanici, příkazem hostname):

pdbedit -Lw merlin\$

Výstup z domény

Externí odkazy