Редактирование конфигурационных сценариев

We use cookies. Read the Privacy and Cookie Policy

Редактирование конфигурационных сценариев

Программы с графическим интерфейсом удобны для тех пользователей, которые не имеют достаточного опыта работы с PPP-соединениями, но в некоторых случаях эти инструменты оказываются непригодными. Например, если вы хотите, чтобы PPP-соединение устанавливалось автоматически, программа с графическим интерфейсом не позволит вам сделать это. В этом случае для инициализации соединения приходится использовать сценарии. Такие сценарии можно запускать либо вручную, либо как часть системы автоматического соединения. При этом необходимо установить опции аутентификации и задать конфигурацию самих сценариев.

Использование опций аутентификации

Как было сказано ранее, для аутентификации пользователей, обращающихся по коммутируемым линиям, большинство провайдеров применяет протокол PAR Для того чтобы сценарий, предназначенный для установления соединения, мог использовать этот протокол, необходимо отредактировать файл /etc/ppp/pap-secrets. (При работе с протоколом CHAP используется файл /etc/ppp/chap-secrets. Содержимое файла chap-secrets имеет тот же формат, что и данные в файле pap-secrets.) В файле /etc/ppp/pap-secrets содержится последовательность строк; каждая строка соответствует отдельной учетной записи PPP и имеет следующий формат:

имя_пользователя сервер пароль IP-адрес

Компоненты строки отделяются друг от друга одним или несколькими пробелами или символами табуляции. Назначение этих компонентов описано ниже.

• имя_пользователя. Имя, используемое для идентификации пользователя на компьютере провайдера. Это имя никак не связано с именем пользователя, которое указывается при регистрации в системе Linux; оно проверяется только при попытке зарегистрироваться на сервере провайдера.

• сервер. Имя компьютера, к которому обращается клиент при попытке установить PPP-соединение. Как правило, пользователь не обязан знать имя сервера, поэтому чаще всего в данном поле содержится символ *, который указывает на то, что PPP-соединение может быть установлено с любым узлом.

• пароль. Как нетрудно догадаться, в этом поле указывается пароль, используемый для регистрации на удаленном компьютере.

• IP-адрес. IP-адрес, который система предполагает получить. Большинство серверов не гарантирует, что при установлении PPP-соединения будет выделен конкретный IP-адрес, поэтому данное поле обычно оставляют пустым (т.е. строка содержит только три поля).

Внимание

В файле pap-secrets пароль хранится в незашифрованном виде. Это значит, что каждый, кто получит в свое распоряжение данный файл, сможет установить PPP-соединение под вашим именем. Поэтому данный пароль следует использовать только по его прямому назначению. Для получения почты, регистрации в сети и прочих подобных случаев надо применять другие пароли. Для повышения безопасности во многих дистрибутивных пакетах в качестве владельца файла pap-secrets указан пользователь root, и доступ к файлу имеет только он. Без крайней необходимости не следует изменять права доступа к файлу pap-secrets.

В большинстве случаев каждый конкретный компьютер настраивается для взаимодействия с единственным провайдером, поэтому в файле pap-secrets такого компьютера содержится только одна строка. Пример содержимого файла pap-secrets приведен ниже.

penguin * w8terfow1

Настройка сценариев

Отредактировав файл аутентификации, ориентированный на использование протокола PAP или CHAP, можно приступать к настройке сценария, предназначенного для установления соединения. Поскольку для взаимодействия посредством протокола PPP все чаще используются программы с графическим интерфейсом, сценарии размещаются в каталоге с документацией, например /usr/share/doc/ppp-версия/scripts; где версия означает версию PPP, используемую в конкретном дистрибутивном пакете, например 2.4.0. Наибольший интерес представляют три сценария.

• ррр-on. Этот сценарий устанавливает основные переменные, в частности, задает номер телефона провайдера и вызывает Linux-программу поддержки протокола PPP (pppd).

• ppp-on-dialer. Сценарий ррр-on передает pрр-on-dialer программе pppd, которая использует ppp-on-dialer для управления начальными этапами взаимодействия с компьютером провайдера.

• ppp-off. Этот сценарий завершает сеанс PPP-взаимодействия.

Для того чтобы обеспечить взаимодействие с провайдером, необходимо отредактировать сценарий ррр-on, а в некоторых случаях и сценарий ppp-on-dialer. Кроме того, вы, вероятно, захотите переместить все три сценария в каталог, из которого их было бы удобно взывать, например в /usr/local/bin. В сценарий ррр-on надо внести следующие изменения.

• Найдите переменную TELEPHONE и задайте в качестве ее значения номер телефона провайдера. В результате соответствующая запись должна иметь вид TELEPHONE=123-4567.

• Задайте значения переменных ACCOUNT и PASSWORD. Если провайдер использует протокол PAP, данные переменные не будут использоваться; в этом случае вы можете оставить их значения без изменения.

• Если провайдер предоставляет вам фиксированный IP-адрес и если вы знаете IP-адрес сервера провайдера, можете указать эти адреса в переменных LOCAL_IP и REMOTE_IP. Аналогично, если вам известна маска подсети, вы можете задать ее в качестве значения переменной NETMASK. В противном случае все три переменные можно оставить без изменения.

• Найдите переменную DIALER_SCRIPT и задайте ее значение так, чтобы она ссылалась на сценарий ppp-on-dialer. (Понятно, что DIALER_SCRIPT должна указывать не на исходный вариант файла, содержащийся в каталоге с документами, а на файл, содержимое которого вы изменили в соответствии с вашими требованиями.) По умолчанию для этой переменной задано значение /etc/ppp/ppp-on-dialer, но, как было сказано выше, вы можете выбрать расположение файла ppp-on-dialer по своему усмотрению.

• В конце сценария содержится вызов pppd. Эта программа поддерживает большое количество опций. Опции, указанные в сценарии, за исключением некоторых, изменять не следует. Возможно, вам придется задать имя файла устройства, используемого для подключения модема (по умолчанию указано устройство /dev/ttyS0), а также скорость взаимодействия компьютера с модемом (по умолчанию используется значение 38400, но скорость 115200, как правило, дает лучшие результаты).

Скорректировав содержимое ррр-on, можно приступать к редактированию сценария ppp-on-dialer. Этот сценарий управляет взаимодействием программы pppd с модемом, в частности, использованием команд, предназначенных для установления взаимодействия, а также процессом аутентификации (в случае, если провайдер не использует средства PAP или CHAP). Сценарий вызывает утилиту chat, предназначенную для обмена текстовыми данными. Основную часть сценария составляют пары строк, представляющие собой ожидаемые сообщения и ответы на них, расположенные в два столбца. В первом столбце указаны сообщения, которые ожидает получить сценарий, а во втором столбце — последовательности символов, которые программа chat посылает в ответ. Некоторые из сообщений имеют специальное назначение. Например, ABORT сообщает chat о необходимости прекращения работы в случае ошибки. Большинство строк оканчивается обратной косой чертой (), а это означает, что следующая строка является продолжением предыдущей. (На самом деле программе chat передается одна строка параметров; пары "сообщение-ответ" представлены в виде столбцов лишь для удобства восприятия.) В конце последней строки обратная косая черта отсутствует.

Изменения следует вносить только в последние три строки файла ppp-on-dialer. По умолчанию при составлении сценария предполагалось, что провайдер не использует PAP, поэтому в последних двух строках предусмотрена передача имени пользователя и пароля в ответ на запрос. (Имя пользователя и пароль хранятся в переменных ACCOUNT и PASSWORD; их значения задаются в сценарии ррр-on.) При необходимости вы можете удалить эти строки или поставить в начале их символы #, указывающие на то, что данные строки содержат комментарии. Если вы сделаете это, то вам также надо удалить обратную косую черту в третьей с конца строке. Удаление двух последних строк и изменение предшествующей им строки приведет к тому, что если pppd попытается использовать для аутентификации соединения протокол PAP или CHAP, chat завершит работу. Если протоколы PAP и CHAP не применяются, вам, возможно, потребуется отредактировать в последних строках сообщения, которые система ожидает получить от провайдера. Может быть, вы захотите выполнить дополнительные команды, например, запустить на компьютере провайдера программу поддержки PPP. В этом случае вам придется включить одну или несколько строк и указать в них в качестве ожидаемого сообщения приглашение для ввода команды.

Использование сценариев при установлении PPP-взаимодействия

Редактирование сценариев — наиболее трудоемкая часть работы по обеспечению PPP-взаимодействия. После того как данная задача выполнена, вам остается лишь ввести ррр-on, после чего соединение будет инициализировано. (Если сценарий ррр-on расположен в каталоге, который не учтен в переменной окружения PATH, вам придется указать полный путь к этому файлу.) Используя внешний модем, вы сможете следить за ходом установления соединения по светодиодным индикаторам на его панели; при соответствующей настройке модема вы также услышите характерный звук. Если соединение будет установлено нормально, то через несколько секунд вы получите доступ к Internet и сможете использовать клиент-программы для взаимодействия с Internet-серверами.

В случае возникновения проблем вам надо, прежде всего, ознакомиться с содержимым файла протокола (обычно сообщения об установлении соединения и возникающих при этом ошибках записываются в файл /var/log/messages). В конце файла должна содержаться информация о действиях программы pppd, включая операции, которые завершились неудачно. Там вы найдете сведения об истечении времени тайм-аута при ожидании PAP-аутентификации, об ошибках при выполнении chat и другие данные. Если вы не можете понять смысл сообщений, используйте термины, найденные в файле протокола, как ключевые слова при поиске на сервере http://groups.goggle.com. На этом сервере хранятся архивы сообщений, отправленных в группы новостей Usenet и посвященных сетевому взаимодействию системы Linux. Среди них вы найдете обсуждение проблем, связанных с установлением PPP-соединений. Не исключено, что какое-то из сообщений будет содержать ответ на ваш вопрос, либо, по крайней мере, вы поймете, в каком направлении следует искать решение проблемы. Полезными также будут сведения, содержащиеся в документе PPP HOWTO.

Большинство дистрибутивных пакетов сконфигурировано так, что инициализировать PPP-соединение может только пользователь root. Многие воспринимают это как недостаток. Подобные меры принимаются для того, чтобы повысить безопасность в том случае, когда на одном компьютере работают несколько пользователей. Однако иногда такие ограничения мешают в работе. Для того чтобы частично разрешить эту проблему, для программ, предназначенных для взаимодействия по коммутируемым линиям, устанавливается бит SUID, в результате чего эти программы запускаются с привилегиями root. Очевидно, что при этом снова приходится решать вопросы защиты. В частности, многие администраторы сужают круг пользователей, которые имеют право запускать подобные программы. Они создают группу PPP, включают в нее тех пользователей, которым действительно необходим доступ к удаленным узлам по коммутируемым линиям, устанавливают права доступа так, что запустить программу могут только члены группы PPP.

Многие провайдеры сообщают пользователям IP-адреса серверов DNS, которые должны использоваться при взаимодействии посредством PPP-соединения. Эти сведения можно включить в файл /etc/resolv.conf (структура данного файла обсуждалась выше).