UFW: co to dokładnie jest?

13

Co to jest UFW? Można by pomyśleć, że jest to łatwe pytanie, ale im więcej źródeł czytam, tym mniej jasne staje się.

Akronim to skrót od Uncomplicated FireWall, tak jakby ufw faktycznie implementował zaporę ogniową. I rzeczywiście w wielu miejscach nazywa się to zaporą jako taką, na przykład w tym artykule .

Strona pomocy Ubuntu wiki na UFW mówi, że UFW jest narzędziem konfiguracyjnym dla iptables. (Z kolei strona wiki pomocy w zaporach ogniowych mówi, że iptables to baza reguł zapory ogniowej i że jest to również zapora ogniowa, tak jakby baza danych była zaporą ogniową, co oczywiście jest fałszywe. I oczywiście „iptables” to także nazwa programu).

Jeśli ufw jest narzędziem konfiguracyjnym, możemy spodziewać się, że będzie to program uruchamiany w celu skonfigurowania czegoś, a kiedy to zrobisz, wyjdziesz z konfiguracji, która została ustanowiona. Oto pozycja odpowiedzi na to pytanie: Czy nieskomplikowana FireWall (ufw) jest usługą?

Ale inne odpowiedzi na to pytanie nie zgadzają się - nie, to usługa. I rzeczywiście na moim komputerze 18.04 widzę, że ufw działa jako usługa! Dlaczego do cholery narzędzie konfiguracyjne działa jako usługa ?!

Co więcej, systemctl list-units --all --type=serviceprogramy ufw.serviceto loaded and active(a także exited?!) Jeszcze ufw statusprogramy inactive.

Co więc oznacza status ufw = nieaktywny?

  1. Czy „zapora ogniowa” (cokolwiek to jest) jest nieaktywna? Tak sugerowałby dokument podręcznika ufw dla „status”.

  2. Czy oznacza to, że reguły skonfigurowane w ufw są nieaktywne (ale inne skonfigurowane w iptables są aktywne)?

  3. Czy oznacza to, że ufw zaczął się przy starcie systemu, zaimplementował swoje reguły w ipconfig (lub gdziekolwiek się udają), aby działały, a teraz ufw nie ma już nic do roboty, więc jest nieaktywny?

Szczególnie interesujące: chcę postępować zgodnie z instrukcjami, które wymagają wydania niektórych poleceń iptables, ale obawiam się, że będą one powodować konflikt z aparatem ufw lub zostaną nadpisane.

gwideman
źródło
2
iptables to zapora ogniowa. Zawiera również reguły, ponieważ oczywiście musi, ale nazywanie go „bazą danych” nieco go rozciąga, ponieważ jądro nie zapewnia trwałości; ładowanie ich podczas rozruchu musi być obsługiwane przez jakieś narzędzie, takie jak ufw.
Jan Hudec
@JanHudec Widzę, że niektórzy mówią o iptables, jakby to była zapora ogniowa, ale o ile wiem, netfilter zapewnia funkcjonalność zapory ogniowej, a iptables podaje datę dla netfilter. Podoba mi się twój punkt widzenia, że ​​iptables przechowuje tylko dane w pamięci, a zatem „baza danych” również wprowadza w błąd.
gwideman
Osobiście uważam, że netfilter jest częścią iptables, ale mogę się mylić w tym drobnym punkcie.
Jan Hudec
Zanna zredagowała moje pytanie, aby uporządkować takie rzeczy jak adresy URL (dzięki!), Ale zastąpiła „UFW” dla wszystkich przypadków „ufw”. Teraz wierzę, że małe jest właściwy przypadek (jak pokazano w manpages.ubuntu.com/manpages/xenial/en/man8/ufw.8.html i wiki.ubuntu.com/UncomplicatedFirewall , ale nie jestem zainteresowany w edycji wojna z tym. Zanna, proszę, wróć do małych liter, jeśli kupisz moje dowody.
gwideman

Odpowiedzi:

21

ufw to front-end dla netfilter / iptables, mechanizmu Linux służącego do routingu i filtrowania ruchu internetowego.

ufw jest całkowicie opcjonalny i możliwe jest tworzenie zapory i tabel routingu bezpośrednio za pomocą poleceń iptables. Niektórzy ludzie wolą składnię ufw, która ma to nieco ułatwić.

ufw sam w sobie nie jest firewallem, jest narzędziem do ustawiania konfiguracji netfilter / iptables. Jest zarejestrowany jako usługa, ponieważ musi być uruchamiany przy każdym uruchomieniu komputera. Nie wierzę, że pozostanie w pamięci po wykonaniu tej konfiguracji. „ponowne uruchomienie” usługi po prostu ponownie uruchamia skrypty. Często zdarza się, że rzeczy w dystrybucjach Linuksa są rejestrowane jako usługi, mimo że są to jedynie skrypty uruchamiane podczas uruchamiania lub zamykania systemu, bez konieczności pozostawania pomiędzy nimi.

Jeśli używasz ufw, nie możesz ustawić własnych reguł iptables przy użyciu własnych skryptów, ponieważ zostaną one zastąpione, gdy ufw ustawi własne. Oznacza to również, że ufw może powodować konflikty z innymi narzędziami, które ustawiają reguły zapory.

Jeśli sudo ufw statuszwraca „nieaktywny”, oznacza to, że ufw został wyłączony (i nie będzie na przykład ponownie stosować żadnych reguł podczas uruchamiania). Musisz upewnić się, że ufw jest włączony sudo ufw enable, ale musisz także skonfigurować reguły, aby miało to znaczenie. Jeśli masz pewność, że masz włączone ufw, ale zwraca ono „nieaktywne”, może być jakiś inny problem.

Pamiętaj, że „uruchomienie” usługi nie włącza ufw, tylko aktywuje skrypt startowy. Jeśli ufw jest wyłączony podczas uruchamiania skryptu startowego, nic nie zrobi.

Możesz stwierdzić, czy Twoje reguły zapory sieciowej zostały zastosowane w danym momencie, używając iptables bezpośrednio:

sudo iptables -L
sudo ip6tables -L
thomasrutter
źródło
1
Uwaga: Ja osobiście nie używam ufw, używam pakietu o nazwie netfilter-persistent, który umożliwia zapisywanie natywnych reguł iptables do pliku i ponowne ich zastosowanie podczas uruchamiania. Podczas uruchamiania zasadniczo robi to, co robi ufw: uruchamia skrypt startowy, który stosuje konfigurację. Różnica polega na tym, że nie tłumaczy z własnej uproszczonej składni, a jedynie wysyła polecenia iptables bezpośrednio do iptables.
thomasrutter,
Wiele dobrych rzeczy. Dzięki. Na ten temat: „Jeśli używasz ufw, nie możesz ustawić własnych reguł iptables za pomocą własnych skryptów, ponieważ zostaną one zastąpione, gdy ufw ustawi własne”. Czy ufw aktywnie usuwa wszystkie istniejące reguły iptables? A może po prostu mówisz z ufw na zdjęciu, że nie możesz polegać na komendach / regułach iptables, ponieważ mogą zostać nadpisane przez ufw?
gwideman
Również do Thomasa: „netfilter-persistent”> czy to odnosi się do iptables-persistent?
gwideman,
Tak to się kiedyś nazywało. Jeśli twoja wersja Ubuntu ma jedno i drugie, to pakiet trwały iptables prawdopodobnie będzie po prostu pakietem przejściowym, który da osobom ze starszych wersji ścieżkę aktualizacji.
thomasrutter,
1
Przepraszam, jeśli pomyliłem cię, wspominając o resolv.conf, użyłem tylko jako przykładu innej konfiguracji w Ubuntu, która może być kontrolowana przez inną usługę zastępującą wszelkie zmiany, które wprowadzasz bezpośrednio. To nie jest połączone.
thomasrutter,