Файл для CHAP


Когда надо опознать себя с некоторым сервером, используя CHAP, pppd ищет в файле chap-secrets запись с именем клиента, равным локальному hostname, и именем сервера, равного удаленному hostname, посланному в CHAP Challenge. При требовании опознавания себя роли просто поменялись: pppd будет искать запись с именем клиента, приравненным к удаленному hostname (посланному в CHAP-ответе клиенту) и имя сервера, приравненное локальному хосту.
Файл для CHAP

Когда надо опознать себя с некоторым сервером, используя CHAP, pppd ищет в файле chap-secrets запись с именем клиента, равным локальному hostname, и именем сервера, равного удаленному hostname, посланному в CHAP Challenge. При требовании опознавания себя роли просто поменялись: pppd будет искать запись с именем клиента, приравненным к удаленному hostname (посланному в CHAP-ответе клиенту) и имя сервера, приравненное локальному хосту.

Типовой файл chap-secrets для vlager:

# CHAP secrets for vlager.vbrew.com # # client server secret addrs #--------------------------------------------------------------------- vlager.vbrew.com c3po.lucas.com "Use The Source Luke" vlager.vbrew.com c3po.lucas.com vlager.vbrew.com "arttoo! arttoo!" c3po.lucas.com * vlager.vbrew.com "TuXdrinksVicBitter" pub.vbrew.com

При установлении PPP-связи с c3po, c3po просит vlager опознать себя, используя CHAP и посылая CHAP challenge. Затем pppd просматривает файл chap-secrets для записи с клиентской областью, приравненой к vlager.vbrew.com и областью сервера, приравненной к c3po.lucas.com, и находит первую строку, показанную выше. Затем производится CHAP-ответ из challenge string и шифра (Use The Source Luke) на машину c3po.

В то же самое время pppd составляет CHAP challenge для c3po, содержащую уникальную challenge string, и полностью квалифицированное доменное имя vlager.vbrew.com. В ответ c3po создает CHAP-ответ способом, который мы только что обсудили, и возвращает его vlager. Теперь pppd извлекает клиентский hostname (c3po.vbrew.com) из ответа и ищет в файле chap-secrets строку, соответствующую c3po как клиенту и vlager как серверу. Вторая строка задает pppd объединить CHAP challenge с паролем (arttoo! arttoo!), зашифровать результат и сравнить CHAР-ответом c3po.

Произвольное четвертое поле перечисляет адреса IP, которые допустимы для клиентов в первом поле. Адреса могут быть заданы в dotted quad notation или как имена машин, которые будут найдены через сервер имен. Например, если c3po запросил во время IPCP-переговоров использование IP-адреса, который не в этом списке, запрос будет отклонен, и IPCP будет выключено. В типовом файле, показанном выше, c3po будет ограничен использованием собственного адреса. Если поле адреса пусто, будут позволяться любые адреса. Задание тире (-) запрещает использование IP-адреса.

Третья строка в примере файла chap-secrets позволяет любому хосту установить связь PPP с vlager потому, что * в поле клиента или сервера соответствует любому hostname. Единственое требование: он знает пароль и использует адрес pub.vbrew.com. Запись с групповым символом для имен машин может появится где угодно в файле шифров, так как pppd будет всегда использовать наиболее подходящую запись, которая применима к паре сервер/клиент.

Нужно упомянуть способ, которым pppd находит имена машин: он ищет их в файле шифров. Как было объяснено выше, удаленное имя всегда передается в CHAP Challenge или в Response packet. Локальный hostname будет получен, если вызвать функцию gethostname(2). Если Вы установили имя системы в Ваше неквалифицированное hostname, то должны задать для pppd опцию domain:

# pppd -domain vbrew.com

Это добавит имя домена Brewery к vlager для всех действий по авторизации. Для локального имени интересны также опции usehostname и name. Когда Вы задаете локальный IP-адрес в командной строке, используя local: remote и имя local вместо IP-адреса, pppd использует его как локальный hostname.



Содержание раздела