[LinuxFocus-icon]
<--  | Home  | Map  | Index  | Zoek

Nieuws | Archieven | Links | Over LF
Dit document is beschikbaar in: English  Castellano  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  Arabic  

[Guido Socher]
door Guido Socher
<guido.socher/at/linuxfocus.org>

Over de auteur:
Guido is al lang een Linux fan. Z'n home pagina kun je vinden op www.oche.de/~bearix/g/.

Vertaald naar het Nederlands door:
Tom Uijldert <Tom.Uijldert/at/cmgplc.com>

Inhoud:

 

Het instellen van IP-Masquerading

[Illustratie]

Kort:

IP-Masquerading geeft de mogelijkheid om meerdere computers op het Internet aan te sluiten via één Linux machine met slechts één extern IP-adres. Dit betekent dat je een heel privé-netwerk aan kunt sluiten op het Internet terwijl je Internet aanbieder denkt dat er slechts één computer aan hangt. Dit artikel zal uitleggen hoe je IP- Masquerading kunt instellen met een 2.2.x kernel. Het zal niet ingaan op het bouwen van een netwerk. Het is aan te bevelen om het artikel van Januari 2000 te lezen om meer te weten te komen over computernetwerken.

_________________ _________________ _________________

 

Algemeen

Om IP-Masquerading aan het werk te krijgen zoals hier beschreven heb je op zijn minst één Linux-doos nodig met een 2.2x kernel. Deze machine zal worden gebruikt voor de aansluiting op het Internet. Het gebruik van Linux voor de verbinding betekent nog niet dat je ook Linux moet gebruiken in je eigen netwerk. Sterker nog, Linux werkt prima samen met Windows, Mac (Apple) systemen en andere smaken Unix.
Het gaat in dit artikel echter alleen over de machine die we gebruiken voor de verbinding. Deze sluit je aan de ene kant aan op het Internet en aan de andere kant op je eigen netwerk. Deze machine heeft dus minstens twee koppelingen (interfaces) met dan ook twee IP- adressen. Één van de IP-adressen is het extern bekende adres wat over het Internet kan worden gerouteerd. Dit adres wordt je meestal toegekend door de Internet aanbieder op het moment dat je verbinding met ze maakt via het modem (of via welk apparaat dan ook). Andere IP-adressen zijn privé-adressen die je toe kunt kennen door te kiezen uit het volgende bereik: Dit artikel zal niet uitleggen hoe je het netwerk opzet. Er wordt aangenomen dat je netwerk al staat en is geconfigureerd.  

Principes van IP-Masquerading

In principe vertaalt IP-Masquerading interne IP-adressen naar externe IP-adressen. Dit noemt men ook wel Network Address Translation (NAT) en Linux doet dit met behulp van poortnummers. Vanaf de buitenwereld lijkt het alsof alle verbindingen vanaf jouw ene machine komen. Je kunt een uitgebreide beschrijving hiervan in het Januari nummer vinden.

Soms hebben IP-pakketjes een speciale toepassing en zal IP-Masquerading niet werken maar in de meeste gevallen is het effectief. Er zijn modules te verkrijgen voor ICQ, ftp en quake die je aan de kernel kunt hangen zodat ook deze toepassingen correct functioneren in je eigen netwerk. Over het algemeen echter zal alles wat gebruik maakt van standaard dingen als HTTP (web browsers), telnet, ssh of smtp (e-mail) zonder aanpassingen functioneren.  

Instellen van de kernel

Lezers die een standaard kernel hebben geïnstalleerd van de bekende distributeurs (RedHat, Mandrake, Debian, Suse...) kunnen dit hoofdstuk overslaan, hun kernel is al voorbereid op het werken met IP-Masquerading.

Meestal maak ik een back-up van /usr/src/linux/.config nadat ik een goed werkende kernel heb gebouwd. De volgende keer dat ik dan een kernel moet bouwen hoef ik alleen maar deze configuratie te laden en dan heb ik al een werkende kernel om mee te starten. Hierop kan ik dan relatief eenvoudig wijzigingen aanbrengen, zoals de ondersteuning voor IP-Masquerading.

Om gebruik te kunnen maken van IP-Masquerading moet op de volgende vragen met yes worden geantwoord tijdens het configureren van de kernel. Hier worden alleen de componenten genoemd die nodig zijn voor IP-Masquerading. Kies naar hartelust ook andere opties die je zelf nog nodig hebt:

 

Het configureren van IP-Masquerading

We zullen een klein script maken die het configureren van IP-Masquerading automatiseerd. Hiervoor moet je het volgende script in /etc/rc.d/init.d zetten en het ipmasq noemen. Verander de toegang tot het bestand met $ chmod 755 ipmasq om het executeerbaar te maken. Het onderstaande script neemt aan dat je voor de interne verbinding het IP-adres 192.168.0.1 hebt gebruikt ($ ifconfig eth0 192.168.0.1 netmask 255.255.255.0). Verander het script indien je van een ander adres gebruik maakt. Onderstaand plaatje geeft een overzicht van het netwerk dat we hierbij gebruiken.

netwerk overzicht

#!/bin/sh
echo "Setting up IP masquerading ..."
# People still using windows to surf the web must convert this
# to a UNIX text file before using it.
#
# Support masquerading of FTP file transfer.
/sbin/modprobe ip_masq_ftp
#
#--------------
# Note: the modules below are commented out from loading. Remove the
# comment sign if you want to use the corresponding applications from
# one of the computers inside your internal network.
#
# Support masquerading of RealAudio over UDP.
#/sbin/modprobe ip_masq_raudio
#
# Supports the masquerading of IRC DCC file transfers
#/sbin/modprobe ip_masq_irc
#
# Support masquerading of Quake and QuakeWorld
# Quake I / QuakeWorld (ports 26000 and 27000)
#/sbin/modprobe ip_masq_quake
#
# Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960)
#/sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960
#
# Support masquerading of the CuSeeme video conferencing software
#/sbin/modprobe ip_masq_cuseeme
#
#Support masquerading of the VDO-live video conferencing software
#/sbin/modprobe ip_masq_vdolive
#--------------
# Important: Enable IP forwarding. It is disabled by default in
# the 2.2.x Kernels
echo "1" > /proc/sys/net/ipv4/ip_forward
#
# NOTE: This is an example for an internal Network address of
# 192.168.0.x The sub netmask is 255.255.255.0 or "24" bit
# Please change this if you use different internal IP addresses.
#
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ
#
#--- end of file
Verifieer of alle computers in je privé-netwerk zijn geconfigureerd met de default gateway naar 192.168.0.1 (de Linux machine met masquerading); erg belangrijk. Voer nu het script uit als gebruiker root op de machine met masquerading. Stuur daarna een ping van een machine in je netwerk naar een machine op het Internet (bijvoorbeeld: $ ping 195.53.25.18).
Als dit werkt dan werkt masquerading ook. Probeer ook eens $ ping www.linuxfocus.org. Dit zou hetzelfde resultaat moeten hebben als de andere ping. Als dit niet werkt, controleer dan het bestand /etc/resolv.conf op je lokale machines. Het moet op iedere machine aanwezig zijn en wijzen naar de DNS (Dynamic Name Server) van je Internet aanbieder. Als de ping eenmaal werkt zal de rest (bijvoorbeeld je web bladerprogramma) ook werken.

Dan is nu de tijd gekomen om je configuratie zó te veranderen dat je /etc/rc.d/init.d/ipmasq wordt uitgevoerd, iedere keer dat je je Linux masquerading machine opstart. Volgens mij is de beste plaats hiervoor het bestand /etc/rc.d/init.d/network (dat zou al aanwezig moeten zijn), waarin je het ipmasq-script aanroept aan het eind van de start- sectie in het bestand init.d/network. Zoek de case-instructie en vervolgens naar "start)".  

Tenslotte

Zoals je hebt kunnen zien is het simpel om IP-Masquerading in te stellen. Het is alleen een kwestie van activeren van ip forwarding en 2 ipchains commando's. IP- Masquerading is een krachtige toepassing voor thuisnetwerken, scholen, kleine bedrijfsnetwerken enzovoorts...

Voor meer informatie beveel ik het lezen van de IP-Masquerading mini howto en de IPCHAINS-HOWTO aan.

Om IP-Masquerading te gebruiken moet je uiteraard over een goed functionerend netwerk beschikken. Dat wordt niet behandeld in dit artikel. Het artikel over thuisnetwerken vertelt meer over het gebruikelijke jargon en de Net 3 howto of The Network Administrator Guide gaan dieper in op het bouwen van een netwerk. Ik ben nog van plan een volgend artikel te gaan schrijven over netwerken later in het jaar maar ik weet niet of je wel zo lang wilt wachten :-).  

Talkback voor dit artikel

Elk artikel heeft zijn eigen talkback pagina. Daar kan je commentaar geven of commentaar van anderen lezen:
 talkback pagina 

<--, Terug naar de titelpagina van dit nummer

Site onderhouden door het LinuxFocus editors team
© Guido Socher
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
Vertaling info:
en --> -- : Guido Socher <guido.socher/at/linuxfocus.org>
en --> nl: Tom Uijldert <Tom.Uijldert/at/cmgplc.com>

2004-09-28, generated by lfparser version 2.47