Security-Enhanced Linux (SELinux) je Linux kernel modul, který poskytuje rámec pro konfiguraci povinné řízení přístupu (MAC) systém pro mnoho zdrojů systému. Ve výchozím nastavení je povolen v některých distribucích Linuxu, včetně RHEL, CentOS, Fedora a další podobné distribuce Linuxu. SELinux zabraňuje programům v přístupu k souborům, adresářům nebo portům, pokud není nakonfigurován pro přístup k těmto prostředkům.
- Ověření, Zda Je SELinux Povolen
- Dočasně Uvedení mysqld Do Tolerantního Režimu
- Stavební a Zatížení Serveru, je SELinux Politiky
- nastavení kontextů souborů
- Nastavení Souboru Kontext pro Datový Adresář
- Nastavení Souboru Kontext pro Soubory Protokolu
- Nastavení Souboru Kontextu pro Volby Souborů
- Umožňuje Přístup k Tmpfs Souboru Kontextu
- řešení Potíží SELinux Otázky
- Systém Souborů Oprávnění Chyb
- SELinux a MariaDB na jiném portu
- Generování SELinux Politiky s audit2allow
Ověření, Zda Je SELinux Povolen
ověřte, zda je SELinux povolen, spusťte getenforce
příkaz. Například:
getenforce
Dočasně Uvedení mysqld Do Tolerantního Režimu
Při odstraňování problémů, které si myslíte, že SELinux by mohlo být příčinou, může pomoci dočasně umístit mysqld_t
do tolerantního režimu. To lze provést provedením příkazu semanage
. Příklad:
sudo semanage permissive -a mysqld_t
Pokud to problém vyřešilo, znamená to, že viníkem je současná politika SELinuxu. Musíte upravit zásady SELinuxu nebo štítky pro MariaDB.
Stavební a Zatížení Serveru, je SELinux Politiky
MariaDB Server přichází s SELinux politiku, která není stavět nebo načten ve výchozím nastavení. V mnoha systémech je zásada nainstalována na /usr/share/mysql/policy/selinux/mariadb-server.fc
. Chcete-li jej vytvořit a načíst, proveďte následující:
nastavení kontextů souborů
SELinux používá kontexty souborů jako způsob, jak určit, kdo by měl mít přístup k tomuto souboru.
kontexty souborů jsou spravovány pomocí příkazů semanage fcontext
a restorecon
.
Na mnoha systémech semanage
utility je nainstalován policycoreutils-python
balíček, a restorecon
utility je nainstalován policycoreutils
balíček. Můžete je nainstalovat pomocí následujícího příkazu:
sudo yum install policycoreutils policycoreutils-python
soubor nebo adresář je aktuálním kontextu lze zkontrolovat spuštěním ls
--context
nebo --scontext
možnosti.
Nastavení Souboru Kontext pro Datový Adresář
Pokud používáte vlastní adresář na datadir
, pak možná budete muset nastavit soubor rámci tohoto adresáře. Kontext souboru SELinux pro datové soubory MariaDB je mysqld_db_t
. Pomocí následujícího příkazu můžete určit, zda je tento kontext souboru ve vašem systému přítomen a ke kterým souborům nebo adresářům je přidružen:
sudo semanage fcontext --list | grep mysqld_db_t
Pokud byste chtěli nastavit soubor kontext pro vaše vlastní adresář datadir
, pak to lze provést spuštěním semanage fcontext
restorecon
příkazy. Například:
sudo semanage fcontext -a -t mysqld_db_t "/mariadb/data(/.*)?"sudo restorecon -Rv /mariadb/data
Pokud chcete zkontrolovat aktuální soubor kontextu, můžete tak učinit spuštěním ls
--context
nebo --scontext
možnosti. Příklad:
ls --directory --scontext /mariadb/data
Nastavení Souboru Kontext pro Soubory Protokolu
Pokud používáte vlastní adresář pro log soubory, pak možná budete muset nastavit soubor rámci tohoto adresáře. Kontext souboru SELinux pro soubory protokolu MariaDB je mysqld_log_t
. Pomocí následujícího příkazu můžete určit, zda je tento kontext souboru ve vašem systému přítomen a ke kterým souborům nebo adresářům je přidružen:
sudo semanage fcontext --list | grep mysqld_log_t
Pokud byste chtěli nastavit soubor kontext pro vaše vlastní adresář pro log soubory, pak to lze provést spuštěním semanage fcontext
restorecon
příkazy. Například:
sudo semanage fcontext -a -t mysqld_log_t "/var/log/mysql(/.*)?"sudo restorecon -Rv /var/log/mysql
Pokud chcete zkontrolovat aktuální soubor kontextu, můžete tak učinit spuštěním ls
--context
nebo --scontext
možnosti. Příklad:
ls --directory --scontext /var/log/mysql
Nastavení Souboru Kontextu pro Volby Souborů
Pokud používáte vlastní adresář pro volbu souborů, pak možná budete muset nastavit soubor rámci tohoto adresáře. Kontext souboru SELinux pro soubory volby MariaDB je mysqld_etc_t
. Pomocí následujícího příkazu můžete určit, zda je tento kontext souboru ve vašem systému přítomen a ke kterým souborům nebo adresářům je přidružen:
sudo semanage fcontext --list | grep mysqld_etc_t
Pokud byste chtěli nastavit soubor kontext pro vaše vlastní adresář pro volbu souborů, pak to lze provést spuštěním semanage fcontext
restorecon
příkazy. Například:
sudo semanage fcontext -a -t mysqld_etc_t "/etc/mariadb(/.*)?"sudo restorecon -Rv /etc/mariadb
Pokud chcete zkontrolovat aktuální soubor kontextu, můžete tak učinit spuštěním ls
--context
nebo --scontext
možnosti. Příklad:
ls --directory --scontext /etc/mariadb
Umožňuje Přístup k Tmpfs Souboru Kontextu
Pokud jste chtěli připojit svůj tmpdir
tmpfs
systém souborů nebo chtěl použít tmpfs
systém souborů /run/shm
, pak možná budete muset, aby mysqld_t
mít přístup k pár tmpfs-související soubor kontextů. Například:
řešení Potíží SELinux Otázky
možná Budete muset řešit SELinux-související problémy v případech, jako:
- MariaDB je použití non-výchozí port.
- MariaDB čte nebo zapisuje do některých souborů (datadir, log files, option files atd.).) Nachází se na výchozích cestách.
- MariaDB používá plugin, který vyžaduje přístup ke zdrojům, které výchozí instalace nepoužívají.
Systém Souborů Oprávnění Chyb
Pokud oprávnění systému souborů pro některé MariaDB firem vypadají dobře, ale MariaDB protokol chyb má stále chyby, které vypadat podobně jako následující:
Pak se podívejte SELinux je /var/log/audit/audit.log
pro položky protokolu, které se podobají následující:
Pokud vidíte nějaké položky, které vypadají podobně, budete pravděpodobně muset upravit kontexty souborů pro některé soubory nebo adresáře. Další informace o tom, jak to provést, naleznete v části Nastavení kontextů souborů.
SELinux a MariaDB na jiném portu
TCP a UDP porty jsou povoleny pro povolení vázat příliš. Pokud používáte jiný port, nebo některé Galera porty, konfigurace Selinuxu, aby bylo možné použít tyto porty:
sudo semanage port -a -t mysqld_port_t -p tcp 3307
Generování SELinux Politiky s audit2allow
V některých případech, MariaDB systém potřebovat non-standardní politiky. Tyto zásady je možné vytvořit z protokolu auditu SELinux pomocí nástroje audit2allow
. Budou také potřebné nástroje semanage
a semodule
.
Na mnoha systémech audit2allow
semanage
nástroje jsou nainstalovány policycoreutils-python
balíček, a semodule
utility je nainstalován policycoreutils
balíček. Můžete je nainstalovat pomocí následujícího příkazu:
sudo yum install policycoreutils policycoreutils-python
následující proces může být použit pro generování politiky z auditu přihlášení:
- Odstranit dontaudits z politiky:
sudo semodule -DB
- Dočasně
mysqld_t
do tolerantního režimu. Například:
sudo semanage permissive -a mysqld_t
- Start MariaDB.
- Dělejte, co způsobuje chyby SELinuxu.
- Použít vygenerovaný protokol auditu vytvořit podmínky:
sudo grep mysqld /var/log/audit/audit.log | audit2allow -M mariadb_localsudo semodule -i mariadb_local.pp
- Vytáhněte
mysqld_t
z tolerantního režimu. Příklad:
sudo semanage permissive -d mysqld_t
- Obnovit dontaudits pro politiky:
sudo setmodule -B
stejný postup může být použit, pokud MariaDB začíná ale SELinux mu brání funguje správně. Například SELinux může zabránit Pam plugin z ověřování uživatelů. Řešení je stejné-povolit audit, přepnout na tolerantní, dělat, co vám SELinux nedovolil, vytvořit politiku z protokolu auditu.
když objevíte potřebná oprávnění SELinuxu, nahlaste potřebná oprávnění ke sledování chyb operačního systému, aby všichni uživatelé mohli těžit z vaší práce (např. Red Hat Bugzilla https://bugzilla.redhat.com/).