05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

152 4 Gr<strong>und</strong>lagen der Socket-Programmierung<br />

Wie wir da<strong>mit</strong> gesehen haben, bietet das Telnet-Kommando eine w<strong>und</strong>erbare<br />

Möglichkeit, sowohl die Verfügbarkeit als auch die Funktion von Netzwerkdiensten<br />

zu testen. Wir werden deshalb im weiteren Verlauf dieses Buchs noch<br />

einige Male auf diese angenehme Eigenschaft des Programms zurückgreifen.<br />

4.1.2 Einfache Netzwerkdienste <strong>mit</strong> dem inetd<br />

Der Internet Dæmon inetd ist das zweite unverzichtbare Werkzeug in unserem<br />

Schnellstarter-Kit“ der <strong>Unix</strong> Netwerkprogrammierung. Mit der Hilfe<br />

”<br />

dieses Dæmons lassen sich einfache Programme im Handumdrehen in netzwerkfähige<br />

Anwendungen verwandeln.<br />

Die Konfigurationsdatei /etc/inetd.conf legt fest, für welche Ports der Internet<br />

Dæmon auf eingehende Netzwerverbindungen warten, <strong>und</strong> wie er auf<br />

neue Verbindungen reagieren soll. Trifft eine Verbindungsanfrage für einen,<br />

vom inetd verwalteten Port ein, so startet der Dæmon den konfigurierten<br />

Dienst. Der Internet Dæmon sorgt außerdem dafür, daß für den neuen Prozeß<br />

sowohl dessen Standard Ein- <strong>und</strong> Ausgabe als auch dessen Fehlerausgabe <strong>mit</strong><br />

der eben aufgebauten Netzwerkverbindung verknüpft ist.<br />

Der nachfolgende Ausschnitt aus einer solchen Konfiguration zeigt den typischen<br />

Aufbau der Datei:<br />

# /etc/inetd.conf: Internet server configuration<br />

#<br />

# Internal services<br />

echo stream tcp nowait root internal<br />

echo dgram udp wait root internal<br />

daytime stream tcp nowait root internal<br />

daytime dgram udp wait root internal<br />

time stream tcp nowait root internal<br />

time dgram udp wait root internal<br />

# Standard services<br />

pop3 stream tcp nowait root /usr/sbin/ipop3d ipop3d<br />

imap4 stream tcp nowait root /usr/sbin/imapd imapd<br />

Die erste Spalte enthält immer den Namen des angebotenen Diensts. Dem<br />

angegeben Namen ist über die Konfigurationsdatei /etc/services jeweils<br />

eine Portnummer zugewiesen. Die nächsten beiden Spalten spezifizieren das<br />

Netzwerkprotokoll, über das der Dienst angeboten wird. Die vierte Spalte<br />

gibt an, ob inetd vor der Annahme neuer Verbindungen warten soll, bis ein<br />

vorausgehender Aufruf des gleichen Diensts abgeschlossen wurde. Für TCPbasierte<br />

Dienste sollte in dieser Spalte immer der Wert nowait eingetragen<br />

werden. Die fünfte Spalte legt fest, unter welcher User-ID der konfigurierte<br />

Dienst gestartet wird. Auf diese Art <strong>und</strong> Weise können auch Prozesse gestartet<br />

werden, die nicht <strong>mit</strong> Systemrechten ablaufen sollen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!