O phpMyAdmin pisałem choćby podczas opisu instalacji i konfiguracji serwera WWW na przykładzie Raspberry Pi (Raspbian/Debian).

Dziś wrócę na chwilę do tego tematu – ustawimy dodatkowe zabezpieczenie (nazwa użytkownika i hasło).

Apache2: phpMyAdmin i .htaccess

Zaczniemy od utworzenia pliku .htaccess:

sudo nano /usr/share/phpmyadmin/.htaccess

i w treści dodajemy:

AuthType Basic
AuthName "Wymagana autoryzacja"
AuthUserFile /ścieżka/do/pliku/z/hasłem/.htpasswd
Require valid-user

Następnie tworzymy plik z hasłem:

sudo htpasswd -c /ścieżka/do/pliku/z/hasłem/.htpasswd nazwa_użytkownika

Lub z wykorzystaniem trochę bardziej skomplikowanego algorytmu:

sudo htpasswd -c -B bcrypt /ścieżka/do/pliku/z/hasłem/.htpasswd nazwa_użytkownika

I jeszcze troszkę podkręcamy:

sudo htpasswd -c -C7 -B bcrypt /ścieżka/do/pliku/z/hasłem/.htpasswd nazwa_użytkownika

Pojawi się monit o wpisanie hasła dla tego użytkownika – co oczywiście robimy.

Aktywacja obsługi plików .htaccess

…pewnie trzeba dodać obsługę plików .htaccess do konfiguracji „wirtualnego hosta”.

Połączenie zwykłe:

sudo nano /etc/apache2/sites-enable/000-default

Połączenie szyfrowane (SSL):

sudo nano /etc/apache2/sites-enable/default-ssl

I dodajemy zaraz pod „</Directory>” taki wpis:

<Directory /usr/share/phpmyadmin/>
AllowOverride ALL
</Directory>

Dostęp tylko z wybranych adresów IP

Możemy też – dodatkowo lub zamiast – zezwolić na dostęp do phpMyAdmin tylko ze zdefiniowanych adresów IP.

W tym celu ponownie edytujemy (lub tworzymy) plik .htaccess:

sudo nano /usr/share/phpmyadmin/.htaccess

i w treści wpisujemy:

order deny,allow
deny from all
allow from Adres_IP

Można też zezwolić na dostęp z konkretnego zakresu, np. w ramach sieci LAN:

allow from 10.*.*.*
allow from 10.0.0.0-10.255.255.255
allow from 10.0-255.0-255.0-255

Restart Apache

Na koniec zmian (tych i wcześniejszych) robimy restart serwera:

sudo service apache2 restart

Nginx i strona na hasło (np. phpMyAdmin)

W przypadku serwera Nginx nie ma wprawdzie obsługi plików .htaccess, ale podobny efekt – dostęp do katalogu/adresu – możemy ustawić za pomocą edycji pliku vHosta, np.:

sudo nano /etc/nginx/sites-enabled/default

i w danej „lokalizacji” dodajemy:

auth_basic "Wymagana autoryzacja";
auth_basic_user_file /ścieżka/do/pliku/z/hasłem/.htpasswd;

Dla phpMyAdmin będzie to wyglądało tak:

location /phpmyadmin {
[...]
auth_basic "Wymagana autoryzacja";
auth_basic_user_file /ścieżka/do/pliku/z/hasłem/.htpasswd;
[...]
}

Na koniec restart lub odświeżenie ustawień serwera:

sudo service nginx restart
sudo service nginx reload

Plik z hasłem (.htpasswd) dla Nginxa ma taki sam format jak dla Apache2, więc można wygenerować go tym samym narzędziem…

STOP – Wymagana autoryzacja

I cieszymy się np. dostępem do phpMyAdmin z dodatkowym uwierzytelnieniem:

phpmyadmin_htaccess_ie

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.

Patryk

CEO Webinsider.pl, a do tego CTO, CIO, CFO, CMO, CSO, COO i CRO ;-)
Pasjonat nowych technologii - od sprzętu po oprogramowanie, od serwerów po smartfony i rozwiązania IoT. Potencjalnie kiepski bloger, bo nie robi zdjęć "talerza" zanim zacznie jeść.

Dumny przyjaciel swoich psów :-)
Envato Elements - pobieraj co chcesz, ile chcesz
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Envato Elements - pobierasz co chcesz, ile chcesz