Провайдим с помощью mgetty 10.06.1999
В нашем далёком от совершенства мире большинство средств коммуникации
напрочь не понимают спартанский диалог
"ogin:/assword:",
выдаваемый getty .
К ним относятся, например, фидошные звонилки, ну и, конечно, факсы.
Кроме того, можно упростить входящие PPP- и UUCP-соединения, если
обрабатывать их сразу с помощью pppd и uucico ,
а не вызывать эти команды через login .
Для того, чтобы избежать этот диалог, можно установить
mgetty , обладающую такими полезными свойствами:
После того, как mgetty выдаёт
стандартный "login:",
она может распознать LCP-кадры и вызвать, например,
pppd. Таким образом, мы можем провести
PAP или CHAP аутентификацию, минуя диалог
"ogin:/assword:".
В принципе, как мы уже видели,
подобное умеет делать и getty .
Для этого нужно собрать mgetty с ключом
-DAUTO_PPP .
Если Вы будете устанавливать mgetty из порта,
то она соберётся с этим ключом.
Если после соединения mgetty обнаруживает,
что соединение произошло с факс-аппаратом или факс-модемом,
то mgetty может принять факс.
Перед выдачей приглашения "login:" mgetty
может выдать "**EMSI_REQA77E",
и если на другой стороне
находится какой-либо фидошный пакет и он начнёт фидошную сессию,
то mgetty это поймёт и может вызывать,
например, ifcico .
Для этого нужно собрать mgetty с ключом
-DFIDO .
Для некоторых пользователей mgetty
может вызывать не login , а что-нибудь иное,
например, для всех пользователей, имена которых начинаются на UU,
mgetty может вызывать uucico .
В этом случае нам не нужно заводить специального пользователя для
каждого uucp-клиента.
И, наконец, mgetty гораздо интеллектуальнее в работе с
модемом, чем стандартная getty .
Для того, что бы собрать mgetty из порта,
Вам нужно выполнить следующие команды:
cd /usr/port/comms/mgetty+sendfax
make
После успешной сборки Вы можете установить mgetty командой:
make install
Во время установки Вам будет задан ряд вопросов касательно порта и модема,
и если Вы ответите на них вменяемо, то получите вполне рабочую конфигурацию.
Я не буду останавливаться на этом, подробности Вы можете найти на
сайте mgetty.
Отмечу лишь, что, если Вы устанавливаете mgetty
на устройство, скажем, cuaa1 ,
а до этого на ttyd1 у Вас было getty ,
то после установки Вам необходимо будет изменить
строку для ttyd1 в файле /etc/ttys :
ttyd1 "/usr/libexec/getty std.57600" dialup off insecure
В самом конце этого файла Вы найдёте новую строку для cuaa1 ,
добавленную туда при установке:
cuaa1 "/usr/local/sbin/mgetty" unknown on insecure
После того, как все изменения сделаны, нужно перестартовать
init :
kill -1 1
Для того, что бы mgetty распознавала LCP-кадры
нужно раскомментировать строку в
/usr/local/etc/mgetty+sendfax/login.conf :
#/AutoPPP/ - a_ppp /usr/sbin/pppd auth +chap +pap login debug
А ещё лучше немного изменить на
/AutoPPP/ - a_ppp /usr/sbin/pppd auth \
refuse-chap require-pap login debug
+pap это старый способ записи параметра
require-pap.
Кроме того, мы запрещаем CHAP по соображениям, описанным в статье
"Аутентификация PAP и CHAP".
Когда pppd запускается mgetty ,
параметр login делает такие записи
в файл /var/log/wtmp :
max cuaa1 :PPP Mon Jun 7 20:20 - 20:35 (00:15)
a_ppp cuaa1 14400/ARQ/V42b Mon Jun 7 20:20 - 20:20 (00:00)
Такое поведение параметра login присуще только
pppd, входящему в комплект FreeBSD.
О других отличиях читайте в статье
"Сравнение версии pppd, входящей в дистрибутив FreeBSD, c обычной версией" (C) Игорь Сысоев http://sysoev.ru |