Dziś wrócę na chwilę do tego tematu – ustawimy dodatkowe zabezpieczenie (nazwa użytkownika i hasło).
Spis treści w artykule
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.
Jeśli w Twoim systemie nie ma takiego polecenia zainstaluj apache2-utils:
sudo apt-get install apache2-utils
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
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:
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01