Mastodon

Odgrzany firewall

3
Dodane: 15 lat temu

Zdaję sobie sprawę, że pisząc o firewallu, czyli nazywając to bardziej „po naszemu” – tzw. „ścianie ognia” lub też „zaporze sieciowej”, budzę u części z Was pewien niesmak (prawie jakbym pisał o antywirusie na Maka). Wyobraźcie sobie numer Mojego Jabłuszka poświęcony tematyce internetowej, w którym nie poruszono kwestii bezpieczeństwa Mac OS X pracującego w Internecie. To dopiero powinno zbudzić niesmak!
Na szczęście firewall nie jest na Maku czymś aż tak zbędnym, jak program antywirusowy. Co więcej, jego użycie nie stanowi źródła dodatkowych kosztów, gdyż dostajemy go wraz z systemem.

Zacznijmy od początku…

Wraz z kolejnymi edycjami systemu Mac OS X (do Mac OS X 10.4 Tiger włącznie) dostarczany był jedynie firewall znany z systemu FreeBSD UNIX, czyli ipfw.
Jest to dobry firewall, umożliwiający budowę skutecznej ochrony przed wieloma, nawet zaawansowanymi atakami sieciowymi. Problem z jego implementacją w systemie OS X polegał wyłącznie na tym, iż twórcy Mac OS X nie pomyśleli o opracowaniu odpowiedniego, graficznego narzędzia, umożliwiającego nieco bardziej zaawansowaną konfigurację firewalla. W Preferencjach systemowych można firewall włączyć lub wyłączyć oraz określić, które usługi sieciowe będą dopuszczone, a które zablokowane. W opcjach zaawansowanych możemy jeszcze wyłączyć cały ruch UDP (nie polecam), włączyć tworzenie tzw. dziennika systemowego, w którym będą zapisywane komunikaty dotyczące pracy zapory sieciowej (format tego dziennika jest czytelny tylko dla zaawansowanych użytkowników) oraz można zaktywować tryb „stealth”, który powoduje, że nasz Mak nie będzie w żaden sposób odpowiadał komputerowi, który próbuje się połączyć z zablokowaną przez nasz firewall usługą sieciową.
Słowem udostępnione przez twórców Mac OS X opcje konfiguracyjne dotyczą jedynie podstaw i nie dają możliwości tworzenia bardziej precyzyjnych konfiguracji.
Prosty przykład. Chcemy umożliwić użytkownikom zewnętrznym połączenie się z wbudowanym serwerem WWW na naszym Maku. Ale… chcemy, żeby byli to użytkownicy komputerów z sieci 192.168.1.0/255.255.255.0 oraz autor niniejszego artykułu z pojedynczego adresu 85.222.108.90. Nie chcemy natomiast, aby połączył się ktokolwiek inny – z dowolnego, innego adresu w Internecie. I? I mamy pewnego rodzaju problem, gdyż panel preferencji systemowych Mac OS X umożliwia jedynie włączenie dostępu do „Personal Web Sharing” lub wyłączenie dostępu – bez możliwości określenia adresów, z jakich takie połączenia mają być realizowane!
W efekcie – albo postawimy „przed” naszym Maczkiem jakiś dodatkowy firewall (np. w używanym przez nas routerze) i skonfigurujemy w nim odpowiednie zasady, które wpuszczą w/w adresy na port 80 TCP (WWW) naszego Maka, albo też musimy udostępnić tę usługę wszystkim (lub z pewnym żalem.. powstrzymać się od jej udostępnienia).
Rzecz jasna używając Terminala i odpowiednich poleceń systemu, można konfigurować wbudowany firewall tak samo dobrze, jak we FreeBSD. Problem jedynie w tym, że po pierwsze, wymaga to dość sporej wiedzy o działaniu sieci opartych na rodzinie protokołów TCP/IP, a po drugie, użytkownik chcący konfigurować firewall z linii poleceń systemu, musi poznać składnię konfiguracji, dowiedzieć się jak prawidłowo budować zasady zapory sieciowej, jak wygląda kolejność ich wykonywania przez system itd.
Spragnionych tej wiedzy odsyłam do poszukiwań w sieci, ot np. na Wikipedię.

Dlaczego „odgrzany”?

Dlaczego w tytule napisałem „odgrzany firewall”? Otóż programiści z Apple, widząc pewne niezadowolenie użytkowników z firewalla w dotychczasowej postaci, postanowili dodać do systemu (Mac OS X 10.5 i nowszych) coś, co określili mianem „firewall aplikacyjny”. Powiedzmy, że jest to określenie nieco na wyrost, gdyż „prawdziwy” firewall aplikacyjny analizuje protokół w jakim rozmawia dana usługa/aplikacja i podejmuje decyzje o filtrowaniu (lub nie) ruchu na podstawie specyficznych zasad powiązanych z cechami tego konkretnie protokołu (np. HTTP, SMTP czy IMAP itd.).
Rozwiązanie Apple polega natomiast na utworzeniu listy programów (aplikacji), do których przydzielamy (lub nie) dostęp z sieci. Aby dokonać zmian w konfiguracji, należy wejść do „Preferencji systemowych”, następnie kliknąć opcję „Zabezpieczenia” i tam kliknąć kartę „Zapora”.
Domyślne ustawienie „Zezwalaj na wszystkie połączenia przychodzące” nie jest zbyt użyteczne, bo w zasadzie firewall po prostu nic nie robi.
Następna opcja „Zezwalaj tylko na istotne usługi”, jest najbardziej restrykcyjnym, „fabrycznie” skonfigurowanym, trybem pracy zapory sieciowej. Jeśli wybierzemy tę opcję, system będzie wpuszczał wyłącznie ruch sieciowy niezbędny do pracy najbardziej podstawowych usług (w praktyce firewall pozwala w tym trybie na pobieranie adresów z DHCP, korzystanie z usługi Bonjour oraz wykorzystanie sieci prywatnej IPSec).
Trzecią, dostępną tu opcją jest „Ustaw dostęp dla określonych usług i aplikacji”, dająca największe możliwości dopasowania pracy zapory do potrzeb użytkownika komputera i używanych przez niego programów (aplikacji).
W celu dodania programu do listy, należy kliknąć znak „+” pod okienkiem listy, pojawi się wówczas okno dialogowe, które umożliwi wskazanie dodawanego programu na dysku. Czynność tę można wykonać wiele razy, dodając kolejne programy do listy.
Utworzenie tej listy wpływa na dalszą pracę systemu. Otóż, jeśli dany program nie jest dodany do listy ale za to jest podpisany ważnym podpisem cyfrowym, system domyślnie wpuszcza połączenia skierowane do niego. Jeśli uruchomimy natomiast uruchomimy program, który nie został dodany do listy i nie jest podpisany cyfrowo, pojawi się okno dialogowe, umożliwiające zezwolenie (lub wręcz odwrotnie) na połączenia skierowane na porty sieciowe, na których nasłuchuje dany program. Jeśli umieścimy taki program na liście i zezwolimy na przychodzące połączenia sieciowe do niego, zostanie on również automatycznie podpisany przez system.
Wszystkie programy dostarczone przez Apple są podpisane cyfrowo, a więc wyżej opisany mechanizm spowoduje, że domyślnie połączenia skierowane do tych programów będą wpuszczane.
I dlatego właśnie określiłem „nowy” firewall „aplikacyjny” mianem „odgrzany”. Bo tak na dobrą sprawę, zmieniło się to, że można określać zasady ruchu sieciowego dla poszczególnych aplikacji (a więc de facto dla usług udostępnianych przez te aplikacje – jeśli faktycznie aplikacja jakoweś usługi udostępnia).
Niemniej, dalej mamy tu możliwość konfiguracji na poziomie wpuszczam/nie wpuszczam, bez określenia adresów, a których połączenia mogą przychodzić oraz adresów z których nie życzymy sobie połączeń. O określaniu jeszcze bardziej zaawansowanych parametrów nie ma rzecz jasna mowy.
Moim zdaniem zmiana jest więc w dużej mierze kosmetyczna.

Bez Terminala ani rusz?

Wcześniej wspomniałem, że firewall wbudowany w Mac OS X może być precyzyjnie konfigurowany z poziomu linii poleceń systemu. Zaznaczyłem też, że wymaga to sporej wiedzy (a i tak, odrobina nieuwagi może spowodować, że pojawią się… kłopoty). Czy istnieje jakieś inne rozwiązanie?
Owszem, istnieje – nawet kilka rozwiązań – dzięki którym można uzyskać o wiele lepszy dostęp do zasad konfiguracji firewalla bez konieczności korzystania z Terminala, sudo i linii poleceń systemu.
Tradycyjnie już, gdy Mama Apple zbyt wiele funkcjonalności ukryje przed użytkownikiem, gdzieś tam siada do komputera jakiś programista i tworzy narzędzie, które daje dostęp do „ukrytych” funkcji. Dokładnie ten sam schemat zadziałał w przypadku firewalla „zaszytego” w Mac OS X.
Nie będę tu omawiał wszystkich rozwiązań dostępnych w sieci (jest kilka, konkurencyjnych programów, umożliwiających dokonanie bardziej – niż w Preferencjach systemowych – zaawansowanej konfiguracji wbudowanego firewalla). Skoncentruję się na dwóch programach, pochodzących z tego samego źródła. Dodam, że programy te są darmowe (a konkretnie należą do kategorii tzw. donationware – słowem, jeśli uważamy, że program jest przydatny – możemy zapłacić stosowną dotację na rozwój aplikacji w przyszłości).

Dlaczego akurat dwa programy?

Po prostu, choć służą one jednemu celowi – mają ułatwić użytkownikowi konfigurację wbudowanej w system zapory sieciowej – pierwszy z nich (NoobProof) jest prostszy w obsłudze i udostępnia funkcjonalności najbardziej przydatne dla zdecydowanej większości użytkowników, którzy pragną wygodnie konfigurować swój firewall bez potrzeby zagłębiania się w bardzo zaawansowane opcje.
Drugi z nich (WaterRoof), udostępnia szereg opcji, które mogą okazać się przydatne o wiele bardziej zaawansowanym użytkownikom. W zasadzie można zaryzykować stwierdzenie, że użytkownicy rozumiejący zasady działania sieci na tym poziomie, bez problemu poradzą sobie z konfiguracją firewalla za pośrednictwem Terminala i linii poleceń. Tylko po co? Przecież to jest Mac! Dlaczego mieliby rezygnować z użycia wygodnego interfejsu graficznego?
Łatwiejszy w obsłudze program, NoobProof, umożliwia m.in. określanie, dla jakich adresów IP (lub całych podsieci) wpuszczamy (lub blokujemy) ruch dla danej usługi. Jak to wygląda pokazałem na rysunku poniżej.

NoobProof umożliwia m.in. określanie, dla jakich adresów IP (lub całych podsieci) wpuszczamy (lub blokujemy) ruch dla danej usługi

NoobProof, umożliwia m.in. określanie, dla jakich adresów IP (lub całych podsieci) wpuszczamy (lub blokujemy) ruch dla danej usługi (kliknij, aby powiększyć)

Interesujące funkcje dodatkowe zawiera zakładka „Options”, w której można ustawić m.in.:
zapisywanie prób połączeń na porty określone w konfiguracji zapory jako blokowane,
blokowanie skanerów sieciowych typu nmap (narzędzie często wykorzystywane przez crackerów, celem sprawdzenia jakie usługi sieciowe są udostępniane przez naszego Maka),
blokowanie „dziwnych” pakietów, które mogą być niebezpieczne dla systemu i aplikacji,
blokowanie ruchu ICMP (a więc np. usług ping i traceroute skierowanych do naszego komputera przez kogoś z zewnątrz).
Dostępne w tej zakładce opcje pokazane są na rysunku poniżej.

Zakładka Options

Zakładka Options (kliknij, aby powiększyć)

Oferujący o wiele bardziej zaawansowane możliwości konfiguracji zapory sieciowej, program WaterRoof ma o wiele bardziej rozbudowane menu (w postaci pionowego paska wyświetlanego domyślnie po lewej stronie ekranu).
Dostęp do poszczególnych paneli programu otrzymujemy klikając na poszczególne opcje dostępne na pasku. Wiele paneli można otworzyć w programie jednocześnie, co zresztą doskonale ilustruje rysunek poniżej.

W programie można otworzyć wiele paneli jednocześnie

W programie można otworzyć wiele paneli jednocześnie (kliknij, aby powiększyć)

Program WaterRoof umożliwia nie tylko dokonywanie praktycznie dowolnej zmiany w konfiguracji zapory sieciowej. Można w nim również obserwować dzienniki zapory, a po prawej stronie listy zasad pokazane są liczniki pakietów sieciowych, które zostały obsłużone przez daną zasadę. Można także wyświetlać informacje dotyczące istniejących w systemie interfejsów sieciowych, czy też śledzić na bieżąco aktywne połączenia sieciowe. WaterRoof to istny „szwajcarski scyzoryk” zapory sieciowej.
Z punktu widzenia niektórych polskich użytkowników, pewnym problemem może być fakt, iż omawiane tu programy udostępniane są w wersji angielskiej. Cóż, po raz kolejny okazuje się, że nauka języków obcych w dzisiejszym świecie jest rzeczą niezwykle użyteczną.
Ze względu na określoną objętość Mojego Jabłuszka, nie zamierzam opisywać tu krok po kroku wszystkich funkcji dostępnych w obu programach. Moim celem było jedynie zasygnalizowanie Czytelnikom, że istnieją obecnie bardzo fajne, darmowe narzędzia, umożliwiające nieco głębsze wykorzystanie ogromnych możliwości zapory sieciowej wbudowanej w system Mac OS X.
Więcej informacji na temat wspomnianych tu programów (oraz same te programy), możecie zdobyć bezpośrednio na ich witrynie internetowej. Polecam rozpoczęcie od porównania funkcjonalności obu programów i wybranie odpowiedniego narzędzia do swoich potrzeb. Takie porównanie (wraz z uwagami na temat zapory sieciowej w Mac OS X) jest dostępne na stronie hanynet.com (tabela z porównaniem dostępnych funkcji znajduje się na samym dole strony).

Zapraszamy do dalszej dyskusji na Mastodonie lub Twitterze .

Komentarze: 3