Jak założyć maskowanie IP czyli IP-Masquerade.
Jak założyć maskowanie IP czyli IP-Masquerade.
Autor: Ambrose Au,
ambrose@writeme.com
v1.20, 10 Listopada 1997
Wersja polska: Bartosz Maruszewski
B.Maruszewski@jtz.org.pl
v1.0, 23 Września 1998
Dokument ten opisuje jak włączyć maskowanie IP na hoście linux-owym,
pozwalając tym samym na dostęp do Internetu komputerom podłączonym do
tego Linux-a i nie posiadającym własnego adresu IP.
1. Wprowadzenie.
Dokument ten opisuje jak włączyć maskowanie IP na hoście
linux-owym, pozwalając tym samym na dostęp do Internetu komputerom
podłączonym do tego Linux-a i nie posiadającym własnego adresu
IP. Możliwe jest podłączenie tych komputerów do Linux-a poprzez
Ethernet czy inne medium jak linie dzwonione ppp. Dokument ten
skupi się na połączeniach Ethernet, ponieważ jest to najbardziej
rozpowszechniony przypadek.
Dokument ten jest przeznaczony dla użytkowników jąder 2.0.x. Jądra
w wersji rozwojowej NIE są opisane.
1.1 Słowo wstępne, komentarze & prawa.
Założenie maskowania na nowszych jądrach (tj. 2.x) będąc nowym użytkownikiem,
jest trochę trudne moim zdaniem. Chociaż jest FAQ i lista
dyskusyjna, nie ma żadnego specjalnie dla tego tematu
przeznaczonego dokumentu; a pojawiają się na liście dyskusyjnej
żądania o takowy. Tak więc zdecydowałem się napisać taki dokument
jako punkt oparcia dla nowych użytkowników, i pewnie także coś
dla doświadczonych użytkowników, którzy mogą go dalej rozbudowywać.
Jeśli sądzisz, że nie robię tego źle, to nie bój się mi tego
powiedzieć, jak mogę to zrobić lepiej.
Dokument ten jest w dużej mierze oparty o oryginalne FAQ napisane
przez Kena Evesa i dużą liczbę pomocnych wiadomości z listy
dyskusyjnej o maskowaniu IP. Specjalne podziękowania należą się
Panu Matthew Driverowi, którego to list zainspirował mnie do
zainstalowania maskowania IP i napisania tego.
Nie krępuj się napisać mi jakiekolwiek komentarze na adres
ambrose@writeme.com, jeśli podaje jakieś błędne informacje
lub jakiejś informacji brakuje. Wasze nieocenione komentarze
na pewno wpłyną na przyszłość tego HOWTO!
To HOWTO ma być podręcznikiem pomocnym do jak najszybszego
ustawienia maskowania IP. Ponieważ nie mam praktyki w pisaniu
technicznych dokumentów, możesz stwierdzić, że informacje zawarte
tutaj nie są takie ogólne i obiektywne jak powinny być. Najnowsze
informacje można znaleźć na stronie
Zasoby IP-Masquerade,
którą prowadzę. Jeśli masz jakieś techniczne pytania na temat
maskowania, dopisz się do listy dyskusyjnej zamiast wysyłać
listy do mnie, ponieważ mój czas jest ograniczony oraz ci którzy
rozwijają kod maskowania są bardziej kompetentni do odpowiedzi
na te pytania.
Najnowsza wersja oryginału tego dokumentu znajduje się na stronie
Zasoby IP Masquerade,
gdzie są także wersje HTML i PostScript:
http://ipmasq.home.ml.org/
pod adresem
http://ipmasq.home.ml.org/index.html#mirror znajduje się
lista kopii tej strony
[Od tłumacza] Oczywiście najnowsze wersje tłumaczenia
znajdziesz po adresem
www.jtz.org.pl.
1.2 Prawa autorskie i zastrzeżenia.
Prawa autorskie należą do Ambrose Au (C) 1996 i jest to
dokument wolnodostępny. Można go rozprowadzać na zasadach licencji
GNU GPL.
Informacje i cała zawartość tego dokumentu są najlepsze o których
wiem. Jednak maskowanie IP jest eksperymentalne i możliwe,
że zrobię jakiś błąd. Tak więc powinieneś się zastanowić czy chesz
stosować informacje z tego dokumentu.
Nikt nie jest odpowiedzialny za jakiekolwiek szkody czy zniszczenia
wynikłe z używania informacji tutaj zawartych, tj:
AUTOR NIE JEST ODPOWIEDZIALNY ZA JAKIEKOLWIEK ZNISZCZENIA POWSTAŁE
NA SKUTEK DZIAŁAŃ PODJĘTYCH NA PODSTAWIE INFORMACJI Z TEGO
DOKUMENTU.
1.3 Od tłumacza.
Tłumaczenie to jest chronione prawami autorskimi © Bartosza
Maruszewskiego.
Dozwolone jest rozprowadzanie i dystrybucja na prawach takich
samych jak dokument oryginalny.
Jeśli znalazłeś jakieś rażące błędy ortograficzne, gramatyczne,
składniowe, techniczne to pisz do mnie:
B.Maruszewski@jtz.org.plOficjalną stroną tłumaczeń HOWTO jest
http://www.jtz.org.pl/Aktualne wersje przetłumaczonych dokumentów znajdują się na
tejże stronie. Dostępne są także poprzez anonimowe ftp pod adresem
ftp.jtz.org.pl w katalogu /JTZ/.
Przetłumaczone przeze mnie dokumenty znajdują się także na
mojej stronie WWW. Są tam też odwołania do Polskiej Strony
Tłumaczeniowej.
Kontakt z naszą grupą, grupą tłumaczy możesz uzyskać poprzez listę
dyskusyjną jtz@jtz.org.pl. Jeśli chcesz sie na nią zapisać, to
wyślij list o treści subscribe jtz Imię Nazwisko na adres
majordomo@ippt.gov.pl
Zmiany wprowadzone przez tłumacza:
odwołania do polskich serwerów FTP
dodane odwołanie do Diald mini HOWTO
odwołania do JTZ
2. Podstawowa wiedza.
2.1 Co to jest maskowanie IP.
Jest to funkcja sieciowa w fazie rozwoju w Linuksie. Jeśli na
podłączonym do Internetu Linux-ie jest włączone maskowanie, to
komputery łączące się z nim (czy to w tej samej sieci czy też przez
modem) mogą także połączyć się z Internetem, pomimo iż nie mają
swojego oficjalnego numeru IP.
Pozwala to grupom maszyn ukrytych za gateway-em, który wydaje się
być jedynym komputerem łączącym się z Internetem, na
niewidzialny dostęp do Internetu. Złamanie zabezpieczeń
dobrze skonfigurowanego systemu maskowania powinno być
trudniejsze od złamania dobrego firewall-a opartego na filtrowaniu
pakietów (zakładając, że w obu nie ma błędów software'owych).
2.2 Obecny stan.
Maskowanie IP jest nadal w fazie eksperymentalnej. Jednak, jądra
od wersji 1.3.x mają już wbudowaną obsługę. Wiele osób prywatnych
jak i instytucji używa go z zadowalającym rezultatem.
Przeglądanie sici WWW oraz usługa telnet działają według zgłoszeń
dobrze. FTP, IRC i słuchanie Real Audio działają po załadowaniu
pewnych modułów. Inne systemy przekazu audio jak True Speech czy
Internet Wave także działają. Niektórzy z listy dyskusyjnej
próbowali nawet konferencji wideo. Po zaaplikowaniu najnowszej łaty
ICMP działa także ping.
Dokładniejszą listę działającego oprogramowania znajdziesz w sekcji
4.3.
Maskowanie IP działa dobrze z klientami na kilku różnych
systemach operacyjnych i platformach. Pozytywne przypadki
odnotowano z Unix-em, Windows 95, Windows NT, Windows for
Workgroups (z pakietem TCP/IP), OS/2, Macintosh System's OS z Mac
TCP, Mac Open Transport, DOS z pakietem NCSA Telnet, VAX, Alpha z
Linux-em i nawet Amiga z AmiTCP czy ze stosem AS225.
2.3 Kto może mieć korzyści z maskowania IP?
Jeśli masz Linux-a podłączonego do Internetu i
jeśli masz kilka komputerów z TCP/IP podłączonych do tego
Linux-a w lokalnej podsieci i/lub
jeśli twój Linux posiada więcej niż jeden modem i odgrywa rolę
serwera PPP czy SLIP dla innych, którzy to
inni nie mają oficjalnego numeru IP (te maszyny są
reprezentowane tutaj jako INNE)
i oczywiście chcesz, żeby te INNE maszyny także miały dostęp do
Internetu bez dodatkowych kosztów :)
2.4 Kto nie potrzebuje maskowania IP?
Jeśli twoja maszyna jest samotnym Linux-em podłączonym do
Internetu, wtedy maskowanie IP jest bezcelowe.
Jeśli masz już adresy IP dla swoich INNYCH maszyn, wtedy
nie potrzebujesz maskowania.
I oczywiście, jeśli nie podoba ci się pomysł 'darmowej
przejażdżki'.
2.5 Jak działa maskowanie IP?
Wzięte z IP-Maquerade FAQ autorstwa Kena Evesa:
Oto rysunek przedstawiający najprostszy przypadek:
SLIP/PPP +------------+ +-------------+
do prowajdera | Linux | SLIP/PPP | Cokolwiek |
<---------- modem1| |modem2 ----------- modem | |
111.222.333.444 | | 192.168.1.100 | |
+------------+ +-------------+
Na powyższym rysunku Linux z zainstalowanym i działającym
maskowaniem jest połączony z Internetem poprzez SLIP lub PPP
przez modem1. Ma on przypisany adres IP 111.222.333.444. Istnieje
też możliwość połączenia się z nim poprzez łącze dzwonione
SLIP/PPP przez modem2.
Drugi system (który nie musi być Linux-em) wdzwania się do Linux-a
i otwiera połączenie SLIP/PPP. NIE ma on przypisanego adresu IP w
Internecie więc używa 192.168.1.100 (zobacz poniżej).
Z poprawnie skonfigurowanymi maskowaniem IP i routing-iem
Cokolwiek może połączyć się z Internetem jak gdyby rzeczywiście
było podłączone (z kilkoma wyjątkami).
Cytat Pauline Middelink:
Nie zapomnij wspomnieć, że Cokolwiek powinno mieć jako gateway
Linux-a (czy to będzie domyślny routing czy tylko podsieć nie ma
znaczenia). Jeśli Cokolwiek nie może tego zrobić, Linux powinien
działać jako proxy arp dla wszystkich routowanych adresów, ale
ustawianie proxy arp jest poza obszarem tego dokumentu.
Następujące jest wyjątkiem z postu na grupie
comp.os.linux.networking, który został poddany edycji, aby nazwy
użyte w przykładzie powyżej pasowały:
o Informuję Cokolwiek, że mój Linux ze SLIP-em jest jego gatewayem.
o Kiedy nadejdzie do Linux-a pakiet z Cokolwiek, zostanie mu nadany
nowy numer portu źródłowego oraz dodany adres Linux-a w nagłówku
pakietu z zachowaniem oryginału. Potem Linux wyśle ten pakiet w
świat przez SLIP/PPP.
o Kiedy nadejdze do Linux-a pakiet ze świata, jeśli numer portu
jest jednym z nadanych powyżej, zostanie nadany mu oryginalny port
i adres IP i pakiet ten zostanie przesłany do Cokolwiek.
o Host, który wysłał pakiet nigdy nie będzie widział różnicy.
Przykład Maskowania IP.
Oto typowy przykład:
+----------+
| | Ethernet
| komp1 |::::::
| |2 :192.168.1.x
+----------+ :
: +----------+ łącze
+----------+ : 1| Linux | PPP
| | ::::| masq-gate|:::::::::// Internet
| komp2 |:::::: | |
| |3 : +----------+
+----------+ :
:
+----------+ :
| | :
| komp3 |::::::
| |4
+----------+
<-Sieć wewnętrzna->
W tym przykładzie są 4 komputrery, na których się skupiliśmy
(najpewniej jest jeszcze coś daleko na prawo, przez co przechodzi
twoje połączenie z Internetem, i jest coś (daleko poza stroną) w
Internecie, z czym byś chciał się komunikować). Linux
masq-gate jest gateway-em z maskowaniem dla wewnętrznej
sieci złożonej z komp1, komp2 i komp3, które chcą
się dostać do Internetu. Sieć wewnętrzna używa jednego z adresów do
prywatnego użytku, w tym przypadku sieci klasy C 192.168.1.0,
z Linux-em posiadającym adres 192.168.1.1 i innymi systemami
posiadającymi adresy w tej sieci.
Trzy maszyny komp1, komp2 i komp3 (które, przy
okazji, mogą być jakimkolwiek innym systemem rozumiejącym IP - jak
np.: Windows 95, Macintosh MacTCP czy nawet
kolejny Linux) mogą połączyć się z innymi maszynami w Internecie,
jednak system maskowania masq-gate zamienia wszystkie ich
połączenia, tak żeby wyglądały jakby pochodziły z masq-gate i
zajmuje się tym, aby dane przychodzące spowrotem do połączenia
maskowanego zostały przekazane do odpowiedniego systemu - tak
więc systemy w wewnętrznej sieci widzą bezpośrednie połączenie z
Internetem i są nieświadome, że ich dane są zmieniane.
2.6 Wymagania dla maskowania IP na Linuksie 2.x.
** Najnowsze informacje znajdziesz
na stronie zasobów dla maskowania. Trudno jest często uaktualniać HOWTO.**
Źródła jądra w wersji 2.0.x z
ftp.icm.edu.pl
(Tak, będziesz musiał sobie skompilować jądro z pewnymi dodatkami.
Zalecana jest najnowsza stabilna wersja.)
Moduły jądra, najlepiej 2.0.0 lub nowsze dostępne z
ftp.icm.edu.pl
(modules-1.3.57 jest najstarszą możliwą wersją)
Dobrze skonfigurowana sieć TCP/IP.
Jest to omówione w
NET-3-HOWTO (dostępnym w j. polskim) oraz w
Network Administrator's Guide.
Połączenie z Internetem dla twojego Linux-a.
Omówione w
ISP-Hookup-HOWTO (dostępne w j. polskim),
PPP-HOWTO (dostępne w j. polskim) oraz
PPP-over-ISDN mini-HOWTO.
ipfwadm 2.3 lub nowszy dostępny z
ftp.icm.edu.pl
Więcej informacji na temat wymaganej wersji znajduje się
na stronie o ipfwadm.
Możesz opcjonalnie nałożyć kilka łat do maskowania, aby
włączyć dodatkowe możliwości. Więcej informacji znajdziesz
na stronie zasobów dla maskowania (łaty te można nakładać na wszystkie wersje jądra
2.0).
3. Ustawianie maskowania IP.
Jeśli twoja prywatna sieć zawiera jakieś ważne informacje, pomyśl
trochę zanim zaczniesz korzystać z maskowania. Może to być twoja
brama do Internetu, ale także brama do twojej sieci dla kogoś z
zewnątrz.
3.1 Kompilacja jądra dla obsługi maskowania.
** Najnowsze informacje znajdziesz
na stronie zasobów dla maskowanieu. Trudno jest często uaktualniać HOWTO.**
Po pierwsze potrzebujesz źródeł jądra (najlepiej w wersji 2.0.0
lub nowszej).
Jeśli jest to twoja pierwsza kompilacja jądra, nie bój się.
Właściwie jest to raczej proste i opisane w
Kernel-HOWTO (dostępne w j. polskim).
Rozpakuj źródła do katalogu /usr/src/ poleceniem
tar xvzf linux-2.0.x.tar.gz -C /usr/src, gdzie x jest numerem
łaty (od 0 do najnowszej wersji).
(upewnij się, że istnieje katalog lub symboliczne dołączenie o nazwie
linux).
Nałóż odpowiednie łaty. Ponieważ pojawiają się nowe łaty,
szczegółów nie zamieszczę tutaj. Zajrzyj
na stronę zasobów dla maskowania, aby poznać najnowsze informacje.
Dalsze informacje na temat kompilacji znajdziesz w Kernel-HOWTO
i pliku README znajdującym się w katalogu ze źródłami.
Oto opcje, które musisz wkompilować:
Odpowiedz YES na następujące pytania:
* Prompt for development and/or incomplete code/drivers
CONFIG_EXPERIMENTAL
- pozwoli ci to na wybór eksperymentalnego kodu maskowania
* Enable loadable module support
CONFIG_MODULES
- pozwoli na ładowanie modułów
* Networking support
CONFIG_NET
* Network firewalls
CONFIG_FIREWALL
* TCP/IP networking
CONFIG_INET
* IP: forwarding/gatewaying
CONFIG_IP_FORWARD
* IP: firewalling
CONFIG_IP_FIREWALL
* IP: maskowanie (EXPERIMENTAL)
CONFIG_IP_MASQUERADE
- pomimo, że jest to eksperymentalne jest to *KONIECZNE*
* IP: ipautofw masquerade support (EXPERIMENTAL)
CONFIG_IP_MASQUERADE_IPAUTOFW
- zalecane
* IP: ICMP maskowanie
CONFIG_IP_MASQUERADE_ICMP
- obsługa maskowania pakietów ICMP, opcjonalne
* IP: always defragment
CONFIG_IP_ALWAYS_DEFRAG
- szczególnie zalecane
* Dummy net driver support
CONFIG_DUMMY
- zalecane
UWAGA: To są opcje tylko do maskowania. Włącz to co potrzebujesz
dla swojej konfiguracji.
Po kompilacji jądra powinieneś skompilować i zainstalować
moduły:
make modules; make modules_install
Potem powinieneś dodać kilka linii do swojego pliku
/etc/rc.d/rc.local (czy jakiegoś, który uważasz za stosowny),
aby automatycznie podczas każdego startu systemu załadować moduły
znajdujące się w /lib/modules/2.0.x/ipv4/:
.
.
.
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc
(i inne moduły jak ip_masq_cuseeme, ip_masq_vdolive
jeśli założyłeś łaty)
.
.
.
Uwaga: Możesz także załadować te moduły ręcznie przed użyciem
ip_masq, ale NIE używaj do tego celu kerneld - to NIE będzi
działać!
3.2 Przypisywanie adresów IP w prywatnej sieci.
Ponieważ wszystkie INNE maszyny nie mają przypisanych adresów,
musi być jakiś poprawny sposób, aby nadać im takie adresy.
Z IP Masquerade FAQ:
Jest RFC (#1597) informujące które adresy IP mogą być używane w
niepołączonych sieciach. Są 3 bloki przeznaczone do tego celu. Ten,
którego używam to podsieci klasy C o adresach 192.168.1.n do
192.168.255.n.
Z RFC 1597:
Rozdział 3: Prywatna przestrzeń adresowa
IANA (Internet Assigned Numbers Authority) zarezerwowało następujące
trzy bloki przestrzeni adresów IP dla prywatnych sieci:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Do pierwszego będziemy się odnosić jako "24-bitowy blok", do drugiego
jako "20-bitowy blok" i do trzeciego jako "16-bitowy blok". Zauważ, że
pierwszy blok to nic innego jak pojedynczy numer sieci klasy A,
podczas gdy drugi blok to ciągły blok 16. sieci klasy B i trzeci blok
to ciągły blok 255. sieci klasy C.
Tak więc, jeśli używasz sieci klasy C, powinieneś nadać swoim maszynom
adresy 192.168.1.1, 1.92.168.1.2, 1.92.168.1.3, ..., 192.168.1.x.
192.168.1.1 to zwykle gateway, który jest Linux-em łączącym cię z
Internetem. Zauważ, że 192.168.1.0 i 192.168.1.255, to odpowiednio
adresy sieci i broadcast, które są zarezerwowane. Unikaj użycia
tych adresów na twoich maszynach.
3.3 Konfiguracja INNYCH maszyn.
Oprócz ustawienia na każdej maszynie adresu IP, powinieneś także
ustawić odpowiedni gateway. Ogólnie, jest to raczej proste. Po
prostu wpisujesz adres swojego Linux-a (zwykle 192.168.1.1) jako
adres gateway-a.
Jako DNS możesz wpisać jakikolwiek dostępny adres serwera DNS-u.
Najlepiej ten sam, którego używa twój Linux. Możesz także dodać
jakąkolwiek domenę do przeszukiwania.
Po tym jak skonfigurowałeś te adresy IP, nie zapomnij zrestartować
odpowiednich serwisów lub systemów.
Następujące wskazówki konfiguracyjne zakładają, że używasz sieci
klasy C, twój Linux ma adres 192.168.1.1. Pamiętaj, że 192.168.1.0
i 192.168.1.255 są zarezerwowane.
Konfiguracja windows 95.
Jeśli jeszcze nie zainstalowałeś karty sieciowej, zrób to teraz.
Przejdź do Panel Sterowania/Sieć.
Dodaj protokół TCP/IP jeśli jeszcze go nie masz.
We właściwościach TCP/IP przejdź do Adres IP i
ustaw na 192.168.1.x (1 < x < 255) i wtedy ustaw Maskę podsieci na
255.255.255.0
Dodaj 192.168.1.1 jako twój gateway w polu Gateway.
W Konfiguracji DNS dodaj serwer DNS, którego używa twój
Linux (zwykle jest w pliku /etc/resolv.conf). Opcjonalnie
możesz dodać jakąś domenę do przeszukiwania.
Pozostaw resztę ustawień w takim stanie w jakim są, chyba że wiesz
co robisz.
Kliknij OK we wszystkich okienkach i zrestartuj system.
ping-nij Linux-a, aby sprawdzić połączenie sieciowe:
Start/Uruchom, wpisz ping 192.168.1.1
(To jest tylko test dla sieci lokalnej. Nie możesz jeszcze testować
połączenia na świat.)
Możesz opcjonalnie stworzyć w katalogu windows plik HOSTS,
żebys mógł używać nazw hostów (bez domeny) ze swojej sieci. W katalogu
windows znajduje się przykład o nazwie HOSTS.SAM.
Konfiguracja Windows for Workgroups 3.11.
Jeśli jeszcze nie zainstalowałeś karty sieciowej, zrób to teraz.
Zainstaluj pakiet TCP/IP 32b jeśli jeszcze go nie masz.
W Grupa główna/Ustawienia/Sieć kliknij Sterowniki.
Podświetl Microsoft TCP/IP-32 3.11b w Sterownikach
sieciowych, kliknij Ustawienia.
Ustaw adres IP na 192.168.1.x (1 < x < 255), ustaw Maskę
podsieci na 255.255.255.0 i domyślny gateway na 192.168.1.1
Nie włączaj Automatycznej konfiguracji DHCP i nie wpisuj
nic w wiersze WINS Server o ile jesteś w domenie Windows NT i
wiesz co robisz.
Kliknij DNS, wypełnij odpowiednie pola wymienione w kroku
6. w sekcji 3.3.1, potem kliknij OK.
Kliknij Zaawansowane, zaznacz Włącz DNS dla Windows
Name Resolution i Włącz sprawdzanie LMHOSTS jeśli używasz pliku
z hostami, podobnie do kroku 10. w sekcji 3.3.1.
Kliknij OK we wszystkich okienkach i zrestartuj system.
tt/ping/-nij Linux-a, aby sprawdzić połączenie sieciowe:
Start/Uruchomm wpisz ping 192.168.1.1
(To jest tylko test dla sieci lokalnej. Nie możesz jeszcze testować
połączenia na świat.)
Konfiguracja Windows NT.
Jeśli jeszcze nie zainstalowałeś karty sieciowej, zrób to teraz.
Przejdź do Grupa główna/Panel sterowania/Sieć
Dodaj protokół TCP/IP i powiązane składniki z menu Dodaj
oprogramowanie jeśli nie masz jeszcze zainstalowanego serwisu TCP/IP.
W sekcji Oprogramowanie sieciowe i karty sieciowe podświetl
protokół TCP/IP w Zainstalowane oprogramowanie
sieciowe.
W Konfiguracji TCP/IP zaznacz odpowiednią kartę
sieciową, np. [1]Novell NE2000 Adapter. Potem ustaw Adres IP
na 192.168.1.x (1 < x < 255), ustaw Maskę podsieci na
255.255.255.0 i Domyślny gateway na 192.168.1.1.
Nie włączaj Automatycznej konfiguracji DHCP i nie wpisuj
nic w wiersze WINS Server o ile jesteś w domenie Windows NT i
wiesz co robisz.
Kliknij DNS, wypełnij odpowiednie pola wymienione w kroku
6. w sekcji 3.3.1, potem kliknij OK.
Kliknij Zaawansowane, zaznacz Włącz DNS dla Windows
Name Resolution i Włącz sprawdzanie LMHOSTS jeśli używasz pliku
z hostami, podobnie do kroku 10. w sekcji 3.3.1.
Kliknij OK we wszystkich okienkach i zrestartuj system.
tt/ping/-nij Linux-a, aby sprawdzić połączenie sieciowe:
Start/Uruchomm wpisz ping 192.168.1.1
Konfiguracja systemów unix-owych.
Jeśli nie masz zainstalowanej swojej karty ani skompilowanego
odpowiedniego sterownika, zrób to teraz.
Zainstaluj TCP/IP, jak np. pakiet nettols, jeśli jeszcze tego
nie zrobiłeś.
Ustaw IPADDR na 192.168.1.x (1 < x < 255), ustaw
NETMASK na 255.255.255.0, GATEWAY na 192.168.1.1 i
BROADCAST na 192.168.1.255.
Np. możesz zmodyfikować plik
/etc/sysconfig/network-scripts/ifcfg-eth0 w dystrybucji
Red Hat, albo po prostu zrób to w Control Panel-u.
(inaczej postępuje się w SunOS, BSDi, Slckware Linux, itd.)
Dodaj serwer DNS i domenę do przeszukiwania w
/etc/resolv.conf.
W zależności od twoich ustawień możesz też uaktualnić
/etc/networks.
Zrestartuj odpowiednie serwisy albo po prostu zrestartuj system.
Wydaj polecenie ping: ping 192.168.1.1, aby
sprawdzić połączenie do gateway-a.
(To jest tylko test dla sieci lokalnej. Nie możesz jeszcze testować
połączenia na świat.)
Konfiguracja DOS-a z pakietem NCSA Telnet.
Jeśli jeszcze nie zainstalowałeś karty sieciowej, zrób to teraz.
Załaduj odpowiedni sterownik. Dla karty NE2000 wydaj polecenie
nwpd 0x60 10 0x300, jeśli karta jest ustawiona na IRQ=10 i
adres I/O=0x300.
Stwórz nowy katalog i rozpakuj pakiet NCSA Telnet,; pkunzip
tel2308b.zip.
Zmodyfikuj plik config.tel.
Ustaw myip=192.168.1.x (1 < x < 255) i
netmask=255.255.255.0.
W tym przykładzie powinieneś ustawić hardware=packet,
interrupt=10, ioaddr=60
Powinieneś mieć przynajmniej jedną maszynę ustawioną jako
gateway, tj. Linux-a:
name=default
host=twój.linux
hostip=192.168.1.1
gateway=1
Kolejna pozycja to DNS:
name=dns.domena.pl ; hostip=123.123.123.123; nameserver=1
Uwaga: zamień powyższe informacje na poprawne dla ciebie.
Zapisz plik config.tel
Połącz się poprzez telnet z Linux-em, aby sprawdzić połączenie
telnet 192.168.1.1
Konfiguracja MacOS z MacTCP.
Jeśli nie zainstalowałeś odpowiedniego sterownika dla twojej
karty Ethernetowej, teraz byłby bardzo dobry moment, aby to zrobić.
Otwórz MacTCP control panel. Wybierz odpowiedni sterownik
sieci (Ethernet, NIE EtherTalk) i kliknij przycisk More....
W Obtain Address kliknij Manually.
W IP Address wybierz Class C z listy. Zignoruj resztę
ustawień w tym okienku.
Wypełnij odpowiednie informacje w Domain name Service
information.
W Gateway Address wpisz 192.168.1.1.
Kliknij OK, aby zachować ustawienia. W głównym okienku
MacTCP control panel wpisz adres IP swojego Mac-a (192.168.1.x, 1
< x < 255) w wierszu IP Address.
Zamknij MacTCP control panel. Jeśli pojawi się okienko
sugerujące restart systemu - zrób tak.
Możesz opcjonalnie ping-nąć Linux-a, aby sprawdzić
połączenie. Jeśli masz program freeware'owy MacTCP Watcher,
kliknij na przycisk Ping i wpisz adres swojego Linux-a
(192.168.1.1) w okienku, które się pojawi. (To jest tylko test dla sieci
lokalnej. Nie możesz jeszcze testować połączenia na świat.)
Opcjonalnie możesz także stworzyć plik Hosts w System
Folders, żeby używać tylko nazw hostów bez domeny w swojej sieci
lokalnej. Plik powinien się już znajdować w System Folders i powinien
zawierać kilka (zakomentowanych) przykładowych pozycji, które możesz
zmodyfikować na swoje potrzeby.
Konfiguracja systemów MacOS z Open Transport.
Jeśli nie zainstalowałeś odpowiedniego sterownika dla twojej
karty Ethernetowej, teraz byłby bardzo dobry moment, aby to zrobić.
Otwórz TCP/IP Control Panel i wybierz User Mode
... z menu Edit. Sprawdź czy user mode jest ustawiony
conajmniej na Advanced i kliknij OK.
Wybierz Configuration ... z menu File. Zaznacz
konfigurację Default i kliknij Duplicate .... Wpisz
"Ip masq" (lub coś co zaznaczy, że jest to specjalna
konfiguracja) w okienku Duplicate Configuration, prawdopodobnie
będzie tam coś jak Default Copy. Potem kliknij OK i Make
Active.
Zaznacz Ethernet z okienka Connect via.
Zaznacz odpowiednią pozycję na liście Configure. Jeśli nie
wiesz którą opcję wybrać, prawdopodobnie powinieneś wybrać ponownie
konfigurację Default i wyjść. Ja używam Manually.
Wpisz adres IP swojego Mac-a (192.168.1.x, 1 < x < 255) w
okienku IP Address.
Wpisz 255.255.255.0 w okienku Subnet mask.
Wpisz 192.168.1.1 w okienku Router address.
Wpisz adresy IP swoich serwerów DNS w okienku Name server
addr.
Wpisz swoją domenę Internetową (np. microsoft.com) w okienku
Starting domain name w wierszu Implicit Search Path:.
Następujące procedury są opcjonalne. Niepoprawne wartości mogą
powodować złe zachowanie. Jeśli nie jesteś pewien, to lepiej je
zostawić puste, niezaznaczone i/lub niewybrane. Usuń wszelkie
informacje z tych pól, jesli jest to konieczne. O ile wiem, to nie ma
sposobu, żeby zabronić poprzez okienka TCP/IP systemowi używania
poprzednio wybranego alternatywnego pliku "Hosts". Jeśli
wiesz coś na ten temat, to jestem zainteresowany.
Zaznacz 802.3 jeśli twoja sieć wymaga ramek 802.3.
Kliknij Options..., aby upewnić się, że TCP/IP jest
aktywne. Ja używam opcji Load only when needed. Jeśli uruchomisz
i wyłączysz aplikację TCP/IP wiele razy bez restartowania maszyny,
może się okazać, że odznaczenie opcji Load only when needed
zredukuje zapotrzebowanie na pamięć w twojej maszynie. Z
niezaznaczoną tą opcją stosy TCP/IP są zawsze ładowane i dostępne do
użytku. Jeśli jest zaznaczona, stosy TCP/IP są ładowane automatycznie
kiedy są potrzebne i usuwane z pamięci kiedy już nie są potrzebne. To
właśnie ten proces ładowania/usuwania może sfragmentować twoją pamięć.
Możesz ping-nąć Linux-a, aby sprawdzić połączenie sieciowe.
Jeśli masz program freeware'owy MacTCP Watcher,
kliknij na przycisk Ping i wpisz adres swojego Linux-a
(192.168.1.1) w okienku, które się pojawi. (To jest tylko test dla sieci
lokalnej. Nie możesz jeszcze testować połączenia na świat.)
Opcjonalnie możesz także stworzyć plik Hosts w System
Folders, żeby używać tylko nazw hostów bez domeny w swojej sieci
lokalnej. Plik może, ale nie musi, już się znajdować w System Folders.
Jeśli jest, to powinien zawierać kilka (zakomentowanych) przykładowych
pozycji, które możesz zmodyfikować na swoje potrzeby. Jeśli go nie ma,
możesz pobrać kopię z systemu z MacTCP, albo po prostu stworzyć swój
własny (składnia jest taka jak w unix-owym /etc/hosts.
Opisane to jest na stronie 33. w RFC 1035). Jeśli już stworzyłeś taki
plik, otwórz TCP/IP control panel, kliknij Select Hosts File
... i otwórz plik Hosts.
Kliknij Close lub Quit z menu File i potem
kliknij Save, aby zachować zmiany, które zrobiłeś.
Zmiany będa uwzględnione natychmiast, ale restart systemu nie
zaszkodzi.
Konfiguracja sieci Novell z DNS-em.
Jeśli nie zainstalowałeś odpowiedniego sterownika dla twojej
karty Ethernetowej, teraz byłby bardzo dobry moment, aby to zrobić.
Zciągnij plik tcpip16.exe z adresu
ftp.novell.com.
Zmodyfikuj c:\nwclient\startnet.bat. Oto kopia mojego:
SET NWLANGUAGE=ENGLISH
LH LSL.COM
LH KTC2000.COM
LH IPXODI.COM
LH tcpip
LH VLM.EXE
F:
Zmodyfikuj c:\nwclient\net.cfg (zmień Link Driver na
swój):
Link Driver KTC2000
Protocol IPX 0 ETHERNET_802.3
Frame ETHERNET_802.3
Frame Ethernet_II
FRAME Ethernet_802.2
NetWare DOS Requester
FIRST NETWORK DRIVE = F
USE DEFAULTS = OFF
VLM = CONN.VLM
VLM = IPXNCP.VLM
VLM = TRAN.VLM
VLM = SECURITY.VLM
VLM = NDS.VLM
VLM = BIND.VLM
VLM = NWP.VLM
VLM = FIO.VLM
VLM = GENERAL.VLM
VLM = REDIR.VLM
VLM = PRINT.VLM
VLM = NETX.VLM
Link Support
Buffers 8 1500
MemPool 4096
Protocol TCPIP
PATH SCRIPT C:\NET\SCRIPT
PATH PROFILE C:\NET\PROFILE
PATH LWP_CFG C:\NET\HSTACC
PATH TCP_CFG C:\NET\TCP
ip_address xxx.xxx.xxx.xxx
ip_router xxx.xxx.xxx.xxx
i na końcu stwórz c:\bin\resolv.cfg.
SEARCH DNS HOSTS SEQUENTIAL
NAMESERVER 207.103.0.2
NAMESERVER 207.103.11.9
Mam nadzieję, że to pomoże niektórym podłączyć ich sieci Novell.
Konfiguracja jest poprawna dla NetWare 3.1x i 4.x
Konfiguracja OS/2 Warp.
Jeśli nie zainstalowałeś odpowiedniego sterownika dla twojej
karty Ethernetowej, teraz byłby bardzo dobry moment, aby to zrobić.
Zainstaluj protokół TCP/IP jeśli jeszcze go nie masz.
Przejdź do Programms/TCP/IP (LAN) / TCP/IP.
W Network dodaj swój adres TCP/IP i ustaw maskę sieci
(255.2555.255.0).
W Routing wciśnij Add. Ustaw Type na default
i wpisz w polu Router Address adres swojego Linux-a.
(192.168.1.1).
Ustaw w polu Hosts ten sam adres DNS, którego używa twój
Linux.
Zamknij TCP/IP control panel. Odpowiedz yes na pojawiające się
pytania.
Zrestartuj system.
Możesz ping-nąć Linux-a, aby sprawdzić konfigurację sieci.
W oknie OS/2 Command prompt wpisz ping 192.168.1.1.
Jeśli pakiety ping-a przychodzą wszystko jest w porządku.
Konfigurowanie innych systemów.
Powinno się to robić podobnie. Sprawdź poprzednie punkty. Jeśli
jesteś zainteresowany opisaniem konfiguracji w jakimkolwiek
systemie, to wyślij szczegółowe instrukcje na adres
ambrose@writeme.com.
3.4 Konfiguracja zasad forwardingu IP.
W tym momencie, powinieneś mieć zainstalowane jądro wraz ze
wszystkimi potrzebnymi pakietami, jak również załadowane moduły.
Także adresy IP, gateway-a i DNS-u na INNYCH maszynach powinny
być ustawione.
Teraz jedyne co pozostało, to użycie ipfwadm, aby przekazywać
odpowiednie pakiety odpowiednim maszynom.
** Można to zrobić na wiele róznych sposbów. Poniższe sugestie i
przykłady działały u mnie, ale ty możesz mieć inne pomysły. Więcej
szczegółów znajdziesz w rozdziale 4.4 i na stronie podręcznika
systemowego o ipfwadm. **
ipfwadm -F -p deny
ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0
gdzie x jest jednym z poniższych adresów w zależności od klasy
twojej sieci, a yyy.yyy.yyy.yyy jest adresem twojej sieci:
Maska | x | Podsieć
~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
255.0.0.0 | 8 | Klasa A
255.255.0.0 | 16 | Klasa B
255.255.255.0 | 24 | Klasa C
255.255.255.255 | 32 | Point-to-point
Na przykład jeśli jestem w posieci klasy C, wpisałbym:
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
Ponieważ pakiety bootp przychodzą z poprawnym IP kiedy klient
jeszcze nic na temat adresu IP nie wie, dla tych którzy używają
serwera bootp w maszynach z maskowaniem czy firewall-ingiem
konieczne jest użycie poniższego polecenia przed poleceniem z deny:
ipfwadm -I -a accept -S 0/0 68 -D 0/0 67 -W bootp_clients_net_if_name -P udp
Możesz to także zrobić dla każdej maszyny osobno. Na przykład jeśli
chcę, żeby maszyny 192.168.1.2 i 192.168.1.8 miały dostęp do
Internetu, a inne nie, to wpisałbym:
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.2/32 -D 0.0.0.0/0
ipfwadm -F -a m -S 192.168.1.8/32 -D 0.0.0.0/0
Opcjonalnie możesz wpisać maskę podsieci zamiast wartości:
192.168.1.0/255.255.255.0.
Popularnym błędem jest umieszczanie jako pierwszego polecenia:
ipfwadm -F -p masquerade
Nie czyń maskowania domyślną zasadą - jeśli tak zrobisz,
ktoś kto może manipulować swoim routingiem, będzie w stanie
stworzyć tunel bezpośrednio poprzez twój gateway, aby ukryć swoją
tożsamość!
Możesz dodać te linie do plików /etc/rc.local, do jakiegoś
innego pliku rc.*, lub robić to ręcznie za każdym razem kiedy
potrzebujesz maskowania.
Szczegóły na temat ipfwadm znajdziesz w rozdziale 4.4.
3.5 Testowanie maskowania.
Nadszedł czas, żeby wypróbować to wszystko po ciężkiej pracy.
Upewnij się, że Linux jest podłączony do Internetu.
Możesz spróbować posurfować po INTERNECIE!!! na swoich
INNYCH maszynach i sprawdzić czy się uda. Za pierwszym razem
radzę, użyć adresu IP zamiast nazwy kanonicznej, ponieważ twoje
ustawienia DNS mogą być niepoprawne.
Na przykład możesz sprawdzić stronę projektu JTZ
(http://www.jtz.org.pl/) podając jako adres
http://156.17.40.40/.
Jeśli ujrzysz ją, to gratulacje! Działa! Możesz teraz spróbować
podać nazwę kanoniczną, potem telnet, ftp, Real Audio, True Speech
i co tam jeszcze jest obsługiwane przez maskowanie ... .
Jak dotąd nie mam problemów z powyższymi ustawieniami i jest to w
pełni zasługa ludzi, którzy poświęcają swój czas, aby ta wspaniała
właściwość działała.
4. Inne sprawy związane z maskowaniem IP i obsługa oprogramowania.
4.1 Problemy z maskowaniem IP.
Niektóre protokoły nie będą obecnie działały z maskowaniem,
ponieważ albo zakładają pewne fakty na temat numerów portów, albo
kodują dane na temat adresów i portów w swoich strumieniach - te
drugie potrzebują specyficznych proxies wbudowanych w kod
maskowania, aby działały.
4.2 Wchodzące serwisy.
Maskowanie nie potrafi w ogóle obsługiwać takich serwisów. Jest
kilka sposobów, aby takowe działały, ale są one zupełnie nie
związane z maskowaniem i są częścią standardowego działania
firewall-i.
Jeśli nie wymagasz wysokiego poziomu bezpieczeństwa, to możesz po
prostu przekierować porty. Są różne sposoby, aby to zrobić - ja
używam zmodyfikowanego kodu programu redir (który mam nadzieję
będzie dostępny wkrótce z sunsite i jego kopii). Jeśli chcesz mieć
jakiś poziom autoryzacji połączeń wchodzących, to możesz użyć albo
TCP wrappers albo Xinetd "powyżej" redir w wersji 0.7
lub nowszej, aby wpuszczać tylko konkretne adresy IP, albo użyj
jakichś innych narzędzi. TIS Firewall Toolkit jest dobrym miejscem,
w którym możesz poszukać narzędzi i informacji.
Więcej informacji znajdziesz na
stronie z zasobami dla maskowania IP.
4.3 Obsługiwane oprogramowanie klienckie i uwagi o innych ustawieniach.
** Nastepującą listą nikt się już nie zajmuje. Zajrzyj na
tę stronę, aby dowiedzieć
się które aplikacje działają poprzez maskowanie na Linux-ie. Więcej
informacji także na
stronie z zasobami dla maskowania IP. **
Ogólnie aplikacja, która używa TCP/UDP powinna działać. Jeśli masz
jakieś sugestie, wskazówki lub pytania, na temat aplikacji z
maskowaniem IP, odwiedź
tę stronę prowadzoną przez Lee Nevo.
Oprogramowanie, które działa.
Ogólne:
HTTPwszystkie obsługiwane platformy, surfowanie po sieci
POP & SMTPwszystkie obsługiwane platformy, klienci
e-mail
Telnetwszystkie obsługiwane platformy, zdalne logowanie
FTPwszystkie obsługiwane platformy, z modułem ip_masq_ftp.o
(nie wszystkie adresy działają z pewnymi klientami; np. do niektórych
nie można się dostać przy pomocy ws_ftp32, ale działa z Netscape)
Archiewszystkie obsługiwane platformy, szukanie plików (nie
wszytkie wersje oprogramowania są obsługiwane)
NNTP (USENET)wszystkie obsługiwane platformy, klient USENET
NEWS
VRMLWindows (przypuszczalnie wszystkie obsługiwane
platformy), surfowanie po wirtualnej rzeczywistości.
traceroutegłównie platformy na UNIX-ie, niektóre wersje
mogą nie działać
pingwszystkie platformy, z łatą ICMP
wszystko oparte o IRCwszystkie obsługiwane platformy, z
modułami ip_masq_irc.o
klient Gopherwszystkie obsługiwane platformy
klient WAISwszystkie obsługiwane platformy
Klienci Multimedialni:
Real Audio PlayerWindows, network streaming audio z załadowanym
modułem ip_masq_raudio
True Speech PLayer 1.1bWindows, network streaming audio
Internet Wave PlayerWindows, network streaming audio
Worlds Chat 0.9aWindows, program Client-Server 3D do
pogawędek
Alpha WorldsWindows, program Client-Server 3D do
pogawędek
Internet Phone 3.2Windows, komunikacja audio Peer-to-peer,
można się z tobą porozumieć tylko jeśli zainicjowałeś połączenie, ale
nie można zadzwonić do ciebie
PowwowWindows, komunikacja na bazie tablic
(ogłoszeniowych), można się z tobą porozumieć jeśli zainicjowałeś
połączenie; nie można się do ciebie dodzwonić
CU-SeeMe, wszystkie obsługiwane platformy, z załadowanymi
modułami cuseeme; szczegóły znajdziesz na
stronie z zasobami dla maskowania IP.
VDOLiveWindows, z łatą vdolive
Uwaga: Niektóre programy, jak IPhone i Powwow mogą działać nawet
jeśli to nie ty zaincjowałeś połączenie poprzez użycie pakietu
ipautofw. Zobacz w rozdziale 4.6.
Inni klienci:
NCSA Telnet 2.3 08DOS, pakiet zawierający telnet, ftp,
ping, itp.
PC-anywhere for Windows 2.0MS-Windows, zdalna kontrola PC
poprzez TCP/IP, działa tylko jeśli jest klientem a nie hostem.
Socket Watchużywa ntp - protokół czasu w sieci
pakiet net-acct w Linux-ieLinux, pakiet do zarządzania i
monitorowania sieci.
Oprogramowanie nie działające.
Intel Internet Phone Beta 2Łączy się, ale głos wędruje
tylko w jedną stronę (na zewnątrz)
Intel Streaming media Viewer beta 1Nie może połączyć się z
serwerem
Netscape CoolTalkNie może połączyć się z drugą stroną
talk, ntalknie będą działać - wymagają napisania proxy dla
jądra
WebPhoneW tej chwili nie może działać (robi złe założenia
na temat adresów)
XNietestowane, ale sądze, że nie może działać o ile ktoś
stworzy proxy dla X, który jest prawdopodobnie osobnym programem dla
kodu maskowania. Jednym ze sposobów, aby to działało jest użycie
ssh jako połączenia i użycie wewnętrznego proxy X.
Przetestowane platformy/systemy operacyjne jako INNE maszyny.
Linux
Solaris
Windows 95
Windows NT (workstation i serwer)
Windows For Workgroup 3.11 (z pakietem TCP/IP)
Windows 3.1 (z pakietem Chameleon)
Novel 4.01 Server
OS/2 (włącznie z Warp v3)
Macintosh OS (z MacTCP lub Open Transport)
DOS (z pakietem NCSA Telnet, DOS Trumpet działa częściowo)
Amiga (ze stosem AmiTCP lub AS225)
VAX Stations 3520 and 3100 z UCX (stos TCP/IP dla VMS)
Alpha/AXP z Linux-em Redhat-em
SCO Openserver (v3.2.4.2 i 5)
IBM RS/6000 z uruchomionym na nim AIX-em
(Ktoś sprawdzał inne platformy?)
4.4 Administracja Firewall-em IP (ipfwadm)
Rozdział ten pogłębia wiedzę na temat stosowania polecenia
ipfwadm.
Poniżej jest ustawienie dla system z
maskowaniem/firewalling-iem, z łączem PPP i statycznymi
adresami PPP. Zaufanym interfejsem jest 192.168.255.1, interfejs
PPP został zmieniony, aby chronić winnych :). Każdy wchodzący i
wychodzący interfejs jest podany osobno, aby wychwycić spoofing IP
jak i zatkany (stuffed) routing i/lub maskowanie. Wszystko co nie
jest wyraźnie dozwolone jest zabronione!
#!/bin/sh
#
# /etc/rc.d/rc.firewall, define the firewall configuration, invoked from
# rc.local.
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# testowanie, poczekaj trochę, potem wyczyść wszystkie regułki.
# odkomentuj poniższe linie jeśli chcesz wyłączyć firewall
# automatycznie po 10. minutach.
# (sleep 600; \
# ipfwadm -I -f; \
# ipfwadm -I -p accept; \
# ipfwadm -O -f; \
# ipfwadm -O -p accept; \
# ipfwadm -F -f; \
# ipfwadm -F -p accept; \
# ) &
# Wchodzące, wyczyść i ustaw domyślną regułkę na zabronione. Właściwie
# domyślna regułka jest nieodpowiednia, ponieważ zrobiliśmy inną: nie
# wpuszczaj nikogo i loguj wszystko.
ipfwadm -I -f
ipfwadm -I -p deny
# interfejs i maszyny lokalne mogą się dostać wszędzie
ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0
# interfejs odległy, twierdzący, że jest od nas, spoofing IP, nie
# wpuszczaj
ipfwadm -I -a deny -V twój.stały.adres.PPP -S 192.168.0.0/16 -D 0.0.0.0/0 -o
# interfejs odległy, jakiekolwiek źródło, jeśli celem jest stały adres
# PPP, to wpuść
ipfwadm -I -a accept -V twój.stały.adres.PPP -S 0.0.0.0/0 -D twój.stały.adres.PPP/32
# interfejs loopback (lo) jest w porządku
ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
# wychwyć wszystko, każdy inny ruch wchodzący jest zabroniony i
# logowany, szkoda, że nie ma opcji logowania, ale to robi to samo.
ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
# Wychodzące, wyczyść i ustaw domyślną regułkę na zabronione. Właściwie
# domyślna regułka jest nieodpowiednia, ponieważ zrobiliśmy inną: nie
# wpuszczaj nikogo i loguj wszystko.
ipfwadm -O -f
ipfwadm -O -p deny
# interfejs lokalny, wszystko z zewnątrz do nas jest w porządku
ipfwadm -O -a accept -V 192.168.255.1 -S 0.0.0.0/0 -D 192.168.0.0/16
# wychodzące do lokalnej sieci na zdalnym interfejsie, stuffed
# routing, odrzuć
ipfwadm -O -a deny -V twój.statyczny.adres.PPP -S 0.0.0.0/0 -D 192.168.0.0/16 -o
# wychodzące z lokalnej sieci na zdalnym interfejsie, stuffed
# masquerading, odrzuć
ipfwadm -O -a deny -V twój.statyczny.adres.PPP -S 192.168.0.0/16 -D 0.0.0.0/0 -o
# wychodzące z lokalnej sieci na zdalnym interfejsie, stuffed
# masquerading, odrzuć
ipfwadm -O -a deny -V twój.statyczny.adres.PPP -S 0.0.0.0/0 -D 192.168.0.0/16 -o
# wszystko inne wychodzące na zdalnym interfejsie jest w porządku
ipfwadm -O -a accept -V twój.statyczny.adres.PPP -S twój.statyczny.adres.PPP/32 -D 0.0.0.0/0
# interfejs lokalny (lo) jest w porządku
ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
# wychwyć wszystko, każdy inny ruch wychodzący jest zabroniony i
# logowany, szkoda, że nie ma opcji logowania, ale to robi to samo.
ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
# Przekazywanie, wyczyść i ustaw domyślną regułkę na zabronione. Właściwie
# domyślna regułka jest nieodpowiednia, ponieważ zrobiliśmy inną: nie
# wpuszczaj nikogo i loguj wszystko.
ipfwadm -F -f
ipfwadm -F -p deny
# maskuj z lokalnej sieci na lokalnym interfejsie dokądkolwiek
ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0
# wychwyć wszystko, każdy inny ruch jest zabroniony i
# logowany, szkoda, że nie ma opcji logowania, ale to robi to samo.
ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
Możesz blokować ruch do poszczególnego adresu przy pomocy opcji -I,
-O i -F. Pamiętaj, że regułki są skanowane od góry w dół i -a
oznacza "dodaj" do już istniejących regułek, tak więc
wszelkie szczegółowe regułki muszą pojawić się przed zasadami
ogólnymi. Na przykład (nietestowane):
Użycie opcji -I. Przypuszczalnie najszybsze rozwiązanie, ale
zatrzymuje tylko lokalne maszyny, firewall jako taki, ma nadal
dostęp do zabronionych adresów. Oczywiście możesz dopuścić taką
kombinację.
... początek regułek -I ...
# odrzuć i loguj lokalny interfejs i lokalne maszyny próbujące dostać
# się do 204.50.10.13
ipfwadm -I -a reject -V 192.168.255.1 -S 192.168.0.0/16 -D 204.50.10.13/32 -o
# lokalny interfejs i maszyny dokądkowiek jest w porządku
ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0
... koniec regułek -I ...
Użycie opcji -O. Najwolniejsze ponieważ pakiety najpierw przechodzą
przez maskowanie, ale ta regułka zatrzymuje nawet firewall przed
dostępem do zabronionych adresów.
... początek regułek -O ...
# odrzuć i zaloguj wychodzące do 204.50.10.13
ipfwadm -O -a reject -V twój.statyczny.adres.PPP -S twój.statyczny.adres.PPP/32 -D 204.50.10.13/32 -o
# wszystko inne wychodzące na odległym interfejsie jest w porządku.
ipfwadm -O -a accept -V twój.statyczny.adres.PPP -S twój.statyczny.adres.PPP/32 -D 0.0.0.0/0
... koniec regułek -O ...
Użycie opcji -F. Prawdopodobnie wolniejsze niż -I i wciąż
zatrzymuje tylko maszyny zamaskowane (tj. wewnętrzne), firewall ma
nadal dostęp do zabronionych adresów.
... początek regułek -F ...
# odrzuć i zaloguj z lokalnej sieci na interfejsie PPP do
# 204.50.10.13
ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/16 -D 204.50.10.13/32 -o
# maskuj z lokalnej sieci na lokalnym interfejsie dokądkolwiek
ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0
... koniec regułek -F ...
Nie ma potrzeby na specjalną regułkę, aby pozwolić na ruch z
192.168.0.0/16 do 204.50.11.0; jest to zapewnione przez regułki
ogólne.
Jest więcej niż jeden sposób ujęcia interfejsów w powyższych
regułkach. Na przykład zamiast -V 192.168.255.1 możesz wpisać -W
eth0; zamiast -V twój.statyczny.adres.PPP możesz użyć -W ppp0.
Prywatny wybór i dokumentacja, to więcej niż cokolwiek innego.
4.5 Maskowanie IP i dzwonienie na żądanie.
Jeśli chciałbyś tak ustawić swoją sieć, aby połączyć się z
Internetem automatycznie, to narzędzie diald - dzwonienie na żądanie
- będzie swietnym pakietem.
Aby ustawić diald, zajrzyj na
stronę Ustawianie Diald dla linux-a.
[Od tłumacza] Możesz tez zajrzeć do
Diald mini HOWTO
(dostępne w j. polskim).
Jak już ustawisz diald i maskowanie IP, możesz podejść do
którejkolwiek z maszyn klienckich i zainicjować połączenie WWW, telnet
lub FTP.
Diald wychwyci nadchodzące żądanie, zadzwoni do prowajdera i
ustawi połączenie.
Przy pierwszym połączeniu pojawi się przerwa. Jest to
nieuniknione jeśli używasz analogowych modemów. Czas, który jest
potrzebny do ustawienia połączenia modemów i PPP, spowoduje, że twój
program kliencki stwierdzi rozłączenie. Można tego uniknąć jeśli
używasz modemów ISDN. Wszystko co musisz zrobić, to przerwać bieżący
proces na kliencie i ponowić go.
4.6 Pakiet do przekazywania IPautofw.
IPautofw jest programem do ogólnie pojętego przekazywania
pakietów TCP i UDP w Linux-ie. Żeby użyć pakietu, który wymaga
transmisji UDP trzeba załadować specyficzny moduł ip_masq -
ip_masq_raudio, ip_masq_cuseeme, itd. Ipautofw odgrywa bardziej
ogólną rolę; będzie on przekazywał każdy rodzaj ruchu włącznie z
tym, którego nie przepuszczą moduły specyficzne dla danej
aplikacji. Jeśli zarządza się tym programem niepoprawnie można
stworzyć dziurę w bezpieczeństwie.
5. Różności.
5.1 Zdobywanie pomocy.
** Proszę SPRÓBUJ NIE wysyłać do mnie listów na temat problemów z
maskowaniem IP. Z powodu ilości własnych zajęć nie mogę obiecać, że
odpowiem na wszystkie listy nie związane ze stroną WWW. Zamiast tego
ślij proszę takie listy
na listę dyskusyjną o maskowaniu IP (sądzę, że jest to
najlepsze źródło pomocy). Przepraszam za to, ale nie chcę abyś czekał
tygodniami na odpowiedź.
Na stronie z zasobami dla maskowania IP powinieneś znaleźć najwięcej informacji o
konfiguracji.
Zapisanie się na listę dyskusyjną o maskowaniu IP (zalecane).
Aby zapisać się, wyślij list o tytule "subscribe" (bez
cudzysłowów) na adres
masq-request@indyramp.com
Aby się wypisać, wyślij list o tytule "unsubscribe": (bez
cudzysłowów)
na adres powyżej
Aby otrzymać pomoc na temat korzystania z listy dyskusyjnej, wyślij
list o tytule "archive help" lub "archive dir"
(bez cudzysłowów)
na powyższy adres
W archiwum
listy dyskusyjnej o maskowaniu IP znajdziesz wszystkie listy
dotychczas wysłane na tę listę.
To
mini HOWTO o maskowaniu IP jest dla jąder 2.x (jeśli używasz 1.3.x
lub 2.x)
Zajrzyj do
tego mini HOWTO jeśli masz starsze jądro.
W
FAQ na temat maskowania IP znajdziesz ogólne informacje
Na stronie X/OS Ipfwadm zmajdziesz źródła, binaria, dokumentację i inne
informacje na temat pakietu ipfwadm.
Na stronie aplikacji, które są kompatybilne z maskowaniem IP (stworzonej przez
Lee Nevo) znajdziesz sztuczki i kruczki na temat przystosowywania
aplikacji do działania z maskowaniem IP.
Jeśli jesteś początkującym i konfigurujesz sieć, to
Network Adminitration Guide z LDP jest dla ciebie konieczną
lekturą.
W
NET-3-HOWTO (dostępne w j. polskim) także znajdziesz dużo
pożytecznych informacji na temat sieci i Linuxa.
W
ISP-Hookup-HOWTO i
PPP-HOWTO
(oba w j. polskim) znajdziesz informacje jak połączyć się ze swoim
prowajderem.
Ethernet HOWTO jest dobrym źródłem informacji o instalacji
sieci lokalnej opartej na Ethernecie.
Możesz także zajrzeć do
Firewall HOWTO (w j. polskim)
Kernel-HOWTO poprowadzi cię przez proces kompilacji jądra.
Inne HOWTO.
Wysłanie listów na grupy dyskusyjne USENET
np. pl.comp.os.linux.
[Od tłumacza: Uwaga: wkrótce pojawi się grupa
pl.comp.os.linux.sieci;
jeśli taka już jest, to proszę tam kierować pytania o maskowaniu
IP.]
5.2 Podziękowania.
Gabrielowi Beitlerowi, gbeitler@aciscorp.com
za rozdział 3.3.8 (konfiguracja Novela)
Edowi Doolittle'owi, dolittle@math.toronto.edu
za sugestję odnośnie opcji -V w poleceniu ipfwadm dla
zwiększenia bezpieczeństwa
Matthew Driverowi, mdriver@cfmeu.asn.au
za obszerną pomoc w pracach przy tym HOWTO i dostarczenie rozdziału
3.3.1 (konfiguracja Windows 95)
Kenowi Evesowi, ken@eves.com
za FAQ, które dotarcza nieocenionych informacji dla tego HOWTO
Edowi Lottowi, edlott@neosoft.com
za długą listę sprawdzonych systemów i oprogramowania
Nigelowi Metheringhamowi,
Nigel.Metheringham@theplanet.net
za dostarczenie swojej wersji HOWTO na temat filtrowania pakietów IP i
maskowania pakietów IP, które czynią to HOWTO lepszym i bardziej
technicznym dokumentem;
rozdziały 4.1, 4.2 i inne
Keith Owens, kaos@ocs.com.au
za dostarczenie wspaniałego podręcznika na temat ipfwadm w rozdziale
4.2
za poprawki do opcji ipfwadm -deny, które nie pozwalają na
powstanie dziury w bezpieczeństwie, i wyjaśnienie statusu pinga
przez maskowanie IP
Robowi Pelkey, rpelkey@abacus.bates.edu
za dostarczenie rozdziału 3.3.6 i 3.3.7 (konfiguracja MacTCP i Open
Transport)
Harish Pillay, h.pillay@ieee.org
za dostarczenie rozdziału 4.5 (dzwonienie na żadanie przy pomocy diald)
Markowi Purcellowi, purcell@rmcs.cranfield.ac.uk
za dostarczenie rozdziału 4.6 (IPautofw)
Ueli Rutishauser, rutish@ibm.net
za dostarczenie rozdziału 3.3.9 (konfiguracja OS/2 Warp)
Johnowi B. (Brent) Williamsowi, forerunner@mercury.net
za dostarczenie rozdziału 3.3.7 (konfiguracja Open Transport)
Enrique Pessoa Xaveir, enrique@labma.ufrj.br
za sugestję konfiguracji startu przez bootp
programistom zajmującym się maskowaniem IP za tę wspaniałą
własność
Delian Delchev, delian@wfpa.acad.bg
Nigel Metheringham, Nigel.Metheringham@theplanet.net
Keith Owens, kaos@ocs.com.au
Jeanette Pauline Middelink, middelin@polyware.iaf.nl
David A. Ranch, trinity@value.net
Miquel van Smoorenburg, miquels@q.cistron.nl
Jos Vos, jos@xos.nl
I wielu innym, o których mogłem tutaj zapomnieć (daj znać)
wszystkim użytkownikom przysyłającym komentarze i sugestie na
listę dyskusyjną. Szczególnie, tym którzy zgłaszali błędy w
dokumentacji i obsługiwanych i nieobsługiwanych klientów.
Przepraszam, że nie dołączyłem informacji, które podesłał mi jakiś
użytkownik. Otrzymuję wiele sugestii i pomysłów, ale po prostu nie mam
wystarczająco dużo czasu, aby je zweryfikować, albo po prostu tracę
je. Robię co tylko mogę, aby dołączyć wszystkie przysyłane mi
informacje. Dziękuję za wysiłek i mam nadzieję, że zrozumiesz moją
sytuację.
5.3 Odwołania.
FAQ na temat maskowania IP autorstwa Kena Evesa
Lista dyskusyjna o maskowaniu IP zrobiona przez Indyramp
Consulting
Strona o ipfwadm autorstwa X/OS
Różne dokumenty HOWTO związane z siecią
Wyszukiwarka
Podobne podstrony:
IP Masquerade plIP Masquerade pl 2 (2)IP Masquerade pl (3)IP Masquerade pl 1 (2)ip masquerade pl 3ip masquerade pl 4IP Masquerade pl 5 (2)ip masquerade 4 76uxwqszfb4ydmpl3s2mde2fclt2ds67k3msz2q 76uxwqszfb4ydmpl3s2mde2fclt2ds67k3msz2qIP Alias plip masquerade 5 2g34sbvszxbyvkmpenpcu5lg265djaoaicxyriy 2g34sbvszxbyvkmpenpcu5lg265djaoaicxyriyip alias pl 4ip masquerade 2 ikns7ikj474ryae6s6x236bemyol3tbyj3dxx2q ikns7ikj474ryae6s6x236bemyol3tbyj3dxx2qip alias pl 3ip alias pl 5ip masquerade 1 mppd5zsupi3kpyvw6vymvirhxcavzfrwdfdweci mppd5zsupi3kpyvw6vymvirhxcavzfrwdfdweciip alias pl 1IP Alias pl (2)ip masquerade cosr2qhjyy3vxp2xmghz7tbacu5s3nf37asv6fq cosr2qhjyy3vxp2xmghz7tbacu5s3nf37asv6fqIP Alias pl (3)więcej podobnych podstron