Provided by: manpages-pl_4.21.0-2_all 

NAZWA
inetd, inetd.conf — internet super-server
SKŁADNIA
inetd [-d] [-E] [-i] [-l] [-q długość] [-R częstość] [plik-konfiguracyjny]
OPIS
Inetd nasłuchuje połączeń na określonych gniazdach internetowych. Gdy na jednym z gniazd zaistnieje
połączenie, decyduje on, jakiej usłudze to gniazdo odpowiada i wywołuje program, który obsłuży żądanie.
Po zakończeniu programu, inetd kontynuuje nasłuchiwania gniazda (poza niektórymi wypadkami, opisanymi
poniżej). Ogólnie, inetd umożliwia używanie jednego demona do wywoływania wielu innych, zmniejszając
wymagane obciążenie systemu.
Dostępne są następujące opcje:
-d Włącza debugowanie.
-E Zapobiega ignorowaniu przez inetd środowiska. Bez tej opcji część potencjalnie niebezpiecznych
zmiennych środowiskowych, w tym PATH zostanie usuniętych i nie będzie dziedziczone przez usługi.
-i Program nie przechodzi w tryb demona.
-l Włącza logowanie połączeń i kontrolę dostępu przez libwrap. Usługi wewnętrzne nie mogą być
opakowywane. Gdy opcja jest aktywna, po cichu nie dokonuje się wykonania /usr/sbin/tcpd nawet gdy
jest ono obecne w pliku /etc/inetd.conf, a w zamian inetd bezpośrednio wywołuje libwrap.
-q długość
Określa długość kolejki połączeń listen(2) (domyślnie 128).
-R częstość
Określa maksymalną częstość, z jaką usługa może być wywołana w ciągu minuty (domyślnie 256).
Jeśli usługa przekroczy ten limit, zapisze problem do dziennika i zaprzestanie obsługi żądań dla
danej usługi przez dziesięć minut. Więcej informacji można przeczytać też w poniższym opisie pól
wait/nowait.
Podczas uruchamiania, inetd odczytuje swoją konfigurację z pliku konfiguracyjnego, którym domyślnie jest
/etc/inetd.conf. Musi tam być wpis dla każdego pola pliku konfiguracyjnego, z poszczególnymi wpisami dla
danego pola; wpisy są oddzielane znakiem tabulacji lub spacji. Komentarze są zaznaczane przez “#” na
początku wiersza. Pola pliku konfiguracyjnego są następujące:
nazwa usługi (service name)
rodzaj gniazda (socket type)
protokół[,sndbuf=rozmiar][,rcvbuf=rozmiar]
(protocol[,sndbuf=size][,rcvbuf=size])
określenie, czy usługa ma "zwlekać" (wait/nowait[.max])
użytkownik[.grupa] lub użytkownik[:grupa]
(user[.group] lub user[:group])
program serwera (server program)
argumenty programu serwera (server program arguments)
Aby podać usługę opartą o Sun-RPC , wpis powinien zawierać te pola:
nazwa usługi/wersja (service name/version)
rodzaj gniazda (socket type)
rpc/protokół[,sndbuf=rozmiar][,rcvbuf=rozmiar]
(rpc/protocol[,sndbuf=size][,rcvbuf=size])
zwłoka (wait/nowait[.max])
użytkownik[.grupa] lub użytkownik[:grupa]
(user[.group] or user[:group])
program serwera (server program)
argumenty programu serwera (server program arguments)
For internet services, the first field of the line may also have a host address specifier prefixed to it,
separated from the service name by a colon. If this is done, the string before the colon in the first
field indicates what local address should use when listening for that service. Multiple local addresses
can be specified on the same line, separated by commas. Numeric IP addresses in dotted-quad notation can
be used as well as symbolic hostnames. Symbolic hostnames are looked up using getaddrinfo(). If a
hostname has multiple address mappings, inetd creates a socket to listen on each address.
Pojedynczy znak “*” oznacza INADDR_ANY, czyli “wszystkie adresy lokalne”. Aby zapobiec powtarzaniu
adresów występujących wielokrotnie, wiersz z wyrażeniami określającymi adresy hosta i dwukropkiem, bez
kolejnych pól, powoduje że adresy są zapamiętywane i używane do wszystkich kolejnych wierszy bez
bezpośrednio podanego wyrażenia określającego adres (do momentu napotkania kolejnego tak skonstruowanego
wiersza lub dotarcia do końca pliku). Wiersz
*:
jest bezpośrednio udostępniony na początku pliku, z tego powodu tradycyjne pliki konfiguracyjne (bez
wyrażeń określających adres hosta) będą interpretowane w tradycyjny sposób, czyli wszystkie usługi będą
nasłuchiwać na wszystkich adresach lokalnych. Jeśli protokół to “unix”, to ta wartość jest ignorowana.
Wpis nazwa-usługi jest nazwą prawidłowej usługi, zdefiniowanej w pliku /etc/services lub portem. Dla
usług “wewnętrznych” (internal) (opisanych niżej), nazwa usługi musi być oficjalną nazwą usługi (to
znaczy pierwszym wpisem w /etc/services). Podczas podawania usługi opartej o Sun-RPC, pole to jest
prawidłową nazwą usługi RPC, zdefiniowaną w pliku /etc/rpc. Część na prawo od “/” jest numerem wersji
RPC. Może to być zwyczajny argument numeryczny, lub zakres wersji. Zakres jest obramowany od niższej
wersji do wyższej - “rusers/1-3”. W przypadku gniazd Unix-domain pole to określa ścieżkę gniazda.
The socket type should be one of “stream” or “dgram”, depending on whether the socket is a stream or
datagram socket.
The protocol must be a valid protocol as given in /etc/protocols or “unix”. Examples might be “tcp” or
“udp”. RPC based services are specified with the “rpc/tcp” or “rpc/udp” service type. “tcp” and “udp”
will be recognized as “TCP or UDP over both IPv4 and IPv6.” If you need to specify IPv4 or IPv6
explicitly, use something like “tcp4” or “udp6”. A protocol of “unix” is used to specify a socket in the
Unix-domain.
Oprócz protokołu, plik konfiguracyjny może określać rozmiary buforów nasłuchujących gniazd do wysyłania i
otrzymywania danych. Jest to szczególnie przydatne przy TCP, jako współczynnik skalujący okna, co bazuje
na fakcie, że rozmiar bufora gniazda danych otrzymywanych jest ogłaszany przy nawiązaniu połączenia, a
zatem rozmiar bufora gniazda serwera musi być ustawiony na gnieździe nasłuchującym. Zwiększając rozmiary
buforów gniazda, w pewnych sytuacjach można uzyskać lepszą wydajność TCP. Rozmiar buforów gniazda są
podawane przez dołączanie ich wartości do określenia protokołów, jak poniżej:
tcp,rcvbuf=16384
tcp,sndbuf=64k
tcp,rcvbuf=64k,sndbuf=1m
Można podać wartość dosłowną lub zmodyfikować ją podając ‘k’ do wskazania kilobajtów lub ‘m’ - jeśli
chodzi o megabajty.
Wpis wait/nowait (zwłoka) jest używany do przekazania czy powinien on czekać na powrót programu serwera,
czy kontynuować obsługę połączeń na gnieździe. Jeśli serwer datagramowy łączy się ze swoim rozmówcą,
zwalniając gniazdo w ten sposób, że inetd może odbierać dalsze wiadomości z tego gniazda, to mówi się o
nim jako o serwerze “wielowątkowym” (multi-threaded) i powinno się używać wpisu “nowait” Serwery
datagramowe, które przetwarzają wszystkie nadchodzące do gniazda datagram, które ostatecznie przedawniają
się, nazywa się “jednowątkowymi” (single threaded) i powinno używać się dla nich wpisu “wait”. comsat(8)
(biff(1)) i talkd(8) są przykładami tego drugiego rodzaju serwerów datagramowych. Opcjonalny przyrostek
“max” (oddzielony od “wait” lub “nowait” kropką) określa maksymalną liczbę instancji serwera, jakie mogą
zostać postawione przez w czasie 60 sekund, domyślnie wynosi 256. Jeśli usługa przekroczy ten limit,
zapisze ten problem do dziennika i zaprzestanie obsługi żądań dla danej usługi przez dziesięć minut.
Proszę sprawdzić też opis opcji -R (powyżej).
Serwery strumieniowe są zwykle oznaczane jako “nowait”, lecz jeśli pojedynczy serwer strumieniowy ma
obsługiwać wiele połączeń, można go oznaczyć “wait”. Główne gniazdo zostanie wówczas przekazane jako fd
0 do serwera, który następnie będzie musiał akceptować połączenia przychodzące. Serwer powinien
ostatecznie przedawnić się i wyjść gdy nie będzie już aktywnych połączeń. będzie kontynuował nasłuch na
głównym gnieździe czekając na połączenia, więc serwer nie powinien zamykać go przy wychodzeniu.
Wpis użytkownik powinien zawierać nazwę użytkownika, pod którym powinien uruchamiać się serwer. Umożliwia
to serwerom posiadanie mniejszych praw niż prawa roota. Opcjonalnie, po dodaniu kropki do nazwy
użytkownika, można podać w tym polu nazwę grupy. Umożliwia to serwerom pracę z innym (podstawowym)
identyfikatorem grupy niż ten, podany w pliku z hasłami. Jeśli grupa jest podana, a użytkownik nie jest
rootem, to uzupełniające grupy związane z użytkownikiem wciąż będą ustawione.
Wpis program serwera powinien zawierać ścieżkę programu, który ma być wywoływany przez inetd po
otrzymaniu żądania na gnieździe. Jeśli inetd udostępnia tę usługę wewnętrznie, to wpis ten powinien być
wpisem “internal”.
Wpis argumenty programu serwera powinien wyglądać tak jak zwykłe argumenty, poczynając od argv[0], który
jest nazwą programu. Jeśli usługa jest udostępniana wewnętrznie, to wpis powinien przyjąć nazwę
“internal.”
inetd provides several “trivial” services internally by use of routines within itself. These services
are “echo”, “discard”, “chargen” (character generator), “daytime” (human readable time), and “time”
(machine readable time, in the form of the number of seconds since midnight, January 1, 1900). All of
these services are TCP based. For details of these services, consult the appropriate RFC from the
Network Information Center.
inetd rereads its configuration file when it receives a hangup signal, SIGHUP. Services may be added,
deleted or modified when the configuration file is reread.
libwrap
Obsługa opakowań TCP jest włączona w program w celu zapewnienia wbudowanej funkcji kontroli dostępu
podobnej do tcpd. Zewnętrzny program tcpd nie jest wymagany. Nie ma potrzeby zmian wpisu programu serwera
w /etc/inetd.conf do włączenia tej funkcji. używa /etc/hosts.allow i /etc/hosts.deny do konfiguracji
usług kontroli dostępu, zgodnie z opisem w podręczniku hosts_access(5).
Zachowanie TCP/UDP w IPv6
The default is to run two servers: one for IPv4 and one for IPv6 traffic. If you have different
requirements then you may specify one or two separate lines in inetd.conf, for “tcp4” and “tcp6”.
W zależności od różnych kombinacji ustawień demona IPv4/IPv6 będzie wykazywał następujące zachowanie:
• Jeśli ma się jedynie jeden serwer - “tcp4”, ruch IPv4 będzie przekierowany na serwer. Ruch IPv6 nie
będzie akceptowany.
• If you have two servers on “tcp4” and “tcp6”, IPv4 traffic will be routed to the server on “tcp4”,
and IPv6 traffic will go to the server on “tcp6”, which is identical to the default behaviour when
only “tcp” is specified.
• Jeśli ma się jedynie jeden serwer - “tcp6”, jedynie ruch IPv6 będzie przekierowany na serwer.
Specjalny parametr “tcp46” można wykorzystać przy przestarzałych serwerach, które wymagają połączenia
IPv4 przepisanego na gniazdo IPv6. Nie zaleca się używania tego parametru.
PLIKI
/etc/inetd.conf
ZOBACZ TAKŻE
fingerd(8), ftpd(8), identd(8), talkd(8)
HISTORIA
Polecenie pojawiło się w 4.3BSD. Obsługa usług opartych na Sun-RPC została utworzona wg udostępnionej
przez Sun-OS 4.1. Obsługę IPv6 dodano w projekcie KAME w 1999.
Marco d'Itri przeniósł ten kod z OpenBSD latem 2002 roku oraz dodał możliwość modyfikacji buforów gniazd
oraz obsługę libwrap z drzewa źródeł NetBSD.
BŁĘDY
Na systemach linuksowych demon nie może przeładować swojej konfiguracji. Trzeba go zrestartować jeśli
zmienił się adres hosta dla usługi pomiędzy “*” i wyrażeniem określającym adres.
Programy serwera używane z “dgram” “udp” “nowait” muszą czytać z gniazd sieciowych lub inetd będzie
mnożył procesy aż do osiągnięcia limitu.
Wyrażenia określające adres hosta, choć ich koncepcja ma sens przy usługach RPC, nie działają do końca
poprawnie. Dzieje się tak w dużej części z powodu faktu, iż interfejs portmappera nie udostępnia metody
rejestracji różnych portów dla tej samej usługi na różnym adresie lokalnym. Jeśli nie będzie się używało
więcej niż jednego wpisu dla danej usługi RPC, to wszystko powinno działać poprawnie (proszę zauważyć, że
do wierszy RPC bez bezpośredniego określenia adresu ma zastosowanie domyślne wyrażenie określające adres
hosta).
TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl> i
Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z GNU General Public License w wersji 3: https://www.gnu.org/licenses/gpl-3.0.html lub
nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej
manpages-pl-list@lists.sourceforge.net .
Debian February 10, 2020 INETD(8)