Jeśli twoja prywatna sieæ zawiera jakieś ważne informacje, pomyśl trochê zanim zaczniesz korzystaæ z maskowania. 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 maskowanieu. Trudno jest czêsto uaktualniaæ HOWTO.**
/usr/src/
poleceniem
tar xvzf linux-2.0.x.tar.gz -C /usr/src
, gdzie x jest numerem
ł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 maskowania
* 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: maskowanie (EXPERIMENTAL)
CONFIG_IP_MASQUERADE
- pomimo, że jest to eksperymentalne jest to *KONIECZNE*
* IP: ipautofw masquerade support (EXPERIMENTAL)
CONFIG_IP_MASQUERADE_IPAUTOFW
- zalecane
* IP: ICMP maskowanie
CONFIG_IP_MASQUERADE_ICMP
- obsługa maskowania 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 maskowania. Włącz to co potrzebujesz dla swojej konfiguracji.
make modules; make modules_install
/etc/rc.d/rc.local
(czy jakiegoś, który uważasz za stosowny),
aby automatycznie podczas każdego startu systemu 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 do 192.168.255.n.
Z RFC 1597:
Rozdział 3: Prywatna przestrzeñ adresowa
IANA (Internet Assigned Numbers Authority) zarezerwowało 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, powinieneś 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/Uruchom, 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ê przykład 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=twój.linux
hostip=192.168.1.1
gateway=1
name=dns.domena.pl ; 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ż siê 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,
możesz 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). Jeśli już stworzyłeś taki
plik, otwórz TCP/IP 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, powinieneś mieæ zainstalowane jądro wraz ze wszystkimi potrzebnymi 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êcznika 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:
Maska | x | Podsieæ
~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
255.0.0.0 | 8 | Klasa A
255.255.0.0 | 16 | Klasa B
255.255.255.0 | 24 | Klasa 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 maskowaniem 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 polecenia:
ipfwadm -F -p masquerade
Nie czyñ maskowania 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 maskowania.
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 Internetu.
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 maskowanie ... .
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.