IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Anwendungssoftware - Was ist "inetd"?



Was ist "inetd"?

Der Dienst "inetd" wird hier vorgestellt. Desweiteren wird tcpd kurz erklärt.


Autor: Franz Schaefer (mond)
Datum: 27-03-2002, 16:00:00
Referenzen: man inetd
man tcpd
man hosts_access
Schwierigkeit: Anfänger
Ansichten: 5838x
Rating: 9 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Übersicht

normalerweise braeuchte man fuer jedes service das man auf einer kiste
laufen hat einen eigenen daemon. also z.b. den apache fuer http, einen
ftpd fuer ftp einen telnetd fuer telnet, etc, etc..

d.h. man haette sehr viele programme die einen grossteil der zeit nur
herumhaengen und resourcen verbrauchen (da sie eh nur auf verbindungen
warten praktisch kaum CPU zeit und der speicher den sie belegen wird im
notfall auch in den swap bereich ausgelagert...)

trozdem startet man solche dienste i.a. am besten ueber ein programm
namends "inetd". inetd ist ein daemon programm dass sich auf viele ports
gleichzeitig bindet und falls eine verbindung auf dem port hereinkommt
startet es dann erst ein programm das ueber STDIN und STDOUT mit auf der
verbindung kommunizieren kann.

das configfile file von inetd ist /etc/inetd.conf

ein eintrag dort koennte etwa so aussehen:

telnet stream tcp nowait telnetd.telnetd /usr/sbin/in.telnetd in.telnetd

der erste teil gibt das port an auf dem inetd zuhoeren soll. hier das
telnet port (siehe /etc/services). man koennte auch die portnummer
angeben. danach die art der verbinung. fuer tcp verbindungen nimmt man
hier i.a "stream". danach das protokoll. danach wait oder nowait. meist
nowait. die option "wait" wird nur fuer manche UDP server benoetigt die man
aber i.a. eh nicht ueber inetd laufen lassen will.

danach kommt user (und optional .gruppe) unter der das programm gestartet
werden soll. (hier user telnetd und gruppe telnetd). als letztes argument
das programm das gestartet werden soll. hier in.telnetd die
inetd-ifizierte version von telnetd. danach kommen argumente die an das
programm uebergeben werden sollen beginned mit dem 0ten argument: dem
namen des programms (hier also in.telnetd)

will man ein ganzes service abschalten setzt man am besten ein # als
kommntarzeichen an den anfang der zeile. um dem inetd zu sagen dass er
sein config file neu lesen soll schickt man dem inet ein HUP signal:

killall -HUP inetd

erst danach werden eventuelle aenderungen im inetd.conf wirksam.

mit folgender zeile wuerde man z.b. ein port oeffnen auf dem man fortunes
abfragen kann:

2345 stream tcp nowait telnetd /usr/games/fortune fortune

macht man nun

telnet localhost 2345

bekommt man die ausgabe des fortune programmes. analog:

2345 stream tcp nowait telnetd /bin/echo echo hallo du da

schreibt ein "hallo du da" raus sobald man connected. will man
einschraenken wer auf das service zugreifen darf kann man das mit einem
programm namens tcpd machen (oder natuerlich mit firewall regeln. oder am
besten mit beiden mechanismen)

tcpd hat 2 files namens /etc/hosts.allow und /etc/hosts.deny mit denen man
regeln kann wer das service beanspruchen darf. um tcpd zu aktiviern
schreibt man:

telnet stream tcp nowait telnetd.telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd

der inetd ruft jetzt als programm fuer diese verbindung tcpd auf und
ueberigt als 0tes argument den echten service der zu starten ist. tcpd
ueberprueft von wo die verbindung kommt und erlaubt die verbindung je nach
einstellungen im file /etc/hosts.allow bzw /etc/hosts.deny

z.b. eintrag in /etc/hosts.deny

in.telnetd: ALL EXCEPT 123.45.67.89,192.168.0.0/255.255.255.0

das wuerde den zugriff von der einen IP 123.45.67.89 und vom netz
192.168.0.xxx erlauben. hat man ein ALL: PARANOID im /etc/hosts.deny dann
schaut der tcpd auch auf DNS namen und das macht meist verzoegerungen beim
connecten.

EXERCISES:

* durchforste dein inetd.conf und drehe nicht benoetigte service ab.

* mache probehalber ein service das das aktuelle datum ausgiebt.

* sperre obiges service so dass es nur von der IP addresse 127.0.0.1
(localhost) erreichbar ist. teste ob dem auch wirklich so ist in dem du
von aussen zu connecten versuchst.

* drehe obiges service wieder ab.

_______________________________________________
CD ist ein service von SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06246
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1154
Comments: 0