Raspberry Pi als Router mit DNS und DHCP konfigurieren

In diesem Beitrag wird beschrieben, wie amn einen Raspberry Pi (RPi) als einen Router konfigurieren und einsetzen kann, der auch einen DNS Forward Server wie auch einen DHCP Dienst bereitstellt.
Im ersten Beitrag zum RPi ging es um die RPi Installation eines Raspberry Pi – ohne angeschlossen Monitor und ohne Tastatur (headless) sowie ein paar erste Konfigurationen. Im dritten Beitrag geht es um das Hardening eines RPi, der als Router mit DNS und DHCP arbeitet.

In ersten Artikel geht es darum den RPi so zu konfigurieren, dass dieser als Router arbeitet. Dazu sind im Wesentlichen die folgende Dinge notwendig:

  1. ein weiteres Netzwerk Interface physikalisch zur Verfügung stellen (hier eth1)
  2. das Netzwerk Interface konfigurieren
  3. DNS + DHCP installieren und konfigurieren

Ziel:

  • eth0 stellt die Verbindung zum DHCP Server (192.168.10.0/8) und darüber hinaus zum ISP her
  • eth1 stellt die Verbdingung zum lokalen Netz her (10.1.10.0/8)
  • ein DCHP Server stellt im lokalen Netz die dynamisch zu vergebenen Adressen zur Verfügung
  • ein DNS Server cahed alle Requests, um Namensauflösungen schneller zu machen

 

1. ein weiteres Netzwerk Interface physikalisch zur Verfügung stellen (hier eth1)

Natürlich kann man den RPi auch mit nur einem physikalischen Netzwerk als Router konfigurieren. Um die Sache jedoch einfacher zu gestallten, beschreibe ich hier die Möglichkeit, ein weiteres Netz physikalisch hinzuzufügen und basierend auf diesem alles zu konfigurieren.

Ich habe dazu einen USB – RJ25 Adapter gewählt, um in einem der freien USB Ports ein weiteres Netzwerk Interface zur Verfügung zu stellen. Dazu muss dieser Adapter einfach in den USB Port gesteckt werden.

Direkt nach dem Einstecken wird das neue Interface erkannt und man erhält folgende Ausgabe:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ ifconfig
eth0  Link encap:Ethernet HWaddr b8:27:eb:44:09:93
      inet addr:192.172.10.5 Bcast:192.172.10.255 Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
      RX packets:62 errors:0 dropped:0 overruns:0 frame:0
      TX packets:50 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:8141 (7.9 KiB) TX bytes:9059 (8.8 KiB)
 
eth1  Link encap:Ethernet HWaddr 00:23:56:0c:23:11
      UP BROADCAST MULTICAST MTU:1500 Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
 
lo    Link encap:Local Loopback
      inet addr:127.0.0.1 Mask:255.0.0.0
      UP LOOPBACK RUNNING MTU:65536 Metric:1
      RX packets:16 errors:0 dropped:0 overruns:0 frame:0
      TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:1212 (1.1 KiB) TX bytes:1212 (1.1 KiB)

 

2. das Netzwerk Interface konfigurieren

Um nun dem Interface eth1 eine feste Adresse zuzuweisen, benötigt es nur, die Datei /etc/network/interfaces zu konfigurieren. Es sind Einträge für eth1 hinzuzufügen, so dass diese dann so aussieht:

File: /etc/network/interfaces

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet static
      mtu             1500
      dns_search      scons.de
      dns-nameserver  localhost 192.172.10.5 192.172.10.1
      address         192.172.10.5
      netmask         255.255.255.0
      gateway         192.172.10.1
 
auto eth1
iface eth1 inet static
      mtu             1500
      dns_search      scons.de
      dns-nameserver  localhost 192.172.10.5
      address         10.1.10.1
      netmask         255.255.255.0
      gateway         10.1.10.1

Und zuletzt noch die Datei /etc/hosts um diesen Eintrag erweitern:
File: /etc/hosts

1
2
3
4
5
6
127.0.0.1       localhost.scons.de localhost
 
192.172.10.5    ns.scons.de ns
10.1.10.1       fw.scons.de fw
 
192.172.10.1    fritz.box

Danach sind nur die Netzwerkdienste durchzustarten oder einfach Rebooten mittels

1
sudo reboot

und ifconfig liefert dann folgendes Ergebnis:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ ifconfig
eth0  Link encap:Ethernet HWaddr b8:27:eb:44:09:93
      inet addr:192.172.10.5 Bcast:192.172.10.255 Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
      RX packets:61 errors:0 dropped:0 overruns:0 frame:0
      TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:8358 (8.1 KiB) TX bytes:8109 (7.9 KiB)
 
eth1  Link encap:Ethernet HWaddr 00:23:56:0c:23:11
      inet addr:10.1.10.1 Bcast:10.1.10.255 Mask:255.255.255.0
      UP BROADCAST MULTICAST MTU:1500 Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
 
lo    Link encap:Local Loopback
      inet addr:127.0.0.1 Mask:255.0.0.0
      UP LOOPBACK RUNNING MTU:65536 Metric:1
      RX packets:20 errors:0 dropped:0 overruns:0 frame:0
      TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:1684 (1.6 KiB) TX bytes:1684 (1.6 KiB)

 

3. DNS + DHCP installieren und konfigurieren

Im ersten Teilschritt müssen wir die Software installieren

1
sudo apt-get install dnsmasq

Danach muss dieser Dienst in /etc/dnsmasq.conf noch konfiguriert werden. Dazu müssen die folgenden Zeilen auskommentiert und teilweise angepasst werden werden:

File: /etc/dnsmasq.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
domain-needed
bogus-priv
filterwin2k
local=/scons.de/
except-interface=eth0
expand-hosts
domain=scons.de
dhcp-range=10.1.10.200,10.1.10.250,12h
read-ethers
dhcp-option=option:ntp-server,192.172.10.5,192.172.10.1
dhcp-option=42,0.0.0.0
dhcp-option=252,"\n"
dhcp-option=vendor:MSFT,2,1i
dhcp-authoritative
dhcp-script=/bin/echo
cache-size=150
no-negcache
log-dhcp

Im Anschluss muss noch die Datei /etc/ethers konfiguriert werden. In dieser wird festgelegt, welche MAcAdressen eines Rechners welche IP fest zugeordnet bekommen:
File: /etc/ethers

1
2
3
4
5
6
7
8
9
### Start /etc/ethers
#
# Zuordnung MacAddre - IP für DCHP (dnsmasq)
#
 
b8:27:eb:44:09:93            ns.scons.de
00:23:56:0c:23:11            fw.scons.de
 
### Ende /etc/ethers

Ist auch das geschehen, kann der Service durchegstartet werden, damit die Änderungen wirksam werden:

1
sudo service dnsmasq restart

Hiernach kann man noch optional noch NAT aktivieren durch Eingaben von:

1
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Kommentar verfassen