Jak skonfigurować zaporę sieciową na serwerze Ubuntu
Opublikowano: 15 lutego 2025 21:34:11 UTC
Ostatnia aktualizacja: 12 stycznia 2026 08:37:20 UTC
W tym artykule wyjaśniono i podano kilka przykładów, jak skonfigurować zaporę sieciową w systemie GNU/Linux przy użyciu ufw. Jest to skrót od Uncomplicated FireWall (Unkomplicated FireWall). Nazwa jest trafna, to naprawdę bardzo prosty sposób na upewnienie się, że nie masz otwartych większej liczby portów, niż to konieczne.
How to Set Up a Firewall on Ubuntu Server
Informacje w tym poście dotyczą Ubuntu Server 14.04 x64. Mogą, ale nie muszą, być aktualne dla innych wersji. (Aktualizacja: Mogę potwierdzić, że informacje w tym poście są zasadniczo nadal aktualne i funkcjonalne w Ubuntu Server 24.04, jednak w ciągu ostatnich 10 lat UFW stał się nieco „inteligentniejszy” dzięki dodaniu profili dla typowych aplikacji serwerowych (na przykład można włączyć opcję „Nginx full” zamiast portów 80 i 443 osobno), a wyłączanie/włączanie całej zapory w celu zastosowania nowych reguł nie jest już konieczne).
Kiedy zaczynałem pracę z serwerami GNU/Linux (Ubuntu), konfiguracja zapory sieciowej wymagała ręcznego tworzenia i utrzymywania potencjalnie skomplikowanego pliku konfiguracyjnego dla iptables. Jednak niedawno odkryłem ufw, co jest skrótem od Uncomplicated Firewall (Uniwersalna Zapora Sieciowa) – i rzeczywiście tak jest :-)
W mojej instalacji Ubuntu Server 14.04 ufw jest już zainstalowany, ale jeśli nie, wystarczy zainstalować go z repozytoriów:
UFW to w rzeczywistości narzędzie upraszczające konfigurację iptables – w rzeczywistości to iptables i zapora sieciowa jądra Linuxa filtrują, więc ufw nie jest ani mniej, ani bardziej bezpieczny niż one. Jednak ponieważ ufw znacznie ułatwia poprawną konfigurację zapory sieciowej, może zmniejszyć ryzyko błędu ludzkiego i dlatego jest potencjalnie bezpieczniejszy dla niedoświadczonych administratorów.
Jeśli Twój serwer jest skonfigurowany zarówno z IPv6, jak i IPv4, upewnij się, że jest on również włączony dla UFW. Edytuj plik /etc/default/ufw i poszukaj wiersza z informacją IPV6=yes. W mojej instalacji już tam był, ale jeśli go nie ma lub wyświetla się komunikat „no”, powinieneś go edytować.
Następnie wystarczy użyć wiersza poleceń, aby włączyć porty, które chcesz otworzyć. Jeśli łączysz się z serwerem przez SSH, upewnij się, że zezwalasz również na to połączenie, w przeciwnym razie może ono zostać przerwane i zablokowane po aktywacji – w zależności od tego, czy masz fizyczny dostęp do serwera, czy nie, może to być dość uciążliwe ;-)
Na przykład, jeśli używasz protokołu SSH na standardowym porcie 22 i konfigurujesz serwer WWW, który obsługuje zarówno połączenia nieszyfrowane (HTTP na porcie 80), jak i szyfrowane (HTTPS na porcie 443), musisz wydać następujące polecenia, aby skonfigurować ufw:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Jeśli potrzebujesz więcej reguł, po prostu dodaj je jak powyżej.
Jeśli masz statyczny adres IP i chcesz móc łączyć się przez SSH tylko z jednej lokalizacji, możesz także ograniczyć połączenia SSH do jednego adresu źródłowego w następujący sposób:
Oczywiście, zamiast tego wpisz swój adres IP.
Po zakończeniu włącz ufw, wpisując:
I gotowe! Zapora działa i uruchomi się automatycznie po ponownym uruchomieniu serwera :-)
Jeśli wprowadzisz zmiany w konfiguracji ufw, może zaistnieć konieczność jej wyłączenia i ponownego włączenia, aby zmiany zaczęły obowiązywać, w następujący sposób:
sudo ufw enable
Aby zobaczyć aktualną konfigurację, wystarczy wpisać:
Jeśli ufw nie jest włączony, zostanie wyświetlony jedynie komunikat „nieaktywne”, w przeciwnym razie wyświetlone zostaną aktualnie zdefiniowane reguły.
