Кіріспе
Unix daemon inetd (интернет-қызметтер daemon) – көптеген Unix жүйелерінде интернет-қызметтерін ұсынатын суперсерверлік daemon. Әрбір конфигурацияланған қызмет үшін ол қосылатын клиенттерден келетін сұраныстарды тыңдайды. Сұраныстар тиісті атқарылатын файлды іске қосып, процесті жасау арқылы өңделеді, бірақ echo сияқты қарапайым қызметтердің өзін inetd қамтамасыз етеді. Сұраныс бойынша іске қосылатын сыртқы атқарылатын файлдар бір немесе көп жіпті болуы мүмкін. Алғаш рет 4.3BSD жүйесінде пайда болған, әдетте /usr/sbin/inetd мекенжайында орналасқан. inetd (қызмет) белсендіру үлгісіне негізделген.
inetd (internet service daemon) is a super server daemon on many Unix systems that provides Internet services. For each configured service, it listens for requests from connecting clients. Requests are served by spawning a process which runs the appropriate executable, but simple services such as echo are served by inetd itself. External executables, which are run on request, can be single or multi threaded. First appearing in 4.3BSD, it is generally located at /usr/sbin/inetd. inetd is based on the (service) activator pattern
Функция
Көбінесе "супер сервер" деп аталатын inetd, FTP, POP3 және telnet сияқты интернет-қызметтері пайдаланатын белгілі бір порттарды тыңдайды. TCP немесе UDP пакеті нақты бір мақсатты порт нөмірімен келген кезде, inetd сол қосылымды өңдеу үшін тиісті сервер бағдарламасын іске қосады. Жүктемесі жоғары болмайтын қызметтер үшін бұл әдіс жадты тиімдірек пайдаланады, себебі нақты серверлер тек қажет болғанда ғана жұмыс істейді. Сонымен қатар, inetd-тің қызмет басқаруының "nowait" режимінде, қызметке арналған бағдарламаларда желілік код қажет болмайды, себебі inetd желілік ағынды тікелей туындаған процестің stdin және stdout-ына қосады. HTTP және POP3 сияқты жиі трафик болатын протоколдар үшін inetd-тің "күту" режимі немесе трафикті тікелей қабылдайтын арнайы сервер пайдалы болуы мүмкін.
inetd алмастыру
Соңғы жылдары inetd-нің бастапқы дизайнындағы қауіпсіздік шектеулеріне байланысты, көптеген жүйелерде xinetd, rlinetd, ucspi tcp және басқаларымен алмастырылды. Linux дистрибутивтерінде әсіресе көптеген нұсқалар бар, ал Mac OS X (Mac OS X v10.2 нұсқасынан бастап) xinetd-ді пайдаланады. Mac OS X v10.4 нұсқасынан бастап Apple inetd функционалын launchd-ке біріктірді. inetd ұсынатын қызметтерді толығымен жоюға болады. Бұл машиналар бір ғана функцияға арналған жағдайларда жиі кездеседі. Мысалы, HTTP сервері тек httpd-ні іске қосу үшін конфигурацияланып, басқа порттар жабық болуы мүмкін. Арнайы брандмауэрде қызметтер іске қосылмауы мүмкін. systemd inetd қызметтерін қолдайды және сокеттерді белсендіруді IP хабарламасынан (AF INET+6) асырып, AF UNIX, AF NETLINK және басқаларын да қамтиды.
Қауіпсіздік мәселелері
Inetd тұжырымдамасы қызмет таратушы ретінде өзінен-өзі қауіпсіз болмаса да, inetd дәстүрлі түрде ұсынған қызметтердің көп саны компьютерлік қауіпсіздік сарапшыларын алаңдатты. Қызметте пайдаланыла алатын осал тұс болуы немесе қызметтің жөнсіз пайдаланылу мүмкіндігі қарастырылуы тиіс болды. Қажетсіз қызметтерді өшіру және "әдепкі бойынша өшіру" қағидасы қалыптасты. Қазіргі заманғы Unix дистрибутивтерінде /etc/inetd.conf файлында барлық қызметтерге дерлік түсіндірмелер қосылған күйінде кездесуі жиі кездеседі.