inetd: демон суперсервера Unix для предоставления интернет-сервисов. Запускает процессы для обработки запросов клиентов, поддерживая echo и другие службы.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Unix демон
Unix daemon
inetd (демон интернет-сервисов) — это суперсерверный демон во многих системах Unix, предоставляющий интернет-сервисы. Для каждой настроенной службы он прослушивает запросы от подключающихся клиентов. Запросы обрабатываются путем запуска процесса, выполняющего соответствующий исполняемый файл, но простые службы, такие как 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 запускает соответствующую серверную программу для обработки соединения. Для сервисов, которые не предполагается использовать при высоких нагрузках, этот метод более эффективно использует память, поскольку конкретные серверы запускаются только при необходимости. Более того, в режиме управления сервисами "nowait" в программах, специфичных для сервиса, не требуется сетевой код, так как inetd напрямую подключает сетевой поток к stdin и stdout запущенного процесса. Для протоколов с интенсивным трафиком, таких как HTTP и POP3, может быть предпочтительнее режим ожидания ("wait") inetd или выделенный сервер, который напрямую перехватывает трафик.
Often called a super server, inetd listens on designated ports used by Internet services such as FTP, POP3, and telnet. When a TCP packet or UDP packet arrives with a particular destination port number, inetd launches the appropriate server program to handle the connection. For services that are not expected to run with high loads, this method uses memory more efficiently, since the specific servers run only when needed. Furthermore, in inetd's "nowait" mode of service management, no network code is required in the service specific programs, as inetd hooks the network stream directly to stdin and stdout of the spawned process. For protocols that have frequent traffic, such as HTTP and POP3, either inetd's "wait" mode of operation, or a dedicated server that intercepts the traffic directly may be preferable.
Замена
В последние годы из-за ограничений безопасности в исходной реализации 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 и других.
In recent years, because of the security limitations in the original design of inetd, it has been replaced by xinetd, rlinetd, ucspi tcp, and others in many systems. Distributions of Linux especially have many options and Mac OS X (beginning with Mac OS X v10.2) uses xinetd. As of version Mac OS X v10.4, Apple has merged the functionality of inetd into launchd. The services provided by inetd can be omitted entirely. This is becoming more common where machines are dedicated to a single function. For example, an HTTP server could be configured to just run httpd and have no other ports open. A dedicated firewall could have no services started. systemd supports inetd services, and expands socket activation beyond IP messaging (AF INET+6) to include AF UNIX, AF NETLINK and more.
Проблемы безопасности
Хотя концепция inetd как диспетчера служб сама по себе не является небезопасной, обширный список служб, которые традиционно предоставлял inetd, вызывал обеспокоенность у специалистов по компьютерной безопасности. Необходимо было учитывать возможность наличия у службы уязвимости или её неправомерного использования. Отключение ненужных служб и настройка "выключенных по умолчанию" стало девизом. В современных дистрибутивах Unix часто можно встретить файл /etc/inetd.conf, в котором большинство служб закомментированы.
While the inetd concept as a service dispatcher is not inherently insecure, the long list of services that inetd traditionally provided gave computer security experts pause. The possibility of a service having an exploitable flaw, or the service just being abused, had to be considered. Unnecessary services being disabled and "off by default" became the mantra. It is not uncommon to find an /etc/inetd. conf with almost all the services commented out in a modern Unix distribution.