Provided by:
manpages-pl_20060617-1_all 
NAZWA
pppd - Demon protokołu PPP
SKŁADNIA
pppd [ nazwa_tty ] [ szybko ] [ opcje ]
OPIS
Protokół Point-to-Point (PPP) daje metody transmisji datagramów poprzez
szeregowe połączenia punkt-do-punktu. PPP składa się z trzech części:
sposobu enkapsułowania datagramów w połączeniach szeregowych,
rozwiniętego protokołu kontroli połączenia (LCP--Link Control Protocol)
oraz rodziny protokołów kontroli sieciowej (NCP--Network Control
Protocols) służących do zestawiania i konfigurowania różnych protokołów
warstwy sieciowej.
Schemat enkapsułowania jest dawany przez kod sterownika w jądrze. Pppd
daje podstawowe LCP, wsparcie uwierzytelniania i NCP do zestawiania i
konfigurowania IP (nazywa się on IPCP-IP Control Protocol).
CZĘSTO UŻYWANE OPCJE
<nazwa_tty>
Komunikuj się poprzez wskazane urządzenie. Jeśli potrzeba,
doklejany jest tu łańcuch "/dev/". Jeśli nie zostanie podana
nazwa urządzenia, lub jeśli podana jest nazwa terminala
podłączonego do standardowego wejścia, pppd użyje tego terminala
i nie fork(2)nie by wstawić się w tło. Wartość tej opcji
ustawiona w uprzywilejowanym źródle nie może być przeciążona
przez nieuprzywilejowanego użytkownika.
<szybko>
Ustaw szybkość przesyłu na <szybkość> (liczba dziesiętna). Na
systemach takich, jak 4.4BSD czy NETBSD można podać dowolną
szybkość. Inne systemy (np. SunOS) dopuszczają tylko ograniczony
zbiór szybkości.
asyncmap <mapa>
Ustaw mapę znaków async na <mapa>. Mapa ta opisuje, które znaki
sterujace nie mogą być pomyślnie przesyłane poprzez linię
szeregową. Pppd będzie prosił peera o przesyłanie tych znaków
jako dwubajtowe sekwencje specjalne. Argument jest 32 bitową
liczbą szesnastkową, gdzie każdy bit określa znak, który należy
cytować. Bit 0 (00000001) określa znak 0x00; bit 31 (80000000)
określa znak 0x1f lub ^_. Jeśli podanych jest wiele opcji
asyncmap, to wartości są sklejane logicznym OR. Jeśli nie podane
są żadne opcje asyncmap, znaki te w ogóle nie będą negocjowane w
kierunku odbiorczym. Peer powinien wtedy cytować wszystkie
znaki sterujące. Aby cytować przesyłane znaki, użyj opcji
escape.
auth Żądaj od peera uwierzytelnienia przed zezwoleniem na przesyłanie
pakietów sieciowych. Opcja ta jest domyślna, jeśli system ma
trasę domyślną. jeśli nie podano ani tej opcji, ani noauth, pppd
pozwoli jedynie używać peerowi adresów do których system nie ma
jeszcze trasy.
call nazwa
Odczytaj opcje z pliku /etc/ppp/peers/nazwa. Plik ten może
zawierać uprzywilejowane opcje, takie jak noauth, nawet jeśli
pppd nie jest uruchamiane przez roota. Łańcuch nazwa nie może
rozpoczynać się od /, ani zawierać znaków .. jako część ścieżki.
Format pliku z opcjami jest opisany niżej.
connect skrypt
Użyj programu wykonywalnego, podanego przez skrypt do
skonfigurowania linii szeregowej. Skrypt ten zwykle wykorzystuje
program chat(8) do wykręcenia numeru telefonu i rozpoczęcia
zdalnej sesji ppp. Wartość tej opcji ze źródła uprzywilejowanego
nie może być przesłonięta przez nieuprzywilejowanego
użytkownika.
crtscts
Używaj sprzętowego sterowania przepływem (tj. RTS/CTS) do
sterowania przepływem danych na porcie szeregowym. Jeśli nie
zostanie podana ani opcja crtscts, ani nocrtscts czy cdtrcts lub
nocdtrcts, ustawienie sprzętowego sterowania przepływem portu
pozostaje niezmienione. Niektóre porty szeregowe (np. Maca) nie
posiadają prawdziwego wyjścia RTS. Porty takie używają tego
trybu do implementacji jednokierunkowego sterowania przepływem.
Port szeregowy zawiesi transmisję jeśli zażąda tego modem (przez
CTS), lecz nie będzie w stanie zażądać od modemu zaprzestania
nadawania danych do komputera. Tryb ten zachowuje możliwość
używania DTR jako linii kontroli modemu.
defaultroute
Dodaj domyślną trasę do systemowych tablic trasowania, używając
peera jako bramkę po pomyślnym zakończeniu negocjacji IPCP.
Wpis ten [w tablicach routingu] jest usuwany po zerwaniu
połączenia. Opcja ta jest uprzywilejowana w przypadku podania
opcji nodefaultroute.
disconnect skrypt
Wykonaj program skrypt po zakończeniu połączenia ppp. Skrypt ten
może na przykład wysłać komendy, powodujące odwieszenie modemu
gdy niedostępne są sprzętowe sygnały sterowania modemem. Skrypt
rozłączenia nie jest uruchamiany jeśli modem już jest
odwieszony. Wartość tej opcji pochodząca z uprzywilejowanego
źródła nie może być przesłonięta przez nieuprzywilejowanego
użytkownika.
escape xx,yy,...
Określa, że niektóre znaki powinny być podczas transmisji
cytowane (niezależnie czy peer chciał by tak było w swojej mapie
async). Cytowane znaki są podawane jako lista liczb
szesnastkowych, rozdzielonych przecinkami. Zauważ, że prawie
każdy znak można podać w tej opcji. Jest to odwrotnie niż w
opcji asyncmap, gdzie można było podać jedynie znaki sterujące.
Znaki, których nie można cytować to znaki o wartościach
szesnastkowych 0x20 - 0x3f lub 0x5e.
file nazwa
Odczytaj opcje z pliku nazwa (format jest opisany niżej). Plik
ten musi być dostępny dla odczytu dla użytkownka, który
uruchomił pppd.
init skrypt
Uruchom program wykonywalny skrypt do zainicjalizowania linii
szeregowej. Skrypt ten zazwyczaj używa programu chat(8) do
skonfigurowania modemu celem włączenia autoodpowiadania. Wartość
tej opcji, pochodząca z uprzywilejowanego źródła nie może być
przesłonięta przez nieuprzywilejowanego użytkownika.
lock Podaje, że pppd powinien stworzy plik blokujący w stylu UUCP,
aby zapewnić ekskluzywność dostępu do urządzenia szeregowego.
mru n Ustaw MRU [Maximum Receive Unit] na n. Pppd poprosi peera o
przesyłanie pakietów nie większych niż n bajtów. Minimalną
wartością MRU jest 128. Domyślną jest 1500. Zalecana dla wolnych
linii jest wartość 296 (40 bajtów na nagłówek TCP/IP + 256
bajtów danych). (Zauważ, że w IPv6 MRU musi być min. 1280).
mtu n Ustaw MTU [Maximum Transmit Unit] na n. O ile peer nie zażąda
mniejszej wartości poprzez MRU, pppd zażąda by kod sieciowy
jądra wysyłał pakiety nie większe niż n bajtów. (Zauważ, że w
IPv6 MTU musi być min. 1280).
passive
Włącza opcję pasywności LCP. Przy podaniu tej opcji, pppd
spróbuje zapoczątkować połączenie; jeśli nie uzyska odpowiedzi
od peera, to będzie czekać pasywnie na prawidłowy pakiet LCP,
zamiast kończyć działanie, jak to ma miejsce w normalnej
sytuacji.
OPCJE
<lokalny_adres_IP>:<zdalny_adres_IP>
Ustaw lokalny i/lub zdalny adres IP interfejsu. Dowolny z nich
można pominąć. Adres IP może być podawany jako nazwa hosta, lub
w dziesiętnej notacji kropkowej (np. 150.234.56.78). Domyślnym
adresem lokalnym jest (pierwszy) adres IP systemu (o ile nie
podano opcji noipdefault). Zdalny adres (w wypadku niepodania)
jest pobierany od peera. W ten sposób, w prostych przypadkach
opcja ta nie jest wymagana. Jeśli lokalny i/lub zdalny adres IP
został jednak w tej opcji podany, pppd nie przyjmie innej
wartości od peera w negocjacji IPCP, chyba że podano opcje ipcp-
accept-local i/lub ipcp-accept-remote.
ipv6
<identyfikator_lokalnego_interfejsu>,<identyfikator_zdalnego_interfejsu>
Ustaw 64-bitowy identyfikator lokalnego i lub zdalnego
interfejsu. Dowolny z nich można pominąć. Identyfikator musi być
podany w standardowej noracji ascii adresów IPv6 (np:
::dead:beef). Jeśli podana jest opcja ipv6cp-use-ipaddr,
lokalnym identyfikatorem jest lokalny adres IPv4 (patrz wyżej).
Na systemach, obsługujących unikalne stałe ID, można w zamianie
do opisywanej opcji użyć opcji ipv6cp-use-persistent. W
przeciwnym wypadku, identyfikator jest losowany.
active-filter wyraenie-filtru
Określa filtr pakietowy, stosowany do pakietów z danymi w celu
określenia, które pakietu uznać za aktywność linii, a zatem
kiedy kasować licznik bezczynności lub prowadzić połączenie w
stan wymagający telefonowania. Opcja ta jest przydatna w
połączeniu z opcją idle jeśli przez połączenie przesyłane są
regularnie jakieś pakiety (np. pakiety informacji o trasach),
które normalnie uniemożliwiają wejście w stan bezczynności.
Składnia wyraenia-filtru jest taka, jak dla tcpdump(1), lecz
kwalifikatory nie mające sensu w połączeniu PPP, takie jak ether
czy arp nie są dozwolone. Ogólnie, wyrażenie filtru powinno być
ujęte w pojedyncze cytaty, aby uchronić je przed interpretacją
spacji przez powłokę. Opcja ta jest obecnie dostępna tylko pod
NetBSD i to tylko wtedy, gdy jądro i pppd były skompilowane ze
zdefiniowanym PPP_FILTER.
allow-ip adres(y)
Zezwol peerom na używanie podanych adresów IP lub podsieci bez
uwierzytelniania. Parametr jest przetwarzany jak każdy element
listy dozwolonych adresów IP z plików sekretów (zobacz sekcję
UWIERZYTELNIANIE poniżej).
bsdcomp nr,nt
Zażądaj by peer kompresował wysyłane pakiety przy użyciu
mechanizmu BSD-Compress z maksymalnym rozmiarem kodu nr bitów i
zgódź się na kompresowania pakietów wysyłanych do peera z
maksymalnym rozmiarem kodu nt bitów. Jeśli nt nie jest podane,
to domyślnie odpowiada wartości nr. Wartości w zakresie 9 do 15
są typowymi wartościami tych parametrów; większe dają lepszą
kompresję, lecz wymagają więcej pamięci jądra da słowniki
kompresji. Alternatywnie, podanie wartości 0 jako nr lub nt
wyłącza kompresję w danym kierunku. Aby wyłączyć kompresję
całkowicie, użyj nobsdcomp lub bsdcomp 0.
cdtrcts
Użyj niestandardowego sprzętowego sterowania przepływem (np.
DTR/CTS) do sterowania przepływem danych przez port szeregowy.
Jeśli nie podany jest ani crtscts, ani nocrtscts, ani cdtrcts
lub nocdtrcts, ustawienie sprzętowego sterowania przepływem na
danej linii pozostaje niezmienione. Niektóre porty (np. Maca)
nie posiadają prawdziwego wyjścia RTS. Porty takieużywają tego
trybu do implementowania prawdziwego, dwukierunkowego sterowania
przepływem. Poświęceniem jest to, że tryb sterowania przepływem
nie zezwala na używanie DTR jako lnii kontroli modemu.
chap-interval n
Jeśli podana jest ta opcja, pppd będzie wyzywał peera co n
sekund.
chap-max-challenge n
Ustaw maksymalną liczbę transmisji wyzwań CHAP na n (domyślnie
10).
chap-restart n
Ustaw czas opóźnienia wyzwań na n sekund (domyślnie 3).
connect-delay n
Czekaj do n milisekund po zakończeniu skryptu connect na
prawidłowe pakiety ppp od peera. Pod koniec tego czasu lub gdy
od peera nadejdzie prawidłowy pakiet PPP, pppd rozpocznie
negocjację przez przesyłanie pierwszego pakietu LCP. Domyślną
wartością jest 1000 (1 sekunda). Ten czas oczekiwania ma
znaczenie tylko jeśli używana jest opcja connect lub pty.
debug Włącza zabudowę debuggowania połączenia. Po podaniu tej opcji,
pppd raportuje zawartość wszystkich pakietów kontrolnych w
czytelnej postaci. Pakiety są raportowane poprzez sysloga w
zabudowie daemon i poziomie debug. Informacja ta może być
przekierowana do pliku przez poprawne skonfigurowanie
/etc/syslog.conf (zobacz syslog.conf(5)).
default-asyncmap
Wyłącz negocjację asyncmap i wymuś cytowanie wszystkich znaków
sterujących w obu kierunkach.
default-mru
Wyłącz negocjację MRU. Po włączeniu tej opcji, pppd użyje
domyślnej wartości 1500 bajtów.
deflate nr,nt
Żąda by peer kompresował wysyłane pakiety w mechanizmie deflate
z maksymalnym rozmiarem okna 2**nr bajtów i zgodził się na
kompresowanie pakietów wysyłanych do peera z maksymalnym
rozmiarem okna 2**nt bajtów. Jeśli nie podano nt to przyjmowana
jest wartość równa nr. Jako parametry używane są wartości w
zakresie 8 do 15; większe dają lepszą kompesję, lecz zabierają
więcej pamięci na słowniki kompresji. Wartość 0 wyłącza
kompresję w danym kierunku. Kompresję można wyłączyć, stosując
nodeflate lub deflate 0. (Uwaga: pppd preferuje kompresję
deflate nad BSD-compress jeśli peer może i tamto.)
demand Inicjalizuj połączenie tylko na żądanie, tj. gdy istnieje natłok
danych. Przy tej opcji, zdalny adres IP musi być podawany przez
użytkownika w linii poleceń lub w pliku z opcjami. Pppd
początkowo konfiguruje interfejs i otwiera je na dane IP bez
łączenia się z peerem. Gdy pojawią się dane, pppd łączy się z
peerem, dokonuje negocjacji, uwierzytelniania, etc. Gdy jest to
zakończone, pppd rozpoczyna przekazywanie pakietów danych (tj.
pakietów IP) poprzez łącze.
Opcja Idemand implikuje opcję persist. Jeśli zachowanie to nie
jest pożądane, użyj opcji nopersist po opcji demand. W
połączeniu z opcją demand przydatne są też idle i holdoff.
domain d
W celach uwierzytelniania, doklej nazwę domeny d do nazwy hosta
lokalnego. Na przykład, jeśli gethostname() zwraca nazwę porsch,
lecz w pełni kwalifikowaną nazwą domeny jest
porsche.quotron.com, to powinieneś podać domain quotron.com.
Pppd użyje wtedy nazwy porsche.quotron.com do podglądania
sekretów w pliku z sekretami i jako domyślnej nazwy do wysyłania
do peera podczas uwierzytelniania. Opcja ta jest
uprzywilejowana.
hide-password
Podczas raportowania zawartości pakietów PAP, opcja ta powoduje,
że pppd nie załącza do raportu łańcucha z hasłem. Jest to
zachowanie domyślne.
holdoff n
Podaje ile sekund czekać przed ponownym rozpoczęciem połączenia
po jego zakończeniu. Opcja ta ma efekt tylko w połączeniu z
opcjami persist lub demand. Okres holdoff nie jest używany gdy
połączenie zostało zerwane z powodu bezczynności.
idle n Określa, że pppd powinien rozłączyć się jeśli łącze było
bezczynne przez n sekund. Łącze jest bezczynne jeśli nie
przesyłane są przez nie żadne pakiety. Uwaga: nie zaleca się
używania tej opcji z opcjią persist bez opcji demand. Jeśli
podana jest opcja active-filter, odrzucane przez filtr
aktywności pakiety liczą się również jako bezczynne łącze.
ipcp-accept-local
Przy podaniu tej opcji, pppd przyjmuje wyobrażenie peera o
naszym lokalnym adresie IP, nawet jeśli adres lokalny podano
jako opcję.
ipcp-accept-remote
Przy podaniu tej opcji, pppd przyjmuje wyobrażenie peera o jego
(zdalnym) adresie IP, nawet jeśli adres ten podany został jako
opcja.
ipcp-max-configure n
Ustaw maksymalną liczbę transmisji żądania konfiguracji IPCP na
n (domyślnie 10).
ipcp-max-failure n
Ustaw maksymalną liczbę NAK-ów konfiguracji IPCP zwróconych
przed rozpoczęciem wysyłania Odrzuceń konfiguracji na n
(domyślnie 10).
ipcp-max-terminate n
Ustaw maksymalną liczbę transmisji żądań zakończenia IPCP na n
(domyślnie 3).
ipcp-restart n
Ustaw interwał restartu IPCP (czas opóźnienia retransmisji) na n
sekund (domyślnie 3).
ipparam acuch
Daje dodatkowy parametr dla skryptów ip-up i ip-down. Jeśli
podana jest ta opcja, to acuch jest przekazywany jako 6
parametr tych skryptów.
ipv6cp-max-configure n
Ustaw maksymalną liczbę transmisji żądań konfiguracji IPv6CP na
n (domyślnie 10).
ipv6cp-max-failure n
Ustaw maksymalną liczbę NAK-ów konfiguracji IPv6CP, zwracanych
przed rozpoczęciem wysyłania Odrzuceń konfiguracji na n
(domyślnie 10).
ipv6cp-max-terminate n
Ustaw maksymalną liczbę transmisji żądań zakończenia IPv6CP na n
(domyślnie 3).
ipv6cp-restart n
Ustaw interwał restartu IPv6CP (czas opóźnienia retransmisji) na
n sekund (domyślnie 3).
ipx Włącz protokoły IPXCP i IPX. Opcja ta jest obecnie obsługiwana
jedynie pod Linuksem i tylko jeśli jądro ma wsparcie IPX.
ipx-network n
Ustaw numer sieci IPX w ramce żądania konfiguracji IPXCP na n,
liczbę szesnastkową (bez 0x na początku). Nie ma sensownej
wartości domyślnej. Jeśli opcja ta nie jest podana, numer sieci
jest pobierany od peera. Jeśli peer nie ma numeru sieci,
protokół IPX nie zostanie uruchomiony.
ipx-node n:m
Ustaw numery węzła IPX. Dwa numery węzła są rozdzielane od
pozostałych znakiem dwukropka. Pierwszy numer n jest numerem
węzła lokalnego. Drugi jest numerem węzła peera. Każdy numer
węzła musi być liczbą szesnastkową o długości najwyżej 10 cyfr.
Numery węzłów sieci ipx muszą być unikalne. Nie ma sensownej
wartości domyślnej. Jeśli opcja ta nie jest podana, numery
węzłów są pobierane od peera.
ipx-router-name <acuch>
Ustaw nazwę routera. Łańcuch ten jest przesyłany do peera jako
dane informacyjne.
ipx-routing n
Ustaw tą opcją odbierany protokół trasowania. Można podać więcej
niż jedną instancję tej opcji. Opcja none (0) może być podana
jako jedyna instncja tej opcji. Wartościami mogą być 0 (NONE), 2
(RIP/SAP), 4 (NLSP).
ipxcp-accept-local
Przyjmij NAK peera dla numeru węzła podanego w opcji ipx-node.
Jeśli podano niezerowy numer węzła, to domyślnie naciska się na
używanie tej wartości. Jeśli załączasz tę opcję, to zezwalasz
peerowi na przeciążanie wpisu numeru węzła.
ipxcp-accept-network
Przyjmij NAK peera dla numeru sieci podanego w opcji ipx-
network. Jeśli podano niezerowy numer sieci, to domyślnie
naciska się na używanie tej wartości. Jeśli załączasz tę opcję,
to zezwalasz peerowi na przeciążenie wpisu numeru węzła.
ipxcp-accept-remote
Użyj peerowego numeru sieci, podanego w ramce żądania
konfiguracji. Jeśli dla peera podano numer węzła, a tej opcji
nie podano, peer będzie zmuszony do używania wartości, którą
podałeś.
ipxcp-max-configure n
Ustaw maksymalną liczbę ramek żądań konfiguracji IPXCP
wysyłanych przez system na n. Domyślnie 10.
ipxcp-max-failure n
Ustaw maksymalną liczbę ramek NAK IPXCP, którą system wyśle
przed odrzucaniem opcji. Domyślnie 3.
ipxcp-max-terminate n
Ustaw maksymalną liczbę ramek żądań zakończenia zanim system
lokalny uzna, że peer go nie słucha. Domyślnie 3.
kdebug n
Włącz kod debuggowania na poziomie jądra sterownika PPP.
Argument n jest liczbą, która jest sumą następujących wartości:
1 włącza ogólne informacje debuggowe, 2 żąda by drukowana była
zawartość odbieranych pakietów, 4 żąda by drukowana była
zawartość przesyłanych pakietów. Na większości systemów,
komunikaty drukowane przez jądro są raportowane przez syslog(1)
do pliku wskazanego w pliku konfiguracyjnym /etc/syslog.conf.
ktune Powoduje, że pppd poprawia odpowiednio ustawienia jądra. Pod
linuksem pppd w przypadku używania opcji proxyarp włącza
forwardowanie IP (tj. ustawia /proc/sys/net/ipv4/ip_forward na
1) oraz w trybie demand włącza (o ile adres lokalny się zmienia)
opcję dynamicznego adresu IP (tj. ustawia na 1
/proc/sys/net/ipv4/ip_dynaddr).
lcp-echo-failure n
Jeśli podana jest ta opcja, pppd przyjmuje, że peer nie żyje w
momencie gdy n żądań echa LCP zostanie wysłanych bez odpowiedzi
LCP. Jeśli zajdzie ta sytuacja, pppd przerwie połączenie.
Używanie tej opcji wymaga niezerowej wartości parametru lcp-
echo-interval. Opcja ta może być używana do umożliwiania pppd
kończenia działania po zerwaniu fizycznego połączenia (np. po
odwieszeniu słuchawki) w sytuacjach, gdzie nie są dostępne
sprzętowe linię sterowania modemem.
lcp-echo-interval n
Jeśli podana jest ta opcja, pppd do peera będzie wysyłać ramkę
żądania echa LCP co n sekund. Normalnie peer powinien
odpowiedzieć wysyłając odpowiedź na echo. Opcja ta może być
używana w połączeniu z lcp-echo-failure do wykrywania czy peer
jest wciąż podłączony.
lcp-max-configure n
Ustaw maksymalną liczbę transmisji żądań konfiguracji LCP na n.
Domyślnie 10.
lcp-max-failure n
Ustaw maksymalną liczbę NAK-ów konfiguracji LCP, zwracanych
przed rozpoczęciem wysyłania Odrzuceń konfiguracji. Domyślnie
10.
lcp-max-terminate n
Ustaw maksymalną liczbę transmisji żądań zakończenia LCP na n
(domyślnie 3).
lcp-restart n
Ustaw interwał restartu LCP (czas opóźnienia retransmisji) na n
sekund (domyślnie 3).
linkname nazwa
Ustawia logiczną nazwę łacza na nazwa. Pppd utworzy plik o
nazwie ppp-nazwa.pid w /var/run (lub na niektórych systemach w
/etc/ppp), zawierający jego PID. Jest to przydatne do
określania, która instancja pppd jest odpowiedzialna za łącze z
danym peerem. Jest to opcja uprzywilejowana.
local Nie używaj linii sterowania modemem. Przy użyciu tej opcji, pppd
będzie ignorować stan CD (Carrier Detect) i nie będzie zmieniać
stanu DTR (Data Terminal Ready).
logfd n
Wysyłaj informacje raportowe do deskryptora pliku n. Pppd będzie
wysyłać te informacje do najwyżej jednego pliku lub deskryptora
(oraz wysyłaj komunikaty do sysloga), więc opcja ta i logfile są
rozłączne. Domyślną wartością dla pppd jest wysyłanie wiadomości
raportowych na stdout (deskryptor 1), chyba że port szeregowy
jest już na ten deskryptor otwarty.
logfile nazwapliku
Doklejaj komunikaty raportowe do pliku nazwapliku (oraz wysyłaj
komunikaty do sysloga). Plik otwierany jest z prawami
użytkownika, który uruchomił pppd. Otwierany jest w trybie
dopisywania.
login Użyj systemowej bazy haseł do uwierzytelnienia peera z pomocą
PAP i nagraj użytkownika do systemowego pliku wtmp. Zauważ, że
peer musi mieć swój wpis w /etc/ppp/pap-secrets oraz w
systemowej bazie haseł.
maxconnect n
Zakończ połączenie po jego dostępności dla sieci przez n sekund
(tj. n sekund po pierwszym przejściu protokołu kontroli sieci).
maxfail n
Zakończ po n kolejno nieudanych próbach połączenia. Wartość 0
oznacza brak limitów. Domyślną wartością jest 10.
modem Używaj linii sterowania modemem. Opcja ta jest domyślna. Z jej
użyciem, pppd będzie czekać na sygnał CD (Carrier Detect) od
modemu jako zapewnienie otwarcia urządzenia szeregowego (chyba
że podany jest skrypt connect) i opuści DTR (Data Terminal
Ready) gdy połączenie będzie zakończone i przed wywołaniem
skryptu connect. Na ultriksie, opcja ta implikuje sprzętowe
sterowanie przepływem, jak w opcji crtscts.
ms-dns <adr>
Jeśli pppd działa jako serwer klientów MS Windows, opcja ta
umożliwia przekazywanie klientom jednego lub dwóch adresów DNS.
Pierwsze pojawienie się tej opcji określa adres podstawowego
DNS; druga podaje adres drugorzędny. (Opcja ta była obecna w
starszych wersjach pppd pod nazwą dns-addr.)
ms-wins <adr>
Jeśli pppd działa jako serwer dla MS Windows lub dla klientów
"Samby", to opcja ta umożliwia pppd przekazywanie jednego lub
dwóch adresów serwerów WINS (Windows Internet Name Services) dla
klientów. Pierwsze pojawienie tej opcji określa podstawowy adres
WINS; drugie--drugorzędny.
name nazwa
Ustaw nazwę systemu lokalnego na nazwa. Jest to wykorzystywane w
celach uwierzytelniania. Jest to opcja uprzywilejowana. Po jej
włączeniu, pppd uzywa w plikach sekretów linii, które mają nazw
jako drugie pole linii. Tylko tych linii używa do
uwierzytelniania peera. Dodatkowo, jeśli nie zostanie to
przesłonięte opcją user, nazwa będzie używana jako nazwa
wysyłana do peera podczas uwierzytelniania lokalnego systemu u
peera. (Zauważ, że pppd nie dokleja do nazwy nazwy domeny.)
netmask n
Ustaw maskę sieciową interfejsu na n, tj. 32 bitową maskę w
kropkowej notacji dziesiętnej (np. 255.255.255.0). Jeśli podana
jest ta opcja, to wartość jej zostanie połączona logicznym OR z
domyślną maską sieciową. Domyślna maska sieciowa jest wybierana
według wynegocjowanego zdalnego adresu IP; jest maską
odpowiednią dla klasy zdalnego adresu IP, połączoną logicznym OR
z maskami sieciowymi wszelkich interfejsów sieciowych point-to-
point systemu, znajdujących się w tej samej sieci. (Uwaga: na
niektórych platformach pppd zawsze jako maski sieciowej używa
255.255.255.255 jeśli jest to jedyna wartość odpowiednia dla
intefejsu point-to-point.)
noaccomp
Wyłącz kompresję Address/Control w obydwu kierunkach (nadawania
i odbioru).
noauth Nie wymagaj od peera uwierzytelniania. Opcja ta jest
uprzywilejowana.
nobsdcomp
Wyłącza kompresję BSD-Compress; pppd nie będzie żądać lub
zgadzać się na kompresowanie pakietów wg. tego schematu.
noccp Wyłącz negocjację CCP (Compression Control Protocol). Opcja ta
powinna być używana jedynie jeśli peer jest zapchlony i nie
potrafi obsłużyć żądań pppd o negocjację CCP.
nocrtscts
Wyłącz sprzętowe sterowanie przepływem (RTS/CTS) portu
szeregowego. Jeśli nie jest podane crtscts, nocrtscts, cdtrcts,
ani nodtrcts, sprzętowe sterowanie przepływem nie jest
zmieniane.
nodtrcts
Opcja ta jest synonimem nocrtscts. Dowolna z tych opcji wyłącza
obydwie postaci sterowania przepływem.
nodefaultroute
Wyłącz opcję defaultroute. Jeśli administrator chce zabronić
użytkownikom tworzenia przez pppd domyślnych tras, to może
umieścić tę opcję w pliku /etc/ppp/options.
nodeflate
Wyłącza kompresję Deflate; pppd nie zażąda i nie zgodzi się na
kompresję pakietów wg tego schematu.
nodetach
Nie odłączaj się od terminala sterującego. Bez tej opcji, w
przypadku podania urządzenia szeregowego innego niż terminal
standardowego wejścia, pppd fork(2)nie by przejść w tło.
noip Wyłącz negocjację IPCP i komunikację IP. Opcja ta powinna być
używana tylko jeśli peer ma błędy i nie potrafi obsłużyć żądań
negocjacji IPCP.
noipv6 Wyłącz negocjację IPv6CP i komunikację IPv6. Opcja ta powinna
być używana tylko jeśli peer ma błędy i nie potrafi obsłużyć
żądań negocjacji IPv6CP.
noipdefault
Wyłącza domyślne zachowania gdy nie jest podany lokalny adres
IP, którym jest określenie (jeśli się da) lokalnego adresu IP z
nazwy hosta. Po użyciu tej opcji, peer będzie musiał przekazać
lokalny adres IP podczas negocjacji IPCP (chyba że podano go
jawnie w linii poleceń lub w pliku z opcjami).
noipx Wyłącz protokoły IPXCP i IPX. Opcja ta powinna być używana tylko
jeśli peer ma błędy i nie potrafi obsłużyć żądań negocjacji
IPXCP.
noktune
Przeciwieństwo opcji ktune; nie zezwala pppd na zmianę ustawień
systemowych.
nolog Nie wysyłaj komunikatów raportowych do pliku lub deskryptora.
Opcja ta unieważnia opcje logfd i logfile. nomagic Wyłącz
negocjację magicznych numerków. Po włączeniu tej opcji, pppd nie
potrafi wykryć linii zapętlonej (looped-back). Opcja ta powinna
być używana tylko jeśli peer ma błędy.
nopcomp
Wyłącz negocjację kompresji pól protokołu w obydwu kierunkach
transmisji.
nopersist
Zakończ po dokonaniu i przerwaniu połączenia. Jest to wartość
domyślna, chyba że użyto opcji persist lub demand.
nopredictor1
Nie przyjmuj kompresji Predictor-1.
noproxyarp
Wyłącz opcję proxyarp. Administrator może w ten sposób zabronić
użytkownikom tworzenia wpisów proxy ARP. Wystarczy umieścić tę
opcję w pliku /etc/ppp/options.
notty Normalnie pppd wymaga urządzenia terminalowego. Po użyciu tej
opcji, pppd alokuje sobie parę master-slave pseudo-tty i używa
niewolnika jako urządzenie terminalowe. Pppd utworzy proces
potomny, zachowujący się jako `przetaczacz znaków', przesyłający
znaki między masterem pseudo-tty i jego standardowym wejściem i
wyjściem. W efekcie, pppd będzie przesyłać znaki na swoje
standardowe wyjście i odbierać je ze swojego standardowego
wejścia nawet, jeśli nie są one urządzeniami terminalowymi.
Opcja ta zwiększa oczywiście zajętość CPU. Przy użyciu tej opcji
nie można podawać jawnej nazwy urządzenia.
novj Wyłącz kompresję nagłówków TCP/IP w stylu Van Jacobsona. Tyczy
się obu kierunków transmisji.
novjccomp
Wyłącz opcję kompresji ID-połączenia w kompresji nagłówka TCP/IP
w stylu Van Jacobsona. Opcja ta powoduje, że pppd ani peer nie
będą omijać bajtu ID-połączenia w skompresowanych Van
Jacobsonowo nagłówkach TCP/IP.
papcrypt
Wskazuje, że wszystkie sekrety z pliku /etc/ppp/pap-secrets,
używane do sprawdzania tożsamości peera są zakodowane i w
związku z tym pppd nie powinien przyjmować haseł, które przed
zakodowaniem są równoważne sekretom z pliku /etc/ppp/pap-
secrets.
pap-max-authreq n
Ustaw maksymalną luczbę transmisji żądań uwierzytelnienia PAP na
n. Domyślnie 10.
pap-restart n
Ustaw interwał restartu PAP (czas opóźnienia retransmisji) na n
sekund. Domyślnie 3.
pap-timeout n
Ustaw maksymalny czas, przez który pppd ma oczekiwać na
uwierzytelnienie od peera z pomocą PAP. Czas w sekundach, 0
oznacza brak limitu.
pass-filter wyraenie-filtru
Określa filtr pakietowy, załączany do przesyłanych pakietów
danych w celu określenia, które pakiety mogą przepłynąć. Pakiety
odrzucane przez filtr są po cichu niszczone. Opcja ta może być
używana w celu uchronienia pewnych demonów sieciowych (jak
routed) od używania pasma uplinka lub do zestawienia
podstawowych elementów zapory ogniowej. Składnia wyraenia-
filtru jest taka jak dla tcpdump(1), lecz kwalifikatory
nieodpowiednie dla połączenia PPP, takie jak ether czy arp nie
są dozwolone. Ogólnie, wyrażenie filtru powinno być ujęte w
pojedyncze cudzysłowy celem zapobieżenia interpretacji przez
powłokę. Zauważ, że możliwe jest załączenie różnych przymusów
na wchodzące i wychodzące pakiety z użyciem kwalifikatorów
inbound i outbound. Opcja ta jest obecnie dostępna jedynie pod
NetBSD, a i to tylko w wypadku, gdy jądro i pppd zostały
skompilowane ze zdefiniowanym PPP_FILTER.
persist
Nie kończ działania po zakończeniu połączenia. Zamiast tego
spróbuj wznowić połączenie.
plugin nazwapliku
Załaduj plik obiektowy nazwapliku biblioteki dzielonej jako
plugin. Jest to opcja uprzywilejowana.
predictor1
Zażądaj by peer używał kompresjii Predictor-1 i zgódź się na
wysyłanie ramek podobnie skompresowanych o ile takie będzie
życzenie. Opcja ta nie daje żadnego efektu jeśli jądro nie
obsługuje kompresji Predictor-1.
privgroup nazwagrupy
Zezwol członkom grupy nazwagrupy na używanie uprzywilejowanych
opcji. Jest to opcja uprzywilejowana. Używanie jej wymaga
uwagi, gdyż nie można zapewnić, że członkowie danej grupy nie
spróbują użyć pppd w celu uzyskania praw roota. Uznaj to za
równoważne wstawieniu członków danej grupy do grupy kmem lub
disk.
proxyarp
Dodaj wpis do tablicy ARP [Address Resolution Protocol] tego
systemu. Ma on zawierać adres IP peera i adres ethernetowy tego
systemu. Będzie to miało efekt taki, że peer dla innych systemów
będzie wyglądał jak na lokalnym ethernecie.
pty skrypt
Określa polecenie skrypt, jako ośrodek komunikacji zamiast
konkretnego urządzenia terminalowego. Pppd zaalokuje sobie parę
master-slave pseudo-tty i użyje niewolnika jako swojego
urządzenia terinalowego. skrypt zostanie uruchomiony w procesie
potomnym z masterem pseudo-tty jako swoim standardowym wejściem
i wyjściem. Przy używaniu tej opcji nie można podawać jawnej
nazwy urządzenia. (Uwaga: jeśli w połączeniu z tą, użyta jest
opcja record, proces potomny będzie miał łącza na swoim
stadardowym wejściu i wyjściu.)
receive-all
Po użyciu tej opcji, pppd będzie przyjmował wszystkie znaki
sterujących od peera, łącznie z tymi zaznaczonymi w asyncmapie
odbiorczej. Bez tej opcji, pppd będzie niszczył te znaki,
zgodnie z RFC1662. Opcja ta powinna być używana tylko jeśli peer
jest zapchlony.
record nazwapliku
Podaje, że pppd powinien nagrywać wszystkie wysyłane i odbierane
znaki do pliku o nazwie nazwapliku. Plik ten jest otwierany w
trybie dopisywania, z użyciem ID użytkownika i jego
uprawnieniami. Opcja ta jest zaimplementowana z użyciem pseudo-
tty i procesu do przesyłania znaków między pseud-tty a
prawdziwym urządzeniem szeregowym. Powoduje ona więc wzrost
obciążenia CPU. Znaki są wybierane w formacie oznaczonym
pieczątkami czasowymi, które mogą być wyświetlane w czytelnej
postaci z użyciem programu pppdump(8).
remotename nazwa
Ustaw zakładaną nazwę zdalnego systemu w celu uwierzytelniania
na nazw.
refuse-chap
Po podaniu tej opcji, pppd nie zgodzi się na uwierzytelnianie
się u peera z pomocą CHAP.
refuse-pap
Po podaniu tej opcji, pppd nie zgodzi się na uwierzytelnianie
się u peera z pomocą PAP.
require-chap
Wymagaj od peera uwierzytelnienia się z pomocą CHAP [Challenge
Handshake Authentication Protocol].
require-pap
Wymagaj od peera uwierzytelnienia się z pomocą PAP [Password
Authentication Protocol].
show-password
Podczas logowania zawartości pakietów PAP opcja ta powoduje, że
pppd pokazuje w łańcuchach raportowych hasła.
silent Po podaniu tej opcji, pppd nie będzie przesyłać pakietów LCP do
rozpoczęcia połączenia przed odebraniem od peera prawidłowego
pakietu LCP (jak dla opcji `passive' w starożytnych opcjach
pppd).
sync Użyj synchronicznego kodowania szeregowego HDLC zamiast
asynchronicznego. Urządzenie używane przez pppd musi mieć
obsługę synchroniczną. Obecnie pod linuksem i FreeBSD 2.2.8 i
późniejszych wspierane są adaptery Microgate SyncLink.
updetach
Po podaniu tej opcji, pppd odłączy się od terminala sterującego
po zestawieniu połączenia ppp (do momentu kiedy pojawi się
pierwszy kontrolny protokół sieciowy, zwykle protokół IP).
usehostname
Wymuś użycie nazwy hosta (z dodana ewentualnie nazwą domeny)
jako nazwy systemu lokalnego w celach uwierzytelniania
(przesłania opcję name). Opcja ta nie jest zwykle potrzebna,
gdyż opcja name jest uprzywilejowana.
usepeerdns
Zapytaj peera o dwa serwery DNS. Adresy przekazane przez peera
są przekazywane od peera do pliku /etc/ppp/ip-up przez zmienne
środowiskowe DNS1 i DNS2. Dodatkowo, pppd utworzy plik
/etc/ppp/resolv.conf, zawierający jedną lub dwie linie z
adresami, przekazanymi przez peera.
user nazwa
Ustaw nazwę używaną do uwierzytelniania systemu lokalnego u
peera na nazw.
vj-max-slots n
Ustawia liczbę slotów połączeń, używanych w kodzie kompresji
nagłówka TCP/IP Van Jacobsona. Liczba musi zawierać się między 2
a 16 (włącznie).
welcome skrypt
Uruchom program skrypt przed rozpoczęciem negocjacji PPP, ale po
skrypcie connect. Wartość tej opcji nadana z uprzywilejowanego
źródła nie może byc przeciążona przez nieuprzywilejowanego
użytkownika.
xonxoff
Włącz programowe sterowanie przepływem (XON/XOFF).
PLIKI Z OPCJAMI
Opcje mogą być pobierane z linii poleceń lub z plików. Pppd odczytuje
je z plików /etc/ppp/options, ~/.ppprc i z /etc/ppp/options.nazwatty (w
tej kolejności) przed przetworzeniem opcji z linii poleceń. (W
rzeczywistości, opcje linii poleceń są skanowane w celu znalezienia
nazwy terminala przed odczytem options.nazwatty.) Przy formowaniu nazwy
pliku options.nazwatty, usuwany jest przedrostek /dev/,a wszelkie
dodatkowe znaki / są zamieniane na kropki.
Plik z opcjami jest analizowany jako seria słów, rozdzielonych białymi
spacjami. Białe spacje mogą być załączane do słowa przez ujęcie całości
w podwójne cudzysłowy ("). Lewy ukośnik może cytować następujący po nim
znak. Znak krzyżyka (#) rozpoczyna komentarz, trwający aż do końca
linii. Nie ma ograniczeń w używaniu opcji file lub call w pliku z
opcjami.
BEZPIECZEŃSTWO
pppd udostępnia administratorom wydajną kontrolę dostępu dla
określonych użytkowników, bez strachu o poświęcanie bezpieczeństwa
serwera lub sieci, w ktrej się znajduje. Kontrola ta polega na
ograniczaniu adresów IP, jakie może mieć peer, zależnie od
identyfikacji i ograniczeń co do opcji, których może używać
nieuprzywilejowany użytkownik. Różne opcje pppd są uprzywilejowane--są
to głównie opcje, które mogą wprowadzać zagrożenia w konfiguracji;
opcje te mogą być przyjmowane jedynie z plików znajdujacych się pod
kontrolą administratora systemu lub gdy pppd jest uruchamiane z poziomu
roota.
Domyślnym zachowaniem pppd jest zezwalanie nieuwierzytelnionemu peerowi
na używanie danego adresu IP tylko jeśli system nie ma jeszcze trasy do
tego adresu. Na przykład, system o stałym połączeniu do szerszego
internetu normalnie ma trasę domyślną, więc wszystkie peery muszą się
uwierzytelnić aby zestawić połączenie. Na takim systemi opcja auth jest
domyślna. Z drugiej strony, system gdzie łącze ppp jest jedynym
połączeniem do internetu normalnie nie ma trasy domyślnej, więc peer
będzie w stanie używać prawie dowolnego adresu IP bez uwierzytelniania.
Jak wykazano wyżej, niektóre opcje bezpieczeństwa są uprzywilejowane,
co znaczy, że nie mogą być używane przez zwykłego użytkownika
uruchamiającego suid-root pppd--czy to z linii poleceń czy z pliku
~/.ppprc czy z opcji file. Opcje uprzywilejowane mogą być używane w
pliku /etc/ppp/options lub w dowolnym pliku z opcjami, odczytywanym
opcją call. Jeśli pppd jest używane przez roota, opcje uprzywilejowane
mogą być używane bez ograniczeń.
Przy otwieraniu urządzenia pppd używa ID wołąjącego użytkownika lub UID
roota (tj. 0), zależnie czy nazwa urządzenia została podana przez
użytkownika czy administratora. Jeśli nazwa pochodzi ze źródła
uprzywilejowanego, tj. z /etc/ppp/options lub z pliku z opcjami,
odczytanego przy użyciu opcji call, pppd używa pełnych praw roota do
dostępu do urządzenia. Tak więc tworzenie odpowiedniego pliku w
/etc/ppp/peers umożliwia administratorowi zezwolenie użytkownikom na
zestawianie połączeń ppp poprzez urządzenie, do którego normalnie nie
mieliby prawa dostępu. W przeciwnym wypadku, pppd używa przy otwieraniu
urządzenia rzeczywistego UID użytkownika.
UWIERZYTELNIANIE
Uwierzytelnianie jest procesem przekonywania przez peera drugiej strony
o swojej tożsamości. Wymaga to wysłania najpierw przez peera swojej
nazwy wraz z informacją sekretną, która może pochodzić tylko od
autoryzowanego użytkownika o tej nazwie. W takiej wymianie pierwszego
peera nazywa się "klientem", a drugiego "serwerem". Klient ma nazwę
która określa go dla serwera, a serwer ma również nazwę, która określa
go dla klienta. Ogólnie, klient dzieli pewien sekret (lub hasło) z
serwerem i uwierzytelnia się poprzez udowodnienie, że zna sekret.
Często nazwy używane w uwierzytelnianiu odpowiadają internetowym nazwom
hostów peerów, lecz nie jest to konieczne.
Obecnie pppd obsługuje dwa protokoły uwierzytelniania: PAP i CHAP. PAP
powoduje, że klient wysyła swoją nazwę oraz hasło do serwera. CHAP
natomiast powoduje, że serwer wysyła klientowi wezwanie (pakiet
wezwania zawiera nazwę serwera). Klient musi odpowiedzieć słowami,
zawierającymi nazwę plus wartość hash, wyciągniętą z dzielonego sekretu
i wezwania, udowadniając w ten sposób, że zna sekret.
Protokół PPP, będąc symetrycznym, umożliwia obydwu peerom wymaganie
uwierzytelnienia siebie nawzajem. W tym wypadku następują dwie
oddzielne i niezależne wymiany pakietów uwierzytelniających. Obydwie
wymiany mogą używać różnych protokołów uwierzytelniania i, w ogólności,
można w nich używać różnych nazw.
Domyślnym zachowaniem pppd jest zgoda na uwierzytelnienie po zażądaniu
i nie wymaganie uwierzytelnienia od peera. Jednak pppd nie zgodzi się
na uwierzytelnienie się w konkretnym protokole jeśli nie ma sekretów,
których mógłby w tym celu użyć.
Pppd przechowuje swoje sekrety w plikach sekretów (/etc/ppp/pap-secrets
dla PAP i /etc/ppp/chap-secrets dla CHAP). Obydwa pliki sekretów mają
ten sam format. Pliki te mogą zawierać sekrety dla pppd, używane przy
uwierzytelnianiu się dla innych systemów oraz sekrety dla pppd, używane
przy uwierzytelnianiu innych systemów dla nas.
Każda linia pliku sekretów zawiera jeden sekret. Dany sekret jest
specyficzny dla danej konfiguracji klienta/serwera - może być używana
tylko przez tego klienta do uwierzytelnienia się przed tym serwerem. Z
tego powodu każda linia ma trzy pola: nazwę klienta, serwera oraz
sekret. Za polami tymi może nastąpić lista adresów IP, których dany
klient może użyć po połączeniu z danym serwerem.
Plik z sekretami jest analizowany jako słowa, jak plik z opcjami, więc
nazwa klienta, serwera i sekretów muszą być pojedynczymi słowami, gdzie
osadzone spacje lub znaki specjalne można cytować lub ujmować w
cudzysłowy. Zauważ, że rozmiar liter jest w przypadku nazw klienta i
serwera oraz sekretu istotny.
Jeśli sekret rozpoczyna się od `@', to reszta jest rozumiana jako nazwa
pliku, z którego odczytać sekret. "*" jako klient lub serwer odpowiada
dowolnej nazwie. Podczas wybierania sekretu pppd wybiera najlepsze
dopasowanie, tj. dopasowanie wykorzystujące najmniej jokerów.
Wszelkie następujące słowa tej samej linii są uważane za listę adresów
IP dopuszczalnych dla klienta. Jeśli dane są tylko 3 słowa, lub jeśli
pierwszym słowem jest "-", to zabronione są wszystkie adresy IP. Aby
udostępnić dowolny adres, użyj "*". Słowo rozpoczynające się od "!"
wskazuje, że podany adres nie jest dopuszczalny. Adres może mieć na
końcu "/" i liczbę n, określającą całą podsieć, tj. wszystkie adresy,
mające taką samą wartość w najbardziej znaczących n bitach. W tej
postaci adres może mieć na końcu znak plus ("+"), określający, że jeden
z adresów podsieci jest autoryzowany w oparciu o numer używanej
jednostki sieciowego interfejsu ppp. W tym przypadku część hosta
adresu będzie ustawiana na numer jednostki plus jeden.(???)
W ten sposób plik z sekretami zawiera sekrety używane do
uwierzytelniania siebie u innych i innych u siebie. Gdy pppd
uwierzytelnia peera (sprawdzając jego tożsamość), wybiera sekrety,
zawierające nazwę peera w pierwszym polu i nazwę systemu lokalnego w
drugim. Nazwa systemu lokalnego odpowiada nazwie hosta z doklejoną
nazwy domeny przy użyciu opcji domain. To domyślne zachowanie można
przeciążyć opcją name, poza przypadkiem użycia opcji usehostname.
Gdy pppd wybiera sekret używany do uwierzytelnienia się u peera,
najpierw określa, jakiej nazwy użyć do przedstawienia się peerowi.
Nazwa ta może być podana przez użytkownika opcją user. Jeśli opcja ta
nie jest użyta, nazwa odpowiada nazwie systemu lokalnego, określanej
jak opisano w poprzednim paragrafie. Następnie pppd szuka sekretów o
tej nazwie w pierwszym polu i o nazwie peera w drugim. Pppd pozna nazwę
peera w mechanizmie CHAP gdyż ten wyśle ją w pakiecie wyzwania. Jednak
jeśli używany jest PAP, pppd będzie musiał określić nazwę peera z opcji
podanych przez użytkowika. Użytkownik może określić nazwę peera
bezpośrednio opcją remotename. W przeciwnym wypadku, jeśli adres IP
zdalnego hosta podano nazwą (a nie numerycznie), to zostanie użyta ta
nazwa peera. Gdy to się nie powiedzie, pppd użyje łańcucha zerowego
jako nazwy peera.
Podczas uwierzytelniania peera przez PAP, przekazane hasło jest
najpierw porównywane z sekretem z pliku sekretów. Jeśli hasło nie
pasuje do sekretu, to jest ono kodowane z użyciem crypt() i porównywane
raz jeszcze. W ten sposób, sekrety uwierzytelniające mogą być
przechowywane w postaci zaszyfrowanej. Jeśli podana jest opcja
papcrypt, pierwsze sprawdzenie (bez szyfrowania) jest pomijane.
Co więcej, jeśli podana była opcja login, nazwa użytkowika i hasło są
sprawdzane również według systemowej bazy haseł. W rezultacie,
administrator systemu może skonfigurować plik sekretów pap na
zezwolenie dostępu do PPP jedynie dla określonych użytkowników i
ograniczyć zestaw adresów IP, które każdy z użytkowników może
wykorzystać. Zazwyczaj przy użyciu opcji login, sekret w /etc/ppp/pap-
secrets wynosi "", co pasuje do dowolnego hasła, przekazanego przez
peera. Zapobiega to potrzebie posiadania tego samego sekretu w dwóch
miejscach.
Uwierzytelnianie musi być zakończone przed IPCP (lub dowolnym innym
NCP). Jeśli peer musi się uwierzytelnić, a nie uda się mu to, pppd
zakończy połączenie (zamykając LCP). Jeśli IPCP wynegocjuje
niedopuszczalny adres IP dla hosta zdalnego, IPCP zostanie zamknięte.
Pakiety IP mogą być przesyłane tylko jeśli IPCP jest otwarte.
W niektórych przypadkach oczekiwane jest umożliwienie niektórym hostom,
które nie mogą się uwierzytelnić połączenie i używanie ograniczonego
zbioru adresów IP, nawet jeśli lokalny host ogólnie wymaga
uwierzytelnienia. Jeśli peer odmówi uwierzytelnienia po takim żądaniu,
pppd bierze to za równoważność uwierzytelnienia przy użyciu pustego
łańcucha nazwy użytkownika i hasła. W ten sposób, dodając linię
sekretów z pustym klientem i hasłem, można umożliwić ograniczony dostęp
dla hostów, które nie chcą się uwierzytelnić.
ROUTING
Po pomyślnym zakończeniu negocjacji IPCP pppd poinformuje jądro o
lokalnym i zdalny adresie IP interfejsu ppp. Jest to wystarczający
zabieg do utworzenia trasy do zdalnego końca połączenia, co umożliwia
peerom wymianę pakietów IP. Komunikacja z innymi maszynami wymaga w
ogólności dalszych modyfikacji tablic routingu i/lub tablic ARP. W
większości wypadków wystarczające są opcje defaultroute i/lub proxyarp,
lecz w niektórych wypadkach wymagana jest dalsza interwencja. Można do
tego wykorzystać skrypt /etc/ppp/ip-up.
Czasami wymagane jest dodanie domyślnej trasy poprzez zdalny host, jak
w wypadku maszyny, której jedynym połączeniem z internetem jest
interfejs ppp. Opcja defaultroute powoduje, że pppd tworzy taką
domyślną trasę po pojawieniu IPCP i kasuje ją po zakończeniu
połączenia.
W niektórych przypadkach wymagane jest użycie proxy ARP, np. na
maszynie serwerowej podłączonej do LAN, aby reszta hostów mogła
komunikować się ze zdalnym hostem. Opcja proxyarp powoduje, że pppd
szuka interfejsu sieciowego o tej samej podsieci co zdalny host
(interfejs obsługujący broadcast i ARP, który jest włączony i nie jest
interfejsem ppp lub loopback). Po znalezieniu, pppd tworzy perrmanentny
publikowany wpis ARP z adresem IP zdalnego hosta i adresem sprzętowym
znalezionego interfejsu sieciowego.
Gdy używana jest opcja demand, adresy IP są już ustawione przy
pojawieniu IPCP. Jeśli pppd nie było w stanie wynegocjować tego samego
adresu, którego używało do konfiguracji interfejsu (np. gdy peer jest
ISP, używającym dynamicznych IP), pppd musi zmienić adresy interfejsu
IP na wynegocjowane. Może to zniszczyć istniejące połączenia i używanie
tego typu wydzwaniania z dynamicznymi peerami nie jest zalecane.
PRZYKŁADY
Następujące przykłady zakładają, że plik /etc/ppp/options zawiera opcję
auth (jak w domyślnym pliku /etc/ppp/options w dystrybucji ppp).
Prawdopodbnie najpopularniejszym zastosowaniem pppd jest wykręcanie
numeru ISP. Może to być dokonywane poleceniem takim, jak
pppd call isp
gdzie plik /etc/ppp/peers/isp jest skonfigurowany przez administratora
systemu na zawieranie czegoś w rodzaju:
ttyS0 19200 crtscts
connect '/usr/sbin/chat -v -f /etc/ppp/chat-isp'
noauth
W tym przykładzie używamy chat(8) do wykręcenia numeru ISP i
przechodzimy przez wymaganą sekwencję logowania. Plik /etc/ppp/chat-isp
zawiera skrypt używany przez chat; może na przykład zawierać coś w
rodzaju
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
ABORT "Username/Password Incorrect"
"" "at"
OK "at&d0&c1"
OK "atdt2468135"
"name:" "^Umyuserid"
"word:" "\qmypassword"
"ispts" "\q^Uppp"
"~-^Uppp-~"
Dla dalszych szczegółów obejrzyj stronę podręcznika do chat(8).
Pppd może również być używane do udostępniania usługi dial-in dla
użytkowników. Jeśli użytkownicy mają już konta, to najprostszym
sposobem skonfigurowania usługi ppp jest zezwalanie użytkownikom na
logowanie się na ich konta i uruchamianie pppd z pomocą komendy takiej,
jak
pppd proxyarp
Aby umożliwić użytkownikowi używanie zabudowy PPP, musisz zaalokować
adres IP dla maszyny użytkowika i utworzyć wpis w /etc/ppp/pap-secrets
lub /etc/ppp/chap-secrets (zależnie od metody uwierzytelniania,
preferowanej przez użytkownika), aby użytkownik mógł się uwierzytelnić.
Na przykład, jeśli Joe ma maszynę o nazwie "joespc", która może
wdzwaniać się na maszynę o nazwie "server" i używać adresu IP
joespc.my.net, to w pliku z sekretami należy umieścić następujący wpis:
joespc server "joe's secret" joespc.my.net
Alternatywnie możesz utworzyć użytkownika o nazwie (np.) "ppp", którego
powłoką zgłoszeniową jest pppd i którego katalogiem domowym jest
/etc/ppp. Opcje używane przez pppd w takim trybie mogą być wstawione
do /etc/ppp/.ppprc.
Jeśli twoje połączenie szeregowe jest trochę bardziej złożone niż
kawałek kabla, to możesz być zmuszonym zaaranżować jakieś znaki
sterujące do cytowania. Na przykład często przydatne jest cytowanie XON
(^Q) i XOFF (^S) przy użyciu asyncmap a0000. Jeśli ścieżka zawiera
telneta, to prawdopodobnie powinieneś również cytować ^] (asyncmap
200a0000). Jeśli ścieżka zawiera rlogin, to na końcówce rloginowej
powinieneś używać opcji escape ff, gdyż wiele implementacji rlogin nie
jest przezroczystych; usuwają one sekwencje [0xff, 0xff, 0x73, 0x73,
plus dowolnych osiem bajtów] ze strumienia.
DIAGNOSTYKA
Komunikaty są przesyłane do demona sysloga przy użyciu zabudowy
LOG_DAEMON. (Może to być przesłonięte przez rekompilowanie pppd z
makrem LOG_PPP przedefiniowanym na pożądaną zabudowę.) Aby zobaczyć
komunikaty o błędach i debuggowe, musisz wyedytować plik
/etc/syslog.conf tak, aby przekierowywał komunikaty na określone
urządzenie wyjściowe lub plik.
Opcja debug powoduje, że zawartość wszystkich przesyłanych pakietów
kontrolnych jest raportowana. Tzn. wszystkie pakiety LCP, PAP, CHAP lub
IPCP. Może to być przydatne jeśli negocjacja ppp się nie powodzi lub
jeśli zawodzi uwierzytelnianie. Jeśli debuggowanie jest włączone
podczas kompilacji, opcja debug powoduje również raportowanie innych
komunikatów debuggowych.
Debuggowanie może być też włączone lub wyłączone przez wysłanie do
procesu pppd sygnału SIGUSR1. Sygnał ten działa jak przełącznik.
KOD WYJŚCIA
Kod wyjścia pppd jest ustawiany do wskazania czy zaszedł błąd lub
pokazania powodu zakończenia połączenia. Dopuszczalne wartości to:
0 Pppd odłączyło się od terminala, lub też połączenie zostało
pomyślnie zestawione i zakończone na żądanie peera.
1 Zaistniajł jakiś błąd krytyczny, taki jak niepowodzenie
podstawowego wywołania systmowego czy brak pamięci.
2 W przetwarzaniu podanych opcji wykryto błąd, np. użyto dwóch
wykluczających się opcji.
3 Pppd nie jest suid-root, a wołający użytkownik nie jest rootem.
4 Jądro nie daje wsparcia ppp, tj. sterownik ppp jądra nie jest
załączony lub nie może zostać załadowany.
5 Pppd zakończyło działanie przez SIGINT, SIGTERM lub SIGHUP.
6 Port szeregowy nie mógł zostać zablokowany.
7 Port szeregowy nie mógł zostać otwarty.
8 Skrypt connect się nie powiódł (zwrócił niezerowy kod wyjścia).
9 Polecenie podane jako argument opcji pty nie mogło zostać
uruchomione.
10 Negocjacja PPP się nie powiodła, tj. nie osiągnęła punktu w
którym działałby choć jeden protokół sieciowy (np. IP).
11 System peera nie przeszedł procedury uwierzytelniania.
12 Połączenie zostało pomyślnie zestawione i zakończone z powodu
bezczynności.
13 Połączenie zostąło pomyślnie zestawione i zakończone z powodu
limitu czasu połączenia.
14 Wynegocjowano callback i wkrótce pojawi się nadchodzący telefon.
15 Połączenie zostało zakończone gdyż peer nie odpowiadał na
żądania echa.
16 Połączenie zostało zakończone przez modem, który odwiesił
słuchawkę.
17 Negocjacja PPP nie powiodła się przez wykrycie szeregowego
zapętlenia (loopback).
18 Skrypt init się nie powiódł (zwrócił niezerowy kod wyjścia).
19 Nie uwierzytelniliśmy się u peera.
SKRYPTY
Pppd na różnych etapach działania wywołuje różne skrypty, używane do
dokonywania specyficznego dla stacji przetwarzania. Skrypty te są
zwykle skryptami powłoki, lecz mogą równie dobrze być programami
binarnymi. Pppd nie czeka aż skrypty skończą działanie. Skrypty są
wywoływane z uprawnieniami roota (z rzeczywistym i efektywnym UID 0),
więc mogą robić takie rzeczy jak odświeżanie tablic routingu czy
uruchamianie uprzywilejowanych demonów. Uważaj, by skrypty te nie
osłabiły bezpieczeństwa systemu. Pppd uruchamia skrypty ze standardowym
wejściem, wyjściem i wyjściem błędu przekierowanym na /dev/null i ze
środowiskiem, które jest puste, poza pewnymi zmiennymi środowiskowymi,
które dają informacje o łączu. Zmienne te są następujące:
DEVICE Nazwa używanego urządzenia szeregowego tty.
IFNAME Nazwa używanego interfejsu sieciowego.
IPLOCAL
Adres IP lokalnego końca połączenia. Jest to ustawione tylko po
przejściu IPCP.
IPREMOTE
Adres IP zdalnego końca połączenia. Jest to ustawione tylko po
przejściu IPCP.
PEERNAME
Uwierzytelniona nazwa peera. Jest to ustawiane tylko jeśli peer
się uwierzytelnił.
SPEED Szybkość urządzenia tty.
ORIG_UID
ID użytkownika, który wywołał pppd.
PPPLOGNAME
Nazwa użytkownika, który wywołał pppd. Jest to zawsze ustawione.
Dla skryptów ip-down i auth-down, pppd ustawia ponadto następujące
zmienne, dające statystyki połączenia:
CONNECT_TIME
Liczba sekund od kiedy rozpoczęła się negocjacja PPP, aż do
zakończenia połączenia.
BYTES_SENT
Liczba wysłanych bajtów (na poziomie portu szeregowego) podczas
połączenia.
BYTES_RCVD
Liczba odebranych podczas połączenia bajtów (na poziomie portu
szeregowego).
LINKNAME
Logiczna nazwa łącza, ustawiana opcją linkname.
Pppd wywołuje następujące skrypty, o ile one istnieją. Nie jest błędem,
jeśli ich nie ma:
/etc/ppp/auth-up
Program lub skrypt wykonywany po uwierzytelnieniu przez zdalny
system. Jest wywoływany z parametrami
nazwa-interfejsu nazwa-peera nazwa-uytkownika urzdzenie-tty
szybko
Zauważ, że skrypt ten nie jest wykonywany jeśli peer się nie
uwierzytelni, np. po użyciu opcji noauth.
/etc/ppp/auth-down
Program lub skrypt, który jest uruchamiany przy wyłączaniu
połączenia, jeśli uruchamiano wcześniej /etc/ppp/auth-up. Jest
wykoywany w ten sam sposób co do parametrów, jak auth-up.
/etc/ppp/ip-up
Program lub skrypt, który jest wykonywany gdy łącze jest w
stanie przesyłać lub odbierać pakiety IP (tj. po przejściu
IPCP). Jest wykonywany z parametrami
nazwa-interfejsu urzdzenie-tty szybko adres-lokalnego-IP
adres-zdalnego-IP ipparam
/etc/ppp/ip-down
Program lub skrypt, który jest wykonywany gdy łącze nie jest już
w stanie przesyłać pakiety IP. Skrypt ten może być wykonywany do
odtwarzania zmiany wywołanych przez /etc/ppp/ip-up. Jest
wywoływany z tymi samymi parametrami co skrypt up-up.
/etc/ppp/ipv6-up
Podobne do /etc/ppp/ip-up, lecz jest wykonywane gdy łącze jest w
stanie przesyłać pakiety IPv6. Jest wykonywane z parametrami
nazwa-interfejsu urzdzenie-tty szybko adres-lokalnego-cza
adres-zdalnego-cza ipparam
/etc/ppp/ipv6-down
Podobne do /etc/ppp/ip-down, lecz jest wykonywane gdy łącze nie
jest w stanie już transmitować pakietów IPv6. Jest wykonywane z
tymi samymi parametrami co skrypt ipv6-up.
/etc/ppp/ipx-up
Program lub skrypt, który jest wykonywany gdy łącze jest w
stanie przesyłać lub odbierać pakiety IPX (tj. po przejściu
IPXCP). Jest wykonywany z parametrami
nazwa-interfejsu urzdzenie-tty szybko numer-sieci lokalny-
adres-wza-IPX zdalny-adres-wza-IPX lokalny-
protok-trasujcy-IPX zdalny-protok-trasujcy-IPX lokalna-
nazwa-routera-IPX zdalna-nazwa-routera-IPX ipparam pid-pppd
Pola lokalnego/zdalnego-protokołu-trasującego-IPX mogą być
jednymi z następujących:
NONE określa brak protokołu trasującego
RIP określa chęć używania RIP/SAP
NLSP określa chęć używania Novell NLSP
RIP NLSP określa chęć używania RIP/SAP i NLSP
/etc/ppp/ipx-down
Program lub skrypt, który jest wykonywany gdy łącze nie może już
przesyłać pakietów IPX. Skrypt ten może być używany do
anulowania efektów działania skryptu ipx-up. Jest wywoływany z
tymi samymi parametrami co ipx-up.
PLIKI
/var/run/pppn.pid (BSD lub Linux), /etc/ppp/pppn.pid (inne)
PID procesu pppd na jednostce interfejsu ppp numer n.
/var/run/ppp-nazwa.pid (BSD lub Linux), /etc/ppp/ppp-nazwa.pid (inne)
PID procesu pppd na logicznym łączu nazwa (zobacz opcję
linkname).
/etc/ppp/pap-secrets
Użytkownicy, hasła i adresy IP do uwierzytelniania PAP. Plik ten
powinien należeć do roota i nie nadawać się do odczytu/zapisu
dla innych użytkowników. W innym wypadku pppd zgłosi
ostrzeżenie.
/etc/ppp/chap-secrets
Nazwy, sekrety i adresy IP dla uwierzytelniania CHAP. Podobnie
jak dla powyższego, plik ten również powinien być własnością
roota i niczyją inną. W przeciwnym wypadku pppd zgłosi
ostrzeżenie.
/etc/ppp/options
Domyślne opcje pppd systemu, odczytywane przed opcjami
użytkownika lub linii poleceń.
~/.ppprc
Opcje użytkownika, odczytywane przed /etc/ppp/options.nazwatty.
/etc/ppp/options.nazwatty
Domyślne opcje systemowe dla używanego portu szeregowego,
odczytywane po ~/.ppprc. W części nazwatty tej nazwy pliku
usunięte jest poprzedzeające /dev/, a wszelkie ukośniki są
zamienione na kropki.
/etc/ppp/peers
Katalog, zawierający pliki z opcjami, które mogą zawierać
uprzywilejowane opcje nawet jeśli pppd został wywołany przez
użytkownika innego niż root. Administrator systemu może tworzyć
w tym katalogu pliki z opcjami, zezwalającymi
nieuprzywilejowanym użytkownikom wydzwanianie bez wymagania
uwierzytelnienia od peera, lecz tylko do zaufanych peerów.
ZOBACZ TAKŻE
RFC1144
Jacobson, V. Kompresowanie nagwkw TCP/IP dla wolnych czy
szeregowych. Luty 1990.
RFC1321
Rivest, R. Algorytm Message-Digest MD5. Kwiecień 1992.
RFC1332
McGregor, G. PPP Internet Protocol Control Protocol (IPCP).
Maj 1992.
RFC1334
Lloyd, B.; Simpson, W.A. Protokoy uwierzytelniania PPP.
Październik 1992.
RFC1661
Simpson, W.A. Protok Point-to-Point (PPP). Lipiec 1994.
RFC1662
Simpson, W.A. PPP w ramkach typu HDLC. Lipiec 1994.
RFC2472
Haskin, D. IP wersja 6 w PPP Grudzień 1998.
UWAGI
Następujące sygnały mają podane działanie po wysłaniu do pppd:
SIGINT, SIGTERM
Sygnały te powodują, że pppd kończy połączenie (zamykając LCP),
odtwarza ustawienia urządzenia szeregowego i kończy działanie.
SIGHUP Sygnał ten powoduje, że pppd kończy połączenie, odtwarza
ustawienia portu szeregowego i zamyka urządzenie szeregowe.
Jeśli podana jest opcja persist lub demand, pppd spróbuje
otworzyć urządzenie szeregowe i rozpocząć nowe połączenie (po
okresie przetrzymania--holdoff). W przeciwnym wypadku, pppd
zakończy działanie. Jeśli sygnał ten jest odebrany podczas
okresu przetrzymania, powoduje on, że pppd kończy ten okres
natychmiast.
SIGUSR1
Sygnał ten przełącza stan opcji debug.
SIGUSR2
Sygnał ten powoduje, że pppd renegocjuje kompresję. Może to być
przydatne do ponownego włączania kompresji po jej wyłączeniu w
wyniku krytycznego błędu dekompresji. (Błędy takie w ogólności
wskazują na błąd w którejś implementacji.)
AUTORZY
Paul Mackerras (Paul.Mackerras@cs.anu.edu.au), w oparciu o wcześniejsze
prace Drewa Perkinsa, Brada Clementsa, Karla Foxa, Grega Christy'ego, i
Brada Parkera.
PPPD(8)