Kapitel 9. Indstil KPPP til at ringe tilbage

Indholdsfortegnelse

UNIX® eller Linux® tilbagekaldsserver
En introduktion til tilbagekald
Opsætning af KPPP
Problemløsning
Internet-ressourcer for server software
Windows® NT RAS tilbagekald

Dette kapitel er baseret på materiale der skyldes Martin Häfner,

UNIX® eller Linux® tilbagekaldsserver

Dette afsnit introducerer UNIX® (Linux®) tilbagekald, og hvordan KPPP kan indstilles til at forbinde til en UNIX® tilbagekaldsserver, især til en script-baseret Linux® tilbageringsningserver

En introduktion til tilbagekald

Der er adskillige grunde til at overveje tilbagekald. Nogle af dem er:

  • For at forøge sikkerheden i dit lokale netværk

  • For at reducere udgifterne for eksterne medarbejdere

  • For at kontrollere telefonomkostninger hvor opkald erklæres som forretningsudgifter

Tænk på om nogen kunne ringe til nummeret på den server du ringer til, og så bryder et kodeord. Hvorfor bekymre sig om at vedligeholde en brandmur for din internetforbindelse hvis det er så let at få adgang til dit netværk?

Tilbagekaldsprogrammer beder generelt om dit navn, og hænger så op. Det ringer så tilbage til dig, sædvanligvis til et nummer der er opbevaret på serveren i en database. Klienten tager så telefonen og fortsætter med at komme på som om intet var hændt. Serveren beder nu om brugernavn og kodeord, med sikkerhed for at du er den du siger du er da du først ringede, eller i det mindste at du er der hvor du sagde du var. Forbindelsen etableres normalt, og pppd startes.

Nu er det store spørgsmål hvordan klienten skal bedes om at tage telefonen, når serveren ringer tilbage. Har du brug for et specielt program, såsom mgetty? Svaret er nej, du har ikke brug for et specielt klient-program. I almindelighed kan en vilkårlig klient bruges til tilbagekald, du kan endog bruge et almindeligt terminalprogram såsom minicom til forbindelsen.

Det eneste du skal gøre er at bede dit modem om at AutoAnswer telefonen når et RING detekteres af modemet. Dette gøres med følgende modem-kommando:

AT&SO=1

Dette beder modemet om at tage telefonen efter et RING.

Som en masse andre klientprogrammer, tjekker KPPP for at se om forbindelsen bliver lukket af serveren, og standser så den aktuelle session hvis en NO CARRIER detekteres. Dette er derfor det egentlige problem når tilbagekald skal indstilles. NO CARRIER vil naturligvis blive detekteret det øjeblik tilbagekaldsserveren lægger på. Nogle servere bruger derfor et speciel login-program. Så hvordan løser du dette problem? Du fortæller dit modem at det skal vise CARRIER UP altid (hvilket ikke giver problemer hvis du beder klienten om at lægge på.) Du kan gøre dette med følgende modem-kommando:

AT&C0

Hvis du ønsker at teste dette, kan du først bruge et almindeligt terminalprogram såsom minicom, og ringe til din tilbagekaldsserver, for at se hvad der sker.

Opsætning af KPPP

Så nu da du har set teorien i det virkelige liv, hvordan skal du nu indstille KPPP til at tage sig af forbindelsen?

Proceduren er helt ligetil som følger.

  1. Bed først modemet om at acceptere forbindelser og ikke standse forhandlingerne når tilbagekaldsserveren lægger på første gang. Du kan tilføje begge disse valg i Modem-fanebladet i KPPP-indstillingen ved at tilføje til Opkaldsstreng strengen AT&C0S0=1DT

    Der er ingen andre ændringer i indstillingen af KPPP. hvis du har besvær med modem init og nulstil, så tjek Problemløsning-afsnittet for yderligere oplysninger.

  2. Tænk på din server et øjeblik. Husk at UNIX®, Windows® og Macintosh operativsystemer har forskellige meninger om hvordan en linje skal afsluttes i en tekstfil, og derfor også i procedurer til at logge på. Hvis du forbinder til en Windows® server, bruges CR/LF, hvis du forbinder til en UNIX® server, bruges CR og hvis du forbinder til en Macintosh server, bruges LF

  3. Vi antager for disse instruktioner at du ringer til en Linux® tilbagekalds-pakke som bruger en almindelig måde at logge på (ikke PAP eller sådant).

    Sæt Godkendelse-stil i Ring op-fanebladet for kontoens indstilling til Script-baseret

  4. Nu skal du opbygge et script til at logge på. Redigering af script til at logge på er en af KPPP's meget smarte egenskaber. Du kan finde det i Login-Script-fanebladet for Redigér konto- dialogen.

    I dette eksempel har brugeren userxyz brug for at følgende script bliver kaldet. Tilbagekaldsserveren kender allerede tabellen med navne og deres anvendelige telefonnumre, så du vælger telefonnummeret der skal bruges med et alias, af sikkerhedsgrunde.

    For hver linje vælges kriterier fra dropned-listen til venstre for dialogen, og du skriver handlingen i tekstfeltet til højre for den. Vælg Tilføj for at tilføje hver linje til scriptet. Du kan bruge Indsæt for at tilføje en linje i midten af scriptet, og Fjern for at slette en linje hvis du lavede en fejl.

    Hele scriptet skal se ud som noget i denne retning (uden kommentarerne vist her der starter med et #)

    Expect       ogin:           # husk vi laver almindelig terminal login
    ID           ""              # kppp sender det id du indstillede i
    hoveddialogen
    Expect       for userxyz:    # en liste af de tilgængelige numre bliver
    vist, brugeren skal vælge et 
    Send         userxyz-home    # brugeren ønsker at blive ringet tilbage
    på sin hjemmetelefon
    Expect       ogin:           # Tilbagekaldsprocessen kører
    nu, en ny forbindelse derfor en ny login.
    ID
    Expect       assword:        # Send dit kodeord nu
    Expect       >            # Vent på kommandolinjen (tegnet
    kan variere)
    Send         start_ppp       # denne kommando starter pppd
    

    Efter at have ventet på forespørgslen til at logge på, sender brugeren sin ID og venter på en liste af telefonnumre for dette brugernavn. Så fortælles serveren hvilket af de tilbudte numre der skal ringes tilbage til. KPPP kan åbne en dialog for dette hvis det ofte sker du er et andet sted, f.eks. hvis du for eksempel er handelsrejsende og flytter fra hotel til hotel. Nu forventer serveren at du logger på og giver dit kodeord til godkendelse, men i mellemtiden lægger serveren på og ringer tilbage til brugeren. Godkendelsesinformationen sendes og KPPP venter på et kommandolinjetegn, og starter så et lille script (her kaldet start_ppp som får gang i pppd på serveren.

    start_ppp scriptet kunne se ud som noget i retning af følgende:

    #!/bin/sh
    stty -echo
    exec /usr/sbin/pppd -detach silent modem
    

    Opsætning af en PPP-server er naturligvis ikke inden for dette dokuments muligheder. For detaljeret information, se pppd's man-sider. En glimrende beskrivelse af en tilbagekaldsserver kan findes på http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback

Alle andre indstillingsspørgsmål, såsom indstilling af pppd eller IP virker som normalt, og der er ikke brug for nogen specielle programmer til at tage linjen.

Bemærk

KPPP tilbagekald og andre programmer såsom mgetty eller et vilkårligt andet faxgetty kan køres på den samme serielle port. Der er ingen problemer med at ringe ind, da KPPP laver en låsefil som vil fortælle getty-programmet at et andet program (i dette tilfælde KPPP naturligvis,) bruger linjen på dette tidspunkt.

Problemløsning

Der er nogle kendte problemer med KPPP i tilbagekaldstilstand:

  • Når du initialiserer modemet til auto-svar, må du nulstille modemet efter din forbindelse er lukket. Ellers vil dit modem fortsætte med at tage telefonen for dig, hvilket ikke er en god idé hvis det drejer sig om din eneste telefonlinje.

  • KPPP har nogle små problemer når den skal dele en linje med et andet program, såsom mgetty. Hvis mgetty kører på samme modem-linje, er KPPP ikke i stand til at initialisere modemet rigtigt.

  • KPPP kan ikke spørge om visse bruger-inddata når der logges på script-baseret. Uheldigvis spørger KPPP også om brugernavnet anden gang tilbagekaldsserveren beder om det, i eksempelscriptet ovenfor. Du kan slippe for det ved at skrive dit bruger-id ind i login-scriptet (ikke særlig pænt eller portabelt, men det virker).

Internet-ressourcer for server software

Linux® programmer for tilbageringsservere findes mange steder.

Det velkendte mgetty er et meget stærkt program, og det kan også klare tilbagekaldsforbindelser En beskrivelse af hvordan mgetty skal sættes op til dette formål findes på http://www.dyer.demon.co.uk/slug/tipscrip.htm, ved Colin McKinnon, .

Der er også en brugsklar pakke for Linux® på http://www.icce.rug.nl/docs/programs/callback/callback.html. Denne pakke vedligeholdes af Frank B. Brokken, . Da opsætningen ikke er særlig nem, har jeg skrevet en kort introduktion for den på http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback/, som også indeholder en mere generel introduktion til tilbagekald.