PPPсервер


При запуске pppd нужно учитывать, что запуск в режиме сервера, это только вопрос добавления соответствующей опции в командной строке и конфигурирования последовательного tty-устройства так, чтобы вызвать pppd с соответствующими параметрами, когда было получено входящее обращение. Было бы идеально создать специального пользователя, скажем ppp, и задать ему скрипт или программу, которая вызывает pppd с этими опциями как оболочку входа в систему. Другой вариант: если Вы предполагаете поддерживать авторизацию по PAP или CHAP, можно использовать программу mgetty, чтобы поддерживать модем и использовать свойство "/AutoPPP/".
PPP-сервер

При запуске pppd нужно учитывать, что запуск в режиме сервера, это только вопрос добавления соответствующей опции в командной строке и конфигурирования последовательного tty-устройства так, чтобы вызвать pppd с соответствующими параметрами, когда было получено входящее обращение. Было бы идеально создать специального пользователя, скажем ppp, и задать ему скрипт или программу, которая вызывает pppd с этими опциями как оболочку входа в систему. Другой вариант: если Вы предполагаете поддерживать авторизацию по PAP или CHAP, можно использовать программу mgetty, чтобы поддерживать модем и использовать свойство "/AutoPPP/".

Чтобы создать сервер с использованием метода входа в систему, добавьте следующую строку в файл /etc/passwd:

ppp:x:500:200:Public PPP Account:/tmp:/etc/ppp/ppplogin
Если Ваша система использует затенение паролей, добавьте в файл /etc/shadow строку:
ppp:!:10913:0:99999:7:::

Конечно, UID и GID, которые Вы используете, зависят от того, какой пользователь использован для подключения. Вы также должны установить пароль для этого пользователя, используя команду passwd.

Скрипт ppplogin может выглядеть так:



#!/bin/sh # ppplogin - script to fire up pppd on login mesg n stty -echo exec pppd -detach silent modem crtscts

Команда mesg отключает других пользователей от записи в tty с использованием, например, вызова write. Команда stty выключает повторение символов (эхо). Эта команда необходима: без нее все, что посылает клиент будет послано ему назад. Наиболее важная опция pppd -detach. Она не дает pppd отсоединится от управления tty. Если мы не определили эту опцию, pppd перейдет в фоновый режим, а скрипт входа завершится. Это в свою очередь приведет к завершению связи. Опция silent заставляет pppd ждать получения пакета с вызываемой системы и не начинать свою передачу до его прибытия. Эта опция предотвращает разрыв связи, если удаленная система медлительная. Параметр modem предписывает pppd управлять линиями контроля модема на последовательных портах. Вы должны всегда задать эту опцию при использовании pppd с модемом. Опция crtscts включает аппаратное соединение (hardware handshake).

Помимо этих параметров можно использовать какой-либо вариант авторизации, например, определяя auth в командной строке pppd или в глобальном файле параметров.

Если Вы хотите использовать mgetty, все, что Вы должны сделать, это настроить mgetty так, чтобы поддерживать последовательное устройство с которым связан модем (подробности изложены в главе 4), затем настроить pppd для авторизации по PAP или CHAP с помощью соответствующих параметров в файле options и добавить раздел, подобный следующему, к файлу конфигурации /etc/mgetty/login.config:

# Configure mgetty to automatically detect incoming PPP calls and invoke # the pppd daemon to handle the connection. # /AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login

Первое поле используется, чтобы обнаружить входящее обращение к PPP (чувствительно к регистру). Третий столбец задает имя пользователя, которое появится в выводе команды who. Остальная часть строки команда для вызова сервиса. В нашем примере мы определяем, что нужна авторизация PAP, запрещаем CHAP и определяем, что системный файл passwd должен использоваться для авторизации пользователей. Не забудьте, что Вы можете определять параметры в файле options или в командной строке.

Чтобы запустить PPP на Вашей машине, нужно сделать следующее:

Настроить модем на автоответ. Hayes-совместимые модемы используют для этого команду ATS0=3. Если вы хотите использовать mgetty daemon, это необязательно.

  • Настройте последовательное устройство с помощью команды getty на прием входящих звонков. Обычно это делается с помощью варианта getty, команды mgetty.

  • Решите какой вариант авторизации будет использован. Системный логин, PAP или CHAP?

  • Настройте pppd для работы в режиме сервера.

  • Рассмотрите маршрутизацию. Вы должны обеспечить сетевой маршрут к вызывающим абонентам или нет? Маршрутизация может выполняться, используя скрипт ip-up.



  • Содержание раздела