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.
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:
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.
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:
Oficjalną 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:
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).
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.
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.
** Najnowsze informacje znajdziesz na stronie zasobów dla maskowania. Trudno jest czêsto uaktualniaæ HOWTO.**
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.
** Najnowsze informacje znajdziesz na stronie zasobów dla maskowanieu. Trudno jest czêsto uaktualniaæ HOWTO.**
/usr/src/
poleceniem
tar xvzf linux-2.0.x.tar.gz -C /usr/src
, gdzie x jest numerem
łaty (od 0 do najnowszej wersji).linux
).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.
make modules; make modules_install
/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æ!
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.
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.
/etc/resolv.conf
). Opcjonalnie
możesz dodaæ jakąś domenê do przeszukiwania.ping
-nij Linux-a, aby sprawdziæ połączenie sieciowe:
Start/Uruchom, wpisz ping 192.168.1.1
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
.
ping 192.168.1.1
[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.ping 192.168.1.1
/etc/sysconfig/network-scripts/ifcfg-eth0
w dystrybucji
Red Hat, albo po prostu zrób to w Control Panel-u./etc/resolv.conf
./etc/networks
.ping
: ping 192.168.1.1
, aby
sprawdziæ połączenie do gateway-a.
nwpd 0x60 10 0x300
, jeśli karta jest ustawiona na IRQ=10 i
adres I/O=0x300.pkunzip
tel2308b.zip
.config.tel
.myip=192.168.1.x
(1 < x < 255) i
netmask=255.255.255.0.hardware=packet,
interrupt=10, ioaddr=60
name=default
host=twój.linux
hostip=192.168.1.1
gateway=1
name=dns.domena.pl ; hostip=123.123.123.123; nameserver=1
Uwaga: zamieñ powyższe informacje na poprawne dla ciebie.config.tel
telnet 192.168.1.1
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.)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.
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.)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
.
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:
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
c:\bin\resolv.cfg
.
SEARCH DNS HOSTS SEQUENTIAL NAMESERVER 207.103.0.2 NAMESERVER 207.103.11.9
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.
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.
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.
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.
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.
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.
** 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.
Ogólne:
wszystkie obsługiwane platformy, surfowanie po sieci
wszystkie obsługiwane platformy, klienci e-mail
wszystkie obsługiwane platformy, zdalne logowanie
wszystkie 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)
wszystkie obsługiwane platformy, szukanie plików (nie wszytkie wersje oprogramowania są obsługiwane)
wszystkie obsługiwane platformy, klient USENET NEWS
Windows (przypuszczalnie wszystkie obsługiwane platformy), surfowanie po wirtualnej rzeczywistości.
głównie platformy na UNIX-ie, niektóre wersje mogą nie działaæ
wszystkie platformy, z łatą ICMP
wszystkie obsługiwane platformy, z modułami ip_masq_irc.o
wszystkie obsługiwane platformy
wszystkie obsługiwane platformy
Klienci Multimedialni:
Windows, network streaming audio z załadowanym modułem ip_masq_raudio
Windows, network streaming audio
Windows, network streaming audio
Windows, program Client-Server 3D do pogawêdek
Windows, program Client-Server 3D do pogawêdek
Windows, 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
Windows, 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æ
, wszystkie obsługiwane platformy, z załadowanymi modułami cuseeme; szczegóły znajdziesz na stronie z zasobami dla maskowania IP.
Windows, 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:
DOS, pakiet zawierający telnet, ftp, ping, itp.
MS-Windows, zdalna kontrola PC poprzez TCP/IP, działa tylko jeśli jest klientem a nie hostem.
używa ntp - protokół czasu w sieci
Linux, pakiet do zarządzania i monitorowania sieci.
Łączy siê, ale głos wêdruje tylko w jedną stronê (na zewnątrz)
Nie może połączyæ siê z serwerem
Nie może połączyæ siê z drugą stroną
nie bêdą działaæ - wymagają napisania proxy dla jądra
W tej chwili nie może działaæ (robi złe założenia na temat adresów)
Nietestowane, 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.
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.
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.
** 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ź.
ipfwadm
.
-V
w poleceniu ipfwadm
dla
zwiêkszenia bezpieczeñstwaipfwadm -deny
, które nie pozwalają na
powstanie dziury w bezpieczeñstwie, i wyjaśnienie statusu pinga
przez maskowanie IP
- 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æ)