Przejdź do treści

Ustawienia plików cookie

Prosimy wybrać, na które rodzaje plików cookie Państwo zezwalają. Wybór można zmienić w dowolnym momencie w Ustawieniach plików cookie na dole każdej strony. Polityka prywatności

Niezbędne

Zawsze włączone

Potrzebne do logowania, zachowania koszyka i zapamiętania wyborów. Są zawsze włączone.

Jakie pliki cookie?
  • weboke_sessie, weboke_klant, weboke_remember: sesja i pozostanie zalogowanym
  • weboke_basket: koszyk
  • wkBtwIncl: wyświetlanie cen z VAT lub bez VAT
  • wok_cookies: wybór dotyczący plików cookie, 12 miesięcy

Mierzą, która reklama prowadzi do odwiedzin lub zamówienia, abyśmy nie płacili za reklamy, które nic nie dają.

Jakie pliki cookie?
  • Google Ads przez Google Tag Manager (_gcl_au, _gcl_aw), do 90 dni
  • OpenAI Ads, reklamy w ChatGPT
  • wok_aff: przez którego partnera trafili Państwo do nas (program partnerski), 60 dni

4,6

Kraj i język

Każdy kraj ma własną stronę z cenami i stawką VAT tego kraju.

Wyświetl

Jakie usługi nasłuchują na Państwa VPS i co jest dostępne z zewnątrz?

Każdy program, który przyjmuje połączenia, nasłuchuje na porcie: SSH na 22, serwer WWW na 80 i 443, MariaDB na 3306. Każdy port dostępny z zewnątrz to drzwi do Państwa serwera. Strona internetowa zwykle potrzebuje z zewnątrz tylko portów 22, 80 i 443. W tym artykule wyjaśniamy, jak sprawdzić, co nasłuchuje i na jakim adresie, oraz jak zweryfikować, co widzi reszta internetu.

Sprawdzanie, co nasłuchuje

Prosimy uruchomić na swoim VPS:

sudo ss -tulpn

Opcje oznaczają: TCP (-t), UDP (-u), tylko nasłuchujące (-l), który program (-p) oraz numery zamiast nazw (-n). Przykład:

tcp LISTEN 0.0.0.0:22       users:(("sshd",...))
tcp LISTEN 0.0.0.0:443      users:(("nginx",...))
tcp LISTEN 127.0.0.1:3306   users:(("mariadbd",...))
tcp LISTEN 0.0.0.0:6379     users:(("redis-server",...))
tcp LISTEN [::]:22          users:(("sshd",...))

Najważniejsza jest kolumna Local Address, czyli adres, na którym program nasłuchuje:

AdresZnaczenie
0.0.0.0Wszystkie adresy IPv4, a więc także Państwa adres publiczny: dostępny z zewnątrz, chyba że zablokuje go firewall
[::]Wszystkie adresy IPv6: to samo dla IPv6
127.0.0.1 lub [::1]Tylko sam serwer (loopback): nigdy niedostępny z zewnątrz
127.0.0.53 lub 127.0.0.54Również loopback: lokalny pomocnik DNS usługi systemd-resolved

W przykładzie MariaDB jest skonfigurowana prawidłowo: dostęp do niej mają tylko programy na samym serwerze. Redis nasłuchuje na wszystkich adresach i właśnie o ten błąd chodzi.

Zamykanie w samej usłudze

Baza danych, cache czy panel administracyjny prawie nigdy nie powinny być dostępne z zewnątrz. Najlepszym pierwszym krokiem jest ustawienie, aby usługa nasłuchiwała tylko na loopback. W Debianie i Ubuntu:

ProgramUstawieniePlik
MariaDB lub MySQLbind-address = 127.0.0.1/etc/mysql/mariadb.conf.d/50-server.cnf
PostgreSQLlisten_addresses = 'localhost'/etc/postgresql/<wersja>/main/postgresql.conf
Redisbind 127.0.0.1 -::1 oraz protected-mode yes/etc/redis/redis.conf

Następnie prosimy zrestartować usługę (zob. Zarządzanie usługami za pomocą systemctl na VPS) i ponownie sprawdzić za pomocą ss -tulpn. Jeśli chcą Państwo łączyć się z bazą danych z własnego laptopa, prosimy użyć tunelu SSH zamiast otwartego portu, zob. Konfiguracja SSH: logowanie za pomocą krótkiej nazwy.

Firewall jako druga warstwa

Firewall blokuje to, co mimo wszystko przez przypadek nasłuchuje na wszystkich adresach. Sposób konfiguracji ufw opisujemy w artykule Firewall z ufw (lub nftables). Prosimy nie polegać na jednej warstwie: firewall może być wyłączony, a reguła może być zbyt szeroka.

Porty publikowane za pomocą Dockera (ports:) omijają ufw. Baza danych z "3306:3306" jest wtedy dostępna z zewnątrz, nawet jeśli ufw pokazuje, że port jest zamknięty. Prosimy dodać przed nim 127.0.0.1: lub nie publikować portu. Zob. Docker i firewall: bezpieczne publikowanie portów.

Sprawdzanie z zewnątrz

ss pokazuje, co nasłuchuje na serwerze, ale nie to, co przepuszcza firewall. Prawdziwą kontrolę przeprowadza się z innego komputera, a nie z samego serwera. Za pomocą nc (netcat) na Macu lub Linuksie:

nc -vz -w 3 203.0.113.10 6379
nc -6 -vz -w 3 2001:db8::10 6379

W systemie Windows to samo robi PowerShell poleceniem Test-NetConnection 203.0.113.10 -Port 6379. Prosimy wpisać własny adres IPv4 i IPv6; znajdą je Państwo na ekranie VPS. Wynik należy odczytać następująco:

  • Otwarty (succeeded): coś nasłuchuje i jest dostępne z zewnątrz.
  • Zamknięty (Connection refused): nic nie nasłuchuje lub firewall aktywnie odrzuca połączenie.
  • Filtrowany (time-out): firewall po cichu odrzuca ruch.

W przypadku bazy danych zarówno stan zamknięty, jak i filtrowany są prawidłowe. Prosimy przetestować również IPv6: częstym błędem jest firewall z regułami tylko dla IPv4, podczas gdy usługa nasłuchuje także na [::]. Skaner portów, taki jak nmap, sprawdza wiele portów jednocześnie; prosimy używać go wyłącznie na własnym serwerze.

Państwa serwer jest skanowany od pierwszej minuty, także na portach baz danych i klastrów wyszukiwania. Jeśli działa usługa, której Państwo nie znają, prosimy sprawdzić, co to jest, i usunąć ją, jeśli nie jest potrzebna. To, co nie działa, nie może też stanowić luki.

Państwa VPS jest w pełni samodzielnie zarządzany: to Państwo decydują, jakie usługi nasłuchują i jak skonfigurowany jest firewall. My pomagamy w części dotyczącej WebOké, takiej jak ekran VPS, sieć i snapshoty.

Chcą Państwo dowiedzieć się więcej? Zapraszamy na bezpłatny kurs VPS i administrowania serwerem Linux, lekcja 5.1 Porty i nasłuchujące usługi lub lekcja 5.2 Firewall z ufw i nftables.

Czy ten artykuł był pomocny?

← Powrót do Hosting VPS

Chwileczkę…

Konfiguracja domen

Dla każdej domeny można ustawić serwery nazw, powiązanie z hostingiem oraz to, kto zostanie właścicielem.

Wczytywanie domen…