/etc/inetd.conf
listet diese Server und ihre üblichen Ports auf. Der Befehl inetd
wartet an allen diesen Ports auf Anfragen; wenn er eine Verbindung zu einem dieser Ports entdeckt, führt er das entsprechende Serverprogramm aus.
/etc/inetd.conf
beschreibt einen Server in sieben Feldern (getrennt durch Leerzeichen):
/etc/services
enthalten ist, zugeordnet ist).
stream
für eine TCP-Verbindung, dgram
für UDP-Datagramme.
tcp
oder udp
.
wait
oder nowait
, um inetd
mitzuteilen, ob er auf das Ende des gestarteten Prozesses warten soll, bevor er eine andere Verbindung annimmt, oder nicht. Für TCP-Verbindungen, die einen Kanal leicht mehrfach nutzen können, können Sie normalerweise nowait
verwenden. Für Programme, die über UDP antworten, sollten Sie nowait
nur dann verwenden, wenn der Server in der Lage ist, mehrere Verbindungen parallel zu verwalten. Sie können an dieses Feld einen Punkt anhängen, gefolgt von der Höchstzahl der Verbindungen, die pro Minute erlaubt ist (der Standardgrenzwert ist 256).
argv[0]
in C).
Beispiel 9.1. Auszug aus /etc/inetd.conf
talk dgram udp wait nobody.tty /usr/sbin/in.talkd in.talkd finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd ident stream tcp nowait nobody /usr/sbin/identd identd -i
tcpd
wird in /etc/inetd.conf
häufig benutzt. Es ermöglicht es, ankommende Verbindungen durch die Verwendung von Zugangskontrollregeln einzuschränken, die auf der Handbuchseite hosts_access(5) dokumentiert sind, und die in den Dateien /etc/hosts.allow
und /etc/hosts.deny
konfiguriert sind. Sobald feststeht, dass die Verbindung autorisiert ist, führt tcpd
den eigentlich zuständigen Server aus (wie /usr/bin/in.fingerd
in unserem Beispiel). Es ist wichtig anzumerken, dass tcpd
auf den Namen zurückgreift, mit welchem es aufgerufen wurde (das ist das erste Argument, argv[0]
), um das tatsächlich auszuführende Programm zu ermitteln. Sie sollten deshalb die Parameterliste nicht mit tcpd
beginnen, sondern mit dem Programm, zu dem umgeleitet werden soll.