Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

09.07.2002, 18:04

Redhat 7.2 Router Projekt (DSL)

Teil 1

Hi erstmal,
im folgenden werde ich mal versuchen Schritt für Schritt aufzuschreiben, wie man einen DSL-Router mit RedHat Linux 7.2 aufsetzt und konfiguriert. Mein Beispielsystem war ein Pentium 200MMX mit 96MB RAM und drei Festplatten:
Primär Master: mit 2GB und Win2k
Primär Slave: CDROM
Sekundär Master: 1700MB Linux
Sekundär Slave: 4GB Daten

1.)Die Installation
Ich vollziehe die Installation die ich hier beschreibe nebenher noch mal mit vmware 3.0 nach. Alle Schritte die nicht beschrieben sind die Standardvorgabe akzeptieren. Voraussetzung: RedHat 7.2 CD 1 und 2 und eine CD mit folgenden Paketen: die Updates für RedHat 7.2 (eigentlich reichen die Dateien aus dem i386-Zweig), linux kernel 2.4.12 von ftp.kernel.org, die Kernelpatches von Alan Cox zu diesem Kernel von ftp.kernel.org/pub/linux/kernel/poeple/alan/linux-2.4/2.4.12/patch-2.4.12-acXX (neuste Nummer), das Paket rp-pppoe-3.3-1.i386.rpm von http://www.roaringpenguin.com/pppoe/. cups-xxx-intel.rpm von www.cups.org und webmin-0.88.rpm von http://sourceforge.net/projects/webadmin/.
-RedHat CD 1 einlegen und booten
-am LILO Prompt "expert" eingeben
-Driver Disk: in der Regel nicht
-Choose Language: German (oder auch nicht...)
-Maus auswählen
-Benutzerdefinierte Installation
-Manuelles partitionieren mit fdisk (keine Angst, ist einfach)
-Partition auswählen: hdd
-Wenn er vorschlägt die Platte zu initialisieren, wenn überhaupt NUR die Platte auf die Linux soll!!
-Partitionen anlegen: hdd1: 50MB /boot ext2
hdd2: 1650MB extended
hdd5: 1350MB / ext2
hdd6: 200MB /var ext2
hdd7: 100MB swap
-Partition anlegen: "n" für neu, "p" für primär, "1", Enter, +50M (50MB)
"n", "e", "2", Enter, Enter (extended Partition für den Rest)
"n", "l", Enter, "+1350M"
"n", "l", Enter, "+200M"
"n", "l", Enter, Enter
-Swap partition anlegen bzw. bestehende Partition ändern:
"t", "7", "82"
-Partitionstabelle überprüfen mit "v" und wenn nichts gravierendes ist (unbenutzte Sektoren sind kein Problem) mit "w" schreiben.
-"Weiter" klicken und im DiskDruid den angelegten Partitionen einen mountpoint zuweisen, das Dateisystem festlegen und "formatieren" anwählen. Bei älteren Platten vielleicht noch auf defekte Sektoren prüfen. Vorerst mal nur ext2 auswählen, umschalten auf ext3 können wir immer noch.
-Die kommenden Dialoge jeweils bestätigen aber gerade wenn die zu formatierenden Partitionen angezeigt werden nochmal genau überprüfen.
-Als Bootloader GRUB auswählen und im Masterbootrecord der ersten Partition installieren.
-Kein GRUB Passwort vergeben
-Die Netzwerkkarten erstmal nicht konfigurieren, d.h. weder "...DHCP..." noch "Beim Starten aktivieren" anwählen.
-Firewall einfach so bestätigen, wir schreiben uns sowieso unsere eigene Firewall
-Immer mit Weiter forfahren bis zur Eingabe des Rootpasswortes: denkt Euch was aus, aber nicht zu einfach! Benutzer brauchen wir vorerst keine anzulegen.
-Weiter bis zum Auswählen der Programmgruppen. Folgende Programmgruppen würde ich für unser Projekt vorschlagen: "Netzwerksupport", "Support für den Verbindungsaufbau", "Datentransfer und Webtools", "Windows Dateiserver", "Router / Firewall", "DNS-Nameserver", "Workstation für Netzwerkmanagement", "Dienstprogramme", "Software-Entwicklung", "Kernel-Entwicklung", "Einzelne Pakete auswählen", mit "Weiter" fortfahren
-Zusätzlich mindesten folgende Pakete auswählen: Anwendungen/System/linuxconf, Anwendungen/System/samba-swat, Systemumgebung/Shells/mc (sehr wichtig;-)), was Euch sonst noch gefällt und wofür Ihr Platz habt... Ach ja, caching nameserver brauchen wir auch noch.
-Etwaige Paketabhängigkeiten erfüllen und sooft auf "Weiter" klicken, bis die Pakete installiert werden. Nun ist es schon fast geschafft, nur CD wechseln nicht vergessen...
-Vorsichtshalber erstellen wir mal eine Bootdisk, man kann ja nie wissen...
-Auf "Beenden" klicken und wir haben es geschafft: Linux ist installiert, das alleine bringt uns allerdings nicht weiter...

Teil 2

Wenn wir mit dem ersten Teil keine Probleme hatten haben wir nun ein lauffähiges "nacktes" System.
-Als erstes schmeißen wir mal alle Dienste die wir vorerst oder nie brauchen werden raus: klar, wir könnten auch alles von Hand machen, aber warum sollten wir uns das Leben unnötig schwer machen: "setup" eingeben und den Punkt "System services" anwählen. Da kann man jetzt alles schön an- und abklicken ohne sich viel Gedanken machen zu müssen. Was wir vorerst mal brauchen ist folgendes: apmd (nicht unbedingt, aber warum nicht), atd, crond, keytable, network, random, sshd, syslog, xinetd. Den Rest können wir beruhigt erstmal vergessen, besonders die Firewall, die schreiben wir uns ja selber. Nach einem "init 1" und einem anschließenden "init 3" sollten eigentlich nur noch die nötigsten Dienste gestartet sein und ein "ps -eaf" paßt schon fast auf eine Bildschirmseite.
-Als nächstes werden erstmal die wichtigsten Updates eingespielt, damit wir auch auf dem neusten Stand sind. Insbesondere sollten hier die Updates die unter ./i386/ zu finden sind installiert werden: glibc-*, openssh-*, nfs-utils, squid, und util-linux. Die Kernelupdates brauchen wir nicht, da wir eine neuere Kernelversion installieren als die von Redhat gepatchte 2.4.9, da ich mit dieser Probleme hatte sie überhaupt zu kompilieren.
-Das Kernel von der Updatecd installieren und patchen: "cd /usr/src", "mount /dev/cdrom /mnt/cdrom", "bzip2 -dc /mnt/cdrom/linux-2.4.12.tar.bz2 | tar -xvf -", "mv linux linux-2.4.12", "ln -s linux-2.4.12 linux", "cd linux", "bzip2 -dc /mnt/cdrom/patch-2.4.12-acX.bz2 > patch", "patch -p1 < patch".
Wenn irgendwas nicht funktioniert liegt es vielleicht daran, daß die Kernelsourcen oder der Patch nicht mit bzip2 sonder mit gzip gepackt wurden; dann ist bzip2 durch gzip zu ersetzen.
-Nun wird das kernel konfiguriert: "make menuconfig" im Verzeichnis /usr/src/linux. Die Kernelkonfiguration ist leider nicht so ganz einfach, aber auch nichts wirklich mystisches. Grundsätzlich gilt: alles was nicht beim starten des Systems an Treiber benötigt wird, brauch auch nicht fest ins Kernel einkompiliert zu werden (mit einem "*" markiert). Alles was man vielleicht mal an Treibern benötigen könnte sollte man als Modul kompilieren (mit "M" markiert). Bei den Punkten bei denen man sich nicht sicher ist einfach mal auf Help gehen und meistens steht unten dann was mit "if in doubt..." und das sollte man dann auch befolgen. Weniger ist mehr!!!
Besonderes Augenmerk sollten wir auf die Abschnitte "General setup", "Networking support", "SCSI devices" bzw "ATA/IDE/MFM...", "Network devices support" (!!!) und "File systems" legen. Bei den anderen Abschnitten sollte nur möglichst nur das mit ins Kernel einkompiliert werden, von dem wir uns sicher sind, daß wir es auch brauchen.
Unter "General setup" ist besonders wichtig "Network support" und "Sysctl support". "Plug and Play support" braucht auch nicht jeder. Unter "Block devices" sollte man "RAM disk support" und "Initial RAM disk support" auswählen. Nun kommen wir zu den wirklich wichtigen Dingen: "Network options": "Network packet filtering", "IP: advanced router", "IP: TCP syncookie support" (wer meint er brauchts) fest einkompilieren, im Untermenü "IP: Netfilter Configuration" alle als Modul konfigurieren bis auf "ipfwadm" und "ipchains". Im Menü "ATA/IDE/MFM/RLL support" den Treiber der zur jeweiligen Hardware paßt auswählen. Wer SCSI hat, wählt unter "SCSI support" die jeweiligen Treiber aus. Unter "Network device support" im Untermenü "Ethernet support (10 or 100Mbit)" die Treiber für Eure Netzwerkkarten als Modul auswählen (im Zweifelsfall halt alle als Modul). Um adsl benutzen zu können muß im Menü "Code maturity level options" die einzige Option ausgewählt werden und unter "Network device support" "PPP support" mit allen Unteroptionen als Modul ausgewählt werden. Unter "Character devices" kann man "/dev/agpgart" und "Direct Rendering..." ruhig abgewählt werden. Unter "Files systems" mindesten "ext3 support" und "extended second..." fest anwählen, alle anderen Filesysteme können auch als Modul einkompiliert werden. Besonders unter "Network File Systems" brauch NFS nicht unbedingt fest angewählt zu werden. Die restlichen Optionen kann man mal kritisch durchsehen und wenn man meint man könnte das eine oder andere mal benutzen, dann ruhig als Modul auswählen, dann dauert nur das kompilieren etwas länger.
Zum Abschluß kann man die soeben erstellte Konfiguration in eine externe Datei speichern. Beim beenden nur noch die Konfiguration abspeichern und dann geht's ans kompilieren: "make dep; make bzImage; make modules". Wenn alles richtig gemacht wurde, geht dabei alles ohne Probleme. Wenn nicht, nicht... Aber nicht verzagen, ich habe einfach mal die Konfiguration die ich erstellt habe abgespeichert und unter http://kommt.noch.de zur Verfügung gestellt.
Nach dem kompilieren ist das neue Kernel unter /usr/src/linux/arch/i386/boot/bzImage und kann nach /boot/linux-2.4.12 kopiert werden. Nun noch die Module mit "make modules_install" an die richtige Stelle kopieren und einen Eintrag im Bootmenü erstellen, dann sind wir fertig. Dazu wird die Datei /boot/grub/grub.conf editiert (für solche Sachen ist mc sehr gut geeignet!): Einfach die vier Zeilen hinter dem Eintrag "title Redhat..." (und den Eintrag selber) kopieren und ans Ende der Datei einfügen und ein bischen abändern: den Eintrag kernel /vmlinuz... für das neue Kernel anpassen, den Titel anpassen und den Eintrag "initrd..." ganz entfernen. Außerdem noch den Eintrag "default=0" (oder ähnlich) auf "default=1" ändern, bzw. auf 2 oder 3 je nachdem an welcher Stelle der neue Eintrag steht (mit 0 anfangen zu zählen). Abspeichern und neu starten, im Bootmenü sollte jetzt ein neuer Eintrag mit dem angepaßten Titel erscheinen. Durch ein einfaches Enter oder warten sollte das neue Kernel gebootet werden. Wenn nach dem booten am Prompt jetzt irgendwas von linux-2.4.12-acXX steht, dann hatt ja alles geklappt.

Teil 3


Als nächstes installieren wir die Netzwerkkarten. An einer hängt das DSL-Modem und an der anderen unser Heimnetzwerk. In der Regel sind es unterschiedliche Karten was auch unterschiedliche Treiber erfordert. Das dumme dabei ist, welches Device gehört zu welcher Karte? Probieren geht über studieren.... Die Netzwerkkarten lassen sich am einfachsten mit linuxconf einrichten, und zwar erst mal nur eine um rauszubekommen welche es denn nun ist. Wenn man zwei gleiche Karten hat, sollte man sich vorher die MAC-Adresse aufschreiben, die irgendwo auf der Karte draufstehen sollte und ungefähr so aussieht: 00:0A:11:22:33:FF. Nun wird linuxconf in der Konsole aufgerufen und unter "Verwaltung - Netzwerk - Grundeinstellungen - Allgemeines" werden die Daten für das erste Netzwerkdevice eingetragen:

host name + domain: <Rechnername + Domain> (was auch sonst... denkt Euch was aus)
[x] Aktiviert
Konfigurationsmodus: (o) Manuell
IP-Nummer: <Adresse aus dem internen Netz>
Netzmask: 255.255.255.0
Netzwerkgerät: eth0
Kernel Modul: <Name des Moduls ohne ".o">
Bei älteren Netzwerkkarten kann es noch notwendig sein I/O Port und IRQ anzugeben.

Nach einem "Bestätigen", "Beenden" und "Do it" ist man wieder in der Konsole und kann mal mit "ifconfig" überprüfen ob alles funktioniert hat. Wenn da jetzt unter dem Eintag eth0 eine Hardware Adresse steht dann funktioniert schon mal die erste Netzwerkkarte! Wenn an der Karte das interne Netz hängt kann man ja mal versuche ob sich einer der anderen Rechner anpingen läßt. Wenn das nicht funktioniert (oder die Hardware Adresse zu der Karte mit dem DSL-Modem gehört). Nun kann wie oben beschrieben die zweite Netzwerkkarte eingerichtet werden. Sollte an der ersten Karte das Modem hängen, müssen die Einträge entsprechend angepaßt werden.

Jetzt, wo die Netzwerkkarten installiert sind, können wir zum ersten mal die Verbindung zum DSL-Modem testen. Dazu geben wir in der Konsole folgendes ein: "pppoe -I eth0 -A" (oder eth1). pppoe versucht nun mit dem Modem zu sprechen, und wenn alles funktioniert sollten auch Informationen über das Modem angezeigt werden. Wenn das auch funktioniert hat, dann sind wir fast schon "drin". Das konfigurieren der Zugangsdaten ist jetzt eigentlich ziemlich einfach: einfach "adsl-setup" eingeben und die jeweiligen Daten eintragen, wobei die Benutzerkennung sich aus der Anschlußkennung, der T-Onlinenummer und der Mitbenutzernummer wie folgt zusammensetzt: <Anschlußkennung><T-Onlinenummer>#<Mitbenutzernummer>@t-online.de (z.b.111111111111222222222222#0001@t-online.de). Firewall brauchen wir keine, die basteln wir uns selber, den DNS-Server übernehmen wir vom Einwahlserver (server eingeben) und dial-on-demand mit einem Timeout von 3600 Sekunden sollte eigentlich auch reichen. Ziemlich gut ist dieser Vorgang auch unter http://www.adsl4linux.de/howtos/rp-...nline&DIST=RH72 beschrieben. Jetzt können wir mal probieren ob wir auch alles richtig eingegeben haben: ein "adsl-connect" bringt uns in Internet und ein "ping www.linux-tests.de" sollte nicht ins leere laufen. "adsl-stop" sollte die Verbindung wieder trennen. Im schon öfter benutzten Programm "setup" steht jetzt unter "System services" auch adsl als Diest zur Verfügung und durch anwählen desselben wird dieser dann bei jedem Systemstart auch mit geladen.

Teil 4


Ich hab als Grundlage die Datei /etc/services verwendet, da hier alle unter Linux bekannten Dienste mit Port und Protokoll drinstehen. Das Script was ich geschrieben habe, sucht nun eine Datei namens rules.forward im gleichen Verzeichnis und wertet alle nicht mit einem "#" auskommentierten Einträge aus. Aus jedem dieser Einträge wird eine Firewall
regel, die den jeweiligen Port durch die Firewall durchläßt. Die Einträge haben das gleiche Format wie die besagte Datei /etc/services und somit kann diese Datei leicht mit

"awk '{printf "# %s\n", $0}' /etc/services > rules.forward"

selber erzeugt werden. Alle blockierten Anfragen werden in der Datei /var/log/messages mitgeloggt und mit "Forward TCP/UDP/ICMP/FRAGMENT Dropped:" markiert.

Genauso werden durch die Datei "rules.inout" Regeln erzeugt, mit denen von dem Rechner aus gearbeitet werden kann z.B. surfen oder saugen (also Port 80, 20 und 21 in rules.inout freischalten). Außerdem gibt es noch die Datei "rules.server" mit der Regeln erzeugt werden, mit denen von Außen auf den Rechner zugegriffen werden kann z.B. als http-Server oder ftp-Server. Wenn die Dateien nicht existieren, werden die Teile des Scriptes jeweils nicht ausgeführt.

Dienste die in /etc/services noch nicht existieren (Halflife, Gnutella usw...), können im gleichen Stil in die jeweilige Datei eingefügt werden. Dabei können auch Portbereiche mit einem ":" angegeben werden, z.B. "1600:1700". Das Problem ist nur, die jeweiligen Portnummer herauszufinden. Eine Möglichkeit ist diese: in einer Konsole "tail -f /var/log/messages" starten und dann auf die geblockten Ports achten die da auftauchen, wenn man das jeweilige Programm startet und keine Antwort bekommt (hat mit Halflife ziemlich gut funktioniert). Die Ports dann einfach mal zusätzlich freigeben und sehen ob es dann funktioniert.

Wenn irgendjemand Fehler im Script entdecken sollte, bitte ruhig hier posten, ich hatte leider nicht die Mittel alles ewig zu testen.


Das script habe ich als anhang mit....
»Futureman« hat folgende Datei angehängt:
  • Script.txt (8,21 kB - 73 mal heruntergeladen - zuletzt: 03.02.2011, 14:27)
Das leben ist ein scheiss spiel....aber mit geiler grafik!

2

25.08.2002, 02:07

RE: Redhat 7.2 Router Projekt (DSL)


  • »§igma« ist männlich

Beiträge: 1 409

Wohnort: Bayreuth

Beruf: Selbständig

  • Nachricht senden

3

29.08.2002, 06:51

RE: Redhat 7.2 Router Projekt (DSL)

zum glück funktioniert der link ;)

PS: poste bitte mal nen korrekten! dankeschön

4

09.09.2003, 19:35

kann ich auch redhat 9.A nehmen???

ist das schwierig das ganze zu konfigurieren? ich bin noch in den anfängen "noob" und n linux router wollte ich mir anschaffen (200 mhz rechner hab ich schon was ich mir dafür ja noch holen muss is ja ne 2 netzwerkkarte für den router und nen kleinen hub damit ich mit meinen hauptrechner und meine schwester online gehen können)

oder sollte ich lieber einen diskettenrouter nehmen???

gruß chucky

5

10.09.2003, 01:12

Zitat

Original von [dfh]-chucky-
... oder sollte ich lieber einen diskettenrouter nehmen???


Nun, eigentlich ist es egal, welche Linuxversion Du nimmst ;)
Da vergleicht man Joghurt mit Butter (ist im Endeffekt das selbe)!
Diese Fragestellung provoziert allerhöchstens einen "Streit der Geschmäcker" (und über Geschmack lässt sich nicht streiten!) ...

Linux ist Linux, und außer Paketzusammenstellung und Versionsnummern, vielleicht noch den einen oder anderen Ort für Konfigurationsdateien eigentlich beinahe immer gleich ...

Aber wenn Du schon selber sagst Du wärest "Anfänger" im Bereich Linux, bringt Dich die windowsbasierte Konfigurationsoberfläche von Fli4L wohl am schnellsten zum Ziel.
Willst Du dabei aber eher etwas lernen, empfehle ich Dir ein "richtiges" Linux zu installieren (welches auch immer)!
Wenn es hakt und klemmt kannst Du Dich zu speziellen Problemen gerne diesem Forum anvertrauen!
Im grunde genommen brauchst Du nur die RedHat9-CD einlegen und loslegen, nach erfolgter DSL-Konfiguration (für Linux-Router am besten das Paket "rp-pppoe" benutzen (Default bei RH und Debian)) das für Deine Zwecke angepasste iptables-Script ausführen und fettich is der Router!
Alle anderen Gimicks die einem noch so einfallen könnten (z.B. DHCP oder DNS-Cache mit Bind) sind für ein so kleines Netz nicht unbedingt erforderlich ...


Michael
Life is like ice cream: enjoy it before it melts!
"If there is (a God), all evidence indicates that He hates me." - Matt Groening

6

15.12.2004, 13:11

RE: Redhat 7.2 Router Projekt (DSL)

Zitat

zum glück funktioniert der link

Zitat

PS: poste bitte mal nen korrekten! dankeschön


für gewöhnlich reichen zwei Slash bei www-Adressen:

http://www.router-piewie.de.tf
Edit: Quote-Tag geschlossen. Renegade

Thema bewerten