Teil III Netzwerk konfigurieren 147 Kapitel 5 Linux im Netzwerk Vorbemerkung zur Vernetzung In unserem Zeitalter der Kommunikation ist die Anzahl der miteinander ver- netzten Computer bereits so groß, dass ein einzelner, nicht zumindest zeit- weise vernetzter Computer selten geworden ist. Linux, als echtes Kind des Internets, bietet alle Voraussetzungen und alle notwendigen Netzwerktools zur Einbindung in diverse Netzwerkstrukturen. In diesem Kapitel wird eine Übersicht über die zur Einrichtung und War- tung der Netzwerkanbindung notwendigen Handgriffe gegeben, es werden die zentralen Konfigurationsdateien besprochen, und einige der wichtigsten Tools werden vorgestellt. Zunächst wird gezeigt, wie ein Linux-Rechner in ein bestehendes LAN ein- gebunden werden kann, bzw. wie ein kleines Netzwerk, bestehend aus Li- nux-Rechnern, aufzubauen ist. Danach geht es um den Anschluss an ande- re Rechner via Modem. Es wird erläutert, wie eine Internet-Anbindung per PPP vorgenommen werden kann. Ein längerer Abschnitt ist der ISDN-Kon- figuration gewidmet. Dann wird die Konfiguration des Mail- und des News- Systems kurz besprochen. Den Abschluss bildet die Vorstellung eines Fax- Systems unter Linux. Praktisch die gesamte Netzwerkkonfiguration können Sie mit YaST durch- führen (siehe Abschnitt 3.6 auf Seite 100 und Abschnitt 17.6 auf Seite 445); da jedoch gerade die Konfiguration eines Netzwerks beliebig komplex wer- den kann, werden in diesem Kapitel auch die grundlegenden Mechanismen und die für die Konfiguration des Netzwerks relevanten Dateien beschrieben. Auf gute Nachbarschaft ­ die Einbindung ins LAN Einen Linux-Rechner in ein aus anderen Unix-Rechnern ­ darunter können sich natürlich auch weitere Linux-Rechner befinden ­ bestehendes LAN ein- zubinden, stellt kein großes Problem dar. Es müssen einige (wenige) Voraus- setzungen erfüllt sein, die aber keine grundsätzliche Einschränkungen für den Einsatz von Linux in einer Netzwerkumgebung darstellen. Voraussetzungen, Vorarbeit Linux unterstützt mittlerweile eine bunte Palette von Netzwerkkarten ­ Ether- net, Arcnet, einige TokenRing ­ und kennt fast alle gängigen Netzwerkpro- 149 5. Linux im Netzwerk tokolle ­ TCP/IP, IPX, AppleTalk. Auf alle theoretisch möglichen Konfigu- rationen einzugehen, würde den Rahmen dieses Kapitels bei weitem spren- gen; daher soll hier nur beispielhaft ein Normalfall" behandelt werden, also die Integration eines Linux-Rechners mit einer Ethernetkarte in ein TCP/IP- Netzwerk. Aktuelle Informationen bezüglich anderer Netzwerke finden Sie unter anderem bei den Kernelquellen im Verzeichnis /usr/src/linux/ Documentation. Darüber hinaus liefert die Hilfefunktion beim Konfigu- rieren des Kernels wertvolle Zusatz-Informationen. Die folgenden Voraussetzungen müssen erfüllt sein: * Der Rechner muss über eine unterstützte Netzwerkkarte verfügen; ob die Karte korrekt erkannt wurde, können Sie unter anderem daran sehen, dass die Ausgabe des Kommandos erde:~ # /sbin/ifconfig eine Zeile enthält, die mit eth0: beginnt. Wenn der Kernel-Support für die Netzwerkkarte als Modul realisiert wird ­ so wie es beim SuSE-Kernel standardmäßig der Fall ist ­, dann muss der Name des Moduls als Alias in der /etc/modules.conf eingetragen werden; für die erste Ethernet-Karte z. B. in dieser Art: alias eth0 tulip Dies geschieht automatisch, wenn im Linuxrc während der Erstinstallati- on der Treiber-Support für die Netzwerkkarte geladen wird. Nachträglich lässt sich diese Aufgabe von YaST aus erledigen (vgl. Abschnitt 3.6.1 auf Seite 100). Sind diese Voraussetzungen erfüllt, so sollten vor der Netzwerkkonfiguration noch die Begriffe in Tabelle 5.1 auf Seite 152 kurz bedacht werden. Rechnername Der Name, den der Rechner im Netzwerk haben soll, z. B. erde. Der Name sollte nicht mehr als acht Zei- chen umfassen und darf im lokalen Netzwerk noch nicht vergeben worden sein. Domainname Der Name der Domain, der der Rechner angehören wird. Domains dienen der Gliederung von Netzen. Ein Rechner wird adressiert durch Angabe seines voll qualifizierten Domainnamens (engl. fully qualified do- main name (FQDN)), der sich aus Rechnernamen, Domainnamen und Top-Level-Domain zusammen- setzt. So ist z. B. erde.kosmos.all der Rechner erde in der Domain kosmos.all. Die Top-Level- Domain umfasst höchstens vier Buchstaben. Das Muster für einen voll qualifizierten Domainnamen ist Rechnername.Domainname.Top-Level-Domain. Tabelle 5.1: Fortsetzung auf der nächsten Seite... 150 5. Linux im Netzwerk IP-Adresse Die Adresse des Rechners im Netzwerk. Jeder Rech- ner im Netz hat für jede Netzwerkschnittstelle (z. B. Netzwerk- oder ISDN-Karte) mindestens eine Adres- se, die im Netz eindeutig ist. Diese Adresse besteht nach dem derzeit gültigen Standard aus einer Sequenz von vier Bytes, die normalerweise durch Punkte ge- trennt ­ also beispielsweise 192.168.0.20 ­ dar- gestellt werden. Bei der Wahl der IP-Adressen ist zu bedenken, ob das lokale Netz einmal mit dem Internet verbunden werden soll. Ist dies der Fall, so ist zu empfehlen, dass von vornherein registrierte IP-Adressen verwen- det werden. Für rein private Netze sind durch das Arbeitspapier RFC 1597 drei Adressbereiche vorgesehen, bei de- nen sichergestellt ist, dass selbst bei einer versehent- lich bestehenden Verbindung zum Internet keine Pro- bleme entstehen, da sie zwischen Internet-Systemen nicht geroutet werden. Diese Adressbereiche sind: 10.0.0.0 10.255.255.255 (Class A-Netz) 172.16.0.0 172.31.255.255 (Class B-Netz) 192.168.0.0 192.168.255.255 (Class C-Netz) Einige IP-Adressen sind nicht für Rechner bestimmt, sondern haben spezielle Funktionen. So steht bei- spielsweise 192.168.0.0 für das Netzwerk an sich und 192.168.0.255 ist die dazugehörige Broadcast-Adresse. Gatewayadresse Wenn sich im Netzwerk ein als Gateway fungierender Rechner befindet, d. h. ein Rechner, der in mehr als einem Netz hängt und der das Weiterleiten von Netz- werkpaketen in das fremde Netz übernimmt, so kann dessen Adresse bei der Netzwerkkonfiguration ange- geben werden. Netzwerkmaske Mit Hilfe der Netzwerkmaske (netmask) wird ent- schieden, in welchem Netzwerk eine gegebene Adres- se zu finden ist. Die IP-Adresse des Rechners wird mit der Netzwerkmaske durch ein logisches UND ver- knüpft, wodurch der Host-Anteil der Adresse ausge- blendet wird, also nur noch die Adresse des Netz- werks übrig bleibt. 255.255.255.0 ist beispiels- weise eine typische Netzwerkmaske. Tabelle 5.1: Fortsetzung auf der nächsten Seite... 151 5. Linux im Netzwerk Adresse des Na- Der Nameserver stellt den Dienst DNS (engl. Do- meservers main Name Service) zur Verfügung, mit dem sich Rechnernamen in IP-Adressen wandeln lassen. So wird beispielsweise dem Rechnername erde die IP- Adresse 192.168.0.20 zugeordnet. Ist ein Name- server über das Netz zu erreichen und soll dieser ver- wendet werden, so muss dessen IP-Adresse bei der Netzwerkkonfiguration angegeben werden. Tabelle 5.1: Werte für Netzwerkkonfiguration 5.1 Konfiguration mit Hilfe von YaST Nun können Sie die Konfiguration der Netzwerksoftware mit YaST durch- führen. Beachten Sie dabei die in Abschnitt 5 auf Seite 149 aufgeführten Punkte. 1. Loggen Sie sich als Benutzer `root' ein. 2. Starten Sie YaST und wechseln Sie in das Menü `Administration des Systems', `Netzwerk konfigurieren', `Netzwerk- Grundkonfiguration'. Abbildung 5.1: Netzwerkkonfiguration mit YaST 3. Wählen Sie eine freie `Nummer', z. B. 0. 4. Wählen Sie durch Drücken von F5 als Device `Ethernet' aus, und verlassen Sie die Eingabemaske durch Betätigen des Buttons `Weiter'. 5. Drücken Sie bitte F6 (`IP-Adresse'), und geben Sie die IP-Adresse des Rechners ein, also beispielsweise 192.168.0.20. Als nächs- tes muss die Netzwerkmaske angegeben werden. Für ein Class C- Netz (bis zu 254 Rechner in einem Subnetz), ist diese typischerweise 255.255.255.0. Ist kein Gatewayrechner im Netzwerk, sollte hier nichts angegeben werden; vgl. Abbildung 5.1. 152 5.1. Konfiguration mit Hilfe von YaST 6. Verlassen Sie die Eingabemaske durch Betätigen des Buttons `Wei- ter'. 7. Aktivieren Sie das Netzwerk-Device mit F4 . 8. Durch Drücken von F10 können Sie die Konfiguration speichern, mit Esc können Sie die Maske verlassen, ohne dass die Änderungen gesi- chert werden. 9. Im Menü `Rechnernamen ändern' können Sie dem Rechner einen Rechnernamen geben oder einen bestehenden Rechnernamen ändern. In die Eingabemaske des Menüs wird auch der Name der Domain eingetra- gen, der der Rechner angehören soll. 10. Unter dem Punkt `Netzwerkdienste konfigurieren' können Sie festlegen, ob der inetd, das Programm portmap und der NFS-Server gestartet werden sollen und welcher Rechner- und Domainname beim Posten von Artikeln im USENET in die From-Zeile eintragen wird. * Der inetd wird benötigt, um bei Bedarf bestimmte Netzwerkdienste (z. B. telnet, finger, ftp usw.) zu starten. Der inetd sollte beim Hoch- fahren des Systems immer gestartet werden, da andernfalls eine Viel- zahl von Diensten auf dem System nicht zur Verfügung stehen; beher- zigen Sie bei gefährdeten Systemen die Richtlinien zur Sicherheit in Abschnitt 18.2.2 auf Seite 469. * Wenn der Rechner als NFS-Server eingesetzt oder NIS verwendet wer- den soll, muss der Portmapper portmap beim Hochfahren des Systems gestartet werden. Haben Sie sich dafür entschieden, den Portmapper zu starten, werden Sie anschließend gefragt, ob auch der NFS-Server gestartet werden soll. 11. Im Menü `Konfiguration Nameserver' kann der Zugriff auf einen oder mehrere Nameserver konfiguriert werden. Es können bis zu drei IP-Adressen durch Leerzeichen getrennt angegeben werden. 12. Über den Menüpunkt `Sendmail konfigurieren' kann eine grundlegende Konfiguration des Pakets sendmail vorgenommen werden. Eine ausführlichere Beschreibung der Konfiguration von Sendmail finden Sie im Abschnitt 6.8 auf Seite 200. Darüber hinaus können Sie eine ganze Reihe weiterer Einstellungen direkt in der zentralen Konfigurationsdatei /etc/rc.config vornehmen; auch hierbei werden Sie von YaST unterstützt (siehe Abschnitt 17.6 auf Seite 445). Damit ist die Netzwerkkonfiguration abgeschlossen. YaST ruft abschließend SuSEconfig auf und lässt die gemachten Angaben in die entsprechenden Da- teien eintragen (siehe Abschnitt 5.2 auf der nächsten Seite). Damit die Ein- stellungen wirksam werden, müssen die betroffenen Programme neu konfi- guriert und die benötigten Daemonen neu gestartet werden. Dies können Sie erreichen, indem Sie den Befehl erde:~ # rcnetwork restart eingeben (siehe auch Kapitel 17 auf Seite 439). 153 5. Linux im Netzwerk 5.2 Manuelle Netzwerkkonfiguration ­ wo steht was? Die manuelle Konfiguration der Netzwerksoftware sollte stets die zweite Wahl sein. Besser ist es, YaST zu benutzen, jedoch kann YaST nicht alle Bereiche der Netzwerkkonfiguration abdecken, sodass in manchen Fällen ma- nuelle Nacharbeit nötig sein kann. 5.2.1 Konfigurationsdateien Dieser Abschnitt gibt eine Übersicht über die Netzwerkkonfigurationsdateien und erklärt ihre Funktion sowie das verwendete Format. /etc/rc.config In dieser zentralen Konfigurationsdatei (siehe Abschnitt 17.5 auf Sei- te 444) wird der größte Teil der Netzwerkkonfiguration vorgenommen. Bei Veränderung mittels YaST oder durch den Aufruf von SuSEconfig, nachdem die Datei manuell verändert wurde, werden aus diesen Einträ- gen die meisten der folgenden Dateien automatisch generiert. Auch die Bootskripten werden über die Einstellungen in dieser Datei konfiguriert. Wenn Sie diese Datei von Hand verändern, müssen Sie nachfolgend immer SuSEconfig aufrufen, damit die geänderte Konfiguration automatisch in die richtigen Dateien eingetragen wird. /etc/hosts In dieser Datei (siehe Datei 5.2.1) werden Rechnernamen IP-Adressen zugeordnet. Wird kein Nameserver verwendet, so müssen hier alle Rech- ner aufgeführt werden, zu denen eine IP-Verbindung aufgebaut werden soll. Je Rechner wird eine Zeile bestehend aus IP-Adresse, dem voll qua- lifizierten Hostnamen und dem Rechnernamen, z. B. erde in die Datei eingetragen. Die IP-Adresse muss am Anfang der Zeile stehen, die Ein- träge werden durch Leerzeichen bzw. Tabulatoren getrennt. Kommentare werden durch `#' eingeleitet. ## 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 ser- vers are running. # On small systems, this file can be used ins- tead of a # "named" name server. Just add the na- mes, addresses # and any aliases to this file... #127.0.0.1 localhost 192.168.0.1 sonne.kosmos.all sonne 192.168.0.20 erde.kosmos.all erde # End of hosts Datei 5.2.1: /etc/hosts 154 5.2. Manuelle Netzwerkkonfiguration ­ wo steht was? /etc/networks Hier werden Netzwerknamen in Netzwerkadressen umgesetzt. Das For- mat ähnelt dem der hosts-Datei, jedoch stehen hier die Netzwerknamen vor den Adressen (siehe Datei 5.2.2 auf der nächsten Seite). ## networks This file describes a number of netname-to-address # mappings for the TCP/IP subsystem. It is mostly # used at boot time, when no name ser- vers are running. #loopback 127.0.0.0 localnet 192.168.0.0 # End of networks. Datei 5.2.2: /etc/networks order hosts, bind Legt fest, in welcher Reihenfolge die Diens- te zum Auflösen eines Namens angespro- chen werden sollen. Mögliche Argumente sind: hosts: Durchsuchen der Datei /etc/hosts bind: Ansprechen eines Nameservers multi on/off Bestimmt, ob ein in /etc/hosts eingetra- gener Rechner mehrere IP-Adressen haben darf. nospoof on Diese Parameter beeinflussen das spoofing alert on/off des Nameservers, haben aber weiter keinen Einfluss auf die Netzwerkkonfiguration. trim Der angegebene Domainname wird vor dem Auflösen des Rechnernamens von diesem abgeschnitten (insofern der Rechnername diesen Domainnamen enthält). Diese Op- tion ist dann von Nutzen, wenn in der Datei /etc/hosts nur Namen aus der lokalen Domain stehen, diese aber auch mit ange- hängtem Domainnamen erkannt werden sol- len. Tabelle 5.2: Parameter für /etc/host.conf /etc/host.conf Das Auflösen von Namen ­ d. h. das Übersetzen von Rechner- bzw. Netz- werknamen über die resolver-Bibliothek ­ wird durch diese Datei gesteu- ert. Es können verschiedene Parameter eingestellt werden. Jeder Parame- 155 5. Linux im Netzwerk ter muss in einer eigenen Zeile stehen, Kommentare werden durch `#' eingeleitet. Die möglichen Parameter zeigt Tabelle 5.2. 156 5.2. Manuelle Netzwerkkonfiguration ­ wo steht was? Ein Beispiel für /etc/host.conf zeigt Datei 5.2.3. ## /etc/host.conf ## We have named running order hosts bind # Allow multiple addrs multi on # End of host.conf Datei 5.2.3: /etc/host.conf /etc/nsswitch.conf Mit der GNU C Library 2.0 hat der Name Service Switch" (NSS) Einzug gehalten (vgl. Manual-Page von nsswitch.conf (man 5 nsswitch.conf), sowie ausführlicher The GNU C Library Reference Manual, Kap. "Sys- tem Databases and Name Service Switch" 1). In der Datei /etc/nsswitch.conf wird festgelegt, in welcher Rei- henfolge bestimmte Informationen abgefragt werden. Ein Beispiel für nsswitch.conf zeigt Datei 5.2.4. Kommentare werden durch `#' eingeleitet. Dort bedeutet z. B. der Eintrag bei der Datenbank" hosts, dass nach /etc/hosts (files) eine Anfrage über DNS (vgl. Paket named) losgeschickt wird. ## /etc/nsswitch.conf #passwd: compat group: compat hosts: files dns networks: files dns services: db files protocols: db files netgroup: files Datei 5.2.4: /etc/nsswitch.conf Die über NSS verfügbaren Datenbanken" sind in Tabelle 5.3 auf der nächsten Seite genannt; zusätzlich sind in Zukunft automount, bootparams, netmasks und publickey zu erwarten. 1 Paket libcinfo, Serie doc. 157 5. Linux im Netzwerk aliases Mail-Aliase, von sendmail(8) verwendet; vgl. Manual-Page von aliases (man 5 aliases). ethers Ethernet-Adressen. group Für Benutzergruppen, von getgrent(3) verwendet; vgl. Manual-Page von group (man 5 group). hosts Für Hostnamen und IP-Adressen, von gethostbyname(3) und ähnlichen Funktionen verwendet. netgroup Im Netzwerk gültige Liste von Hosts und Benutzern, um Zugriffsrechte zu steuern; vgl. Manual-Page von netgroup (man 5 netgroup). networks Netzwerknamen und -adressen, von getnetent(3) verwendet. passwd Benutzerpasswörter, von getpwent(3) verwendet; vgl. Manual-Page von passwd (man 5 passwd). protocols Netzwerk-Protokolle, von getprotoent(3) verwendet; vgl. Manual-Page von protocols (man 5 protocols). rpc Remote Procedure Call"-Namen und -Adressen, von getrpcbyname(3) und ähnlichen Funktionen verwendet. services Netzwerkdienste, von getservent(3) verwendet. shadow Shadow"-Passwörter der Benutzer, von getspnam(3) verwendet; vgl. Manual-Page von shadow (man 5 shadow). Tabelle 5.3: Über /etc/nsswitch.conf verfügbare Datenbanken" Die Konfigurationsmöglichkeiten der NSS- Datenbanken" stehen in Ta- belle 5.4 auf der nächsten Seite. files direkt auf Dateien zugreifen, z. B. auf /etc/ aliases. db über eine Datenbank zugreifen. nis NIS , vgl. Abschnitt 5.4 auf Seite 162. nisplus dns Nur bei hosts und networks als Erweiterung ver- wendbar. compat Nur bei passwd, shadow und group als Erweite- rung verwendbar. Tabelle 5.4: Fortsetzung auf der nächsten Seite... 158 5.2. Manuelle Netzwerkkonfiguration ­ wo steht was? zusätzlich ist es möglich, unterschiedliche Reaktionen bei bestimmten Lookup-Ergebnissen auszulösen; De- tails sind der Manual-Page von nsswitch.conf (man 5 nsswitch.conf) zu entnehmen. Tabelle 5.4: Konfigurationsmöglichkeiten der NSS- Datenbanken" /etc/nscd.conf Über diese Datei wird der nscd (engl. Name Service Cache Daemon) kon- figuriert; vgl. Manual-Page von nscd (man 8 nscd) und Manual-Page von nscd.conf (man 5 nscd.conf). Betroffen sind die Informa- tionen von passwd, groups und hosts. Der Daemon muss neu ge- startet werden, wenn z. B. die Namensauflösung (DNS) durch Änderung der /etc/resolv.conf umgestellt wird; dazu dient dieser Befehl: erde: # /sbin/init.d/nscd restart Wenn beispielsweise das Caching für passwd aktiviert ist, dauert es in der Regel 15 Sekunden, bis ein neu angelegter lokaler Benutzer dem System bekannt ist. Durch das Neustarten des nscd kann diese Wartezeit verkürzt werden. /etc/resolv.conf Wie bereits die Datei /etc/host.conf, so spielt auch diese Datei in Bezug auf Auflösung von Rechnernamen durch die resolver-Bibliothek eine Rolle. Hier wird angegeben, welcher Domain der Rechner angehört (Schlüssel- wort search) und wie die Adresse des Nameservers ist (Schlüsselwort nameserver), der angesprochen werden soll. Es können mehrere Do- mainnamen angegeben werden. Beim Auflösen eines nicht voll qualifi- zierten Namens wird versucht, durch Anhängen der einzelnen Einträge in search einen gültigen, voll qualifizierten Namen zu erzeugen. Mehre- re Nameserver können durch mehrere Zeilen, die mit nameserver be- ginnen, bekannt gemacht werden. Kommentare werden wieder mit `#' eingeleitet. Ein Beispiel für /etc/resolv.conf zeigt Datei 5.2.5 auf der nächs- ten Seite. YaST (siehe Abschnitt 5.1 auf Seite 152) trägt hier den angegebenen Nameserver ein! /etc/HOSTNAME Hier steht der Name des Rechners, also nur der Hostname ohne den Domainnamen. Diese Datei wird von verschiedenen Skripten während des Starts des Rechners gelesen. Sie darf nur eine Zeile enthalten, in der der Rechnername steht! Auch diese Datei wird automatisch aus den Ein- stellungen in /etc/rc.config generiert. 159 5. Linux im Netzwerk # /etc/resolv.conf ## Our domain search kosmos.all ## We use sonne (192.168.0.1) as nameserver nameserver 192.168.0.1 # End of resolv.conf Datei 5.2.5: /etc/resolv.conf 5.2.2 Startup-Skripten Neben den beschriebenen Konfigurationsdateien gibt es noch verschiedene Skripten, die während des Hochfahrens des Rechners die Netzwerkprogram- me starten. Diese werden gestartet, sobald das System in einen der Multiuser- Runlevel übergeht (vgl. Tabelle 5.5 auf der nächsten Seite). /sbin/init.d/network Dieses Skript übernimmt die Konfigu- ration der Netzwerk Hard- und Soft- ware während der Startphase des Sys- tems. Dabei werden auch die durch YaST (siehe Abschnitt 5.1 auf Sei- te 152) in /etc/rc.config einge- tragenen Angaben zu IP- und Netz- werk-Adresse, Netzmaske und Gate- way ausgewertet. /sbin/init.d/route Dient dem Setzen der statischen Rou- ten im Netzwerk. Eine detaillierte Be- schreibung finden Sie in Abschnitt 5.3 auf der nächsten Seite. /sbin/init.d/inetd Startet den inetd, sofern es in /etc/ rc.config festgelegt ist. Dies ist beispielsweise dann nötig, wenn Sie sich vom Netzwerk aus auf diese Ma- schine einloggen möchten. /sbin/init.d/rpc Startet den Portmapper, der benötigt wird, um RPC-Server verwenden zu können, wie z. B. einen NFS-Server. /sbin/init.d/ Startet den NFS-Server. nfsserver /sbin/init.d/sendmail Kontrolliert den sendmail-Prozess in Abhängigkeit von den Einstellungen in /etc/rc.config. Tabelle 5.5: Fortsetzung auf der nächsten Seite... 160 5.3. Routing unter SuSE Linux /sbin/init.d/ypserv Startet den NIS-Server in Abhängig- keit von den Einstellungen in /etc/ rc.config. /sbin/init.d/ypclient Startet den NIS-Client in Abhängig- keit von den Einstellungen in /etc/ rc.config. Tabelle 5.5: Startup-Skripten der Netzwerkprogramme 5.3 Routing unter SuSE Linux Vorbemerkung Das Einstellen der Routing-Tabelle wird unter SuSE Linux nicht über Varia- blen in der zentralen Konfigurationsdatei /etc/rc.config, sondern über das Skript /sbin/init.d/route und die Konfigurationsdatei /etc/ route.conf gehandhabt. Nach der Initialisierung des Netzwerks durch die Boot-Skripten unter /sbin/init.d/network, /sbin/init.d/inetd, /sbin/init. d/i4l_hardware und eventuell zusätzlicher Boot-Skripten, wird die Da- tei /etc/route.conf mit der Routing-Tabelle von /sbin/init.d/ route durchsucht und diese Tabelle im System gesetzt. In der Datei /etc/route.conf können alle statischen Routen eingetragen werden, die für die verschiedenen Aufgaben eines Systems benötigt werden könnten: Route zu einem Rechner, Route zu einem Rechner über ein Gateway und Route zu einem Netzwerk. Eine andere Möglichkeit ist die Benutzung des dynamischen Routings durch /usr/sbin/routed, dessen Konfiguration jedoch aufwendiger ist. Hier sei auf die Manpage von routed hingewiesen. Vorgehensweise und Benutzung Die Regeln für die Konfigurationsdatei /etc/route.conf lehnen sich an die Ausgabe des Befehls /sbin/route an. Wird /sbin/route ohne weitere Argumente aufgerufen, erscheint die Routing-Tabelle, die der Kernel gerade benutzt. Bis auf die Spalten für die Einträge Flags, Metric, Ref und Use sind die Einträge in /etc/route.conf analog. Dazu kurz die Regeln von /etc/route.conf: * Zeilen mit `#' am Anfang und Leerzeilen werden ignoriert. Ein Eintrag besteht aus einer Zeile mit mindestens zwei und maximal vier Spalten. * In der ersten Spalte steht das Ziel einer Route. Dabei kann dort die IP- Adresse eines Netzes oder Rechners oder bei erreichbaren Nameservern auch der voll qualifizierte Name eines Netzes oder eines Rechners stehen. * Das Stichwort default ist dem Eintrag des Default-Gateways vorbehal- ten. Bitte verwenden Sie 0.0.0.0 nicht als Ziel für Routing-Einträge. 161 5. Linux im Netzwerk * Die zweite Spalte enthält entweder einen Platzhalter (0.0.0.0) oder die IP-Adresse bzw. den vollen Namen eines Rechners. Dieser Rechner kann das Default-Gateway sein oder ein Gateway, hinter dem ein Rechner oder Netzwerk erreichbar ist. * Die dritte Spalte enthält die Netzmaske für Netzwerke oder Rechner hin- ter einem Gateway. Für Rechner hinter einem Gateway lautet die Maske z. B. 255.255.255.255. * Die letzte Spalte ist nur für die am lokalen Rechner angeschlossenen Netzwerke (Loopback, Ethernet, ISDN, PPP, Dummy-Device, ... ) wich- tig. Hier muss der Name des Devices eingetragen werden. Ein einfaches Beispiel einer /etc/route.conf gibt die Abbildung 5.3.1. Werden neue Einträge in /etc/route.conf vorgenommen, wird durch die Eingabe erde:~ # rcroute restart die Routing-Tabelle mit den neuen Einträgen gesetzt. # Destination Dummy/Gateway Net- mask Device ## 192.168.0.1 0.0.0.0 255.255.255.255 ippp0 # default 192.168.0.1 ## Net devices #127.0.0.0 0.0.0.0 255.255.255.0 lo 204.127.235.0 0.0.0.0 255.255.255.0 eth0 ## Gateway #default 204.127.235.41 ## Host behind Gateway #207.68.156.51 207.68.145.45 255.255.255.255 ## Net behind a Gateway #192.168.0.0 207.68.156.51 255.255.0.0 Datei 5.3.1: Einfaches Beispiel einer /etc/route.conf 162 5.4. NIS, die gelben Seiten im LAN 5.4 NIS, die gelben Seiten im LAN 5.4.1 Was ist NIS? Sobald mehrere Unix-Systeme in einem Netzwerk auf gemeinsame Resour- cen zugreifen wollen, muss sichergestellt sein, dass z. B. Benutzer- und Grup- penkennungen auf allen Rechnern miteinander harmonieren. Das Netzwerk soll für den Anwender transparent sein; egal an welchem Rechner er arbei- tet, er findet immer die gleiche Umgebung vor. Möglich wird dies durch die Dienste NIS und NFS. NFS dient der Verteilung von Dateisystemen im Netz und wird in Abschnitt 5.5 auf der nächsten Seite beschrieben. NIS (engl. Network Information Service)2 kann als Datenbankdienst verstan- den werden, der Zugriff auf Informationen aus den Dateien /etc/passwd, /etc/shadow oder /etc/group netzwerkweit ermöglicht. NIS kann auch für weitergehende Aufgaben eingesetzt werden (z. B. für /etc/hosts oder /etc/services); darauf soll hier jedoch nicht im Detail eingegangen werden. 5.4.2 Einrichten eines NIS-Clients Im Paket ypclient, Serie n, befinden sich alle notwendigen Programme zum Einrichten eines NIS-Clients. Zur Einrichtung des NIS-Clients sind fol- gende Schritte zu erledigen: * Setzen der NIS-Domain beim Starten des Systems. Dazu muss in /etc/rc.config die Variable YP_DOMAINNAME ge- setzt werden; beim Übergang in einen Runlevel, in dem das Netzwerk ver- wendet wird, wertet /sbin/init.d/network diesen Wert aus und setzt den Namen entsprechend. Der NIS-Domainname ist nicht zu verwechseln mit dem DNS-Domainna- men; diese können gleich lauten, haben jedoch grundsätzlich nichts mit- einander zu tun! * Festlegen des NIS-Servers. Der Name des NIS-Servers wird in der /etc/rc.config durch die Variable YP_SERVER gesetzt. SuSEconfig schreibt diese Namen im rich- tigen Format in die Datei /etc/yp.conf (vgl. Datei 5.4.1 auf der nächsten Seite); haben Sie die Variable mit YaST gesetzt, dann geschieht dies automatisch. In dieser Datei muss es eine Zeile geben, die mit dem Schlüsselwort ypserver beginnt und in der der Name des NIS-Servers steht. * Der Name des NIS-Servers (z. B. sonne.kosmos.all) muss über /etc/hosts auflösbar sein. * Es muss sichergestellt sein, dass der RPC-Portmapper gestartet wird. NIS wird über RPC (engl. Remote Procedure Calls) realisiert, deshalb ist es Bedingung, dass der RPC-Portmapper läuft. Gestartet wird dieser Server vom Skript /sbin/init.d/rpc. Auch dies wird automatisch erledigt, wenn das Starten des Portmappers in /etc/rc.config ver- anlasst wurde. 2 Für NIS wird vielfach synonym der Begriff `YP' verwendet; dieser leitet sich ab von den yellow pages, also den gelben Seiten im Netz. 163 5. Linux im Netzwerk # /etc/yp.conf ## Syntax: ## ypserver Defi- ne which host to contact # for YP service. #ypserver sonne.kosmos.all # End of /etc/yp.conf Datei 5.4.1: /etc/yp.conf * Ergänzen der Einträge in /etc/passwd und /etc/group. Damit nach dem Durchsuchen der lokalen Dateien eine Anfrage beim NIS-Server gemacht wird, müssen die entsprechenden Dateien durch ei- ne Zeile, die mit einem Pluszeichen (`+') beginnt, ergänzt werden. NIS erlaubt es, hier eine Menge weitere Optionen zu aktivieren, z. B. Net- groups oder lokales Überschreiben von NIS-Einträgen. * Starten von ypbind. Der letzte Schritt des Aufsetzens des NIS-Clients besteht aus dem Start des Programmes ypbind, das den eigentlichen Start des NIS-Clients be- deutet. Auch dieses Programm wird automatisch gestartet, wenn Sie die Konfiguration des Netzwerks mit YaST vorgenommen haben. * Aktivieren der Änderungen. Entweder muss nun das System neu gestartet werden oder die benötigten Dienste werden durch erde:~ # rcnetwork restart erde:~ # rcypclient restart neu gestartet. 5.4.3 NIS-Master- und -Slave-Server Zu installieren ist das Paket ypserv, Serie n; das genaue Vorgehen ist in /usr/doc/packages/yp/HOWTO beschrieben. 5.5 NFS ­ verteilte Dateisysteme Wie bereits in Abschnitt 5.4 auf der vorherigen Seite erwähnt, dient NFS, neben NIS, dazu, ein Netzwerk für Anwender transparent zu machen. Durch NFS ist es möglich, Dateisysteme im Netz zu verteilen. Unabhängig davon, an welchem Rechner im Netz ein Anwender arbeitet, kann er so stets die gleiche Umgebung vorfinden. Wie NIS, so ist auch NFS ein asymmetrischer Dienst. Es gibt NFS-Server und NFS-Clients. Allerdings kann ein Rechner beides sein, d. h. er kann gleichzei- tig Dateisysteme dem Netz zur Verfügung stellen ( exportieren") und Datei- systeme anderer Rechner mounten ( importieren"). Im Regelfall jedoch be- nutzt man dafür Server mit großer Festplattenkapazität, deren Dateisysteme von Clients gemountet werden. 164 5.5. NFS ­ verteilte Dateisysteme 5.5.1 Importieren von Dateisystemen Dateisysteme von einem NFS-Server zu importieren, ist sehr einfach. Einzi- ge Voraussetzung ist, dass der RPC-Portmapper gestartet wurde. Das Starten dieses Servers wurde bereits im Zusammenhang mit NIS besprochen (siehe Abschnitt 5.4.2 auf Seite 162). Ist diese Voraussetzung erfüllt, können frem- de Dateisysteme, insofern sie von den entsprechenden Maschinen exportiert werden, analog zu lokalen Platten mit dem Befehl mount in das Dateisystem eingebunden werden. Die Syntax ist wie folgt: mount -t nfs : Sollen also z. B. die Benutzerverzeichnisse vom Rechner sonne importiert werden, so kann dies mit folgendem Befehl erreicht werden: erde:~ # mount -t nfs sonne:/home /home 5.5.2 Exportieren von Dateisystemen Ein Rechner, der Dateisysteme exportiert, wird als NFS-Server bezeichnet. Auf einem NFS-Server müssen die folgenden Netzwerkserver gestartet wer- den: * RPC-Portmapper (portmap) * RPC-Mount-Daemon (rpc.mountd) * RPC-NFS-Daemon (rpc.nfsd) Diese werden beim Hochfahren des Systems von den Skripten /sbin/init.d/rpc und /sbin/init.d/nfsserver gestartet. Das Starten des RPC-Portmappers wurde bereits in Abschnitt 5.4.2 auf Seite 162 beschrieben. Neben dem Start dieser Daemonen muss noch festgelegt werden, welche Dateisysteme an welche Rechner exportiert werden sollen. Dies geschieht in der Datei /etc/exports. Je Verzeichnis, das exportiert werden soll, wird eine Zeile benötigt, in der steht, welche Rechner wie darauf zugreifen dürfen; alle Unterverzeichnisse eines exportierten Verzeichnisses werden automatisch ebenfalls exportiert. Die berechtigten Rechner werden üblicherweise mit ihren Namen (inklusive Domainname) angegeben, es ist aber auch möglich, mit den Jokerzeichen `*' und `?' zu arbeiten, die die aus der bash bekannte Funktion haben. Wird kein Rechnername angegeben, so hat jeder Rechner die Erlaubnis, auf dieses Verzeichnis (mit den angegebenen Rechten) zuzugreifen. Die Rechte, mit denen das Verzeichnis exportiert wird, werden in einer von Klammern umgebenen Liste nach dem Rechnernamen angegeben. Die wich- tigsten Optionen für die Zugriffsrechte sind in der folgenden Tabelle beschrie- ben. 165 5. Linux im Netzwerk ro Dateisystem wird nur mit Leserechten exportiert (Vor- gabe). rw Dateisystem wird mit Schreib- und Leserechten expor- tiert. root_squash Diese Option bewirkt, dass der Benutzer `root' des angegebenen Rechners keine für `root' typi- schen Sonderrechte auf diesem Dateisystem hat. Er- reicht wird dies, indem Zugriffe mit der User-ID 0 auf die User-ID 65534 (-2) umgesetzt werden. Diese User-ID sollte dem Benutzer `nobody' zugewiesen werden (Vorgabe). no_root_squash Rootzugriffe nicht umsetzen; Rootrechte bleiben also erhalten. link_relative Umsetzen von absoluten, symbolischen Links (solche, die mit `/' beginnen), in eine entsprechende Folge von `../'. Diese Option ist nur dann sinnvoll, wenn das gesamte Dateisystem eines Rechners gemountet wird (Vorgabe). link_absolute Symbolische Links bleiben unverändert. map_identity Auf dem Client werden die gleichen User-IDs wie auf dem Server verwendet (Vorgabe). map_daemon Client und Server haben keine übereinstimmenden User-IDs. Durch diese Option wird der nfsd angewie- sen, eine Umsetztabelle für die User-IDs zu erstellen. Voraussetzung dafür ist jedoch die Aktivierung des Daemons ugidd. Tabelle 5.6: Zugriffsrechte für exportierte Verzeichnisse Die exports-Datei kann beispielsweise aussehen wie Datei 5.5.1. ## /etc/exports #/home sonne (rw) venus (rw) /usr/X11 sonne (ro) venus (ro) /usr/lib/texmf sonne (ro) venus (rw) / erde (ro,root_squash) /home/ftp (ro) # End of exports Datei 5.5.1: /etc/exports Die Datei /etc/exports wird von mountd und nfsd gelesen. Wird also eine Änderung daran vorgenommen, so müssen mountd und nfsd neu gestar- tet werden, damit diese Änderung berücksichtigt wird! Erreicht wird dies am einfachsten mit dem Befehl: erde:~ # rcnfsserver restart 166