Zabezpieczenie phpMyAdmin przed próbami ataków

Pytania i problemy
anon58059726
anon58059726

Witam serdecznie 😗 Tym razem zamiast udzielać pomocy innym osobą sam potrzebuję pomocy z zabezpieczeniem phpmyadmin na moim VPS LVLUP. Sprawa wygląda dokładnie tak, że posiadam fail2ban i zabezpiecza on tak jak trzeba i jestem zadowolony. W ostatnim czasie pomyślałem sobie, że przecież można zaatakować serwer przez panel logowania do phpmyadmin. Z istotnych informacji dodam, że nie posiadam stałego adresu IP oraz nie korzystam z VPN. Posiadam zainstalowaną wersję phpmyadmin 4.9.5deb2. Czy warto zabezpieczyć w jakiś sposób panel logowania do phpmyadmin? Czy lepiej zostawić tak jak jest, bo ataki nic nie zrobią? Jestem praktycznie bardziej przekonany, że istnieję możliwość przeciążenia VPS przez notoryczne nieudane próby zalogowania do phpmyadmin.

Pozdrawiam Oczekuję na pomoc w tej sprawie Z góry dziękuję za wszelką pomoc w tej sprawie

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

Zakładając, że korzystasz z apache2, to potrzebny będzie własny VirtualHost, w którym ustawisz własny LogFormat oraz ścieżkę logów, tak aby potem móc łatwo filtrować je automatycznie (analogicznie należy zrobić w przypadku nginx).

Zależnie od twojej dokładnej konfiguracji będzie trzeba dostosować miejsce, gdzie należy to wkleić, np. w przypadku domyślnej konfiguracji warto by utworzyć nowy VirtualHost, ale od biedy można podmienić domyślne CustomLog lub dodać sam LogFormat do 000-default.conf:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{userID}n %{userStatus}n" pma_combined
CustomLog /var/log/apache2/phpmyadmin_access.log pma_combined

Należy utworzyć filtr /etc/fail2ban/filter.d/phpmyadmin.conf:

[Definition]
denied = mysql-denied|allow-denied|root-denied|empty-denied
failregex = ^ -.*(?:%(denied)s)$
ignoreregex =

Do tego jeszcze powiązany jail /etc/fail2ban/jail.conf upewniając się, że CustomLog kieruje na to samo co logpath:

[phpmyadmin]
enabled = true
port = http,https
filter = phpmyadmin
logpath = /var/log/apache2/phpmyadmin_access.log

Na końcu jeszcze pozostaje przeładować fail2ban, aby nowa konfiguracja została załadowana:

service fail2ban reload

Wszystko zostało oparte na tym artykule: https://phryneas.de/fail2ban-phpmyadmin

anon58059726
anon58059726

Powiem szczerze, że aż tak zaawansowany to nie jestem Będzie ciężko :thinking:

anon58059726
anon58059726

No dobrze, więc zrobiłem tak:

Plik /etc/apache2/sites-available/000-default.conf Linijka 20 ErrorLog ${APACHE_LOG_DIR}/error.log Linijka 21 LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %{userID}n %{userStatus}n" pma_combined Linijka 22 CustomLog /var/log/apache2/phpmyadmin_access.log pma_combined

Plik /etc/fail2ban/filter.d/phpmyadmin-syslog.conf Linijka 8 [Definition] Linijka 9 denied = mysql-denied|allow-denied|root-denied|empty-denied Linijka 10 failregex = ^ -.*(?:%(denied)s)$ Linijka 11 ignoreregex =

Plik /etc/fail2ban/jail.conf Linijka 937 [phpmyadmin-syslog] Linijka 938 enabled = true Linijka 939 port = http,https Linijka 940 filter = phpmyadmin Linijka 941 logpath = /var/log/apache2/phpmyadmin_access.log

Po dokonaniu zmian postanowiłem połączyć się z IP/phpmyadmin, następnie notorycznie wpisywałem niepoprawne hasło i nie zostaję banowany na adres IP na określony czas

Czy coś zrobiłem źle? Bardzo proszę o pomoc 😪

anon58059726
anon58059726

Problem rozwiązany! 👋

system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.