[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/wiki16\/2020\/12\/31\/inetd-wikipedia\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/wiki16\/2020\/12\/31\/inetd-wikipedia\/","headline":"inetd – Wikipedia","name":"inetd – Wikipedia","description":"before-content-x4 inetd (ichnterNetz Bedienung daemon) ist ein Super-Server-Daemon auf vielen Unix-Systemen, der Internetdienste bereitstellt. F\u00fcr jeden konfigurierten Dienst werden Anforderungen","datePublished":"2020-12-31","dateModified":"2020-12-31","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/wiki16\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/wiki16\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":100,"height":100},"url":"https:\/\/wiki.edu.vn\/wiki16\/2020\/12\/31\/inetd-wikipedia\/","wordCount":1742,"articleBody":" (adsbygoogle = window.adsbygoogle || []).push({});before-content-x4inetd (ichnterNetz Bedienung daemon) ist ein Super-Server-Daemon auf vielen Unix-Systemen, der Internetdienste bereitstellt. F\u00fcr jeden konfigurierten Dienst werden Anforderungen von Verbindungsclients abgeh\u00f6rt. Anfragen werden durch das Laichen eines Prozesses bedient, der die entsprechende ausf\u00fchrbare Datei ausf\u00fchrt, aber einfache Dienste wie Echo werden von inetd selbst bedient. Externe ausf\u00fchrbare Dateien, die auf Anfrage ausgef\u00fchrt werden, k\u00f6nnen Single- oder Multithreading sein. Erstmals in 4.3BSD erscheinen,[1] es befindet sich in der Regel bei \/usr\/sbin\/inetd. (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Table of ContentsFunktion[edit]Erstellen eines inetd-Dienstes[edit]inetd Ersatz[edit]Sicherheitsbedenken[edit]Siehe auch[edit]Verweise[edit]Externe Links[edit]Funktion[edit]Inetd wird oft als Super-Server bezeichnet und \u00fcberwacht bestimmte Ports, die von Internetdiensten wie FTP, POP3 und Telnet verwendet werden. Wenn ein TCP-Paket oder UDP-Paket mit einer bestimmten Zielportnummer ankommt, startet inetd das entsprechende Serverprogramm, um die Verbindung zu verarbeiten. Bei Diensten, von denen nicht erwartet wird, dass sie mit hoher Last ausgef\u00fchrt werden, wird bei dieser Methode der Speicher effizienter verwendet, da die spezifischen Server nur bei Bedarf ausgef\u00fchrt werden. Dar\u00fcber hinaus ist in den dienstspezifischen Programmen kein Netzwerkcode erforderlich, da inetd die Sockets direkt mit stdin, stdout und stderr des erzeugten Prozesses verkn\u00fcpft. F\u00fcr Protokolle mit h\u00e4ufigem Datenverkehr wie HTTP und POP3 ist m\u00f6glicherweise ein dedizierter Server vorzuziehen, der den Datenverkehr direkt abf\u00e4ngt.Die Liste der Dienste, die gewartet werden sollen, wird normalerweise in einer Konfigurationsdatei angegeben \/etc\/inetd.conf. Eine grafische Benutzeroberfl\u00e4che zum Verwalten der Konfigurationsdatei ist ein optionales Zubeh\u00f6r. Der D\u00e4mon ben\u00f6tigt m\u00f6glicherweise ein Signal, um seine Konfiguration erneut zu lesen. Zum Beispiel kann Telnet wie folgt konfiguriert werden (Zeile von einem Computer mit AIX Version 5.1): (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4telnet stream tcp6 nowait root \/usr\/sbin\/telnetd telnetd -aDas erste Wort, telnetist der offizielle Name des Dienstes. Es wird mithilfe der Systemdatenbank gel\u00f6st, um Portnummern und Protokolle Dienstnamen zuzuordnen. In diesem Fall, \/etc\/services sollte beinhalten:telnet 23\/tcpDas zweite und dritte Wort beschreiben den Socket-Typ bzw. das zugrunde liegende Protokoll. Das \/etc\/protocols Datenbank wird konsultiert.Das vierte Wort ist der Wait \/ Nowait-Schalter. Ein Single-Threaded-Server erwartet, dass inetd wartet, bis alle Daten gelesen sind. Andernfalls l\u00e4sst inetd den Server laufen und erzeugt neue, gleichzeitige Prozesse f\u00fcr neue Anforderungen.Das f\u00fcnfte Wort ist der Benutzername aus dem \/etc\/passwd Datenbank, als die das Serviceprogramm ausgef\u00fchrt werden soll. (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Schlie\u00dflich werden der Pfad und die Argumente eines externen Programms angegeben. Das erste Argument ist wie \u00fcblich der Programmname. In diesem Beispiel wird inetd angewiesen, das Programm zu starten \/usr\/sbin\/telnetd mit den Befehlszeilenargumenten telnetd -a. inetd bindet den Socket automatisch an stdin, stdout und stderr des Serverprogramms.Im Allgemeinen werden TCP-Sockets behandelt, indem ein separater Server erzeugt wird, um jede Verbindung gleichzeitig zu behandeln. UDP-Sockets werden im Allgemeinen von einer einzelnen Serverinstanz verarbeitet, die alle Pakete an diesem Port verarbeitet.Einige einfache Dienste, wie z. B. Echo, werden direkt von inetd verarbeitet, ohne dass ein externer Server erzeugt wird.Erstellen eines inetd-Dienstes[edit]Dies ist ein einfacher inetd-Dienst, der in C geschrieben wurde. Er erwartet ein Befehlszeilenargument, das einen Dateinamen f\u00fcr eine Protokolldatei enth\u00e4lt, und protokolliert dann alle \u00fcber den Socket gesendeten Zeichenfolgen in der Protokolldatei. Beachten Sie, dass dies ein sehr unsicheres Beispielprogramm ist.#include #include int main(int argc, char **argv){ const char *fn = argv[1]; FILE *fp = fopen(fn, \"a+\"); if (fp == NULL) exit(EXIT_FAILURE); char str[4096]; \/* inetd passes its information to us in stdin. *\/ while (fgets(str, sizeof str, stdin)) { fputs(str, fp); fflush(fp); } fclose(fp); return 0;}Das Beispiel verwendet stdio-Funktionen und reagiert auf Netzwerkverkehr, der auf stdin eingeht. In diesem Fall m\u00f6chten wir, dass alle Nachrichten in einer einzigen Datei protokolliert werden, sodass nur eine Instanz des ausgef\u00fchrten Dienstes alle Anforderungen bearbeitet. Dies bedeutet, dass UDP das richtige Protokoll ist. Zun\u00e4chst muss eine nicht verwendete Portnummer ausgew\u00e4hlt werden. In diesem Beispiel wird 9999 verwendet. Das \/etc\/services Der Eintrag sieht folgenderma\u00dfen aus:errorLogger 9999\/udpUnd der Eintrag in \/etc\/inetd.conf wird so aussehen:errorLogger dgram udp wait root \/usr\/local\/bin\/errlogd errlogd \/tmp\/logfile.txtDies weist inetd an, das auszuf\u00fchren \/usr\/local\/bin\/errlogd Programm, mit der Kommandozeile: errlogd \/tmp\/logfile.txt (Informationen zu den anderen Argumenten finden Sie in der Manpage inetd.conf.) Das erste Argument enth\u00e4lt den Dateinamen, der f\u00fcr die Protokolldatei verwendet werden soll: \/tmp\/logfile.txt. inetd f\u00fchrt den Dienst bei Bedarf aus und h\u00e4ngt Port 9999 an die Eingabe- und Ausgabestreams an. Alle an diesen Port gesendeten Zeichenfolgen werden in der Datei protokolliert. Durch Angabe wartenInetd wird angewiesen, nur eine Instanz des Servers zu verwenden, um alle Anforderungen zu verarbeiten.Hinweis: Die Funktionalit\u00e4t des obigen Beispiels wird normalerweise mithilfe von Syslog und einem Prozess wie syslogd implementiert. syslogd wird normalerweise parallel zu inetd gestartet, nicht als inetd-Dienst.inetd Ersatz[edit]In den letzten Jahren wurde es aufgrund der Sicherheitsbeschr\u00e4nkungen im urspr\u00fcnglichen Design von inetd in vielen Systemen durch xinetd, rlinetd, ucspi-tcp und andere ersetzt. Insbesondere Linux-Distributionen bieten viele Optionen, und Mac OS X (beginnend mit Mac OS X 10.2) verwendet xinetd. Ab Version Mac OS X 10.4 hat Apple die Funktionalit\u00e4t von inetd in launchd zusammengef\u00fchrt.Die von inetd angebotenen Dienste k\u00f6nnen g\u00e4nzlich weggelassen werden. Dies wird immer h\u00e4ufiger, wenn Maschinen einer einzigen Funktion zugeordnet sind. Beispielsweise k\u00f6nnte ein HTTP-Server so konfiguriert werden, dass nur httpd ausgef\u00fchrt wird und keine anderen Ports ge\u00f6ffnet sind. Bei einer dedizierten Firewall konnten keine Dienste gestartet werden.systemd unterst\u00fctzt inetd-Dienste und erweitert die Socket-Aktivierung \u00fcber IP-Messaging (AF INET + 6) hinaus um AF UNIX, AF NETLINK und mehr.[2][3]Sicherheitsbedenken[edit]W\u00e4hrend das inetd-Konzept als Service-Dispatcher nicht von Natur aus unsicher ist, gab die lange Liste von Services, die inetd traditionell bereitstellte, Computersicherheitsexperten eine Pause. Die M\u00f6glichkeit, dass ein Dienst einen ausnutzbaren Fehler aufweist oder der Dienst nur missbraucht wird, musste in Betracht gezogen werden. Unn\u00f6tige Dienste, die deaktiviert und “standardm\u00e4\u00dfig deaktiviert” wurden, wurden zum Mantra. Es ist nicht ungew\u00f6hnlich, eine zu finden \/etc\/inetd.conf mit fast allen Diensten in einer modernen Unix-Distribution auskommentiert.Siehe auch[edit]Verweise[edit]Externe Links[edit] (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki16\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki16\/2020\/12\/31\/inetd-wikipedia\/#breadcrumbitem","name":"inetd – Wikipedia"}}]}]