PortSlave, gebruik van de Linux Router HOWTO

Tom McKellips

tom@computechnology.com

Vertaald door: Ellen Bokhorst

bokkie@nl.linux.org

Ik schreef dit als een begin voor het gebruik van PortSlave bij het Linux router project. Het schijnt dat Portslave een veelgebruikt programma is zonder documentatie. Aangezien ik Portslave direct begon te gebruiken, ben ik er zeker van dat dit document mettertijd door anderen kan worden verbeterd. Na diverse dagen met Portslave te hebben gestoeid, kwam ik erachter hoe ongelofelijk makkelijk het feitelijk te gebruiken is.

Inhoudsopgave

1. Introductie............................................................................................................................................................1 2. De procedure ........................................................................................................................................................2

1. Introductie

Deel dit met iedereen; verkoop het niet.

Als eerste wil ik alle Linux programmeurs bedanken. Jullie bijdragen waren van belang. Ik hoop dat deze kleine bijdrage van nut zal zijn voor Linux gebruikers.

Ik schreef dit als een begin voor het gebruik van PortSlave bij het Linux router project. Het schijnt dat Portslave een veelgebruikt programma is zonder documentatie. Aangezien ik Portslave direct begon te gebruiken, ben ik er zeker van dat dit document mettertijd door anderen kan worden verbeterd. Na diverse dagen met Portslave te hebben gestoeid, kwam ik erachter hoe ongelofelijk makkelijk het feitelijk te gebruiken is.

De problemen waar ik meestal mee werd geconfronteerd hadden te maken met het niet slagen van de PAP Authenticatie. Ik vond dit echt lastig uit te zoeken. Ik kreeg nog wat andere foutmeldingen, maar als je de aanwijzingen in deze howto opvolgt, zou dit op z’n minst tot gevolg moeten hebben dat je een aanknopingspunt hebt.

PortSlave, gebruik van de Linux Router HOWTO

1.1. Copyrightinformatie

Dit document is auteursrechtelijk beschermd (c) 2000 door Tom McKellips en het wordt gedistribueerd onder de voorwaarden van de licentie van het Linux Documentatie Project, welke hieronder uiteen wordt gezet.

Tenzij anders vermeld, zijn Linux HOWTO documenten auteursrechtelijk beschermd door hun respectieve auteurs. Linux HOWTO documenten mogen in hun geheel of gedeeltelijk worden gedistribueerd, op elk fysiek of elektronisch medium, zolang deze copyrightmelding maar op alle kopieën behouden blijft. Commerciële herdistributie is toegestaan en wordt aangemoedigd; de auteur zou echter graag op de hoogte worden gebracht van dergelijke distributies.

Alle vertalingen, afgeleide werken of verzamelde werken waarin Linux HOWTO documenten zijn verenigd, moeten onder deze copyrightmelding vallen. Dat wil zeggen dat je geen afgeleide werk van een HOWTO mag produceren en aanvullende beperkingen op de distributie ervan mag opleggen. Uitzonderingen op deze regels kunnen onder bepaalde voorwaarden worden toegestaan; neem alsjeblieft contact op met de Linux HOWTO coördinator via het hieronder gegeven adres.

Samengevat willen we verspreiding van deze informatie via zoveel mogelijk kanalen bevorderen. We willen echter het copyright op de HOWTO documenten behouden, en zouden graag op de hoogte worden gesteld van eventuele plannen de HOWTO’s te herdistribueren.

Neem voor vragen alsjeblieft contact op met <linux-howto@metalab.unc.edu>

1.2. Disclaimer

Voor de inhoud van dit document kan geen aansprakelijkheid worden geaccepteerd. Gebruik de concepten, voorbeelden en andere inhoud op eigen risico. Aangezien dit een nieuwe editie is van dit document, kunnen er fouten en onvolkomenheden in staan, die wellicht schade toe kunnen brengen aan je systeem. Neem voorzichtigheid in acht, en alhoewel het zeer onwaarschijnlijk is, is de auteur hier niet verantwoordelijk voor.

Alle copyrights vallen in handen van hun respectieve eigenaren, tenzij expliciet anders vermeld. Gebruik van een term in dit document moet niet worden aangemerkt als van invloed zijnde op de geldigheid van enig handelsmerk of servicemerk.

Het benoemen van bepaalde producten of merken moet niet worden gezien als onderkenning.

Het wordt je ten zeerste aangeraden regelmatig een backup van je systeem te maken voordat je belangrijke wijzigingen aanbrengt.

2. De procedure

Ten eerste heb je een werkende versie van LRP nodig - stel de disk zelf samen of haal een image op van: http://www.computechnology.com/pslave1440.img. Dit is een kopie van mijn werkdisk en je kunt er direct een image van naar je disk schrijven. Je kunt er direct mee aan de slag. Het enige wat je moet doen is de van toepassing zijnde IP-nummers en netwerkkaartdrivers wijzigen. Ik ga hier niet in op het samenstellen van een lrp-disk, omdat er tamelijk goede documentatie over dat onderwerp beschikbaar is.

In de veronderstelling dat je je disk hebt samengesteld en dat je je computer hebt geactiveerd, volgt hier wat nodig is om je disk te configureren:

VERWIJDER als eerste (ja, ik zei VERWIJDER) alle options.tty?? bestanden, het bestand options, en het bestand pap-secrets, te vinden onder /etc/ppp-radius en /etc/ppp. Als je een /etc/ppp, hebt, installeerde je waarschijnlijk ppp.lrp. Verwijder ook ppp.lrp van je disk en /etc/ppp kan weg.

Ga vervolgens naar /etc/portslave en pas het bestand pslave.conf dienovereenkomstig aan. We zullen dat bestand nu regel voor regel doornemen. Ik weet niet wat het allemaal betekent, maar ik kreeg het werkend dus dat kun jij ook.

#
# pslave.conf Hier is een voorbeeld van het serverconfiguratiebestand.
#
# Versie: 1.17 03-Nov-1998
#
#
# Hostnaam van het systeem.
#
# Dit is de naam van mijn router. De naam van jouw router zal anders
# zijn
conf.hostname hma2.cpty.net
#
# IP adres - wanneer achterwege gelaten, wordt het IP-adres van de
# hostnaam van het systeem gebruikt.
#
# Dit wordt gebruikt als het "lokale" adres voor SLIP en PPP verbindingen.
# Dit is het adres van mijn router, die van jou zal anders zijn. Gebruik
# hier het IP-nummer van je router
conf.ipno 10.0.0.4
#
# Lock directory - onder FSSTND compliant systemen is dit /var/lock.
#
# Dit hoeft niet te worden gewijzigd
conf.lockdir /var/lock
#
# Waar de binary is te vinden welke de "-i" vlag accepteert.
#
# Dit hoeft niet te worden gewijzigd
conf.rlogin /usr/bin/rlogin-radius
#
# Waar de gepatchte pppd is te vinden met radius.
#
# Dit hoeft niet te worden gewijzigd
conf.pppd /usr/sbin/pppd-radius
#
# Waar telnet is te vinden. Dit kan gewoon de systeem telnet zijn.
#
# Dit kun je zo laten of weglaten
conf.telnet /usr/bin/telnet
#

# Als je dit op "1" instelt, kun je altijd lokaal inloggen door een
# `!' te plaatsen voor je loginnaam. Handig voor noodgevallen wanneer de
# RADIUS server down is. Stel dit in op 0 of 1
conf.locallogins 1
#
# Logging stuff - dit programma kan een remote syslog daemon gebruiken
# als het nodig is
#
# Laat het "syslog" veld leeg als je lokaal wilt loggen. Het veld facility
# is een integer tussen 0 en 7 en het stelt de syslog faciliteit in op
# local0-local7.
#
# Tot zover log ik lokaal naar mijn router en daarom staat er niets achter
# syslog
conf.syslog
conf.facility 6
#
# Stripnames - als je dit op "1" instelt, zullen voorafgaande "P", "S",
# "C", "L" of "!" tekens en de achtervoegsels ".slip", ".clslip" en
# ".ppp" strings worden gestript van de gebruikersnaam voordat het wordt
# opgenomen in de utmp en wtmp bestanden op het systeem (uiteraard als
# sysutmp of syswtmp aan zijn gezet)
#
# Dit hoeft niet te worden gewijzigd
conf.stripnames 0

##
## De entry all wordt gebruikt als een sjabloon voor alle anderen. Dit
## betekent dat de instelling all.debug ingesteld op 0, s0.debug, s1.debug,
## s2.debug, enz. op 0 instelt. Het betekent ook dat deze instellingen
## allen kunnen worden overschreven op een per poort basis.
##
## De "all." is de standaard voor alles tenzij je het specifiek overschrijft.
## Ik zal je dit aan het einde hiervan laten zien.

#
# Debugging uitvoer naar syslog. Stel het in op 0 of 1. "1" geeft tamelijk
# uitgebreide uitvoer. Ik vind 1 het prettigst omdat het veel info geeft
all.debug 1
#
# Authenticatie type -  "radius" of "none".
#
# Laat dit zo
all.authtype radius
#

# Authenticatie host en accounting host. Van beiden kunnen we er 2 hebben.
# De eerste wordt altijd drie keer geprobeerd voordat wordt overgeschakeld
# naar de tweede. Daarna worden ze afgewisseld, tot maximaal 10 keer in totaal.
# Timeout is 5 seconden per verzoek.
#
# Dit zijn de namen van mijn RADIUS servers; benoem hier je RADIUS servers
all.authhost1 cody.cpty.net
all.accthost1 cody.cpty.net
#all.authhost2 backuphost.someisp.com
#all.accthost2 backuphost.someisp.com
#
#
# Het gedeelde secret voor RADIUS.
#
# Plaats hier je shared secret, dit moet overeenkomen met de shared secret
# in je RADIUS servers clients bestand voor het IP-nummer of naam van deze
# router.
all.secret superagentman
#
# Standaardprotocol en host. Dit is voor rlogin sessies.
#
# Wijzig de all.host gewoon in het IP-nummer van je router, dit moet
# overeenkomen met wat je bovenaan dit bestand hebt staan
all.protocol rlogin
all.host 10.0.0.4
#
# Standaard IP stuff. Eindig je de "ipno" met een "+", dan zal het
# poortnummer worden toegevoegd aan het IP-nummer. Het IP-nummer van een
# poort wordt gebruikt wanneer de RADIUS server geen IP-nummer verzendt,
# of als het ons vertelt een dynamisch ipno te gebruiken.
#
# Laat de netmask op 255.255.255.255, tenzij je weet wat je doet.
#
# Dit leek wat verwarrend, maar aangezien ik statische IP-nummers gebruikte,
# was dit makkelijk. Ik heb geen "+" achter mijn IP-nummer omdat ik het
# IP-nummer direct toeken aan een MODEM aan het einde van dit bestand.
#
# Ik paste het netmask aan dat het overeen kwam met mijn netwerk. MTU liet
# ik voor wat het was
all.ipno 10.0.0.4
all.netmask 255.255.255.0
all.mtu 1500
#
# Standaardmelding welke wordt getoond bij het tot stand brengen van de
# verbinding
#
# Dit hoeft niet te worden gewijzigd

all.issue \n\
Cistron Internet Services \n\
POP Alphen aan den Rijn \n\
Welcome to terminal server %h port S%p\n
#
# Login prompt.
#
# Je hoeft dit niet te wijzigen
all.prompt Cistron login:
#
# Terminaltype, voor rlogin/telnet sessies.
#
# Dit hoeft niet te worden gewijzigd
all.term vt100
#
# Stel dit in op 1, als je wilt dat portslave de utmp en/of wtmp bestanden
# bijwerkt, zoals een reguliere getty/login.
#
# Ik stel beiden in op 1; je kunt doen wat je wilt
all.sysutmp 1
all.syswtmp 1

##
## Opties voor de seriële poort.
##
#
# Porttype (doorgegeven aan Radius voor het loggen).
# 0 = async, 1 = sync, 2 = ISDN, 3 = ISDN-V120, 4 = ISDN-V110
#
# Gebruik 0 als het een modem is
all.porttype 0
#
# Snelheid. Alle poorten zijn ingesteld op 8N1.
#
# Stel dit in op je max modem snelheid
all.speed 115200
#
# Gebruik dit om de modem te initialiseren.
#
# Ik moest hier AT&F van maken om de modem elke keer in te stellen op de
# standaardwaarden aangezien ATZ niet werkte.

# Als je niet bekend bent met scripting dan zal een deel hiervan je niets
# zeggen. Dat is ok; ik snapte het ook niet totdat ik ermee ging spelen.
all.initchat "" \d\dAT&F OK\r\n-AT&F-OK\r\n
#
# Je kunt waitfor of aa gebruiken.
#
# Dit hoeft niet te worden gewijzigd
all.waitfor RING
#
# Chat string om de modem een verbinding te laten maken na waitfor.
#
# Het @ teken komt in regexp code overeen met (.*)[\r\n], de match wordt gelogd
# naar Radius als Connection-Info.
#
# Dit hoeft niet te worden gewijzigd
all.answer "" ATA CONNECT@
#
# Auto answer - als je dit op "1" instelt, dan zal het systeem wachten totdat
# de DCD lijn in de lucht is (dit is niet goed getest). Je krijgt ook de
# verbindingsinfo niet.
#
# Dit hoeft niet te worden gewijzigd
all.aa 0
#
# Je kunt deze chatstring gebruiken om de modem regelmatig te controleren
# of deze nog actief is.
#
# NOG NIET GEÏMPLEMENTEERD.
#
# Ik weet niet of deze regel werkt. Laat het me weten als je er iets over
# kunt vinden. Laat het zo als het is en portslave functioneert.
all.checktime 60
all.checkchat "" AT OK\r\n
#
# Flow control op deze seriële poort:
#
#    hard - hardware, rts/cts
#    soft - software, CTRL-S / CTRL-Q
#    none
#
# Dit hoeft niet te worden gewijzigd
all.flow hard
#
# Gebruik de DCD lijn of niet (dit stelt CLOCAL in als on). Dit betekent dat
# de sessie wordt beëindigt als de modem ophangt. Kan op 0 of 1 worden

# ingesteld.
#
# Dit hoeft niet te worden gewijzigd
all.dcd 1
#
# PPP opties - worden gebruikt als we een PPP sessie automatisch detecteren.
#
# We stellen mru en mtu beiden in op de MTU instelling.
#
# Bekijk deze regels goed; bij mij werkte dit.
# Deze parameters worden naar de ppp daemon gezonden wanneer het
# wordt aangeroepen. Ik denk dat autoppp als eerste wordt aangeroepen,
# en nadat je authorisatie er door is, dat de tweede ppp wordt aangeroepen.
# Ik weet niet zeker of dit zo werkt, maar het lijkt er wel op
all.autoppp proxyarp modem asyncmap 0 %i: \
noipx noccp login auth +pap -chap \
mtu %t mru %t \
ms-dns 208.206.143.35 ms-dns 208.206.143.36 \
uselib /usr/lib/libpsr.so

#
# PPP opties - Authenticiteit van de gebruiker reeds bevestigd en service
# type is PPP.
#
all.pppopt proxyarp modem asyncmap 0 %i:%j \
noipx noccp \
mtu %t mru %t netmask %m idle %I \
ms-dns 208.206.143.35 ms-dns 208.206.143.36 \
uselib /usr/lib/libpsr.so

##
## Tty namen zijn s0...s63. Voor iedere poort moeten we een tty-poort
## definiëren, en een IP-nummer voor wanneer radius ons vertelt
## er zelf een uit te kiezen. Tenzij je de IP pool optie hierboven vermeld
## gebruikt (IP nummer met "+" toegevoegd).
##
## Je kunt _alle_bovenstaande instellingen die beginnen met
## all.xxxx op een per poort basis wijzigen, zoals issue, prompt enz.
##
## Hier kun je opties instellen voor een specifiek modem. sX.tty is
## voor portslaves gebruik. Je kent het toe aan een echt tty device.
## In de /etc/inittab zie je de regels portlsave 0 of 1 enz..
## deze 0 of 1 is het tty device nummer. portslave weet reeds dat het

## "tty iets" is, dus het enige dat het nodig heeft, is het laatste cijfer.
##
## Aangezien mijn modem is aangesloten op COM 4 (DOS), betekent dat
## s3.tty ttyS3 is.
s3.tty ttyS3
# Nu kan ik opties voor dat modem instellen
#
# Hier wordt het IP-nummer statisch toegekend
s3.ipno 10.0.0.202
# Hier is het te gebruiken protocol voor dat modem. LET HIER GOED OP!
# Dit is de regel waarmee bij mij portslave uiteindelijk werkte.
# Je moet het ppp protocol verbinden met je modem. Simpel toch?
s3.protocol ppp