Samba fájl- és nyomtatókiszolgáló biztonságossá tétele

Samba biztonsági módjai

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.

Security = User

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
[Megjegyzés]

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.

[Megjegyzés]

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.

Megosztás biztonsága

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.

Csoportok

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.

Fájljogosultságok

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
[Megjegyzés]

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
[Megjegyzés]

A fenti példa feltételezi, hogy a /srv külön partíción van. Ha az /srv, vagy ahol a megosztás van, a / partíció része, a rendszer újraindítása szükséges.

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/
[Megjegyzés]

A fenti setfacl parancs végrehajtási jogosultságokat ad minden fájlra a /srv/samba/share könyvtárban, amit nem biztos hogy szeretne.

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.

Samba AppArmor profil

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
[Megjegyzés]

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.

Információforrások