table of contents
RLINETD.CONF(5) | rlinetd 0.9 | RLINETD.CONF(5) |
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łania 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
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
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 <dichro-doc@rcpt.to>, a zmodyfikował Robert Luberda <robert@debian.org>.11 listopada 2013 | Debian |