Powrót do bloga

Konfiguracja zapory sieciowej za pomocą UFW na Ubuntu 18.04

Konfiguracja zapory sieciowej za pomocą UFW na Ubuntu 18.04

Zapora sieciowa jest jednym z kluczowych komponentów zabezpieczania systemu. Odpowiada za zarządzanie połączeniami przychodzącymi i wychodzącymi w sieci. To podstawowa linia obrony Twoich serwerów i danych. Dlatego tak ważne jest posiadanie dobrze skonfigurowanej zapory sieciowej. W tym poradniku przeprowadzimy Cię przez kroki konfiguracji zapory sieciowej za pomocą UFW na Ubuntu 18.04.

UFW na Ubuntu

Termin UFW oznacza „Uncomplicated Firewall” (Nieskomplikowana zapora sieciowa). Jest to domyślny program zapory sieciowej, który jest fabrycznie zainstalowany w systemie Ubuntu. UFW jest w rzeczywistości interfejsem dla iptables. Celem UFW jest ułatwienie konfiguracji i zarządzania zaporą sieciową. Choć samo iptables jest solidnym i elastycznym rozwiązaniem, nie jest przyjazne dla początkujących. UFW ułatwia to zadanie zarówno początkującym, jak i doświadczonym użytkownikom.

Najpierw zapoznaj się z naszym wszechstronnym poradnikiem, który pomoże Ci zapoznać się z podstawowymi funkcjami UFW. Możesz również skorzystać z tego poradnika, aby zainstalować swój serwer Ubuntu. A teraz zaczynajmy!

Na początek, jeśli z jakiegoś powodu Twój UFW nie jest zainstalowany, zainstaluj go od razu:

Configuring UFW

  • Używanie IPv6

Obecnie IPv4 wciąż dominuje. Mając to na uwadze, większość tego poradnika dotyczy również IPv4. Na szczęście UFW oferuje także wsparcie dla IPv6. Wszystko, co musisz zrobić, to włączyć tę funkcję w pliku konfiguracyjnym UFW.

Najpierw otwórz plik konfiguracyjny UFW w edytorze tekstu. Aby zapisać zmiany, edytor tekstu musi być uruchomiony z uprawnieniami sudo:

Znajdź wpis „IPV6” i upewnij się, że jest ustawiony na „yes”.

  • Domyślna polityka

Jeśli po raz pierwszy konfigurujesz zaporę sieciową, zaleca się najpierw zdefiniowanie domyślnych polityk. Reguły te określają, jak kontrolowany jest ruch, który nie pasuje do żadnej jawnej reguły. Domyślnie UFW jest skonfigurowany tak, aby odrzucać wszystkie połączenia przychodzące, ale zezwalać na wszystkie połączenia wychodzące. Oznacza to, że nikt nie może połączyć się z serwerem, podczas gdy aplikacja działająca na serwerze może łączyć się ze światem zewnętrznym.

Poniższe polecenia po prostu na nowo zdefiniują domyślne zachowanie UFW. Pamiętaj, że zmieni to zachowanie UFW, jeśli było ono wcześniej modyfikowane:

W przypadku komputera osobistego same te reguły zapory byłyby wystarczające. Jednak serwery wymagają więcej, aby odpowiednio wzmocnić ich bezpieczeństwo.

Zezwalanie na połączenia SSH

Przy obecnej konfiguracji UFW odrzuci wszystkie połączenia przychodzące. W przypadku serwera zdalnego jest to niedopuszczalne. Bez dostępu do serwera nic nie da się zrobić. Aby uniknąć tego problemu, można skonfigurować UFW tak, aby zezwalał na połączenia przychodzące SSH lub HTTP.

Aby zezwolić na połączenia SSH do serwera, uruchom poniższe polecenie. W zasadzie nakaże ono UFW zezwolenie na wszystkie połączenia na porcie 22. Jest to port, na którym domyślnie nasłuchuje demon SSH:

Zamiast tego polecenia można bezpośrednio skonfigurować zezwalanie na połączenia na porcie 22. Port ten jest zdefiniowany w pliku /etc/services:

Ponieważ port 22 jest domyślnym portem dla demona SSH, może być również podatny na ataki. Co jeśli serwer SSH jest skonfigurowany do nasłuchiwania na innym porcie? W takiej sytuacji UFW musi zezwolić na połączenie z tym portem. Zakładając, że serwer SSH nasłuchuje na porcie 1234, użyj następującego polecenia:

Włączanie UFW

Choć reguły UFW zostały ustalone, nie przyniosą żadnego skutku, dopóki UFW nie zostanie aktywowany. Domyślnie UFW jest wyłączony, co oznacza, że mimo zadeklarowania reguł, nie będą one egzekwowane. Aby włączyć UFW, uruchom następujące polecenie:

UFW może wyświetlić ostrzeżenie o zakłóceniu istniejących połączeń SSH. Ponieważ połączenia SSH zostały skonfigurowane jako dozwolone, włączenie UFW nie spowoduje żadnych zakłóceń. Aby zobaczyć, jakie reguły są ustawione, uruchom następujące polecenie:

Zezwalanie na różne połączenia

W tym momencie UFW powinien być wyposażony w inne reguły, aby zapewnić stabilne działanie. Połączenia, które mają być dozwolone, zależą od Twoich konkretnych potrzeb. Pokazano już, jak nakazać UFW zezwalanie na połączenia na podstawie nazwy usługi lub numeru portu.

Oto kilka innych portów, które bardzo często są otwarte:

  • SSH (port 22): Jest to domyślny port skonfigurowany dla połączeń SSH.
  • HTTP (port 80): Jest to domyślny port używany przez nieszyfrowane serwery WWW.
  • HTTPS (port 443): Jest to domyślny port używany przez szyfrowane serwery WWW.

Aby włączyć połączenia SSH, uruchom jedno z następujących poleceń:

Następnie, aby włączyć połączenia HTTP, uruchom jedno z następujących poleceń:

Aby włączyć połączenia HTTPS, uruchom jedno z następujących poleceń:

Zakres portów

Do tej pory pokazaliśmy, jak zezwolić na określony port. Co jeśli istnieje potrzeba zezwolenia na zakres portów? Deklarowanie każdego portu w UFW jest dość nieefektywne. Niektóre aplikacje korzystają z wielu portów. Na szczęście UFW umożliwia zadeklarowanie zakresu portów. Aby to zrobić, użyj następującej struktury polecenia:

Poniższy przykład włącza połączenia X11, które używają portów 6000 do 6007:

Zaleca się deklarowanie protokołów, gdy tylko jest to możliwe. Jednak w większości przypadków nie jest to konieczne i wszystko będzie działać poprawnie.

Określone adresy IP

Podczas korzystania z UFW możliwe jest również filtrowanie połączeń według określonych adresów IP. Domyślnie UFW blokuje połączenia z dowolnego adresu IP. Możliwe jest zadeklarowanie zezwolenia na połączenie z określonych adresów IP. Aby zezwolić na połączenie z adresu IP, użyj następującej struktury polecenia:

Możesz również zadeklarować określone porty, z którymi dany adres IP może się łączyć. Aby to zrobić, dodaj to any port a następnie numer portu do polecenia:

Podsieci

Jeśli zachodzi potrzeba zezwolenia na podsieć adresów IP, można to zrobić za pomocą notacji CIDR. W tym przykładzie UFW zezwoli na połączenia z adresów IP z zakresu od 203.0.113.1 do 203.0.113.254:

Podobnie jak w poprzednim kroku, możliwe jest również określenie portu, z którym te adresy IP mogą się łączyć:

Łączenie z określonym interfejsem sieciowym

W środowisku serwerowym do systemu może być podłączonych wiele interfejsów sieciowych. Korzystając z UFW, można określić, że dana reguła ma zastosowanie tylko do określonego interfejsu sieciowego. Najpierw sprawdź wszystkie interfejsy sieciowe podłączone do serwera. Głównym punktem uwagi jest nazwa docelowego interfejsu sieciowego:

 firewall with UFW on Ubuntu 18.04. 4

W naszym przypadku istnieje tylko jeden interfejs sieciowy ens3, który łączy się z publicznym Internetem. Aby zezwolić na połączenia przychodzące z tego interfejsu sieciowego, użyj następującej struktury polecenia:

Możliwe jest również zdefiniowanie portu, do którego może trafiać ruch pochodzący z interfejsu sieciowego:

Odrzucanie połączenia

Zgodnie z domyślną konfiguracją, UFW odrzuci połączenie z dowolnego źródła (z wyjątkiem zadeklarowanych wyjątków). Jest to zalecany sposób korzystania z UFW. Może być jednak wymagane zablokowanie określonych połączeń z określonego źródłowego adresu IP lub podsieci. Być może domyślne zachowanie UFW jest ustawione na zezwalanie na wszystkie połączenia (niezalecane).

Aby odrzucić połączenie z określonych adresów IP, UFW wymaga reguł odrzucania. Pisanie reguł odrzucania jest dość proste. Weź dowolną regułę zezwalania, zamień słowo „allow” na „deny” i voila! Staje się ona regułą odrzucania.

Spójrz na poniższy przykład. Aby odrzucić dowolne połączenie HTTP, użyj następującej reguły odrzucania:

Aby odrzucić połączenie z 203.0.113.1, użyj następującej reguły odrzucania:

Usuwanie reguł

Wszystko, czego do tej pory się nauczyliśmy, to jak tworzyć reguły. Tak samo jak reguły są tworzone, mogą być również usuwane. W przypadku UFW istnieją dwa konkretne sposoby na usunięcie reguły.

  • Usuwanie reguły według numeru reguły

To najprostszy sposób na usunięcie reguły UFW. Każda reguła w UFW ma swój numer. Poniższe polecenie wyświetli wszystkie reguły UFW wraz z ich numerami:

 firewall with UFW on Ubuntu 18.04. 3

Poniższe polecenie usunie regułę określoną przez numer reguły:

  • Usuwanie reguły według rzeczywistej reguły

To trudniejsza metoda usuwania reguły. Wymaga ręcznego określenia rzeczywistej reguły w celu jej usunięcia. W poniższym przykładzie UFW usunie regułę określoną przez allow http:

Reguła mogła również zostać określona przez allow 80. W takim przypadku poniższe polecenie ją usunie:

Usunięcie reguły spowoduje jej usunięcie zarówno dla IPv4, jak i IPv6.

Sprawdzanie statusu i reguł UFW

Niezbędne jest upewnienie się, czy UFW jest aktywny, czy nie. Aby określić status UFW, uruchom następujące polecenie:

 firewall with UFW on Ubuntu 18.04. 2

Jeśli status to „inactive” (nieaktywny), aktywuj go, wykonując krok Włączanie UFW powyżej. Jeśli jest aktywny, UFW zgłosi status „active” (aktywny) i wyświetli listę wszystkich aktywnych reguł.

Wyłączanie UFW

Jeśli z jakiegoś powodu nie będziesz używać UFW, wyłącz go za pomocą następującego polecenia:

Jeśli UFW jest wyłączony, wszystkie utworzone reguły nie są już aktywne. Reguły nie zostają jednak usunięte. Po ponownym włączeniu UFW wszystkie reguły staną się ponownie aktywne. Co jeśli obecna konfiguracja UFW jest chaotyczna? Zamiast usuwać reguły pojedynczo, można usunąć je wszystkie za pomocą jednego polecenia. Aby zresetować UFW, uruchom następujące polecenie:

 firewall with UFW on Ubuntu 18.04. 1

Pamiętaj, że nie zmieni to domyślnego zachowania UFW, które zostało skonfigurowane na początku.

Podsumowanie

Właściwa konfiguracja zapory sieciowej jest niezbędna do zapewnienia bezpieczeństwa i funkcjonalności. Powinna być skonfigurowana tak, aby zezwalać tylko na niezbędne połączenia przychodzące, jednocześnie ograniczając te niepotrzebne.

Jeśli chcesz zapoznać się z innymi rozwiązaniami zapór sieciowych, zajrzyj na nasz blog po dalsze materiały:

Miłego korzystania!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.