Персональный
сайт
Игоря
Сысоева


 
english
обо мне
 
sysoev.ru
 
nginx
 
mod_accel
mod_realip
mod_deflate
программирование
всякая всячина
windows
freebsd
apache
pppd
unix
web
 
 

Аутентификация PAP и CHAP и getty

 

24.08.1999

До недавнего времени аутентификация посредством диалога "ogin:/assword:" устраивала многих. Но поскольку для аутентификации посредством "ogin:/assword:" в Windows необходимо установить скрипт, Вы понимаете, насколько это усложняет жизнь жаждущему припасть к живительной влаге Интернета. Хотя этот скрипт достаточно стандартен, тем не менее, он не идёт в комплекте, есть лишь несколько примеров, на основе которых его необходимо создать. Поэтому широкое распространение Windows привело к необходимости сразу переходить к установлению PPP-соединения, минуя этот диалог, и проводить аутентификацию средствами PPP, то есть PAP или CHAP. До недавних пор это было можно реализовать или с помощью mgetty, или правя getty, но, начиная с FreeBSD 2.2.7, getty уже изначально обладает такими способностями.

Поскольку в нашем случае getty использует тип терминала "std.57600", в файле /etc/gettytab найдём запись "std.57600" и добавим туда свойство "pp":

std.57600:57600-baud:\
        :np:sp#57600:\
        :pp=/usr/sbin/pppd.sh:

Что даёт нам это свойство ? После установления соединения getty выдаёт такое приглашение:

login:
PPP-клиент, рассчитывающий на PAP или CHAP аутентификацию и в логинах ничего непонимающий, в это время выдаёт свои зюки:
login:~Ъ}#ю!}!}!} }.}%}&SЩы(}'}"}(}"Щ[~

Раньше getty не понимала истинный смысл этих эюк, воспринимая их как имя пользователя, пусть странное, но всё же имя. Теперь же, после установки свойства "pp", getty посмотрит на зюки совсем по-другому и, распознав их как LCP-кадры, вызовет программу, указанную в качестве параметра свойства "pp", в нашем случае — /usr/sbin/pppd.sh. В этот файл мы запишем следующее:

#!/bin/sh

/usr/sbin/pppd auth
и не забудем сделать его исполняемым. Параметр auth будет требовать у удалённой стороны аутентификацию через PAP или CHAP. В принципе, мы могли бы поместить этот параметр в файлы /etc/ppp/options.device, но тогда удалённая сторона, выполняющая аутентификацию через "ogin:/assword:", будет должна выполнить ещё одну аутентификацию через PAP или CHAP. Windows перенесёт это, не моргнув и глазом, а вот для удалённого pppd придётся ещё занести имя и пароль в один из его secrets файлов.

(C) Игорь Сысоев
http://sysoev.ru