__           __           __                     
.-----.--.--.----.| |.--.--.--| |.-----.--| | .-----.----.-----.
| -__|_ _| __|| || | | _ || -__| _ |__| _ | _| _ |
|_____|__.__|____||__||_____|_____||_____|_____|__|_____|__| |___ |
|_____|

[ visit www.excluded.org ]

Linux Router Howto
(c) 2003 by Takt <takt@excluded.org>


1. Vorwort
2. Pakete installieren
3. Ethernet Karten Konfigurieren
4. (A)DSL Konfigurieren
5. IPtables Konfigureiren
6. Clients Konfigurieren
7. Port-forwarding
8. Greetings

1. Vorwort:

Dieses Howto beschreibt, wie man auf einfache Art und Weise mit jeder Linux Distribution einen DSL Router bauen kann.
Als Hardware reicht hier schon ein 100Mhz Rechner mit 8MB Ram, zwei Netzwerkkarten und einer 0,5Gb HDD.

2. Pakete installieren:

Für unseren Router benötigen wir die folgenden 2 Pakete:
-iptables-1.2.2-60
-rp-pppoe-3.2-23
Die Versionsnummer können ruhig ein wenig abweichen.
Unter Debian installieren wir die Pakete wie folgt: "apt-get install iptables" und "apt-get install pppoe".
Bei SuSE solltens ie die Pakete über Yast/Yast2 installieren. Bei anderen RPM basierten Distributionen besorg tman sich die pakete aus
dem Internet oder von der Distributions CD. Inatlliert werden sie dann wie folgt: "rpm -i iptables-version.arch.rpm" bzw.
"rpm -i rp-pppoe-version.arch.rpm".  Sind die Pakete installiert können wir mit Punkt 3 Fortfahren.

3. Ethernet Karten Konfigurieren:

Ich gehe hier davon aus, dass 2 Netzwerkkarten installiert sind.
"ifconfig" sollte also sowohl "eth0" als auch "eth1" anzeigen. Schließen wir also das DSL Modem an eth0 an.
Nun stellenw ir die IP Adressen für die Karten ein. Der ersten Karte, an welcher das DSL Modem hängt geben wir die IP
192.168.255.254 Dies geschieht entweder über Yast und Consorten oder "ifconfig eth0 192.168.255.254 mask 255.255.255.255 up"
Die 2. Netzwerkkarte, also eth1 stellt die Verbindung mit dem Netzwerk her und erhält die IP Adresse 192.168.0.1.
Hier hat man wieder die Wahl ob man die IP nun per Yast und Consorten oder ifconfig einstellt. Der ifconfig Befehl lautet wie folgt:
"ifconfig eth1 192.168.0.1 mask 255.255.255.0 up".

Hiermit wäre die Konfiguration des Netzwerkes abgeschlossen.

4. DSL Konfigurieren

Nun konfigurieren  wir die DSL-Verbindung.

4.1 Configuration unter SuSE, RedHat uvm. (rp-pppoe):

Dazu geben wir auf einer Console folgendes ein: "adsl-setup". Wir werden gefragt, wie unser Benutzername, und unser Passwort heißen.
Geben sie die Daten 100%ig korrekt ein. Es wird auch gefragt über welches Device das Modem angesprochen wird, diese Frage beantworten wir mit eth0.
Ob die Verbindung beim booten aktiviert werden soll, per Hand, oder dann wenn sie benötigt wird liegt in ihrer Hand.
Sollten sie die Verbindung von Hand herstellen wollen, können sie dies per "ifup ppp0" machen. Selbiges gilt, wenn die Vernbindung trotz Auswahl
beim booten mal nicht aktiviert wurde. Ob die Verbindung steht überprüfen wir einfach per "ifconfig ppp0". Bekommen sie eine Fehlermeldung
ist die Verbindung abgebrochen. Notfalls Konfigurieren sie ihre DSL Verbindung neu.

4.2 Configuration unter Debian (pppoe):

Hier wird die DSL-config per "pppoe" auf der Console durchgeführt. Auch hier werden wir nach Benutzername und Passwort gefragt.
Die Daten sollten 100%ig korrekt sein. Die Frage  nach dem Device an welchem das Modem hängt beantworten wir mit eth0. Zur Auswahl haben sie noch,
ob die Verbindung beim booten gestartet werden soll oder nicht. Was sie dort wählen liegt in ihrer Hand. Sollten sie die Verbindung per Hand starten wollen,
so funktioniert dies per "pon" auf der Console und mit "poff" können sie die Verbindung wieder trennen.

5. IPtables Konfigurieren

Nun müssen wir das MASQUERADING oder auch NAT ROUTING aktivieren.
Diese befehle müssen bei jedem Neustart ausgeführt werden. Am besten sie schreiben sich hierzu ein Shellscript und starten es per Runlevel.

Zuerst müssen wir dem Kernel mitteilen, dass wir IP_forwarding benötigen, dies erledigen wir per:
"echo 1 >/proc/sys/net/ipv4/ip_forward".

Anschließend muss IPtables dafür sorgen, dass die Pakete an die richtigen Hosts gelangen und nicht vom Router "verschluckt" werden.
Dazu geben wir folgendes ein:
"iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -o ppp0 -j MASQUERADE".

Nun ist ihr DSL Router einsatzbereit.

6. Clients Konfigurieren:

Nun stellen sie an ihren Clients als Gateway den Router ein (192.168.0.1).
Als DNS Server müssen (!!) sie einen online DNS Server eintragen. Eine liste dieser gibt es auf www.fli4l.de und www.heise.de

7. Port-forwarding:

Manchmal ist es nötig bestimmte Ports zu öffnen bzw. auf einen Internen PC weiter zu leiten, zb. wenn man einen Counter-strike oder Web-Server
hinter dem Router betreiben möchte.
Die Befehlszeilen für TCP Ports sieht wie folgt aus:
"iptables -A FORWARD -i ppp0 -m state --state NEW -p tcp --dport $zielport -j ACCEPT" und
"iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport $zielport -j DNAT --to $zielhost"
Dabei müsst ihr einfach $zielport durch den Port, zb. 80 für http und $zielhost durch die IP adresse des Server ersetzen.
Die Kommandos für UDP Server lautens ehr ähnlich, nur, dass "tcp" in den Kommandos durch "udp" ersetzt werden muss.

8. Greetings:

Greetings to:
-ProXy
-l0om
-XNet
-Lari
-den Inge
-Bla
und alle die ich vergessen habe :)

Und nun viel Spass mit ihrem Linux DSL Router!


Kopieren erlaubt, verändern Verboten!

Takt