Mikrus
Dobry do ćwiczeń z restrykcjami IP, SSH tunnelingiem i backupem.
#Reklama · link partnerski
Zobacz kod rabatowy →phpMyAdmin to najpopularniejszy webowy interfejs MySQL — i jeden z najczęściej atakowanych elementów serwerów hostingowych. Niezabezpieczony panel to otwarte drzwi do całej bazy danych. Konfiguracja zajmuje 15 minut i eliminuje 99% automatycznych ataków.
Opublikowano: 8 kwietnia 2026
Główny plik konfiguracyjny to /etc/phpmyadmin/config.inc.php (VPS Debian/Ubuntu) lub config.inc.php w katalogu instalacji. Minimalna konfiguracja bezpieczeństwa:
<?php // Unikalny losowy string (min 32 znaki) — wygeneruj: openssl rand -base64 32 $cfg['blowfish_secret'] = 'ZMIEN_NA_LOSOWY_STRING_32_ZNAKI'; // Wymagaj SSL do logowania $cfg['ForceSSL'] = true; // Ukryj wersję phpMyAdmin $cfg['ShowPhpInfo'] = false; $cfg['VersionCheck'] = false; // Bezpieczne cookie (tylko HTTPS) $cfg['CookieSameSite'] = 'Strict'; // Wyłącz połączenia do dowolnego serwera MySQL $cfg['AllowArbitraryServer'] = false; // Timeout sesji — 30 minut $cfg['LoginCookieValidity'] = 1800; $cfg['LoginCookieDeleteAll'] = true;
Najskuteczniejsza metoda — zezwól tylko na konkretne adresy IP. Stwórz lub edytuj plik
.htaccess w katalogu phpMyAdmin:
# Tylko te IP mają dostęp do phpMyAdmin Order Deny,Allow Deny from All Allow from 203.0.113.10 # Twoje stałe IP biurowe Allow from 203.0.113.20 # Twoje IP domowe # Lub cały zakres sieci (np. biuro z dynamicznymi IP) # Allow from 203.0.113.0/24
Dynamiczne IP: Jeśli Twój ISP przydziela dynamiczne IP, rozważ VPN (Tailscale
jest darmowy dla małych zespołów) lub SSH tunneling zamiast whitelist IP. SSH tunnel:
ssh -L 8080:localhost:80 user@serwer — potem otwórz localhost:8080/phpmyadmin w przeglądarce.
Basic Auth dodaje okno dialogowe przeglądarki przed formularzem logowania phpMyAdmin — boty atakujące /phpmyadmin/ zobaczą 401 zamiast strony logowania:
# Dodaj do .htaccess w katalogu phpMyAdmin: AuthType Basic AuthName "Restricted Access" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user # Wygeneruj plik .htpasswd: # htpasswd -c /etc/phpmyadmin/.htpasswd admin_username
Automatyczne boty skanują /phpmyadmin/, /pma/, /mysql/ i dziesiątki podobnych ścieżek. Zmiana aliasu na niestandardowy (np.
/db-c8f2e1/) eliminuje tę kategorię ataków. Na Apache w
/etc/apache2/conf-enabled/phpmyadmin.conf:
# Zmień: Alias /phpmyadmin /usr/share/phpmyadmin # Na: Alias /db-c8f2e1 /usr/share/phpmyadmin # Następnie: systemctl reload apache2
Jeśli chcesz samodzielnie kontrolować dostęp do phpMyAdmin, rozważ VPS-y, na których ustawisz własny firewall, Nginx i Basic Auth.