Podstawy Linux #8: Sieć i firewall

Serwer VPS to przede wszystkim maszyna podłączona do sieci. Musisz umieć sprawdzić połączenie, otwarte porty, pobrać pliki i zabezpieczyć serwer zaporą ogniową.

Diagnostyka sieci

ping — sprawdź połączenie

ping google.com              # ciągły ping (CTRL+C żeby przerwać)
ping -c 4 google.com         # 4 próby i koniec

ip — informacje o interfejsach sieciowych

ip a                         # adresy IP wszystkich interfejsów
ip r                         # tablica routingu (gateway)

📋 Scenariusz: Jaki jest publiczny IP serwera?

ip a | grep "inet " | grep -v 127.0.0.1

Lub szybciej:

curl -s ifconfig.me

ss — otwarte porty i połączenia

ss -tuln                     # TCP/UDP, nasłuchujące, numerycznie
ss -tlnp                     # jak wyżej + nazwa procesu

📋 Scenariusz: Jakie porty są otwarte na serwerze?

sudo ss -tlnp

Zobaczysz listę nasłuchujących portów z nazwami procesów. Typowo: port 22 (SSH), 80 (HTTP), 443 (HTTPS). Jeśli używasz Dockera, pojawią się też porty kontenerów (np. docker-proxy).

curl i wget — pobieranie i testowanie

curl https://example.com                    # wyświetl zawartość strony
curl -I https://example.com                 # tylko nagłówki HTTP
curl -o plik.zip https://example.com/a.zip  # pobierz i zapisz
wget https://example.com/plik.zip           # pobierz plik
wget -q -O - https://example.com            # wyświetl zawartość (jak curl)

💡 Podpowiedź

curl jest bardziej uniwersalny (API, nagłówki, POST). wget jest lepszy do prostego pobierania plików.

Transfer plików przez SSH

scp — kopiowanie plików

scp działa przez SSH — jeśli masz skonfigurowany klucz SSH i ~/.ssh/config (lekcja 003), możesz używać nazwy hosta zamiast pełnego adresu:

# Z komputera na serwer:
scp plik.txt moj-serwer:/home/roman/

# Z serwera na komputer:
scp moj-serwer:/var/log/app.log ./

# Cały katalog:
scp -r katalog/ moj-serwer:/opt/

sftp — interaktywny transfer

sftp roman@serwer
sftp> put lokalny-plik.txt       # wyślij na serwer
sftp> get zdalny-plik.txt        # pobierz z serwera
sftp> ls                          # lista plików na serwerze
sftp> exit

Kompresja i archiwizacja

tar — archiwum

# Tworzenie archiwum:
tar -czvf backup.tar.gz /opt/app/data/
#  c = create, z = gzip, v = verbose, f = file

# Rozpakowywanie:
tar -xzvf backup.tar.gz
#  x = extract

# Rozpakuj do konkretnego katalogu:
tar -xzvf backup.tar.gz -C /opt/restore/

# Podgląd zawartości (bez rozpakowywania):
tar -tzvf backup.tar.gz

zip / unzip

zip -r archiwum.zip katalog/     # stwórz ZIP
unzip archiwum.zip               # rozpakuj
unzip -l archiwum.zip            # podgląd zawartości

📋 Scenariusz: Backup katalogu z datą

tar -czvf /opt/backups/app-data-$(date +%Y%m%d-%H%M).tar.gz /opt/app/data/

Tworzy plik np. app-data-20250115-1430.tar.gz.

Firewall (ufw)

UFW (Uncomplicated Firewall) to prosty frontend do iptables, domyślnie dostępny na Ubuntu/Debian.

Instalacja i status

sudo apt install ufw             # instalacja (jeśli brak)
sudo ufw status                  # sprawdź status
sudo ufw status verbose          # szczegółowy status
sudo ufw status numbered         # reguły z numerami

Włączanie

sudo ufw default deny incoming       # domyślnie blokuj ruch przychodzący
sudo ufw default allow outgoing      # domyślnie zezwalaj na ruch wychodzący
sudo ufw allow ssh                   # NAJPIERW zezwól na SSH!
sudo ufw enable                      # włącz firewall

⚠️ Uwaga

Zawsze zezwól na SSH (ufw allow ssh lub ufw allow 22) PRZED włączeniem firewalla. Inaczej zablokujesz się na swoim serwerze!

Zarządzanie regułami

sudo ufw allow 80                    # HTTP
sudo ufw allow 443                   # HTTPS
sudo ufw allow from 1.2.3.4         # zezwól z konkretnego IP
sudo ufw allow from 1.2.3.4 to any port 5432    # PostgreSQL tylko z tego IP
sudo ufw allow 465                    # SMTPS (SMTP over SSL)
sudo ufw allow 587                    # SMTP z TLS (wysyłanie maili)
sudo ufw allow 993                    # IMAP SSL (odbieranie maili)
sudo ufw deny 3306                   # zablokuj MySQL z zewnątrz

💡 Porty mailowe a automatyzacje

Jeśli Twoje automatyzacje (np. n8n) wysyłają maile przez zewnętrzny serwer SMTP — potrzebujesz otwartego portu 587 (SMTP z TLS) na ruch wychodzący. Domyślnie ufw default allow outgoing to załatwia, więc nie musisz nic dodawać. Porty przychodzące (25, 587, 993) otwieraj tylko jeśli stawiasz własny serwer pocztowy na VPS.

Usuwanie reguł

sudo ufw status numbered             # sprawdź numery reguł
sudo ufw delete 3                    # usuń regułę nr 3
sudo ufw delete allow 80             # usuń regułę po opisie

Wyłączanie i reset

sudo ufw disable                     # wyłącz firewall
sudo ufw reset                       # usuń wszystkie reguły

ℹ️ Co to jest reverse proxy?

Wyobraź sobie recepcję w hotelu — gość przychodzi i mówi „chcę do pokoju 302”. Recepcjonistka kieruje go we właściwe miejsce. Reverse proxy działa tak samo: przyjmuje ruch z internetu (port 80/443) i kieruje go do właściwej aplikacji działającej na wewnętrznym porcie (np. n8n na 5678, NocoDB na 8080).

Dzięki temu: – Otwierasz tylko porty 80 i 443 zamiast portów każdej aplikacji – Masz automatyczny SSL (HTTPS) dla wszystkich aplikacji – Możesz mieć wiele aplikacji na jednym serwerze, każda pod własną domeną

Popularne reverse proxy: Caddy (automatyczny SSL, prosta konfiguracja), Traefik (integracja z Dockerem), Nginx (klasyczny, największa społeczność).

📋 Scenariusz: Typowa konfiguracja serwera z n8n i reverse proxy

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 465                  # SMTPS (SMTP over SSL)
sudo ufw allow 587                  # SMTP z TLS (wysyłanie maili)
sudo ufw allow 993                  # IMAP SSL (odbieranie maili)
sudo ufw enable
sudo ufw status

Serwer przyjmuje SSH, HTTP, HTTPS i porty mailowe (587/993). Porty aplikacji (np. 5678 dla n8n) są ukryte za reverse proxy — np. Caddy lub Nginx. Reverse proxy przyjmuje ruch z internetu na porcie 80/443 i przekazuje go do aplikacji na wewnętrznym porcie. W tym kursie korzystamy z Caddy (w Dockerze), bo jest prostszy w konfiguracji i automatycznie obsługuje certyfikaty SSL.

Podsumowanie

Komenda Co robi
ping Test połączenia
ip a / ip r Adresy IP / routing
ss -tlnp Otwarte porty + procesy
curl / wget Pobieranie / testowanie HTTP
scp Kopiowanie plików przez SSH
tar -czvf / -xzvf Tworzenie / rozpakowywanie archiwum
ufw allow/deny Reguły firewalla
ufw enable/disable Włączanie / wyłączanie firewalla
Roman Rozenberger
Roman Rozenberger

Jestem digital marketerem ze specjalizacją w marketingu w wyszukiwarkach internetowych. Wdrażam automatyzacje z wykorzystaniem narzędzi LowCode, NoCode i AI. Identyfikuje procesy i rozwiązuję problemy.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *