Michal Čihař - Instalace a zabezpečení

Instalace a zabezpečení

Nainstalovat phpMyAdmina je poměrně jednoduché, ale na co mnoho lidí zapomíná je řádné zabezpečení. Stačí chvíli používat Google a najdete mnoho nezabezpečených instalací phpMyAdmina spoléhajících se na to, že nikdo toto URL neuhodne. Chyba, časem se provalí jakékoliv URL.

Požadavky

Předpokládám, že již máte funkční webový server s podporou php (minimálně verze 4.2.0) a databázi MySQL (minimálně 3.23.32), jejich nastavení zde nebudu rozebírat.

Instalace

Začneme samozřejmě stáhnutím ze stránek projektu a jeho rozbalením nebo instalací balíčku ve vaší distribuci. V případě balíčku z distribuce již pravděpodobně bude phpMyAdmin částečně nastaven. Dále již přistoupíme k modifikaci konfiguračního souboru.

Konfigurační soubor obsahuje několik částí: na začátku je několik základních nastavení, po nich následuje konfigurace serverů a pak mnoho dalších konfiguračních voleb, umožňujících nastavit téměř veškeré chování. Nejdříve upravíme seznam serverů, abychom mohli phpMyAdmina začít používat a pak se budeme věnovat podrobnějším nastavením. Vždy budou uvedeny jen relevantní části konfiguračního souboru, které jsou potřeba pro funkčnost probíraného tématu, v případě nastavovaní serveru je potřeba údaje zadávat do správné části (pro začátek vše k prvnímu serveru), protože phpMyAdmin umožňuje připojit se k více serverům.

Zabezpečení

Jako první věc musíme rozhodnout, jak se budeme k phpMyAdminovi přihlašovat, jestli ho budeme využívat sami nebo i další uživatelé a jestli bude přístupný z více míst.

Pokud se jedná o instalaci na pracovní stanici, můžeme zvolit zadání jména a hesla do konfiguračního souboru:

 
  $cfg['Servers'][$i]['auth_type']     = 'config';
$cfg['Servers'][$i]['user']          = 'uzivatel';
$cfg['Servers'][$i]['password']      = 'heslo';
 

A omezením přístupu pouze z lokálního počítače. Toto je asi nejlepší nastavit přímo ve webového serveru, ale vystačíme si i s phpMyAdminem:

 
  $cfg['Servers'][$i]['AllowDeny']['order'] = 'explicit';
$cfg['Servers'][$i]['AllowDeny']['rules'] =
             array('allow uzivatel from 127.0.0.1');
 

V případě přístupu více uživatelů využijeme autentizaci MySQL a zvolíme odpovídající metodu v phpMyAdminovi. Lze si vybrat mezi autentizací pomocí koláčků nebo s využitím HTTP autentizace. Ta má několik nevýhod, například kvůli návrhu HTTP neumožňuje odhlášení. Autentizace pomocí cookies navíc umožňuje (po příslušném nastavení) i přihlášení k libovolnému MySQL serveru. Proto budou ukázky používat autentizaci pomocí koláčků. Konfigurace pro obě metody se liší jen minimálně. Pro HTTP musíme nastavit jen typ autentizace:

 
  $cfg['Servers'][$i]['auth_type']     = 'http';
 

Pro koláčky samozřejmě také typ:

 
  $cfg['Servers'][$i]['auth_type']     = 'cookie';
 

A ještě heslo které bude použito pro šifrování koláčků:

 
  $cfg['blowfish_secret'] = 'tajne_heslo';
 

Toto heslo nebudeme muset nikde zadávat, je proto možné použít naprosto náhodný řetězec (pokud použijete balíček z distribuce, pravděpodobně toto heslo bylo vygenerováno už při instalaci, například Debian a SUSE toto heslo vygenerují).

Nyní by mělo být možné se do phpMyAdmina přihlásit, po zadání jména a hesla uživatele v MySQL se přihlásíme na úvodní obrazovku, kde již s programem můžeme pracovat.