Następna strona Poprzednia strona Spis treści

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:

HTTP

wszystkie obsługiwane platformy, surfowanie po sieci

POP & SMTP

wszystkie obsługiwane platformy, klienci e-mail

Telnet

wszystkie obsługiwane platformy, zdalne logowanie

FTP

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)

Archie

wszystkie obsługiwane platformy, szukanie plików (nie wszytkie wersje oprogramowania są obsługiwane)

NNTP (USENET)

wszystkie obsługiwane platformy, klient USENET NEWS

VRML

Windows (przypuszczalnie wszystkie obsługiwane platformy), surfowanie po wirtualnej rzeczywistości.

traceroute

głównie platformy na UNIX-ie, niektóre wersje mogą nie działaæ

ping

wszystkie platformy, z łatą ICMP

wszystko oparte o IRC

wszystkie obsługiwane platformy, z modułami ip_masq_irc.o

klient Gopher

wszystkie obsługiwane platformy

klient WAIS

wszystkie obsługiwane platformy

Klienci Multimedialni:

Real Audio Player

Windows, network streaming audio z załadowanym modułem ip_masq_raudio

True Speech PLayer 1.1b

Windows, network streaming audio

Internet Wave Player

Windows, network streaming audio

Worlds Chat 0.9a

Windows, program Client-Server 3D do pogawêdek

Alpha Worlds

Windows, program Client-Server 3D do pogawêdek

Internet Phone 3.2

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

Powwow

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æ

CU-SeeMe

, wszystkie obsługiwane platformy, z załadowanymi modułami cuseeme; szczegóły znajdziesz na stronie z zasobami dla maskowania IP.

VDOLive

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:

NCSA Telnet 2.3 08

DOS, pakiet zawierający telnet, ftp, ping, itp.

PC-anywhere for Windows 2.0

MS-Windows, zdalna kontrola PC poprzez TCP/IP, działa tylko jeśli jest klientem a nie hostem.

Socket Watch

używa ntp - protokół czasu w sieci

pakiet net-acct w Linux-ie

Linux, 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 1

Nie może połączyæ siê z serwerem

Netscape CoolTalk

Nie może połączyæ siê z drugą stroną

talk, ntalk

nie bêdą działaæ - wymagają napisania proxy dla jądra

WebPhone

W tej chwili nie może działaæ (robi złe założenia na temat adresów)

X

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.

Przetestowane platformy/systemy operacyjne jako INNE maszyny.

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.

  1. 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.
  2. Aby ustawiæ diald, zajrzyj na stronê Ustawianie Diald dla linux-a.
  3. [Od tłumacza] Możesz tez zajrzeæ do Diald mini HOWTO (dostêpne w j. polskim).
  4. Jak już ustawisz diald i maskowanie IP, możesz podejśæ do którejkolwiek z maszyn klienckich i zainicjowaæ połączenie WWW, telnet lub FTP.
  5. Diald wychwyci nadchodzące żądanie, zadzwoni do prowajdera i ustawi połączenie.
  6. 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.


Następna strona Poprzednia strona Spis treści