Dokumentáció/SL9.3/Szolgáltatások/Samba

Icon-samba.png A Samba mára egy teljes szolgáltatáskörrel bíró és precízen beállítható hálózati termékké fejlődött. A Samba segítségével egy UNIX-gép beállítható fájl- és nyomtatószerverként DOS, Windows és OS/2 gépekhez is. Ez a fejezet a Samba-konfiguráció alapjait írja le és bemutatja a Samba beállítására szolgáló YaST-modulokat. A további szolgáltatásokat, és azok beállításait a disztribúcióban lévő elektronikus dokumentáció tartalmaz.

Bevezetés

A parancssorban adja ki az apropossamba parancsot néhány kézikönyvoldal (man) megjelenítéséhez, vagy ha a Samba már telepítve van, akkor böngésszen bátran az /usr/share/doc/packages/samba könyvtárban, ahol többféle online dokumentum és példa is található. Egy megjegyzésekkel ellátott példakonfiguráció (smb.conf.SuSE) található az examples alkönyvtárban.

A samba csomag mellékelt 3. verziójának néhány fontos új funkciója:

  • Active Directory támogatása
  • Javított Unicode-támogatás
  • A belső hitelesítési eljárások teljesen átdolgozásra kerültek
  • A Windows 200x és XP nyomtatási rendszer jobb támogatása
  • A szerverek az Active Directory tartományokban beállíthatók tagszerverekként
  • Egy NT4 tartomány adoptálása a Samba-tartományra átállás megkönnyítésére
Icon-info.png Áttérés Samba3-ra

A Samba 2.x-ről Samba 3-ra átálláskor néhány speciális szempontot figyelembe kell venni. A témakör leírását a Samba HOWTO-gyűjtemény tartalmazza, amelyben egy teljes fejezetet szentelnek erre.

A samba-doc csomag telepítése után az /usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdf fájlban keresse meg a HOWTO-t.}} A Samba a NetBIOS szolgáltatásokra épülő SMB (server message block, szerver-üzenetblokk) nevű protokollt használja. Az IBM nyomására a Microsoft széles körben elérhetővé tette a protokollt, így más szoftvergyártók is kapcsolatot létesíthetnek egy Microsoft-tartománnyal. A Samba esetében az SMB protokoll a TCP/IP-protokollokra épül, tehát a TCP/IP-protokollcsaládot az összes kliensen telepíteni kell.

Icon-hardver.png IBM S/390, zSeries: NetBIOS támogatás

Az IBM S/390 és zSeries csak TCP/IP-n keresztüli SMB-t támogat. A NetBIOS-támogatás ezeken a rendszereken nem áll rendelkezésre.

A NetBIOS egy számítógépek közötti kommunikációra kialakított szoftvercsatoló (API). Ennek része egy névszolgáltatás is, amely lehetővé teszi, hogy a hálózatra csatlakoztatott gépek neveket foglaljanak le maguknak, melyek lefoglalása után a gépek név alapján elérhetők. Nincs központi folyamat, amely ellenőrizné a neveket, így a hálózat bármely gépe tetszőleges számú nevet foglalhat le, ha azok még nem használtak. A NetBIOS-csatoló többféle hálózati architektúrán is megvalósítható. Egy megvalósítás, amely viszonylag szorosan együttműködik a hálózati hardverrel, a NetBEUI, de sokszor és sokan ezt értik NetBIOS alatt. Emellett létezik a Novell IPX-protokolljára és TCP/IP-re épülő NetBIOS is (NetBIOS over IPX és NetBIOS over TCP/IP).

A TCP/IP-n keresztül küldött NetBIOS-neveknek semmi közük sincs az /etc/hosts fájlban, vagy a DNS által használt nevekhez. A NetBIOS saját, teljesen független névkonvenciót használ. Az adminisztráció leegyszerűsítése érdekében célszerű azonban a DNS-gépnevekkel megegyező neveket használni. Éppen ezért a Samba által használt alapértelmezett beállítás is ez.Az összes elterjedt operációs rendszer – például a Mac OS X, a Windows és az OS/2 – támogatja az SMB protokollt. A TCP/IP protokollt az összes számítógépen telepíteni kell. A Samba a UNIX-változatok alá biztosít SMB-klienst. Linux esetén egy külön kernelmodul is készült az SMB-hez, amely lehetővé teszi az SMB-erőforrások rendszerszintű integrációját.Az SMB-szerverek úgynevezett megosztásokon keresztül biztosítanak hardverterületet a kliensek számára. A megosztás a szerver egyik könyvtárát és ennek alkönyvtárait tartalmazza. Ezt a szerver név alapján exportálja és e név alapján érhető el. A megosztásnév tetszőleges névre állítható – nem kell megegyeznie az exportált könyvtár nevével. A nyomtatókhoz is van név rendelve. A kliensek a nyomtatót szintén név alapján tudják elérni.

A szerver beállítása

Ha a Sambát szerverként szeretné használni, akkor telepíteni kell a samba csomagot. A Samba szolgáltatásai az rcnmb start && rcsmb start parancsok segítségével indíthatók el és az rcsmb stop && rcnmb stop parancsokkal állíthatók le.A Samba fő konfigurációs fájlja az /etc/samba/smb.conf. Ez a fájl két fő logikai részre oszlik. A [global] rész a központi és általános beállításokat tartalmazza. A [share] rész pedig az egyedi fájl- és nyomtatómegosztásokat írja le. E megközelítés segítségével a megosztások jellemzői megadhatók megosztásokként eltérően, vagy a [global] részben egységesen. Ez javítja a konfigurációs fájl szerkezetének áttekinthetőségét.

A [global] rész

A [global] rész alábbi paramétereit a saját hálózati beállításokhoz kell igazítani, hogy a gépek SMB-n keresztül hozzá tudjanak férni a Samba-szerverhez Windows alól.

workgroup = TUX-NET
Ez a sor a Samba-szervert egy munkacsoporthoz rendeli. A TUX-NET helyére a hálózati környezet megfelelő munkacsoportját kell írni. A Samba-szerver a DNS-neve alatt jelenik meg, hacsak ez a név nem lett hozzárendelve a hálózat valamelyik másik gépéhez. Ha a DNS-név már foglalt, akkor a netbiosname=EZANEVEM sorhoz hasonló módon adja meg a szerver nevét. A paraméterrel kapcsolatos részletek a mansmb.conf paranccsal hívhatók elő.
os level = 2
Ez a paraméter azt szabályozza, hogy a Samba-szerver megpróbáljon-e LMB-vé (local master browser, helyi mester böngészővé) válni a munkacsoportban. A meglévő Windows-hálózat egy rosszul beállított Samba-szerver okozta zavaraitól való megkímélése érdekében egy alacsony értéket válasszon ide. E fontos témakörről további információ a csomagdokumentáció textdocs alkönyvtárában, a BROWSING.txt és BROWSING-Config.txt fájlokban olvasható.
Ha nincs más SMB-szerver jelen a hálózatban (például egy Windows NT vagy 2000 szerver) és azt kívánja, hogy a Samba-szerver tárolja a helyi környezetben jelen lévő rendszerek listáját, akkor állítsa az os level értékét nagyobbra (például 65). A Samba-szerver ezután LMB-ként kiválasztásra kerül a helyi hálózathoz.
A beállítás módosításakor gondosan mérlegelje a változásnak a meglévő windowsos hálózati környezetre gyakorolt hatását. Először próbálja ki a módosításokat egy elszigetelt hálózatban vagy a nap nem kritikus időszakában.
wins támogatás és wins szerver
Ha a Samba-szervert aktív WINS-szervert működtető Windows-hálózatba kívánja integrálni, akkor használja a wins server beállítást és az értéke legyen a WINS-szerver IP-címe.
Ha a windowsos gépek külön alhálózatokhoz csatlakoznak, de tudniuk kell egymásról, akkor van szükség WINS-szerverre. A Samba-szerver is képes ellátni a WINS-szerver feladatait: ehhez használja a wins support = Yes beállítást. Ügyeljen rá, hogy a hálózat csak egyetlen Samba szerverén legyen engedélyezve ez a beállítás. A wins server és a wins support beállítások egyszerre nem használhatók az smb.conf fájlban.

Megosztások

Az alábbi példák bemutatják, hogyan tehető elérhetővé egy CD-ROM meghajtó vagy egy felhasználói saját könyvtár a hálózat SMB-kliensei számára.
[cdrom]
A CD-olvasó véletlen megosztását az alábbi sorok megjegyzésekké tételével (ebben az esetben pontosvesszők beírásával) lehet letiltani. A CD-olvasó Sambán keresztüli megosztásához törölje az első oszlopban lévő pontosvesszőket.


Icon-example.png Példa: Egy CD-ROM megosztása

;[cdrom]
;       comment = Linux CD-ROM
;       path = /media/cdrom
;       locking = No
[cdrom] és comment
A [cdrom] bejegyzés a megosztás neve, amelyet az SMB-kliensek látnak a hálózaton. A megosztás soraihoz adható további megjegyzés is (comment).
path = /media/cdrom
A path jelzi, hogy a /media/cdrom könyvtárat exportáljuk.:A nagyon megszorító alapértelmezett konfiguráció miatt ez a megosztás csak a rendszeren jelen lévő felhasználók számára elérhető. Ha ezt a megosztást mindenki számára elérhetővé kell tenni, akkor a konfigurációhoz adja hozzá a {{{1}}} sort. Ez a beállítás olvasás jogosultságot biztosít mindenkinek a hálózaton. Ezt a paramétert egyébként is körültekintően kell kezelni, de ez különösen érvényes, ha a paramétert a [global] részben használjuk.
[homes]
A [home] megosztásnak különös jelentősége van itt. Ha egy felhasználó egy érvényes azonosítóval és jelszóval rendelkezik a Linux-fájlszerverhez és a saját könyvtárához, akkor csatlakozni tud hozzá.


Icon-example.png Pálda: homes megosztás

[homes]
	comment = Home Directories
	valid users = %S
	browseable = No
	read only = No
	create mask = 0640
	directory mask = 0750
[homes]
Ha nincs másik megosztás, amely az SMB-szerverhez csatlakozó felhasználó megosztás nevét használná, akkor a megosztás a [homes] megosztási utasítások segítségével dinamikusan létrehozásra kerül. A megosztás során kapott név megegyezik a felhasználó nevével.
valid users = %S
A %S helyére a megosztás konkrét neve kerül, amint a kapcsolat sikeresen létrejött. A [homes] megosztás esetén ez mindig a felhasználó neve. Ennek következményeképp a felhasználó megosztását csak a felhasználó érheti el.
browseable = No
Ez a beállítás láthatatlanná teszi a megosztást a hálózat felé.
read only = No
A Samba alapértelmezés szerint a {{{1}}} paraméterrel letiltja az exportált megosztás írási hozzáférését. Egy megosztás írhatóvá tételéhez a {{{1}}} értéket kell beállítani, amelynek hatása egyébként megegyezik a writeable = Yes paraméterével.
create mask = 0640
A nem MS Windows NT-re épülő rendszerek nem foglalkoznak a UNIX-jogosultságokkal, így egy fájl létrehozásakor nem rendelnek hozzá jogosultságokat. A create mask paraméter ezért meghatározza az újonnan létrehozott fájlok hozzáférési jogosultságait. Ez természetesen csak az írható megosztásokra érvényes. A gyakorlatban ez a jogosultságérték azt jelenti, hogy a tulajdonos olvasási és írási, a tulajdonos elsődleges csoportjának tagjai pedig olvasási jogosultsággal rendelkeznek. A valid users = %S paraméter azonban letiltja a csoport olvasási hozzáférését, hiába rendelkezik a csoport olvasási jogosultsággal. Ahhoz, hogy a csoport rendelkezzen olvasási vagy írási hozzáféréssel, tiltsa le a {{{1}}} sort.

Biztonsági szintek

Az SMB protokoll DOS- és Windows-rendszerekből származik, és ezért közvetlenül foglalkozik a biztonság kérdéskörével. Minden megosztás elérése védhető jelszóval. Az SMB háromféle jogosultság-ellenőrzést tesz lehetővé:
Megosztási szintű biztonság (security = share)
A megosztáshoz szigorúan hozzátartozik egy jelszó, csak a jelszót ismerő személyek férhetnek hozzá a megosztáshoz.
Felhasználói szintű biztonság (security = user)
E változat kapcsán először foglalkozunk a felhasználó fogalmával az SMB-n belül. Minden felhasználónak saját jelszóval kell bejelentkeznie a szerverhez. Regisztráció után a szerver az egyes megosztásokhoz a felhasználói névtől függően biztosít hozzáférést.
Szerverszintű biztonság (security = server)
A kliensek felé a Samba úgy működik, mintha felhasználói szintű módban futna. A valóságban azonban az összes jelszólekérdezést átadja egy másik felhasználói szintű szervernek, amely a hitelesítést végzi. Ehhez a beállításhoz még egy paramétert meg kell adni (password server =). A megosztási, felhasználói és szerverszintű biztonság közötti különbség, hogy az utóbbi a teljes szerverre érvényes. A szerver egyedi megosztásai itt már nem védhetők külön megosztásonkénti vagy felhasználói szintű biztonsággal. Megteheti azonban, hogy a rendszer minden beállított IP-címéhez külön Samba-szervert futtat.

A tárggyal kapcsolatos további információt a Samba HOWTO-gyűjtemény tartalmaz. Ha egy rendszeren több szerver van, akkor az interfaces és bind interfaces only beállításokra is figyeljen.

Icon-info.png Ötlet:

A Samba szerver egyszerű adminisztrációs feladataihoz használja a swat nevű programot. Ez egy egyszerű webes felületet biztosít a Samba-szerver kényelmes beállításához. Egy webböngészőben nyissa meg a http://localhost:901 címet és jelentkezzen be root felhasználóként. A swat programot azonban aktiválni kell az /etc/xinetd.d/samba és /etc/services fájlokban. Ehhez az /etc/xinetd.d/samba fájlban módosítsa a disable sort disable = no értékre. A swat programmal kapcsolatos információt a program kézikönyvoldala (man) tartalmaz.

Samba használata bejelentkezési szerverként

A túlnyomórészt Windows-klienseket tartalmazó hálózatban gyakran igény, hogy a felhasználók csak érvényes azonosítóval és jelszóval regisztrálhassák magukat. Ez megoldható egy Samba-szerverrel is. Windows alapú hálózatban ezt a feladatot az elsődleges tartományvezérlőként (PDC) beállított Windows NT szerver kezeli. Az smb.conf fájl [global] részébe beírandó bejegyzéseket a Az smb.conf globális része mutatja be.


Icon-example.png Példa: Az smb.conf globális része

[global]
  workgroup = TUX-NET
  domain logons = Yes
  domain master = Yes

Ha ellenőrzési célra titkosított jelszavak kerülnek alkalmazásra – ez az alapértelmezett beállítás egy jól karbantartott MS Windows 9x rendszerben, MS Windows NT 4.0 alatt a 3. szervizcsomagtól kezdve és az újabb termékekben – a [global] rész encrypt passwords = yes bejegyzése kapcsolja ezt be (a Samba 3-as verziójában már ez az alapértelmezés). Ezenfelül a felhasználói azonosítókat és jelszavakat a Windowsnak megfelelő titkosított formátumban kell előkészíteni. Ez az smbpasswd-a név paranccsal tehető meg. Hozza létre a számítógépek tartományazonosítóját (ezt a Windows NT tartomány igényli) az alábbi parancsokkal:


Icon-example.png Példa: Gépazonosító létrehozása

useradd hostname\$
smbpasswd -a -m hostname
A useradd parancshoz egy dollárjelet adva az smbpasswd jelszó ezt automatikusan beszúrja a -m paraméter használatakor. A megjegyzéssel ellátott konfigurációs példa (/usr/share/doc/packages/Samba/examples/smb.conf.SuSE) tartalmazza a feladatot automatizáló beállításokat is.


Icon-example.png Példa: A gépazonosító automatikus beállítása

add machine script = /usr/sbin/useradd -g nogroup -c "NT Machine Account" \
-s /bin/false %m\$

Annak érdekében, hogy a Samba ezt a parancsfájlt helyesen hajtsa végre, válasszon ki egy szükséges adminisztrátori jelszavakkal rendelkező Samba-felhasználót, amit adjon hozzá az ntadmin csoporthoz. Ezután a Linux-csoporthoz tartozó összes felhasználóhoz Tartományadmin állapot rendelhető az alábbi parancs segítségével:

net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin

A témakörrel kapcsolatos információt a Samba HOWTO-gyűjtemény (/usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdf) 12. fejezete tartalmaz.

Samba-szerver beállítása a YaST segítségével

Samba beállítása – Indítás
Samba beállítása – Megosztások
Samba beállítása – Azonosság

A szerver konfigurációját az új Samba-szerver által vezérelt munkacsoport vagy tartomány kiválasztásával kell megkezdeni. A Munkacsoport vagy tartomány legördölő menüből válasszon ki egy meglévő munkacsoportot/tartományt vagy adjon meg egy újat. A következő lépésben adja meg, hogy a szervernek PDC-ként (primary domain controller, elsődleges tartományvezérlő) vagy BDC-ként (backup domain controller, tartalék tartományvezérlő) kell-e viselkednie.

Aktiválja a Sambát az Rendszerindítás részben (Samba beállítása – Indítás). A Tűzfalbeállítások részben, a Tűzfal portjának megnyitása beállításával módosítsa a rendszeren működő tűzfalat úgy, hogy a netbios-ns, netbios-dgm, netbios-ssn és microsoft-ds szolgáltatások portja nyitva legyen az összes belső és külső csatolón. Ez garantálja a Samba-szerver problémamentes működését.

A Megosztások (Samba beállítása – Megosztások) ablakban adja meg a használni kívánt Samba-megosztásokat. Az Állapot átkapcsolása gombbal váltson az Bekapcsolva és Kikapcsolva állapotok között. Új megosztások hozzáadásához kattintson a Hozzáadás gombra.

Az Azonosító ablakban (Samba beállítása – Azonosító) adja meg a tartományt, amelyhez a gépet rendelték (Alapbeállítások) és azt, hogy használjon-e alternatív gépnevet a hálózatban (NetBIOS gépnév).

Kliensek beállítása

A kliensek a Samba-szervert csak TCP/IP-n keresztül érhetik el. Az IPX-en keresztül a NetBEUI és NetBIOS nem használható Sambával.

Samba-kliens beállítása a YaST segítségével

Állítson be egy Samba-klienst a Samba-szerveren található erőforrások (fájlok vagy nyomtatók) használatához. A Samba-munkacsoport párbeszédablakban adja meg a tartományt vagy munkacsoportot. A rendelkezésre álló csoportok és tartományok megjelenítéséhez (és az egér segítségével történő kiválasztásához) kattintson a Böngészés gombra. Ha aktiválja az SMB-információ használata Linux-hitelesítéshez menüpontot, akkor a felhasználói hitelesítés a Samba-szerveren keresztül történik. Az összes beállítás megadása után a befejezéshez kattintson a Befejezés gombra.

Windows 9x és ME

A Windows 9x és ME beépített TCP/IP-támogatással rendelkezik. Alapértelmezés szerint azonban ez nem kerül telepítésre. A TCP/IP hozzáadásához menjen a VezérlőpultRendszer menüpontra, majd válassza ki a HozzáadásProtokollokMicrosoft TCP/IP lehetőséget. A windowsos gép újraindítása után a Samba-szerver kikereshető a hálózati szolgáltatások között.

Icon-info.png Ötlet:

A Samba-szerver nyomtatójának használatához telepítse a megfelelő Windows-verzióhoz tartozó szabványos vagy Apple-PostScript nyomtató-illesztőprogramot. Legjobb a Linux-nyomtatósorhoz csatolni, amely a Postscriptet elfogadja bemeneti formátumként.

Optimalizálás

A socket options (socket-beállítások) a példakonfiguráció egyik lehetséges optimalizálása, amelyet a Samba verzióval együtt kínálunk. Az alapértelmezett konfiguráció egy helyi Ethernet-hálózatra hivatkozik. A socket options beállításokkal kapcsolatos további információért tekintse meg az smb.conf és socket(7) kézikönyvoldalak (man) megfelelő részeit. További információt a Samba HOWTO-gyűjtemény Samba-teljesítményhangolás fejezete tartalmaz.

Az /etc/samba/smb.conf fájlban lévő szabványos konfiguráció úgy került kialakításra, hogy a Samba-csapat alapértelmezett beállításaira építve hasznos segítséget nyújtson. Ám nem lehet azonnal használható konfigurációt készíteni, már csak a hálózati beállítások és a mindenhol eltérő munkacsoportnév miatt sem. Az examples/smb.conf.SuSE megjegyzésekkel ellátott példakonfiguráció a helyi igényeknek megfelelő átalakításhoz nyújt segítséget.

Icon-info.png Ötlet:

A Samba-csapat által készített Samba hogyan-gyűjtemény (howto) tartalmaz egy hibakereséssel kapcsolatos részt is. Ezen felül a dokumentum 5. fejezete részletesen leírja a konfiguráció ellenőrzésének módját.