Home
Über die LugBE | Mailing List | Treff & Events | Projekte | lost+found | Support

Heimnetzwerke mit Linux

Übersicht über die wichtigsten Komponenten

Eine der gängigsten Anwendungen für Linux ist der Einsatz im Heimnetzwerk. Ist der Internetanschluss einmal bestellt und die nötige Hardware im Haus (meist vom Provider geliefert), ist die Versuchung natürlich gross, den PC gleich einzustecken und über die neue Verbindung loszusurfen. Dabei hängt dann der Heimcomputer direkt am Internet. In vielen Fällen wird das genügen, und die damit einhergehenden Sicherheitsrisiken werden bewusst in Kauf genommen. Denn ein Computer, der direkt mit dem grössten Netzwerk der Welt verbunden ist, sollte natürlich auch über die nötigen Sicherheitsvorkehrungen verfügen, um ihn vor unbefugtem Zugriff oder sogar böswilligen Angriffen zu schützen. Leider sind aber viele gänginge Betriebssysteme von Haus aus notorisch unsicher und bringen wenig bis keine Sicherheitsmechanismen mit, bzw. man muss sie teuer nachkaufen.

Für solche Fälle - und wenn es mehr als nur einen Computer ans Netz zu bringen gilt - empfiehlt sich der Aufbau eines eigenen kleinen Netzwerkes, in dem nicht mehr jeder PC selbst, sondern ein eigens dafür vorgesehener Rechner (ein so genannter Router) die Verbindung zum Internet herstellt und den andern Rechnern im Netz zur Verfügung stellt. Verfügt der Router zusätzlich noch über Sicherheitsfunktionen, mit denen er unerwünschten Netzwerkverkehr blockieren kann, spricht man von einer Firewall. Beide Funktionen - Router und Firewall - bringt Linux von Haus aus schon mit. Es eignet sich also in einem ersten Schritt bestens für den Einsatz auf dem dedizierten Internet-Rechner, wo es den gesamten ein- und ausgehenden Verkehr überwachen und begrenzen kann.


Die Internet-Anbindung

Die Verbindung mit dem Provider wird wie gehabt mit Hilfe spezieller Hardware hergestellt, die meistens beim Abschluss eines Abonnements vom Provider selbst geliefert wird. Dabei handelt es sich um sogenannte Modems. Sie werden dann einerseits mit speziellen Kabeln an die Telefon- oder Fernsehbuchse angeschlossen und stellen die physikalische Verbindung her. Der zweite Anschluss am Modem ist fü einen PC vorgesehen. Hier werden Standard-Netzwerkkabel (Twisted Pair) verwendet, die dann mit der Netzwerkkarte des PCs (und auch unsere Linux-Firewall ist ein handelsüblicher PC) verbunden werden.

Sobald das Modem die Leitung zum Provider hergestellt hat (zu erkennen meist durch das Blinken bestimmter Lichter am Modem; wie das Modem konfiguriert werden muss, um die Verbindung aufzubauen, entnimmt man der mitgelieferten Dokumentation von Hersteller und Provider), kann nun der PC daran gehen, sich die für eine Teilnahme am Internet notwendige IP-Adresse über diese Leitung zu holen. Hat man ein Kabel-Modem, kommt unter Linux dafür das Programm dhcpcd zum Einsatz, bei einem ADSL-Anschluss ist dafür pppd zuständig. Zu Konfiguration und Start dieser Programme gibt die Linux-Dokumentation (die so genannten Man-Pages) Auskunft - darüber hinaus sind aber im Internet bereits viele detaillierte Anleitungen zu finden (Links siehe weiter unten).


Die Verbindung zum Heimnetz

Um die Verbindung zum internen Heimnetzwerk herzustellen, braucht unsere Firewall natürlich eine zweite Netzwerkkarte, die wieder mittels Netzwerkkabel mit einem Hub/Switch verbunden ist. An diesem Hub hängen auch die anderen Rechner des Heimnetzes. Selbstverständlich müssen Firewall und Heimrechner auch noch mit IP-Adressen ausgestattet werden, um miteinander kommunizieren zu können. Diese Adressen kann man aus einigen eigens dafür reservierten Bereichen aussuchen, z.B. 192.168.0.xyz. Die internen Rechner verwenden die interne Adresse der Firewall als Default Gateway.


Paketweiterleitung

Ist auf dem Linux-Router IP-Forwarding aktiviert (mittels des Kommandos "echo '1' > /proc/sys/net/ipv4/ip_forward"), kann er nun schon Netzwerkpakete von Rechnern aus dem internen Netz weiterleiten (und macht das übrigens auch). Leider nützt uns das noch nichts, da die IP-Adressen der internen Rechner aus dem oben erwähnten reservierten Bereich kommen, der im Internet nicht verwendet werden darf. Bekommt ein Server im Internet eine Anfrage von einer solchen (so genannten privaten IP-Adresse), weiss er nicht, wohin er seine Antwort schicken soll.

Damit unsere internen Rechner nun trotzdem mit dem Internet "reden" können, muss die Firewall einen kleinen Trick anwenden, und zwar die sog. Network Address Translation (NAT, auch Masquerading). Dabei verändert sie den ausgehenden Datenstrom so, dass alle Pakete, die ein interner Rechner durch die Firewall an einen Server im Internet schickt, von der externen Adresse der Firewall selbst zu kommen scheinen. Und da diese ja eine gültige Adresse vom Provider zugeteilt bekommen hat, funktioniert die Kommunikation ohne weiteres. Auf der Firewall wird diese Funktion mit Hilfe des Kommandozeilenprogramms iptables konfiguriert. Auch dazu folgen weiter unten hilfreiche Links.


Und wo bleibt die Sicherheit ...?

Wenn wir einmal so weit gekommen sind, ist der Grossteil der Arbeit bereits erledigt! Aber bevor wir uns zurücklehnen und die neue Surf-Freiheit geniessen können, müssen wir uns erst einmal Gedanken über; die Sicherheit machen. Denn Linux bringt zwar eine Fülle von Sicherheitsfunktionen mit, aber diese sind natürlich nur in dem Masse wirksam, wie man sie auch anwendet.

Der erste und wichtigste (!) Schritt ist, auf dem Linux-Rechner alle Programme (Daemons, Services) abzuschalten, die nicht benötigt werden! Die Wichtigkeit dieses Vorgehens kann nicht genug betont werden, wird aber gerade von Anfängern gern unterschätzt. Für die bisher beschriebenen Funktionen brauchen wir nämlich ausser dem Betriebssystem-Kern (dem Kernel) und dem Programm für den Bezug der IP-Adressen (dhcpcd, pppd) keine zusätzliche Software. (Tipp: Das Kommando "ps -ax" liefert eine Liste gerade laufender Prozesse, welche Programme beim Systemstart automatisch mitgestartet werden, regeln die Scripts im Verzeichnis /etc/init.d und die dazugehörigen Konfigurationsdateien, meist unter /etc/sysconfig zu finden.)

Dann geht es daran, die Firewall selbst zu konfigurieren. Auch hier brauchen wir keine zusätzlichen Dienste, denn der Linux-Kernel selbst enthält bereits eine Firewall, die jedoch in der Grundeinstellung sämtlichen Verkehr erlaubt. Um dieses Verhalten zu ändern und eigene Regeln zu definieren, was erlaubt sein soll und was nicht, brauchen wir wieder das selbe Konfigurationsprogramm, das uns schon die Aktivierung der Network Address Translation erlaubte, nämlich iptables. Mit seiner Hilfe können wir (als Systemadministrator root) unsere Firewall nach Belieben konfigurieren (Links siehe unten).

Diese Einstellungen gelten aber nur für das gerade laufende System. Damit sie auch nach einem allfälligen Neustart des Firewall-Rechners noch vorhanden sind, erzeugt man sich - wie unter Linux/Unix üblich - eine ausführbare Textdatei (ein so genanntes Shell-Script), in der man die benötigten Kommandoaufrufe Zeile für Zeile einträgt. Dieses Script platziert man dann bei den anderen System-Startscripts (meist in /etc/init.d) und konfiguriert das System so, dass sie bei jedem Systemstart ausgeführt werden. Wie das konfiguriert wird, hängt stark vom jeweils verwendeten Linux ab, wird aber meist durch Symbolische Links in den jeweiligen Runlevel-Verzeichnissen erreicht. Näheres dazu finden Sie in der Dokumentation ihres Linux-Systems.


Weiterführende Links

http://people.netfilter.org/~rusty/unreliable-guides/ - Umfangreiche Sammlung zum Thema iptables, NAT und Netzwerk

http://www.tldp.org/HOWTO/DSL-HOWTO/ - Linux-Konfiugration für ADSL

http://www.roaringpenguin.com/pppoe/ - PPPoE-Client (pppd) für Linux, mit guter Installationsanleitung

http://www.linuxheadquarters.com/howto/networking/cablemodem.shtml - Linux-Konfiguration für Kabel-Modem

http://www.klaus.franken.de/DE-ISDN-HOWTO/html/DE-ISDN-HOWTO.html - Linux-Konfiguration für ISDN

http://www.lugbe.ch/lostfound/contrib/router_biel/ - Ein Beispiel aus der Praxis, mit DHCP-Server, Proxy, Firewall und einigem mehr.

Vortrag

Am 8. Mai 2004 haben wir in der Buchhandlung Jäggi in Bern einen Vortrag über "Heimnetzwerke mit Linux" gehalten. Hier finden Sie die dazugehörige Präsentation im OpenOffice-Format. Hier gibt es sie ausserdem als interaktive Webseite. (Die Grafiken stammen übrigens von der Firma Cisco.)

Wir wünschen Ihnen viel Spass mit Ihrem neuen Linux-Netzwerk!


Webmaster at lugbe.ch

Die Artikel dieser Seite stehen unter Copyleft ihrer jeweiligen Autor*innen. Ihre Nutzung, Wiedergabe etc. untersteht den Bedingungen der GNU Free Documentation License (http://www.gnu.org/copyleft/fdl.html), wo nicht explizit anders vermerkt.