GNU/Linux >> Znalost Linux >  >> Linux

Porozumění MySQL Pluggable Authentication

MySQL podporuje řadu autentizačních mechanismů, které jsou dostupné prostřednictvím zásuvné autentizace. MySQL používá řadu algoritmů k šifrování hesel uložených v uživatelské tabulce:

  • Plugin mysql_native_password implementuje standardní formát hesla, 41bajtový hash.
  • Plugin mysql_old_password implementuje starší formát, který je méně bezpečný a je široký 16 bajtů.
  • Plugin sha256_password implementuje hašovací algoritmus SHA-256, který se široce používá v zabezpečených počítačích.

Hodnota systémové proměnné old_passwords určuje algoritmus, který PASSWORD() funkce používá k vytváření hesel následovně:

  • 0 :Standardní algoritmus používaný od verze MySQL 4.1.1
  • 1 :Starý algoritmus, jak byl používán před MySQL 4.1.1
  • 2 :Algoritmus SHA-256

Spusťte server pomocí default-authentication-plugin možnost nastavena na sha256_password chcete-li používat hesla SHA-256 pro všechny nové uživatele, nebo použijte VYTVOŘIT UŽIVATELE s IDENTIFIKOVANÝM S heslem sha256 klauzule k určení hesel SHA-256 pro konkrétního uživatele.

Plugin pro ověřování čistého textu na straně klienta

Některé metody ověřování, jako je autentizace PAM (Pluggable Authentication Modules), vyžadují, aby klient odeslal serveru heslo ve formátu prostého textu, aby server mohl zpracovat heslo v jeho normální podobě. mysql_clear_password plugin toto chování umožňuje.

Klientská knihovna MySQL obsahuje vestavěný plugin Cleartext Authentication, mysql_clear_password. Plugin se používá k odeslání hesla ve formátu prostého textu na server – heslo je obvykle hashováno. Plugin je povolen proměnnou prostředí LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN a specifikuje –enable-cleartext-plugin při spouštění klientských aplikací MySQL, jako je mysql a mysqladmin. K aktivaci pluginu lze také použít volbu MYSQL_ENABLE_CLEARTEXT_PLUGIN funkce mysql_options() C API.

Načíst zásuvné moduly pro ověřování

Kromě výchozích vestavěných zásuvných modulů poskytuje MySQL několik zásuvných zásuvných modulů:

  • Plugin Test Authentication (test_plugin_server ) ověřuje pomocí nativního nebo starého ověřování hesla a je určen pro účely testování a vývoje.
  • Plugin Socket Peer-Credential (auth_socket) umožňuje uživatelům připojit se přes soubor soketu UNIX pouze v případě, že jejich uživatelské jméno pro Linux odpovídá jejich účtu MySQL.
  • Plugin ověřování PAM (authentication_pam) je plugin Enterprise Edition, který vám umožňuje přihlásit se pomocí externího ověřovacího mechanismu. MySQL neukládá vaše heslo, ale používá mechanismus UNIX PAM (Pluggable Authentication Modules) k přenosu klientem poskytnutého uživatelského jména a hesla pro ověření operačním systémem.

Můžete si vyvinout vlastní ověřovací pluginy. Zásuvný modul Test Authentication je určen pro vývojáře k vytváření jejich vlastních zásuvných modulů; jeho zdrojový kód je dostupný jako součást distribuce zdrojového kódu MySQL. Načtěte načítatelný ověřovací plugin spuštěním serveru pomocí plugin-load možnost na příkazovém řádku nebo v souboru my.cnf, jako v následujícím příkladu:

[mysqld] 
plugin-load=authentication_pam.so

Plugin pro ověřování PAM

Zásuvný modul PAM Authentication je zásuvný modul Enterprise Edition, který ověřuje účty MySQL proti operačnímu systému. PAM definuje služby, které konfigurují ověřování. Ty jsou uloženy v /etc/pam.d . PAM hledá v /etc/pam.d služby, které autentizuje. Chcete-li například vytvořit službu PAM s názvem mysql-pam, vytvořte soubor /etc/pam.d/mysql-pam s následujícím obsahem:

#%PAM-1.0
auth     include  password-auth 
account  include  password-auth

Kromě autentizace MySQL se PAM integruje s dalšími metodami ověřování včetně LDAP a Active Directory, takže můžete použít PAM k ověření mnoha služeb (včetně MySQL) proti jedinému úložišti ve vaší síti. Chcete-li vytvořit uživatele MySQL, který se mapuje přímo na uživatele operačního systému, použijte následující příkaz:

CREATE USER bob@localhost
IDENTIFIED WITH authentication_pam AS 'mysql-pam';

Když se bob přihlásí, MySQL předá uživatelské jméno a heslo, které obdrží od klienta, do PAM, který se ověřuje proti operačnímu systému. Klient musí heslo odeslat jako prostý text. K tomuto účelu povolte zásuvný modul Cleartext Authentication na straně klienta:

shell> mysql --enable-cleartext-plugin -ubob -p 
Enter password: bob’s_OS_password

Chcete-li povolit skupinová přihlášení pomocí pluginu PAM Authentication, vytvořte anonymní proxy účet s povoleným PAM, který neodpovídá žádnému uživateli, ale specifikuje sadu mapování ze skupiny operačního systému na uživatele MySQL:

CREATE USER ''@'' IDENTIFIED WITH authentication_pam AS 'mysql-pam, sales=m_sales, finance=m_finance';

Předchozí příklad předpokládá, že máte skupiny operačního systému prodeje a financování a uživatele MySQL m_sales a m_finance. Poté musíte anonymnímu proxy účtu udělit oprávnění PROXY a udělit mu práva přihlásit se jako uživatelé m_sales a m_finance MySQL:

GRANT PROXY ON m_sales@localhost TO ''@'';
GRANT PROXY ON m_finance@localhost TO ''@'';

Uživatelé, kteří jsou členy prodejních a finančních skupin, mohou nyní zadat své přihlašovací údaje k operačnímu systému na příkazovém řádku mysql, který je přihlásí jako uživatelé m_sales nebo m_finance MySQL, v daném pořadí, a poskytne jim všechna oprávnění udělená těmto účtům. Pokud je například peter členem prodejní skupiny, může se přihlásit následovně:

shell> mysql --enable-cleartext-plugin -upeter -p
Enter password: peter’s_OS_password
Welcome to the MySQL monitor. Commands end with ; or \g. 
...
mysql> SELECT CURRENT_USER(); 
+-------------------+
| CURRENT_USER()    | 
+-------------------+
| m_sales@localhost | 
+-------------------+ 
1 row in set (0.01 sec)
Průvodce správou uživatelů MySQL pro začátečníky
Pochopení oprávnění MySQL


Linux
  1. Nainstalujte MariaDB nebo MySQL na Linux

  2. Kroky k instalaci monitorovacího pluginu Percona MySQL pro Zabbix

  3. Pochopení YAML pro Ansible

  1. Oprava databází MySQL InnoDB

  2. Zálohování MySQL 1.1

  3. MySQL selže na:mysql ERROR 1524 (HY000):Plugin 'auth_socket' není načten

  1. Kroky k instalaci monitorovacího pluginu Percona MySQL pro Zabbix

  2. Rozumět Ifs?

  3. Rozumíte Linux Desktopu?