NAZWA
rlientd.conf - plik konfiguracyjny programu rlinetdOPIS
Plik rlinetd.conf zawiera konfigurację programu rlinetd. Składa się on z kilku podobnych do siebie konstrukcji składniowych, różniących się głównie opcjami, których można w nich użyć. Wszystkie łańcuchy znaków powinny być ujęte w znaki ". W pewnych przypadkach (np. dyrektywy log, exec oraz chroot) można używać zmiennych, które zostaną automatycznie rozwinięte....
}
Ta konstrukcja opisuje usługę.
Parametr nazwa służy głównie wygodzie
użytkownika, pozwala na rozróżnianie komunikatów w
pliku logu oraz dostarcza domyślnej wartości opcjom,
które jako argument przyjmują nazwę.
enabled
log "nazwa" {
Ta dyrektywa pozwala w prosty sposób
włączać lub wyłączać
usługę. Argumentem może być albo yes, albo
no. Domyślną wartością jest yes.
Ustawienie tej opcji na no wyłącza usługę.
Przykład:
port
enabled no;
Ustawia listę portów, na
których usługa jest dostępna. Porty można
podać zarówno w formacie tekstowym, jak i numerycznym.
Jeśli nie podano, domyślnie przyjmuje się port
równy nazwie usługi, chyba że usługa jest typu RPC
- w tym przypadku port zostanie dynamicznie nadany przez system.
Przykład:
interface
port "telnet", "rcmd",
56, 99;
Ustawia interfejsy, na których
usługa będzie nasłuchiwać. Jako argument przyjmuje
listę adresów IP odpowiadających adresom skonfigurowanych
w systemie interfejsów sieciowych. Jeżeli nie podano lub
jeśli ustawiono na specjalną wartość any,
to usługa będzie nasłuchiwać na wszystkich
dostępnych interfejsach.
Przykłady:
exec
interface 192.168.1.1, 192.168.1.2;
interface any;
Określa linię poleceń
usługi. Można używać podstawień zmiennych,
patrz Modyfikatory tekstu poniżej.
Przykład:
server
exec "/usr/sbin/in.telnetd
-d";
Podaje program do wykonania, jeżeli
jest różny od exec.
Przykład:
protocol
server
"/usr/sbin/tcpd";
Określa protokół sieciowy
używany do nasłuchiwania na portach usługi. Argumentem
może być albo tcp, albo udp.
Domyślną wartością jest tcp.
Przykład:
user
protocol tcp;
Ustawia identyfikator użytkownika, z
którym usługa będzie uruchomiona. Może być
podany zarówno w formacie tekstowym (jako nazwa użytkownika),
jak i numerycznym. Jeżeli nie ustawiono wartości dyrektywy
group, to grupa jest także ustawiana na podstawową
grupę użytkownika.
Przykład:
group
user "nobody";
Ustawia identyfikator grupy, z którym
usługa będzie uruchomiona. Może być podany
zarówno w formacie tekstowym (jako nazwa grupy), jak i numerycznym.
Przykład:
backlog
group "system";
Określa wartość argumentu
backlog przekazywanego do wywołania systemowego
listen(2).
Przykład:
instances
backlog 30;
Ustawia maksymalną liczbę
instancji usługi, która może być uruchomiona
jednocześnie. Domyślną wartością jest 40.
Przykład:
wait
instances 50;
Ta dyrektywa naśladuje zachowanie
wait demona inetd(8). Argumentem może być albo
yes, albo no. Domyślną wartością
jest no. Ustawienie tej opcji na yes ustawia także
wartość opcji instances na 1.
Przykład:
nice
wait yes;
Określa priorytet procesu, z jakim
usługa zostanie uruchomiona. Argument jest przekazywany
bezpośrednio do wywołania systemowego setpriority(2).
Wartość może być ujemna.
Przykład:
rpc
nice -5;
Określa, że usługa
powinna być zarejestrowana jako usługa RPC w systemowym maperze
portów portmap(8). Dopuszcza następują argumenty:
rpc {
chroot
name "nazwa"; version
3,6,9-15,22;
}
Parametr nazwa jest opcjonalny, a jego domyślną
wartością jest nazwa usługi.Określa główny katalog
usługi. Można używać podstawień zmiennych,
patrz Modyfikatory tekstu poniżej.
Przykład:
log
chroot "/tftpboot/%O";
Ta dyrektywa przyjmuje dwa argumenty.
Pierwszym musi być albo nazwa symboliczna określona poprzednio w
dyrektywie log (patrz niżej), albo słowo syslog. W
tym drugim przypadku do logowania komunikatu będzie wywołana
funkcja biblioteczna syslog(3). Drugim argumentem jest tekst
komunikatu, który będzie logowany. Tekst komunikatu może
zawierać zmienne opisane poniżej w sekcji Modyfikatory
tekstu.
Przykład:
tcpd
log syslog "Zakończono
obsługę klienta z %O";
Dyrektywa włącza stosowanie
kontroli dostępu za pomocą tcp_wrappers. Ma ten sam efekt, co
uruchomienie usługi z argumentem server ustawionym na
/usr/sbin/tcpd (lub gdziekolwiek program tcpd jest
zainstalowany), ale pomija uruchomienie tego programu. Akceptuje do
dwóch dodatkowych parametrów. Pierwszym jest nazwa usług,
do której będą stosowane reguły tcpd, a drugim
jest blok instrukcji do wykonania w przypadku dopasowania. Jeśli nie
podano nazwy, to domyślnie będzie to nazwa
bieżącej usługi. Jeśli nie podano bloku
instrukcji, to domyślną wartością jest
"exit;".
Przykłady:
exit
tcpd "in.telnetd";
tcpd { exec "/usr/local/bin/winnuke %O"; }
tcpd "pointless" { echo "Cześć chłopaki, wejdźcie." ; }
tcpd "bunt" { echo "500 Dostęp z %O zabroniony." ; exit; }
Ta dyrektywa jest użyteczna tylko w
bloku instrukcji będącym argumentem dyrektywy exit. Uwaga
- jeśli nie zostanie użyta (i nie poda się innej
dyrektywy kończącej przetwarzanie, takiej jak exec)
spowoduje, że usługa będzie działać
wiecznie.
Przykład:
capability
exit;
Dyrektywa określa uprawnienia
(capabilities), które proces będzie miał w czasie
działania. Argumentem jest łańcuch znaków
przekazywany bezpośrednio do funkcji cap_from_text(3). Wiem,
że ten opis jest kiepski, jednakże
użyteczność tej dyrektywy i tak nie będzie zbyt
wielka, dopóki użytkownik nie przeczyta pliku
README.capabilities.
Przykład:
rlimit
capability
"cap_setuid=ep";
Ta dyrektywa przyjmuje dwa argumenty. Pierwszy
określa typ żądanego limitu - dostępne typy
są podane niżej. Drugi argument przyjmuje jedną z dwu
postaci, gdyż może być albo pojedynczą
wartością numeryczną, co oznacza ustawienie
zarówno miękkiego, jak i twardego limitu, albo może
być podany następująco:
rlimit type {
initgroups
soft x; hard y;
}
W tym przypadku twardy i miękki limit zostaną odpowiednio
ustawione. W obu przypadkach można użyć wartości
unlimited do usunięcia jakichkolwiek ograniczeń.
Wartości są przekazywane bezpośrednio do wywołania
systemowego setrlimit(2).
Typy:
cpu, fsize, data, stack, core, rss, nproc,
nofile, memlock
Przykład:
rlimit cpu 15;
Argumentem może być yes
lub no. Ta dyrektywa powoduje, że w czasie uruchomiania
usługi zostanie wywołana funkcja initgroups(3),
która ustawia dodatkowe grupy usługi zgodne z plikiem
/etc/group.
Przykład:
family
initgroups yes;
Dyrektywa określa rodzinę
protokołów, w której rlinetd przypisze gniazda dla
usługi. Obecnie może to być albo ipv4, albo
ipv6. Jeśli nie podano, domyślna wartość
zależy od systemu.
Przykład:
banner
family ipv6;
Ta dyrektywa pozwala przesłać
zawartość pliku jako dane wyjściowe
połączenia.
Przykład:
echo
banner "/etc/nologin";
Ta dyrektywa pozwala przesłać
poprzez połączenia dynamicznie wygenerowaną linię
tekstu.
Przykład:
filter
echo "500 Usługa
niedostępna dla Twojego IP (%O)";
Dyrektywa pozwala na podanie programu
filtrowania gniazd do skojarzenia z gniazdem nasłuchiwania. Może
zostać wygenerowany przez narzędzie takie jak lfscc(1).
Przykład:
chargen
filter
"/usr/local/lib/rlinetd/filters/privport";
Dyrektywa powoduje nieskończoną
pętlę wypisywania danych do połączenia.
Jeśli nie podano argumentu, przesyłany jest podzbiór
znaków drukowalnych. Jednakże można podać
nazwę pliku jako argument, co spowoduje przesyłanie w
pętli zawartości tego pliku.
Przykład:
chargen
"/usr/local/lib/spam";
...
}
Ta konstrukcja składniowa opisuje cel
logowania. Parametr nazwa jest używany jako argument dyrektywy
log w sekcjach service.
path
defaults {
Określa ścieżkę do
pliku logu.
Przykład:
mode
path
"/var/log/service.log";
Określa prawa dostępu do pliku
logu. Argument musi być numeryczny i jeśli nie jest podany, to
przyjmuje się 0640 jako wartość domyślną.
Przykład:
user
mode 0600;
Określa właściciela pliku
logu i może zostać podane zarówno jako numeryczne ID, jak
i jako nazwa użytkownika.
Przykład:
group
user "adm";
Określa właściciela pliku
logu i może zostać podane zarówno jako numeryczne ID, jak
i jako nazwa grupy.
Przykład:
group "adm";
...
}
Ta konstrukcja przyjmuje takie same parametry
jak deklaracja usługi (dyrektywa service), ale zamiast
określać usługę, ustawia wartości
domyślna dla wszystkich skonfigurowanych usług.
directory "ścieżka" "pasujące"
"ignorowane";
Składnia określa katalog
zawierający dodatkowe pliki konfiguracyjne do przetworzenia.
Przetwarzanie tych plików rozpocznie się po zakończeniu
przetwarzania bieżącego pliku. Argumenty pasujące
i ignorowane są nieobowiązkowe, a jeśli
zostaną podane, to są używane do filtrowania
plików w podanym katalogu, Nazwy plików muszą
pasować do wyrażenia regularnego pasujące i nie
mogą pasować do wyrażenia regularnego ignorowane.
Pliki zaczynające się od kropki (".") są zawsze
pomijane. Katalogi nie są przetwarzane rekurencyjnie.
Modyfikatory tekstu
Jest kila zmiennych, które mogą być podstawione w argumentach niektórych dyrektyw. Chociaż można ich używać w tych samych miejscach, nie we wszystkich z nich informacje dostarczane przez te zmienne będą dostępne.- %O
- Źródłowy adres IP połączenia.
- %P
- Źródłowy port połączenia.
- %C
- Całkowity użyty czas procesora.
- %U
- Czas procesora spędzony na wywoływaniu funkcji użytkownika.
- %S
- Systemowy czas CPU.
- %r
- Maksymalna ilość pamięci procesu w RAM-ie (resident set size).
- %m
- Rozmiar pamięci współdzielonej.
- %d
- Rozmiar danych niedzielonych.
- %s
- Niedzielony rozmiar stosu.
- %f
- Zwroty stron.
- %F
- Błędy stron.
- %p
- Wymiany.
- %i
- Operacje wejściowe na blokach.
- %o
- Operacje wyjściowe na blokach.
- %n
- Wysłane komunikaty.
- %c
- Odebrane komunikaty.
- %k
- Odebrane sygnały.
- %w
- Dobrowolne zmiany kontekstu.
- %W
- Wymuszone zmiany kontekstu.
- %e
- Kod zakończenia.
- %t
- Czas działania.
- %M
- Bieżący czas podany jako sekundy od początku epoki (1980), przesłany jako 32-bitowa liczba w porządku sieciowym. Nie ma z tego absolutnie żadnego pożytku, z wyjątkiem implementowania funkcjonalności podobnej do tej dostępnej w inetd.
- %I
- Bieżące data i czas w formacie ctime(3).
ZOBACZ TAKŻE
rlinetd(8), hosts_access(5)AUTOR
Ten podręcznik ekranowy napisał Mikolaj J. Habryn <[email protected]>, a zmodyfikował Robert Luberda <[email protected]>.11 listopada 2013 | Debian |