Sprawdź, czy porty baz danych są wystawione do internetu

Host
Skanuj tylko hosty, których jesteś właścicielem lub masz wyraźną zgodę na ich skanowanie. Skan sprawdza około 20 znanych portów TCP.
Dalej

Baza danych odpowiadająca w publicznym internecie to jeden z najczęstszych błędów serwerowych. Podaj swój serwer i sprawdź, czy MySQL (3306), PostgreSQL (5432) lub Redis (6379) przyjmuje połączenie z zewnątrz. Jeśli żadnego z nich nie widać, nie są dostępne stąd.

Jak sprawdzić, czy bazy danych są wystawione

  1. 1

    Podaj adres serwera

    Użyj publicznej nazwy hosta lub adresu IP maszyny, na której działa baza danych.

  2. 2

    Uruchom skanowanie

    Naciśnij Dalej, a następnie kliknij Skanuj popularne porty.

  3. 3

    Sprawdź 3306, 5432 i 6379

    Jeśli któryś z nich jest na liście, ta usługa przyjmuje połączenia z internetu.

  4. 4

    Zamknij to, co powinno być prywatne

    Przypisz usługę do prywatnego adresu lub zamknij port w zaporze, a potem skanuj ponownie.

Dlaczego wystawienie ma znaczenie

Bazy danych i pamięci podręczne zbudowano po to, by korzystała z nich Twoja aplikacja, a nie obcy. Redis w domyślnych konfiguracjach często działa bez hasła, a dostępny port MySQL lub PostgreSQL zachęca do zgadywania haseł. Trzymanie tych portów poza publicznym internetem to podstawowa ostrożność.

Co oznacza każdy wynik

Port Usługa Jeśli jest na liście
3306 MySQL Serwer przyjmuje połączenia TCP z internetu
5432 PostgreSQL Tak samo, sprawdź reguły dostępu i adres nasłuchu
6379 Redis Tak samo, sprawdź hasło i prywatny adres nasłuchu

Otwarty port nie oznacza, że baza jest bez zabezpieczeń. Uwierzytelnianie i reguły hostów mogą nadal odrzucić logowanie. Oznacza, że usługa jest osiągalna i warta bliższego przyjrzenia.

Typowe poprawki

  1. Przypisz bazę danych do localhost lub prywatnej sieci.
  2. Dodaj regułę zapory, która przepuszcza port tylko z Twoich serwerów aplikacji.
  3. Na serwerach w chmurze sprawdź też grupę zabezpieczeń lub ACL sieci, nie tylko zaporę hosta.
  4. Przeskanuj ponownie, by potwierdzić, że port już się nie pojawia.

Ograniczenia tego testu

Sprawdzane są tylko trzy domyślne porty. Baza na niestandardowym porcie nie zostanie wykryta. Zamknięty, filtrowany i niedostępny daje ten sam pusty wynik, więc czysta lista oznacza tylko, że te porty nie przyjęły połączenia stąd, nic więcej. Skanuj wyłącznie serwery, których jesteś właścicielem lub które administrujesz.

Gdy wystawienie jest zamierzone

Niektóre konfiguracje celowo wystawiają bazę danych, na przykład zarządzaną usługę przyjmującą połączenia z listy dozwolonych adresów albo replikę, z którą łączą się inne regiony. W takim przypadku otwarty port w tym skanie jest oczekiwany. Pytanie brzmi, czy lista dozwolonych adresów naprawdę ogranicza dostęp. Sprawdzisz to, potwierdzając, że port zachowuje się tak, jak zamierzasz, z adresów spoza tej listy.

Jeśli nie zamierzałeś wystawiać bazy, traktuj otwarty port bazy danych jako problem do naprawy dziś, a potem przejrzyj logi bazy pod kątem prób połączeń z adresów, których nie rozpoznajesz.

Najczęściej zadawane pytania

Nie. Tylko otwiera połączenie TCP z portem i informuje, czy zostało przyjęte. Nie wysyła danych logowania i nie wykonuje zapytań.

Nie. Testowane są wyłącznie domyślne porty z ustalonej listy, więc baza na innym porcie nie zostanie sprawdzona.

Nie zawsze, bo uwierzytelnianie i szyfrowanie nadal mogą go chronić. Wystawienie zwiększa jednak powierzchnię ataku, dlatego większość konfiguracji trzyma te porty prywatnie.

Zapora może zezwalać tylko na adres Twojego biura. Skan pochodzi z innego publicznego adresu, więc widzi to, co widzi każdy, a o to właśnie chodzi w tej kontroli.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach

Poradniki i zastosowania