Jak zabezpieczyć phpmyadmin?

9

Sprawdziłem moje dzienniki Apache i, whooooaaa, ​​istnieje wiele botów próbujących wykorzystać phpmyadmin. Pierwszą rzeczą, którą zrobiłem, była zmiana nazwy katalogu na coś bardziej niejasnego.

Ale czy są jeszcze jakieś wskazówki, aby zabezpieczyć phpmyadmin?

(Sama baza danych jest dostępna tylko z sieci lokalnej)

Boris Guéry
źródło
5
Sama baza danych może być dostępna tylko lokalnie, ale jeśli jej interfejs zarządzania (phpMyAdmin) jest publicznie dostępny, to nie ma znaczenia.
John Gardeniers
4
Najlepszym sposobem zabezpieczenia phpMyAdmin jest nauczenie się korzystania z klienta wiersza poleceń MySQL, a następnie odinstalowanie phpMyAdmin.
MD Marra
@MDMarra Absolutnie się z tobą zgadzam, ale właśnie miałem misję dla tego klienta, który wymagał zainstalowania PhpMyAdmin, nigdy go nie użyłem i zawsze wolę SSH. Chociaż w przypadku niektórych zastosowań nauka SQL nie jest opcją, a GUI taki PhpMyAdmin jest mile widziany przez wielu użytkowników, ale musi być odpowiednio zabezpieczony przez nas, ekspertów i specjalistów. To bardzo aroganckie, aby myśleć inaczej.
Boris Guéry

Odpowiedzi:

13

Robimy kombinację rzeczy:

  • Chroń phpMyAdmin poprzez .htaccess lub konfigurację Apache, która żąda nazwy użytkownika / hasła HTTP.
  • Chroń phpMyAdmin poprzez .htaccess lub konfigurację Apache, aby umożliwić dostęp tylko z niektórych zaufanych adresów IP
  • Umieść phpMyAdmin we własnym VirtualHost i uruchom go na niestandardowym porcie
  • Zezwalaj tylko na połączenia HTTPS z phpMyAdmin, a nie na zwykły HTTP
  • Zezwalaj tylko na połączenia z sieci LAN (użyj VPN, aby przejść przez zaporę i zezwalaj na połączenia tylko wtedy, gdy jesteś w tej sieci LAN / VPN)
  • Nie nazywaj katalogu, który znajduje się w czymś oczywistym, na przykład / phpMyAdmin /

Możesz także użyć przekierowania portów SSH, aby użyć kluczy SSH. Zobacz https://stackoverflow.com/a/3687969/193494

Keith Palmer Jr.
źródło
6

Dodaj .htaccess, który zezwala tylko na lokalny dostęp IP do folderu phpmyadmin.

gekkz
źródło
Co jeśli jest przeznaczony dla klientów? Wiele webhostów korzysta z PHPMyAdmin.
Luc
6

Udostępnij phpmyadmin na vhostie dostępnym tylko z localhost i wymagaj od użytkowników korzystania z ssh i przekierowania portów, aby uzyskać do niego dostęp.

Brian De Smet
źródło
2

Użyj .htaccess

Po prostu podrzucamy plik .htaccess z ochroną nazwy użytkownika / hasła i (w zależności od okoliczności) adresem IP.

Pozwala to USA szybko i łatwo dostać się do zasobu z zaufanych komputerów, ale powstrzymuje hakerów.

Jeszcze jedna uwaga ... nie używaj SAMEJ nazwy użytkownika / hasła dla twojego .htaccess, jak robisz to dla PHPMyAdmin ... to byłoby głupie. :-)

Mam nadzieję że to pomoże.

KPWINC
źródło
2

Zgadzam się z htaccess (/ w hasłem) i https.

Możesz także rozważyć dodanie drugiego adresu IP do tego serwera i utworzenie wirtualnego hosta Apache opartego na adresie IP dla phpmyadmin. Może to być po prostu adres IP sieci lokalnej, więc byłby chroniony przez zaporę ogniową (i możesz nawet nie mieć dla niej reguły nat).

Im więcej warstw (tj. Htaccess + https + Virtualhost), tym lepiej myślę. Idealnie, boty nie powinny być w stanie do niego dotrzeć.

Oczywiście możesz zawsze umieścić phpmyadmina na innym polu.

Kyle Brandt
źródło
1

Oprócz udzielonych odpowiedzi używamy również oprogramowania OSSEC typu open source do monitorowania naszych dzienników sieciowych i ostrzegania / blokowania tych skanów.

Jest bardzo prosty w instalacji i domyślnie znajdzie twoje dzienniki sieciowe i zacznie je monitorować.

Link: http://www.ossec.net

sucuri
źródło
1

Przenieś phpmyadmin do katalogu, którego nazwa jest zaciemniona w sposób, w jaki można oczekiwać, że hasło będzie takie, jak: kombinacja mieszanych liter i cyfr (na przykład PhP01mY2011AdMin) i podobnie „bezpieczne” hasło chroniące katalog za pomocą .htpasswd powinno być dość Zrób sztuczkę.

Z drugiej strony, jeśli bezpieczeństwo twoich baz danych mysql jest kluczowe dla twojej firmy, należy zapytać „co robisz, robiąc narzędzie administracyjne takie jak phpmyadmin dostępne w Internecie?” Ale hej, każdy ma powód do życia.

Rysował
źródło
0
  • HTTPS
  • Uczyń go dostępnym tylko przez tunel VPN / SSH

phpmyadmin jest zbyt wielką bestią, by ją zabezpieczyć. Potrzebujesz mod_security i tygodnia debugowania alertów, aby wyłączyć połowę reguł, aby zapewnić funkcjonalność phpmyadmin. Wniosek: nie udostępniaj go publicznie.

weeheavy
źródło