Ключевые слова:dial-in, ppp, modem, linux, slackware, getty, (найти похожие документы)
From: Andrey V. Mozgovoi <brain at m9 dot ru>
Date: Mon, 2 Aug 2004 18:21:07 +0000 (UTC)
Subject: Готовое решение по настройке dialin сервера
Оригинал: http://brain.msk.ru/dialin/dialin_v2.txt
Как пингвин говорит по телефону
или настройка dialin сервера для доступа в Интернет и аварийной консоли.
Copyright ╘ 2003 by Andrey V. Mozgovoi aka brain. Mail to brain <at> m9 dot ru.
Last Update: 13.02.2003
Вступление:
О том, как настроить в Linux'e модемное соединение уже написано
большое количество статей. Но согласитесь, что когда приходится настраивать
какой-нибудь модем, будь то входящее или исходящее соединение, все равно
приходится открывать пару, тройку документаций, чтоб разобраться во всем
практически с самого начала. После прочтения этой статьи ситуация не
изменится. Настоящая статья не претендует на оригинальное решения поставленной
задачи, но это практически готовое решение по настройке dialin сервера.
"Аварийная консоль" - название завораживающее, но в мире реальности
это все лишь консоль, в которую можно попасть благодаря тому же модемному
соединению. Кстати она(консоль) становится действительно аварийной, когда
доступ к вашему любимому серверу по каким-либо причинам не возможен через
сеть, а вам срочно надо что-то поправить или проверить. Один только пример
удаленного администрирования чего стоит... Я имею, введу небольшую сеть без
подступа в Интернет. Доступ в Интернет. Выражение "доступ в Интернет"
в этой статье представляется так: пользователь ввел номер телефона, логин и
пароль, нажал кнопку 'OK', послушал веселую трель модема и попал (по
настоящему попал) во всемирную паутину байтов, проводов, серверов,
а главное информации. Кстати главный девиз настоящих хакеров, не тех что
читают от корки до корки журнал "хакер" и даже не тех, которым удалось таки
стащить пароли других пользователей, воплощая в жизнь советы журнала.
Судите сами ведь не так давно прошла новость, что пара таких кулхацкеров получила
срок. На что надеялись? Думали, что на их АТС нет определителя номера! Кхм
кхм... Вернемся к нашим баранам, главный девиз настоящих хакеров - Информация
должна быть свободной. Можете сами в этом убедиться, прочитав замечательный
перевод книги "Hackers, heroes of computer revolution", доступный в internet
по адресу http://cooler.irk.ru/hackers/. И если вам не хочется платить за
качественный Интернет по модему, вы можете настроить dialin сервер в вашем
офисе. Пусть не такой быстрый, но бесплатный. Почему не такой быстрый? Все
просто. Даже если на вашем модеме красуется надпись '56k', это не значит, что
модем полностью использует эту скоростью. Дело в том, что 56k
модем(стандартный модем типа Курьер) может только принимать, но не как ни
посылать. Следовательно, максимальная скорость соединения будет 33.6k. Но
этого вполне достаточно, если учесть, что не надо плотить за пользование
модемным пулом. Хочу заметить, что у меня сервер имеет 18 модемов. Такое
количество портов обеспечили две мультипортовки от Digiboard. Но это уже не
относится к введению ;)
Полусухая теория:
Назвать окончательно настроенный сервер полноценным модемным пулом не
поворачивается язык. Но все же. Для начала нам понадобится компьютер,
подойдет практически любой, тут уж на ваш выбор. Операционная система
Linux. Я использую дистрибутив Slackware (http://www.slackware.com), этот
дистрибутив действительно достоин звания Linux. Приятная загрузка в стиле
BSD, а самое главное все можно подогнать напильником(а то и рашпилем, админы
поймут).
Описанная ниже настройка, при понимании происходящего, будет
работать и на остальных дистрибутивах Linux и думаю на всех остальных системах,
куда портирован pppd (FreeBSD и т.д.). Модем посоветую тот, который хорошо держит
линию. Поймите меня правильно, конкретизировать здесь сложно. Разве что
только не winmodem. Куда цеплять? На Com порт. То, что у меня стоят
мультипортовки, а у вас нет - особого значения не имеет, т.к. в системе это
всего лишь "имена файлов". Другое дело если вам надо выбрать мультипортовку. Тут
критерий тоже не особо сложен - чтоб в Linux(или что у вас там)
поддерживалась. Мой выбор Digiboаrd. О его настройки могу сказать - все пучком ;)
Есть файл интерактивной настройки, в котором все настраивается и прописывается.
В результате подгружаются необходимые модули и появляются новые девайсы в /dev.
Я же сказал - все пучком ;)
Имеем: компьютер, ОС и подключенный модем. Что дальше? А дальше
программная часть. В теории это выглядит так: работает машина, висит
включенный модем. Один программный пакет инициализирует модем и обрабатывает
входящие звонки. Решает, что "отдать" на абоненту консоль или Интернет.
Консоль отдается стандартными средствами, а Интернет с помощью второго ПО.
Пакеты как вы, наверное, уже догадались mgetty и pppd соответственно.
Настройка:
Как Linux начинается с ядра, так и настройка его начинается с ядра.
Думаю, что подробное описание настройки ядра выходит за рамки данной статьи,
так что отмечу в общих чертах. Убедитесь, что присутствует поддержка
последовательных портов(обычно установлена, да и если вы используете
мультипортовку, которую понимает ядро без дополнительных модулей естественно
включите ее поддержку), поддержка консоли на последовательных портах, pppd лучше
не включать в ядро, а поддержать модулем(потом не забудьте подгрузить
необходимые модули). Сохраняем изменения, и собираем:
make dep && make clean bzImage
make modules && make modules_install
make bzlilo - ну или что у вас там.
reboot
Идем дальше... Самое время настроить мультипортовку. Если она не
поддерживается в стабильном последнем ядре Linux, а производитель заявил что
карточка 'Linux compatible' - найдите на homesite производителя драйвера...
тут я вам не в силах помочь. Главное определите имена устройств в системе,
куда подключен модем.
Добрались до mgetty. Изначально этот пакет написан для подключения факса,
но используется так же для dialin серверов, особенно с появлением возможности
AutoPPP(автоматического определения ppp соединения).
if (пакет уже установлен) {
Убедитесь, что он собран с параметром -DAUTO_PPP.
} else {
Скачиваем последнюю версию mgetty с домашнего сайта
(http://alpha.greenie.net/mgetty/), распаковываем и собираем
с параметром -DAUTO_PPP. Процесс сборки хорошо описан в файле
README.1st, но нет ничего плохого описать необходимые нам
действия здесь.
Во-первых, надо скопировать файл 'policy.h-dist' в 'policy.h'.
Во-вторых, отредактировать файл 'Makefile', добавив в него
заветный параметр. Флаг задается компилятору в 110й строке.
Открывает файл в редакторе, для кого в чем удобнее, я
использую joe, спускаемся на нужную строку и добавляем
-DAUTOPPP, получается:
'CFLAGS=-O2 -Wall -pipe -DAUTO_PPP'
Вы можете добавить еще что-нибудь по вкусу, но это основное.
Кстати в зависимости от OS строка может видоизмениться(см
комментарии). Теперь собираем и если все в порядке инсталлируем:
'make && make install'
}
Установим pppd.
if (пакет уже установлен) {
При настройки своего сервера я использовал версию, поставляемую
в комплекте c дистрибутивом. Так что если у вас уже установлен
этот пакет, убедитесь разве что "в его свежести".
} else {
Домашний сайт pppd располагается по адресу
(http://www.samba.org/ppp/). Забираем последнюю версию -
pppd-2.4.1(на момент написания статьи). Распаковываем.
В моем дистрибутиве пакет собран следующим образом. Добавлена
поддержка callback'a
'zcat ppp-cbcp.diff.gz | patch -p0 --backup --suffix=.orig'
'zcat ppp.time.diff.gz | patch -p1 --backup --suffix=.orig'
'./configure'
'make && make install'
}
Понятно, что инициализировать модем будет mgetty. Как это
организовать - вопрос творческий. Можно каждый раз вводить... Точнее
можно настроить mgetty так, чтоб он инициализировал модем, вводя длинную строку
инициализации. Я выбрал несколько иной путь. Зашел в модем терминалом, ввел
необходимую мне строку инициализации и записал ее в память, которая
энергонезависима, следовательно, не боится перебоя питания.
Терминал любой, хоть Hyper Terminal(win32), minicom(linux). Строка инициализации
на ваш вкус, по адресу http://www.usrsupport.ru/, если я не ошибаюсь, вы найдете
все вам не обходимое о инициализации. Я находил даже записи трелей модемов при
соединении по разным протоколам!!! хотя это к делу не относится ;) Как выглядит
строка инициализации, зависит от марки вашего модема. В своих Курьерах я
вводил:
--- ВВОД ---
ATZ OK
AT&F1 OK
ATC10=17 OK
AT&F1 OK
AT&P1 OK
AT&W OK
--- EOF ---
Главное определитесь, как хотите настроить модем и ищите нужные вам регистры.
Кстати сильно может помощь документация, которая идет в комплекте с модемом.
Основные критерии можно свести к вопросу, с какого звонка снимать трубку?
Дерзайте, только после настройки не забудьте записать изменения регистров,
с помощью команды 'AT&W'. В последствии это нам пригодится. После этого
инициализировать модем можно по 'ATZ'. Эта команда "вытащит" из памяти, то что
вы записали по 'AT&W'. Понятие о памяти дано в общих чертах.
К этому моменту у вас уже должен быть настроен модем. Допустим он
должен брать трубку со второго звонка(S0=2). Проверьте это. Для
убедительности выкл. и вкл. модем, зайдите на него терминалом, скажите 'ATZ'
затем организуйте звонок на модем с другого номера. Должен поднять после
второго гудка. Если нет, добейтесь желаемого результата, так как от этого
зависит дальнейшая настройка сервера.
Имея настроенный модем можно браться за настройку mgetty. Ищем куда же он
установлен... Находим конфигурационный файл mgetty.config(конечно если
вы переопределили имя файла в policy.h при сборке - ищем указанное вами имя).
В mgetty у меня всего две строчки:
--- mgetty.config ---
data-only y
init-chat "" AT OK ATZ OK
--- mgetty.config ---
Хотя в этом файле так же можно задать скорость соединению(на сколько я
понял лучше ставить как можно больше, 57600 или 115200, поскольку это скорость
соединения модема с машиной, а не с пользователем), уровень отладки, но мне
удобнее таких параметры задать в /etc/inittab(см. ниже). Кстати вспомните,
что я говорил о 'ATZ'(см. выше).
Следующий необходимый нам файл - login.config.
--- login.config ---
/AutoPPP/ - pppd /usr/sbin/pppd file /etc/ppp/options
* - - /bin/login @
--- login.config ---
Первая строка определяет, что делать с входящими ppp соединениями.
Вторая как раз и есть аварийная консоль. Вызвать ее можно, установив
соответственную галочку(в win32) о выводе терминала после соединения. Что мы и
будем использовать для тестирования. Избавиться от этой консоли можно
указав вместо '/bin/login', что-нибудь ложное '/bin/fasle' или '/dev/null'.
Как запускать mgetty? Те, кто использует единственную телефонную линию
офиса могут установить поднятие трубки с 5-6 звонка(будьте осторожны этому -
есть предел) или поднимать mgetty в нерабочее время с помощью crond. Так же
надо учесть, что после разрыва соединения процесс mgetty должен быть поднят
заново. У меня, как сервер выделен отдельно, так и линии выделены спецом под
dailin, следовательно, все работает круглосуточно. Получается и mgetty надо
держать поднятым круглосуточно. Для этого удобнее всего использовать initd.
Он сам поднимет модемы при загрузки сервера и после разрыва соединения. Файл
конфигурации /etc/inittab. Ниже приведены строки, относящиеся к модемам.
Думаю лучше всего их прописать после консолей.
--- inittab ---
D005:345:respawn:/usr/local/sbin/mgetty -s 57600 /dev/ttyD005 ttyD005
D006:345:respawn:/usr/local/sbin/mgetty -s 115200 /dev/ttyD006 ttyD006
--- inittab ---
Формат строк прост: id:runlevels:action:process,
подробней в man inittab. Первая строка относится к модему Курьер, вторая к
стоечным Зюксилям, у них разные скорости. В параметрах mgetty можно указать
уровень отладки. На пример, чтоб писались лог файлы по каждому модему в отдельный
файл, что удобно при отладке, добавьте '-x 5'.
Да и учтите, что у меня на борту есть мультипортовки. Т.е. если у вас нет
мультипортовки и модем висит на Com2, скорее всего стока будет выглядеть
примерно так:
's1:12345:respawn:/usr/local/sbin/mgetty -s 57600 /dev/ttyS1 ttyS1'
Один из приятных моментов статьи - тестирование. Если вы сделали все
правильно, перезагрузите initd ('init q'). Должны увидеть, как поднимутся
модемы. Поскольку pppd мы еще не настраивали, тестировать можно только
аварийную консоль. Думаю вы понимаете, что если тестировать консоль, то в
'login.config' указан '/bin/login'(или типа того), а галочка о выводе
терминала после установки соединения установлена. Да чуть не забыл.
*!!!* Пользователи, которые могут входить через аварийный вход должны быть
прописыны в системе(/etc/passwd), а пользователи использующие pppd(Интернет)
должны быть прописаны с соответствующих файлах настройки pppd (при pap
авторизации /etc/ppp/pap-secrets, при chap - /etc/ppp/chap-secrets) *!!!*
В виндах настройте модемное соединение. Звоним... модем берет трубу после
нужного гудка, устанавливается соединение и вываливается окно терминала.
Введя в терминале ligin & password, должны увидеть любимый shell. Если что-то
не получилось, не паникуйте. Посмотрите лог файлы, уверен найдете все ответы.
Кстати, в будущем имея настроенный pppd мы так же будем проверять и его
работу с помощью этого соединения. После того, как получили shell, можно
запустить 'pppd', затем клавишу 'F7' для закрытия терминала и продолжения
работы, но уже в Интернет (pppd должен быть настроен).
Настройка pppd. Это второй творческий вопрос. Есть масса вариантов
настройки. Так на пример каждый пользователь может иметь свой ip адрес или
каждый модем может иметь стой ip. Можно организовать определитель
номера(вопрос к mgetty), используя его настроить callback.
Авторизация PAP, CHAP или скрипты. Опишу, как сделал сам и постараюсь
затронуть другие варианты. Обратите внимание на одну важную деталь - pppd,
должен иметь возможность запускаться от пользователя. Если вам не удастся
решить это настройкой самого демона, установите привилегию на запуск от
владельца файла(uid).
Биллинг пользователей модемного пула сделан на основе выходных
данных самого pppd, по этому мне не принципиально, чтоб каждый пользователь
имел свой ip адрес (=> каждый модем имеет свой ip). Конфигурационный файл
pppd - /etc/ppp/options. Листинг файла легче смотреть с помощью 'egrep -v
'#|^ *$' /etc/ppp/options', так печатаются только не закомментированные
строки:
--- /etc/ppp/options ---
192.168.1.1:
ms-dns <primary dns server ip>
ms-dns <scondary dns server ip>
ms-wins <primary wins server ip>
ms-wins <secondary wins server ip>
asyncmap 0
auth
crtscts
lock
modem
-detach
+pap
-chap
debug
usehostname
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
--- /etc/ppp/options ---
Первая строка это ip адрес сервера, на котором висит модем, и
клиента, который дозвонился на сервер. Формат строки:
<server ip addr>:<client ip addr>, как видите, я задаю ip адрес только для
сервера. Для клиентов, точнее для модемов ip адреса заданы в отдельных
файлах, имена которых соответствуют именам устройств, к которым подключены
модемы. У меня так:
--- ls -1 ---
options
options.ttyD000
options.ttyD001
options.ttyD002
...
--- ls -1 ---
Если у вас нет мультипортовки, а модемов допустим только два, на
первом и втором com-портах, файлы будут: options.ttyS0 и options.ttyS1
соответственно. Файл options.ttyS1 к примеру может выглядеть следующим
образом:
--- cat options.ttyS0 ---
:192.168.1.2 - двоеточие обязательно!
--- cat options.ttyS0 ---
Кстати если у вас всего один модем, то ни кто не запретит
вам указать ip адрес для него прямо в /etc/ppp/options. Продолжая тему
выдачи ip адресом замечу, что если вы желаете выдавать каждому пользователю
по _своему_ ip адресу, его(ip) нужно указать в четвертом столбце файла
авторизации /etc/ppp/pap-secrets или /etc/ppp/chap-secrets. Строка 'auth'
как раз и требует, чтоб пользователь сначала ввел логин и пароль для
регистрации только потом pppd позволит войти в сеть. Строки '+pap' и '-chap'
означают использовать только pap авторизацию. Листинг pap-secrets:
--- cat pap-secrets ---
# Secrets for authentication using PAP
#client server secret ip-addr
test * passfortest *
test1 * passfortest1 *
--- cat pap-secrets ---
Если в качестве пароля указать '""' (две двойные кавычки) pppd
постарается найти пароль в системной базе данных паролей. Проще говоря в
/etc/shadow.
Полный перевод комментариев файла /etc/ppp/options смотрите в
приложении. Большое спасибо автору перевода, к сожалению, не знаю его имени.
На этом и заканчивается вся настройка модемного пула. Приступайте к
тестированию, ищите ошибки в логах. Возникшие вопросы вы можете задать в
форуме домашнего сайта журнала, в разделе "Вопросы читателей к авторам" (URL:
http://www.samag.ru/cgi-bin/yabb/YaBB.pl?board=answer_cat) +(лучше пишите на
форум чем на почту)
Не затронутой осталась тема подсчета статистики пользователей. Могу
на толкнуть на мысль: man pppd (раздел SCRIPTS). Будет время опишу пример
построения биллинга основанный на выполнении этих скриптов. Лучше конечно
пропатчить сам pppd, но все же...
Как говорит один мой знакомы системный администратор: читайте доки -
они рулез (с). Да прибудет с вами сила ;)
ПРИЛОЖЕНИЕ: перевод файла /etc/ppp/options
# Использовать указанную команду или программу для настройки линии. Этот
# обычно использует программу "chat", чтобы позвонить модемом и запустить
# удаленную ppp сессию.
#connect "echo Вам нужно установить команду connect."
# Запустить указанную команду или программу, когда pppd завершил связь.
# Этот скрипт мог бы, к примеру, ввести команды в модем, чтобы завершить
# связь, если сигналы аппартного управления модемом недоступны
#disconnect "chat -- \d+++\d\c OK ath0 OK"
# async карта символов -- 32-bit hex; каждый бит - символ, который надо
# представить в виде escape-последовательности, чтобы pppd мог его принять.
# 0x00000001 - это маска для '\x01', а 0x80000000 - маска для '\x1f'.
#asyncmap 0
# Требование для удаленной стороны назвать себя перед тем как начнется обмен
# пакетами.
#auth
# Использовать аппаратное управление потоком данных (напр., RTS/CTS), чтобы
# управлять потоком данных на последовательном порту
#crtscts
# Использовать программное управление потоком данных (напр., XON/XOFF), чтобы
# управлять потоком данных на последовательном порту
#xonxoff
# Добавить маршрут по умолчанию в системную таблицу маршрутизации,
# используя удаленную сторону как шлюз, когда договоренность IPCP успешно
# достигнута. Эта запись удаляется при завершении связи
#defaultroute
# Определяет, что некоторые символы должны быть за'escape'лены при передаче
# (Независимо от того, просила ли удаленная сторона их escape'ить своей
# async картой управляющих символов). Символы, которые надо escape'ить
# указываются в виде списка шестнадцатеричных чисел, разделенных запятыми.
# Заметьте, что для опции escape могут быть указаны почти все символы, в
# отличие от опции asyncmap, которая позволяет указывать только управляющие
# символы. Символы, которых нельзя escape'ить - это 0x20 - 0x3f или 0x5e.
#escape 11,13,ff
# не использовать линии управления модемом.
#local
# Указывает, что pppd должен использовать lock в стиле UUCP на
# последовательное устройство, чтобы исключить одновременный доступ к
# устройству
#lock
# Использовать линии управления модемом. На Ultrix эта опция означает
# управление потоком данных, как опция crtscts. (Эта опция не полностью
# выполняется)
#modem
# Установить значение MRU [Maximum Receive Unit] в <n> при договоренности.
# pppd запросит удаленную сторону отправлять пакеты не более, чем по <n> байт.
# Минимальное значение MRU 128. Значение MRU по умолчанию 1500. Для
# медленных линков рекомендуется 296 (40 байт для заголовка TCP/IP + 256 байт
# данных).
#mru 542
# Установить сетевую маску интерфейса в <n>, 32-битная сетевая маска в
# "десятично-точечной" нотации (напр., 255.255.255.0).
#netmask 255.255.255.0
# Запретить поведение по умолчанию, когда не указан локальный IP адрес,
# которое определяет (если возможно) локальный IP адрес по имени хоста
# С этой опцией удаленная сторона должна будет обеспечить локальный IP
# адрес в течение IPCP переговоров (если она не определена явно в командной
# строке или в файле options).
#noipdefault
# Разрешить опцию "passive" в LCP. С этой опцией pppd будет пытаться
# инициировать соединение; если ответ от другой стороны не принят, то
# pppd будет пассивно ожидать правильный LCP пакет от другой стороны
# (вместо выхода, как делается без этой опции).
#passive
# С этой опцией pppd не будет передавать LCP пакеты для инициации соединения
# пока не придет правильный LCP пакет от другой стороны (как опция "passive"
# в старых версиях pppd).
#silent
# Не требовать или не разрешать договариваться о любых опциях LCP и IPCP
# (использовать значения по умолчанию).
#-all
# Запретить договариваться о сжатии адреса/управления (используется
# по умолчанию, т.е. адресные/управляющие поля запрещены).
#-ac
# Запретить договариваться о asyncmap (используется asyncmap по умолчанию, т.е.
# escape все управляющие символы).
#-am
# Не переходить в фоновый режим (иначе pppd бдет делать так, если
# последовательной устройство указано).
#-detach
# Запретить договариваться о IP адресе (С этой опцией удаленный IP
# адрес должен указываться опцией командной строки или в файле options)
#-ip
# Запретить договариваться о магических числах. С этой опцией pppd не может
# определить looped-back линию.
#-mn
# Запретить договариваться о MRU [Maximum Receive Unit]
# (используется по умолчанию, т.е. 1500).
#-mru
# Запретить договариваться о сжатии полей протокола (используется по
# умолчанию, т.е. сжатие полей протокола запрещено).
#-pc
# Требует, чтобы другая сторона назвала себя используя PAP.
# Это требует ДВУНАПРАВЛЕННОЙ аутентификации - НЕ используйте эту
# опцию для стандартной аутентификации PAP на ISP, так как при этом требуется,
# чтобы машина ISP аутентифицировала себя на вашей машине (а она это не сможет
# сделать)
#+pap
# Не соглашаться с аутентификацией PAP.
#-pap
# Требует, чтобы другая сторона назвала себя используя CHAP [Cryptographic
# Handshake Authentication Protocol].
# Это требует ДВУНАПРАВЛЕННОЙ аутентификации - НЕ используйте эту опцию
# для стандартной аутентификации CHAP на ISP, так как при этом требуется,
# чтобы машина ISP аутентифицировала себя на вашей машине (а она это не сможет
# сделать)
#+chap
# Не соглашаться с аутентификацией CHAP.
#-chap
# Запретить обсуждение сжатия IP заголовков в стиле Van Jacobson
# (используется по умолчанию, т.е. сжатия нет)
#-vj
# Увеличить уровень отладки (то же что -d). Если эта опция есть, pppd
# будет записывать в журнал все прибывшие и отправленные пакеты в читабельной
# форме. Пакеты регистрируются в лог файлах через syslog со средством daemon
# и уровнем отладки. Эта информация может быть перенаправлена в файл
# соответствующей установкой /etc/syslog.conf (см. syslog.conf(5)). (Если
# pppd скомпилирован с разрешенной extra отладкой, он будет записывать
# сообщения в журнал, используя средство local2 вместо daemon).
#debug
# Добавить имя домена <d> к локальному имени хоста для целей аутентификации.
# Например, если gethostname() возвращает имя porsche, но FQDN -
# porsche.Quotron.COM, то вы должны установить эту опцию, чтобы имя домена
# было Quotron.COM.
#domain <d>
# Разрешить отладочный код в PPP драйвере на уровне ядра. Аргумент n
# это число-комбинация следующих значений: 1 - разрешить общие отладочные
# сообщения, 2 - запросить, надо ли печатать содержимое принимаемых пакетов
# и 4 - запросить, надо ли печатать содержимое отправляемых пакетов
#kdebug n
# Установть значение MTU [Maximum Transmit Unit] в <n>. Пока другая сторона
# на попросит меньшее значение при договоре о MRU, pppd будет требовать у
# сетевого кода ядра отправлять пакеты данных не более, чем по n байт
# через сетевой интерфейс PPP.
#mtu <n>
# Установить имя локальной системы для аутентификационных целей в <n>.
# Возможно, ее надо будет установить в ваше имя на вашем ISP,
# если используется PAP/CHAP.
#name <n>
# Установить имя пользователя для аутентификации этой машины на другой стороне
# используя PAP, в значение <n>.
# НЕ использовать, если вы использовали опцию 'name'!
#user <n>
# Заставить использовать имя хоста как имя локальной системы для
# аутентификационных целей (перекрывает опцию name).
#usehostname
# Установить имя удаленной системы для аутентификационных целей в <n>.
#remotename <n>
# Добавить запись для этой системы в таблицу ARP [Address Resolution Protocol]
# с IP адресом удаленной системы и Ethernet адресом этой системы
#proxyarp
# Использовать базу данных паролей для идентификации удаленной стороны
# используя PAP.
#login
# Если эта опция назначена, pppd будет отправлять кадр LCP echo-request
# удаленной стороне каждые n секунд. Под Linux, echo-request отправляется
# когда пакеты не принимаются от удаленной стороны n секунд. Обычно
# удаленная сторона должна отвечать на echo-request отправкой echo-reply.
# Эта опция может быть использована с опцией lcp-echo-failure для
# определения что удаленная сторона больше не соединена.
#lcp-echo-interval <n>
# Если эта опция задана, pppd будет считать, что связи с peer нет, если n
# LCP echo-requests отправлены без приема правильных LCP echo-reply.
# Если это случилось, pppd завершит связь. Использование этой опции
# требует ненулевого значения для параметра lcp-echo-interval.
# Эта опция может быть использована, чтобы разрешить pppd завершать связь,
# если физическое соединение отсутствует (напр, модем бросил трубку) в
# ситуациях, когда доступны линии управления модемом.
#lcp-echo-failure <n>
# Установить интервал рестарта LCP (пауза возобновления передачи) в <n> секунд
# (по умолчанию 3).
#lcp-restart <n>
# Установить максимальное число передач LCP terminate-request в <n>
# (по умолчанию 3).
#lcp-max-terminate <n>
# Установить максимальное число передач LCP configure-request в <n>
# (по умолчанию 10).
# Некоторые PPP сервера долго стартуют. Вам может понадобиться увеличить эту
# величину, если вы получаете ошибки 'serial line looped back' и вы УВЕРЕНЫ,
# что корректно регистрируетесь и PPP должен запускаться на сервере.
#lcp-max-configure <n>
# Установить максимальное число LCP configure-NAKs, возвращенных перед началом
# отправки вместо configure-Rejects, в <n> (по умолчанию 10).
#lcp-max-failure <n>
# Установить интервал рестарта IPCP (пауза возобновления передачи) в <n>
# секунд (по умолчанию 3).
#ipcp-restart <n>
# Установить максимальное число передач IPCP terminate-request в <n>
# (по умолчанию 3).
#ipcp-max-terminate <n>
# Установить максимальное число передач IPCP configure-request в <n>
# (по умолчанию 10).
#ipcp-max-configure <n>
# Установить максимальное число IPCP configure-NAKs, возвращенных перед
#началом отправки вместо configure-Rejects, в <n> (по умолчанию 10).
#ipcp-max-failure <n>
# Установить интервал рестарта PAP (пауза возобновления передачи) в <n> секунд
# (по умолчанию 3).
#pap-restart <n>
# Установить максимальное число передач PAP authenticate-request в
# <n> (по умолчанию 10).
#pap-max-authreq <n>
# Установить интервал рестарта CHAP (пауза возобновления передач
# challenges) в <n> секунд (по умолчанию 3).
#chap-restart <n>
# Установить максимальное число передач CHAP challenge в <n>
# (по умолчанию 10).
#chap-max-challenge
# С этой опцией pppd будет re-challenge удаленную сторону каждые <n>
# секунд.
#chap-interval <n>
# С этой опцией pppd будет принимать предложение peer о нашем локальном IP
# адресе, даже если локальный IP адрес был указан в опциях.
#ipcp-accept-local
# С этой опцией pppd будет принимать предложение peer о его (удаленном) IP
# адресе, даже если удаленный IP адрес был указан в опциях.
#ipcp-accept-remote
#EOF