Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Использование pppd в качестве сервера



/etc/ppp/options должен содержать примерно следующее:

crtscts # Hardware flow control

netmask 255.255.255.0 # netmask (not required)

192.114.208.20:192.114.208.165 # IP's of local and remote hosts

# local ip must be different from one

# you assigned to the Ethernet (or other)

# interface on your machine.

# remote IP is IP address that will be

# assigned to the remote machine

domain ppp.foo.com # your domain

passive # wait for LCP

modem # modem line

Следующий скрипт /etc/ppp/pppserv укажет pppd работать в качестве сервера:

#!/bin/sh

ps ax |grep pppd |grep -v grep

pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`

if [ "X${pid}"!= "X" ]; then

echo 'killing pppd, PID=' ${pid}

kill ${pid}

fi

ps ax |grep kermit |grep -v grep

pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`

if [ "X${pid}"!= "X" ]; then

echo 'killing kermit, PID=' ${pid}

kill -9 ${pid}

fi

# reset ppp interface

ifconfig ppp0 down

ifconfig ppp0 delete

# enable autoanswer mode

kermit -y /etc/ppp/kermit.ans

# run ppp

pppd /dev/tty01 19200

Используйте этот скрипт /etc/ppp/pppservdown для остановки сервера:

#!/bin/sh

ps ax |grep pppd |grep -v grep

pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`

if [ "X${pid}"!= "X" ]; then

echo 'killing pppd, PID=' ${pid}

kill ${pid}

fi

ps ax |grep kermit |grep -v grep

pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`

if [ "X${pid}"!= "X" ]; then

echo 'killing kermit, PID=' ${pid}

kill -9 ${pid}

fi

ifconfig ppp0 down

ifconfig ppp0 delete

kermit -y /etc/ppp/kermit.noans

Следующий kermit скрипт (/etc/ppp/kermit.ans) включит/отключит режим ответа модема на входящие звонки. Он должен выглядеть примерно так:

set line /dev/tty01

set speed 19200

set file type binary

set file names literal

set win 8

set rec pack 1024

set send pack 1024

set block 3

set term bytesize 8

set command bytesize 8

set flow none

pau 1

out +++

inp 5 OK

out ATH0\13

inp 5 OK

echo \13

out ATS0=1\13; change this to out ATS0=0\13 if you want to disable

; autoanswer mode

inp 5 OK

echo \13

exit

Скрипт, называющийся /etc/ppp/kermit.dial, используется для дозвона и аутентификации на удаленном хосте. Вам потребуется приспособить его под собственные нужды. Поместите ваш логин и пароль в этот скрипт; вам также потребуется изменить операторы input в зависимости от ответов от модема и удаленного хоста.

;

; put the com line attached to the modem here:

;

set line /dev/tty01

;

; put the modem speed here:

;

set speed 19200

set file type binary; full 8 bit file xfer

set file names literal

set win 8

set rec pack 1024

set send pack 1024

set block 3

set term bytesize 8

set command bytesize 8

set flow none

set modem hayes

set dial hangup off

set carrier auto; Then SET CARRIER if necessary,

set dial display on; Then SET DIAL if necessary,

set input echo on

set input timeout proceed

set input case ignore

def \%x 0; login prompt counter

goto slhup

:slcmd; put the modem in command mode

echo Put the modem in command mode.

clear; Clear unread characters from input buffer

pause 1

output +++; hayes escape sequence

input 1 OK\13\10; wait for OK

if success goto slhup

output \13

pause 1

output at\13

input 1 OK\13\10

if fail goto slcmd; if modem doesn't answer OK, try again

:slhup; hang up the phone

clear; Clear unread characters from input buffer

pause 1

echo Hanging up the phone.

output ath0\13; hayes command for on hook

input 2 OK\13\10

if fail goto slcmd; if no OK answer, put modem in command mode

:sldial; dial the number

pause 1

echo Dialing.

output atdt9,550311\13\10; put phone number here

assign \%x 0; zero the time counter

:look

clear; Clear unread characters from input buffer

increment \%x; Count the seconds

input 1 {CONNECT }

if success goto sllogin

reinput 1 {NO CARRIER\13\10}

if success goto sldial

reinput 1 {NO DIALTONE\13\10}

if success goto slnodial

reinput 1 {\255}

if success goto slhup

reinput 1 {\127}

if success goto slhup

if < \%x 60 goto look

else goto slhup

:sllogin; login

assign \%x 0; zero the time counter

pause 1

echo Looking for login prompt.

:slloop

increment \%x; Count the seconds

clear; Clear unread characters from input buffer

output \13

;

; put your expected login prompt here:

;

input 1 {Username: }

if success goto sluid

reinput 1 {\255}

if success goto slhup

reinput 1 {\127}

if success goto slhup

if < \%x 10 goto slloop; try 10 times to get a login prompt

else goto slhup; hang up and start again if 10 failures

:sluid

;

; put your userid here:

;

output ppp-login\13

input 1 {Password: }

;

; put your password here:

;

output ppp-password\13

input 1 {Entering SLIP mode.}

echo

quit

:slnodial

echo \7No dialtone. Check the telephone line!\7

exit 1

; local variables:

; mode: csh

; comment-start: "; "

; comment-start-skip: "; "

; end:





Дата публикования: 2015-01-10; Прочитано: 265 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...