Poradniki > Jak ustawić i skonfigurować Firewall UFW na Ubuntu 18.04

Jak ustawić i skonfigurować Firewall UFW na Ubuntu 18.04

Zobacz poradnik tutaj

Opublikowany: 09 września 2020

Firewall Ubuntu


Wprowadzenie

U podstawy każdego Serwera Cloud zawsze znajduje się narzędzie zabezpieczające, które opierając się na pewnych zasadach, umożliwia komunikację do serwera i na zewnątrz. Ten składnik oprogramowania nazywa się zaporą ogniową i stanowi pierwszą barierę bezpieczeństwa, która uniemożliwia nieautoryzowanym użytkownikom dostęp do serwera lub po prostu zapewnia, że ​​określona usługa nie jest dostępna spoza komputera. 

UFW, skrót od Uncomplicated Firewall, jest jednym z najczęściej używanych programów do zarządzania firewallem w systemie Linux z wiersza poleceń w prosty i intuicyjny sposób.

W tym poradniku dowiesz się, jak prawidłowo skonfigurować UFW na serwerze Ubuntu 18.04.

Aby rozpocząć, połącz się ze swoim serwerem za pośrednictwem połączenia SSH. Jeśli jeszcze tego nie zrobiłeś, postępuj zgodnie z naszym przewodnikiem, aby bezpiecznie połączyć się z protokołem SSH . W przypadku serwera lokalnego przejdź do następnego kroku i otwórz terminal swojego serwera.

Instalacja UFW Firewall

UFW to oprogramowanie instalowane fabrycznie w większości dystrybucji Linuksa.
By sprawdzić czy jest zainstalowany UFW wpisz:

$ sudo ufw status 

W większości przypadków będzie ono zainstalowane lecz wyłączone. W takim przypadku otrzymasz informację Status: "inactive". 

Jeśli jednak jeszcze nie masz go w systemie, możesz go zainstalować, wpisując polecenie:

$ sudo apt-get install ufw  

UFW może działać, zarządzając zarówno adresami IPV4, które są domyślnie włączone, jak i IPV6, jeśli to konieczne. Jeśli chcesz również włączyć IPV6, zmodyfikuj tę opcję w pliku „/ etc / default / ufw”.

Aby zastosować tę zmianę, otwórz plik w edytorze nano:

$ sudo nano /etc/default/ufw

Następnie ustaw pozycję „IPV6” na yes.

Enable IPV6Po zakończeniu edycji zapisz i zamknij dokument (CTRL + X / Y / Enter).

Zmiana zacznie obowiązywać od następnego restartu UFW. Aby natychmiast zrestartować zaporę i wprowadzić zmiany w życie, wpisz:

$ sudo ufw reload 

Podstawowa konfiguracja firewalla

Na wczesnym etapie wszystkie rodzaje komunikacji z zewnątrz do serwera w chmurze powinny zostać zablokowane. Blokując je, odblokowanie komunikacji z innymi maszynami zidentyfikowanymi na podstawie ich adresu IP lub na określonych portach lub usługach będzie później łatwiejsze.

W ten sam sposób włącz ruch wychodzący dla serwera, aby upewnić się, że aplikacje działające na serwerze mogą wysyłać zapytania do usług zewnętrznych.

Aby zablokować jakąkolwiek formę komunikacji W KIERUNKU serwera należy wpisać:

$ sudo ufw default deny incoming 

Aby zezwolić na jakąkolwiek formę komunikacji wychodzącej Z serwera należy wpisać:

$ sudo ufw default allow outgoing
Initial firewall settings

Włączanie komunikacji SSH

Interakcja z serwerem często odbywa się za pośrednictwem połączenia SSH. Jest to jednak jedno z połączeń przychodzących, które zostało zablokowane, właśnie dlatego, że jest próba komunikacji W KIERUNKU SERWERA.

Dlatego konieczne jest dodanie tego typu połączenia pomiędzy regułami UFW , które pozwalają na nadpisanie standardowych polityk zdefiniowanych wcześniej dla firewalla.

Aby włączyć połączenia SSH z serwerem, wpisz jedno z dwóch poleceń:

$ sudo ufw allow ssh
$ sudo ufw allow 22

Powodem, dla którego można użyć dwóch różnych poleceń, aby uzyskać ten sam identyczny efekt, jest fakt, że w pliku konfiguracyjnym UFW istnieje powiązanie między słowem „ssh” a jego odpowiednim portem (22) – należy podać port dla którego masz ustawioną konfigurację połączenia SSH. Listę wszystkich tych powiązań można zobaczyć otwierając plik „/ etc / services”.

$ sudo nano /etc/services
Association of services and doors

Włączanie portu lub połączenia z adresu IP

Nie ma domyślnej usługi skojarzonej z każdym portem. W związku z tym, aby zezwolić na ruch na innym porcie niż standardowe, wystarczy wpisać:

$ sudo ufw allow port_number

Uwaga: Zastąp „port_number” numerem portu do odblokowania.

Możesz także chcieć włączyć ruch MIĘDZY swoim serwerem a innym komputerem (komunikację dwukierunkową), dodając regułę ad hoc.

Aby zaakceptować cały ruch z adresu IP, niezależnie od portu komunikacyjnego, wystarczy wpisać:

$ sudo ufw allow from ip_address 

Jeśli chcesz ograniczyć komunikację tego komputera do jednego portu na serwerze, użyj następującego polecenia:

$ sudo ufw allow from ip_address to any port port_number

Uwaga: Zastąp parametr „ip_address” adresem IP maszyny, która ma być autoryzowana, a „port_number” portem, który ma być „odblokowany".

Na przykład, aby umożliwić komputerowi z adresem IP „87.197.5.125” połączenie SSH z serwerem, wpisz:

$ sudo ufw allow from 87.197.5.125 to any port 22 

Aby włączyć zakres portów, definiując typ komunikacji (TCP lub UDP), polecenie do wykonania jest zgodne z następującą składnią:

$ sudo ufw allow start_port:end_port/tcp
$ sudo ufw allow start_port:end_port/udp 

Uwaga: Zastąp „start_port” numerem portu, od którego zaczyna się interwał, a „end_port” numerem ostatniego przyznanego portu.

Jeśli wszystko poszło dobrze, UFW powiadomi za pośrednictwem wiadomości, że reguła została pomyślnie dodana.

Port range added

Włączenie zapory UFW podczas uruchamiania

Właśnie dlatego, że jest to pierwsze narzędzie bezpieczeństwa między Twoim serwerem a resztą Internetu, ważne jest, aby UFW była zawsze wykonywana podczas uruchamiania systemu.

Aby włączyć automatyczne uruchamianie zapory, po prostu uruchom polecenie:

$ sudo ufw enable

Uwaga: To polecenie może spowodować tymczasowe rozłączenie SSH. Dlatego przed jego wykonaniem upewnij się, że włączyłeś połączenie SSH między regułami zapory, jak pokazano powyżej. 

Po wykonaniu polecenia zostaniesz powiadomiony o tym, co zostało zgłoszone za pomocą komunikatu. Mimo wszystko wpisz „y” i naciśnij „Enter".

UFW enable

Zezwalanie na żądania HTTP, HTTPS i FTP

HTTP i HTTPS to protokoły, które komunikują się na określonych portach: tak jak SSH wymaga portu 22, HTTP używa portu 80, a HTTPS używa portu 443.

Aby zezwolić na komunikację HTTP, wpisz jedno z dwóch poleceń:

$ sudo ufw allow http
$ sudo ufw allow 80

Podobnie w przypadku protokołu HTTPS wpisz:

$ sudo ufw allow https
$ sudo ufw allow 443

Zamiast tego FTP jest protokołem przesyłania plików opartym na porcie 21. Aby włączyć ten typ komunikacji, wykonaj jedno lub drugie z następujących poleceń (bez różnicy):

$ sudo ufw allow ftp
$ sudo ufw allow 21/tcp

Blokowanie istniejącego połączenia

Jeśli, zgodnie z zaleceniami na początku przewodnika, wszystkie połączenia z Twoim serwerem zostały odrzucone, w tym momencie będzie można komunikować się z Twoim serwerem tylko przez określone porty dodane między regułami.

Jednak czasami odmowa określonych połączeń na określonym porcie lub w oparciu o adres IP może być przydatna, ponieważ serwer może zostać stamtąd zaatakowany. W takim przypadku użyj tej samej składni, co przy włączaniu komunikacji, zastępując jednak opcję zezwalania na odmowę.

Zakładając, że chcesz na przykład odmówić połączenia HTTP, po prostu wpisz polecenie:

$ sudo ufw deny http
Example cancellation rules

Podobnie, aby nie zezwolić na komunikację z określonej maszyny, po prostu odmów jej dostępu przez:

$ sudo ufw deny from ip_address

Uwaga: Zastąp „ip_address” adresem IP maszyny, która ma być blokowana.

Przeglądanie i usuwanie istniejących reguł

Aby wyświetlić podsumowanie reguł zdefiniowanych dla UFW na Twoim serwerze, po prostu wywołaj polecenie:

$ sudo ufw status numbered 
Rules List

To polecenie wyświetla listę reguł utworzonych dla zapory, z których każda jest identyfikowana za pomocą unikalnego numeru.

Aby usunąć regułę, po prostu użyj polecenia usuń.

Na przykład, aby usunąć regułę komunikacji HTTPS (numer 2), polecenie do wykonania wyglądałoby tak:

$ sudo ufw delete 2 

Przed usunięciem zostaniesz poproszony o potwierdzenie. Jeśli masz pewność, wpisz „y”, a następnie „Enter”. W przypadku pomyłki wpisz „n”, aby anulować operację.

Ta operacja anuluje komunikację HTTPS dla IPV4, ale nie dla IPV6 (która na poprzednim zrzucie ekranu jest reprezentowana przez regułę numer 6). W rzeczywistości wszystkie wcześniej utworzone reguły zostały wygenerowane zarówno dla IPV4, jak i IPV6: gdzie prawa „(v6)” są regułami dla protokołu IPV6.

Aby usunąć regułę dla IPV6, ponownie zapoznaj się z listą istniejących reguł, ponieważ jej kod identyfikacyjny zostanie zmieniony.

Włączanie, wyłączanie lub przywracanie UFW

Wcześniej pokazano, jak włączyć UFW, aby uruchomić serwer za pomocą polecenia:

$ sudo ufw ufw enable 

Aby usunąć go z automatycznego startu, po prostu użyj polecenia wyłącz:

$ sudo ufw ufw disable

Jeśli musisz zresetować ustawienia UFW, a następnie usunąć wszelkie reguły i zasady akceptacji / odmowy połączenia, użyj polecenia resetowania.

$ sudo ufw ufw reset

Dziennik zapory UFW

Ze względów bezpieczeństwa może być konieczne włączenie rejestrowania danych UFW, aby sprawdzić, jakie połączenia zostały nawiązane z Twoim serwerem i zweryfikować poprawność definicji reguł.

Aby włączyć rejestrację danych, należy wykonać polecenie:

$ sudo ufw logging on

Natomiast by wyłączyć logowanie wpisz:

$ sudo ufw logging off

Dzienniki UFW można znaleźć w pliku „/var/log/ufw.log"

$ sudo nano /var/log/ufw.log 

Wnioski

Firewall jest bardzo ważnym komponentem w zarządzaniu i zabezpieczaniu Twojego Serwera Cloud. Włączając UFW, cała komunikacja do i z serwera Ubuntu Linux przechodzi przez to narzędzie, co może chronić Cię przed niechcianymi atakami i próbami połączenia ze strony nieautoryzowanych użytkowników.

Wskazane jest zwrócenie szczególnej uwagi na konfigurację Zapory UFW, ponieważ bezpieczeństwo serwera i poprawne działanie jego usług może zależeć od ustalonych reguł.