The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Настройка dial-up соединения во FreeBSD. (dialup freebsd ppp)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: dialup, freebsd, ppp,  (найти похожие документы)
From: skif <skif@bsddoc.ru> Date: Mon, 23 Feb 2004 14:31:37 +0000 (UTC) Subject: Настройка dial-up соединения во FreeBSD. Оригинал: http://bsddoc.ru/index.php?stati_freebsd&submit=dalee&num=7 Настройка dial-up соединения во FreeBSD. PPP (Point to Point Protocol) - протокол двухточечной связи, как правило используется для подключения к Интернет с помощью модема. Во FreeBSD он реализован в двух формах - демон pppd встроенный в ядро системы, и РРР запускаемый как пользовательская программа. Чем различаются пользовательский РРР и pppd? Считается что PPP легче настроить, но при работе он использует туннельное устройство что снижает скорость работы, pppd - эффективней, т.к. работает в качестве демона, но тут могут возникнуть проблемы при организации доступа в Интернет для большого количества пользователей. Рассмотрим подключение к Интернет обоими способами. Использование Kernel PPP. Файлы конфигурации находятся в директории /etc/ppp. но кроме конфигурационных файлов может возникнуть необходимость в редактировании файла /etc/resolv.conf /etc/resolv.conf в этом файле определяется способ преобразования системой имен хостов в ip-адреса. Используется ключевое слово domain для указания доменного имени по умолчанию, т.е. считается что имена хостов, которые представлены в виде неполного доменного имени, автоматически принадлежат к домену по умолчанию. Последующие строки содержат ключевое слово nameserver, за которым следует ip-адрес DNS-сервера. /etc/resolv.conf должен выглядеть примерно так: domin bsddoc.ru nameserver 111.111.11.1 nameserver 222.222.22.2 Но скорее всего ничего изменять в нем вам не придется. Точно на это вам ответить может только провайдер. Теперь перейдем к файлу содержащему опции с которыми выполняется демон pppd. Некоторые опции у вас могут быть другими, это зависит от того, какой тип аутентификации использует провайдер. Рассмотрим хрестоматийный пример: /etc/ppp/options /dev/cuaa0 115200 crtcts modem connect "/usr/bin/chat -f /etc/ppp/chat.script" noipdefault silent defaultroute Теперь пояснения: /dev/cuaa0 115200 - определяет порт к которому подключен модем. Повторю, что во FreeBSD нумерация устройств начинается с 0, следовательно, cuaa0 = com1, cuaa1 = com2, и т.д. crtcts - установка аппаратного контроля за приемом/передачей данных. modem - заставляет pppd проверять наличие сигнала CD (Carrier Detect) от модема перед открытием порта. connect "/usr/bin/chat -f /etc/ppp/chat.script" - в pppd нет функции дозвона, поэтому для дозвона к провайдеру приходиться использовать дополнительную программу. Как правило, это chat, включенная в стандартную поставку FreeBSD. Сценарий файла /etc/ppp/chat.script будет рассмотрен ниже. noipdefault - указывает на динамическое назначение ip-адресса. silent - заставляет pppd ожидать LCP (Line Control Protocol) пакеты. defaultroute - на время работы ppp-соединения добавляется запись в таблицу маршрутизации о данном маршруте. При закрытии соединения запись удаляется. Если необходимо установить соединение с выделением вам статического ip-адреса, то вместо noipdefault нужно указать через двоеточие выделенный вам ip-адресс и адрес шлюза провайдера, например: 123.123.12.1:321.312.32.3 Сценарпий программы chat. /etc/ppp/chat.script ABORT "BUSY" ABORT "ERROR" ABORT "NO DIALTONE" ABORT "NO CARRIER" "" AT OK ATDT505999 CONNECT "" TIMEOUT 10 ogin: skif TIMEOUT 5 sword: my_password Символы перехода на другую строку и лишние пробелы программа игнорирует, так что скрипт может быть записан и в одну строку, но для удобства восприятия я записал его в виде двух колонок - ответ модема и реакция на это. Теперь расшифровка: ABORT - указание прервать связь, если от модема будет получен сигнал BUSY или NO CARRIER. Делее команда AT (Atention), на что модем должен ответить ОК. Затем модему посылается ATDT (Atention Dial Tone) или ATDP для импульсных АТС, и номер телефона модемного пула. Модем должен ответить CONNECT, при получении ответа устанавливается тайм-аут в 10 секунд, в течении которых модем должен передать строку ogin на что chat отвечает skif (т.е. передает логин), и в течении 5 секунд ожидает пароль. Кавычки на самом деле не обязательны, их используют в том случае если в строка пустая, в ней используется пробел или такие символы как "&", "*" и др. Пустая строка означает то, что от модема ждать ничего не нужно. После этих настроек можно запускать демон. Для этого в консоли набирается pppd. Для того что бы разорвать соединение: killall pppd. Но если необходимо предоставить обычным пользователям возможность дозвона к провайдеру придется дать доступ к файлу chat.script, а это значит что каждый, кто имеет доступ к шеллу может узнать пароль Интернет-аккаунта. В этом случае придется использовать pap и chap аутентификацию. В файл /etc/ppp/options необходимо добавить как минимум одну строку пользователя (user line) которая задаст используемый для аутентификации профиль. user skif Так же есть еще несколько опций: refuse-chap - если нужно что бы хост отказал клиенту в CHAP-аутентификации, даже если удаленный компьютер делает запрос именно на этот метод аутентификации. refuse-chap - тоже самое для PAP-аутентификации. require-chap - требование использовать CHAP-аутентификацию. require-chap - тоже самое для PAP. Информация для CHAP и PAP аутентификации содержится в файлах /etc/ppp/chap-secrets и /etc/ppp/pap-secrets, соответственно. Они имеют один и тоже формат: username hostname password В поле hostname, которе определяет имя хоста к которому разрешено подключение. Можно указать *, т.е. разрешить устанавливать соединение с любым компьютером. /etc/ppp/chap-secrets skif * my_password /etc/ppp/pap-secrets skif * my_password Необходимо помнить о том что право доступа к файлам /etc/ppp/chap-secrets и /etc/ppp/pap-secrets должен иметь только root (root системы, а не root из bsddoc.ru :)), в противном случает использование CHAP и PAP аутентификации лишено смысла. Демон pppd может поддерживать соединение двух видов: - постоянное соединение (persistent connection), поддерживаемое демоном круглосуточно. Для его установки в файл /etc/ppp/options необходимо добавить опцию persist; - соединение по требованию (dial-on-demand), устанавливаемое демоном автоматически при возникновении исходящего трафика, если же линия простаивает, то происходит разрыв соединения. В /etc/ppp/options придется добавить еще несколько строк: demand - включение режима соединения по требованию, idle n - разрыв соединение, если в течении n секунд не было ни входящего, ни исходящего трафика. Для запуска демона pppd при загрузке системы можно добавить строку pppd в файл /etc/rc.conf, но я бы рекомендовал создать сценарий включающий только одну строку pppd и поместить его в /usr/local/etc/rc.d Использование User PPP. ----------------------- теперь я рассмотрю настройку Интернет соединения с использованием PPP User Level. Я рекомендую прочитать все ниже написанное исключительно в познавательных целях, т.к. использование user PPP я назвал бы как минимум нежелательным. Для начала в вашем ядре должна быть включена поддержка туннельного устройства: pseudo-device tun 1 Настройки user PPP находятся в файле /etc/ppp/ppp.conf. система создает образец и вам нужно будет только немного изменить его. Если вы внимательно прочитали часть, посвященную настройке kernel ppp то проблем с ppp.conf возникнуть не должно. Я опишу только еще не знакомые вам опции. set log - строка настройки модема, полностью аналогична сценарию программы chat. set ifaddr - если провайдер выделил вам статический адрес, то на него нужно заменить первое число, в противном случае ничего менять не нужно; второе числе - адрес шлюза провайдер, если он вам неизвестен, то ничего менять не нужно; третье число - маска сети, и опять никакие изменения не требуются. set timeout - аналог опции idle n. enable DNS - проверка валидности DNS-серверов указанных в файле /etc/resolv.conf, если указанные там серверы недоступны РРР обновляет этот файл. set phone - телефон модемного пула провайдера. set authname - ваш логин. set autkey - ваш пароль. Если необходимо что бы запускать user PPP могли все пользователи необходимо добавить строку: allow users В том случае если вам необходимо использовать стандартную аутентификацию, то удалите строку papchap и все нижеследующие опции и добавьте после set dial: Provider: set phone "505999" set login "TIMEOUT" 10 " " " " ogin: skif sword: my_password " Если вы работаете с CHAP или PAP аутентификацией для user PPP нужно набрать в консоли: ppp -background papchap А при работе с аутентификацией в командной оболочке: ppp -background provider Для разрыва соединения: killall ppp Как и kernel PPP user PPP может работать в режимах "Соединение по требованию" и "Постоянное соединение". Соединение по требованию: PPP необходимо запускать командой ppp -auto papchap, или ppp -auto provider, в зависимости от используемого типа аутентификации. Для установки соединения при загрузке нужно добавить в файл /etc/rc.conf строку ppp_enadle="YES" Постоянное соединение: Для установки постоянного соединения из файла /etc/ppp/ppp.conf необходимо удалить строку set timeout, запус PPP будет осуществляться командой ppp -ddial papchap (или ppp -ddial provider) Для установки постоянного соединения при загрузке в файл /etc/rc.conf нужно дописать: ppp_enable="YES" ppp_mode="ddial" Если вы не используете PAP-аутентификацию, то в обоих случаях в файл /etc/rc.conf nfrтак же необходимо добавить строку ppp_profile="provider" Не стоит также забывать что строка ppp_enadle="YES" приведет к активации NAT (Network Adress Translation), открывающий доступ к Интернет для компьютеров локальной сети, если еэто нежелательно, то в файл /etc/rc.conf нужно добавить строку ppp_nat="NO". При устновке и разрыве соединения так же можно автоматически команды, они записываются в таком же виде как и в командном интерпритаторе. Их список указывается в файлах /etc/ppp/ppp.linkup и /etc/ppp/ppp.linkdown, соответственно. Например: papchap: xchat (с) skif ICQ: 140787 e-mail: skif@bsddoc.ru

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
 
  • 1, goal, 14:50, 09/10/2006 [ответить] [смотреть все]
  • +/
    А если в качестве устройства использовать PPPoE как быть в этом случае на уровне ядра, как указать устройство для pppd?
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor