table of contents
RLINETD.CONF(5) | rlinetd 0.8.2 | 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, to
domyślną wartością jest INADDR_ANY, która
oznacza nasłuchiwanie na wszystkich dostępnych interfejsach.
Przykład:
exec
interface 192.168.1.1,
192.168.1.2;
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>.21 lutego 2009 | Debian |