13 maj

Instalowanie i zabezpieczenie phpMyAdmin dla systemu Ubuntu 16.04

Pomimo tego, że wielu użytkowników potrzebuje funkcjonalności systemu zarządzania bazą danych typu MySQL, nie mogą oni czuć się komfortowo w interakcji z systemem wyłącznie za pomocą konsoli z MySQL.

phpMyAdmin stworzono z myślą o tym, żeby użytkownicy mogli współdziałać z MySQL poprzez stronę internetową. Niżej przedstawimy, jak zainstalować i zabezpieczyć phpMyAdmin. Dzięki temu będziesz mógł go bezpiecznie używać do zarządzania bazami danych z systemu Ubuntu 16.04 na Serwerach SSD VPS lub fizycznych maszynach.

Wstępne wymagania

Przed rozpoczęciem musisz sprawdzić kilka rzeczy.

Po pierwsze, powinieneś być użytkownikiem innym niż administrator z uprawnieniami sudo.

Oprócz tego zakładamy, że masz zainstalowane zestaw LAMP (Linux, Apache, MySQL i PHP) na serwerze VPS z Ubuntu 16.04.

Wreszcie, istnieją ważne kwestie bezpieczeństwa, których należy przestrzegać podczas korzystania z oprogramowania podobnego do phpMyAdmin ponieważ:

  • Komunikuje się ono bezpośrednio z instalacją MySQL
  • Obsługuje uwierzytelnienia używając poświadczeń MySQL
  • Wykonuje i zwraca wyniki arbitralnych zapytań SQL

W związku z powyższym oraz z racji tego, że jest to często atakowana i powszechnie wdrażana aplikacja PHP, nigdy nie uruchamiaj phpMyAdmin w zdalnych systemach poprzez zwykłe połączenie HTTP.

Instalowanie phpMyAdmin

Zainstaluj phpMyAdmin z domyślnych repozytorium Ubuntu.

Możesz to zrobić aktualizując lokalny indeks pakietów, a następnie za pomocą systemu zarządzana pakietami apt w celu pobrania plików oraz ich instalacji w systemie Ubuntu:

sudo apt-get update
sudo apt-get install phpmyadmin php-mbstring php-gettext

Zobaczysz kilka pytań związanych z prawidłowym konfigurowaniem instalacji.

Uwaga: Po pojawieniu się pierwszego wiersza, apache2 jest podświetlone, lecz nie jest wybrane. Jeżeli nie przyciśniesz Spacji w celu wyboru Apache, niezbędne pliki nie zostaną zainstalowane. Przyciśnij Spację, Tab, a następnie Enter w celu wybrania Apache.

  • W celu wybrania serwera wybierz apache2.
  • Wybierz yes w przypadku prośby wykorzystania dbconfig-common w celu utworzenia bazy danych
  • Zostaniesz poproszony o podanie Twojego hasła administratora
  • Następnie zostaniesz poproszony o potwierdzenie hasła dla aplikacji phpMyAdmin

Konfiguracyjny plik phpMyAdmin Apache w trakcie instalacji zostanie dodany do katalogu /etc/apache2/conf-enabled/, gdzie zostanie automatycznie odczytany.

Jedyną rzeczą, którą powinniśmy zrobić, jest włączenie rozszerzeń PHP mcrypt i mbstring, czego możemy dokonać wpisując:

sudo phpenmod mcrypt
sudo phpenmod mbstring

Następnie zrestartuj Apache w celu uruchomienia wprowadzonych zmian:

sudo systemctl restart apache2

Teraz masz dostęp do strony internetowej poprzez odwiedzenie domeny serwera lub publicznego adresu IP z końcówką /phpmyadmin:

https://domena_czy_adres_IP/phpmyadmin

small_login_screen

Zaloguj się do interfejsu za pomocą nazwy użytkownika root oraz hasła administracyjnego skonfigurowanego podczas instalacji MySQL.

Po zalogowaniu zobaczysz interfejs użytkownika, który wygląda mniej więcej następująco:

small_user_interface

Zabezpieczenie phpMyAdmin

Gratulacje. Teraz nasz interfejs phpMyAdmin dość dobrze działa. Jednak to jeszcze nie koniec. Ze względu na jego powszechne wykorzystanie, phpMyAdmin jest często poddawany atakom. Będziesz musiał zrobić kilka dodatkowych rzeczy, aby zapobiec nieautoryzowanemu dostępowi.

Jednym z najprostszych sposobów podwyższenia bezpieczeństwa jest umieszczenie i włączenie uwierzytelniania i autoryzacji Apache za pomocą .htaccess

Konfigurowanie Apache w celu autoryzacji .htaccess

Po pierwsze, musimy umożliwić korzystanie z plików .htaccess edytując konfiguracyjny plik Apache.

Edytujmy połączony plik mieszczący się w katalogu konfiguracyjnym Apache:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Dodajmy dyrektywę AllowOverride All w sekcji <Directory /usr/share/phpmyadmin> pliku konfiguracyjnego w następujący sposób:

/etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .

Po dodaniu powyższego wiersza, zapisz i zamknij plik.

Zresetuj Apache w celu uruchomienia wprowadzonych zmian:

sudo systemctl restart apache2

Stworzenie pliku .htaccess

Po włączeniu .htaccess dla naszej aplikacji, powinniśmy go stworzyć w celu zapewniania dodatkowego bezpieczeństwa.

Powodzenie powyższego działania jest możliwe pod warunkiem stworzenia pliku w katalogu aplikacji. Możemy stworzyć niezbędny plik i otworzyć go w naszym edytorze tekstowym z uprawnieniami użytkownika root wpisując:

sudo nano /usr/share/phpmyadmin/.htaccess

W pliku powinniśmy wprowadzić następujące informacje:

/usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Przeanalizujmy znaczenia każdego wiersza:

  • AuthType Basic: Ten wiersz określa typ wdrażanego uwierzytelnienia. Niniejszy typ wdroży uwierzytelnienia za pomocą hasła przy użyciu pliku haseł.
  • AuthName: Tutaj ustawiamy wiadomość do okna dialogowego. Zachowaj ten uniwersalny szablon, aby osoby nieupoważnione nie mogły uzyskać żadnych informacji chronionych.
  • AuthUserFile: Ten wiersz ustawia lokalizację pliku haseł wykorzystywanych w celach uwierzytelnienia. Powinien on się znajdować poza obsługiwanymi katalogami. Stworzymy ten plik niebawem.
  • Require valid-user: Ten wiersz precyzuje, że tylko uwierzytelnieni użytkownicy powinni mieć dostęp do tego zasobu. To właśnie on rzeczywiście blokuje dostęp nieautoryzowanym użytkownikom.

Po zakończeniu, zachowaj i zamknij.

Stworzenie pliku .htpasswd w celu uwierzytelnienia

Po określeniu lokalizacji pliku haseł za pomocą dyrektywy AuthUserFile w pliku .htaccess powinniśmy stworzyć ten plik.

W celu zakończenia tego procesu potrzebujemy dodatkowego pakietu. Możemy go zainstalować z domyślnego depozytorium:

sudo apt-get install apache2-utils

Teraz mamy dostępne narzędzia htpasswd.

Dla pliku haseł wybraliśmy następującą lokalizację “/etc/phpmyadmin/.htpasswd“. Teraz stworzymy plik i przekażemy początkowemu użytkownikowi wpisując:

sudo htpasswd -c /etc/phpmyadmin/.htpasswd login

Zostaniesz poproszony o wybranie i potwierdzenie hasła dla stworzonego użytkownika. Następnie tworzony jest plik ze stworzonym przez ciebie zakodowanym hasłem.

Jeżeli chcesz wprowadzić dodatkowego użytkownika, powinieneś to zrobić bez markiera -c w następujący sposób:

sudo htpasswd /etc/phpmyadmin/.htpasswd dodatkowyuzytkownik

Po otrzymaniu dostępu do podkatalogu phpMyAdmin, zostaniesz poproszony o podanie loginu i hasła, które właśnie skonfigurowałeś:

https://domena_czy_adres_IP/phpmyadmin

htpassword

Po uwierzytelnieniu w Apache, zostaniesz przekierowany do strony uwierzytelnienia phpMyAdmin w celu wprowadzenia danych do logowania się do bazy danych. Z uwagi na fakt, że w przeszłości phpMyAdmin ucierpiała z powodu niedociągnięć, powyższe działania zapewniają dodatkowe bezpieczeństwo.

Podsumowanie

Teraz masz skonfigurowany phpMyAdmin, który jest gotowy do użycia na serwerze Ubuntu 16.04. Używając tego interfejsu można łatwo stwarzać bazy danych, użytkowników, tabele itd., a także wykonywać takie typowe operacje, jak usuwanie i modyfikacja struktury bazy i jej danych.