Wyszukiwanie w witrynie

Jak skonfigurować zaporę UFW na Ubuntu i Debianie


Prawidłowo działająca zapora ogniowa jest najważniejszą częścią pełnego bezpieczeństwa systemu Linux. Domyślnie dystrybucja Debiana i Ubuntu zawiera narzędzie konfiguracyjne zapory sieciowej o nazwie UFW (Uncomplicated Firewall), które jest najpopularniejszym i łatwym w użyciu narzędziem wiersza poleceń do konfigurowania i zarządzanie zaporą sieciową w dystrybucjach Ubuntu i Debian.

W tym artykule wyjaśnimy, jak zainstalować i skonfigurować zaporę sieciową UFW w dystrybucjach Ubuntu i Debian.

Warunki wstępne

Zanim zaczniesz czytać ten artykuł, upewnij się, że zalogowałeś się na serwer Ubuntu lub Debian za pomocą użytkownika sudo lub konta root. Jeśli nie masz użytkownika sudo, możesz go utworzyć, postępując zgodnie z poniższymi instrukcjami, jako użytkownik root.

adduser username
usermod -aG sudo username 
su - username
sudo whoami

Zainstaluj zaporę UFW na Ubuntu i Debianie

UFW (Nieskomplikowana zapora sieciowa) powinna być domyślnie zainstalowana w Ubuntu i Debianie, jeśli nie, zainstaluj ją za pomocą menedżera pakietów APT, używając następującego polecenia.

sudo apt install ufw

Sprawdź zaporę sieciową UFW

Po zakończeniu instalacji możesz sprawdzić status UFW, wpisując.

sudo ufw status verbose

Przy pierwszej instalacji zapora UFW jest domyślnie wyłączona, a wynik będzie podobny do poniższego.

Status: inactive

Włącz zaporę UFW

Możesz aktywować lub włączyć zaporę UFW za pomocą następującego polecenia, które powinno załadować zaporę i umożliwić jej uruchomienie podczas uruchamiania.

sudo ufw enable

Aby wyłączyć zaporę UFW, użyj następującego polecenia, które rozładuje zaporę i uniemożliwi jej uruchomienie podczas uruchamiania.

sudo ufw disable 

Domyślne zasady UFW

Domyślnie zapora UFW odrzuca wszystkie połączenia przychodzące i zezwala tylko na wszystkie połączenia wychodzące z serwerem. Oznacza to, że nikt nie będzie mógł uzyskać dostępu do Twojego serwera, chyba że specjalnie otworzysz port, a wszystkie usługi lub aplikacje działające na Twoim serwerze będą mogły uzyskać dostęp do sieci zewnętrznej.

Domyślne zasady zapory sieciowej UFW znajdują się w pliku /etc/default/ufw i można je zmienić za pomocą poniższego polecenia.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Profile aplikacji UFW

Podczas instalowania pakietu oprogramowania za pomocą menedżera pakietów APT będzie on zawierał profil aplikacji w katalogu /etc/ufw/applications.d, który definiuje usługę i przechowuje ustawienia UFW.

Możesz wyświetlić listę wszystkich dostępnych profili aplikacji na swoim serwerze za pomocą następującego polecenia.

sudo ufw app list

W zależności od instalacji pakietu oprogramowania w systemie dane wyjściowe będą wyglądać podobnie do poniższych:

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

Jeśli chcesz uzyskać więcej informacji o konkretnym profilu i zdefiniowanych regułach, możesz użyć poniższego polecenia.

sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

Włącz IPv6 z UFW

Jeśli Twój serwer jest skonfigurowany z IPv6, upewnij się, że Twój UFW jest skonfigurowany z obsługą IPv6 i IPv4. Aby to sprawdzić, otwórz plik konfiguracyjny UFW za pomocą ulubionego edytora.

sudo vi /etc/default/ufw

Następnie upewnij się, że „IPV6” jest ustawiony na „tak” w pliku konfiguracyjnym, jak pokazano.

IPV6=yes

Zapisz i wyjdź. Następnie zrestartuj zaporę za pomocą następujących poleceń:

sudo ufw disable
sudo ufw enable

Zezwalaj na połączenia SSH na UFW

Jeśli do tej pory włączyłeś zaporę UFW, blokowałaby ona wszystkie połączenia przychodzące, a jeśli jesteś połączony z serwerem przez SSH ze zdalnej lokalizacji, nie będziesz już mógł połączyć się z nim ponownie.

Włączmy połączenia SSH z naszym serwerem, aby temu zapobiec, używając następującego polecenia:

sudo ufw allow ssh

Jeśli używasz niestandardowego portu SSH (na przykład portu 2222), musisz otworzyć ten port w zaporze UFW za pomocą następującego polecenia.

sudo ufw allow 2222/tcp

Aby zablokować wszystkie połączenia SSH, wpisz następujące polecenie.

sudo ufw deny ssh/tcp
sudo ufw deny 2222/tcp  [If using custom SSH port]

Włącz określone porty na UFW

Możesz także otworzyć określony port w zaporze, aby umożliwić połączenia za jego pośrednictwem z określoną usługą. Na przykład, jeśli chcesz skonfigurować serwer WWW nasłuchujący na porcie 80 (HTTP) i 443 (HTTPS >) domyślnie.

Poniżej znajduje się kilka przykładów zezwalania na połączenia przychodzące do usług Apache.

Otwórz port 80 HTTP na UFW
sudo ufw allow http     [By service name]
sudo ufw allow 80/tcp   [By port number]
sudo ufw allow 'Apache' [By application profile]
Otwórz port 443 HTTPS na UFW
sudo ufw allow https
sudo ufw allow 443/tcp
sudo ufw allow 'Apache Secure'

Zezwalaj na zakresy portów na UFW

Zakładając, że masz aplikacje, które chcesz uruchamiać na różnych portach (5000-5003), możesz dodać wszystkie te porty za pomocą następujących poleceń.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

Zezwalaj na określone adresy IP

Jeśli chcesz zezwolić na połączenia na wszystkich portach z określonego adresu IP 192.168.56.1, musisz podać przed adresem IP.

sudo ufw allow from 192.168.56.1

Zezwalaj na określone adresy IP na określonym porcie

Aby zezwolić na połączenie na określonym porcie (np. porcie 22) z komputera domowego o adresie IP 192.168.56.1, musisz dodać dowolny port< i numer portu po adresie IP, jak pokazano.

sudo ufw allow from 192.168.56.1 to any port 22

Zezwalaj podsieciom sieciowym na określony port

Aby umożliwić połączenia dla określonych adresów IP z zakresu od 192.168.1.1 do 192.168.1.254 do portu 22 (SSH) , uruchom następujące polecenie.

sudo ufw allow from 192.168.1.0/24 to any port 22

Zezwalaj na określony interfejs sieciowy

Aby zezwolić na połączenia z określonym interfejsem sieciowym eth2 dla określonego portu 22 (SSH), uruchom następujące polecenie.

sudo ufw allow in on eth2 to any port 22

Odmawiaj połączeń na UFW

Domyślnie wszystkie połączenia przychodzące są blokowane, chyba że specjalnie otworzyłeś połączenie na UFW. Na przykład otworzyłeś porty 80 i 443, a Twój serwer WWW jest atakowany z nieznanej sieci 11.12.13.0/24.

Aby zablokować wszystkie połączenia z tego konkretnego zakresu sieci 11.12.13.0/24, możesz użyć następującego polecenia.

sudo ufw deny from 11.12.13.0/24

Jeśli chcesz blokować połączenia tylko na portach 80 i 443, możesz użyć poniższych poleceń.

sudo ufw deny from 11.12.13.0/24 to any port 80
sudo ufw deny from 11.12.13.0/24 to any port 443

Usuń reguły UFW

Istnieją 2 sposoby usuwania reguł UFW: według numeru reguły i faktycznej reguły.

Aby usunąć reguły UFW za pomocą numeru reguły, najpierw musisz wyświetlić listę reguł według numerów za pomocą poniższego polecenia.

sudo ufw status numbered
Przykładowe wyjście
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

Aby usunąć regułę numer 1, użyj następującego polecenia.

sudo ufw delete 1

Druga metoda polega na usunięciu reguły za pomocą rzeczywistej reguły, na przykład aby usunąć regułę, należy podać numer portu z protokołem, jak pokazano.

sudo ufw delete allow 22/tcp

Zasady pracy na sucho UFW

Możesz uruchamiać dowolne polecenia ufw bez wprowadzania jakichkolwiek zmian w zaporze systemowej, używając flagi --dry-run. To po prostu pokazuje zmiany, które powinny nastąpić.

sudo ufw --dry-run enable

Zresetuj zaporę UFW

Z tego czy innego powodu, jeśli chcesz usunąć/zresetować wszystkie reguły zapory sieciowej, wpisz następujące polecenia, cofnie to wszystkie zmiany i zacznie od nowa.

sudo ufw reset
sudo ufw status

Zaawansowana funkcjonalność UFW

Zapora sieciowa UFW może zrobić wszystko, co robi iptables. Można to zrobić za pomocą różnych zestawów plików reguł, które są niczym innym jak prostymi plikami tekstowymi iptables-restore.

Strojenie zapory UFW lub dodawanie dodatkowych poleceń iptables nie jest dozwolone za pomocą polecenia ufw, wystarczy jedynie zmienić następujące pliki tekstowe

  • /etc/default/ufw: Główny plik konfiguracyjny z predefiniowanymi regułami.
  • /etc/ufw/before[6].rules: W tym pliku reguły są obliczane przed dodaniem za pomocą polecenia ufw.
  • /etc/ufw/after[6].rules: W tym pliku reguły są wyliczane po dodaniu komendą ufw.
  • /etc/ufw/sysctl.conf: ten plik służy do dostrajania sieci jądra.
  • /etc/ufw/ufw.conf: ten plik włącza ufw podczas uruchamiania.

Otóż to! UFW to doskonały interfejs dla iptables z przyjaznym dla użytkownika interfejsem umożliwiającym definiowanie złożonych reguł za pomocą jednego polecenia ufw.

Jeśli masz jakieś pytania lub przemyślenia na temat tego artykułu ufw, skorzystaj z poniższego formularza komentarza, aby się z nami skontaktować.