
A kurzus hallgatói számára készített cikk fordítása
SELinux vagy fokozott biztonság Linux A MAC egy továbbfejlesztett hozzáférés-vezérlési mechanizmus, amelyet az Egyesült Államok Nemzetbiztonsági Ügynöksége (NSA) fejlesztett ki a rosszindulatú behatolások megelőzése érdekében. A mechanizmus egy kötelező hozzáférés-vezérlési (MAC) modellt valósít meg a meglévő diszkrecionális hozzáférés-vezérlési (DAC) modellre építve, amely olvasási, írási és végrehajtási jogosultságokat tartalmaz.
DélkeletenLinux Három mód létezik:
- érvényesítése — a hozzáférés megtagadása a szabályzat szabályai alapján.
- Megengedő — a szabályzatot sértő cselekmények naplózása, amely végrehajtási módban tilos lenne.
- mozgássérült - az SE teljes leállításaLinux.
Alapértelmezés szerint a beállítások benne vannak /etc/selinux/config
SE módok váltásaLinux
Az aktuális mód megtekintéséhez futtassa
$ getenforceAz üzemmód megengedőre való módosításához futtassa a következő parancsot
$ setenforce 0vagy módváltáshoz megengedő on érvényesítése, végrehajtani
$ setenforce 1Ha teljesen le kell tiltania az SE-tLinux, akkor ezt csak a konfigurációs fájlon keresztül lehet megtenni
$ vi /etc/selinux/configA letiltáshoz módosítsa a SELINUX paramétert az alábbiak szerint:
SELINUX=disabledSE beállításaLinux
Minden fájl és folyamat SE kontextussal van megjelölve.Linux, amely további információkat tartalmaz, például felhasználót, szerepkört, típust stb. Ha első alkalommal engedélyezi az SE-tLinux, akkor először konfigurálnia kell a kontextust és a címkéket. A címkék és a kontextus hozzárendelésének folyamatát címkézésnek nevezzük. A címkézés megkezdéséhez módosítsa a konfigurációs fájlban a módot a következőre: megengedő.
$ vi /etc/selinux/config
SELINUX=permissiveAz üzemmód beállítása után megengedő, hozzon létre egy üres rejtett fájlt a gyökérben a névvel autorelabel
$ touch /.autorelabelés indítsa újra a számítógépet
$ init 6Megjegyzés: A módot használjuk megengedő jelölésre, a mód használata óta érvényesítése a rendszer összeomlását okozhatja újraindításkor.
Ne aggódjon, ha a letöltés elakad valamelyik fájlon, a jelölés eltart egy ideig. Miután a jelölés befejeződött, és a rendszer elindult, a konfigurációs fájlhoz léphet, és beállíthatja a módot érvényesítéseés futtasd is:
$ setenforce 1Most már sikeresen engedélyezte az SE-tLinux a számítógépeden.
A naplók figyelése
Előfordulhat, hogy hibákba ütközött címkézés közben vagy a rendszer futása közben. Az SE működésének ellenőrzéséhezLinux Ellenőrizd a naplókat, hogy helyesek-e, és hogy blokkolja-e a hozzáférést valamilyen porthoz, alkalmazáshoz stb. SE naplóLinux a /var/log/audit/audit.log, de nem kell az egészet elolvasnia a hibák megtalálásához. Használhatja az audit2why segédprogramot a hibák keresésére. Futtassa a következő parancsot:
$ audit2why < /var/log/audit/audit.logEnnek eredményeként megjelenik egy hibalista. Ha nem volt hiba a naplóban, akkor nem jelennek meg üzenetek.
SE szabályzat beállításaLinux
SE szabályzatLinux — egy szabályrendszer, amely az SE biztonsági mechanizmusát irányítjaLinuxA szabályzat egy adott környezetre vonatkozó szabályok halmazát határozza meg. Most megtanuljuk, hogyan konfigurálhatunk szabályzatokat a korlátozott szolgáltatásokhoz való hozzáférés engedélyezéséhez.
1. Logikai értékek (kapcsolók)
A logikai értékek lehetővé teszik egy szabályzat egyes részeinek futásidejű módosítását új szabályzatok létrehozása nélkül. Lehetővé teszik a változtatások végrehajtását újraindítás vagy az SE szabályzatok újrafordítása nélkül.Linux.
Példa
Tegyük fel, hogy meg szeretnénk osztani egy felhasználó saját könyvtárát FTP-n keresztül olvasási és írási hozzáféréssel, és már megosztottuk, de amikor megpróbáljuk elérni, semmit sem látunk. Ez azért van, mert az SE házirendLinux megakadályozza, hogy az FTP-kiszolgáló olvassa és írja a felhasználó saját könyvtárát. Módosítanunk kell a szabályzatot, hogy az FTP-kiszolgáló hozzáférhessen a saját könyvtárakhoz. Nézzük meg, hogy vannak-e erre kapcsolók a következő futtatásával:
$ semanage boolean -lEz a parancs felsorolja az elérhető kapcsolókat aktuális állapotukkal (be vagy kikapcsolva) és leírásával. Finomíthatja a keresést a grep hozzáadásával, hogy csak ftp-t találjon:
$ semanage boolean -l | grep ftpés a következőket találja
ftp_home_dir -> off Allow ftp to read & write file in user home directoryEz a kapcsoló le van tiltva, így engedélyezni fogjuk a következővel setsebool $ setsebool ftp_home_dir on
Mostantól az ftp démonunk hozzáférhet a felhasználó saját könyvtárához.
Megjegyzés: Az elérhető kapcsolók listáját leírás nélkül is megkaphatja, ha ezt megteszi getsebool -a
2. Címkék és kontextus
Ez a SE-politika végrehajtásának leggyakoribb módja.LinuxMinden fájl, mappa, folyamat és port SE kontextussal van megjelölve.Linux:
- A fájlok és mappák esetében a címkék kiterjesztett attribútumokként vannak tárolva a fájlrendszerben, és a következő paranccsal tekinthetők meg:
$ ls -Z /etc/httpd - A folyamatok és portok esetében a címkézést a kernel kezeli, és ezeket a címkéket az alábbiak szerint tekintheti meg:
folyamat
$ ps –auxZ | grep httpdkikötő
$ netstat -anpZ | grep httpdPélda
Most nézzünk egy példát, hogy jobban megértsük a címkéket és a kontextust. Tegyük fel, hogy van webszerver, amely katalógus helyett /var/www/html/ использует /home/dan/html/. DKLinux ezt szabálysértésnek tekinti, és nem fogja tudni megtekinteni a weboldalait. Ez azért van, mert nem állítottuk be a HTML-fájlokhoz társított biztonsági kontextust. Az alapértelmezett biztonsági kontextus megtekintéséhez használja a következő parancsot:
$ ls –lz /var/www/html
-rw-r—r—. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/Itt vagyunk httpd_sys_content_t html fájlok kontextusaként. Ezt a biztonsági környezetet be kell állítanunk a jelenlegi könyvtárunkhoz, amely jelenleg a következő kontextussal rendelkezik:
-rw-r—r—. dan dan system_u:object_r:user_home_t:s0 /home/dan/html/Alternatív parancs egy fájl vagy könyvtár biztonsági környezetének ellenőrzésére:
$ semanage fcontext -l | grep '/var/www'Szemanázst is használunk a kontextus megváltoztatására, ha megtaláltuk a megfelelő biztonsági környezetet. A /home/dan/html kontextusának megváltoztatásához futtassa a következő parancsokat:
$ semanage fcontext -a -t httpd_sys_content_t ‘/home/dan/html(/.*)?’
$ semanage fcontext -l | grep ‘/home/dan/html’
/home/dan/html(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
$ restorecon -Rv /home/dan/htmlMiután a kontextust megváltoztatta a semanage használatával, a restorecon parancs betölti a fájlok és könyvtárak alapértelmezett környezetét. Webszerverünk mostantól képes lesz olvasni a mappában lévő fájlokat /home/dan/htmlmert a mappa biztonsági környezete a következőre módosult httpd_sys_content_t.
3. Helyi szabályzatok létrehozása
Előfordulhatnak olyan helyzetek, amikor a fenti módszerek nem használnak, és hibákat (avc/denial) kap az audit.log fájlban. Ha ez megtörténik, létre kell hoznia egy helyi szabályzatot. Az összes hibát megtalálja az audit2why használatával, a fent leírtak szerint.
A hibák megoldásához helyi házirendet hozhat létre. Például hibát kapunk a httpd (apache) vagy smbd (samba) kapcsán, grep-et kapunk a hibákról, és létrehozunk egy házirendet hozzájuk:
apache
$ grep httpd_t /var/log/audit/audit.log | audit2allow -M http_policy
samba
$ grep smbd_t /var/log/audit/audit.log | audit2allow -M smb_policyItt http_policy и smb_policy — ezek a létrehozott helyi szabályzatok nevei. Most be kell töltenünk ezeket a létrehozott helyi szabályzatokat az aktuális SE szabályzatba.Linux. Ez a következőképpen tehető meg:
$ semodule –I http_policy.pp
$ semodule –I smb_policy.ppHelyi szabályzatainkat letöltöttük, és többé nem kapunk semmilyen avc-t vagy denail-t az audit.log-ban.
Ez volt a kísérletem, hogy segítsek megérteni az SE-t.LinuxRemélem, hogy a cikk elolvasása után jól fogod érezni magad az SE-vel.Linux kényelmesebb.
Forrás: will.com
