Настройка PPP dial-in сервера
(PAP аутентификация)

C чего начать?
Проинсталлировать ppp-2.3.X (рекомендую 2.3.10 - там есть возможность написать свои plug-in'ы, а это оччень хорошо!) и mgetty-1.1.X (свежее). Последний всенепременно должен быть скомпилен с опцией -DAUTO_PPP, если нет, то надо пересобрать.
При нормальном раскладе должны появиться директории:

/etc/mgetty+sendfax

dialin.config
login.config
mgetty.config
/etc/ppp
auth-up
auth-down
chap-secrets
ip-up
ip-down
options
pap-secrets

Если таковых нет, покопаться и найти. При самосборе смотрите куда и что проинсталлировалось. Если каких-то файлов нет - не страшно, создадим сами.

Настройка mgetty.
На звонки обычно отвечает mgetty, хотя есть еще как минимум дюжина других программ.
/etc/mgetty+sendfax/dialin.config - как правило пустой (все закомментировано).
/etc/mgetty+sendfax/login.config - должен содержать строчки
/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login
* - - /bin/login @
Это говорит о том, что мы принимаем автоматы по ppp с аутентификацией по PAP и простые логины (при желании последнее можно убрать).
/etc/mgetty+sendfax/mgetty.config - примерно такой:
port ttyS0
speed 57600
data-only y
debug 3
init-chat "" AT OK ATS7=50S0=1+S62=10+S64=2S39=10 OK
Настройки приведены для USRobotics V.Everything на COM1 (при желании можно S0=0, но тогда нужно добавить answer-chat "" ATA в настроки для порта).
Далее нужно поставить mgetty в inittab. Вот пример inittab:

id:3:initdefault:

# System initialization. si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Things to run in every runlevel.
ud::once:/sbin/update

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now


# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

#
# added by pharao
#
S4:2345:respawn:/sbin/mgetty /dev/ttyS0

Чтобы mgetty стартовал надо послать команду:
kill -1 1
На модеме тотчас должна загореться лампочка TR - это означает что mgetty подхватил модем и начал функционировать. Настройку можно считать законченной если при входящем звонке модем поднимает трубку и устанавливает соединение.

Настройка pppd.
Тут все просто. Аутентификация производится по PAP (Windoze и *NIX будут довольны :). После установления коннекта mgetty анализирует что ей поступает на вход, в случае когда приходит запрос на PAP (a_ppp), то она моментально отваливается с линии и запускает pppd, потому как mgetty не уполномочена проводить аутентификацию типа PAP, этим занимется сам pppd.
Настраиваем порт. Обычно это делается так: в каталоге /etc/ppp создается файл options.ttySX (вместо X - номер порта. Для COM1 - ttyS0) такого содержания:

Вариант 1 Вариант 2 (ppp-2.3.X)
lock
login
auth
modem
crtscts
-chap
+pap
mtu 576
mru 576
AAA.AAA.AAA.AAA:BBB.BBB.BBB.BBB
ms-dns CCC.CCC.CCC.CCC
lock
login
auth
modem
crtscts
refuse-chap
require-pap
mtu 576
mru 576
AAA.AAA.AAA.AAA:BBB.BBB.BBB.BBB
ms-dns CCC.CCC.CCC.CCC

Где вместо AAA.AAA.AAA.AAA прописывается IP адрес локального компа, вместо BBB.BBB.BBB.BBB - адрес, который будет выдан удаленному компу, CCC.CCC.CCC.CCC - адрес сервера DNS (для удаленного клиента Windoze). Общие параметры, существующие во всех options.ttySX, можно вынести в options. При выборе IP для удаленного хоста следует учесть что IP должно быть вне broadcast ваших сетевых плат. Если же такой возможности у вас нет и вы даете удаленному хосту адрес из существующего broadcast, то не забудьте в options вставить строчку proxyarp, в этом случае pppd будет делать вид что удаленный хост якобы подключен по ethernet.
Далее надо настроить файл /etc/ppp/pap-secrets. Вот пример:
#
user1 сервер.домен "" *
user2 сервер.домен "" *
#

Параметры:
  1. user1 - имя юзера (зарегистрированного в системе).
  2. Сервер на котором будет проводиться опознание (вместо сервер.домен поставить конкретное название вашего хоста).
  3. "" - пароли брать из /etc/passwd (или /etc/shadow).
  4. * - абонент может аутентифицироваться с любого IP.
Теперь все OK. Можно проверять. В Windoze проставить как обычно, удаленное соединение, всю информацию об IP и DNS брать у провайдера. Скриптов на Windoze писать не надо.
Если что не так - смотрите log'и!!! /var/log/messages - там есть много интересного!

Updated by Russu V.F. ruwa@psrp.te.ru
Все комметарии направлять мне.

Maintained by digital pharao 1999


Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости