Original in fr Eric Seigne
fr to en:John Perr
en to nl:Egon Willighagen
Eric werkt voor de opensource wereld. Zijn dagelijkse werk is het programmeren van toepassingen die zich richten op het toegang geven tot databases op het internet. Veel gebruikte tools zijn PostGreSQL, MySQL en PHP.
Dit artikel legt uit hoe DHCP eenvoudig ingesteld kan worden.
Het doel van dit artikel is:
Onze eerste stap is het opzetten van een DHCP server zonder
instellingen, zodat deze in staat is elke client te accepteren.
Ik gebruik hier de netwerk configuratie van de "Slash Party #2" waar
ik geprobeerd heb een goede Linux server op te zetten.
<file /etc/dhcpd.conf> default-lease-time 86400; max-lease-time 604800; get-lease-hostnames true; option subnet-mask 255.255.255.0; option domain-name "slach2-100.party"; option domain-name-servers 192.168.12.1; option interface-mtu 1500; subnet 192.168.12.0 netmask 255.255.255.0 # default gateway option routers 192.168.12.1; option broadcast-address 192.168.12.255; range 192.168.12.50 192.168.12.200; </file> |
Zodra de DHCP server draait (gebruik "/etc/init.d/dhcp start" of iets
dergelijks, afhankelijk van uw distributie), kunt u de client computers
op het netwerk opstarten.
Deze moeten zo ingesteld worden dat ze hun IP-adres via DHCP ophalen.
Op het moment dat ze dit doen, komt een blok vergelijkbaar met het
volgende in het bestand dhcpd.leases te staan:
<blok toegevoegd voor een DHCP client> lease 192.168.12.58 starts 2 1999/08/24 06:28:48; ends 3 1999/08/25 06:28:48; hardware ethernet 00:10:5a:2e:56:a7; uid 01:00:10:5a:2e:56:a7; client-hostname "KLUSTER"; </bloc> |
Als alle client computers een IP-adres van de server gekregen hebben, ziet dhcpd.leases er ongeveer zo uit:
<file dhcpd.leases> lease 192.168.12.58 starts 2 1999/08/24 06:28:48; ends 3 1999/08/25 06:28:48; hardware ethernet 00:10:5a:2e:56:a7; uid 01:00:10:5a:2e:56:a7; client-hostname "KLUSTER"; lease 192.168.12.53 starts 2 1999/08/24 05:42:22; ends 3 1999/08/25 05:42:22; hardware ethernet 00:80:ad:97:e1:76; uid 01:00:80:ad:97:e1:76; client-hostname "ceddz"; lease 192.168.12.54 starts 2 1999/08/24 03:07:26; ends 3 1999/08/25 03:07:26; hardware ethernet 00:80:ad:97:e1:7d; uid 01:00:80:ad:97:e1:7d; client-hostname "SDS"; lease 192.168.12.67 starts 2 1999/08/24 02:52:19; ends 3 1999/08/25 02:52:19; hardware ethernet 00:50:04:45:e1:65; uid 01:00:50:04:45:e1:65; client-hostname "HOMER"; lease 192.168.12.64 starts 2 1999/08/24 01:26:05; ends 3 1999/08/25 01:26:05; hardware ethernet 00:80:ad:97:e2:1c; uid 01:00:80:ad:97:e2:1c; client-hostname "chAwArmA"; lease 192.168.12.59 starts 2 1999/08/24 01:14:06; ends 3 1999/08/25 01:14:06; hardware ethernet 00:00:21:2c:30:e7; uid 01:00:00:21:2c:30:e7; client-hostname "WOOKIE"; </file> |
De volgende stap is het beveiligen van onze "open" DHCP server tot een statische, maar ook veiliger server. Dit kan gedaan worden nu we een goede dhcp.lease tot onze beschikking hebben.
Wat zijn de verschillen tussen een statische en een open DHCP server? Wat mij betreft, is het vooral belangrijk dat een open DHCP server elke computer dat is aangesloten op het netwerk een IP-adres verschaft. En dit is een groot veiligheidsprobleem, want zodra iemand zich op het netwerk aankoppelt kan hij het netwerk ook volledig gebruiken.
Om zo'n aanval af te slaan, gebruik ik een statische server. Elk IP-adres wordt alleen vergeven aan clients met een bekend MAC adres van de ethernetkaart van die computer. Elke onbekende kaart wordt genegeerd.
<file dhcpd.conf> default-lease-time 86400; max-lease-time 604800; get-lease-hostnames true; option subnet-mask 255.255.255.0; option domain-name "slach2-100.party"; option domain-name-servers 192.168.12.1; option lpr-servers 192.168.12.1; option interface-mtu 1500; subnet 192.168.12.0 netmask 255.255.255.0 # default gateway option routers 192.168.12.1; option broadcast-address 192.168.12.255; # Diegene die niet in de DHCP staan # krijgen IP's tussen .10 en .50 range 192.168.12.10 192.168.12.50; host hardware ethernet 00:10:5a:2e:56:a7; fixed-address "kluster.slach2-100.party"; host hardware ethernet 00:80:ad:97:e1:76; fixed-address "ceddz.slach2-100.party"; host hardware ethernet 00:80:ad:97:e1:7d; fixed-address "sds.slach2-100.party"; host hardware ethernet 00:40:95:49:0b:a5; fixed-address "saigneur.slach2-100.party"; host hardware ethernet 00:50:04:45:e1:65; fixed-address "homer.slach2-100.party"; </file> |
WAARSCHUWING: als uw systeem geen DNS server heeft draaien, moet het bestand dhcp.conf IP-adressen gebruiken in plaats van machinenamen. Bijvoorbeeld:
<toevoeging aan dhcpd.conf als er geen DNS server is> host hardware ethernet 00:40:95:49:0b:a5; fixed-address "192.168.12.57"; host hardware ethernet 00:50:04:45:e1:65; fixed-address "192.168.12.67"; </extract> |
Ik heb een klein Perl script geschreven dat het dhcpd.lease bestand automatisch omzet in een statische DHCP configuratie bestand.
Gelijktijdig kunnen we ook de DNS server configureren. Hetzelfde Perl script, met de optie -dns, kan ook bestanden met als bestandsnaam named.$domain.ajouter (ajouter = toevoegen) aanmaken. Dit bestand kan na controle toegevoegd worden aan de DNS configuratiebestanden.
Bovendien is het nodig om aan het bestand named.conf waarden toe te voegen voor uw domein. Bijvoorbeeld:
<toevoegen aan het bestand named.conf> zone "slach2-100.party" type master; file "named.slach2-100"; ; zone "12.168.192.in-addr.arpa" type master; file "named.slach2-100.rev"; ; </add> |
Als dit gelukt is, mag u uzelf feliciteren: u heeft nu een werkende DHCP en DNS configuratie.
Zonder extra moeite (zeker als het geen moeite kost :), kan de Netwerkomgeving (Network Neighborhood) van Windows computers correct ingesteld worden. Hieronder staat hoe dit moet:
Op Slach Party #2 heb ik twee netwerken geïnstalleerd. De eerste was een 10Mb netwerk en het tweede een 100Mb (voor bevoorrechte gebruikers...). Het grootste probleem dat de twee netwerken elkaar niet konden zien via de Netwerkomgeving van MS-Windows.
De oplossing hiervoor is WINS. Dit maakt het mogelijk om op het gezamenlijke netwerk een server te definiëren die een lijst beheerd van links tussen IPs en "namen van de verschillende domeinen". Het is een soort "master" voor de beide netwerken R1 en R2.
Het is daarom nodig om een WINS server te configureren en clients zo in te stellen dat ze die gebruiken. Uiteraard moet er ook een gateway tussen beide netwerken beschikbaar zijn.
WINS wordt goed ondersteund door Samba :)
Schematisch:
------------------- | | | Netwerk R1 | | | | 192.168.0.0 | | 255.255.255.0 | -------+----------- | -----|----- eth0: 192.168.0.1 Linux Server eth1: 192.168.100.1 -----|----- | -------+----------- | | | Netwerk R2 | | | | 192.168.100.0 | | 255.255.255.0 | ------------------- |
Het bestand dhcpd.conf is aangepast zodat de automatisch geconfigureerde client ook direct de WINS server herkennen :). Zonder DHCP zou het nodig zijn om elke client apart en opnieuw in te stellen om toegang te krijgen tot de WINS server!
WAARSCHUWING: Vergeet niet de volgende regels aan uw dhcpd.conf bestand toe te voegen:
<file dhcpd.conf> [...] option routers 192.168.0.1; option netbios-name-servers 192.168.0.1; option netbios-dd-server 192.168.0.1; option netbios-node-type 8; [...] </file> |
Om een werkende WINS server op te zetten, gebruik ik Samba, dat als volgt ingesteld is:
<file smb.conf> ; gecontroleerd met Samba 2.0.5 [global] workgroup = rycks.com server string = Linux Box comment = Linux Box netbios name = pantoufle volume = pantoufle guest only = yes guest account = nobody log file = /var/log/samba-log.%m max log size = 50 share modes = yes security = share socket options = TCP_NODELAY os level = 33 ; Ingesteld als network 'master' domain master = yes local master = yes preferred master = yes ; WINS aanzetten wins support = yes wins proxy = yes ; FTP delen [ftp] path = /home/ftp/pub public = yes printable = no guest ok = yes </file> |
Het is nodig om de DHCP, Samba en DNS services na de aanpassing te
herstarten. Ook alle clients moeten opnieuw opgestart worden om de
veranderingen te gebruiken. Kijk hierna naar computers op het netwerk
"others" in de "Network Neighborhood".
Gegeven de gebruikelijke vertraging die Windows nodig heeft om de
nieuwe computers in de Netwerkomgeving op te nemen, stel ik voor een
computer via zijn naam op te zoeken. Zoek er eerst een op van uw eigen
netwerk, waarna u er een opzoekt van het andere netwerk.
Als u computers van het andere netwerk wel kunt zien, maar niet kunt
openen, moet u de instellingen van de gateway aanpassen, zodat deze als
een echte gateway dienst doet.
Voor meer informatie over dit onderwerp, kunt u naar de documentatie
van ipchains kijken.
Normaal is het mogelijk om iets dergelijks te gebruiken:
#Wis alle oude instellingen ipchains -F #Zet 'masquerading' aan ipchains -A forward -i eth0 -j MASQ |
Wees voorzichtig, als de DHCP server in twee gebieden tegelijk gebruikt wordt, dan zal er slechts een DNS file aangemaakt worden...
Ik hoop dat dit document bruikbaar is. Vragen en reacties zijn welkom.
Voor meer informatie over de verschillende delen, kunt u lezen:
Verbeteringen komen vaak voor. Op het volgende adres is de meest recente, Franse versie te vinden: http://www.rycks.com/erics/linux/