Ten artykuł pokazuje, jak zainstalować i używać UFW na Ubuntu 20.System 04 LTS.
Instalacja
UFW jest wstępnie zainstalowany w większości systemów Ubuntu. Jeśli kompilacja nie ma już zainstalowanego programu, możesz go zainstalować za pomocą menedżerów pakietów SNAP lub APT.$ sudo snap instaluj UFW
$ sudo apt instal UFW
Osobiście wolę korzystać z menedżera pakietów Apt, ponieważ Snap jest mniej popularny i nie chcę mieć tej dodatkowej złożoności. W chwili pisania tego tekstu wersja opublikowana dla UFW to 0.36 za 20.04 Wydanie.
Przychodzące vs. Ruch wychodzący
Jeśli jesteś początkującym w świecie tworzenia sieci, pierwszą rzeczą, którą musisz wyjaśnić, jest różnica między ruchem przychodzącym i wychodzącym.
Gdy instalujesz aktualizacje za pomocą apt-get, przeglądaj Internet lub sprawdzasz e-mail, to, co robisz, wysyłanie żądań „wychodzących” do serwerów, takich jak Ubuntu, Google itp. Aby uzyskać dostęp do tych usług, nie potrzebujesz nawet publicznego adresu IP. Zwykle przydzielany jest pojedynczy publiczny adres IP dla, powiedzmy, domowe połączenie szerokopasmowe, a każde urządzenie otrzymuje własny prywatny adres IP. Router obsługuje następnie ruch za pomocą czegoś znanego jako NAT lub translacja adresu sieciowego.
Szczegóły NAT i prywatnych adresów IP wykraczają poza zakres tego artykułu, ale wideo połączone powyżej jest doskonałym punktem wyjścia. Wracając do UFW, domyślnie UFW pozwoli na cały regularny ruch w sieci Web. Twoje przeglądarki, menedżerowie opakowań i inne programy wybierają losowy numer portu - zwykle liczba powyżej 3000 - i tak może śledzić swoje połączenia (y).
Kiedy uruchamiasz serwery w chmurze, zwykle są one dostarczane z publicznym adresem IP i powyższymi zasadami umożliwiania ruchu wychodzącego. Ponieważ nadal będziesz używać narzędzi, takich jak menedżerowie pakietów, które rozmawiają z resztą świata jako „klient”, UFW domyślnie to pozwala.
Zabawa zaczyna się od przychodzącego ruchu. Aplikacje, takie jak serwer OpensSh, którego używasz do zalogowania się do maszyny wirtualnej, słuchaj na określonych portach (takich jak 22) przychodzące żądania, podobnie jak inne aplikacje. Serwery internetowe wymagają dostępu do portów 80 i 443.
Jest to część zadania zapory, aby umożliwić określone aplikacje na słuchanie pewnego przychodzącego ruchu przy jednoczesnym blokowaniu wszystkich niepotrzebnych. Możesz mieć zainstalowany serwer bazy danych na maszynie wirtualnej, ale zwykle nie musi słuchać przychodzących żądań na interfejsie z publicznym adresem IP. Zwykle słucha ono interfejsu LOPBACK w celu uzyskania żądań.
W Internecie jest wiele botów, które nieustannie bombardują serwery z fałszywymi prośbami o brutalną drogę lub wykonanie prostego ataku na usługi. Dobrze skonfigurowana zapora powinna być w stanie zablokować większość tych shenaniganów za pomocą wtyczek stron trzecich, takich jak Fail2ban.
Ale na razie skupimy się na bardzo podstawowej konfiguracji.
Podstawowe użycie
Teraz, gdy masz zainstalowany UFW w swoim systemie, przyjrzymy się niektórym podstawowym zastosowaniom tego programu. Ponieważ reguły zapory są stosowane w całym systemie, poniższe polecenia są uruchamiane jako użytkownik root. Jeśli wolisz, możesz użyć sudo z odpowiednimi uprawnieniami do tej procedury.
# status UFW
Status: nieaktywny
Domyślnie UFW jest w stanie nieaktywnym, co jest dobrą rzeczą. Nie chcesz blokować całego przychodzącego ruchu na porcie 22, który jest domyślnym portem SSH. Jeśli jesteś zalogowany na zdalnym serwerze za pośrednictwem SSH i blokujesz port 22, zostaniesz zablokowany z serwera.
UFW ułatwia nam dziurę tylko dla OpenSsh. Uruchom poniższe polecenie:
root@testubuntu: ~# lista aplikacji UFW
Dostępne aplikacje:
OpenSsh
Zauważ, że nadal nie włączyłem zapory. Teraz dodamy OpenSsh do naszej listy dozwolonych aplikacji, a następnie włączamy zaporę ogniową. Aby to zrobić, wprowadź następujące polecenia:
# UFW pozwól OpenSsh
Zaktualizowano zasady
Zaktualizowano zasady (v6)
# UFW włącz
Polecenie może zakłócać istniejące połączenia SSH. Kontynuuj operację (y | n)? y.
Zapora jest teraz aktywna i włączona na uruchamianie systemu.
Gratulacje, UFW jest teraz aktywne i działa. UFW pozwala teraz OpenSSH słuchać tylko przychodzących żądań w porcie 22. Aby sprawdzić status zapory w dowolnym momencie, uruchom następujący kod:
# status UFW
Status: aktywny
Do działania z
-- ------ ----
OpenSSh zezwala gdziekolwiek
OpenSsh (v6) zezwól na dowolne miejsce (v6)
Jak widać, OpenSSH może teraz odbierać żądania z dowolnego miejsca w Internecie, pod warunkiem, że osiągnie je na porcie 22. Linia V6 wskazuje, że reguły są również stosowane dla IPv6.
Możesz oczywiście zakazać określonych zakresów IP lub zezwolić tylko na określony zakres IP, w zależności od ograniczeń bezpieczeństwa, w których pracujesz.
Dodawanie aplikacji
W przypadku najpopularniejszych aplikacji polecenie listy aplikacji UFW automatycznie aktualizuje swoją listę zasad podczas instalacji. Na przykład podczas instalacji serwera WWW Nginx zobaczysz następujące nowe opcje:
# apt Zainstaluj nginx
# Lista aplikacji UFW
Dostępne aplikacje:
Nginx pełny
Nginx http
Nginx https
OpenSsh
Śmiało i spróbuj eksperymentować z tymi zasadami. Zauważ, że możesz po prostu zezwolić na numery portów, zamiast czekać na wyświetlenie profilu aplikacji. Na przykład, aby umożliwić port 443 dla ruchu HTTPS, wystarczy użyć następującego polecenia:
# UFW pozwól 443
# status UFW
Status: aktywny
Do działania z
-- ------ ----
OpenSSh zezwala gdziekolwiek
443 Pozwól gdziekolwiek
OpenSsh (v6) zezwól na dowolne miejsce (v6)
443 (v6) pozwól na dowolne miejsce (v6)
Wniosek
Teraz, gdy masz sortowane podstawy UFW, możesz odkrywać inne potężne możliwości zapory, zaczynając od dopuszczania i blokowania zakresów IP. Posiadanie jasnych i bezpiecznych zasad zaporowych zapewni bezpieczeństwo i ochronę systemów.