Firestarter — ognista ochrona dla każdego
11 lutego 2007, wiezyr
Początkujący użytkownik Linuksa z pewnością słyszał o niemalże “mitycznym” bezpieczeństwie systemów z tej rodziny (być może była to jedna z przyczyn, dla których zdecydował się na jego instalację). I rzeczywiście jest to system bezpieczny z kilku powodów:
- jego struktury - od początku był projektowany jako system wielodostępny do pracy w sieci (prawa dostępu, praca na koncie użytkownika nie administratora),
- szybkie aktualizacje i poprawki wszelkich wykrytych luk,
- obecność zapory sieciowej(firewalla) wbudowanej w jądro.
Dlatego tworzenie szkodliwego oprogramowania jest mocno utrudnione i nieopłacalne. Jednak aby podczas serfowania po Internecie móc czuć się w pełni bezpiecznie, należy we właściwy sposób korzystać z narzędzi chroniących nasz komputer. Na pierwszej linii obrony przed nieuprawnionym dostępem do naszego systemu stoi firewall i istotne jest to, aby był on dobrze skonfigurowany.
Standardowo do konfiguracji linuksowego firewalla używa się “iptables” (Nazwy iptables używa się zarówno w odniesieniu do samego firewalla, jak i programu służącego do konfiguracji jego reguł). Iptables to program konsolowy (dostarczany wraz z dystrybucją). Reguły dla firewalla tworzymy poprzez wpisywanie odpowiednich komend. Właśnie tutaj początkujący użytkownik Linuksa miewa problemy.
- Po pierwsze początkujący z dużą nieufnością podchodzą do wszystkiego, co nie ma interfejsu graficznego.
- Po drugie trzeba się nauczyć prawidłowej składni poleceń.
- Po trzecie należy się orientować w całym tym sieciowym slangu (interfejsy, protokoły , adresy IP, porty, itp.).
I właśnie to sprawia, że przeciętny użytkownik (a tym bardziej początkujący) może co najwyżej przepisać regułki z jakiegoś poradnika, pewnie nie do końca je rozumiejąc i nie mając pewności, że taka konfiguracja spełni swoje zadanie. Na szczęście z pomocą przychodzą nam programy z graficznym interfejsem, których celem jest ułatwienie tworzenia regułek dla naszego firewalla. Istnieją programy dla bardziej zaawansowanych i takie, które stawiają na prostotę. Do tych drugich można zaliczyć Guarddoga czy Firestartera. Tekst ten ma za zadanie zapoznać Was z Firestarterem.
Gorące powitanie
![]()
Rys. 1 Okno powitalne kreatora ustawień
Firestarter to graficzna zapora sieciowa. Celem programu jest połączenie prostoty użycia z zaawansowanymi możliwościami tak, aby nadawał się zarówno dla zwykłych użytkowników jak i administratorów. Instalacja programu nie nastręcza trudności, gdyż znajduje się on w repozytoriach wielu dystrybucji, a jeśli go tam nie znajdziemy, można pobrać gotowe paczki bądź źródła ze strony projektu.
UWAGA!!
Jeśli z jakiś względów nie skorzystasz z repozytorium swojej dystrybucji i menadżera pakietów dbającego o zależności, upewnij się że masz w swoim systemie zainstalowane iptables.
Ogniomistrz wskaże Ci drogę
Podczas pierwszego uruchomienia Firestartera pojawi się prosty kreator, umożliwiający wstępną konfigurację zapory. Po ekranie powitalnym czeka nas wybór interfejsu, za pomocą którego łączymy się z Internetem. Na rozwijanej liście “Wykryto urządzenia” znajdziemy wszystkie odnalezione karty sieciowe i modemy. Najprawdopodobniej wybierzemy eth0 (w przypadku korzystania z karty sieciowej) bądź ppp0 (jeśli korzystamy z modemu np. sagema 800 od Neostrady).
![]()
Rys. 2 Wybór urządzenia/interfejsu
Możemy także zaznaczyć dodatkowo dwie opcje: Adres IP przydzielany za pomocą DHCP i Uruchamianie zapory podczas wdzwaniania, których nazwy dokładnie określają to do czego służą.
W kolejnym kroku ustawiamy, jeśli wymaga tego nasza sytuacja, funkcje związane ze współdzieleniem łącza. Na następnym ekranie zaznaczamy “Start firewall now” i klikamy “Zapisz”. Nasz firewall zostaje uruchomiony i zaczyna chronić nasz system. Podczas uruchomienia automatycznie zostały utworzone następujące reguły:
- wszelkie połączenia wychodzące z naszego komputera są dozwolone
- wszelkie połączenia przychodzące z “sieci” są blokowane
- jeżeli nasz komputer udostępnia połączenia innym komputerom, to mogą one inicjować dowolne połączenia wychodzące, poza połączeniem do naszego komputera, a wszystkie połączenia przychodzące do tych komputerów są blokowane.
Ognista polityka
Na początek włączymy opcję, aby nasze nowo utworzone reguły automatycznie zaczęły obowiązywać natychmiast po ich utworzeniu. Aby znaleźć tę opcję w menu “Edit”, wybieramy “Preferences”, a następnie w otwartym oknie przechodzimy (w części “Interface”) do zakładki “Policy” i zaznaczamy opcję “Apply policy changes immediately”. Klikamy w “Accept” i od teraz jakiekolwiek zmiany w firewallu będą uwzględniane natychmiastowo i automatycznie. Jeśli tego nie zrobimy, zmiany i nowo utworzone reguły zaczną obowiązywać dopiero gdy klikniemy w “Apply Policy”. W dalszej części artykułu zakładam, że opisana powyżej opcja jest aktywna.
Teraz przychodzi pora na dostosowanie reguł naszego firewalla do indywidualnych wymagań. W tym celu przechodzimy do zakładki “Policy”. Tutaj z rozwijanego menu “Editing” wybieramy czy zajmiemy się określaniem reguł dla ruchu przychodzącego (Inbound traffic policy) czy wychodzącego (Outbound traffic policy).
Furtka w murze
![]()
Rys. 3 Zakładka konfiguracji ruchu
przychodzącego
Na pierwszy “nomen omen” ogień pójdzie polityka ruchu przychodzącego. Konfiguracja reguł odbywa się w trzech panelach. Nas interesuje na razie panel środkowy w którym możemy zdefiniować reguły udostępniające porty dla konkretnych usług. Aby stworzyć nową regułę przechodzimy do panelu, a następnie z menu narzędziowego wybieramy “Add Rule” (dostępne również w menu kontekstowym pod prawym klawiszem myszki). Pojawi się okno w którym dokonamy konfiguracji. Interesującą nas usługę wybieramy z rozwijanej listy przy polu “Name”, a wtedy pole “Port” zostanie automatycznie wypełnione. Jeśli na liście nie znajdziesz potrzebnej Ci usługi (są na niej tylko najpopularniejsze), możesz samodzielnie wpisać dowolny port/porty, a nazwa pojawi się automatycznie.
Oczywiście musimy podjąć decyzję kto będzie mógł korzystać z otwartej przez nas furtki. Do wyboru mamy kilka możliwości:
- “Anyone” - każdy będzie mógł inicjować połączenia z naszym komputerem,
- “LAN clients” - łączyć mogą się komputery z naszej sieci lokalnej,
- “IP,host or network” - gdzie podajemy adres IP (bądź nazwę DNS) komputera lub całej podsieci.
Na koniec możemy dopisać własny komentarz do udostępnianej usługi. Klikamy przycisk “Dodaj” i nasza reguła właśnie zaczyna obowiązywać. W panelu górnym “Allow connection from host” z kolei możemy dodać komputery do zaufanej strefy, czyli do grupy, która może dowolnie inicjować połączenia z naszym komputerem. Jest to dosyć ryzykowne i należy to robić tylko i wyłącznie wtedy, gdy mamy absolutną pewność, że dana maszyna jest prawidłowo administrowana i mamy pełne zaufanie do jej administratora. Po przejściu do tego panelu klikamy “Add rule”, a następnie w polu “IP, host or network” wpisujemy adres zaufanego komputera lub całej ich grupy. Klikamy “Dodaj” i kolejna reguła gotowa.
Okno na świat
Połączenia wychodzące są z reguły bezpieczniejsze niż przychodzące, chyba że w systemie działają jakieś wirusy bądź trojany próbujące wysyłać do sieci jakieś informacje (mało prawdopodobne w Linuksie acz nie niemożliwe). Tym razem z menu “Editing” wybieramy “Outbound traffic policy”. Następnym krokiem jest decyzja dotycząca tego, czy zastosować politykę łagodną (przyzwalającą) czy restrykcyjną i zaznaczenie właściwego pola.
Domyślnie ustawiona jest polityka przyzwalająca - “Permissive by default” - czyli wszystkie połączenia wychodzące są dozwolone. Pewne ograniczenia do tej polityki możemy wprowadzić poprzez stworzenie tzw. czarnej listy (blacklist) czyli spisu komputerów z którymi łączenie się nie będzie możliwe, a dokonujemy tego w panelu “Deny conection to host”. Innym sposobem jest zablokowanie połączeń wychodzących dla konkretnych usług i portów, co z kolei robimy w dolnym panelu - “Deny service”. Przechodzimy do panelu, klikamy “Add Rule” i zostaje otwarte nowe okno. W nim wybieramy usługę lub wpisujemy port, określamy kogo będzie obowiązywał zakaz, klikamy “Dodaj” i kolejna reguła zaczyna obowiązywać.
Jeśli zdecydujemy się na politykę restrykcyjną - “Restrictive by default”, wszystkie połączenia wychodzące będą blokowane, jest to więc sytuacja podobna jak w przypadku połączeń przychodzących. Tutaj z kolei tworzymy białą listę (whitelist) czyli spis komputerów z którymi możemy się łączyć - panel “Allow connection to host”. Z kolei w dolnym panelu “Allow service” tworzymy reguły dla usług którym chcemy pozwolić na inicjowanie połączeń wychodzących, np.: DNS, DHCP, HTTP, FTP. Odbywa się to tak samo jak w przypadku polityki łagodnej, z tą różnicą że tam wybieraliśmy usługę którą chcemy zablokować, a tutaj tą na którą chcemy zezwolić.
ICMP
Dodatkowo możemy skonfigurować usługi pakietu ICMP służące do diagnozowania połączeń pomiędzy komputerami. Domyślnie Firestarter nie filtruje połączeń z portami tych usług, ale oczywiście możemy to zmienić. W menu “Edit” wybieramy “Preferences”, a następnie w otwartym oknie zakładkę “Filtrowanie ICMP”. Zaznaczamy opcję “Enable ICMP filtering” i nasz komputer przestaje być dostępny dla usług z tego pakietu. Jeśli chcemy zezwolić na działanie którejś z usług, zaznaczamy interesującą nas opcję w części “Allow the fallowing ICMP packet types”.
Lista poparzonych
Po skonfigurowaniu zapory należy sprawdzić, czy działa ona tak jak należy. Czynimy to poprzez przejście do zakładki “Events”, która szybko zapełnia się listą zdarzeń zablokowanych przez nasz firewall. Pozycje na liście oznaczone są trzema kolorami:
- szarym kolorem oznaczone są zdarzenia sklasyfikowane jako nieszkodliwe,
- czarnym takie którymi w zasadzie także nie musimy się przejmować,
- czerwonym natomiast takie, które mogą być potencjalnie groźne i którym teoretycznie należałoby poświęcić choć trochę uwagi.
U mnie jako użytkownika Neostrady, lista momentalnie zapełnia się czerwonymi wpisami zablokowanych prób połączeń. Dane które prezentowane są na liście trafień możemy konfigurować korzystając z opcji “Show columns” w menu “Events”. Mogą to być np. data i godzina próby połączenia, adres IP maszyny z której nastąpiło, protokół czy port. Dzięki menu kontekstowemu dostępnemu na liście zdarzeń możemy w łatwy sposób dodać reguły dotyczące konkretnej próby połączenia. A więc możemy np. pozwolić komputerowi z którego nastąpiła próba połączenia na ich nawiązywanie. Mamy także możliwość wyboru nie umieszczania na liście zdarzeń prób połączeń z danego komputera lub przez konkretny port. Utworzone w ten sposób reguły dodawane są do odpowiednich paneli w zakładce “Policy”.
Ognista blokada
W pewnych przypadkach, np. gdy podejrzewamy atak na nasz komputer, możemy całkowicie zablokować ruch sieciowy. Z menu “Firewall” wybieramy “Lock Firewall” i od tego momentu jesteśmy całkowicie odcięci od sieci. Aby przywrócić możliwość łączenia się z siecią, z tego samego menu wybieramy opcję “Start Firewall”. Istnieje oczywiście także możliwość “zawieszenia” działania zapory, np. w przypadku gdy występują problemy z nawiązywaniem połączeń i chcemy sprawdzić, czy to nie przypadkiem wina źle skonfigurowanego firewalla. Z menu “Firewall” wybieramy “Stop firewall” i nasz komputer przestaje być chroniony. Taki stan rzeczy powinien trwać możliwie krótko i należy jak najszybciej ponownie uruchomić zaporę opcją “Start firewall”.
Wszystkie czynności opisane w tym akapicie można wykonać także przy pomocy menu narzędziowego na zakładce “Status”. Na zakładce tej znajdziemy listę aktywnych połączeń oraz spis aktywnych sieci, rozmiar odebranych i wysłanych danych, oraz szybkość z jaką pracują aktualnie aktywne interfejsy.
Informacje dodatkowe
Po uruchomieniu Firestartera z pewnością zauważyłeś ikonę z zasobniku. Ikona ta sygnalizuje prace zapory i zależności od obecnego stanu przyjmuje odpowiedni wygląd. Po ponownym uruchomieniu systemu ikona ta nie jest wyświetlana, ale nie martw się, tak ma być. Jest ona niepotrzebna, a zapora działa w tle i chroni nasz komputer.
Jeszcze informacja dla użytkowników modemów USB (np. sagem 800). Podczas startu systemu w momencie uruchamiania kolejnych usług możesz dostać informację, że Firestarter nie odnalazł interfejsu sieciowego. To nic nie szkodzi, po prostu interfejs podnosi się później niż startuje firewall. Firestarter działa i chroni nas także na tym interfejsie gdy się w końcu “podniesie”. Może to nawet i dobrze, bo przynajmniej mamy pewność, że nic się nie prześliźnie, gdyż najpierw uruchamiana jest ochrona a dopiero później nawiązywane połączenie.
Wygoda, prostota, możliwości
Firestarter charakteryzuje się dużą wygodą i prostotą konfiguracji, jednocześnie dostarczając dużych możliwości dopasowania reguł do indywidualnych potrzeb. Z pewnością pozwoli nam zaoszczędzić sporo czasu jaki musielibyśmy poświęcić na naukę i ręczną edycję reguł iptables. Jedynym “zgrzytem” jest niepełne spolszczenie interfejsu, ale nie ma to większego wpływu na komfort korzystania z programu. Polecam ją każdemu użytkownikowi Linuksa chcącemu w prosty i szybki sposób zabezpieczyć swój komputer.
Korekta: t_ziel
Komentarze (RSS) | Trackback (URI)
Liczba komentarzy: 17
W komentarzach możesz używać prostych znaczników HTML. Przykłady:
- Link: <a href="jaklinux.org">Linux dla każdego</a>,
- Wytłuszczenie: <strong>tekst pogrubiony</strong>,
- Kursywa: <em>tekst pochylony</em>,
- Przekreślenie: <strike>
tekst przekreślony</strike>, - Kod: <code>
printf("blok kodu");</code>, - Cytat: <blockquote>cytat</blockquote>




Świetny artykuł o skonfigurowaniu linuksowej zapory sieciowej, brawo!
Dla mnie firestarter był zbyt delikatny, czasem modyfikując nieznacznie konfiguracje padała sieć w domu, dlatego zrezygnowałem z firestarter na rzecz firehol do którego konfiguracje już napisałem sam i jestem zadowolony z jego działania.
Fajny artykuł. Może za jakiś czas przetestuje tego Firestartera…
Fajny ten firestarter, ale po jego instalacji hamachi przestało mi działać.
Fajny program tylko czemu w linuksie ciągle nie ma możliwości w firewallu wycinania ruchu po konkretnych aplikacjach , w wyższych warstwach a nie tylko w warstwie sieciowej.
Fajny i prosty firewall, sam z niego korzystam.
Pewną niedogodnością jest brak operowania na zakresach portów. Obszedłem problem edytując pliki tekstowe z konfiguracją firewalla (/etc/firestarter).
Witam,
fajny artykuł - ale chciałbym trochę uściślić, w kwestii formalnej
myślę, ze to ważne!
Z tego co wiem, FS nie jest firewallem - jest to tylko graficzna nakładka, konfigurator do ustawień iptables. Firewallem jest tak naprawdę iptables i ono uruchamia się przy każdym starcie systemu - już z tymi ustawieniami, które wprowadziliśmy wcześniej przez FS. Wystarczy uruchomić raz, skonfigurować, a potem nie przejmować się, że przy restarcie FS się nie uruchomił (o tym wezyr wspomina w informacjach dodatkowych).
Gdy jako “zielony” zająłem się Firestarterem to ta kwestia spędzała mi sen z powiek - myślałem, że komputer nie jest chroniony, bo FS nie wystartował.
Skoro ten Firestarter jest taki ważny to dlaczego nie jest on instalowany domyślnie razem z np. Ubuntu? Od 2 miesięcy siedzę na Ubuntu bez tej nakładki, z “czystym” iptables i jakoś nie zauważyłem żeby net zaczął mulić albo jakieś ustawienia w systemie się pozmieniały.
@OrkanSpec
Według mojej wiedzy można operować na zakresach portów. Zapoznaj się z faq na stronie projektu. konkretnie z częścią:
Q: How do you specify a range of IPs or use wildcards in the rules?
http://www.fs-security.com/docs/faq.php
@baxxx
jak jest w artykule sam firewall jest zaimplementowany w kernelu, a Firestarter służy do prostej edycji i tworzenia reguł dla niego. Jeśli Firestarter instalowany jest z paczki to podczas instalacji jest automatycznie dodawany do poziomu startowego (runlevel) jako usługa systemowa (system service) i przy każdorazowym starcie systemu jest uruchamiany (bez jego części graficznej).
Jeśli sam kompilujesz Firestartera ze źródeł, aby był automatycznie uruchamiany musisz samodzielnie dodać skrypt startowy do runlevela.
@De_Tox
Oczywiście nie tyle Firestarter jest ważny co firewall. A to czego użyjesz do jego konfiguracji nie jest istotne. Może to być iptables, Firestarter, Guarddog, KMyFirewall czy cokolwiek innego w zależności od indywidualnych preferencji. Firestarter jest po prostu wygodny i łatwy w użyciu ( szczególnie dla początkujących) w przeciwieństwie do iptables.
Artykuł znakomity. Jestem całkiem początkująca. Zbierałam informacje na temat
konfigurowania Firestartera wycinkowe i rozproszone. Stąd pojęłam wszystko. Dzięki.
A ja mam pytanie, odnosnie firestartera: Nie moge nic zrobic w zakladce policy (wszystko jest zablokowane) czym to jest spowodowane ? I jeszcze jedno: Jak wlacze firestartera, to na tacce systemowej pojawia mi sie ikonka, czemu jak juz z nim nic nie robie i zamykam “okienko” z nim to znika z tacki ? Czy to znaczy, ze sie wylaczyl firewall, czy tez poprostu nie chce smiecic mi na pulpicie ?:P
A przepraszam, przeczytalem
To pytanie drugie juz nie jest aktualne, tylko to pierwsze 
Brakuje tylko informacji jak uruchomić zaporę. Artykuł bardzo przydatny.
To firestarter nie jest martwym projektem?
Brak informacji jak uruchomić Firesterter!!!
w konsoli wklep firestarter
[…] Firewall w systemie podpiętym do sieci jest niezwykle ważny. Służy do filtracji pakietów co uchroni nas przed nieautoryzowanym dostępem do naszego PC-ta. Jednak staje się bezużyteczny jak nie potrafimy go odpowiednio skonfigurować. Miałem zamiar pisać sam jak go skonfigurować ale natknąłem się na fajny artykuł a wątpię żebym napisał lepszy chodź by z lenistwa wiec pozwolę sobie zarzucić linkiem http://jakilinux.org/aplikacje/firestarter-ognista-ochrona-dla-kazdego/ […]