Bridge+Firewall.pl.txt

(20 KB) Pobierz
  Bridge+Firewall
  Autor: Peter Breuer, ptb@it.uc3m.es
  ptb@dit.upm.es ptb@eng.cam.ac.uk ptb@comlab.ox.ac.uk
  v1.1, 23 Grudnia 1996
  Wersja polska: Bartosz Maruszewski
  B.Maruszewski@zsmeie.torun.pl
  v1.01, 26 Lipca 1997


  W oryginalnym dokumencie na temat Bridge'a opisane są inne sposoby
  podejścia. Jest to Bridge mini-HOWTO
  <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> napisane przez
  Chrisa Cole'a <chris@polymer.uakron.edu>. Wersja, na której bazowałem
  to 1.03 z 23 Sierpnia 1996.  Oryginał tego dokumentu znajduje się na
  ftp.icm.edu.pl w katalogu /pub/Linux/sunsite/docs/HOWTO/mini. Dokument
  ten jest napisany w standardzie ISO-8859-2.
  ______________________________________________________________________

  Spis&nbsp;treści


  1. Co, jak i dlaczego ?

     1.1 Co.
     1.2 Dlaczego.
     1.3 Jak.

  2. Bridge.

     2.1 Oprogramowanie.
     2.2 Najpierw poczytaj.
     2.3 Konfiguracja startu systemu.
     2.4 Konfiguracja jądra.
     2.5 Adresy sieciowe.
     2.6 Ruting sieci.
     2.7 Konfiguracja karty.
     2.8 Dodatkowy ruting.
     2.9 Konfiguracja Bridge'a.
     2.10 Wypróbuj.
     2.11 Sprawdzenia.

  3. Firewall.

     3.1 Oprogramowanie i czytanie.
     3.2 Sprawdzenie wstępne.
     3.3 Zasady domyślne.
     3.4 Dziury na adres.
     3.5 Dziury na protokół.
     3.6 Sprawdzenia.

  4. Od tłumacza.



  ______________________________________________________________________

  1.  Co, jak i dlaczego ?



  1.1.  Co.


  Bridge jest to inteligentne połączenie pomiędzy dwoma kartami
  sieciowymi. Firewall jest to inteligentny izolator.

  1.2.  Dlaczego.


  Możesz chcieć bridge'a jeśli masz kilka komputerów:


  ˇ  żeby zaoszczędzić pieniądze na hubie jeśli akurat masz dodatkową
     kartę ethernet-ową,

  ˇ  żeby oszczędzić sobie nauki jak robić IP-forwarding i inne triki
     jeśli masz dwie karty w swoim komputerze,

  ˇ  żeby oszczędzić sobie pracy jeśli coś się w prezyszłości zmieni.

  "Kilka komputerów" to może być np. trzy jeśli mają być rutowane,
  bridge'owane albo po prostu od czasu do czasu zmieniają swoje miejsce
  pobytu. Możesz także chcieć mieć bridge tylko dla zabawy, żeby się
  dowiedzieć co on robi - ja właśnie dlatego sobie go postawiłem.

  Jeśli naprawdę chcesz go postawić z pierwszego powodu, to poczytaj
  lepiej NET-3-HOWTO <http://www.ippt.gov.pl/~ppogorze/Linux/JTZ/> albo
  Serial-HOWTO <ftp://ftp.icm.edu.pl/pub/Linux/sunsite/docs/HOWTO/> a
  znajdziesz tam lepsze obejścia.

  Firewall jest ci potrzebny jeśli:


  ˇ  chronisz swoją sieć przed dostępem z zewnątrz albo

  ˇ  chcesz zabronić wyjścia poza twoją sieć z jej środka

  Ja tu potrzebowałem tego drugiego. Przepisy na naszym uniwersytecie
  zabraniały nam grać rolę dostawcy Internet-u dla studentów.


  1.3.  Jak.


  Zacząłem bridge'ować dwie karty sieciowe w maszynie z firewallem a
  skończyłem na firewall-owaniu wraz z bridge'owaniem bez usuwania
  jednej z funkcji. Wydaje się to działać znacznie bardziej wydajnie niż
  każda z konfiguracji osobno. Mogę na przykład wyłączyć firewall a
  bridge dalej działa albo odwrotnie jeśli chcę być bardziej bezpieczny.

  Stawiałbym na to, że kod bridge'a jest tuż nad fizycznym poziomem
  urządzenia a kod firewalla jest o jeden poziom wyżej, tak że
  połaczenie bridge'a z firewallem działa tak jakby to była jedność a
  nie jakby działały równolegle.


    -> wej. bridge'a -> wej. firewalla -> jądro -> wyj. firewalla -> wyj. bridge'a



  Nie ma innego sposobu na wytłumaczenie dlaczego maszyna może być
  "konduktorem" i izolatorem w tym samym czasie. W każdym razie wydaje
  się to działać razem bardzo dobrze. Oto co ja robię ...


  2.  Bridge.






  2.1.  Oprogramowanie.


  Zdobądź konfigurator do bridge'a BRCFG.tgz
  <ftp://shadow.cabi.net:/pub/Linux/>.


  2.2.  Najpierw poczytaj.


  Przeczytaj Multiple-Ethernet
  <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/docs/HOWTO/mini>, żeby się
  dowiedzieć jak rozpoznać i skonfigurować więcej kart sieciowych.

  Więcej szczegółów na temat magii startowania, które możesz potrzebować
  jest w BootPrompt-HOWTO
  <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html>.

  Może obędzie się bez NET-3-HOWTO
  <http://www.ippt.gov.pl/~ppogorze/Linux/JTZ>. Jest to dobry i długi
  dokument i będziesz musiał wybrać sobie to czego potrzebujesz.


  2.3.  Konfiguracja startu systemu.


  Po przeczytaniu powyższego dowiesz się, że musisz skompilować jądro,
  żeby rozpoznało drugie urządzenie ethernet-owe podczas startu oraz, że
  musisz dodać linię do pliku /etc/lilo.conf i uruchomić lilo:


          append = "ether=0,0,eth1"



  Zauważ, że jest tu eth1. eth0 jest pierwszą kartą a eth1 jest drugą
  kartą. Zawsze możesz podać parametry podczas startu kiedy lilo ich
  oczekuje. Oto przykład dla trzech kart:


          linux ether=0,0,eth1 ether=0,0,eth2



  Ja używam loadlin.exe, aby uruchomić Linux-a:


          loadlin.exe c:\vmlinuz root=/dev/hda3 ro ether=0,0,eth1 ether=0,0,eth2



  Zauważ, że to zmusza jądro do szukania podczas startu. Nie będzie to
  miało miejsca jeśli załadujesz sterowniki ethernet-owe jako moduły (ze
  względów bezpieczeństwa ponieważ kolejność szukania nie może być
  określona). Więc jeśli używasz modułów, to będziesz musiał dodać
  parametry określające IRQ i port w pliku /etc/conf.modules - to jest
  mój przykład:


               alias eth0 3c509
               alias eth1 de620
               options 3c509 irq=5 io=0x210
               options de620 irq=7 bnc=1



  Możesz sprawdzić czy używasz modułów przez ps -aux i zobaczenie czy
  jest proces kerneld i czy w katalogu /lib/modules/`uname -r`  są pliki
  *.o. (w miejsce uname -r wstaw wynik tego polecenia). Jeśli masz
  proces kerneld albo w podanym katalogu są pliki *.o, to wyedytuj plik
  /etc/conf.modules i przeczytaj uważnie stronę podręcznika systemowego
  na temat depmod.

  Zauważ też, że do niedawna (2.0.25) sterownik 3c509 nie mógł być użyty
  jako moduł dla więcej niż jednej karty. Widziałem gdzieś łatę, która
  naprawia tę niedogodność. Może on być w jądrze kiedy to czytasz.


  2.4.  Konfiguracja jądra.


  Skompiluj jądro z włączoną opcją bridge.


   CONFIG_BRIDGE=y



  Ja skompilowałem także z włączonymi opcjami firewalling, IP-
  forwarding, IP-masquerading i resztą. Ale tylko jeśli chcesz mieć
  także firewall.


  CONFIG_FIREWALL=y
  CONFIG_NET_ALIAS=y
  CONFIG_INET=y
  CONFIG_IP_FORWARD=y
  CONFIG_IP_MULTICAST=y
  CONFIG_IP_FIREWALL=y
  CONFIG_IP_FIREWALL_VERBOSE=y
  CONFIG_IP_MASQUERADE=y



  Nie potrzebujesz tego wszystkiego. To czego potrzebujesz, to
  standardowa konfiguracja sieci:


  CONFIG_NET=y



  i nie sądzę, żebyś się musiał przejmować innymi opcjami związnymi z
  siecią. Wszystkie opcje, których właściwie nie wkompilowałem w jądro
  mam dostępne jako moduły i mogę je dodać później.

  Zainstaluj nowe jądro, uruchom lilo i zresetuj z nowym jądrem. W tym
  momencie nic się nie powinno zmienić.


  2.5.  Adresy sieciowe.


  Chris twierdzi, że bridge nie powinien mieć adresu IP, ale to nie jest
  to ustawienie opisane tutaj.

  Będziesz chciał używać tej maszyny do łączenia się z siecią więc
  potrzebujesz adresu i musisz się upewnić, że masz skonfigurowane
  poprawnie urządzenie "loopback", tak żeby twoje oprogramowanie mogło
  komunikować się z miejscamu, z którymi spodziewa się, że będzie się
  mogło porozumieć. Jeśli nie będzie tego urządzenia, to serwis nazw
  albo inny serwis sieciowy może nie działać. Przeczytaj NET-3-HOWTO
  <http://www.ippt.gov.pl/~ppogorze/Linux/JTZ/>, ale twoja standardowa
  konfiguracja powinna już to za ciebie zrobić:


     ifconfig lo 127.0.0.1
     route add -net 127.0.0.0



  Będziesz musiał nadać adres obojgu kartom. Ja dopasowałem swój
  /etc/rc.d/rc.inet1 w Slackware 3.x, aby ustawić moje dwie karty. A ty
  powinieneś także poszukać gdzie jest konfiguracja sieci u ciebie i
  podwoić instrukcje. Załóżmy, że masz już adres: 192.168.2.100 (jest to
  prywatny zarezerwowany adres sieciowy, ale nieważne - nikomu nie
  zaszkodzi jeśli uzyjesz tego adresu przez pomyłkę) wtedy masz już
  pewnie linię:


    ifconfig eth0 192.168.2.100 netmask 255.255.255.0 metric 1



  w swojej konfiguracji. Pierwsze co pewnie będziesz chciał zrobić to
  podzielić przestrzeń adresową na pół, tak że możesz potem te dwie
  połowy bridge'ować. Więc dodaj linię. która zredukuje maskę tak, że
  będzie ona adresować mniejszą ilość maszyn:


    ifconfig eth0 netmask 255.255.255.128



  Spróbuj tego też. Powoduje to obcięcie przestrzeni adresowej do
  zakresu od .0 do .127.

  Teraz możesz ustawić swoją drugą kartę w drugiej połowie adresów.
  Upewnij się, że nikt jeszcze takiego adresu nie ma. Dla symetrii ja
  ustawiłem ją na 228 (128+100=228). Każdy adres będzie się tak
  zachowywał dopóki nie znajdzie się w masce tej pierwszej karty - a
  nawet wtedy, no może. Unikaj adresów specjalnych takich jak .0, .1,
  .128 o ile naprawdę wiesz co robisz.


    ifconfig eth1 192.168.2.228 netmask 255.255.255.128 metric 1



  To powoduje zmniejszenie zakresu adresów drugiej karty do .128 do
  .255.


  2.6.  Ruting sieci.


  Powyższe może być wystarczającą konfiguracją dla działającego
  bridge'a, ale ja będę miał także firewall i chcę kontrolować fizyczne
  przeznaczenie niektórych pakietów. Nawet wtedy trzeba się pilnować
  przed spoofingiem.

  Mam małą sieć maszyn dołączonych do hub-a na eth0, więc konfiguruję
  tam sieć:


    route add -net 192.168.2.128 netmask 255.255.255.128 dev eth0


  128 byłoby 0 gdybym miał pełną klasę C. "dev eth0" nie jest tu
  potrzebne ponieważ adres karty zalicza się do tej sieci, ale może być
  potrzebne dla ciebie.

  Na drugiej karcie mam linię idącą prosto do dużego rutera, któremu
  ufam.


                                              client 129
  ...
Zgłoś jeśli naruszono regulamin