Bridge+Firewall: Bridge.
Następna strona
Poprzednia strona
Spis treści
2. Bridge.
2.1 Oprogramowanie.
Zdobądź konfigurator do bridge'a
BRCFG.tgz.
2.2 Najpierw poczytaj.
Przeczytaj
Multiple-Ethernet, ż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.
Może obêdzie siê bez
NET-3-HOWTO. 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ązanymi 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 miejscami, 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, 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 użyjesz 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
__ | __
client 1 \ .0 .128 | / net 1
client 2 --- Hub - eth0 - Kernel - eth1 - Hub - Router --- net 2
client 3 __/ .100 .228 .2 | \__ net 3
|
client 254
Dołączam adres tego rutera do tej karty jako statyczny ponieważ
inaczej zaliczałby siê on do maski tej pierwszej karty i jądro
źle kierowałoby pakiety do tego dużego rutera.
route add 192.168.2.2 dev eth1
Ja go nie potrzebujê ponieważ nie mam wiêcej maszyn w tej połówce
przestrzeni adresowej, ale deklarujê sieæ także na tej drugiej
karcie
route add -net 192.168.2.128 netmask 255.255.255.128 dev eth1
Muszê także wysłaæ wszystkie nie lokalne pakiety w świat, wiêc
informujê jądro, żeby wysyłało je do dużego rutera:
route add default gw 192.168.2.2
2.7 Konfiguracja karty.
To tyle odnośnie standardowego ustawiania sieci, ale my mamy bridge
wiêc musimy na obydwu (?) kartach słuchaæ pakietów, które nie są
przeznaczone dla nas. Nastêpujące dwie linie powinny siê znaleźæ w
pliku konfigurującym sieæ:
ifconfig promisc eth0
ifconfig promisc eth1
Na stronie podrêcznika systemowego napisane jest, że
allmulti=promisc, ale u mnie to nie działało.
2.8 Dodatkowy ruting.
Jedno co zauważyłem, to to, że musiałem przynajmniej drugą kartê
ustawiæ w tryb, w którym odpowiadałaby ona dużemu ruterowi jakie
maszyny chowam w swojej sieci.
ifconfig arp eth1
Na wszelki wypadek zrobiłem to samo dla pierwszej karty.
ifconfig arp eth0.
2.9 Konfiguracja Bridge'a.
Umieśæ włączanie bridge'owania w swoim pliku konfiguracyjnym:
brcfg -enable
Powinieneś to próbowaæ w czasie rzeczywistym cały czas
oczywiście! Konfigurator bridge'a poda parê liczb. Możesz
poeksperymentowaæ włączając i wyłączając porty - jeden za każdym
razem.
brcfg -port 0 -disable/-enable
brcfg -port 1 -disable/-enable
Polecenie brcfg pokaże ci raport w każdej chwili. Zobaczysz,
że bridge słucha, dowiaduje siê i potem przekazuje pakiety. (Nie
rozumiem dlaczego kod powtarza te same adresy sprzêtowe dla obu
moich kart, ale nieważne ... HOWTO Chrisa mówi, że to dobrze)
2.10 Wypróbuj.
Jeśli cały czas wszystko u ciebie działa, to wypróbuj swoją
konfiguracjê w rzeczywistości - wyłącz obie karty i uruchom swój
plik konfiguracyjny:
ifconfig eth0 down
ifconfig eth1 down
/etc/rc.d/rc.inet1
Jeśli masz szczêście, to różne podsystemy (nfs, ypbind, itp) nie
zauważą tej zmiany. Nie próbuj tego o ile nie siedzisz przy
klawiaturze.
Jeśli chcesz byæ bardziej ostrożny niż teraz, powinieneś wyłączyæ
tyle demonów ile siê da i odmontowaæ katalogi nfs. Najgorszym co
może siê staæ, to to, że bêdziesz musiał zrestartowaæ komputer w
trybie jednego użytkownika (parametr "single" dla lilo lub loadlin)
i zmieniæ wszystko na stan taki jaki był przed zmianą konfiguracji.
2.11 Sprawdzenia.
Sprawdź czy na każdym interfejsie jest inny ruch:
tcpdump -i eth0 (w jednym oknie)
tcpdump -i eth1 (w drugim oknie)
Powinieneś siê przyzwyczaiæ do używania tcpdump do szukania
przyczyn niektórych zdarzeñ, które nie powinny mieæ miejsca a mają.
Na przykład szukanie pakietów, które przeszły przez bridge do
drugiej karty z wewnêtrznej sieci. W tym przykładzie szukam
pakietów z maszyny o adresie .22:
tcpdump -i eth1 -e host 192.168.2.22
Potem wyślij ping-a z maszyny .22 do rutera. Powinieneś zobaczyæ
raport o tym pakiecie.
W tym momencie powinieneś mieæ w pełni działający bridge z dwoma
adresami. Sprawdź czy możesz je pingowaæ z zewnątrz i z wewnątrz
sieci oraz, że możesz siê łączyæ z jednej sieci do drugiej i z
zewnątrz.
Następna strona
Poprzednia strona
Spis treści
Wyszukiwarka
Podobne podstrony:
bridge firewall pl 3Bridge Firewall pl (3)Bridge Firewall plbridge firewall pl 4bridge firewall pl 1Bridge Firewall pl (2)Bridge Firewall BMLIRPHVO6TAYSAHXGBLX25LJMGT5Q5CGAUDL7Abridge firewall 4 mtsaojjvb6byx7o2nmmymrg4lhmsgs76gvki57q mtsaojjvb6byx7o2nmmymrg4lhmsgs76gvki57qbridge firewall 1 6h2f4rsc5vybryppio2my5blgmhw7qq7fekqu5i 6h2f4rsc5vybryppio2my5blgmhw7qq7fekqu5ibridge firewall 3 vm7lhvynp4zcwspmhhodznfas5gknxcng67ppmy vm7lhvynp4zcwspmhhodznfas5gknxcng67ppmyBridge Firewall DSLBridge Firewallbridge firewall 2 v4tmziif5r3fuzczoe4hojl225bpsoyuoe2xr4i v4tmziif5r3fuzczoe4hojl225bpsoyuoe2xr4iBridge pl (4)Bridge plfirewall howto plfirewall howto pl 8firewall howto plfirewall howto pl 9wiÄcej podobnych podstron