Xinetd

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

xinetd (extended Internet daemon) je v informatice název open-source démona, který zastává funkci super-serveru. Běží na mnoha unixových systémech a slouží k obsluze internetových služeb (ftp server, http server, ssh server apod.). Funkčně nahrazuje démona inetd, přičemž nabízí navíc lepší bezpečnost, a proto ho využívá většina současných linuxových distribucí.

Popis

Démon xinetd naslouchá příchozím požadavkům v síti a spustí příslušnou službu pro daný požadavek. Požadavky jsou zpracovány s použitím čísel portů jako identifikátory a xinetd spustí jiného démona, který požadavek zpracuje. +more To může být použito pro spuštění služeb využívající jak privilegované tak neprivilegované porty.

Démon xinetd má k dispozici mechanismy řízení přístupu, např. TCP Wrapper, rozšířené možnosti loggování a schopnost nastavovat dostupnost služby v určitém čase. +more Je možné nastavit limity počtu serverů, které může systém spustit, a nasadit obranné mechanismy na ochranu před skenery portů.

Na některých implementacích systému OS X tento démon obsluhuje různé internetové služby, např. FTP nebo Telnet. +more Jako rozšíření původního Inetd nabízí vyšší úroveň zabezpečení. Démon xinetd nahradil původní Inetd v systému OS X 10. 3, nicméně Apple inetd udržuje v systému z důvodů kompatibility.

Konfigurace

Konfigurace démona xinetd je ve výchozím stavu uložena v souboru /etc/xinetd. conf a nastavení jednotlivých služeb, které budou obsluhovány, je uloženo v adresáři /etc/xinetd. +mored. Konfigurace každé služby obvykle zahrnuje přepínač, který určí, zda démon xinetd službu povolí nebo zakáže.

Níže je uveden konfigurační soubor pro RFC 868 time server.

# default: off # description: An RFC 868 time server. This protocol provides a # site-independent, machine readable date and time. +more The Time service sends back # to the originating source the time in seconds since midnight on January first # 1900. # This is the tcp version. service time { disable = yes type = INTERNAL id = time-stream socket_type = stream protocol = tcp user = root wait = no }.

# This is the udp version. service time { disable = yes type = INTERNAL id = time-dgram socket_type = dgram protocol = udp user = root wait = yes }

Řádky se znakem "#" na začátku jsou komentáře, které nemají na konfiguraci vliv. Existují dvě verze služby, první je založena na protokolu TCP, druhá je založena na protokolu UDP. +more Typ a plánované použití služby určuje výběr protokolu. Jednoduše řečeno, UDP není vhodný pro přenos velkých objemů dat, protože nezaručuje doručení paketů ve správném pořadí a nezajišťuje integritu přenesených dat, ale je rychlejší než TCP. TCP tyto funkce zajišťuje ale na úkor rychlosti. V konfiguračním souboru se pro obě verze ve složených závorkách vyskytují dva sloupce. První je typ volby, druhý je aplikovaná proměnná. Možnost disable určuje, zda bude služba spuštěna nebo ne.

Existují tři typy služeb. Typ internal je služba poskytovaná samotným démonem xinetd. +more Typ RPC je služba založená na RPC, která je definována v souboru /etc/rpc a typ unlisted je služba, která není definována ani v souboru /etc/services ani v /etc/rpc.

Id je unikátní identifikátor služby.

Socket_type určuje způsob přenosu dat prostřednictvím služby. Existují tři typy: stream, dgram a raw. +more Poslední možnost je užitečná, pokud chceme vytvořit služby na základě nestandardního protokolu.

S možností user je možné vybrat uživatele, pod kterým bude služba spouštěna. Z bezpečnostních důvodů se doporučuje, aby služba nebyla spouštěna pod uživatelem root. +more Pokud je možnost wait nastavena na yes, tak démon xinetd neobdrží požadavek na spuštění, pokud spojení již existuje. Počet spojení je tak omezen na jeden. To poskytuje velmi dobrou ochranu, když chceme v čase navázat pouze jedno spojení.

Existuje mnoho dalších možností nastavení xinetd. Ve většině linuxových distribucí lze úplný seznam možných variant a jejich popis pomocí příkazu man xinetd.

Pro použití nové konfigurace se musí zavolat tzv. SIGHUP signál, který způsobí nové načtení konfiguračních souborů. +more Toho lze dosáhnout pomocí následujícího příkazu: $ kill -SIGHUP "PID" PID je aktuální identifikátor procesu xinetd, který lze získat pomocí příkazu: $ pgrep xinetd.

Reference

Kategorie:Linux

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top