<para>Wywołanie okna dialogowego konfiguracji odbywa się podobnie jak uruchamianie asystenta. Należy uruchomić program &kppp; poprzez wybranie w menu <guimenu>K</guimenu> pozycji <guisubmenu>Internet</guisubmenu>, a następnie <guimenuitem>Narzędzie telefonicznego łączenia z Internetem KPPP</guimenuitem></para>
<para>Należy tu wprowadzić nazwę połączenia. Może to być dowolnie wybrany tekst, jednak w przypadku korzystania z wielu połączeń, nazwy nie mogą się powtarzać.</para>
<para>Tutaj należy określić numer telefonu, na który ma dzwonić modem. Dla zwiększenia czytelności numeru, można wykorzystać znak<quote>-</quote>. Jeżeli oddzielisz od siebie kilka numerów znakiem dwukropka ((⪚ <userinput>1111111:2222222:3333333</userinput>, program &kppp; będzie próbował dodzwonić się po kolei na każdy z nich, jeżeli otrzyma sygnał zajętości. Można używać przycisków <guibutton>Dodaj</guibutton> w celu dodania kolejnego numeru do listy, <guibutton>Usuń</guibutton> w celu jego usunięcia, oraz ikon <guiicon>do góry</guiicon> i <guiicon>do dołu</guiicon> w celu zmiany kolejności na liście.</para>
<para>W tej pozycji należy wybrać metodę uwierzytelniania dla konfigurowanego połączenia. Informację o wymaganej metodzie uwierzytelniania, można uzyskać od dostawcy internetowego. Wykorzystanie metod <acronym>PAP</acronym> i <acronym>CHAP</acronym> zostało opisane w rozdziale: <xref linkend="chap-and-pap"/>.</para>
<para>Wybranie tej opcji wywołuje okno parametrów demona <application>pppd</application>. Należy wprowadzić tu parametry i opcje, które &kppp; powinno przekazać przy wywoływaniu demona <application>pppd</application>. Ich lista i opis dostępna jest w podręczniku programu <application>pppd</application>. Należy unikać manipulowania tymi parametrami, jeżeli nie jest to konieczne.</para>
<para>Należy zdobyć informację od swojego dostawcy Internetu (<acronym>ISP</acronym>) czy wykorzystywane jest dynamiczne przydzielanie adresów <acronym>IP</acronym>. Jeżeli tak jest, to adres <acronym>IP</acronym> będzie się zmieniał przy każdym połączeniu.</para>
<para>Opcja ta powinna być zaznaczona, w przypadku gdy dostawca Internetu <acronym>ISP</acronym> przydziela użytkownikowi stały adres <acronym>IP</acronym>. W takim wypadku, należy ten adres wprowadzić w polu <guilabel>Adres IP</guilabel>, a także wypełnić Pole <guilabel>Maska podsieci</guilabel>. Informacje te można otrzymać od swojego dostawcy Internetu. Dynamicznie przydzielane zmienne adresy IP, są wykorzystywane przez większość dostawców Internetu, dlatego najczęściej należy pozostawić to pole nie zaznaczone.</para>
<para>Wybranie tej opcji, spowoduje iż &kppp; ustawi nazwę komputera i domenę dla Twojego komputera po nawiązaniu połączenia <acronym>ppp</acronym>.</para>
<para>Ustawianie nazwy następuje po odpytaniu serwera DNS o nazwę hosta dla numeru <acronym>IP</acronym> przydzielonego dla połączenia <acronym>ppp</acronym>.</para>
<para>Opcja, ta może być użyteczna dla użytkowników korzystających z protokołu "talk", wymagającego aby nazwa komputera była identyczna, z nazwą zdefiniowaną dla danego numeru IP. Opcja ta powoduje ignorowanie ustawienia <guilabel>Nazwa domeny</guilabel> w sekcji <guilabel>DNS</guilabel>. Ustawienia domyślne są przywracane do wartości pierwotnych po zakończeniu połączenia <acronym>ppp</acronym>.</para>
<para>Wykorzystanie tej opcji <emphasis>nie</emphasis> jest konieczne, jeżeli użytkownik wykorzystuje połączenie do przeglądania Internetu, czytania e-maili lub pogawędek internetowych. Ma też ona niepożądany skutek uboczny w postaci zablokowania nowych połączeń do X serwera, innymi słowy zablokowana jest możliwość otwierania jakichkolwiek nowych programów wykorzystujących interfejs graficzny.</para>
<para>Opcja ta powinna być włączana tylko gdy jest naprawdę potrzebna.</para>
<para>Należy tu wprowadzić nazwę domeny wykorzystywaną dla komputera. Analogicznie jak w przypadku opcji <acronym>DNS</acronym>, nazwa domeny powraca do wartości bieżącej zdefiniowanej w pliku <filename>/etc/resolv.conf</filename> po zakończeniu połączenia. Jeżeli pole pozostawiono niewypełnione, to program nie ingeruje w nazwę domeny ustawioną w pliku <filename>/etc/resolv.conf</filename></para>
<para>Należy wybrać pomiędzy opcją: <guilabel>Automatyczna</guilabel> (dostawca Internetu <acronym>ISP</acronym> automatycznie przydziela adresy serwerów <acronym>DNS</acronym> po nawiązaniu połączenia) oraz <guilabel>Ręczna</guilabel>. Po wybraniu drugiej opcji, dostępna staje się sekcja <guilabel>Adres IP dla DNS</guilabel>.</para>
<para>Ta część okna staje się aktywna, w chwili wybrania opcji <guilabel>Ręczna</guilabel>. Należy podać tutaj listę serwerów DNS przydzielonych przez dostawcę Internetu (<acronym>ISP</acronym>). Niezbędne jest podanie co najmniej jednego adresu serwera DNS, aby system operacyjny mógł przetłumaczyć czytelne dla człowieka adresy serwerów (np.: <systemitem>ftp.kde.org</systemitem>) na odpowiadające im numery <acronym>IP</acronym>. Adresy serwerów <acronym>DNS</acronym> muszą być wprowadzone w ich postaci liczbowej (np. <systemitem>128.231.231.233</systemitem>). Zostają one dodane w trakcie działania programu do pliku <filename>/etc/resolv.conf</filename>.</para>
<para>Naciśnięcie przycisku <guibutton>Dodaj</guibutton> spowoduje dodanie nowego adresu serwera <acronym>DNS</acronym> do listy. Przycisk <guibutton>Usuń</guibutton> usuwa pojedynczy adres serwera z listy.</para>
<para>Po zaznaczeniu tej opcji, wszystkie wpisane w pliku <filename>/etc/resolv.conf</filename> serwery DNS zostaną wyłączone w trakcie trwania połączenia.</para>
<para>W karcie <guilabel>Skrypt</guilabel> możliwe jest stworzenie skryptu logowania, specyficznego dla dostawcy Internetu do którego realizowane jest połączenie. Przed stworzeniem skryptu można skorzystać z terminala oraz informacji uzyskanych od dostawcy internetowego <acronym>ISP</acronym>, aby przeanalizować jaka sekwencja poleceń jest wykonywana przy nawiązywaniu połączenia.</para>
<para>Po lewej stronie okna znajduje się lista wyboru, służąca do wybierania kolejno wykonywanych poleceń skryptu. W polu po prawej stronie należy wprowadzić wymagane dla danego polecenia parametry. Naciśnięcie przycisku <guibutton>Dodaj</guibutton> spowoduje dodanie wpisu <emphasis>na końcu</emphasis> edytowanego skryptu, widocznego w dolnej części okna dialogowego. Przycisk <guibutton>Wstaw</guibutton> powoduje umieszczenie polecenia w dowolnej części skryptu, zaś przycisk <guibutton>Usuń</guibutton> usuwa wybraną linię ze skryptu.</para>
<para>Lista wyboru zawiera następujące polecenia:</para>
<para>&kppp; będzie przeszukiwać wejściowy ciąg znaków, w poszukiwaniu zdefiniowanej sekwencji, a następnie przechowa ciąg znaków następujący po tej sekwencji (do napotkania znaku końca linii) w wewnętrznym buforze. Spacje rozpoczynające i kończące ten ciąg są pomijane.</para>
<para>Program przechowuje wprowadzony do bufora tekst do określonego rejestru. Jedynym dostępnym rejestrem jest w chwili obecnej rejestr <varname>password</varname>.</para>
<para>Zmienia domyślny czas oczekiwania na określoną liczbę sekund w trakcie wykonywania skryptu. W razie potrzeby, można to polecenie wykonywać dowolną liczbę razy w trakcie wykonywania skryptu.</para>
<para>Program &kppp; poprosi użytkownika o podanie ciągu znaków, wyświetlając wpisany tekst jako podpowiedź. Użytkownik zobaczy wprowadzany tekst. Jeżeli tekst podpowiedzi, zawierać będzie znacznik <userinput>##</userinput>, to ten fragment zostanie zastąpiony, aktualną zawartością bufora, zapisaną przez polecenie <guilabel>scan</guilabel>.</para>
<para>Program &kppp; prosi użytkownika o wprowadzenie ciągu znaków, wyświetlając podany tekst w pytaniu. Przy wprowadzaniu, zamiast znaków pojawi się gwiazdka "*".</para>
<para>Jeżeli pole <guilabel>Nazwa użytkownika</guilabel> w głównym oknie programu &kppp; jest wypełnione, to jego zawartość jest wysyłana jako <acronym>ID</acronym>. Jeżeli pole <guilabel>Nazwa użytkownika</guilabel> nie jest wypełnione, to program &kppp; zapyta użytkownika, prosząc o podanie nazwy <acronym>ID</acronym>, wyświetlając wprowadzony tekst jako podpowiedź. Użytkownik, zobaczy wprowadzany przez siebie tekst. Przy kolejnym wykonaniu tego fragmentu skryptu (np. przy wykonywaniu go w pętli lub połączenia zwrotnego) pytanie zostanie wyświetlone niezależnie od tego, czy pole <guilabel>Nazwa użytkownika</guilabel> zostało wypełnione.</para>
<para>Jeżeli pole <guilabel>Hasło</guilabel> w głównym oknie programu &kppp; jest wypełnione, to wyślij to hasło. Jeżeli nie, to poproś użytkownika o wprowadzenie hasła, wyświetlając ustawiony tekst jako podpowiedź. Zamiast wprowadzanego tekstu, będą widoczne gwiazdki "*". Przy kolejnym wykonaniu tego fragmentu skryptu (np. przy wykonywaniu go w pętli lub połączenia zwrotnego) pytanie zostanie wyświetlone niezależnie od tego, czy pole <guilabel>Nazwa użytkownika</guilabel> zostało wypełnione.</para>
<para>Program &kppp; będzie czekać na pojawienie się określonego ciągu znaków, przed zakończeniem pętli. Jeżeli ciąg znaków będący parametrem polecenia <varname>LoopStart</varname> pojawi się, spowoduje to skok do linii następującej po poleceniu <varname>LoopStart</varname>. Pozwala to na powtarzanie wyświetlania pytań o nazwę użytkownika i hasło.</para>
<title>Skrypt logowania, zadający pytanie o nazwę użytkownika i hasło i wykorzystujący pętle</title>
<para>Poniżej widoczny jest skrypt zawierający pytanie o nazwę użytkownika i hasło. Pytanie pojawi się niezależnie od tego co zostało wprowadzone w polach <guilabel>Nazwa użytkownika</guilabel> oraz <guilabel>Hasło</guilabel> w głównym oknie dialogowym programu &kppp;.</para>
<para>Skrypt ten ilustruje sposób wykorzystania zestawu poleceń LoopStart/LoopEnd. Jeżeli procedura logowania nie powiedzie się (np. z powodu źle wpisanego hasła) dostawca Internetu zwróci komunikat błędu, ponawiając pytanie o nazwę użytkownika i hasło. Jeżeli ciąg znaków <computeroutput>ID:</computeroutput> zostanie wykryty przed wykonaniem polecenia LoopEnd, program &kppp; wróci do linii następującej po poleceniu LoopStart.</para>
<screen>LoopStart ID: <lineannotation># oczekuje na nazwę użytkownika:</lineannotation>
Prompt Enter ID: <lineannotation># Pyta o nazwę użytkownika i wysyła ją.</lineannotation>
Expect word: <lineannotation># oczekuje na hasło'</lineannotation>
PWPrompt Enter Password: <lineannotation># Pyta o hasło i wysyła je.</lineannotation>
LoopEnd granted <lineannotation># Dostawca wysyła tekst 'Permission granted' w przypadku pomyślnego logowania.</lineannotation>
Send ppp <lineannotation># Uruchamia połączenie ppp po stronie dostawcy Internetu</lineannotation>
<title>Pytanie o informacje nie wprowadzone w głównym oknie</title>
<para>Widoczny poniżej skrypt, pyta od nazwę użytkownika i hasło w przypadku, ale tylko wtedy, gdy odpowiednie pola w głównym oknie programu &kppp; nie zostały wypełnione.</para>
<screen>LoopStart ID: <lineannotation># oczekuje na tekst ID:</lineannotation>
ID Enter ID: <lineannotation># pyta o nazwę użytkownika i wysyła ją.</lineannotation>
Expect word: <lineannotation># oczekuje na tekst 'password'</lineannotation>
Password Enter Password <lineannotation># Pyta o hasło i wysyła je.</lineannotation>
LoopEnd granted <lineannotation># dostawca wysyła tekst 'Permission granted' po pomyślnym zalogowaniu.</lineannotation>
Send ppp <lineannotation># Uruchamia połączenie ppp po stronie dostawcy Internetu</lineannotation>
<title>Skrypt do połączenia z dostawcą Internetu <acronym>ISP</acronym>, który używa algorytmu challenge/response do uwierzytelniania</title>
<para>Widoczny poniżej skrypt, stosowany jest gdy dostawca Internetu stosuje algorytm challenge/response do uwierzytelniania. Zwykle, wykorzystywany jest sprzętowy klucz (token, coś w rodzaju kalkulatora z wyświetlaczem). Użycie tokenu wymaga znajomości hasła. Po zadzwonieniu na numer dostawcy Internetu, pojawia się ciąg znaków (challenge) który należy wprowadzić do sprzętowego klucza (tokenu). Pojawiające się na wyświetlaczu tokenu dynamicznie przydzielone hasło, należy wprowadzić w celu uzyskania połączenia.</para>
<screen>LoopStart ID: <lineannotation># czekaj na nazwę użytkownika ID:</lineannotation>
ID Enter ID: <lineannotation># pytanie o nazwę i wysłanie.</lineannotation>
Scan Challenge: <lineannotation># oczekuj na 'Challenge' i zapamiętaj tekst do napotkania znaku nowej linii.</lineannotation>
Expect Password: <lineannotation># czekaj na 'password'</lineannotation>
<para>Poniższy skrypt, przedstawia procedurę logowania do fikcyjnego dostawcy Internetu <acronym>ISP</acronym>, który wymaga nowego hasła przy każdym nowym połączeniu. Nowe hasło musi zostać zweryfikowane i zapisane przed następną sesją połączenia. </para>
<para>Program &kppp; może zrealizować to uciążliwe zadania, za użytkownika, eliminując ryzyko zagubienia kawałka papieru na którym zapisane zostało aktualne hasło. Kluczowym elementem tego skryptu jest kombinacja poleceń: Scan/Save.</para>
<screen>7 Expect Login: <lineannotation># czekaj na pytanie o nazwę użytkownika</lineannotation>
ID <lineannotation># wyślij nazwę użytkownika</lineannotation>
Expect Password: <lineannotation># czekaj na pytanie o hasło</lineannotation>
<para>Można tu wybrać polecenia jakie mają zostać wykonane na pewnych etapach połączenia. Polecenia są wykonywane z Twoim prawdziwym identyfikatorem użytkownika, zatem nie można wykonać programów wymagających uprawnień administratora (o ile sam nim w danym momencie nie jesteś)</para>
<para>Można tutaj uruchamiać na przykład program <application>leafnode</application> tuż po połączeniu, do sprawdzania poczty. Można sprawdzać kolejkę poczty wychodzącej tuż przed rozłączeniem. Można też wykorzystać ze skryptu <quote>czyszczącego</quote> do usunięcia dzienników (logów) oraz pamięci podręcznej po rozłączeniu.</para>
<para>Jeżeli na liście nie ma żądanego dostawcy Internetu, możliwe jest zdefiniowanie własnego zestawu zasad liczenia kosztów poprzez skopiowanie dostarczonego szablonu. Więcej informacji jako to zrobić znajduje się w <link linkend="appendix-accounting-template">dodatku do dokumentacji</link>.</para>
<para>Zlicza ona po prostu liczbę bajtów przesłanych do i z Internetu przez program &kppp;. Zliczane mogą być bajty wysyłane, odbierane lub wysyłane i odbierane jednocześnie, w zależności od wyboru użytkownika.</para>
<para>Wielu dostawców internetowych, obciąża użytkowników kosztami połączenia w zależności od przesłanych danych. Czasami dostawca Internetu <acronym>ISP</acronym> oferuje stałą kwotę do wysokości pewnego limitu, a następnie obciąża kosztami przesłania za każdy kolejny megabajt ponad ten limit. Program &kppp; pokazuje użytkownikowi aktualny stan przesłanych danych, co pozwala na dokładną kontrolę kosztów korzystania z Internetu. Nawet jeśli użytkownik nie jest obciążany kosztami dostępu w zależności od przesłanych danych, to może skorzystać z tej opcji dla zaspokojenia własnej ciekawości.</para>
<para>W dużej części uzależnione jest to od dostawcy Internetu. Wielu z nich, oblicza jedynie liczbę megabajtów pobranych z Internetu, ignorując ilość danych wysyłanych. W takim wypadku należy wybrać <guilabel>bajty WE</guilabel>. Jeżeli koszty uzależniane są od ruchu w obie stronym należy wybrać <guilabel>bajty WE i WY</guilabel>. Pozycja <guilabel>bajty WY</guilabel> umieszczona została raczej w celu zachowania kompletności listy, jako że nie jest autorom znany żaden dostawca Internetu, który wykorzystuje ruch wyjściowy do naliczania kosztów. Z tej opcji mogą jednak korzystać osoby, uruchamiające serwer WWW lub &FTP; na komputerze domowym.</para>
<para>Wykorzystanie opcji zliczania wysłanych i odebranych bajtów nie jest narzędziem doskonałym. Zliczanie dokonywane jest niezależnie od źródła danych, a wielu dostawców ustawia swoje limity przesyłania na dane wysyłane/odbierane poza ich wewnętrzną sieć. Inni ustalają różne poziomy limitów, w zależności od tego czy dane są z sieci dostawcy, w kraju czy z zagranicy. Może się okazać, że jeżeli Internet nie jest intensywnie wykorzystywany do przeglądania sieci, zaś większość stron pobierana jest z serwera pośredniczącego dostawcy Internetu, to dostawca nie pobiera żadnych kosztów za takie połączenie. Program &kppp; nie jest w stanie kategoryzować pakietów <acronym>IP</acronym> w zależności od źródła ich pochodzenia, tak więc wszystkie będą wliczane do ruchu wychodzącego/przychodzącego. Innym przykładem może być stosowanie przez dostawcę internetowego serwera pośredniczącego dla grup dyskusyjnych, jak np.: <application>nntpcached</application>, wtedy jest pewne iż wartość przesyłania danych wykazana przez &kppp; będzie wyższa od wartości, za którą naliczone będą koszty dostępu do sieci. Z drugiej jednak strony, program &kppp; nigdy nie spowoduje, iż rachunek będzie wyższy niż to wynika z wyliczeń.</para>