Domyślnie, gdy uruchamiasz usługę na serwerze Linux, wiąże się z portem i zaczyna nasłuchiwać internetu. Jeśli instalujesz bazę danych i nie konfigurujesz jej jawnie aby wiązać się tylko z localhost, nagle jest wystawiona na publiczny internet.
Zapora zmienia to z modelu "domyślnie zezwalaj" na model "domyślnie odmawiaj". Zapora odrzuca cały ruch przychodzący z wyjątkiem konkretnych portów które jawnie otwierasz.
Na Ubuntu i Debian, standardowym narzędziem do zarządzania zaporą jest UFW (Uncomplicated Firewall). To przyjazny dla użytkownika frontend dla iptables który przekształca złożone polecenia sieciowe w prosty angielski.
Krok 1: Zainstaluj UFW (jeśli konieczne)
Sprawdź czy jest tam:

sudo ufw status
Jeśli mówi "Status: inactive", jest zainstalowana ale wyłączona. Jeśli mówi "command not found", zainstaluj ją:
sudo apt update
sudo apt install ufw -y
Krok 2: Ustaw domyślne polityki
Zanim zaczniemy otwierać porty, musimy ustalić reguły bazowe. Najbezpieczniejszą bazą jest zablokowanie wszystkiego przychodzącego i zezwolenie na wszystko wychodzące.

sudo ufw default deny incoming
sudo ufw default allow outgoing
Gdy UFW jest włączone, te polecenia zapewniają że nikt nie może połączyć się z twoim serwerem chyba że jawnie otworzysz dla niego dziurę, podczas gdy twój serwer wciąż może sięgać na zewnątrz aby pobierać aktualizacje i wysyłać emaile.
Krok 3: Zezwól na SSH (KLUCZOWE)
Nie włączaj jeszcze zapory. Ponieważ domyślna polityka przychodząca to "odmów", włączenie UFW teraz natychmiast zerwałoby twoje połączenie SSH i zablokowałoby ci dostęp do serwera.
Musisz najpierw jawnie zezwolić na ruch SSH.

sudo ufw allow ssh
Otwiera to port 22. Jeśli śledziłeś nasz przewodnik aby zabezpieczyć SSH i zmienić domyślny port, musisz określić dokładny port i protokół (np., jeśli zmieniłeś go na 2222):
sudo ufw allow 2222/tcp
Krok 4: Zezwól na inne niezbędne usługi
Teraz otwórz porty dla wszystkiego innego co twój serwer hostuje. Większość usług ma nazwy które UFW rozpoznaje, ale możesz zawsze używać numerów portów bezpośrednio.
Dla serwera WWW (HTTP / HTTPS):

sudo ufw allow http
sudo ufw allow https
(Co tłumaczy się na porty 80 i 443).
Dla niestandardowej aplikacji działającej na porcie 8080:
sudo ufw allow 8080/tcp
Zezwalanie na konkretne adresy IP
Jeśli masz bazę danych (jak MySQL na porcie 3306) do której chcesz uzyskać dostęp ze swojego domowego IP lub innego serwera, ale nie z całego internetu, możesz zezwolić na pojedynczy IP:
sudo ufw allow from 203.0.113.50 to any port 3306
Krok 5: Włącz UFW
Z portem SSH bezpiecznie dozwolonym, czas włączyć zaporę:

sudo ufw enable
Zobaczysz ostrzeżenie: Command may disrupt existing ssh connections. Proceed with operation (y|n)?. Wpisz y i naciśnij Enter.
Ponieważ otworzyłeś port SSH w Kroku 3, twoje połączenie pozostanie aktywne. Sprawdź status aby zobaczyć aktywne reguły:

sudo ufw status verbose
Jak usuwać reguły
Jeśli popełnisz błąd lub nie potrzebujesz już otwartego portu, możesz usunąć regułę. Najłatwiejszy sposób to wyświetlenie reguł jako numerowanej listy:

sudo ufw status numbered
Znajdź numer obok reguły którą chcesz usunąć i usuń ją:

sudo ufw delete 3
UFW poprosi o potwierdzenie, a potem reguła zniknie. Pamiętaj że usunięcie linii 3 przesunie numery poniżej w górę, więc zawsze uruchamiaj status numbered na nowo przed usunięciem następnej reguły.
Dalsze kroki
UFW jest idealne dla 99% typowych konfiguracji serwerów. Czysto obsługuje odrzucanie złośliwego tła szumu podczas wystawiania dokładnie tego co zamierzasz wystawić. Jeśli połączysz to z fail2ban, twój serwer nie tylko odrzuci niechciany ruch, ale aktywnie zbanuje IP które próbują nadużywać twoich otwartych portów.
Jeśli nie masz serwera do ćwiczeń, nasz Budget VPS jest idealnym, niskokosztowym środowiskiem aby uruchomić, skonfigurować zaporę, psuć rzeczy i zaczynać całkowicie od nowa bez żadnych problemów.