Poprzedni Następny Spis treści

3. Ustawianie Imasqeradingu IP.

Jeśli twoja prywatna sieć zawiera jakieś ważne informacje, pomyśl trochę zanim zaczniesz korzystać z masqueradingu. 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 masqueradingu.

** Najnowsze informacje znajdziesz na stronie zasobów dla masqueradingu. Trudno jest uaktualniać często HOWTO.**

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 to 192.168.255.n.

Z RFC 1597:

Rozdział 3: Prywatna przestrzeń adresowa

IANA (Internet Assigned Numbers Authority) zarezerwował 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, powienieneś 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.

  1. Jeśli jeszcze nie zainstalowałeś karty sieciowej, zrób to teraz.
  2. Przejdź do Panel Sterowania/Sieć.
  3. Dodaj protokół TCP/IP jeśli jeszcze go nie masz.
  4. 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
  5. Dodaj 192.168.1.1 jako twój gateway w polu Gateway.
  6. 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.
  7. Pozostaw resztę ustawień w takim stanie w jaim są, o ile wiesz co robisz.
  8. Kliknij OK we wszystkich okienkach i zrestartuj system.
  9. 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.)
  10. 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ę przyklad o nazwie HOSTS.SAM.

Konfiguracja Windows for Workgroups 3.11.

  1. Jeśli jeszcze nie zainstalowałeś karty sieciowej, zrób to teraz.
  2. Zainstaluj pakiet TCP/IP 32b jeśli jeszcze go nie masz.
  3. W Grupa główna/Ustawienia/Sieć kliknij Sterowniki.
  4. Podświetl Microsoft TCP/IP-32 3.11b w Sterownikach sieciowych, kliknij Ustawienia.
  5. 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
  6. 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.
  7. Kliknij DNS, wypełnij odpowiednie pola wymienione w kroku 6. w sekcji 3.3.1, potem kliknij OK.
  8. 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.
  9. Kliknij OK we wszystkich okienkach i zrestartuj system.
  10. 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.

  1. Jeśli jeszcze nie zainstalowałeś karty sieciowej, zrób to teraz.
  2. Przejdź do Grupa główna/Panel sterowania/Sieć
  3. Dodaj protokół TCP/IP i powiązane składniki z menu Dodaj oprogramowanie jeśli nie masz jeszcze zainstalowanego serwisu TCP/IP.
  4. W sekcji Oprogramowanie sieciowe i karty sieciowe podświetl protokół TCP/IP w Zainstalowane oprogramowanie sieciowe.
  5. 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.
  6. 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.
  7. Kliknij DNS, wypełnij odpowiednie pola wymienione w kroku 6. w sekcji 3.3.1, potem kliknij OK.
  8. 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.
  9. Kliknij OK we wszystkich okienkach i zrestartuj system.
  10. tt/ping/-nij Linux-a, aby sprawdzić połączenie sieciowe: Start/Uruchomm wpisz ping 192.168.1.1

Konfiguracja systemów unix-owych.

  1. Jeśli nie masz zainstalowanej swojej karty ani skompilowanego odpowiedniego sterownika, zrób to teraz.
  2. Zainstaluj TCP/IP, jak np. pakiet nettols, jeśli jeszcze tego nie zrobiłeś.
  3. 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.)
  4. Dodaj serwer DNS i domenę do przeszukiwania w /etc/resolv.conf.
  5. W zależności od twoich ustawień możesz też uaktualnić /etc/networks.
  6. Zrestartuj odpowiednie serwisy albo po prostu zresrartuj system.
  7. 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.

  1. Jeśli jeszcze nie zainstalowałeś karty sieciowej, zrób to teraz.
  2. 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.
  3. Stwórz nowy katalog i rozpakuj pakiet NCSA Telnet,; pkunzip tel2308b.zip.
  4. Zmodyfikuj plik config.tel.
  5. Ustaw myip=192.168.1.x (1 < x < 255) i netmask=255.255.255.0.
  6. W tym przykładzie powinieneś ustawić hardware=packet, interrupt=10, ioaddr=60
  7. Powinieneś mieć przynajmniej jedną maszynę ustawioną jako gateway, tj. Linux-a:
    name=default
    host=yourlinuxhostname
    hostip=192.168.1.1
    gateway=1
    
  8. Kolejna pozycja to DNS:
    name=dns.domain.com ; hostip=123.123.123.123; nameserver=1
    
    Uwaga: zamień powyższe informacje na poprawne dla ciebie.
  9. Zapisz plik config.tel
  10. Połącz się poprzez telnet z Linux-em, aby sprawdzić połączenie telnet 192.168.1.1

Konfiguracja MacOS z MacTCP.

  1. Jeśli nie zainstalowałeś odpowiedniego sterownika dla twojej karty Ethernetowej, teraz byłby bardzo dobry moment, aby to zrobić.
  2. Otwórz MacTCP control panel. Wybierz odpowiedni starownik sieci (Ethernet, NIE EtherTalk) i kliknij przycisk More....
  3. W Obtain Address kliknij Manually.
  4. W IP Address wybierz Class C z listy. Zignoruj resztę ustawień w tym okienku.
  5. Wypełnij odpowiednie informacje w Domain name Service information.
  6. W Gateway Address wpisz 192.168.1.1.
  7. 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.
  8. Zamknij MacTCP control panel. Jeśli pojawi się okienko sugerujące restart systemu - zrób tak.
  9. 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.)
  10. 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.

  1. Jeśli nie zainstalowałeś odpowiedniego sterownika dla twojej karty Ethernetowej, teraz byłby bardzo dobry moment, aby to zrobić.
  2. 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.
  3. 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.
  4. Zaznacz Ethernet z okienka Connect via.
  5. Zaznacz odpowiednią pozycję na liście Configure. Jeśli nie wiesz którą opcję wybrać, prawdopodobnie powinieneś wybrać pownownie konfigurację Default i wyjść. Ja używam Manually.
  6. Wpisz adres IP swojego Mac-a (192.168.1.x, 1 < x < 255) w okienku IP Address.
  7. Wpisz 255.255.2550 w okienku Subnet mask.
  8. Wpisz 192.168.1.1 w okienku Router address. ,item>Wpisz adresy IP swoich serwerów DNS w okienku Name server addr.
  9. Wpisz swoją domenę Internetową (np. microsoft.com) w okienku Starting domain name w wierszu Implicit Search Path:.
  10. 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 jesli twoja sieć wymaga ramek 802.3.
  11. 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ą potrzbne. To właśnie ten proces ładowania/usuwania może sfragmentować twoją pamięć.
  12. 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.)
  13. 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ż 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, mozesz 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). Jak już stworzyłeś taki plik, otwórz TCPIP control panel/, kliknij Select Hosts File ... i otwórz plik Hosts.
  14. Kliknij Close lub Quit z menu File i potem kliknij Save, aby zachować zmiany, które zrobiłeś.
  15. Zmiany będa uwzględnione natychmiast, ale restart systemu nie zaszkodzi.

Konfiguracja sieci Novell z DNS-em.

  1. Jeśli nie zainstalowałeś odpowiedniego sterownika dla twojej karty Ethernetowej, teraz byłby bardzo dobry moment, aby to zrobić.
  2. Zciągnij plik tcpip16.exe z adresu ftp.novell.com.
  3. 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:
    
  4. 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
    
  5. i na końcu stwórz c:\bin\resolv.cfg.
    SEARCH DNS HOSTS SEQUENTIAL
    NAMESERVER 207.103.0.2
    NAMESERVER 207.103.11.9
    
  6. 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.

  1. Jeśli nie zainstalowałeś odpowiedniego sterownika dla twojej karty Ethernetowej, teraz byłby bardzo dobry moment, aby to zrobić.
  2. Zainstaluj protokół TCP/IP jeśli jeszcze go nie masz.
  3. Przejdź do Programms/TCP/IP (LAN) / TCP/IP.
  4. W Network dodaj swój adres TCP/IP i ustaw maskę sieci (255.2555.255.0).
  5. W Routing wciśnij Add. Ustaw Type na default i wpisz w polu Router Address adres swojego Linux-a. (192.168.1.1).
  6. Ustaw w polu Hosts ten sam adres DNS, którego używa twój Linux.
  7. Zamknij TCP/IP control panel. Odpowiedz yes na pojawiające się pytania.
  8. Zrestartuj system.
  9. 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, powienieneś mieć zainstalowane jądra w raz ze wszystkimi potrzbnymi 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ęczinka 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:

netmask         | x  | Subnet
~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
255.0.0.0       | 8  | Class A
255.255.0.0     | 16 | Class B
255.255.255.0   | 24 | Class 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 masquerading-iem 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 polecenie:

ipfwadm -F -p masquerade

Nie czyń masquerading-u 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 masquerading-u.

Szczegóły na temat ipfwadm znajdziesz w rozdziale 4.4.

3.5 Testowanie masquerading-u.

Nadszedł czas, żeby wypróbować to wszystko po ciężkiej pracy. Upewnij się, że Linux jest podłączony do Internet-u.

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 masquerading ... .

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.


Poprzedni Następny Spis treści