Ich möchte in diesem Blogpost beschreiben, wie man einen RaspberryPi in einen Router verwandelt.
Das geht recht einfach und unkompliziert ;)
Voraussetzung
Zunächst müsst ihr einige Voraussetzungen erfüllen:
Einen Pi mit einem LAN-Anschluss (Modell B) besitzen
Einen USB2LAN-Adapter Übersicht; Ich habe mir den Logilink Fast Ethernet Adapter bestellt.
Die Lieferung muss angekommen sein ;)
Falls “ca-certificates” noch nicht installiert ist, dann dieses mittels
sudo apt-get update && sudo apt-get install ca-certificates && sudo apt-get upgrade
installieren, und nebenbei den Pi auf den neusten Stand bringen.
Netzwerkeinstellungen
Danach müssen wir die “Interfaces” bearbeiten:
sudo nano /etc/network/interfaces
Es gilt dort zwei Sachen einzustellen:
Eth0 (Onboard) soll dynamisch eine IP vom ISP per DHCP bekommen
Eth1 (USB) soll eine statische IP in einem Subnetz erhalten
Ich möchte, dass eth1 dann später über 193.168.3.1 erreichbar ist. Die Konfiguration sollte so ähnlich aussehen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Danach starten wir “networking” einmal neu:
sudo /etc/init.d/networking restart
DHCP einrichten
Nun müssen wir uns noch um DHCP kümmern, damit die Clients dynamisch ihre IP-Addressen erhalten.
Dazu installieren wir zunächst ein Package:
sudo apt-get install isc-dhcp-server
Falls ihr eine Fehlermeldung erhaltet, dass der Server nicht gestartet werden konnte, ist das nicht schlimm, da wir die Konfiguration jetzt erst anlegen werden.
Daraufhin müssen wir diesen noch konfigurieren:
sudo nano /etc/dhcp/dhcpd.conf
Falls dort irgendwas unkommentiert ist, könnt ihr das auskommentieren.
Danach legt ihr ein Subnetz an:
1 2 3 4 5 6 7 8 9 10 |
|
Damit können eure Clients die IP-Adressen 192.168.3.10 bis 192.168.3.250 bekommen.
Als DNS-Server nutze ich die von Google. Falls ihr das nicht wünscht, müsst ihr es ggf. abändern.
Nun folgt ein Neustart vom DHCP-Server:
sudo /etc/init.d/isc-dhcp-server restart
Auch hier kann ein erstmaliger Fehler beim Stoppen des Servers ignoriert werden.
Nun könntet ihr bereits einen Clienten an den zweiten Netzwerkport (eth1) stecken, und dieser sollte erfolgreich eine IP ausgehändigt bekommen.
Hier ist es jedoch noch nicht möglich, aufs Internet zuzugreifen.
Portforwarding
Nun müsst ihr noch drei Schritte vollziehen, bis der erste Versuchsaufbau soweit fertig ist.
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Danach in der Datei
sudo nano /etc/sysctl.con
das Kommentar vor der Zeile
net.ipv4.ip_forward=1
entfernen.
Zuletzt nur noch eine Regel in den Iptables erstellen:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Nun sollte euer Client auf das Internet zugreifen können.
Nachbearbeitung
Damit die Iptables-Regel auch nach einem Neustart bestehen bleibt, bedarf es noch einem kleinen Script.
Zunächst erstellen wir einen Ordner und exportieren die aktuellen Iptables:
1 2 3 |
|
Danach legen wir ein kleines Shellscript an
sudo nano /etc/network/if-pre-up.d/iptables
und füllen es mit folgendem Inhalt:
1 2 3 4 5 |
|
Zuletzt noch die Rechte der Datei anpassen:
1 2 3 |
|
Damit sollte der “Router” soweit fertig konfiguriert sein.
Wenn man vor hat, den Router direkt an die DSL-Buchse zu stecken, so sollte man noch einige Sicherheitsmaßnahmen ergreifen.
Da das bei mir nicht der Fall ist, beende ich hier mal den Blogpost :P
Gegebenenfalls folgt ein Update.
Gruß
Gehaxelt