Knoppix mit DHCP

1         Zweck

Knoppix ist momentan im Heimnetz als Firewall eingesetzt zwischen dem DSL-Router und dem restlichen Netz. Der Computer Anke's Laptop soll über unser WLAN im Internet surfen. Unsere Netzwerkfreigaben soll er aber nicht sehen. Dadurch ist aber das restliche Netz vom DHCP-Dienst auf dem Router abgeschnitten.

Momentan laufen alle Clients mit fester IP. Das ist bei 4 Computern gerade noch überschaubar. Bequemer wäre ein zweiter DNS-Server.

 

 

 

Ziel: Heimnetz 192.168.202.x mit DHCP

 

Gateway für alle ist 192.168.202.10 (eth1 auf der Firewall).

DNS ist 192.168.201.1 (der DSL-Router).

Ziel ist das Aufsetzen eines DHCP-Servers auf der Firewall an eth1. Damit soll das restliche Heimnetz mit Adressen versorgt werden.

2         Vorbereitungen

2.1       Konfigurationsdatei erstellen

Die Konfiguration des DHCP-Servers ist in der Datei /etc/dhcp3/dhcpd.conf abgelegt.

Diese Datei gilt es zu modifizieren.

Sie soll hinterher folg. Einstellungen enthalten:

Adressvergabe soll auf eth1 wirken (internes Netz)

Zu vergebender Adressbereich: 192.168.202.50…

Subnetzmaske 255.255.255.0

 

Die Konfigurationsdatei muss also folg. Zeilen enthalten:

 

 

# The ddns-updates-style parameter controls whether or not the server will

# attempt to do a DNS update when a lease is confirmed. We default to the

# behavior of the version 2 packages ('none', since DHCP v2 didn't

# have support for DDNS.)

ddns-update-style none;

 

default-lease-time 600;

max-lease-time 7200;

 

# If this DHCP server is the official DHCP server for the local

# network, the authoritative directive should be uncommented.

authoritative;

 

# This is a very basic subnet declaration.

subnet 192.168.202.0 netmask 255.255.255.0 {

 

#  range 192.168.202.1 192.168.202.254;

#  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;

 

Beispieldatei:

Beschreibung in [2] Kofler, Linux, Ebook, Deutsch, German, Howto.pdf, S. 569-573

 

 

option broadcast-adress 192.168.202.254

option subnet-mask 255.255.255.0

# adresse auf der der DHCP-Server selbst läuft

option routers 192.168.202.10

# DNS-Adressen (max. 3) des Internet Service Providers

Option domain-name-servers 192.168.201.1

# dynamischer Adressbereich

subnet 192.168.202.0 netmaks 255.255.255.0 {

  range 192.168.202.50 192.168.202.99

  default-lease-time 86400

  max-lease-time 86400

 

# statische Adressen

group {

  use-host-decl-names on;

  host heserver {

    hardware ethernet 00:xx:xx:xx:xx:xx;

    fixed-address 192.168.202.5; }

 

 

Dementsprechend wurde die Datei für unsere Verhältnisse angepasst:

Die für unser Netz relevanten Angaben sind rot markiert.

#

# Sample configuration file for ISC dhcpd for Debian

#

# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $

#

 

# The ddns-updates-style parameter controls whether or not the server will

# attempt to do a DNS update when a lease is confirmed. We default to the

# behavior of the version 2 packages ('none', since DHCP v2 didn't

# have support for DDNS.)

ddns-update-style none;

 

# option definitions common to all supported networks...

option domain-name "borstel.serveftp.net";

#option domain-name-servers ns1.example.org, ns2.example.org;

 

default-lease-time 600;

max-lease-time 7200;

 

# If this DHCP server is the official DHCP server for the local

# network, the authoritative directive should be uncommented.

authoritative;

 

# Use this to send dhcp log messages to a different log file (you also

# have to hack syslog.conf to complete the redirection).

#log-facility local7;

 

# No service will be given on this subnet, but declaring it helps the

# DHCP server to understand the network topology.

 

#subnet 10.152.187.0 netmask 255.255.255.0 {

#}

 

# This is a very basic subnet declaration.

 

#subnet 10.254.239.0 netmask 255.255.255.224 {

#  range 10.254.239.10 10.254.239.20;

#  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;

#}

 

# This declaration allows BOOTP clients to get dynamic addresses,

# which we don't really recommend.

 

#subnet 10.254.239.32 netmask 255.255.255.224 {

#  range dynamic-bootp 10.254.239.40 10.254.239.60;

#  option broadcast-address 10.254.239.31;

#  option routers rtr-239-32-1.example.org;

#}

 

# A slightly different configuration for an internal subnet.

#subnet 10.5.5.0 netmask 255.255.255.224 {

#  range 10.5.5.26 10.5.5.30;

#  option domain-name-servers ns1.internal.example.org;

#  option domain-name "internal.example.org";

#  option routers 10.5.5.1;

#  option broadcast-address 10.5.5.31;

#  default-lease-time 600;

#  max-lease-time 7200;

#}

 

# Hosts which require special configuration options can be listed in

# host statements.   If no address is specified, the address will be

# allocated dynamically (if possible), but the host-specific information

# will still come from the host declaration.

 

#host passacaglia {

#  hardware ethernet 0:0:c0:5d:bd:95;

#  filename "vmunix.passacaglia";

#  server-name "toccata.fugue.com";

#}

 

# Fixed IP addresses can also be specified for hosts.   These addresses

# should not also be listed as being available for dynamic assignment.

# Hosts for which fixed IP addresses have been specified can boot using

# BOOTP or DHCP.   Hosts for which no fixed address is specified can only

# be booted with DHCP, unless there is an address range on the subnet

# to which a BOOTP client is connected which has the dynamic-bootp flag

# set.

#host fantasia {

#  hardware ethernet 08:00:07:26:c0:a5;

#  fixed-address fantasia.fugue.com;

#}

 

# You can declare a class of clients and then do address allocation

# based on that.   The example below shows a case where all clients

# in a certain class get addresses on the 10.17.224/24 subnet, and all

# other clients get addresses on the 10.0.29/24 subnet.

 

#class "foo" {

#  match if substring (option vendor-class-identifier, 0, 4) = "SUNW";

#}

 

#shared-network 224-29 {

#  subnet 10.17.224.0 netmask 255.255.255.0 {

#    option routers rtr-224.example.org;

#  }

#  subnet 10.0.29.0 netmask 255.255.255.0 {

#    option routers rtr-29.example.org;

#  }

#  pool {

#    allow members of "foo";

#    range 10.17.224.10 10.17.224.250;

#  }

#  pool {

#    deny members of "foo";

#    range 10.0.29.10 10.0.29.230;

#  }

#}

 

option broadcast-address 192.168.202.254;

option subnet-mask 255.255.255.0;

# adresse auf der der DHCP-Server selbst läuft

option routers 192.168.202.10;

# DNS-Adressen (max. 3) des Internet Service Providers

option domain-name-servers 192.168.201.1;

# dynamischer Adressbereich

subnet 192.168.202.0 netmask 255.255.255.0 {

  range 192.168.202.50 192.168.202.99;

  default-lease-time 86400;

  max-lease-time 86400; }

# statische Adressen

group {

  use-host-decl-names on;

  host heserver {

    hardware ethernet 00:20:ED:66:99:D3;

    fixed-address 192.168.202.5; }

  host p18fh {

    hardware ethernet 00:11:D8:B0:61:9F;

    fixed-address 192.168.202.23; }

  host p1600u {

    hardware ethernet 00:08:02:11:E5:05;

    fixed-address 192.168.202.21; }

  host sie0cnb057 {

    hardware ethernet 00:1B:77:D3:08:E2;

    fixed-address 192.168.202.28; }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Folg. Rechner haben DHCP-Reservierungen:

Rechner

IP-Adr.

Bemerkungen

HESERVER

192.168.202.5

 

P18FH

192.168.202.23

 

P1600U

192.168.202.21

 

SIE0CNB057

192.168.202.28

nur WLAN

 

 

 

 

 

 

2.2       Allgemein: Unter Knoppix in Dateien in /etc Änderungen vornehmen

Von den knapp 300 Konfigurationsdateien im Verzeichnis /etc handelt es sich bei ungefähr der Hälfte um so genannte Softlinks auf Dateien im Verzeichnis /KNOPPIX/etc auf der Knoppix-CD. Das heißt, diese Dateien befinden sich "in Wirklichkeit" gar nicht im Verzeichnis /etc sondern im Verzeichnis /KNOPPIX/etc auf der Knoppix-CD. (Softlinks sind z.B. vergleichbar mit Verknüpfungen unter Windows 98).
Dateien auf der CD können aber nur gelesen, nicht jedoch geändert werden. Ab und an kann es aber vorkommen, dass Sie in einer solchen Datei eine Änderung vornehmen wollen oder müssen. Dann ist es notwendig, den Softlink auf die nur lesbare Datei auf der Knoppix-CD zu beseitigen und eine änderbare Datei im Verzeichnis /etc zu erstellen.

Das geht wie folgt (beispielhaft mit der Datei /etc/hostname):

 

Es öffnet sich ein "Root"-Fenster.

Geben Sie im sich öffnenden "Root"-Fenster den Befehl "ls -l /etc/hostname" ein.

 

"lrwxrwxrwx ... /etc/hostname -> /KNOPPIX/etc/hostname" wird ausgegeben. Das zeigt, dass es sich bei der "Datei" /etc/hostname um einen Softlink handelt, der auf die Datei /KNOPPIX/etc/hostname verweist.

Geben Sie den Befehl "/bin/cp -p /etc/hostname /tmp" ein. Damit erstellen Sie eine Kopie der "Datei" /etc/hostname im Verzeichnis /tmp. ("In Wirklichkeit" erstellen Sie eine Kopie der Datei /KNOPPIX/etc/hostname, denn /etc/hostname ist ja "lediglich" ein Softlink (Verweis) auf die Datei /KNOPPIX/etc/hostname.)

 

Geben Sie den Befehl "/bin/rm /etc/hostname" ein. Damit löschen Sie die "Datei" (den Softlink) /etc/hostname.

Geben Sie den Befehl "/bin/mv /tmp/hostname /etc" ein. Damit verschieben Sie die Datei /tmp/hostname in das Verzeichnis /etc.

Geben Sie den Befehl "ls -l /etc/hostname" ein.

"-rw-r--r-- ... /etc/hostname" wird ausgegeben. Das zeigt, dass es sich bei der Datei /etc/hostname nun nicht mehr um einen Softlink handelt, der auf die Datei /KNOPPIX/etc/hostname verweist, sondern um eine "echte", "eigenständige" Datei, in der jetzt Änderungen vorgenommen werden können (mit dem Befehl "echo rakete > /etc/hostname" kann z.B. der Hostname (Rechnername) auf rakete gesetzt werden).

Die Datei ist damit änderbar :-)

2.3       SYSLOG starten

Bei auftretenden Fehlern werden die Meldungen nicht immer angezeigt sondern in die SYSLOG geschrieben. Damit man das Protokoll verfolgen kann öffnet man ein separates Fenster mit der SYSLOG.

 

Pinguinsymbol – Server-Dienste – SYSLOG starten

2.4       Root-Shell starten

Schreiboperationen auf der Platte sind nur mit root-Berechtigung möglich

 

K – KNOPPIX – Root-Shell

3         Inbetriebnahme DHCP-Server 

3.1       DHCPD.CONF überschreiben

Zunächst wird die symbolische Verknüpfung gelöscht

rm /etc/dhcp3/dhcpd.conf

Kopieren der vorbereiteten Datei von Diskette in das passende verzeichnis

cp /mnt/floppy/dhcpd.conf /etc/dhcp3

3.2       DHCP-Server starten

Das Startskript wird aufgerufen. Als Parameter gibt man den Namen der Netzwerkschnittstelle an (wenn nicht eth0)

/usr/sbin/dhcpd3 eth1

 

Die Startoptionen:

-p <Port> Reagiert auf die Daten am Port Port
-f Starten im Vordergrund
-d Starten im Debug-Modus
-q Unterdrücken von Ausgaben
-cf <Datei> Alternative Konfigurationsdatei
-lf <Datei> Alternative Logdatei
<Interfaces> Schnittstellen

 

3.3       Überprüfung der Funktion

Ein beliebiger Rechner wird in diesem Netzwerksegment angeschlossen und bezieht seine Adresse per DHCP.

Es fällt auf dass die Adressen im angegebenen Bereich „von oben“ vergeben werden d.h. zuerst wird die letzte Adresse vergeben, dann die vorletzte etc.

 

DHCP im sicheren Netzbereich

3.4       DHCP-Server stoppen

/etc/init.d/dhcp3-server Stopp

4         Ergebnis / Zusammenfassung

Nach jedem Knoppix-Start muss wieder die Datei dhcpd.conf kopiert und der DHCP-Server gestartet werden. Evtl. könnte man diese Vorgänge automatisieren.

Es ist auch zu prüfen inwieweit die Konfiguration der beiden Netzwerkkarten entweder automatisch erfolgt oder mit in dem Skript festgelegt werden kann. Ziel ist ein weitestgehend automatischer Systemstart.
Knoppix ist ja ein Livesystem.. Das bedeutet: Einstellungen werden nicht gespeichert.

 

(c) Fred Hemme 2007