Jak skonfigurować zaporę sieciową na serwerze Ubuntu
Opublikowano: 15 lutego 2025 21:34:11 UTC
W tym artykule wyjaśniono i podano kilka przykładów, jak skonfigurować zaporę sieciową w systemie GNU/Linux przy użyciu polecenia ufw. Jest to skrót od Uncomplicated FireWall (Unkomplikowana Zapora Sieciowa). Nazwa jest trafna, bo to naprawdę bardzo prosty sposób na upewnienie się, że nie masz otwartych większej liczby portów, niż potrzebujesz.
How to Set Up a Firewall on Ubuntu Server
Informacje w tym poście są oparte na Ubuntu Server 14.04 x64. Mogą być lub nie być ważne dla innych wersji. (Aktualizacja: Mogę potwierdzić, że informacje w tym poście są zasadniczo nadal ważne i funkcjonalne w Ubuntu Server 24.04, jednak w ciągu 10 lat pośrednich, ufw stało się nieco „mądrzejsze” dzięki profilom dla typowych aplikacji serwerowych (na przykład, można włączyć „Nginx full” zamiast portów 80 i 443 oddzielnie) i 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 złożonego pliku konfiguracyjnego dla iptables. Jednak niedawno odkryłem ufw , co jest skrótem od Uncomplicated Firewall – 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 jest w rzeczywistości tylko narzędziem, które upraszcza konfigurację iptables – w tle to iptables i zapora jądra Linuxa filtrują, więc ufw nie jest ani mniej, ani bardziej bezpieczny niż one. Jednak ponieważ ufw znacznie ułatwia prawidłową konfigurację zapory, może zmniejszyć ryzyko błędu ludzkiego i jest zatem prawdopodobnie bezpieczniejszy dla niedoświadczonych administratorów.
Jeśli twój serwer jest skonfigurowany z IPv6, jak również IPv4, upewnij się, że jest on włączony również dla UFW. Edytuj plik /etc/default/ufw i poszukaj wiersza z napisem IPV6=yes . W mojej instalacji już tam był, ale jeśli go nie ma lub jeśli jest tam napisane no, powinieneś go edytować
Następnie po prostu użyj wiersza poleceń, aby włączyć porty, które chcesz otworzyć. Jeśli jesteś połączony z serwerem przez ssh, upewnij się, że zezwalasz również na to, w przeciwnym razie może to zakłócić połączenie i zablokować dostęp do serwera, gdy go aktywujesz – w zależności od tego, czy masz fizyczny dostęp do serwera, czy nie, może to być dość niewygodne ;-)
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 zasad, po prostu dodaj je w sposób powyżej.
Jeśli masz statyczny adres IP i chcesz mieć możliwość łączenia 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, gdy zrestartujesz serwer :-)
Jeśli wprowadzisz zmiany w konfiguracji UFW, może zaistnieć konieczność jej wyłączenia i ponownego włączenia, aby zmiany weszły w życie, 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 „nieaktywny”, w przeciwnym razie wyświetlone zostaną aktualnie zdefiniowane reguły.