Dämonen sind die guten Geister von Unix. Sie bleiben im Hintergrund
und erwachen nur zum Leben, wenn es für sie etwas zu tun gibt. Dann
erledigen sie die ihnen zugedachten Aufgaben und begeben sich wieder zur
Ruhe, bis erneut ein Auftrag für sie hereinflattert. Früher geisterten
viele solcher Dämonen durch den Speicher des Rechners. Sobald das
System gestartet wurde, rief man auch die Dämonen heran, selbst wenn
der eine oder andere niemals wirklich etwas zu tun bekam. Jeder Server
überwachte somit seine Ports, lag an einem etwas an, erzeugte er einen
Kindprozess und vererbte diesem die Verbindung. Der Server schloss unverzüglich
die Verbindung und erwartete neue Anforderungen... Heute überwacht
der inetd
alle Ports und erst bei Aktivierung an einem dieser
Ports startet der inetd einen entsprechenden Server-Prozess, der die bereits
eröffnete Verbindung mittels eines Dateideskriptors übergeben
bekommt und nun direkt mit dem Clienten kommuniziert. Hat der Server seine
Arbeit erledigt, beendet er sich und erst eine erneute Anfrage beim inetd
kann ihn wieder heraufbeschwören. Als Fazit ist die meiste Zeit über
nur noch ein Prozess aktiv - der inetd
.
Der inetd
ist über die Datei /etc/inetd.conf
konfigurierbar; ein Ausschnitt daraus sei kurz aufgeführt:
# See "man -S 8 inetd" for more information.
|
service_name
Bezeichnung des Dienstessock_type
Art des Kommunikationsmechanismusprots
Protokollartflags
für UDP: gibt an, ob der inetd
sofort neue Anforderungen
auf dem Port entgegennehmen oder auf Terminierung des Servers warten sollProgrammname und Argumente
Programmname inklusive vollständigem
Pfad und optionaler Parameterliste
Die Dienste nach telnet
im obigen Ausschnitt aus der /etc/inetd.conf
werden über einen so genannten TCP-Wrapper aufgerufen. Dieser Wrapper
nimmt, bevor er die jeweiligen Prozesse startet, verschiedene Initlialisierungen
vor. So sucht der TCP-Wrapper in den Dateien /etc/hosts.allow
und /etc/hosts.deny
nach den jeweiligen Dienst betreffenden Einstellungen und übergibt
diese als Parameter an dieses Programm.Wünscht man mit seinem Rechner
auf Netzwerkdienste zuzugreifen oder bietet solche gar an, muss der inetd
aktiviert werden. Überprüfen lässt sich dies mit:
user@sonne> ps ax | grep inetd
|
Fehlt die Ausgabe, kann der Dämon von Hand (als Root) gestartet werden:
root@sonne> /usr/sbin/inetd
|
Um den Start beim nächsten Bootvorgang automatisch zu veranlassen,
muss der
inetd
in den entsprechenden Runleveln
(3 und 4 bei SuSE; 3 und 5 bei RedHat) aktiviert werden.
Dazu setzt man in den Runlevel-Verzeichnissen symbolische Links auf das (normalerweise bereits
existierende) Skript /sbin/inet.d/inetd
(SuSE) bzw. /etc/rc.d/init.d/inet
(RedHat):
# Beispiel für ein RedHat-basiertes System
|
Bei SuSE-Linux passt man die obigen Links entsprechend an oder - sofern man nicht die automatische
Konfiguration abgeschalten hat -man
setzt die entsprechende Variable in der /etc/rc.config
(START_INETD="yes"
)
und ruft anschließend SuSEconfig
auf.
Modifiziert man eine
beliebige Konfigurationsdatei im System, so müssen die betreffenden
Dienste neu gestartet werden. Im Unterschied zu manch anderen Betriebssystemen
muss Linux nicht zwangsläufig neu gebootet werden. Es genügt,
den Prozessen ein Signal SIGHUP zu senden, woraufhin diese ihre Konfigurationsdateien
neu einlesen. Bearbeitet man z.B. die /etc/inetd.conf
, informiert
man den inetd
wie folgt:
root@sonne> killall -HUP inetd
|