PPP HOWTO: Если ваш PPP сервер использует PAP (Password Authentication Protocol)

Next Previous Contents

13. Если ваш PPP сервер использует PAP (Password Authentication Protocol)

Если сервер, с которым вы соединяетесь, требует PAP или CHAP, то вам придется поработать несколько больше.

К вышеупомянутому файлу options добавьте следующие строки

  ______________________________________________________________________
  #
  # заставить pppd использовать ваше ISP имя пользователя в качестве вашего
  # 'имени хоста' при аутентификации
  name <your ISP user name>       # исправьте эту строку как вам нужно
  #
  # Если вы запустили PPP *сервер* и непременно нужен PAP или CHAP
  # раскомментируйте соответственно одну из этих строк. НЕ используйте их,
  # если вы - клиент, подключающийся к PPP серверу (даже если он использует PAP
  # или CHAP), так как это говорит СЕРВЕРУ аутентифицировать себя на вашей 
  # машине (что почти никогда нельзя сделать - и связь не будет установлена).
  #+chap
  #+pap
  #
  # Если вы используете ЗАШИФРОВАННЫЕ сведения в файле /etc/ppp/pap-secrets,
  # то раскомментируйте следующую строку.
  # Заметьте: это НЕ тоже, что использование MS шифрации паролей, которая
  # может стоять на MS RAS Windows NT.
  #+papcrypt
  ______________________________________________________________________

13.1 Использование MSCHAP

Windows NT Microsoft RAS может использовать разновидность CHAP. В вашем дистрибутиве исходных текстов PPP, вы найдете файл README.MSCHAP80, который обсуждает этот вопрос.

Вы можете определить, запрашивает ли сервер установление подлинности, используя этот протокол, разрешив отладку для pppd. Если сервер запрашивает установление подлинности по MS CHAP, то вы увидите строки типа

______________________________________________________________________

rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]
______________________________________________________________________

Критическая информация здесь - auth chap 80.

Для того, чтобы использовать MS CHAP, вы должны будете пересобрать pppd, чтобы вкомпилировать эту поддержку. Пожалуйста, см. инструкции в файле README.MSCHAP80 в исходных текстах PPP, чтобы узнать, как вкомпилировать и использовать этот протокол.

Вы должны обратить внимание, что в настоящее время этот код в Linux поддерживает только клиент PPP, соединяющийся с сервером MS WINDOWS NT. Сервер PPP в Linux не поддерживает этот протокол для установления подлинности клиентов по протоколу MSCHAP80.

13.2 Файл секретов PAP/CHAP

Если вы используете установление подлинности по pap или chap, то вы также должны создать файл секретов. Это:

______________________________________________________________________

/etc/ppp/pap-secrets
/etc/ppp/chap-secrets
______________________________________________________________________

Для защиты они должны принадлежать пользователю root, группе root и иметь права доступа к файлу 740.

Первое, на что надо обратить внимание насчет PAP и CHAP - то, что они разработаны, чтобы опознавать компьютерные системы, а не пользователей.

"Оп-па!.. А какая разнаца? " слышу я ваш вопрос.

А такая что, как только ваш компьютер создал PPP соединение с сервером, ЛЮБОЙ пользователь вашей системы может использовать это соединение - не только вы. Именно поэтому вы можете устанавливать WAN связь, которая соединяет две LAN, используя PPP.

PAP может требовать (а CHAP ТРЕБУЕТ) двунаправленного установления подлинности, то есть компьютер на каждом конце соединения должен иметь правильные имя и пароль другой стороны. Однако, большинство PPP серверов с доступом по коммутируемым линиям, использующие PAP, этим способом НЕ пользуются.

Как уже упоминалось, ваш ISP вероятно даст вам имя пользователя и пароль, чтобы позволить вам соединяться с их системой и выходить дальше в Интернет. Ваш ISP не интересуется именем вашего компьютера вообще, так что вы вероятно будете должны использовать ваше ISP имя пользователя как имя вашего компьютера.

Это делается, используя имя пользователя в опции name pppd. Так, если вы должны использовать имя пользователя, выданное вам вашим ISP, добавьте строку

______________________________________________________________________

name your_user name_at_your_ISP

______________________________________________________________________
к вашему файлу /etc/ppp/options.

Технически, вы действительно должны использовать пользователя our_user name_at_your_ISP для PAP, но pppd достаточно интеллектуален, чтобы интерпретировать имя как пользователя, если это требуется для использования PAP. Преимущество использования опции name в том, что она также является допустимой для CHAP.

Так как PAP служит для опознания компьютеров, технически вы должны также определить удаленное компьютерное имя. Однако, поскольку большинство людей работает только с одним ISP, то вы можете использовать групповой символ (*) для удаленного имени хоста в файле секретов.

Также стоит заметить, что многие ISP применяют модемные пуллы, соединенные с различными терминальными серверами - каждый со своим именем, но ДОСТУПНЫЙ с одного (циклически переключаемого) входного номера. Следовательно может быть очень трудно при некоторых обстоятельствах знать заранее имя удаленного компьютера, поскольку это зависит от того, к какому терминальному серверу вы подсоединились!

13.3 Файл секретов PAP

Файл /etc/ppp/pap-secrets выглядит примерно так:

______________________________________________________________________

# Secrets for authentication using PAP
# client        server       secret     acceptable_local_IP_addresses

______________________________________________________________________

Четыре поля - разграниченные пробельными символами, причем последнее может быть пустым (которое вы можете захотеть использовать для динамического и вероятно статического IP распределение от вашего ISP).

Предположим, что ваш ISP дал вам имя пользователя fred и пароль flintstone, установите опцию name fred в /etc/ppp/options[.ttySx] и настройте ваш файл /etc/ppp/pap-secrets следующим образом

______________________________________________________________________

# Secrets for authentication using PAP
# client        server  secret          acceptable local IP addresses 
fred            *       flintstone
______________________________________________________________________

Обратите внимание, что мы не должны определять локальный адрес IP, если мы не требуем ПРИНУДИТЕЛЬНО выставить локальный, статический адрес IP. Даже если вы попробуете это сделать, вряд ли что-нибудь получиться, так как большинство PPP серверов (для защиты) не позволяют удаленной системе устанавливать свой IP адрес, они должны быть выданы со стороны ISP.

13.4 Файл секретов CHAP

Он требует, чтобы вы имели взаимно опознавательные методы - вы должен позволить и вашей машине опознать удаленный сервер И удаленному серверу опознать вашу машину.

Итак, если ваша машина - fred и удаленная - barney, то ваша машина установила бы name fred remotename barney, а удаленная машина установит name barney remotename fred в их соответствующих файлах /etc/ppp/options.ttySx .

/etc/chap-secrets файл для fred такой

______________________________________________________________________
<p>
# Secrets for authentication using CHAP
# client        server  secret            acceptable local IP addresses 
fred            barney  flintstone 
barney          fred    wilma
______________________________________________________________________

а для barney

______________________________________________________________________

# Secrets for authentication using CHAP
# client        server  secret            acceptable local IP addresses 
barney          fred    flintstone 
fred            barney  wilma
______________________________________________________________________

Обратите внимание в частности, что обе машины должны иметь записи для двунаправленного установления подлинности. Это позволяет локальной машине называть себя на удаленной машине И удаленной машине называть себя на локальной машине.

13.5 Обработка нескольких PAP соединений

Некоторые пользователи работают с больше чем одним сервером, использующих PAP. Если ваше имя пользователя отличается для каждой машины, с которой вы хотите соединяться, это - не проблема.

Однако, многие пользователи имеют одно и то же имя пользователя на двух (или даже всех) системах, с которыми они соединяются. Вот это проблема - правильно выбрать соответствующие строки из файла /etc/ppp/pap-secrets.

Как вы могли ожидать, PPP обеспечивает механизм для решения этой задачи. PPP позволяет вам установить 'вымышленное имя' для удаленного (серверного) конца соединения, используя опцию remotename в pppd.

Позвольте нам предположить, что вы соединяетесь с двумя PPP серверами, используя username fred. Вы настриваете ваш /etc/ppp/pap-secrets примерно так

______________________________________________________________________

fred    pppserver1      barney 
fred    pppserver2      wilma
______________________________________________________________________

Теперь, чтобы установить соединение с pppserver1, вы использовали бы name fred remotename pppserver1 в ваших ppp-опциях, а для pppserver2 - name fred remotename pppserver2.

Поскольку вы можете выбирать файл опций для запуска pppd, используя опцию file filename, то вы можете настроить скрипт, чтобы соединяться с каждым из ваших PPP серверов, правильно выбирая файл опций для использования и, следовательно, выбирая правильную опцию remotename.


Next Previous Contents