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.
** Najnowsze informacje znajdziesz na stronie zasobów dla masqueradingu. Trudno jest uaktualniać często HOWTO.**
/usr/src/
poleceniem
tar xvzf linux-2.0.x.tar.gz -C /usr/src
, gdzie x jest numere
ł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 masqueradingu
* 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: masquerading (EXPERIMENTAL)
CONFIG_IP_MASQUERADE
- pomimo, że jest to eksperymentalne jest to *KONIECZNE*
* IP: ipautofw masquerade support (EXPERIMENTAL)
CONFIG_IP_MASQUERADE_IPAUTOFW
- zalecane
* IP: ICMP masquerading
CONFIG_IP_MASQUERADE_ICMP
- obsługa masqueradingu 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 masqueradingu. Włącz to co potrzebujesz dla swojej konfiguracji.
make modules; make modules_install
/etc/rc.d/rc.local
(czy jakiegos, który uważasz za stosowny),
aby aby automatycznie potczas każdego startu sysytemu 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 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.
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.
/etc/resolv.conf
). Opcjonalnie
możesz dodać jakąś domenę do przeszukiwania.ping
-nij Linux-a, aby sprawdzić połączenie sieciowe:
Start/Uruchomm 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ę przyklad 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=yourlinuxhostname
hostip=192.168.1.1
gateway=1
name=dns.domain.com ; 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ż 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
.
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, 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.
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.