Strona startowa
Filelist, INFORMATYKA, STEROWNIKI, sterowniki ASUS Eee PC, Eee PC (G)
Freud- Kultura jako źródło cierpień- opracowanie, Psychologia
Filodemos z Gadary, Opracowania, notatki
Flegon z Tralles, Opracowania, notatki
Frynich, Opracowania, notatki
Forristal - Hack Proofing Your Web Applications, Informatyka
Filtrowanie Stateful - Inspection w Linuxie i BSD, --Dokumenty-- , Linux
Filtrowanie, Analiza sygnałów
Freesco, Opracowania informatyczne
Futurama.The.Beast.With.A.Billion.Backs.2008.PROPER.DVDRip.XviD-NODLABS, Filmy, Futurama
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • kasiulenka.htw.pl

  • Filtrowanie pakietów w Liinuksie 2.4, Opracowania informatyczne

    [ Pobierz całość w formacie PDF ]
    Filtrowanie pakietów w Linuksie 2.4
    Rusty Russell, lista pocztowa
    netfilter@lists.samba.org
    Wersja oryginalna: 1.26, 2002/01/24 13:42:53
    Oryginał tego dokumentu znajduje się pod adresem:
    Tłumaczenie: Łukasz Bromirski,
    l.bromirski@mr0vka.eu.org
    Wersja tłumaczenia: 2.2, $Date: 2002/08/22 21:29:41 $
    Oryginał tego tłumaczenia znajduje się pod adresem:
    Dokument ten opisuje zastosowanie narzędzia iptables w filtrowaniu niepożądanych pakietów, w linuksie z jądrem 2.4.
    1. Wprowadzenie
    Witam Szanownego czytelnika.
    Zakładam, że wiesz co to adres IP, adres sieciowy, maska sieciowa, ruting i DNS. Jeśli nie, polecam przeczytanie HOWTO Network Concepts.
    To HOWTO oscyluje na granicy delikatnego wprowadzenia (które sprawi, że poczujesz się zadowolony z siebie, ale niezabezpieczony przed Światem Rzeczywistym) i surowego,
    pełnego opisu (które oszczędzi tylko największych twardzieli, a reszta będzie zmieszana, w stanie paranoi i poszukiwać będzie ciężkiego uzbrojenia).
    Twoja sieć nie jest
    bezpieczna
    . Problem umożliwienia szybkiej i wygodnej wymiany informacji a jednocześnie ograniczenia jej tylko do właściwych zastosowań, jest porównywalny
    do innych problemów takich jak zapewnienie wolność wypowiedzi i jednocześnie zapobieganiu wznoszenia okrzyków w stylu 'Pali się!' w zatłoczonym kinie. Ten problem nie
    zostanie rozwiązany w tym HOWTO.
    Zatem tylko ty możesz zadecydować jak wyglądać będzie kompromis. Spróbuję poinstruować cię w użytkowaniu dostępnych narzędzi, poinformuję o pewnych słabościach z których
    trzeba sobie zdawać sprawę, a wszystko to w nadziei że użyjesz tych informacji dla dobrych, a nie złych celów. Kolejny problem porównywalny z tym powyżej.
    (C) 2000 Paul `Rusty' Russell. Na licencji GNU GPL.
    2. Gdzie jest oficjalna strona WWW? Czy jest lista e-mail?
    Są trzy oficjalne strony:
    z
    Dzięki
    Filewatcher
    .
    z
    Dzięki
    Zespołowi Samba i SGI
    .
    z
    Dzięki
    Harald'owi Welte
    .
    Możesz osiągnąć je na zasadzie równoważenia obciążenia przez DNS round-robin, wybierając adres
    i
    .
    Oficjalna lista pocztowa znajduje się na
    serwerze list Samba
    .
    3. To co to jest Filtr Pakietów?
    Filtr pakietów to takie oprogramowanie, które sprawdza
    nagłówki
    (ang.
    header
    ) pakietów w trakcie jak przechodzą przez maszynę na której działa i decyduje o ich losie. Może
    zdecydować, że pakiet zostanie
    odrzucony
    (ang.
    DROP
    , tzn. tak jakby pakiet nigdy nie dotarł),
    zaakceptowany
    (ang.
    ACCEPT
    , tzn. pozwoli mu przejść), lub coś bardziej
    skomplikowanego.
    W Linuksie, filtrowanie pakietów jest wbudowane w kernel (jako moduł lub po prostu wbudowane) i jest parę jeszcze sprytniejszych rzeczy które możesz zrobić, ale generalnie idea
    polega na sprawdzaniu nagłówków i decydowaniu o losie pakietów.
    3.1 Dlaczego mógłbym chcieć filtrować pakiety?
    Kontrola. Bezpieczeństwo. Czujność.
    Kontrola:
    kiedy używasz Linuksa by połaczyć twoją wewnętrzną sieć z inną siecią (powiedzmy z Internetem) masz okazję wpuścić trochę różnych typów ruchu i odrzucić inne. Na
    przykład, nagłówek pakietu posiada adres docelowy pakietu, więc możesz odrzucać pakiety które podróżują do określonych części sieci zewnętrznej. Innym przykładem może
    być to: używam Netscape do oglądania archiwów Dilbert'a. Jest tam masa reklam pochodzących z adresu doubleclick.net, więc Netscape traci czas by je ładować. Pouczenie
    filtra pakietów by nie wpuszczał pakietów podróżujących do i z tego adresu rozwiązuje ten problem (jednakże jest parę innych sposobów by zrobić to lepiej, sprawdź
    Junkbuster).
    Bezpieczeństwo:
    kiedy Twój linuks jest jedynym komputerem pomiędzy chaosem Internetu i twoją ładną, uporządkowaną siecią, miło jest wiedzieć że możesz obłożyć restrykcjami to co
    nadchodzi do twych drzwi. Na przykład, możesz pozwolić by wszystko wychodziło z twojej sieci, ale możesz być zaniepokojony znanym atakiem 'Ping of Death'
    nadchodzącym od różnych złośliwych użytkowników sieci. Innym przykładem może być twoje życzenie, by nie zezwalać na telnet'owanie się na Twój komputer, mimo że
     wszystkie konta mają hasła; prawdopodobnie chcesz być (jak większość ludzi) raczej obserwatorem w Internecie a nie serwerem - po prostu nie dawać się nikomu do Ciebie
    dołączać, poprzez filtrowanie nadchodzących pakietów służących do ustanawiania połączeń.
    Czujność:
    czasami źle skonfigurowana maszyna w sieci lokalnej zadecyduje o skierowaniu paru pakietów do sieci zewnętrznej. Miło jest móc poinstruować filtr pakietów by dał Ci znać
    o takich anormalnych zachowaniach; może będziesz chciał coś z tym zrobić, albo jesteś po prostu ciekawy z natury.
    3.2 Jak filtrować pakiety pod Linuksem?
    Kernele Linuksa miały wbudowane filtrowanie pakietów od serii 1.1. Pierwsza generacja, bazująca na ipfw z BSD, została przeniesiona przez Alana Cox'a pod koniec 1994. Została
    ona rozbudowana przez Jos'a Vos'a i innych dla Linuksa wersji 2.0; narzędzie działające w przestrzeni użytkownika '
    ipfwadm
    ' kontrolowało reguły filtrujące. W połowie 1998, dla
    Linuksa 2.2, zmieniłem dosyć mocno kernel, z pomocą Michael'a Neuling'a, i wprowadziłem narzędzie również działające w przestrzeni użytkownika nazwane '
    ipchains
    '.
    Ostatecznie, w połowie 1999 dla Linuksa 2.4 stworzono kolejne narzędzie '
    iptables
    '. Jest to właśnie to
    iptables
    na którym skoncentrowane jest to HOWTO.
    Potrzebujesz kernel z infrastrukturą netfilter: netfilter to ogólny szkielet w kernelu Linuksa do którego mogą dołączać się inne moduły (takie jak moduł iptables). Oznacza to że
    potrzebujesz kernel w wersji 2.3.15 lub późniejszej, i w czasie konfiguracji kernela musisz zaznaczyć '
    Y
    ' przy opcji '
    CONFIG_NETFILTER
    '.
    Narzędzie
    iptables
    wstawia i kasuje reguły z tabeli filtrowania pakietów kernela. Oznacza to, że cokolwiek do niej wstawisz, zostanie stracone po restarcie; zajrzyj do
    sekcji w
    której opisujemy zapisywanie reguł
    po informacje jak upewnić się że po kolejnym starcie linuks odtworzy je.
    iptables
    zastępuje
    ipfwadm
    i
    ipchains
    : zajrzyj do
    sekcji opisującej używanie ipfwadm i ipchains
    po informacje jak bezboleśnie uniknąć przesiadania się na
    iptables
    jeśli
    używasz jednego z tych narzędzi.
    Zapisywanie reguł na stałe
    Twoje aktualne ustawienia ściany ogniowej zapisane są w kernelu i w związku z tym znikną po restarcie. Możesz wypróbować skrypty
    iptables-save
    i
    iptables-restore
    by
    odpowiednio zapisać je do i odtworzyć z pliku.
    Innym sposobem może być umieszczenie komend wymaganych by ustawić twoje reguły w skrypcie wykonywanym w czasie startu. Upewnij się, że zrobi on coś inteligentnego w
    wypadku gdyby coś poszło nie tak (zwykle wywołanie '
    exec /sbin/sulogin
    ').
    4. Kim u diabła jesteś i dlaczego bawisz się moim kernelem?
    Jestem Rusty Russell; człowiek odpowiedzialny za ścianę ogniową IP Linuksa i jeszcze jeden koder który znalazł się we właściwym miejscu we właściwym czasie. Napisałem
    ipchains
    (zajrzyj do sekcji
    Jak filtrować pakiety pod Linuksem?
    ) powyżej by sprawdzić kto tak naprawdę to wszystko stworzył) i nauczyłem się wystarczająco dużo by tym razem
    filtrowanie pakietów wyszło dobrze. Tak sądzę.
     Doskonała firma WatchGuard
    WatchGuard
    sprzedająca ściany ogniowe Firebox, zaoferowała że będzie płacić mi za nic, więc mogłem spędzać swój czas pisząc ten dokument i
    zajmować się poprzednimi rzeczami. Przewidywałem że zajmie to 6 miesięcy, zajęło 12, ale na końcu czuję że zostało to zrobione Właściwie. Wiele razy przepisywane od początku,
    padnięty twardy dysk, ukradziony laptop, parę uszkodzonych systemów plików i jeden zniszczony ekran, ale jest.
    Póki jeszcze tu jestem, chciałbym wyklarować mylne wrażenia niektórych ludzi: nie jestem guru kernela. Wiem to wszystko, ponieważ moja praca spowodowała że kontaktowałem
    się z ludźmi którzy są guru: Davidem S. Millerem, Aleksiejem Kuziecowem, Andi Kleenem, Alanem Coksem. Są zajęci uprawianiem głębokiej magii, a ja mogłem pobawić się na
    płytkich wodach, tam gdzie jest bezpiecznie.
    5. Bardzo krótki przewodnik Rusty'ego do filtrowania pakietów
    Większość ludzi ma pojedyńcze połączenie PPP do Internetu, i nie chce by ktokolwiek mógł łączyć się do nich, lub do ściany ogniowej:
    ## Załaduj moduły śledzenia połączeń (niepotrzebne jeśli wbudowane w kernel)
    # insmod ip_conntrack
    # insmod ip_conntrack_ftp
    ## Stwórz łańcuch blokujący nowe połączenia, z wyjątkiem tych od środka
    # iptables -N block
    # iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
    # iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
    # iptables -A block -j DROP
    ## Do łańcuchów INPUT i FORWARD dodaj skok do tego nowego łańcucha
    # iptables -A INPUT -j block
    # iptables -A FORWARD -j block
    6. Jak pakiety podróżują przez filtry
    Kernel rozpoczyna pracę z trzema listami reguł w tabeli filtrującej; nazywane sa one
    łańcuchami ściany ogniowej
    , lub po prostu
    łańcuchami
    . Te trzy nazwane zostały
    INPUT
    (
    wejściowy
    ),
    OUTPUT
    (
    wyjściowy
    ) i
    FORWARD
    (
    przekazujący
    ).
    Dla fanów ASCII-art, łańcuchy ułożone są w następujący sposób:
    _____
    Przychodzący / \ Wychodzący
    -->[Decyzja ]--->|FORWARD|------->
    [Rutingu ] \_____/ ^
    | |
    v ____
    ___ / \
    / \ |OUTPUT|
    |INPUT| \____/
     \___/ ^
    | |
    ----> Proces lokalny ----
    Trzy koła reprezentują trzy łańcuchy o których wspomniałem wyżej. Kiedy pakiet dociera do koła na diagramie, sprawdzany jest łańcuch reguł by zdecydować o losie pakietu. Jeśli
    łańcuch mówi że należy odrzucić (DROP) pakiet, jest on odrzucany tutaj, ale jeśli łańcuch mówi by zaakceptować pakiet (ACCEPT), kontynuuje on swoją podróż po diagramie.
    Łańcuch to lista
    reguł
    . Każda reguła mówi 'jeśli nagłówek pakietu wygląda tak, to zrobimy z tym pakietem następującą rzecz'. Jeśli reguła nie pasuje do pakietu, sprawdzana jest
    następna. Na koniec, jeśli nie ma więcej reguł, kernel sprawdza politykę (ang.
    policy
    ) danego łańcucha. W systemie w którym dba się o bezpieczeństwo, polityka mówi zwykle
    kernelowi by odrzucić (DROP) pakiet.
    1. Kiedy pakiet dociera do maszyny (powiedzmy, przez kartę Ethernetową), kernel sprawdza najpierw adres przeznaczenia pakietu: nazywa się to routingiem.
    2. Jeśli pakiet przeznaczony jest do tego kompuera, pakiet zostaje przepuszczony do łańcucha INPUT (wejściowego). Jeśli przejdzie go, otrzymuje go proces do którego był
    adresowany.
    3. W innym przypadku, jeśli kernel nie ma włączonego
    przekazywania
    (ang.
    forwarding
    ), lub nie wie jak przekazać pakiet, jest on odrzucany. Jeśli przekazywanie jest włączone
    i pakiet jest przeznaczony do innego interfejsu sieciowego (jeśli w ogóle masz jeszcze jeden), pakiet przechodzi w prawo na naszym diagramie do łańcucha FORWARD
    (przekazującego). Jeśli zostaje zaakceptowany (ACCEPT), zostanie wysłany dalej.
    4. Na koniec, program pracujący na tym komputerze może również wysyłać własne pakiety. Przejdą one od razu do łańcucha OUTPUT (wyjściowego): jeśli stwierdzi on że
    zaakceptuje pakiet (ACCEPT), pakiet przechodzi do właściwego interfejsu sieciowego.
    7. Używanie iptables
    iptables
    ma całkiem szczegółowy podręcznik (
    man iptables
    ), do którego warto zajrzeć jeśli chodzi ci o coś konkretnego. Ci z was którzy znają
    ipchains
    mogą po prostu
    zajrzeć do
    różnic pomiędzy iptables i ipchains
    ; oba narzędzia są bardzo podobne.
    Istnieje wiele rzeczy które możesz zrobić przy użyciu
    iptables
    . Zaczynasz z trzema wbudowanymi łańcuchami
    INPUT
    ,
    OUTPUT
    i
    FORWARD
    , których nie możesz skasować.
    Spójrzmy na listę możliwych operacji na całych łańcuchach:
    1. Stworzenie nowego łańcucha (-N).
    2. Skasowanie pustego łańcucha (-X).
    3. Zmiana polityki dla wbudowanego łańcucha (-P).
    4. Wylistowanie reguł w łańcuchu (-L).
    5. Wyczyszczenie łańcucha z reguł (-F).
    6. Wyzerowanie liczników pakietów i bajtów we wszystkich regułach w łańcuchu (-Z).
    Jest również parę sposobów na manipulowanie regułami w obrębie łańcucha:
    1. Dodanie nowej reguły do łańcucha (-A).
    2. Wstawienie nowej reguły na pewnej pozycji w łańcuchu (-I).
    3. Zamiana reguły na pewnej pozycji w łańcuchu (-R).
      [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • rafalstec.xlx.pl
  • 
    Wszelkie Prawa Zastrzeżone! Jedyną nadzieją jest... nadzieja. Design by SZABLONY.maniak.pl.