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