A Common Internet Filesystem (CIFS) hálózati protokollban két biztonsági szint érhető el: felhasználói szintű és megosztás szintű. A Samba biztonsági mód megvalósítása nagyobb rugalmasságot tesz lehetővé, a felhasználói szintű biztonság megvalósításához négy, a megosztás szintű biztonsághoz pedig egy módszer biztosításával:
-
security = user: Felhasználónév és jelszó megadását követeli meg a kliensektől a megosztásokhoz csatlakozáshoz. A Samba felhasználói fiókok nem azonosak a rendszer felhasználói fiókjaival, de a libpam-smbpass csomag használatával szinkronizálhatók a rendszer felhasználói és jelszavai a Samba felhasználói adatbázissal.
-
security = domain: Ez a mód lehetővé teszi, hogy a Samba kiszolgáló a windowsos kliensek számára elsődleges tartományvezérlőként (PDC), tartalék tartományvezérlőként (BDC), vagy tartománytag-kiszolgálóként (DMS) jelenjen meg. További információkért lásd: „A Samba mint tartományvezérlő”.
-
security = ADS: Lehetővé teszi a Samba kiszolgálónak a csatlakozást Active Directory tartományokhoz natív tagként. Részletekért lásd: „A Samba Active Directory integrációja”.
-
security = server: Ez a mód abból az időből maradt, amikor a Samba még nem tudott tag kiszolgálóvá válni, és bizonyos biztonsági problémák miatt nem szabad használni. További részletekért lásd a Samba guide Server Security szakaszát.
-
security = share: Lehetővé teszi a klienseknek a megosztásokhoz való csatlakozást felhasználónév és jelszó megadása nélkül.
A kiválasztandó biztonsági mód a környezettől, valamint a Samba kiszolgálóval ellátandó feladattól függ.
Ebben a szakaszban bemutatjuk a „Samba fájlkiszolgáló” és „Samba nyomtatókiszolgáló” részben beállított Samba fájl- és nyomtatókiszolgáló újrakonfigurálását hitelesítés megkövetelésére.
Első lépésként telepítse a libpam-smbpass csomagot, amely a rendszer felhasználóit szinkronizálja a Samba felhasználói adatbázissal:
sudo apt-get install libpam-smbpass
Ha a telepítéskor kiválasztotta a Samba Server feladatot, akkor a libpam-smbpass csomag már telepítve van. |
Szerkessze az /etc/samba/smb.conf
fájlt, és módosítsa a [share] szakaszt:
guest ok = no
Végül indítsa újra a Sambát az új beállítások életbe léptetéséhez:
sudo /etc/init.d/samba restart
Ezután a megosztott könyvtárakhoz vagy nyomtatókhoz csatlakozáskor a rendszer felhasználói nevet és jelszót fog kérni.
Ha a megosztáshoz hálózati meghajtót rendelt, bejelölheti a „Reconnect at Logon” jelölőnégyzetet, amely csak egyszer követeli meg a felhasználónév és jelszó megadását, legalábbis a jelszó megváltozásáig. |
Számos lehetőség van minden egyes megosztott könyvtár biztonságának növelésére. A [share] példa felhasználásával ez a szakasz néhány általános lehetőséget mutat be.
A csoportok számítógépek vagy felhasználók halmazát adják meg, amelyeknek azonos hozzáférési szintjük van bizonyos hálózati erőforrásokhoz és az ilyen erőforrásokra vonatkozó hozzáférés adott részletességi szintjét biztosítják. Ha például a qa nevű csoport a freda, danika és rob felhasználókat tartalmazza, egy support nevű csoport pedig a danika, jeremy és vincent felhasználókat, akkor a qa csoportnak hozzáférést biztosító hálózati erőforrások lehetővé teszik freda, danika és rob hozzáférését, de jeremy vagy vincent nem érheti el ezeket. Mivel a danika nevű felhasználó egyaránt tagja a qa és support csoportoknak, képes lesz elérni a mindkét csoportnak hozzáférést engedő erőforrásokat, míg a többi felhasználó csak az ő csoportjukat engedélyező erőforrásokhoz férhet hozzá.
Alapértelmezésben a Samba a helyi rendszeren, az /etc/group
fájlban megadott csoportokban próbálja elhelyezni a felhasználót. További információkért a felhasználók csoportokhoz adásáról és azokból eltávolításáról lásd a „Felhasználók hozzáadása és törlése” részt.
A csoportok megadásakor az /etc/samba/smb.conf
Samba konfigurációs fájlban a csoportnevet „@” szimbólummal kezdve jelölheti. Ha például a sysadmin nevű csoportot szeretné létrehozni az /etc/samba/smb.conf
valamely szakaszában, akkor a csoportnevet a @sysadmin formában kell megadni.
A fájljogosultságok megadják, hogy az adott fájlra, könyvtárra vagy fájlcsoportra egy adott számítógép vagy felhasználó pontosan milyen jogosultságokkal rendelkezik. Az ilyen jogosultságok megadhatók az /etc/samba/smb.conf
fájl szerkesztésével és adott fájlmegosztás konkrét jogosultságainak megadásával.
Ha például létrehozott egy megosztas nevű Samba megosztást és csak olvasási jogosultságokat szeretne adni a qa csoport felhasználóinak, de engedélyezni akarja a sysadmin csoport és a vincent nevű felhasználó számára az írást, akkor ezt az /etc/samba/smb.conf
fájl szerkesztésével és a [megosztas] bejegyzés alá a következő értékek beírásával teheti meg:
read list = @qa write list = @sysadmin, vincent
Egy másik lehetséges Samba jogosultság az adminisztrációs jog egy adott megosztott erőforrásra. Az adminisztrációs jogosultsággal rendelkező felhasználók az erőforráson belül minden információt írhatnak, olvashatnak vagy módosíthatnak, amire adminisztrációs jogosultsággal rendelkeznek.
Ha például a melissa nevű felhasználónak adminisztrációs jogosultságot adna a share példához, az /etc/samba/smb.conf
fájlt megnyitva a következő sort kellene a [share] bejegyzéshez adni:
admin users = melissa
Az /etc/samba/smb.conf
szerkesztése után indítsa újra a Sambát a módosítások életbe léptetéséhez:
sudo /etc/init.d/samba restart
A read list és write list működéséhez a Samba biztonsági módot nem szabad security = share-re állítani |
A Samba beállítása után a csoportok hozzáférésének korlátozására a megosztott könyvtárhoz, a fájlrendszer jogosultságait is frissíteni kell.
A hagyományos Linux fájljogosultságok nem képezhetők le jól a Windows NT hozzáférés-vezérlési listákra (ACL-ek). Szerencsére a POSIX ACL-ek elérhetők az Ubuntu kiszolgálókon, így részletesebb felügyeletet biztosítanak. Az ACL-ek engedélyezéséhez például a /srv
alatti EXT3 fájlrendszeren szerkessze az /etc/fstab
fájlt és vegye fel az acl beállítást:
UUID=66bcdd2e-8861-4fb0-b7e4-e61c569fe17d /srv ext3 noatime,relatime,acl 0 1
Ezután csatolja újra a partíciót:
sudo mount -v -o remount /srv
A fenti példa feltételezi, hogy a |
A fenti Samba beállításoknak való megfeleléshez a sysadmin csoport olvasási, írási és végrehajtási jogosultságokat kap a /srv/samba/share
könyvtárra, a qa csoport olvasási és végrehajtási jogosultságokat, a fájlok pedig a melissa nevű felhasználó tulajdonába kerülnek. Adja ki a következőket egy terminálba:
sudo chown -R melissa /srv/samba/share/ sudo chgrp -R sysadmin /srv/samba/share/ sudo setfacl -R -m g:qa:rx /srv/samba/share/
A fenti setfacl parancs végrehajtási jogosultságokat ad minden fájlra a |
Most egy windowsos kliensről nézve új fájljogosultságok megjelenését fogja észlelni. A POSIX ACL-ekkel kapcsolatban lásd az acl és setfacl kézikönyvoldalakat.
Az Ubuntu tartalmazza az AppArmor biztonsági modult, amely kötelező hozzáférés-vezérlést biztosít. A Samba alapértelmezett AppArmor profilját a beállításaihoz kell igazítania. Az AppArmor használatával kapcsolatos további részletekért lásd a „AppArmor” részt.
Az apparmor-profiles csomag részeként elérhetők alapértelmezett AppArmor profilok az /usr/sbin/smbd
és /usr/sbin/nmbd
fájlokhoz, a Samba démon binárisaihoz. A csomag telepítéséhez adja ki a következő parancsot:
sudo apt-get install apparmor-profiles
Ez a csomag számos más binárishoz is tartalmaz profilokat. |
Alapértelmezésben az smbd és nmbd profiljai a complain módban vannak, lehetővé téve a Samba működését a profil módosítása nélkül, csupán a hibák naplózása mellett. Az smbd profil enforce módba váltásához, és a Samba elvárt módon való működéséhez a profilt úgy kell beállítani, hogy tükrözze a megosztott könyvtárakat.
Szerkessze az /etc/apparmor.d/usr.sbin.smbd
fájlt, és vegye fel a [share] megosztásra vonatkozó információkat a fájlkiszolgálós példából:
/srv/samba/share/ r, /srv/samba/share/** rwkix,
Most állítsa a profilt enforce módba és töltse újra:
sudo aa-enforce /usr/sbin/smbd cat /etc/apparmor.d/usr.sbin.smbd | sudo apparmor_parser -r
Ezután a megszokott módon képes lesz a megosztott könyvtárbeli fájlok olvasására, írására és végrehajtására, az smbd bináris pedig csak a beállított fájlokhoz és könyvtárakhoz férhet hozzá. Ne felejtsen el minden olyan könyvtárhoz felvenni egy bejegyzést, amelynek megosztására a Sambát beállította. A hibák a /var/log/syslog
fájlba kerülnek naplózásra.
-
Összetettebb Samba beállításokért lásd a Samba HOWTO Collection oldalt
-
A kézikönyv nyomtatott formában is elérhető.
-
Az O'Reilly Using Samba könyve szintén jó referencia.
-
A Samba HOWTO Collection 18. fejezete a biztonságról szól.
-
A Sambával és az ACL-ekkel kapcsolatos további információkért lásd a Samba ACL-ek oldalát.
-
Az Ubuntu wiki Samba oldala is jó kiindulópont.