Druckversion

Konfigurationsdateien

Übersicht Weiter

Der vorliegende Abschnitt beschreibt die Syntax der Konfigurationsdateien in /etc mit netzwerkrelevantem Inhalt. Die alphabetische Anordnung unterstreicht unser Ansinnen, diese Darstellung nicht vorrangig als Lehrstoff sondern als Referenz zu verstehen.

So manche Konfigurationsdatei wird von zahlreichen Programmen benötigt. Andere wiederum sind nur für einen einzigen Dienst relevant. Die »allgemeineren« Dateien werden nachfolgend vollständig beschrieben. Wir werden uns bei der Besprechung der Dienste auf die hier getroffenen Aussagen berufen, ohne die Details zu wiederholen. Dem entgegen sollen die Feinheiten der »spezifischen« Konfigurationsdateien erst im Abschnitt zum jeweiligen Dienst die ihnen gebührende Aufmerksamkeit erfahren. Dass wir sie dennoch hier erwähnen, dient der Vollständigkeit der Aufzählung.

Die Datei /etc/HOSTNAME Zurück Anfang Weiter

In der Startphase des Netzwerks ermitteln einige Programme anhand des Inhalts dieser Datei den Namen des Rechners. Im Unterschied zu SuSE-Linux nennt sich die Datei bei RedHat und Debian /etc/hostname. Hier sollten Sie den Netzwerknamen des Rechners ohne die Domainerweiterung eintragen. Für den Rechner sonne.galaxis.de lautet der Eintrag:

user@sonne> cat /etc/HOSTNAME
sonne

Genau genommen, weist das Kommando hostname einem Rechner seinen Namen zu. Nahezu alle Distributionen lesen den Inhalt von /etc/hostname bzw. /etc/HOSTNAME während des Bootvorgangs ein und füttern damit hostname.

Die Datei /etc/exports Zurück Anfang Weiter

Die Datei /etc/exports legt die von einem Network Filesystem Server bereitgestellten Verzeichnisse fest. Zu jedem Verzeichnis wird eine Liste der Rechner angeführt, die dieses importieren dürfen. Des Weiteren regeln verschiedene Optionen die Art des Zugriffs wie auch die Verfahrensweise mit bestimmten Benutzerkennungen (bspw. Root). Ein Eintrag besitzt folgende Gestalt:

<Verzeichnis> <Rechner>([Option(en)]) [<Rechner>([Option(en)])]

Rechner kann hierbei sowohl ein konkreter Rechnername ("sonne", "sonne.galaxis.de") sein, als auch ein durch Wildcards angegebenes Muster für Rechnernamen ("*.galaxis.de") oder aber eine Netzgruppe ("@LocalAdmins") sein. Letztere muss in der Datei /etc/netgroup erscheinen.

Die Besprechung der vielfältigen Optionen soll dem Abschnitt zum NFS-Server vorbehalten bleiben, an dieser Stelle dient einzig ein Beispiel der Demonstration des grundsätzlichen Aufbaus dieser Datei:

user@sonne> cat /etc/exports
# Verzeichnis darf von jedem Rechner »nur-lesend« importiert werden
/opt/export/                 *(ro)

# Root bleibt Root auf diesem Verzeichnis
/usr/src/linux               @developer(no_root_squash,rw)

# Einige Home-Verzeichnisse
/home/user                   *.galaxis.de(rw) @outside(rw)
/home/tux                    *.galaxis.de(rw) @outside(rw)

# Für »diskless« Clients:
/tftpboot/nfsroot            *(rw,no_root_squash)

Die Dateien /etc/ftpaccess, /etc/ftpconversions, /etc/ftpmsg.dead, /etc/ftpusers Zurück Anfang Weiter

Die Dateien /etc/gated, /etc/gated.conf, /etc/gated.version Zurück Anfang Weiter

Die Datei /etc/host.conf Zurück Anfang Weiter

Die Datei steuert den so genannten Resolver, also den Mechanismus, der für die Auflösung von symbolischen Rechnernamen in IP-Adressen und umgekehrt zuständig ist. Allerdings greifen einzig Programme auf »/etc/host.conf« zurück, die gegen die (veralteten) Bibliotheken »libc4« bzw. »libc5« gelinkt sind. Aktuelle Programme nutzen die »glibc2« (diese Bezeichnung ist gebräuchlicher als »libc6«), wo die durch »/etc/host.conf« bereit gestellte Funktionalität von der Datei /etc/nsswitch.conf übernommen wird.

Um aus einem symbolischen Rechnernamen die zugehörige IP-Adresse zu ermitteln, stehen prinzipiell 3 Möglichkeiten zur Verfügung:

  1. Nachschauen in der Datei /etc/hosts
  2. Befragen eines Domain Name Servers
  3. Befragen eines NIS (oder NIS+) Servers

Damit ergibt sich einmal die Frage, auf welches Vorgehen Sie zurückgreifen möchten und, im Falle der Verwendung mehrerer Schemata, in welcher Reihenfolge eine Auflösung erfolgen soll.

user@sonne> cat /etc/host.conf
order hosts nis bind
multi on

In der Datei »/etc/host.conf« bestimmt die mit order beginnende Zeile die Namensauflösung. »hosts« besagt, dass zunächst in der lokalen Datei /etc/hosts nachgesehen werden soll (die lokale Auflösung sollte immer zuerst stehen), anschließend soll ein NIS-Server befragt werden (nis) und, falls immer noch kein Ergebnis erzielt wurde, soll nun die Adresse über DNS ermittelt werden (»bind«, hier kann auch »dns« stehen). multi on besagt, dass ein Rechner durchaus mehrere IP-Adressen haben kann (Gateways, Router,...), mit »multi off« führt eine Anfrage, die verschiedene IP-Adressen ermittelt, zu einem Fehler.

Die Datei /etc/hosts Zurück Anfang Weiter

In dieser Datei findet die Zuordnung von Rechnernamen zu entsprechenden IP-Adressen statt. Selbstverständlich kann hier nicht jeder Rechner des Internets aufgeführt werden (in dessen Anfängen war es aber so), weshalb diese Datei nur für die unmittelbaren, »wichtigen« Nachbarrechner (z.B. Nameserver, DNS-Server, Proxy) genutzt wird.

user@sonne> cat /etc/hosts
# Typischer Aufbau einer /etc/hosts
# <IP-Adresse> <vollständiger Rechnername> <Rechnername> [<Alias>]
#

127.0.0.0        localhost            # loopback
192.168.10.101   sonne.galaxis.de     sonne   mail
192.168.85.1     tuxhausen.outside.all   tuxhausen

# Darstellung der Adresse in oktaler Form
0340.023.0222.03         vulcan.outsite.org

# Darstellung der Adresse in hexadezimaler Form
0xA0.0x77.0x02.0x02      melmac.outsite.com

Die Dateien /etc/hosts.allow, /etc/hosts.deny, /etc/hosts.equiv Zurück Anfang Weiter

Die Datei hosts.allow dient der Zugangskontrolle von Nutzern/Diensten anderer Rechner. Für bestimmte Hosts/Netzwerke kann hier der Zugriff auf bestimmte lokale Dienste explizit gestattet werden.

user@sonne> cat /etc/hosts.allow
# Aufbau einer /etc/hosts.allow
# <service list> : <host list> [: command]
#
# Mail ist jedem gestattet
#

in.smtpd: ALL

# Telnet und FTP wird nur Hosts derselben Domain und dem Rechner tuxhausen erlaubt.
#

telnetd, ftpd: LOCAL, tuxhausen.outside.all

# Finger ist jedem erlaubt, aber root wird per Mail darüber informiert
#

fingerd: ALL: (finger @%h | mail -s "finger from %h" root)

In hosts.deny kann der Zugang zu bestimmten Diensten des Rechners für bestimmte Hosts/Netzwerke explizit untersagt werden.

user@sonne> cat /etc/hosts.deny
# Aufbau von /etc/hosts.deny analog zu /etc/hosts.deny
#

ALL: outside.all

# Die remote-Shell ist eine bekannte Sicherheitslücke
#

rsh: ALL

hosts.allow und hosts.deny werden u.a. vom TCP-Wrapper ausgewertet. Dabei wird zuerst die hosts.allow und dann die hosts.deny betrachtet. Es gilt: Wurde etwas in der "hosts.allow" explizit gestattet, darf es in "hosts.deny" nicht mehr verboten werden.. Wenn ein entsprechender Eintrag in "hosts.deny" dennoch steht, wird er ignoriert.

Der Vollständigkeit halber soll auch der Aufbau der Datei hosts.equiv erwähnt werden. Alle von den darin aufgeführten Rechnern zugreifenden Benutzer haben dieselben Rechte wie lokale Nutzer ("trusted hosts") und können ohne explizite Angabe eines Passwortes über entfernte Dienste auf den Rechner zugreifen. Voraussetzung ist - neben einem entsprechenden Eintrag - die Existenz derselben Nutzerkennung auf dem Zielrechner.

Aus Sicherheitsgründen sollte auf die Möglichkeiten dieser Konfiguration verzichtet werden.

user@sonne> cat /etc/hosts.allow
# Aufbau einer /etc/hosts.equiv
#     [+|-] <Rechnername> [<username>]
#
# Die Nutzer "user" und "newbie" haben von Rechner "erde" aus Zugang

erde.galaxis.de user
erde.galaxis.de newbie

# alle Nutzer des Rechners tuxhausen
tuxhausen.outside.all

# Mitglieder dieser Netzgruppe sind vom passwortfreien Zugang ausgeschlossen
tuxhausen.outside.all    -@LocalAdmins

Anmerkungen:

  • Ein einzelnes + erlaubt den Zugang von sämtlichen Rechnern aus
  • Wird ein Rechner oder Nutzer vom Zugang ausgeschlossen (führendes -), so heißt das nur, dass ein Anmelden immer die Angabe des Passwortes erfordert
  • Root wird niemals der passwortfreie Zugang gestattet
Die Datei /etc/hosts.lpd Zurück Anfang Weiter

Die Datei /etc/inetd.conf Zurück Anfang Weiter

Die Datei /etc/lmhosts Zurück Anfang Weiter

Die Datei /etc/named.conf Zurück Anfang Weiter

Die Datei /etc/netgroup Zurück Anfang Weiter

Bei der Konfiguration der Zugriffsberechtigungen für die Dienste rlogin (Remote Login), rsh (Remote Shell) und dem Export von Verzeichnissen (NFS) möchte man den Zugang häufig ein und derselben Gruppe von Rechern/Nutzern gestatten. Anstatt z.B. jedes zu exportierende NFS-Verzeichnis mit der vollständigen Liste der (nicht) berechtigten Rechner/Nutzer zu versehen, kann durch Definition von Netzgruppen der Schreibaufwand erheblich reduziert werden.

<Name der Netzgruppe> (<Rechnername>,<Benutzername>,<Domänname>)

Jede Netzgruppe wird auf einer eigenen Zeile beschrieben. Dabei folgt dem Namen der Netzgruppe eine Liste von (Rechner,Nutzer,Domän)-Einträgen oder der Name einer zugehörigen Netzgruppe. Eine fehlende Angabe steht für "alle", ein Minus (-) bedeutet "kein gültiger Wert". Das Domän-Feld beschreibt nicht die vertrauenswürdigen Rechner, sondern nur den Geltungsbereich der Netzgruppe. Dieses Feld kann entweder leer sein oder es muss den Namen der lokalen Domän enthalten.

user@sonne> cat /etc/netgroup
# /etc/netgroup
#

LocalAdmins (,root,)

NetAdmins (sonne,user1,) (sonne,user2,) LocalAdmins

Gateways (rechner1,,) (rechner7,,)

Die Datei /etc/networks Zurück Anfang Weiter

Netzwerknamen werden hier in Netzwerkadressen umgesetzt. Diese Informationen dienen manchen Programmen, um anstelle von Nummern aussagekräftige Namen anzuzeigen. Notwendig sind die Angaben jedoch nicht.

user@sonne> cat /etc/hosts.allow
# Aufbau einer /etc/networks
# <Netzwerkname> <Netzwerkadresse>
#

loopback  127.0.0.0
localnet  192.168.10.0
edu-net   192.168.85.0

Die Datei /etc/nntpserver Zurück Anfang Weiter

Diese Datei enthält eine einzige Zeile mit dem Namen eines Newsservers. Einige Newsclients (tin, leafnode) kontaktieren bei Aufruf den eingetragenen Server. Hat man einen lokalen Newsserver konfiguriert, steht hier einfach "localhost":

user@sonne> cat /etc/nntpserver
# bei lokalem Newsserver...
#

localhost

Andere Newsserver oder -clients erwarten den Namen des Servers in der Shellvariablen NNTPSERVER. Nahezu jede Distribution belegt diese Variable anhand der Datei /etc/nntpserver.

Die Datei /etc/nsswitch.conf Zurück Anfang Weiter

Die Datei /etc/protocols Zurück Anfang Weiter

Die Protokollnummern der Transportprotokolle sind hier so eingetragen, wie sie im IP-Protokollkopf erscheinen. Diese Datei sollte nach der Installation existieren und muss nicht verändert werden.

# protocols This file describes the various protocols that are
#           available from the TCP/IP subsystem.  It should be
#           consulted instead of using the numbers in the ARPA
#           include files, or, worse, just guessing them.
#

ip     0     IP     # internet protocol,pseudo protocol number
icmp   1     ICMP   # internet control message protocol
igmp   2     IGMP   # internet group multicast protocol
ggp    3     GGP    # gateway-gateway protocol
tcp    6     TCP    # transmission control protocol
pup    12    PUP    # PARC universal packet protocol
udp    17    UDP    # user datagram protocol
idp    22    IDP    # WhatsThis?
raw    255   RAW    # RAW IP interface
...

Die Datei /etc/resolv.conf Zurück Anfang Weiter

search galaxis.de subdomain.galaxis.de
nameserver 127.0.0.1
nameserver 192.168.100.3

Die Datei /etc/services Zurück Anfang Weiter

Da mehrere Dienste (»Services«) gleichzeitig auf einem Rechner aktiv sein können, muss ihre Adressierung differenzierter erfolgen, als es allein durch die Rechneradresse möglich wäre. Hier gelangen die Portnummern ins Spiel. Nun gibt es reichlich »Standarddienste«, deren Portnummern fest vorgeschrieben sind (Wie sollte sonst ein Client in Erfahrung bringen, an welchem Port der Webserver auf www.linuxfibel.de wartet?). Genau jene Nummern sind in der Datei /etc/services ausgeführt.

Die Vergabe der Portnummern (und auch der Domainnamen) obliegt der ICANN (Internet Corporation for Assigned Names and Numbers), einer nicht-profit-orientierten Vereinigung, der die Organisation der Namensvergabe im Internet obliegt. Die Portnummern sind in drei Bereiche unterteilt:

  1. Well Known Ports (0..1023) Sie werden vom ICANN zugewiesen und sollten niemals geändert werden.
  2. Registered Ports (1024..49151) Sie werden vom ICANN registriert und dienen zumeist »großen« Firmen dazu, um ihren Client-Server-Anwendungen konkrete Ports zu reservieren. Ihre Verwendung zu eigenen Zwecken sollte keine negativen Konsequenzen haben.
  3. Private Ports (49152..65536) Stehen zur freien Verfügung...

Kurzum: Die /etc/services sollte nur derjenige modifizieren, der eigene Client-Server-Anwendungen entwickelt oder auf solche zugreift.

#                 0/tcp    Reserved
#                 0/udp    Reserved

tcpmux            1/tcp                 # TCP Port Service Multiplexer
tcpmux            1/udp                 # TCP Port Service Multiplexer
compressnet       2/tcp                 # Management Utility
compressnet       2/udp                 # Management Utility
compressnet       3/tcp                 # Compression Process
compressnet       3/udp                 # Compression Process
rje               5/tcp                 # Remote Job Entry
rje               5/udp                 # Remote Job Entry
...

Die Datei /etc/xinetd.conf Zurück Anfang Weiter

Die Dateien /etc/yp.conf und /etc/ypserv.conf Zurück Anfang

root@sonne> cat /etc/yp.conf
ypserver sonne.galaxis.de
ypserver erde.galaxis.de
ypserver 192.168.100.107

 Korrekturen, Hinweise?
Startseite Nächste Seite Nächstes Kapitel Vorherige Seite Kapitelanfang