Úvod
Relační databázové systémy jako MySQL a MariaDB jsou potřebné pro významnou část webových stránek a aplikací. Ne všichni uživatelé se však cítí pohodlně při správě svých dat z příkazového řádku.
k vyřešení tohoto problému byl vytvořen projekt s názvem phpMyAdmin s cílem nabídnout alternativu ve formě webového rozhraní pro správu. V této příručce si ukážeme, jak nainstalovat a zabezpečit konfiguraci phpMyAdmin na serveru CentOS 7. Toto nastavení postavíme na vrcholu webového serveru Apache, nejoblíbenějšího webového serveru na světě.
předpoklady
než začneme, je třeba vyřešit několik požadavků.
Chcete-li zajistit, že máte pevnou základnu pro sestavení tohoto systému, měli byste projít naší úvodní příručkou pro nastavení serveru pro CentOS 7. Mimo jiné vás to provede nastavením uživatele, který není root, s přístupem sudo
pro příkazy pro správu.
druhým předpokladem, který musí být splněn, aby bylo možné začít v této příručce, je instalace zásobníku LAMP (Linux, Apache, MariaDB a PHP) na server CentOS 7. Toto je platforma, kterou použijeme k obsluze našeho rozhraní phpMyAdmin (MariaDB je také software pro správu databází, který chceme spravovat). Pokud na serveru ještě nemáte instalaci lampy, postupujte podle našeho návodu k instalaci lampy na CentOS 7.
pokud je váš server po provedení těchto pokynů ve správně fungujícím stavu, můžete pokračovat se zbytkem této stránky.
první krok-Nainstalujte phpMyAdmin
s naší platformou LAMP již na svém místě můžeme začít hned s instalací softwaru phpMyAdmin. PhpMyAdmin bohužel není k dispozici ve výchozím úložišti CentOS 7.
abychom získali balíčky, které potřebujeme, musíme do našeho systému přidat další repo. EPEL repo (Extra Packages for Enterprise Linux) obsahuje mnoho dalších balíčků, včetně balíčku phpMyAdmin, který hledáme.
úložiště EPEL může být vašemu serveru zpřístupněno instalací speciálního balíčku s názvem epel-release
. Tím překonfigurujete seznam úložiště a získáte přístup k balíčkům EPEL.
nainstalovat, stačí zadat:
sudo yum install epel-release
Nyní, že EPEL repo je nakonfigurován, můžete nainstalovat balíček phpMyAdmin pomocí yum
balení systému zadáním:
sudo yum install phpmyadmin
instalace bude nyní ukončena. Instalace zahrnovala konfigurační soubor Apache, který již byl zaveden. Budeme to muset trochu upravit, aby to fungovalo správně pro naši instalaci.
otevřete soubor v textovém editoru, abychom mohli provést několik změn:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
uvnitř vidíme některé bloky adresářů s nějakou podmíněnou logikou, které vysvětlují zásady přístupu pro náš adresář. Existují dva odlišné adresáře, které jsou definovány, a v rámci těchto konfigurací, které budou platné pro Apache 2.2 a Apache 2.4(které provozujeme).
v současné době je toto nastavení nakonfigurováno tak, aby odepřelo přístup k jakémukoli připojení, které není vytvořeno ze samotného serveru. Protože pracujeme na našem serveru vzdáleně, musíme upravit některé řádky tak, aby určily IP adresu vašeho domácího připojení.
změňte všechny řádky, které čtou Require ip 127.0.0.1
nebo Allow from 127.0.0.1
, aby odkazovaly na IP adresu vašeho domácího připojení. Pokud potřebujete pomoc s nalezením IP adresy vašeho domácího připojení, podívejte se na další část. Tam by měla být čtyři místa v souboru, který musí být změněn:
. . .Require ip your_workstation_IP_address. . .Allow from your_workstation_IP_address. . .Require ip your_workstation_IP_address. . .Allow from your_workstation_IP_address. . .
Když jste hotovi, restartujte Apache web server k provedení úpravy zadáním:
sudo systemctl restart httpd.service
S tím, naše instalaci phpMyAdmin je nyní funkční. Chcete-li získat přístup k rozhraní, přejděte ve webovém prohlížeči na název domény serveru nebo veřejnou IP adresu následovanou /phpMyAdmin
:
http://server_domain_or_IP/phpMyAdmin
Chcete-li se přihlásit, použijte pár uživatelských jmen a hesel platného uživatele MariaDB. Uživatel root
a administrátorské heslo MariaDB jsou dobrou volbou, jak začít. Pak budete moci přistupovat k rozhraní pro správu:
Najít Vaši IP Adresu
Budete potřebovat znát IP adresu počítače, který používáte pro přístup k databázím k dokončení kroku výše. Jedná se o bezpečnostní opatření, aby se neoprávněné osoby nemohly připojit k vašemu serveru.
Poznámka: Toto není IP adresa vašeho VPS, je to IP adresa vašeho domácího nebo pracovního počítače.
můžete zjistit, jak větší web vidí vaši IP adresu tím, že navštívíte jeden z těchto webů ve Vašem webovém prohlížeči:
- jaká je moje IP adresa?
- jaká je moje IP adresa?
- moje IP adresa
Porovnejte několik různých webů a ujistěte se, že vám všechny dávají stejnou hodnotu. Tuto hodnotu použijte v konfiguračním souboru výše.
druhý krok-Zabezpečte instanci phpMyAdmin
instance phpMyAdmin nainstalovaná na našem serveru by měla být v tomto okamžiku plně použitelná. Instalací webového rozhraní jsme však vystavili náš systém MySQL vnějšímu světu.
i při přiložené autentizační obrazovce je to docela problém. Vzhledem k popularitě phpMyAdminu v kombinaci s velkým množstvím dat, ke kterým poskytuje přístup, jsou instalace, jako jsou tyto, běžnými cíli pro útočníky.
zavedeme dvě jednoduché strategie, abychom snížili šance na cílení a ohrožení naší instalace. Změníme umístění rozhraní z /phpMyAdmin
na něco jiného, abychom se vyhnuli některým automatizovaným pokusům o hrubou sílu bot. Vytvoříme také další ověřovací bránu na úrovni webového serveru, která musí být předána ještě předtím, než se dostaneme na přihlašovací obrazovku phpMyAdmin.
Změna Aplikace je Přístup k Umístění
aby pro náš webový server Apache do práce s phpMyAdmin, naše phpMyAdmin, Apache konfigurační soubor používá alias přejděte do adresáře umístění souborů.
Chcete-li změnit adresu URL, kde lze přistupovat k našemu rozhraní phpMyAdmin, stačí alias přejmenovat. Otevřete konfigurační soubor phpMyAdmin Apache nyní:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
směrem k horní části souboru uvidíte dva řádky, které vypadají takto:
Alias /phpMyAdmin /usr/share/phpMyAdminAlias /phpmyadmin /usr/share/phpMyAdmin
Tyto dvě přímky jsou naše přezdívky, což znamená, že pokud máme přístup na naše stránky je název domény nebo IP adresu, následuje buď /phpMyAdmin
nebo /phpmyadmin
, budeme podává obsah v /usr/share/phpMyAdmin
.
chceme zakázat tyto specifické aliasy, protože jsou silně zaměřeny roboty a škodlivými uživateli. Místo toho bychom se měli rozhodnout pro vlastní alias. Mělo by být snadno zapamatovatelné, ale není snadné uhodnout. Nemělo by uvádět účel umístění adresy URL. V našem případě půjdeme s /nothingtosee
.
Chcete-li použít naše zamýšlené změny, měli bychom odstranit nebo komentovat stávající řádky a přidat vlastní:
# Alias /phpMyAdmin /usr/share/phpMyAdmin# Alias /phpmyadmin /usr/share/phpMyAdminAlias /nothingtosee /usr/share/phpMyAdmin
po dokončení uložte a zavřete soubor.
realizovat změny, restartování webové služby:
sudo systemctl restart httpd.service
Nyní, pokud jste přejít na předchozí umístění vaší instalaci phpMyAdmin, dostanete 404:
http://server_domain_or_IP/phpMyAdmin
Nicméně, vaše phpMyAdmin rozhraní bude k dispozici na nové místo jsme si vybrali:
http://server_domain_or_IP/nothingtosee
Nastavení Webového Serveru Ověřování Brány
další funkce jsme chtěli pro naše instalace byla výzva k ověření, že uživatel bude muset projít předtím, než uvidíme phpMyAdmin přihlašovací obrazovce.
naštěstí většina webových serverů, včetně Apache, poskytuje tuto schopnost nativně. Budeme muset upravit náš konfigurační soubor Apache, abychom mohli použít autorizační soubor.
znovu otevřete konfigurační soubor phpMyAdmin Apache v textovém editoru:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
v adresářovém bloku /usr/share/phpMyAdmin
, ale mimo kterýkoli z bloků uvnitř, musíme přidat direktivu override. To bude vypadat takto:
. . .<Directory /usr/share/phpMyAdmin/> AllowOverride All <IfModule mod_authz_core.c> . . .</Directory>. . .
To nám umožní zadat další podrobnosti o konfiguraci v souboru s názvem .htaccess
se nachází v phpMyAdmin adresář sám. Tento soubor použijeme k nastavení ověření hesla.
Uložte a zavřete soubor po dokončení.
restartujte webovou službu a implementujte tuto změnu:
sudo systemctl restart httpd.service
vytvořit .soubor htaccess
Nyní, když máme v naší konfiguraci direktivu override, Apache vyhledá soubor nazvaný .htaccess
v adresáři /usr/share/phpMyAdmin
. Pokud ji najde, použije směrnice obsažené v něm k doplnění svých předchozích konfiguračních dat.
naším dalším krokem je vytvoření souboru .htaccess
v tomto adresáři. Použijte k tomu nyní textový editor:
sudo nano /usr/share/phpMyAdmin/.htaccess
v tomto souboru musíme zadat následující informace:
AuthType BasicAuthName "Admin Login"AuthUserFile /etc/httpd/pma_passRequire valid-user
pojďme si projít, co každý z těchto řádků znamená:
- AuthType Basic: Tento řádek určuje typ ověřování, který implementujeme. Tento typ implementuje ověření hesla pomocí souboru s heslem.
- AuthName: tím se nastaví zpráva pro dialogové okno ověřování. Měli byste si tento obecný ponechat, aby neautorizovaní uživatelé nezískali znalosti o tom, co je chráněno.
- AuthUserFile: tím se nastaví umístění skutečného souboru s heslem, který bude použit pro ověření. To by mělo být mimo adresáře, které jsou podávány. Tento soubor vytvoříme za chvíli.
- vyžadovat platný uživatel: To určuje, že k tomuto prostředku by měli mít přístup pouze ověření uživatelé. To je to, co ve skutečnosti brání neoprávněným uživatelům ve vstupu.
po dokončení zadávání těchto informací uložte a zavřete soubor.
Vytvořit Heslo Soubor pro Ověření
Teď, když jsme zadali umístění pro naše heslo souboru pomocí AuthUserFile
směrnice v našich .htaccess
souboru, musíme vytvořit a naplnit heslo souboru.
toho lze dosáhnout pomocí nástroje Apache nazvaného htpasswd
. Vzýváme příkaz tím, že projde to místo, kde jsme chtěli vytvořit soubor a uživatelské jméno, rádi bychom, aby zadejte přihlašovací údaje pro:
sudo htpasswd -c /etc/httpd/pma_pass username
-c
příznak označuje, že tento bude vytvořit původní soubor. Umístění adresáře je cesta a název souboru, který bude použit pro soubor. Uživatelské jméno je prvním uživatelem, kterého bychom chtěli přidat. Budete vyzváni k zadání a potvrzení hesla pro uživatele.
Pokud chcete přidat další uživatele k ověření, můžete volat stejný příkaz znovu bez -c
flag, a s novým uživatelským jménem:
sudo htpasswd /etc/httpd/pma_pass seconduser
S naším heslem, že soubor byl vytvořen, ověřování brána byl realizován a nyní bychom měli vidět heslo, vyzve příště navštivte naše stránky:
http://server_domain_or_IP/nothingtosee
Jakmile zadáte své přihlašovací údaje, budete přesměrováni na normální phpMyAdmin přihlašovací stránku. Tato přidaná vrstva ochrany pomůže udržet vaše protokoly MySQL čisté pokusů o ověření kromě přidané výhody zabezpečení.
závěr
nyní můžete spravovat své databáze MySQL z přiměřeně bezpečného webového rozhraní. Toto uživatelské rozhraní odhaluje většinu funkcí, které jsou k dispozici z příkazového řádku MySQL. Můžete zobrazit databáze a schéma, spouštět dotazy a vytvářet nové datové sady a struktury.