Dokumentáció/SL9.3/Szolgáltatások/Samba
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
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.
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.
;[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á.
[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.
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.
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:
Példa: Gépazonosító létrehozása
useradd hostname\$ smbpasswd -a -m hostnameA 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.
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
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őpult → Rendszer menüpontra, majd válassza ki a Hozzáadás → Protokollok → Microsoft 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.
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.