Персональный | |
Аутентификация PAP и CHAP
24.08.1999
Поскольку при аутентификации через CHAP мы должны высылать
удалённой стороне случайный ключ и имя нашей системы,
это имя необходимо задать с помощью параметра name,
например, в файле modem crtscts asyncmap 0 name fast Если мы не укажем имя нашей системы, pppd будет использовать в этом качестве полное доменное имя компьютера, на котором его запустили, в нашем случае, dial.fast.ru. Иногда в рекомендациях по настройке pppd зачем-то используют параметр domain. Я не знаю, какая цель при этом преследуется, но этот параметр влияет только на имя нашей системы. Если мы укажем параметр domain fast.ru, то имя нашей системы станет dial.fast.ru.fast.ru. Не знаю, как Вам, но мне это совершенно не нужно. Что касается PAP, то для него имя нашей системы необязательно, но не помешает.
В принципе, для клиентов, использующих аутентификацию PAP или CHAP
может вообще не быть записи в Формат этой строки такой имя удалённой системы "max", имя нашей системы "fast", пароль удалённой стороны "abcdefg" и разрешённые для удалённой стороны IP-адреса "*" (символ "*" означает любые).max fast abcdefg * secrets -файл на удалённой стороне должен содержать
похожую строку:
но там поля имеют другой смысл имя его системы "max", имя нашей системы "fast" и пароль "abcdefg".max fast abcdefg
В одном и том же файле могут хранится имена и пароли как для
аутентификации удалённых систем, так и для аутентификации себя.
Первые визуально отличаются наличием поля IP-адреса.
Кроме того, имя нашей системы при аутентификации удалённых систем
можно заменить символом "*".
Таким образом, наш файл Первая строка это наше имя и пароль для аутентификации у нашего провайдера Cool Connection, а вторая это строка для аутентификации нашего дайлап-клиента "max".igor cool 1234567 max * abcdefg *
В файле При аутентификации PAP pppd сначала пытается сравнить присланный пароль с имеющимся и, если они не совпадают, pppd пропускает его черезmax * $1$1q2w3e4r$UptrhXMwGUeq2z68qDcXi/ * crypt и пытается сравнить снова.
Если pppd указать параметр login,
то при аутентификации PAP он будет проверять в Файлы
Если все проверки пройдут удачно, pppd запишет время работы
этого пользователя в файле max * "" * Надо заметить, что хранить пароль в шифрованном виде или в
Теперь перейдём к полю адреса.
Как мы уже говорили, символ "*" в четвёртом поле
файла То есть, в нашем случае, max, пользуясь аутентификацией через PAP или CHAP, сможет заходить только на линииmax * abcdefg 192.168.1.200 192.168.1.201 ttyd1 и
ttyd2 .
Если число запрещённых адресов меньше, чем разрешённых, то удобнее воспользоваться символом "!": то есть, разрешить все и запретить 192.168.1.202. В нашем случае это аналогично предыдущему варианту.max * abcdefg * !192.168.1.202 Любые диапазоны разрешать нельзя, но можно разрешать адреса, входящие в указанную подсеть: то есть, разрешить все адреса с 192.168.1.200 по 192.168.1.203.max * abcdefg 192.168.1.200/30 Указав в поле адреса на первом месте символ "-", мы запрещаем использовать любые адреса, что выливается в невозможность аутентификации через PAP или CHAP для данного клиента: max * abcdefg - Того же эффекта можно достичь, вообще убрав поле адреса. Наконец, с помощью этого поля можно назначить адрес удалённой стороне: или оба адреса для данного соединения:max * abcdefg :192.168.1.210 Это назначение происходит уже после того, как pppd назначил адреса в описанном нами порядке и является завершающей стадией в этой эпопее. Вместо IP-адресов можно использовать доменные имена.max * abcdefg 192.168.1.2:192.168.1.210
Назначать адреса в
Может ли pppd использовать для аутентификации
одних клиентов PAP, а для других CHAP ? В общем случае нет.
Дело в том, что о способе аутентификации pppd договаривается
с удалённой стороной ещё до того, как эта удалённая сторона сообщит своё имя.
В результате может возникнуть следующая ситуация.
Перед тем, как определить способ аутентификации, pppd
заглядывает в файл
Поэтому, если мы решили использовать CHAP, то всех клиентов под
Windows придётся занести в файл #!/bin/sh /usr/sbin/pppd auth login require-pap refuse-chap
Мы запрещаем CHAP, требуем PAP, используем для аутентификации
(C) Игорь Сысоев |