Linux PPP HOWTO: Konfiguracja serwera PPP
Następna strona
Poprzednia strona
Spis treści
26. Konfiguracja serwera PPP
Jak już wspominałem istnieje wiele metod na wykonanie tego zadania. To
co chcę zaprezentować to sposób, którego używam (korzystając z
wieloportowej karty Cycades i kilku linii telefonicznych na wspolnym numerze).
Jeśli ci się nie spodoba, możesz to zrobić na swój sposób. Zawsze
chętnie w kolejnych wersjach tego dokumentu umieszczę inne sprawdzone
metody. Jeśli znasz taką przyślij mi jej opis wraz ze swoimi uwagami.
Pamiętaj, ze w tej części mówimy jedynie o konfiguracji Linuxa jako
sewera PPP. Nie zamierzam kiedykolwiek umieszczać tutaj informacji o
konfigurowaniu specjalnych terminali dostępowych i innych tego typu zabawek.
Czekają mnie jescze eksperymenty z shadow password. Aktualnie
prezentowane informacje NIE zawierają żanych udogoniej jakie można
uzyskać korzystając z shadow password.
26.1 Kompilacja jądra
Wszelki wcześniejsze uwagi na temat wersji jądra i pakietu PPP są
nadal aktualne. Zkładam, że przeczytałeś poprzednie rozdziały.
MUSISZ włączyć w jąrdze orzesyłanie pakietów (IP
forwarding). Może to być dobry moment do włączenia również takich
udogodniej jak zliczanie pakietóe (accounting) i firewall.
Jeśli korzystasz z kart wieloportowych muszisz oczywiscie korzystać z
ich drajwerów.(zobacz Serial-JTZ).
26.2 Zarys konfiguracji serwera
Oferujemy konta PPP (i SLIP) oraz konta zwykłe sprawdzając tożsamość
za pomocą identyfikatora i hasła. Jest to dla nas ułatwieniem,
ponieważ uzytkownik korzystając z jednego konta ma dostęp do
wszystkich usług.
Ponieważ jestemy organizacją edukacyjną, nie pobieramy opłat za
korzystanie z systemu i nie musimy się martwić o zliczanie ruchu i
naliczanie opłat.
Firewall działający pomiędzy naszą siecią a internetem ogranicza
dostęp naszysch użytkowników do wybranych usług internetowych,
ponieważ łącząc się z naszym serwerem pracują wewnątrz naszej sieci,
lecz nie będzeimy tutaj rozwijać tego tematu.
Proces uruchomie połączenia PPP przez uzytwkonika posiadającego onto
na serwerze wygląda następujaco:-
Zadzwonienie i zestawienie połączenia między modemami.
Wejscie na swoje konto podając identyfikator i hasło
W wierszu zachęty wydanie polecenia ppp które uruchamia PPP
na serwerze.
Uruchomienie PPP na komputrze klienta (niezależnie czy jest tam
Linux, Windows, DOS, MAC czy cokolwiek- to już ich problem).
Serwer korzysta z indywidualnych plików
/etc/ppp/options.ttyXX każdego portu wejściowego, gdzie jest
zapisany zdalny numer IP (dynamiczny przydział numerów IP). Do
zapewnienia komunikacji z komputerami sieci lokalnej i koputerem po
drygiej stronie połączenia PPP serwer korzysta z proxyarp (włączonej
przez odpowiednią opcję pppd) unikając uruchomienia takich programów
jak routed lub gated.
Kiedy użytkownik zamyka połączenie PPP, pppd na serwerze to wykrywa,
poleca modemowi przerwać połączenie likwidując w tym samym czasie
łącze PPP.
26.3 Przygotowanie niezbędnego oprogramowania
Potrzebne będą następujące programy:-
Odpowioednio skompilownae is konfogurowane jądro Linuxa.
Odpowiednia wersja pakietu pppd.
Program 'getty', który w sposób inteligentny radzi sobie z
połączeniami modemowymi.
Korzystamy z getty_ps2.0.7h, lecz na myśl przychodzi również
mgetty. Wiem, że mgetty może rozpoznać połączenie korzystające z
pap/chap (pap jest wykorzystywane przez Windows95) i automatycznie
uruchomic pppd, lecz jescze tego nie wykorzystuje.
Działający serwer DNS, dostępny dla twoich użytkowników
korzystających z PPP.
Jeśli to możliwe, powinieneś posiadac własny serwer DNS...
26.4 Konfiguracja zwykłego konta
Zanim skonfigurujesz swój komputer jako serwer PPP, musi on wpierw
umożliwiać dostęp użytkownikom di uch kont.
Nie zamieszcamy w tym dokumencie informacji jak to
zrobić. Przeczytaj dokumentację programu getty i Serial-JTZ.
26.5 Konfiguracja plików z opcjami programu pppd
Musisz stworzyć plik z opcjami dotyczacymi wszystkich połączeń
/etc/ppp/options. My używamy takich opcji:
asyncmap 0
netmask 255.255.254.0
proxyarp
lock
crtscts
modem
Zauważ, że NIE korzystamy z trasowania - a w sczególności nie ma
domyślnej trasy, ponieważ jako serwer PPP powinieneś jedynie zapewnić
przesyłanie pakietów z komputer klienta do Internetu i twojej
sieci lokalnej i z Internetu (sieci lokalnej) do komputera klienta.
Wszystko co jest wymagane do realizacji tego celu, to trasa do
komputer klienta i użycie opcjie 'proxyarp' w programi pppd.
Opcja 'proxyarp' dodaje do tabeli apr serwera PPP ppozycją proxy arp
(już wszystko jasne :), która powiadamia komputery sieci lokalnej, że
wszystkie pa kiety przeznaczone dla klineta PPP należy przesyłać
bezpośrednio do serwera - nie można jej niestety użyć przy routingu
pakietów pomiędzy dwiema sieciami LAN - muszisz dodać do tabeli
routingu odpowiednie trasy.
Prawdopodobnie chcesz aby użytkownicy twojego serwera PPP korzystali z
dysnamicznego przydzielania adresów IP. Można to osiągnąć przypisując
każdemu portowi szeregowemu inny adres IP. Zrobisz to umieszczając
odpowiednią inforamacje w plikach /etc/ppp/options.ttyXX.
Po prostu umieść tam lokalny muer IP (serwera PPP) i numer IP, który
ma być wykorzystywany przez ten port. Np.
kepler:slip01
W szczególności, zamiast numerów IP możesz podawać nazwy komputerów
(ja sam pamiętem tylko numery najważniejszych komputerów i urządzeń,
nazwy jest łatwiej zapamiętać).
26.6 KOnfiguracja pppd umożliwiająca zwkłym użytkownikom
na uruchomienie połączenia
Ponieważ uruchomienie połązeniea PPP jest związane z konfiguracją
urządzeń sieciowych i manipulowaniem tabelą routingu, dlatego wymagane
są do tego specjalne uprawnienia - w rzeczywistości uprawnienia administratora.
Na szczęści pppd został zaprojektowany do takiego użycia i możemy
włączyć bit suid root. Musisz po prostu wydać polecenie
chmod u+s /usr/sbin/pppd
Teraz atrybuty tego pliku powinny wygładać tak
-rwsr-xr-x 1 root root 74224 Apr 28 07:17 /usr/sbin/pppd
Jeśli tego nie zrobisz, twoi użytkownicy nie będą mogli uruchomić
połączenia PPP.
26.7 Ustanawianie ogólnego aliasu dla pppd
Aby uprościć użytkownikom pewne działania, w pliku
/etc/bashrc tworzymy globalny alias, tak aby proste polecenie
uruchamiało całą procedurę PPP po stronie serwera.
This looks like
alias ppp="exec /usr/sbin/pppd -detach"
Co to znaczy?
exec : to znaczy, że w miejsce działającego programu (w tym
przypadku powłoki) zostaje uruchomiony inny program.
pppd -detach : uruchom program pppd i NIE odłączaj się od
terminala. W ten sposób po zakończeniu połączenia jesteśmy pewni, że
nie pozostanie żaden niepotrzebny proces użytkownika.
Użytkownicy, kótrzy logują się w ten sposób będą przedstawiani przez
polecenie w mniej więcej tak
6:24pm up 3 days, 7:00, 4 users, load average: 0.05, 0.03, 0.00
User tty login@ idle JCPU PCPU what
hartr ttyC0 3:05am 9:14 -
I to już wszystko... mówiłem, że zrobienie prostego serwera PPP jest banalne.
Następna strona
Poprzednia strona
Spis treści