Netzwerk-Installationsanleitung für Kernel 2.4 und 2.6

 

  
Anleitung aufgeteilt in Kapitel



(LAN-Anleitung als eine Datei)                ( 77 Seiten LAN-Anleitung im PDF-Format 4,3 MB )

1.0 Einführung

       1.1 Über diese Anleitung

       1.2 Vorgeschichte

 

2.0 Grundlagen

       2.1 Ethernet-Hardware

              2.1.1 10Base2 (Thin)
              2.1.2 10BaseT/100BaseTX (Twisted Pair)

       2.2 Netzwerkprotokolle

              2.2.1 IP - Internet Protocol
              2.2.2 TCP - Transmission Control Protocol
              2.2.3 Weitere Protokolle

       2.3 Server-Hardware

       2.4 Server-Software

       2.5 Installations-Vorraussetzungen

 

3.0 Grund-Installation

        3.1 Vorüberlegungen

        3.2 Netzwerkkarten und -Protokolle

              3.2.1 Linux/Server
              3.2.2 Windows ME
              3.2.3 Windows 2000

        3.3 Verbindungstests

 

4.0 Fern-Administration/Dienste

        4.1 Einleitung

        4.2 Benötigte Dienste auf dem Server

        4.3 Linux-Clients

        4.4 Windows-Clients

 

5.0 Router / Gateway

        5.1 Internetzugang (Routing)

              5.1.1 Einführung
              5.1.2 Installation
              5.1.3 Verbindungstests

        5.2 Firewall

              5.2.1 Einführung
              5.2.2 Variante 1: Erlaube ALLES, verbiete Gefährliches
                      5.2.2.1 Installation
                      5.2.2.2 Verbindungstests
              5.2.3 Verbiete ALLES, erlaube Benötigtes
                      5.2.3.1 Installation
                      5.2.3.2 Verbindungstests

 

6.0 Der Squid-Proxy in Verbindung mit SquidGuard

      - Die Kindersicherung fürs Internet

        6.1 Einleitung

        6.2 NAT versus Proxy mit SquidGuard 

        6.3 Installation

              6.3.1 Installation von Squid
              6.3.2 Installation von SquidGuard
                      6.3.2.1 Installation der Berkeley Library
                      6.3.2.2 Installation von Bison
                      6.3.2.3 Installation von Flex
                      6.3.2.4 Installation von SquidGuard
              6.3.3 Automatisches Starten der Installierten Dienste

        6.4 Einrichten des Systems

              6.4.1 Grundkonfiguration von Squid 2.4
              6.4.2 Squid als transparenter Proxy
                      6.4.2.1 Konfiguration auf Seiten des Proxys
                      6.4.2.2 Die Einstellungen dem Netzwerk mitteilen
              6.4.3 Testen des eingerichteten Systems
              6.4.4 Grundkonfiguration von Squid 2.5 (Planung)

        6.5 Konfiguration von SquidGuard

              6.5.1 Konfiguration in Squid
              6.5.2 Erstellen des Shell-Skriptes
                      6.5.2.1 Änderungen in /etc/sudoers
              6.5.3 Aufbau SquidGuard.conf
                      6.5.3.1 Anlegen der Konfigurationsdatei
                      6.5.3.2 Pflichtangaben in SquidGuard
                      6.5.3.3 Benutzer- und Gruppendefinierung in SquidGuard
                      6.5.3.4 Zieladressen bestimmen
                      6.5.3.5 Zieladressen verweigern

        6.6 Aktualisierung der Datenbank

              6.6.1 Entpacken der Datei
              6.6.2 Änderungen in der "blacklist-update" Datei
              6.6.3 Automatische Aktualisierung der Datenbank
              6.6.4 Erstellen eigener Filterlisten
              6.6.5 Sperren von Domains
              6.6.6 Freigeben von gesperrten Domänen und URL-Adressen
              6.6.7 Freigeben von gesperrten Domänen und URL-Adressen
              6.6.8 Aktualisierung der Datenbank

 

7.0 Samba 3: Fileserver für Windows-Clients

      7.1 Einleitung

      7.2 Einrichten von Samba

             7.2.1 Installation von Samba
             7.2.2 Installation von Swat
             7.2.3 Die "services" und "swat"
             7.2.4 Automatisches Starten des Samba Daemons

      7.3 Sicherheitseinstellungen

             7.3.1 Firewall mit IPTABLES
             7.3.2 Firewall mit Suse Firewall 2

      7.4 Datenverwaltung

             7.4.1 Unverschlüsselte Festplatten einhängen
             7.4.2 Verschlüsselte Dateisysteme
                     7.4.2.1 Verschlüsselungsverfahren Loop-AES
                     7.4.2.2 Verschlüsselte Partition einrichten
                     7.4.2.3 Verschlüsselte Partition mounten
             7.4.3 Einrichten der global section

      7.5 Konfiguration von Samba via Swat

             7.5.1 Der Proxy-User
             7.5.2 Aufruf von Swat
             7.5.3 Einrichten der global section
             7.5.4 Einrichten der Benutzer
                     7.5.4.1 Anlegen der Benutzer und Gruppen über die Konsole
                     7.5.4.2 Anlegen der Benutzer und Gruppen über eine Konfigurationstool und "Swat"
             7.5.5 Anlegen eines Verzeichnisses
                     7.5.5.1 Konfiguration eines Verzeichnis
                     7.5.5.2 Zugriff auf ein CD-Rom
                     7.5.5.3 Die Einstellungen dem Netzwerk mitteilen

      7.6 Anmelden am Samba-Server

             7.6.1 Netzwerkordner fest im System verankern

      7.7 Swat ausschalten

 

8.0 Samba als Primärer Domäne Controller (PDC)

       8.1 Einleitung

       8.2 Unterschiede einer Domäne versus Arbeitsgruppe

       8.3 Domänenunterstützung von Samba

       8.4 Konfiguration der globalen Sektion (engl. global section)

             8.4.1 Variablen von Samba

       8.5 Konfiguration 'profile' und 'netlogon'

             8.5.1 Konfiguration 'homes'
             8.5.2 Anlegen des Maschinenzugangs (engl. machine account)

       8.6 Besonderheit Windows XP

             8.6.1 Ändern des digitalen Schlüssels
             8.6.2 Ändern der Besitzrechte von servergespeicherten Profilen

       8.7 Einbinden des Clients in die Domäne

       8.8 Lokale Benutzerprofile löschen

       8.9 Gruppenrichtlinien über Samba erstellen

             8.9.1 Benutzergruppen und deren Rechte
             8.9.2 Erweiterung 'global section'
             8.9.3 Das 'netlogon' Verzeichnis
             8.9.4 Anlegen der neuen 'netlogon' Verzeichnisse
             8.9.5 Anlegen der 'logon.cmd' Skripte
             8.9.6 Anlegen des user.reg Skriptes

 

9.0 Samba als Print-Server

        9.1 Einleitung

        9.2 Drucker Einrichten unter Linux

              9.2.1 Mit 'Yast' (SUSE Linux)
              9.2.2 Mit 'printtool' (z.B.Mandrake-Linux)

        9.3 Drucker Einrichten unter Samba

              9.3.1 Die 'global section'
              9.3.2 Das Share 'printer'

        9.4 Einbinden des Druckers unter Windows

Dieses Kapitel wurde freundlicherweise zur Verfügung gestellt von: Michael Schlenstedt

1.0 Einführung

1.1 Über diese Anleitung

Jeder, der in einer WG wohnt oder bereits Computer begeisterten Nachwuchs sein Eigen nennt hat sich die Frage wohl schon einmal gestellt: Warum den Internet-Anschluss, die Drucker, das Faxmodem oder aber auch nur die Festplattenkapazität nicht gemeinsam nutzen? Und das über die Betriebssystemgrenzen hinaus? Eigentlich ein naheliegender Gedanke, und kostengünstig und praktisch ist es obendrein.

Linux macht so etwas möglich. Für jeden, der zu Hause mehrere Computer verwendet, lohnt es sich, einen kleinen Server aufzubauen. Man kann seinen Laserdrucker/Farb-Tintenstrahler von jedem Rechner im Haus aus nutzen, von jedem Rechner kann auf das Internet zugegriffen werden und natürlich auch der Datenaustausch untereinander wird problemlos möglich. Die folgenden Teile dieser kleinen Anleitung sollen auch dem Einsteiger das Netzspinnen unter Linux nahe bringen, denn ein privates Netzwerk aufzubauen ist keineswegs Hexerei, wenn auch ein klein wenig Computer-Erfahrung dazugehört. Aber wer sein Linuxsystem einigermaßen beherrscht und wer die Bezeichnung TCP/IP schon einmal gehört hat, der sollte auch keine Probleme haben, sich ein eigenes kleines Netz zu spinnen.

1.2 Vorgeschichte

Häufig kommt die Idee, einen eigenen Server in einer Wohngemeinschaft oder im Familienheim zu installieren erst auf, wenn bemerkt wird, dass ansonsten einige Neuanschaffungen nötig werden. Zum Beispiel werden viele WG's häufig, sobald verfügbar, mit einer ADSL-Anbindung und einem gemeinsamen ISDN-Anschluss ausgestattet. Durch die Kostenteilung ist dieser High-Speed-Zugang auch für Studenten erschwinglich. Jedoch haben meist nicht alle Bewohner eine ISDN-Karte, die ADSL-Leitung ist sowieso nur durch eine Person zur Zeit nutzbar, was gleichzeitige Onlinesitzungen gänzlich unmöglich macht. Nutzer einer passiven ISDN-Karte haben in der Regel unter Linux keine Möglichkeit, Faxe zu verschicken (wenn sie nicht gerade eine Fritz- oder Sedlbauerkarte besitzen), dass längst verstaubte Modem hat aber längst kurz nach dem Kauf der ISDN-Karte auf dem nächstgelegenen Flohmarkt einen neuen Besitzer gefunden. Wer braucht schon ein Modem, wenn man doch ISDN hat! Der eine Bewohner hat einen guten Farbtintensprüher, dafür muss er für normale Textausdrucke ein Vermögen für Tinte berappen. Der Andere hat zwar einen Laser-Drucker, der Textseiten für wenige Pfennige zu Papier bringt, dafür sehen Fotoausdrucke miserabel aus... Diese Liste ließe sich unendlich fortführen. Warum also nicht die komplette Hardware auch für jeden in der Wohnung nutzbar machen? Aber auch für einen Ein-Personen-Haushalte ist ein Netzwerk von Vorteil, sei es, weil man mehrere PC's besitzt oder aber z. B. verschiedene Rechnerarchitekturen (z. B. einen Apple Macintosh und eine IBM-PC) verbinden möchte. Für kleinere Büros sind die Vorteile eines Netzwerks ohne weitere Erläuterungen offensichtlich (Datenaustausch/abgleich, gemeinsame Drucker etc.).

Und ganz nebenbei: LINUX BEGINNT ERST IM NETZWERK RICHTIG SPAß ZU MACHEN!

Dieses Kapitel wurde freundlicherweise zur Verfügung gestellt von: Michael Schlenstedt

2.0 Grundlagen

Netzwerke sind so alt wie die Computer selbst. Natürlich wurden über einen derartig langen Zeitraum viele Varianten der Hardware sowie auch bei den verwendeten Protokollen entwickelt, propagiert und wieder verworfen. Zum Glück haben sich im privaten Bereich einige wenige Standards durchgesetzt, so dass die Frage nach dem korrekten Netzwerk-Typ nicht allzu schwer fällt.

Als Beispielnetzwerk dieser Anleitung soll das folgende LAN in Abbildung 2.1 dienen:

Netzwerk
Abbildung 2.1: Schema des Netzwerks

Es stellt ein typisches Netzwerk im privaten Bereich dar: vier "Arbeitsrechner" (Clients) teilen sich diverse Resourcen im Netzwerk. Diese Resourcen werden vom Server verwaltet und über das Netzwerk verteilt.

2.1 Ethernet-Hardware

Die am weitverbreiteste Hardware bei privaten Netzwerken wird Ethernet genannt. Es existieren 3 (Haupt-)Varianten: Thick-, Thin- und Twisted Pair(Zwei-Draht)-Ethernet, wobei jedoch nur Thin- und Twisted-Pair-Ethernet bei kleineren LANs angewendet werden.

2.1.1  10-Base2 - Thin-Ethernet

Technisch wird Thin-Ethernet auch 10Base2 genannt. Die "10" steht dabei für die maximale Übertragungsrate von 10 MBit, "Base" bedeutet, dass die Daten direkt auf das Kabel gegeben werden und "2" steht für die maximale Kabellänge von 200 Metern (genauer: 185 m). Bei 10Base2 kommen Koaxialkabel mit 50 Ohm Leitungswiderstand (RG-58) zum Einsatz. Die einzelnen Hosts im Netzwerk werden in Reihe hintereinander geschaltet und durch T-Stücke mittels BNC-Steckern in das Netzwerkkabel eingebunden, wobei die T-Stücke direkt auf den Anschlüssen der Netzwerkkarten sitzen. Die beiden Kabelenden werden durch so genannte Abschlusswiderstände terminiert. Abbildung 2.2 zeigt den prinzipiellen Aufbau eines 10Base2-Netzwerkes und in Abbildung 2.3 ist eine typische 10Base2-Ethernet-Karte zu sehen.

10Base2-Ethernet
Abbildung 2.2: Aufbau eines 10Base2-Ethernets

10Base2-Karte
Abbildung 2.3: Eine 10Base2 (ISA-)Netzwerkkarte

Nachteile des 10Base2-Ethernets sind unter anderem die heutzutage etwas (zu) geringe Übertragungsrate von 10 MBit und die kurze Kabellänge von 200 Metern (Problem, da alle Rechner in Reihe hintereinander geschaltet sind). Da alle Rechner in Reihe geschaltet sind, wird das Netzwerk sofort unterbrochen, wenn ein PC abgeklemmt wird (das heißt, das Kabel bzw. T-Stück von der Netzwerkkarte genommen wird). Das kann sich bei etwas größeren Netzwerken bereits als großer Nachteil erweisen. Vorteil sind jedoch die geringen Anschaffungskosten sowohl der PC-Hardware wie auch der Kabel und notwendigen Steckverbindungen.

2.1.2   10-BaseT/100BaseTX - Twisted Pair-Ethernet

Das mittlerweile weiter verbreitete Twisted Pair-Ethernet, auch 10BaseT (bzw. 100BaseTX, Fast Ethernet) genannt, erreicht eine Übertragungsrate von 10 bzw. 100 MBit. Hier steht das "T" in der Bezeichnung für "Twisted Pair". Es unterscheidet sich sowohl in der Hardware wie auch in der Verkabelung vom (alten) 10Base2-Ethernet. Twisted-Pair-Ethernet nutzt keine Koaxialkabel mehr, sondern verwendet 8-adrige Kabel. Meist werden Kabel der Kategorie 5 (CAT5) verwendet. Zudem werden die einzelnen Rechner (bzw. die Netzwerkkarten) nicht mehr in Reihe verschaltet: Die Rechner werden sternförmig über einen zentralen Verteilungspunkt (HUB oder Switch, s. weiter unten) miteinander verbunden. Die maximale Kabellänge von der Netzwerkkarte zum Hub/Switch darf 100 Meter nicht überschreiten. Da jedoch auch 2 Verteilungspunkte (Hub/Switch) direkt miteinander verbunden werden können, können fast beliebige Strecken überbrückt werden. Abbildung 2.4 zeigt den Aufbau eines typischen Twisted-Pair-Ethernets und in Abbildung 2.5 ist die typische Twisted-Pair-Hardware zu sehen.

10BaseT-Ethernet
Abbildung 2.4: Aufbau eines 10BaseT- bzw. 100BaseTX-Ethernets

10BaseT-Karte 10BaseT-Kabel
Abbildung 2.5: Twisted-Pair-Hardware

Als zentraler Knotenpunkt im Fast Ethernet dient entweder ein Hub oder ein Switch. Beide Varianten bieten mehrere Ports, an denen sich jeweils ein Teilnehmer des Netzwerkes anschließen lässt. Üblich sind 5, 8, 16 oder 32 Ports. Ein Hub kann jeweils nur ein Datenpaket zur Zeit durchleiten. Zudem "wissen" sie nicht, welcher Rechner an welchem Port angeschlossen ist. Ein Datenpaket wird solange "durchgereicht", bis es den korrekten Empfänger gefunden hat. Es gibt Hubs für 10 MBit, 100 MBit oder 10/100MBit-Netze (DualSpeedHubs). Ein Switch hat den Vorteil, dass er eine eigene Intelligenz besitzt: Er lernt mit der Zeit, welche Station an welchem Port angeschlossen ist. Somit werden bei erneuten Verbindungen sofort die korrekten Empfänger angesprochen, die übrigen Ports bleiben unbelastet. Zudem können mehrere Datenpakete gleichzeitig verarbeitet werden. Switches gibt es ebenfalls in den typischen Portgrößen von 5, 8, 16 oder 32 Ports und für Geschwindigkeiten von 10, 100, 10/100 oder 1000 MBit. Nachteil ist, dass sie geringfügig teurer sind als einfache Hubs.

Soll der Server als Fileserver arbeiten, so sollte man die Installation eines Fast-Ethernets (100 Mbit) bevorzugen. Die Netzwerkkarten unterschieden sich preislich kaum noch von den 10 Mbit-Varianten. Lediglich die Verkabelung ist geringfügig teurer. Aber auch die sternförmige Verkabelung hat Vorteile, besonders wenn viele unterschiedliche Räume vernetzt werden sollen. Zudem lassen sich Twisted-Pait-Ethernets durch die Kaskadierung von mehreren Hubs/Switches beliebig (nachträglich) erweitern.

2.2 Netzwerk-Protokolle

Das verwendete Netzwerkprotokoll ist im Internet und auch in den meisten privaten LANs TCP/IP. Diese Abkürzung steht für Transmission Control Protocol und Internet Protocol. Die Entwicklung dieses Protokolls geht bis zum Jahre 1969 zurück, 1983 wurde es als Standard für das damalige ARPANET (das heutige Internet) festgelegt. Hierbei handelt es sich um zwei verschiedene Protokolle:

2.2.1 IP - Internet Protocol

IP wurde entwickelt, um unterschiedliche Netze, die auch auf völlig unterschiedlicher Hardware basieren können, miteinander zu verbinden. Die Rechner, die diese beiden Netze miteinander verknüpfen, werden Gateways genannt, das Weiterleiten der entsprechenden Pakete (Datagramme) heißt im Fachjargon Routing. Beim Aufrufen einer Internetadresse im Browser zum Beispiel wird die Verbindung nicht direkt zwischen dem lokalen Rechner und dem entsprechenden Webserver über die Telefonleitung aufgebaut, vielmehr ist der lokale Rechner mit einem Gateway beim Provider verbunden, welches wiederum an einem komplett anderen Netzwerk, z. B. einem Glasfaser-basierendem Netz, hängt. Dieses Gateway ist nun wiederum mit einem weiteren Gateway über diese Glasfaserleitung verbunden und so "hangelt" sich die Verbindung von Netzwerk zu Netzwerk, von Gateway zu Gateway, bis sie schließlich beim gewünschten Webserver angelangt ist. Die Pakete werden jedoch immer über ein und dasselbe Protokoll ausgetauscht: IP. Das Internet Protokoll muss natürlich auch ein hardwareunabhängiges Adressierungsschema bieten, hierzu wird jedem Host eine eindeutige 32-bit Zahl zugewiesen, die IP-Adresse. Üblicherweise wird die IP-Adresse durch vier Dezimalzahlen, getrennt durch einen Punkt, dargestellt. So hat der Host www.kernel.org die eindeutige IP-Adresse 204.152.189.113.

Die IP-Adressen bestehen aus einem Netzwerk- und einem Hostteil. Je nach Größe des Netzwerkes wird ein mehr oder weniger großer Anteil für den Hostteil benötigt, aus diesem Grund gibt es 3 verschiedene Netzwerkklassen:

Es gibt einige Ausnahmen: So steht die Hostadresse "0" für das jeweilige Netzwerk, die Adresse "255" steht für Rundsendungen, die alle Hosts empfangen (Broadcast). Die Netzwerkadresse 127.0.0.1 steht für den lokalen Rechner (loopback device).

Damit nun nicht jeder, der ein kleines Netzwerk außerhalb des Internets betreiben möchte, öffentlich gültige (und damit eindeutige!) IP-Adressen beantragen muss, gibt es standardisierte Nummernbereiche, die von keinem Router nach außen weitergeleitet werden. Diese Bereiche werden "private IP-Adressen" genannt. Es existieren ein Class A-, 16 Class B- und 255 Class C-Netze:

Diese IP-Adressen dürfen im privaten Netzwerk verwendet werden. Festgelegt ist dieser Standard im RFC 1597.

2.2.2 TCP - Transmission Control Protokoll

Das TCP-Protkoll setzt als höhere Schicht auf dem IP-Protokoll auf. Dieses Protokoll ist notwendig, da die reine Datenübertragung von IP häufig nicht ausreicht: So stellt IP keinerlei Fehlerkontrolle zur Verfügung, Pakete, die nicht übertragen werden können, werden einfach verworfen. TCP bietet nun einen sicheren Transport der Datenpakete mit positiven Rückmeldungen (so genannte acknowledgements) und die Wiederholung fehlerhafter Blöcke bzw. Pakete. Da TCP auf IP aufsetzt (aus diesem Grund spricht man meist von TCP/IP), ist es sowohl im lokalen Netz als auch im weltweiten Internet über verschiedene Übertragungswege (Funk, Glasfaser, Ethernet, ...) einsetzbar.

Da TCP ein verbindungsorientiertes Protokoll ist, wird zunächst eine virtuelle Verbindung zwischen beiden beteiligten Hosts aufgebaut und nach Beendigung auch wieder abgebaut. Beim Verbindungsaufbau werden zunächst alle Modalitäten der Verbindung ausgehandelt. Die Ein- und Ausgangspunkte der Verbindung werden Ports genannt. Das bekannte Buch "Linux Network Administrator's Guide" vergleicht eine TCP/IP-Verbindung mit einem Telefongespräch: Die IP-Adresse symbolisiert die Orts-Vorwahl, während die eigentliche Rufnummer den Port darstellt, den man auf dem Zielrechner erreichen möchte. Dabei gibt es feste Regeln, welche Portnummer für welchen Dienst steht. Einige Beispiele sind:

Tabelle 2.1: Dienste und Ports
SMTP Port 25
Pop3 Port 110
Telnet Port 23
DNS Port 53
Http Port 80
Unprevilegierte Ports Ports 1024 -

Die vollständige Liste findet sich unter: http://www.iana.org/assignments/port-numbers

Auf TCP wiederum setzen dann die verschiedenen Anwendungs-Protokolle wie FTP, SMTP, HTTP, Telnet, Pop3, NNTP etc. auf.

2.2.3 Weitere Protokolle

Es gibt noch einige weitere, ebenfalls häufig benutzte, Protokolle, die hier allerdings nur der Vollständigkeit halber aufgezählt werden sollen. Wer näheres Wissen möchte, findet in den Referenzen am Schluss dieser Anleitung weiterführende Links:

2.3 Server-Hardware

Linux ist nicht so anspruchsvoll an die Computer-Hardware wie andere Betriebssysteme. Hiermit ist natürlich nicht die Funktionstüchtigkeit gemeint! Linux reagiert sehr wohl "griesgrämig" bei z.B. defektem Hauptspeicher etc. Vielmehr meine ich damit, daß Linux noch wunderbar auf etwas "nostalgischer" Hardware läuft. Man muss natürlich auf gewisse Dinge verzichten (zum Beispiel sollte man auf einem 486´er mit 16 MB Ram nicht gerade den KDE Desktop installieren). Das ist jedoch auch garnicht nötig, da eine grafische Oberfläche auf einem Server absolut unsinnig ist (wenn er nicht auch gleichzeitig als Workstation dienen soll). Ja, sogar auf die Grafikkarte und die Tastatur kann verzichtet werden, wenn es das BIOS des Mainboards erlaubt, ohne diese Komponenten zu booten (beim Award-BIOS die Option Halt On Errors auf No Errors stellen). Ein Diskettenlaufwerk und ein CD-Rom-Laufwerk sind ebenfalls unnötig. Müssen einmal neue Pakete oder Programme eingespielt werden, so erledigt man das über das Netz mittels NFS oder FTP. Jede aktuell erhältliche Distribution bietet diese Installationsmethoden an.

Zum Beispiel bestand unser erster Server in unserer Wohngemeinschaft ausschließlich aus ausrangierten Komponenten. Diese reichen für die Größenordnung privater Netze häufig vollkommen aus. Lediglich am Hauptspeicher sollte man nicht sparen - Je mehr, desto besser.

Die Erfahrung zeigt auch, dass ein Server häufig erweitert wird, wenn man ersteinmal Gefallen am Komfort eines privaten LANs gefunden hat. Als Beispiel ist in der folgenden Tabelle die Hardware unseres ersten Servers aufgelistet. Dieser Server lief in unserer Wohngemeinschaft über ein Jahr problemlos!

Tabelle 2.2: Die Hardware in unserem Server
Mainboard Asus PCI/I-P54NP4
Prozessor Pentium 90
Hauptspeicher 32 MB Edo-Ram
Festplatte 30 GB Maxtor UDMA
Netzwerk Davicom DM-9102 100 Mbit
ADSL-Anschluss Realtek 8019 (ISA) 10 MBit
ISDN Sedlbauer-Speedwin (ISA)
Modem (Fax) US Robotics Analog-Modem (extern)
I/O-Ports 2 parallele Ports (den 2. über eine zusätzliche ISA-Karte)
1 serieller Port
Drucker 1 HP Laserjet 5L (s/w)
1 HP Photosmart P1000 (color)

2.4 Server-Software

Grundsätzlich lässt sich sagen, dass auf dem Server natürlich das Grundsystem der jeweiligen Distribution installiert sein sollte. Eine grafische Oberfläche ist nicht nötig, daher brauchen die verschiedenen Windowmanager und auch XFree86 nicht mitinstalliert werden. Des weiteren kann auch auf jegliche Anwendungssoftware wie Mailreader, Newsreader, Grafikbearbeitungsprogramme, Officepakete usw. verzichtet werden. Wer sich unsicher ist, kann bei der Installation einfach eines der vorgefertigten Software-Paketen (etwa "Netzwerkserver") auswählen.

Die Beispiele in dieser Anleitung sind für SuSE Linux 8.0 erstellt worden, da es die in Deutschland am weitverbreiteste Distribution ist (gerade bei Anfängern!). Selbstverständlich lässt sich ein Server mit jeder beliebigen Linux-Distribution aufbauen, die Konfiguration weicht dann jedoch von den hier vorgestellten Beispielen ab, da jede Distribution seine eigenen Konfigurationstools mitliefert.

Auf der Clientseite behandeln wir die Windowsfamilie (Windows ME, NT, 2000) und Linux. Wer weitere Rechner erfolgreich an seinen Server angeschlossen hat (etwa *BSD, MAC), ist herzlichst eingeladen, ein kurzes Kapitel im Stile dieser Anleitungen zu schreiben!

Zunächst sollte man sich überlegen, welche Aufgaben der Server erledigen soll. Selbstverständlich lässt sich ein Dienst auch noch nachträglich installieren. Unser Beispielserver soll folgende Dinge für die Clients bereitstellen:

  1. Router: Zugang zum Internet über ADSL ermöglichen
  2. Firewall: Lokales LAN gegen Angriffe von außen absichern
  3. Fileserver: Festplattenkapazität dem LAN zur Verfügung stellen
  4. Mailserver: E-Mails abholen und in die entsprechenden Mail-Fächer der Benutzer verteilen (POP3 und IMAP)
  5. Mailserver: E-Mails, welche über die Clients abgeschickt werden, entgegennehmen und entsprechend versenden (SMTP)
  6. Newsserver: Newsgroups nachts herunterladen und allen Rechnern im Netz zur Verfügung stellen (NNTP)
  7. Printserver: Die Druckaufträge der Clients annehmen und an die jeweiligen Drucker weiterleiten
  8. Faxserver: Abgeschickte Faxe der Clients über das Modem verschicken
  9. Fernwartung über die Clients (da keine Grafikkarte, kein Monitor und keine Tastatur angeschlossen sind)

Somit steht auch schon fest, welche Pakete unbedingt (neben natürlich dem Grundsystem der Distribution und den entsprechenden für das Netzwerk allgemein benötigten Paketen) installiert werden müssen. Es gibt oft unterschiedliche Software für die oben genannten Aufgaben. In dieser Anleitung wird in einem solchen Fall die für Anfänger am leichtesten zu konfigurierende Software verwendet.

Tabelle 2.3: Mögliche Software für den Server
ADSL PPPoE-Client rp-pppoe
Firewall/Masquerading iptables für Kernel 2.4
eMails abholen Fetchmail 5.9.0
Pop3-Server QPopper 4.0.3
Smtp-Server QMail
NNTP-Server Leafnode 1.9.9
Printserver LPRng
Ghostscript 6.51
Apsfilter
"Windows-Server" Samba 2.2.1a
Faxserver Hylafax 4.1

2.5 Installations-Vorraussetzungen

Vorraussetzung für diese LAN-Installationsanleitung ist, dass das Grundsystem der Distribution und alle benötigten Pakete installiert sind. Zudem muss der Internetzugang auf dem Router bereits funktionieren. Nach der erfolgreichen Installation sollte auf jeden Fall sofort ein Onlineupdate durchgeführt werden, um bereits bekannte Fehler und auch nicht funktionierende Pakete upzudaten. Hierzu benutzt man das YaST2-Modul YOU (YaST Online Update), siehe Abbildung 2.6.

Abbildung 2.6: YOU - YaST Online Update
Dieses Kapitel wurde freundlicherweise zur Verfügung gestellt von: Michael Schlenstedt

3.0 Grund-Installation

3.1 Vorüberlegungen

Jeder Rechner in unserem privaten Netzwerk muss einen eindeutigen Namen und eine eindeutige IP-Adresse zugewiesen bekommen. Dabei ist darauf zu achten, dass IP-Adressen aus dem privaten Bereich verwendet werden (siehe auch: Kapitel 2.2.1). Aus diesem Grund sollte man sich vor der Installation überlegen, wie welcher Rechner im LAN genannt werden soll und welche IP-Adresse er erhalten soll. Für unser Beispielnetzwerk benutze ich die Daten aus Tabelle 3.1. Die Domain kann völlig beliebig gewählt werden, man sollte jedoch darauf achten, dass sie nicht wirklich existiert, um Konflikte zu vermeiden. Wer allerdings eine eigene Domain besitzt, kann selbstverständlich diese hier nutzen.

Tabelle 3.1: Rechnernamen und IP-Adressen
Rechner Name IP-Nummer Domain
Server wgserver1 192.168.99.1 deinedomain.local
Client 1 client1 192.168.99.2 deinedomain.local
Client 2 client2 192.168.99.3 deinedomain.local
Client 3 client3 192.168.99.4 deinedomain.local
Client 4 client4 192.168.99.5 deinedomain.local


3.2 Netzwerkkarten und Protokolle

3.2.1 Linux/Server

Die Netzwerkkarten und benötigten Netzwerkprotokolle werden auf den Linux-Clients und auf dem Server nach dem gleichen Prinzip installiert.

Zunächst muss der Treiber der Netzwerkkarte installiert werden. Die meisten PCI-Karten werden mittlerweile bereits bei der Installation des Linuxsystems erkannt und in das System eingebunden. Hier muss dann lediglich das Netzwerk noch konfiguriert werden. Bei exotischer Hardware oder bei vielen ISA-Karten funktioniert dieses jedoch nicht und man muss selbst Hand anlegen.

Um den korrekten Treiber auswählen zu können, ist es wichtig, den Chipsatz der Netzwerkkarte zu kennen. Unter Linux wird meist nicht nach verschiedenen Herstellern sondern lediglich nach den verwendeten Chipsätzen unterschieden, da dieses die einzig wichtige Information für den Treiber ist. Ein Blick auf die Netzwerkkarte gibt hier schnell Aufschluss.

Alle modernen Distributionen binden zusätzliche Hardwaretreiber als so genannte Kernelmodule in das System ein. Kernelmodule (Treiber) können zur Laufzeit zum Kernel hinzugeladen werden, so dass das Neukompilieren des Kernels wegfällt.

Unter SuSE-Linux ruft man zum Einbinden des Treibers das Konfigurationstool YaST2 auf und wählt anschließend unter Netzwerk/Basis das YaST2-Modul Konfiguration der Netzwerkkarte aus. Benutzer anderer Distributionen müssen natürlich das entsprechende Konfigurationstool ihrer Distribution verwenden!

Unter "Hardware" kann nun eine Liste aller installierten Netzwerkkarten abgefragt werden. Taucht hier die eingebaute Karte noch nicht auf, kann man sie nun über "Hinzufügen" und anschließend "Karte einrichten" aktivieren. Unter "Typ des Netzwerks" gibt man "Ethernet" an und als Gerätenummer "0" (wird später zum Device eth0). Über den Button "Treffen Sie eine Auswahl aus der Liste" kann man das passende Kernelmodul auswählen (oder natürlich von Hand eintragen). Zusätzliche Optionen sind lediglich bei ISA-Karten notwendig.

Treiberinstallation
Abbildung 3.1: Auswahl des korrekten Treibers

Anschließend wird die statische IP-Adresse für den jeweiligen Rechner vergeben. Die Subnetzmaske braucht nicht verändert zu werden (255.255.255.0). Über den Menüpunkt "Rechnername und Nameserver" wird der Rechnername vergeben und der Nameserver eingestellt. Am sinnvollsten ist es, hier zunächst den Nameserver des Providers anzugeben (nicht nur auf dem Server, auch auf den Clients!).

Netzwerk-Konfiguration
Abbildung 3.2: Konfiguration

Auf dem Server kann nun die Netzwerkinstallation mit "Weiter" abgeschlossen werden, auf den Linux-Clients muss noch unter dem Menüpunkt "Routing" als Standardgateway die IP-Adresse des Servers eingetragen werden, damit alle Anfragen außerhalb des eigenen Netzes (z. B. an das Internet) zunächst an den Server gestellt werden, der sie dann entsprechend weiterleiten kann.

Standardgateway
Abbildung 3.3: Standardgateway für die Clients

Nachdem die Konfiguration abgeschlossen ist, sollte sie unter "Schnittstelle" auch auftauchen:

Netzwerk-Devices
Abbildung 3.4: Netzwerkschnittstellen

Damit alle Rechner im eigenen Netzwerk mit Namen ansprechbar sind, muss das System Namen in IP-Adressen umwandeln können (und natürlich auch umgekehrt). Bei weltweit eindeutigen IP-Adressen ist dafür das DNS (Domain Name System) zuständig. Für unser lokales Netz tragen wir alle Rechnernamen und die dazugehörigen IP-Adressen in die Datei /etc/hosts ein. Jedes Linuxsystem schaut zunächst in diese Datei, wenn es eine IP-Adresse zu einem Rechnernamen sucht. Die Datei lässt sich mit einem beliebigen Text-Editor bearbeiten (z. B. kedit, nedit, vim, ...) und muss auf jedem Rechner im Netz vorhanden sein. Für unser Beispiel hat die Datei folgenden Inhalt:

Listing 3.1: Die Datei /etc/hosts
#
# hosts         This file describes a number of hostname-to-address
#               mappings for the TCP/IP subsystem.  It is mostly
#               used at boot time, when no name servers are running.
#               On small systems, this file can be used instead of a
#               "named" name server.
# Syntax:
#
# IP-Address    Full-Qualified-Hostname   Short-Hostname

127.0.0.1       localhost
127.0.0.1       localhost.deinedomain.local     localhost
192.168.99.1    wgserver1.deinedomain.local     wgserver1
192.168.99.2    client1.deinedomain.local       client1
192.168.99.3    client2.deinedomain.local       client2
192.168.99.4    client3.deinedomain.local       client3
192.168.99.5    client4.deinedomain.local       client4

Das Protokoll TCP/IP muss unter Linux nicht extra installiert werden, es ist als Standardprotokoll in jedem Linuxsystem aktiviert. Wer einen eigenen Kernel kompiliert hat, muss dieses Protokoll jedoch auswählen. Zu finden ist die entsprechende Option bei der Kernelkonfiguration unter "Networking Options".

3.2.2 Windows ME

Die Installation für Windows ME steht stellvertretend für die Win9X-Familie und sollte so ähnlich bei allen Varianten funktionieren. Zunächst muss auch hier der Treiber der Netzwerkkarte installiert werden. Sollte Windows die Karte nicht selbstständig erkennen, so ist sie über Systemsteuerung -> Hardware hinzuzufügen. Nach erfolgreicher Installation sollte sie im Gerätemanager auftauchen:

Gerätemanager
Abbildung 3.5: WindowsME-Gerätemanager

Nachdem der Treiber installiert ist, muss das TCP/IP-Protokoll installiert werden. Hierzu wechselt man in der Systemsteuerung zur Netzwerkkonfiguration (Netzwerk) und gelangt über den Button "Hinzufügen" zum nächsten Auswahlmenü:

Netzwerkkomponente hinzufügen
Abbildung 3.6: Netzwerkprotokoll hinzufügen

Unter "Microsoft" findet man dann das TCP/IP-Protokoll:

TCP/IP-Protokoll
Abbildung 3.7: Auswahl des TCP/IP-Protokolls

Nach der Installation markiert man den neuen Eintrag "TCP/IP" und kann das Netzwerk über den Button "Eigenschaften" konfigurieren. Zunächst legt man eine feste IP-Adresse und die korrekte Subnetmask (wird automatisch korrekt gesetzt) fest:

IP-Adresse
Abbildung 3.8: Eintragen der statischen IP-Adresse

Unter Gateway trägt man die IP-Adresse des Servers ein. So werden alle nicht lokalen Anfragen wieder an den Server (Router) geschickt und können so korrekt weitergeleitet werden.

Gateway
Abbildung 3.9: Eintragen des Gateways

Unter "DNS" wird die Nameserver-Adresse des Providers eingetragen und der eindeutige Rechnername (in unserem lokalen LAN) mit Domain eingetragen:

DNS
Abbildung 3.10: Konfigurieren des DNS

Alle anderen Optionen bleiben unangetastet bzw. deaktiviert. Nach dem obligatorischen Neustart steht die Netzwerkkonfiguration zur Verfügung.

Analog zur /etc/hosts-Datei zur lokalen Namensauflösung unter Linux existiert unter Windows die Datei c:\windows\hosts (Achtung! Ohne Dateinamenserweiterung!). Diese Datei kann auch hier mit einem beliebigen Texteditor (z. B. Notepad) bearbeitet werden. Sie hat das gleiche Format wie die Unix-Datei:

Listing 3.2: Die Datei c:\windows\hosts
127.0.0.1         localhost.deinedomain.local     localhost
192.168.99.1    wgserver1.deinedomain.local     wgserver1
192.168.99.2    client1.deinedomain.local       client1
192.168.99.3    client2.deinedomain.local       client2
192.168.99.4    client3.deinedomain.local       client3
192.168.99.5    client4.deinedomain.local       client4

Vorsicht beim Abspeichern! Der mit Windows ausgelieferte Editor "Notepad" hängt automatisch die Dateiendung ".txt" an die Datei an. Um zu kontrollieren, ob die Datei wirklich ohne Endung abgespeichert wurde, kann man unter "Extras", "Ordneroptionen" und dann "Ansicht" die Option "Dateinamenserweiterung bei bekannten Dateitypen ausblenden" deaktivieren.

3.2.3 Windows 2000

Auch unter Windows 2000 muss natürlich zunächst der Treiber der Netzwerkkarte installiert werden. Nach erfolgreicher Installation sollte die Netzwerkkarte im Gerätemanager unter Systemsteuerung -> System -> Hardware -> Gerätemanager auch angezeigt werden.

Gerätemanager
Abbildung 3.11: Windows 2000-Gerätemanager

Anschließend wird der Computername und die zugehörige Domain konfiguriert. Unter Systemsteuerung -> System -> Netzwerkidentifikation trägt man unter Eigenschaften den Rechnernamen ein. Über den Button Erweitert kann dann noch der zugehörige Domainname angegeben werden.

Computername
Abbildung 3.12: Rechnernamen festlegen

Das TCP/IP-Protokoll ist standardmäßig installiert. Konfiguriert wird es unter Systemsteuerung -> Netzwerk- und DFÜ-Verbindungen -> LAN-Verbindung -> Eigenschaften.

LAN-Verbindung
Abbildung 3.13: Eigenschaften der LAN-Verbindung

Hier wählt man "Internetprotokoll TCP/IP" aus und gelangt über den Button Eigenschaften zur Konfiguration. Hier müssen zunächst die feste IP-Adresse des Rechners, die zugehörige Subnetmaske (wird automatisch gesetzt) und der Standardgateway eingetragen werden. Anschließend wird noch der DNS-Servers unseres Providers in das entsprechende Eingabefeld eingetragen.

TCP/IP-Konfiguration
Abbildung 3.14: TCP/IP-Konfiguration

Analog zur /etc/hosts-Datei zur lokalen Namensauflösung unter Linux existiert unter Windows 2000 die Datei c:\winnt\system32\drivers\etc\hosts (Achtung! Ohne Dateinamenserweiterung!). Diese Datei kann auch hier mit einem beliebigen Texteditor (z. B. Notepad) bearbeitet werden. Sie hat das gleiche Format wie die Unix-Datei:

Listing 3.3: Die Datei c:\winnt\system32\drivers\etc\hosts
127.0.0.1         localhost.deinedomain.local     localhost
192.168.99.1    wgserver1.deinedomain.local     wgserver1
192.168.99.2    client1.deinedomain.local       client1
192.168.99.3    client2.deinedomain.local       client2
192.168.99.4    client3.deinedomain.local       client3
192.168.99.5    client4.deinedomain.local       client4

Vorsicht beim Abspeichern! Der mit Windows ausgelieferte Editor "Notepad" hängt automatisch die Dateiendung ".txt" an die Datei an. Um zu kontrollieren, ob die Datei wirklich ohne Endung abgespeichert wurde, kann man unter "Extras", "Ordneroptionen" und dann "Ansicht" die Option "Dateinamenserweiterung bei bekannten Dateitypen ausblenden" deaktivieren.

3.3 Verbindungstests

Nachdem alle Clients und der Server im LAN konfiguriert sind, müssen sie untereinander erreichbar sein. Für diese Tests dient das Programm "ping", welches auf jedem Rechner standardmäßig installiert ist. Unter Windows muss man hierzu eine MSDOS-Eingabeaufforderung öffnen. Der Administrator loggt sich nacheinander auf jedem Rechner im Netz ein und testet, ob er mit Ping die übrigen Rechner erreichen kann:

Auch über ihre Namen sollten die einzelnen Rechner so erreichbar sein. Antwortet ein Host nicht auf die Ping-Anfrage, so muss nochmals die Verkabelung und die Netzwerkkonfiguration auf dem jeweiligen Rechner überprüft werden. Es versteht sich von selbst, dass jegliche Firewall-Tools in diesem Stadium der Installation deaktiviert sein müssen! Ansonsten wird die Fehlersuche unnötig erschwert. Zur Fehlersuche gibt es diverse Diagnosetools:

lsmod: (nur Linux) lsmod listet alle gerade geladenen Kernelmodule auf. Hier muss das Treiber-Modul für die Netzwerkkarte mit aufgelistet werden (hier: "ne" und "dmfe"):


Module                  Size  Used by
pppoe                   6640   3  (autoclean)
pppox                   1136   1  (autoclean) [pppoe]
ppp_async               6096   0  (autoclean) (unused)
ppp_generic            13840   1  (autoclean) [pppoe pppox ppp_async]
ne                      6400   1  (autoclean)
dmfe                   13248   1  (autoclean)

 

Kann man ein Modul nicht genau zuordnen, kann der Befehl modinfo <MODULNAME> weiterhelfen.

 

ifconfig: (unter Windows: ipconfig) ifconfig listet alle Netzwerkdevices und die dazugehörigen Parameter auf. Hieran kann man die Netzwerkkonfiguration nochmals überprüfen:

 

eth0    Link encap:Ethernet  HWaddr 00:80:AD:79:3F:C9  
          inet addr:192.168.99.1  Bcast:192.168.99.255  Mask:255.255.255.0
          inet6 addr: fe80::280:adff:fe79:3fc9/10 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20872 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21638 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:14119876 (13.4 Mb)  TX bytes:17147535 (16.3 Mb)
          Interrupt:12 Base address:0xcc00 

 

route -n: (unter Windows: route PRINT) Dieser Befehl listet alle Routen des Systems auf. Die Standardroute (Destination 0.0.0.0 und Flags UG) sollte bei den Clients auf die IP-Adresse des Servers zeigen:


Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.99.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.99.1    0.0.0.0         UG    0      0        0 eth0

arp -a: Dieser Befehl listet die IP-Adresse und die dazugehörige MAC-Adresse der Netzwerkkarte von allen erreichbaren Hosts auf:

wgserver1.deinedomain.local (192.168.99.1) at 00:80:AD:79:3F:C9 [ether] on eth0
 
Dieses Kapitel wurde freundlicherweise zur Verfügung gestellt von: Michael Schlenstedt

 

4.0 Fern-Administration/Dienste

 

4.1 Einleitung

Unter Linux können eine Vielzahl von unterschiedlichen Diensten laufen, die es ermöglichen, den Rechner über das Netzwerk zu erreichen. Beispiele für solche Dienste sind zum Beispiel telnet, ftp, oder ssh (Secure Shell).

Der Administrator des Netzes (ja, so darfst Du Dich jetzt nennen ;-)) muss sich jedoch im klaren sein, dass mit jedem angebotenen Dienst auch die Sicherheit des gesamten Systems abnimmt. Gerade beim Anschluss eines Netzes an das Internet sollte man dieses immer im Hinterkopf behalten.

Aus diesem Grund ist es wichtig, wirklich nur die Dienste auf dem Server zu aktivieren, die unbedingt notwendig sind. Zudem sollte man den Zugriff dann auf das interne Netz beschränken, wenn die Dienste nicht auch von außerhalb genutzt werden sollen. Dienste, die man nicht kennt, braucht man offensichtlich auch nicht. Wie sagt es Peter Lustig immer so schön: ABSCHALTEN!

 

4.2 Benötigte Dienste auf dem Server

Um den Server auch Fernadministrieren zu können, sind jedoch einige Dienste notwendig. Da sich ein Linuxrechner komplett über das Netzwerk steuern lässt und der Administrator jegliche Software (sowohl X- als auch Konsolensoftware) auf dem Server auch Remote bedienen kann, ist eine Grafikkarte, Tastatur und ein Bildschirm am Server überflüssig.

Viele der zentralen Dienste auf einem Server werden über die Datei /etc/inetd.conf gesteuert (so auch bei SuSE). Durch das Aktivieren eines Dienstes in dieser Konfigurationsdatei ist er über das Netzwerk ansprechbar. Ein Beispiel für einen Dienst, der über den inetd gesteuert wird, ist z. B. ftp oder telnet. Zunächst sollten alle Dienste in dieser Datei deaktiviert werden. Für die Administration des Servers kann lediglich der Dienst telnet sinnvoll sein, da hierbei jedoch alle Daten unverschlüsselt übertragen werden, sollte dieses Protokoll nicht mehr verwendet werden und auf ssh (Secure Shell) umgestiegen werden. Wer dennoch telnet verwenden will, muss die Raute ("#") vor der entsprechenden Zeile entfernen. Alle restlichen Dienste bleiben, wie gesagt, zunächst deaktiviert. Die entsprechende Zeile für telnet muss wie in Listung 4.1 gezeigt, ausschauen.

Listing 4.1: Die Datei /etc/inetd.conf
# See "man 8 inetd" for more information.
#
# If you make changes to this file, either reboot your machine or send the
# inetd a HUP signal with "/etc/init.d/inetd reload" or by hand:
# Do a "ps x" as root and look up the pid of inetd. Then do a
# "kill -HUP ".
# The inetd will re-read this file whenever it gets that signal.
#
#
#
telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd

 

Falls noch nicht geschehen, muss natürlich der Telnet-Daemon installiert werden. Unter SuSE findet man ihn in der Serie "n Netzwerk-Support" (Paket: telnet-server). Zusätzlich muss ebenfalls der TCP-Wrapper aus der gleichen Serie (Paket: tcpd) installiert sein. Nach einem Neustart des Internet-Daemons (inetd) wird der Dienst aktiv. Dieses lässt sich durch folgenden Befehl erledigen:


skill -HUB $(pidof inetd) 

Anschließend ist der Server durch telnet wgserver1 von jedem Rechner im LAN erreichbar.

Ein wesentlich sicherer Dienst als telnet ist ssh (Secure Shell), da hier eine verschlüsselte Übtertragung der Daten stattfindet. Zudem lassen sich hierüber sehr bequem X11-Programme ohne das lästige Setzen der Display-Variablen, wie bei telnet nötig, starten. Wenn immer möglich, sollte man ssh und nicht telnet einsetzen!

Der ssh-Serverdienst muss lediglich auf dem Server aktiviert werden. Das Paket befindet sich bei SuSE in der Serie "sec Sicherheitsrelevante Software" und heißt sinnigerweise "ssh". Das Paket enthält zwar beides, Client- und Serversoftware, aktiviert wird die Serversoftware aber nur, wie schon erwähnt, auf dem Server. Dieser Dienst wird nicht über den inetd gestartet, sondern über ein eigenes Init-Skript. Um ssh zu aktivieren, setzt man in der zentralen Konfigurationsdatei /etc/rc.config (nur SuSE!) die entsprechende Variable auf "Yes":


#
# Start the ssh daemon ? (yes/no)
#
START_SSHD="yes"

Konfiguriert wird der sshd über die Datei /etc/ssh/sshd_config. SuSE hat hier bereits sinnvolle Voreinstellungen aktiviert. Lediglich geringfügige Änderungen müssen vorgenommen werden. Wer X11-Programme auf dem Server ausführen möchte (z. B. YaST2), sollte das X11-Forwarding aktivieren. Zudem sollte man sshd darauf beschränken, lediglich Verbindungen vom internen LAN anzunehmen (es sei denn, man möchte vom Internet aus auf den eigenen Server zugreifen):


ListenAddress 127.0.0.1
ListenAddress 192.168.99.1
X11Forwarding yes


4.3 Linux-Clients

Auf den Clients muss der sshd-Server nicht aktiviert sein (obwohl es in einigen Fällen praktisch sein kann, auch von einem Client auf den anderen zugreifen zu können. Dann kann man natürlich auch den sshd auf den Clients aktivieren).

Mittels ssh gibt es 2 Möglichkeiten, sich gegenüber dem Server zu identifizieren. Zum einen die herkömmliche Art analog zu telnet: Über Benutzernamen und Passwort. Hierbei wird das Passowrt über einen sicheren Tunnel zum sshd übermittelt. Diese Authentifizierung ist zwar ebenfalls verschlüsselt, bietet aber durch den Tunnel einen weiteren Angriffspunkt (der jedoch im internen LAN zu vernachlässigen ist). Über diese Variante lässt sich eine Verbindung zum Server folgendermaßen aufbauen:


ssh wgserver1 -l BENUTZERNAME

Nach Eingabe des Passwortes steht einem eine Shell zur Verfügung. Eine weitere Möglichkeit, sich gegenüber dem Server zu authentifizieren, ist über sogenannte Schlüssel. Hierbei weisen sich die Partner der Verbindung gegenseitig mit den Schlüsseln aus. Dieses geschieht mit 2 Schlüsseln: Einem öffentlichen und einem privaten Schlüssel. Der Partner bekommt bei jeder Verbindung den öffentlichen Schlüssel mitgeteilt, akzeptiert aber nur die Verbindung, wenn der zugehörige private Schlüssel auf dem Rechner vorhanden ist. Es handelt sich dabei um das gleiche Prinzip wie bei PGP.

Ein weiterer Vorteil beim Verwenden der Schlüssel ist, dass hier das lästige eingeben des Passwortes entfällt, zudem handelt es sich hierbei um die sicherere Methode. Um diese Variante zu nutzen, muss man zunächst einen eigenen Schlüssel auf dem Server generieren. Hierzu loggt man sich auf dem Server ein und gibt im eigenen Homeverzeichnis folgenden Befehl ein:


ssh-keygen

Die Abfrage des Passwortes bestätigt man einfach zweimal mit Enter. Im Homeverzeichnis wurde nun ein neues Verzeichnis .ssh erstellt, in dem sich die Dateien mit dem öffentlichen und privaten Schlüssel befinden.

Nun loggt man sich auf dem Client ein und wechselt hier ebenfalls in sein Homeverzeichnis. Auch hier generiert man ein Schlüsselpaar mit "ssh-keygen". Der jetzt erzeugte öffentliche Schlüssel muss auf den Server kopiert werden. Dazu loggt man sich wiederum auf dem Server ein und erstellt eine neue Datei .ssh/authorized_keys, in die man den Inhalt der Datei .ssh/identity.pub vom Client kopiert (z. B. mit Copy&Paste).

Jetzt reicht es aus, sich auf dem Server mittels


ssh wgserver1

einzuloggen. Die Eingabe des Usernamens und Passwortes entfällt, da man sich gegenüber dem Server durch den öffentlichen (und privaten) Schlüssel identifiziert hat.

Nach dem Einloggen ist es möglich, jegliche X11- und Konsolenprogramme zu starten und so den Server komplett Fernzuadministrieren.


4.4 Windows-Clients

Auch für Windows gibt es sehr leistungsfähige und kostenlose ssh- und telnet-Clients. Ein sehr leistungsfähiges und trotzdem einfaches Programm (es ist keine Installation notwendig!) ist Putty. Der ursprünglich nur telnet beherrschende Client TerraTerm kann mittlerweile ebenfalls als ssh-Client "aufgerüstet" werden.

 

Putty

Abbildung 4.1: ssh/telnet-Client Putty

Beide Clients bieten das direkte Anmelden über Kennung und Passwort sowie auch die Anmeldung über das Schlüsselpaar. Die Konfiguration ist der entsprechenden Hilfe und/oder Webseite zu entnehmen.

Dieses Kapitel wurde freundlicherweise zur Verfügung gestellt von: Michael Schlenstedt

5.0 Router / Gateway

5.1 Internetzugang (Routing)

5.1.1 Einführung

Um einen Router (Gateway) für das lokale Netz aufzubauen, muss der Router über mindestens 2 Netzwerkdevices verfügen, eines auf LAN-Seite und eines auf Internet-Seite. Auf LAN-Seite ist dieses im Allgemeinen eine Ethernet-Karte. Da der ADSL-Zugang über PPPoE und somit mit Hilfe des pppd aufgebaut wird, ist das Netzwerkdevice auf Internetseite nicht etwa die zweite Netzwerkkarte, an der das ADSL-Modem hängt, sondern ein PPP-Device, welches vom pppd angesteuert wird. Die Netzwerkkarte wird erst anschließend als reine Hardware verwendet, um die PPPoE-Pakete zum Modem zu senden, die TCP/IP-Verbindung läuft komplett über den pppd.

Aus diesem Grund kann der ADSL-Router auch lediglich mit einer Netzwerkkarte ausgestattet sein; das ADSL-Modem hängt dann am zentralen Hub bzw. Switch. Alle Rechner im LAN empfangen dann zwar auch die PPPoE-Pakete, die ja ebenfalls über die LAN-Netzwerkkarte (und dann über den Hub/Switch) an das ADSL-Modem gesendet werden, sie können mit diesen Paketen jedoch nichts anfangen und verwerfen sie. Lediglich das ADSL-Modem leitet die Pakete über die ADSL-Leitung an die Gegenstelle der Telefongesellschaft weiter, wo sie dann erkannt und weiterverarbeitet werden.

Der Linuxkernel kann standardmäßig TCP/IP-Pakete zwischen verschiedenen Devices routen, d. h. er kann Pakete an einem Device entgegen nehmen und sie über ein weiteres Device wieder ausgeben. Mit Hilfe des Programms route werden die entsprechenden Routen gesetzt, und damit wird eindeutig festgelegt, welche IP-Adressen über welches Interface erreichbar sind.

Jedoch benötigt jeder Rechner, um im Internet mit anderen Rechnern kommunizieren zu können, eine eindeutige IP-Adresse (siehe: Kapitel 2.2). Das Problem bei privaten Netzen und die Einwahl über einen Internetprovider ist jedoch in aller Regel, dass lediglich der direkt beim Provider eingewählte Rechner vom Provider eine eindeutige, weltweit gültige IP-Adresse zugewiesen bekommt (dynamische IP-Adressen-Vergabe). Einige Provider bieten auch die Möglichkeit, eine feste IP-Adresse bei der Einwahl zugewiesen zu bekommen. Aber auch hier gilt: Nur der eingewählte Rechner kann mit Hilfe dieser IP-Adresse direkt mit anderen Rechnern im Internet kommunizieren. Für unser Netz heißt das also, dass lediglich der Router direkt Verbindungen zu anderen Rechnern im Internet aufbauen kann, alle anderen Rechner in unserem LAN haben IP-Adresen aus dem privaten Bereich, die weltweit nicht eindeutig sind (siehe wieder: Kapitel 2.2).

Masquerading
Abbildung 5.1: Network Adress Translation

Für diesen Anwendungsfall wurde NAT (Network Adress Translation) ins Leben gerufen. Unter Linux kommt eine besondere Art des NAT zum Einsatz: Masquerading. Hierbei ersetzt der Router bei Anfragen der Clients ins Internet deren private IP-Adresse durch seine weltweit gültige Adresse und verschickt das Paket entsprechend. Bei ankommenden Paketen gilt das Gleiche: Der Router hat sich zuvor "gemerkt", welcher Client welche Anfrage gesendet hat. Bei ankommenden Paketen ersetzt er dann wiederum die Ziel-IP-Adresse des Paketes durch die private Adresse des Clients im LAN. Somit ist es möglich, mit lediglich einer weltweit gültigen IP-Adresse ein komplettes Netzwerk ans Internet anzubinden.

5.1.2 Installation

Um die entsprechenden Funktionen im Kernel zu aktivieren, dient seit Kernel 2.4 das Programm iptables. Es greift auf die neuen Netfilter-Module zu, die ebenfalls seit Version 2.4 des Linuxkernels Einzug gehalten haben. Die Unterstützung muss mit in den Kernel einkompiliert sein (idealerweise als Modul). Alle aktuellen Distributionen haben die Netfilter-Module in ihren Standardkerneln aktiviert. Wer selbst einen Kernel kompiliert hat, muss die Module von Hand aktivieren. Abbildung 4.2 zeigt alle Optionen, die beim Kernelkompilieren für die Netzfilterunterstützung aktiviert sein müssen. Die entsprechenden Optionen finden sich unter Networking Options ->IP: Netfilter Configuration.
Kernel-Konfiguration
Abbildung 5.2: Network Adress Translation

Am sinnvollsten ist es, die entsprechenden iptables-Befehle aufzurufen, sobald eine Verbindung zum Provider besteht und alle Befehle wieder zu deaktivieren, sobald keine Verbindung mehr besteht. Hierzu kann man die beiden Skripte /etc/ppp/ip-up und /etc/ppp/ip-down verwenden. Sie werden nach jedem Verbindungsaufbau bzw. -abbau aufgerufen. Einige Distributionen (wie zum Beispiel SuSE auch) liefern vorgefertigte Skripte mit, die zum Beispiel den Nameserver des Providers nach erfolgreichem Verbindungsaufbau korrekt setzen. Diese Dateien sollte man nur verändern, wenn man ein wenig von Bash-Programmierung versteht. SuSE-Linux stellt daher für weitere Befehle die Dateien /etc/ppp/ip-up.local und /etc/ppp/ip-down.local zur Verfügung. Sollten sich diese Dateien noch nicht im entsprechenden Verzeichnis befinden, so kann man sie leicht anlegen:


touch /etc/ppp/ip-up.local
touch /etc/ppp/ip-down.local

Anschließend müssen sie noch ausführbar gesetzt werden:

 

chmod 755 /etc/ppp/ip-up.local
chmod 755 /etc/ppp/ip-down.local

Existieren diese beiden Dateien, so werden sie nach dem Abarbeiten des ip-up- bzw. ip-down-Skripts ebenfalls aufgerufen. Sehr praktisch an diesen Skripten ist, dass der pppd ihnen einige Parameter der Verbindung beim Starten mit übergibt, wie zum Beispiel die dynamisch zugewiesene IP-Adresse, das Device oder auch die vom Provider übermittelten Nameserver. Diese Parameter sind über Variablen innerhalb des Skripts abzurufen.

Die Netfilter-Funktionen des Linuxkernels werden mit dem Tool iptables aktiviert bzw. gesteuert. Alle Funktionen werden über sogenannte IP-Tabellen gesteuert, die dem neuen Tool iptables auch seinen Namen gegeben haben. Zur Zeit existieren 3 Tabellen:

Angesprochen werden die unterschiedlichen Tabellen durch die Option "-t":


iptables -t <TABELLE>

Die filter-Tabelle ist die Standardtabelle und muss daher nicht gesondert angegeben werden. Innerhalb der Tabellen können (analog zum alten ipchains) Regelketten (Chains) angegeben werden, in denen die IP-Pakete auf gewisse Eigenschaften kontrolliert werden können. Sobald eine Regel bei einem IP-Paket greift, wird das Abarbeiten der Regeln gestoppt und sofort zum sogenannten Ziel der Regel verzweigt. Ein Ziel könnte zum Beispiel sein, dass IP-Paket zu verwerfen. Dazu jedoch später mehr.

Mit Hilfe der Option "-A" wird einer solchen Kette eine neue Regel hinzugefügt (A wie "append"):


itables -t <TABELLE> -A <KETTE>

Innerhalb der NAT-Tabelle zum Beispiel existieren mehrere vordefinierte Ketten. Als wichtigstes existiert die POSTROUTING-Chain. Die POSTROUTING-Kette wird abgearbeitet, kurz bevor ein Paket den Router verlässt. Neben der POSTROUTING-Kette existieren noch die PREROUTING- und die OUTPUT-Kette. Die PREROUTING-Kette wird für alle Pakete verwendet, die gerade auf dem Router eingehen und die OUTPUT-Regel wird für lokale Pakete des Firewalls verwendet, bevor entschieden wird, wohin sie geroutet werden sollen.

 

Mit "-o" wird das Outgoing-Device angegeben, d. h. das ausgebende Device. Mittels "-i" kann analog das Incoming-Device angegeben werden. Mittels "-j" (jump) wird schließlich das Ziel der Regel festgelegt. Das Ziel einer Regel bestimmt, was mit dem IP-Paket geschehen soll. Wie schon erwähnt, wird die Abarbeitung der kompletten Kette sofort abgebrochen, sobald eine Regel auf ein IP-Paket zutrifft. Es wird sofort auf das Ziel dieser Regel gesprungen.

Dieses war nur eine sehr kleine Auswahl an vorhandenen Optionen und Möglichkeiten von iptables. Ich habe mich auf die für das Verständnis dieser Anleitung wichtigen Optionen beschränkt. Weitere Erläuterungen und vor allem eine sehr ausführliche Befehlsübersicht findet sich unter:

Für reines Masquerading aller Verbindungen vom LAN zum Internet und umgekehrt muss der Inhalt des ip-up.local-Skripts wie in Listung 5.1 aussehen.

Download des Skriptes: /etc/ppp/ip-up.local

Listing 5.1: Die Datei /etc/ppp/ip-up.local für NAT/Masquerading

Can't open File