Miklix

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.


Ta strona została przetłumaczona maszynowo z języka angielskiego, aby była dostępna dla jak największej liczby osób. Niestety, tłumaczenie maszynowe nie jest jeszcze dopracowaną technologią, więc mogą wystąpić błędy. Jeśli wolisz, możesz wyświetlić oryginalną angielską wersję tutaj:

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:

sudo apt-get install ufw

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 22/tcp
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:

sudo ufw allow from 192.168.0.1 to any port 22

Oczywiście zamiast tego wpisz swój adres IP.

Po zakończeniu włącz ufw, wpisując:

sudo ufw enable

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 disable
sudo ufw enable

Aby zobaczyć aktualną konfigurację wystarczy wpisać:

sudo ufw status

Jeśli ufw nie jest włączony, zostanie wyświetlony jedynie komunikat „nieaktywny”, w przeciwnym razie wyświetlone zostaną aktualnie zdefiniowane reguły.

Udostępnij na BlueskyUdostępnij na FacebookuUdostępnij na LinkedInUdostępnij na TumblrUdostępnij na XUdostępnij na LinkedInPrzypnij na Pintereście

Mikkel Bang Christensen

O autorze

Mikkel Bang Christensen
Mikkel jest twórcą i właścicielem miklix.com. Ma ponad 20-letnie doświadczenie jako profesjonalny programista komputerowy / programista oprogramowania i jest obecnie zatrudniony na pełny etat w dużej europejskiej korporacji IT. Kiedy nie bloguje, poświęca swój wolny czas na szeroki wachlarz zainteresowań, hobby i aktywności, co może w pewnym stopniu znaleźć odzwierciedlenie w różnorodności tematów poruszanych na tej stronie.