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.