Security-Enhanced Linux (SELinux) egy Linux kernel modul, amely keretet biztosít a kötelező hozzáférés-vezérlés (MAC) rendszer konfigurálásához a rendszer számos erőforrásához. Alapértelmezés szerint engedélyezve van néhány Linux disztribúción, beleértve az RHEL, CentOS, Fedora és más hasonló Linux disztribúciókat. A SELinux megakadályozza, hogy a programok hozzáférjenek a fájlokhoz, könyvtárakhoz vagy portokhoz, hacsak nincs konfigurálva ezen erőforrások elérésére.
- annak ellenőrzése, hogy a SELinux engedélyezve van-e
- a mysqld ideiglenes üzembe helyezése megengedő módba
- A szerver SELinux házirendjének felépítése és betöltése
- Fájlkörnyezetek beállítása
- A fájl kontextusának beállítása az Adatkönyvtárhoz
- a naplófájlok Fájlkörnyezetének beállítása
- a fájl kontextusának beállítása az Opciófájlokhoz
- Hozzáférés engedélyezése a Tmpfs Fájlkörnyezethez
- SELinux problémák hibaelhárítása
- fájlrendszer-engedélyezési hibák
- SELinux és MariaDB egy másik porton
- SELinux házirendek generálása az audit2allow segítségével
annak ellenőrzése, hogy a SELinux engedélyezve van-e
a SELinux engedélyezésének ellenőrzéséhez hajtsa végre a getenforce
parancsot. Például:
getenforce
a mysqld ideiglenes üzembe helyezése megengedő módba
ha olyan problémákat hibaelhárít, amelyeket Ön szerint a SELinux okozhat, segíthet a mysqld_t
ideiglenes üzembe helyezésében. Ezt a semanage
parancs végrehajtásával lehet elvégezni. Például:
sudo semanage permissive -a mysqld_t
Ha ez megoldotta a problémát, akkor ez azt jelenti, hogy a jelenlegi SELinux politika a bűnös. Módosítania kell a MariaDB SELinux házirendjét vagy címkéit.
A szerver SELinux házirendjének felépítése és betöltése
a MariaDB szerverhez tartozik egy SELinux házirend, amely alapértelmezés szerint nincs felépítve vagy betöltve. Sok rendszeren a házirend a /usr/share/mysql/policy/selinux/mariadb-server.fc
értékre van telepítve. A fájl felépítéséhez és betöltéséhez hajtsa végre a következőket:
Fájlkörnyezetek beállítása
a SELinux fájlkörnyezeteket használ annak meghatározására, hogy ki férhet hozzá az adott fájlhoz.
a Fájlkörnyezetek kezelése asemanage fcontext
ésrestorecon
parancsokkal történik.
sok rendszeren asemanage
segédprogramot apolicycoreutils-python
csomag, arestorecon
segédprogramot apolicycoreutils
csomag telepíti. Ezeket a következő paranccsal telepítheti:
sudo yum install policycoreutils policycoreutils-python
egy fájl vagy könyvtár aktuális környezete ellenőrizhető a ls
végrehajtásával a --context
vagy --scontext
opciókkal.
A fájl kontextusának beállítása az Adatkönyvtárhoz
ha egyéni könyvtárat használ a datadir
számára, akkor lehet, hogy be kell állítania az adott könyvtár fájl kontextusát. A MariaDB adatfájlok SELinux fájlkörnyezete mysqld_db_t
. A következő parancs végrehajtásával megállapíthatja, hogy ez a fájlkörnyezet jelen van-e a rendszeren, valamint hogy mely fájlokhoz vagy könyvtárakhoz van társítva:
sudo semanage fcontext --list | grep mysqld_db_t
Ha a datadir
egyéni könyvtárának fájlkörnyezetét szeretné beállítani, akkor ezt a semanage fcontext
és restorecon
parancsok végrehajtásával teheti meg. Például:
sudo semanage fcontext -a -t mysqld_db_t "/mariadb/data(/.*)?"sudo restorecon -Rv /mariadb/data
Ha ellenőrizni szeretné az aktuális fájlkörnyezetet, akkor ezt a ls
végrehajtásával teheti meg a --context
vagy --scontext
opciókkal. Például:
ls --directory --scontext /mariadb/data
a naplófájlok Fájlkörnyezetének beállítása
ha egyéni könyvtárat használ a naplófájlokhoz, akkor lehet, hogy be kell állítania az adott könyvtár fájlkörnyezetét. A MariaDB naplófájlok SELinux fájlkörnyezete mysqld_log_t
. A következő parancs végrehajtásával megállapíthatja, hogy ez a fájlkörnyezet jelen van-e a rendszeren, valamint hogy mely fájlokhoz vagy könyvtárakhoz van társítva:
sudo semanage fcontext --list | grep mysqld_log_t
Ha be szeretné állítani a naplófájlok egyéni könyvtárának fájlkörnyezetét, akkor ezt a semanage fcontext
és restorecon
parancsok végrehajtásával teheti meg. Például:
sudo semanage fcontext -a -t mysqld_log_t "/var/log/mysql(/.*)?"sudo restorecon -Rv /var/log/mysql
Ha ellenőrizni szeretné az aktuális fájlkörnyezetet, akkor ezt a ls
végrehajtásával teheti meg a --context
vagy --scontext
opciókkal. Például:
ls --directory --scontext /var/log/mysql
a fájl kontextusának beállítása az Opciófájlokhoz
ha egyéni könyvtárat használ az opciófájlokhoz, akkor lehet, hogy be kell állítania a fájl kontextusát az adott könyvtárhoz. A MariaDB opciófájlok SELinux fájlkörnyezete mysqld_etc_t
. A következő parancs végrehajtásával megállapíthatja, hogy ez a fájlkörnyezet jelen van-e a rendszeren, valamint hogy mely fájlokhoz vagy könyvtárakhoz van társítva:
sudo semanage fcontext --list | grep mysqld_etc_t
ha be szeretné állítani az egyéni könyvtár fájlkörnyezetét az opciófájlokhoz, akkor ezt a semanage fcontext
és restorecon
parancsok végrehajtásával teheti meg. Például:
sudo semanage fcontext -a -t mysqld_etc_t "/etc/mariadb(/.*)?"sudo restorecon -Rv /etc/mariadb
Ha ellenőrizni szeretné az aktuális fájlkörnyezetet, akkor ezt a ls
végrehajtásával teheti meg a --context
vagy --scontext
opciókkal. Például:
ls --directory --scontext /etc/mariadb
Hozzáférés engedélyezése a Tmpfs Fájlkörnyezethez
Ha a tmpdir
egy tmpfs
fájlrendszerre szeretné csatlakoztatni, vagy egy tmpfs
/div>fájlrendszer /run/shm
, akkor lehet, hogy engedélyeznie kell mysqld_t
hogy hozzáférjen néhány tmpfs-hez kapcsolódó fájlkörnyezethez. Például:
SELinux problémák hibaelhárítása
előfordulhat, hogy a SELinux-szal kapcsolatos problémákat olyan esetekben kell elhárítania, mint például:
- a MariaDB nem alapértelmezett portot használ.
- a MariaDB bizonyos fájlokból olvas vagy ír (datadir, naplófájlok, opciófájlok stb.) nem alapértelmezett útvonalakon található.
- a MariaDB olyan plugint használ, amely hozzáférést igényel olyan erőforrásokhoz, amelyeket az alapértelmezett telepítések nem használnak.
fájlrendszer-engedélyezési hibák
Ha valamelyik MariaDB könyvtár fájlrendszer-engedélyei rendben vannak, de a MariaDB hibanapló még mindig tartalmaz a következőhöz hasonló hibákat:
akkor ellenőrizze a SELinux /var/log/audit/audit.log
naplóbejegyzéseit, amelyek hasonlóak a következőhöz:
Ha ehhez hasonló bejegyzéseket lát, akkor valószínűleg módosítania kell egyes fájlok vagy könyvtárak fájlkörnyezetét. Lásd Beállítás Fájl kontextusban további információt, hogyan kell csinálni.
SELinux és MariaDB egy másik porton
a TCP és UDP portok is engedélyezettek a kötéshez. Ha egy másik portot vagy néhány Galera portot használ, konfigurálja a SELinux-ot úgy, hogy képes legyen használni ezeket a portokat:
sudo semanage port -a -t mysqld_port_t -p tcp 3307
SELinux házirendek generálása az audit2allow segítségével
egyes esetekben a MariaDB rendszerekhez nem szabványos házirendekre lehet szükség. Ezeket a házirendeket a SELinux ellenőrzési naplójából lehet létrehozni a audit2allow
segédprogrammal. Asemanage
éssemodule
segédprogramokra is szükség lesz.
sok rendszeren a audit2allow
és semanage
segédprogramokat a policycoreutils-python
csomag telepíti, a semodule
segédprogramot pedig a policycoreutils
csomag. Ezeket a következő paranccsal telepítheti:
sudo yum install policycoreutils policycoreutils-python
a következő folyamat használható házirend létrehozására az ellenőrzési naplóból:
- távolítsa el a nem auditokat a házirendből:
sudo semodule -DB
- ideiglenesen tegye
mysqld_t
megengedő módba. Például:
sudo semanage permissive -a mysqld_t
- a MariaDB indítása.
- tegyen meg mindent, ami SELinux hibákat okoz.
- használja a létrehozott naplót egy házirend létrehozásához:
sudo grep mysqld /var/log/audit/audit.log | audit2allow -M mariadb_localsudo semodule -i mariadb_local.pp
- húzza ki a
mysqld_t
a megengedő módból. Például:
sudo semanage permissive -d mysqld_t
- a házirend ellenőrzéseinek visszaállítása:
sudo setmodule -B
ugyanez az eljárás használható, ha a MariaDB elindul, de a SELinux megakadályozza a megfelelő működését. Például a SELinux megakadályozhatja a PAM plugin felhasználók hitelesítését. A megoldás ugyanaz — engedélyezze az auditálást, váltson megengedőre, tegye meg, amit a SELinux nem engedett meg, hozzon létre egy házirendet az ellenőrzési naplóból.
Ha bármilyen szükséges SELinux engedélyt észlel, kérjük, jelentse a szükséges engedélyeket az operációs rendszer hibakeresésének, hogy minden felhasználó részesülhessen a munkájából (pl. Red Hat Bugzilla https://bugzilla.redhat.com/).