Wstęp
Firewall to kluczowy element zabezpieczeń w świecie technologii informatycznych, który pełni istotną rolę w ochronie systemów komputerowych przed nieautoryzowanym dostępem. Działa jako bariera pomiędzy wewnętrzną siecią komputerową a zewnętrznym światem, kontrolując ruch sieciowy na podstawie określonych zasad. W systemie Debian 11.6, jednym z najpopularniejszych dystrybucji Linuxa, firewall jest niezbędnym narzędziem do zarządzania bezpieczeństwem. Najważniejszym narzędziem do konfiguracji firewalla w systemach opartych na Linuxie są tabele IP, czyli iprables. To elastyczny i potężny system zarządzania regułami firewalla, który pozwala administratorom na tworzenie złożonych zestawów zasad dla ruchu sieciowego. Pomimo zaawansowanych funkcji, iprables może być skomplikowane w użyciu, zwłaszcza dla początkujących. W związku z tym skupimy się na prostszym narzędziu do zarządzania firewallami – Uncomplicated Firewall (UFW). UFW to intuicyjny interfejs do iprables, który ułatwia konfigurację zabezpieczeń sieciowych, nie tracąc przy tym możliwości dostosowania do potrzeb. UFW jest łatwym w obsłudze narzędziem, które ułatwia konfigurację firewalla w systemie Debian 11.6.
Instalacja UFW
Jeśli UFW nie jest jeszcze zainstalowany na Twoim systemie, zainstaluj go, wykonując następujące polecenie:
apt-get install ufw
Aby włączyć UFW, wpisz:
ufw enable
Aby sprawdzić status UFW i wyświetlić aktualne reguły, wpisz:
ufw status verbose
Zablokowanie pingów przy pomocy UFW
W systemie Debian 11.6, domyślnie UFW pozwala na przychodzące pingi (ICMP echo request), nawet gdy cały ruch wchodzący jest zablokowany. Jeśli zdecydujesz się zablokować pingi, oto, co musisz zrobić:
Otwórz plik konfiguracyjny UFW, używając swojego ulubionego edytora tekstu. W tym przypadku użyjemy nano:
nano /etc/ufw/before.rules
Znajdź sekcję zaczynającą się od słów „Uncomment the following line to enable ICMP packet filtering:”. Sekcja ta obejmuje konfigurację filtrowania pakietów ICMP.
Znajdź linię, która wygląda tak:
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
Zmień ACCEPT
na DROP
, aby zablokować przychodzące pingi. Po zmianie linia powinna wyglądać następująco:
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
można również zastosować REJECT
zamiast DROP
, aby odrzucić przychodzące pingi. Oto, jak to zrobić:
-A ufw-before-input -p icmp --icmp-type echo-request -j REJECT
Różnica pomiędzy DROP i REJECT
Różnica między DROP
i REJECT
jest następująca:
- DROP: Gdy używamy
DROP
, firewall po prostu odrzuca (ignoruje) przychodzące pingi, nie wysyłając żadnej informacji zwrotnej do komputera, z którego wysłano żądanie. W rezultacie,DROP
jest bardziej dyskretnym sposobem blokowania, który nie ujawnia, że Twój system aktywnie blokuje pingi. - REJECT: Zamiast odrzucać pingi bez odpowiedzi,
REJECT
informuje komputer wysyłający, że jego żądanie nie może być zrealizowane. W przypadku pingów, UFW wygeneruje pakiet ICMP destination unreachable, sygnalizując źródłu, że żądanie zostało odrzucone. ChoćREJECT
sprawia, że system jest bardziej widoczny, może być przydatny, gdy chcesz pokazać innym użytkownikom sieci, że Twoje zabezpieczenia aktywnie odrzucają żądania.
Wybór między DROP
a REJECT
zależy od Twoich potrzeb związanych z bezpieczeństwem i prywatnością. W większości przypadków DROP
jest preferowanym rozwiązaniem, gdyż sprawia, że system jest mniej widoczny dla potencjalnych intruzów.
Zapisz zmiany i zamknij plik. W przypadku nano, wcisnij kombinację klawiszy Ctrl + X
, następnie Y
, a na koniec klawisz Enter
.
Przeładuj UFW, aby zastosować nowe ustawienia:
ufw reload
Teraz firewall UFW będzie blokował przychodzące pingi. Aby sprawdzić, czy blokowanie działa poprawnie, możesz spróbować wysłać ping do swojego systemu Debian 11.6 z innego komputera i sprawdzić, czy nie otrzymasz odpowiedzi.
W przypadku, gdy po załadowaniu nowych ustawień poprzez ufw reload, blokowanie pingów nadal nie działa, może być konieczne zresetowanie systemu. Restartowanie systemu powoduje, że wszystkie procesy, w tym również UFW, są uruchamiane od nowa, co może pomóc w rozwiązaniu problemu. Aby zresetować system, wpisz:
reboot
Odblokowanie ruchu przychodzącego dla konkretnych usług
Domyślnie cały ruch sieciowy przychodzący jest zablokowany, z wyjątkiem odpowiedzi na ruch wywołany przez wewnętrzne aplikacje. To oznacza, że dopóki nie zostaną zdefiniowane odpowiednie reguły, żaden zewnętrzny ruch sieciowy nie będzie miał dostępu do Twojego systemu.
Aby umożliwić zdalne połączenia poprzez protokół SSH, należy dodać regułę umożliwiającą ruch na porcie 22. Aby to zrobić, wykonaj następujące kroki:
ufw allow ssh
lub podając numer portu oraz protokół:
ufw allow 22/tcp
To umożliwi połączenia SSH z dowolnego adresu IP.
Aby umożliwić ruch HTTP, dodać regułę dla portu 80, wpisując:
ufw allow 80/tcp
Aby umożliwić ruch HTTPS, dodać regułę dla portu 443, wpisując:
ufw allow 443/tcp
Po wykonaniu tych kroków, Twoje zabezpieczenia firewalla UFW będą umożliwiać połączenia SSH, HTTP i HTTPS.
Warto zwrócić uwagę, że w powyższych przykładach zostały użyte domyślne numery portów dla protokołów SSH, HTTP i HTTPS. Można jednak zmienić numery portów, jeśli na przykład serwer HTTP działa na innym porcie niż domyślny port 80. W takim przypadku należy podać odpowiedni numer portu w komendzie UFW.
W przypadku, gdy potrzebujesz odblokować dostęp dla innego portu lub protokołu, możesz skorzystać z tej samej składni komendy, podając odpowiednie numery portów lub nazwy protokołów. Na przykład, aby umożliwić dostęp do serwera FTP, należy wpisać:
ufw allow ftp
lub jeśli FTP działa na niestandardowym porcie, na przykład 2121, to:
ufw allow 2121/tcp
Dzięki tym prostym krokom możesz skonfigurować UFW w taki sposób, aby chronił Twój system przed nieautoryzowanym dostępem, a jednocześnie umożliwiał zdalne połączenia do wybranych aplikacji i usług.
Odblokowanie ruchu przychodzącego dla adresów IP
Aby odblokować ruch przychodzący dla konkretnego adresu IP lub zakresu adresów IP, można użyć komendy UFW w następujący sposób:
Aby odblokować ruch przychodzący z określonego adresu IP, wpisz:
ufw allow from <adres_IP>
Zastąp <adres_IP>
adresem IP, z którego chcesz umożliwić ruch.
Na przykład, aby odblokować ruch przychodzący z adresu IP 192.168.0.100, wpisz:
ufw allow from 192.168.0.100
Aby odblokować ruch przychodzący z zakresu adresów IP, wpisz:
ufw allow from <adres_początkowy> to <adres_końcowy>
Zastąp <adres_początkowy>
adresem IP, od którego chcesz zacząć odblokowywanie ruchu, a <adres_końcowy>
adresem IP, na którym chcesz zakończyć odblokowywanie ruchu.
Na przykład, aby odblokować ruch przychodzący z zakresu adresów IP od 192.168.0.100 do 192.168.0.200, wpisz:
ufw allow from 192.168.0.100 to 192.168.0.200
Możesz również dodać protokół i port do reguły, aby ograniczyć ruch tylko do wybranej usługi. Na przykład, aby umożliwić ruch przychodzący z zakresu adresów IP 192.168.0.100 do 192.168.0.200 tylko dla protokołu SSH, wpisz:
ufw allow from 192.168.0.100 to 192.168.0.200 proto tcp port 22
Po wykonaniu tych kroków, ruch przychodzący z określonego adresu IP lub zakresu adresów IP zostanie odblokowany przez UFW.
Usuwanie reguł firewalla UFW
Można również usunąć regułę, która umożliwia ruch przychodzący z określonego adresu IP lub zakresu adresów IP, używając komendy delete
. Na przykład, aby usunąć regułę umożliwiającą ruch przychodzący z adresu IP 192.168.0.100, wpisz:
ufw delete allow from 192.168.0.100
lub aby usunąć regułę umożliwiającą ruch przychodzący z zakresu adresów IP od 192.168.0.100 do 192.168.0.200, wpisz:
ufw delete allow from 192.168.0.100 to 192.168.0.200
Blokowanie ruchu wychodzącego
Aby defaultowo zablokować cały ruch wychodzący i odblokować tylko ruch dla wybranych usług takich jak SSH, HTTP, HTTPS i DNS, wykonaj następujące kroki:
Ustaw domyślną politykę dla wychodzącego ruchu na blokowanie, wpisując:
ufw default deny outgoing
To spowoduje zablokowanie wszelkiego ruchu wychodzącego z Twojego systemu, chyba że zostanie on specjalnie odblokowany przez reguły UFW.
Odblokuj ruch wychodzący dla SSH, HTTP, HTTPS oraz DNS, wpisując:
ufw allow out ssh
ufw allow out http
ufw allow out https
ufw allow out dns
Dlaczego DNS przy SSH/HTTP/HTTPS musi być odblokowany? Serwisy takie jak SSH, HTTP i HTTPS korzystają z DNS do rozwiązywania nazw domenowych na adresy IP. Jeśli ruch DNS jest zablokowany, to komunikacja pomiędzy Twoim systemem a serwerem może być zakłócona lub nawet niemożliwa do ustanowienia. Dlatego ważne jest, aby odblokować ruch DNS, aby umożliwić prawidłowe funkcjonowanie tych usług.
Po wykonaniu tych kroków, Twoje zabezpieczenia firewalla UFW będą blokować cały ruch wychodzący z Twojego systemu z wyjątkiem wybranych usług SSH, HTTP, HTTPS i DNS.
Podsumowanie
Podsumowując, konfiguracja firewalla UFW w systemie Debian 11.6 może pomóc w ochronie Twojego systemu przed nieautoryzowanym dostępem oraz niepożądanym ruchem sieciowym. Dzięki prostym i czytelnym poleceniom UFW, zarówno początkujący, jak i doświadczeni administratorzy systemów mogą łatwo dostosować reguły firewalla do swoich potrzeb.
W artykule omówiono różne aspekty konfiguracji UFW, takie jak blokowanie pingów, umożliwianie połączeń do wybranych usług, odblokowywanie ruchu przychodzącego z konkretnego adresu IP lub zakresu adresów IP oraz kontrolowanie ruchu wychodzącego.
Pamiętaj, że bezpieczeństwo systemu to proces ciągłego dostosowywania i monitorowania. Konfiguracja firewalla UFW to tylko jeden z elementów, które można zastosować w celu zabezpieczenia systemu Debian 11.6. Regularne aktualizacje oprogramowania, stosowanie zasad najmniejszych uprawnień oraz utrzymanie zasad higieny bezpieczeństwa w pracy z systemem komputerowym są kluczowe dla zapewnienia optymalnego poziomu ochrony.
Miejmy nadzieję, że dzięki wskazówkom zawartym w tym artykule, konfiguracja firewalla UFW w systemie Debian 11.6 stanie się łatwiejsza i bardziej efektywna. Zapewnienie bezpieczeństwa systemu komputerowego to nie tylko obowiązek, ale także ważny krok na drodze do tworzenia bezpiecznego i niezawodnego środowiska pracy oraz ochrony prywatności użytkowników.
Witam. Dotyczy UFW. Rozumiem, że mam zablokować ruch wychodzący poprzez ufw default deny outgoing i otworzyć ruch tylko dla wybranych portów i usług (HTTP, HTTPS, SSH i DNS). A co z ruchem przychodzącym? Powinien zostać też zablokowany poprzez ufw default deny incoming. Pozdrawiam Maciej