Instalacja i zabezpieczanie phpMyAdmin

phpmyadmin_logophpMyAdmin to narzędzie służące do zarządzania bazami danych MySQL na serwerze. Oprogramowanie umożliwia między innymi tworzenie i usuwanie baz danych, zarządzanie tablami oraz relacjami w trybie graficznym. Oprogramowanie instalowane jest na serwerze wyposażonym w serwer WWW oraz MySQL. Niniejszy opis dotyczy instalacji i zabezpieczenia aplikacji w systemie Linux.

Instalację pakietu realizuje się poprzez wpisanie jednej komendy, która pobierze pliki z serwera źródłowego i uruchomi instalację:

sudo apt-get install phpmyadmin

Po zakończeniu pobierania, instalator zapyta o konfigurację serwera WWW, gdzie należy zaznaczyć za pomocą spacji opcję Apache.

phpmyadmin1

Kolejnym krokiem jest konfiguracja dostępu do bazy danych, ponieważ phpMyAdmin wykorzystuje do pracy własną bazę danych.

phpmyadmin2

Następnie należy podać nowe hasło do bazy danych:

phpmyadmin3

i jeszcze raz potwierdzić nowe hasło:

phpmyadmin4

Instalacja została zakończona i można w przeglądarce wpisać adres http://domena.pl/phpmyadmin, co spowoduje wyświetlenie okna logowania:

phpmyadmin5

Po wybraniu języka i zalogowaniu się na konto bazy MySQL, można zarządzać bazami danych serwera lub bazą, do której użytkownik posiada prawa. Niestety domyślny poziom bezpieczeństwa skryptu jest niewystarczający i należy ten stan zmienić.

Dostrzec można kilka istotnych problemów bezpieczeństwa, z których jako najistotniejsze wymienić można: brak szyfrowania oraz dostęp poprzez powszechnie znany katalog /phpmyadmin, stąd należy dokonać kilku zmian, by zapewnić większe bezpieczeństwo.

Zmiana domyślnego aliasu (adresu)

Przede wszystkim należy sprawdzić, gdzie znajduje się phpmyadmin wydając polecenie whereis phpmyadmin. Jak widać, zostaną zwrócone dwie odpowiedzi: /etc/phpmyadmin oraz /usr/share/phpmyadmin. Jeśli chodzi o /etc, to jasne jest, że jest to katalog, który odpowiada za konfiguracje pakietu, bowiem katalog /etc można w uproszczeniu porównać do Panelu Sterowania z Windows, gdzie znajdują się ustawienia konfiguracje komputera.

Najpierw zmienimy dostęp do skryptu, który obecnie odbywa się poprzez wpisanie domeny i katalogu /phpmyadmin. Pozostawienie domyślnego aliasu do katalogu jest poważnym błędem, ponieważ jest to powszechnie znana informacja, co może prowadzić do prób ataków, np. typu brute force.

Otwórzmy więc do edycji plik apache.conf:

sudo nano /etc/phpmyadmin/apache.conf

Wpis: Alias /phpmyadmin /usr/share/phpmyadmin

należy zmienić na 

Alias /dowolnyciagznakow /usr/share/phpmyadmin 

np: Alias /adminmysql /usr/share/phpmyadmin

a następnie zrestartować serwer apache komendą: sudo service apache2 restart.

Od tej chwili skrypt phpMyAdmin będzie dostępny pod innym aliasem (nazwą), wpisaną pod zmienną dowolnyciagznakow.

Wymuszenie szyfrowania połączenia

Teraz należy dodać jedną linię do pliku Config.inc.php

$cfg['ForceSSL'] = true;

Następnie zapisać zmiany w pliku i spróbować ponownie otworzyć stronę phpMyAdmin.

Odtąd witryna z phpMyAdmin będzie dostępna wyłącznie w trybie szyfrowania pod adresem:

https://domena/adminmysql/ lub też: https://domena:port/adminmysql/

Jeśli moduł serwer Apache skonfigurowany został na nasłuchiwanie na niestandardowym porcie, to przy próbie zalogowania, przeglądarka może wyświetlić błąd, ponieważ w adresie nie zostanie dodany port nasłuchu. Aby wyeliminować błąd, należy zmodyfikować plik config.inc.php w phpmyadmin, dopisując na jego końcu linię:

$cfg['PmaAbsolutePath']='https://domena:port/nazwa_aliasu';

Na koniec należy zapisać zmiany i ponownie spróbować się zalogować.

Dodatkowe bezpieczeństwo

Jeśli wymagane jest zapewnienie wyjątkowego bezpieczeństwa, można uzupełnić konfigurację o dodatkowe logowanie za pomocą dodatkowych haseł. Część ta nie jest niezbędna, jednak znacznie podnosi odporność skryptu na próby zautomatyzowanych ataków.

Aby zastosować dodatkową autoryzację, należy zmodyfikować plik konfiguracyjny phpmyadmin.conf, lub wykorzystać plik .htaccess. Wykorzystamy jednak pierwszą metodę. Należy otworzyć do edycji plik konfiguracyjny:

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

i dopisać kilka linii:

Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AuthType Basic
    AuthName "Wymagana autoryzacja"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

Następnie należy zrestartować serwer Apache:

sudo service apache2 restart

Kolejnym etapem jest utworzenie pliku .htpasswd z użytkownikiem poleceniem:

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

Po dwukrotnym podaniu hasła, konfiguracja jest zakończona. Teraz próba otwarcia strony phpMyAdmin będzie najpierw wymagać podania użytkownika i hasła do witryny, następnie zaś wymagane będzie zalogowanie się do systemu.

Zmiana domyślnego języka wyświetlania

Dodatkowo można zmienić domyślny język na polski, co odbywa się poprzez edycję pliki config.inc.php i dopisanie na końcu linijki: $cfg[‚Lang’] = ‚pl’;

Od tej chwili, strona logowania oraz interfejs systemu będzie domyślnie wyświetlany w języku polskim.

Na koniec warto dopasować reguły zapory, co zostało opisane tutaj: http://leszek-klich.pl/2016/09/29/linux-firewall-ufw/

3503total visits,1visits today

Tagi , , .Dodaj do zakładek Link.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

17 + = 20

This site uses Akismet to reduce spam. Learn how your comment data is processed.