Security-Enhanced Linux s MariaDB

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

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 fcontextrestorecon 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 fcontextrestorecon 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 fcontextrestorecon 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 tmpdirtmpfs 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 audit2allowsemanage 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/).

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.