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ć.