Het instellen van IP-Masquerading
ArticleCategory:
System Administration
AuthorImage:
![[Guido Socher]](../../common/images/Guido-S.gif) 
TranslationInfo:
original in en Guido Socher
en to nl Tom Uijldert
AboutTheAuthor:
Guido is al lang een Linux fan. Z'n home pagina kun je vinden op
www.oche.de/~bearix/g/.
Abstract:
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.
ArticleIllustration:
![[Illustratie]](../../common/images/illustration151.gif) 
ArticleBody:
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:
  - 10.0.0.0        -   10.255.255.255
  
- 172.16.0.0      -   172.31.255.255
  
- 192.168.0.0     -   192.168.255.255 (dit bereik gebruiken we voor het artikel)
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:
-  Vraag om ontwikkelversie en/of incomplete code of drivers
 CONFIG_EXPERIMENTAL
 (hiermee kun je voor experimentele Masquerading code kiezen die in de kernel wordt gecompileerd)
-  Aktiveren loadable module ondersteuning
 CONFIG_MODULES
-  Netwerk ondersteuning
 CONFIG_NET
-  Netwerk firewalls
 CONFIG_FIREWALL
-  TCP/IP networking
 CONFIG_INET
-  IP: forwarding/gatewaying
 CONFIG_IP_FORWARD
-  IP: firewalling
 CONFIG_IP_FIREWALL
-  IP: masquerading
 CONFIG_IP_MASQUERADE
-  IP: ipportfw masq ondersteuning
 CONFIG_IP_MASQUERADE_IPPORTFW
-  IP: ipautofw masquerade ondersteuning
 CONFIG_IP_MASQUERADE_IPAUTOFW
-  IP: ICMP masquerading
 CONFIG_IP_MASQUERADE_ICMP
-  IP: altijd de-fragmenteren
 CONFIG_IP_ALWAYS_DEFRAG
-  Dummy net driver ondersteuning
 CONFIG_DUMMY
-  IP: ip fwmark masq-forwarding ondersteuning
 CONFIG_IP_MASQUERADE_MFW
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.
 
#!/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 :-).