|
Ключевые слова: freebsd, ppp, dial-up, dial-in, getty, (найти похожие документы)
From: Дмитрий Новиков <dmn@nnz.ru> Newsgroups: http://www.artmagic.ru/labs/ Date: Mon, 4 Dec 2002 13:01:37 +0000 (UTC) Subject: Настройка модема для организации приема входящих звонков Оригинал:http://www.artmagic.ru/labs/short/short-rec6.shtml Пошаговая настройка модема на входящие звонки для доступа в сеть Интернет по коммутируемым линиям. 1. Для того, чтобы предоставлять доступ в сеть или Интернет по коммутируемым соединениям можно применять различные средства (UNIX, Windows RAS, Cisco). Наиболее практичным безопамным и управляемым решением является установка UNIX сервера и пакета pppd (Point to Point Daemon). Этот пакет обладает очень широкими возможностями по настройке соединений и организации множественного доступа. Для организации коммутируемого доступа мы применяем OC FreeBSD и пакеты pppd и mgetty. Аналогично натсройка может быть успешно произведена для Linux и практически для любой ОС. 2. Пакет pppd в операционной системе FreeBSD 4.4 идет в стандартной поставке, все остальные пакеты необходимые для работы pppd будут установлены по зависимостям. 3. Необходимо скачать (или взять из портов) mgetty-1.1.28.01.10.tgz Для того, что бы собрать mgetty из портов, нужно выполнить следующие команды: cd /usr/ports/comms/mgetty make После успешной сборки можно установить mgetty командой: make install Пакет mgetty задаст несколько простых вопросов о типе модема, КОМ-порте к которому производиться подключения и о параметрах работы (для UNIX com1 это cuaa0, com2 это cuaa1 и т.п.). В последствии можно редактировать эти параметры в файле /usr/local/etc/mgetty+sendfax/mgetty.config Приведем типичный пример mgetty.config, который работает на прием звонков с первого гудка для всех AT-совместимых модемов. debug 4 fax-id 00 00 000000 speed 57600 <--- скорость порта direct NO blocking NO port-owner uucp port-group uucp port-mode 0660 toggle-dtr YES toggle-dtr-waittime 500 data-only YES <--- работать только с данными (умеет еще работать с факсами) fax-only NO modem-type auto init-chat "" ATS0=0Q0&D3&C1 OK <-- строка инициализации модема modem-check-time 3600 <-- периодичность проверки модема rings 1 <-- с какого звонка снимать трубку и инициировать соединение answer-chat "" ATA CONNECT \c \r <-- строка ответа на звонок answer-chat-timeout 80 autobauding NO ringback NO ringback-time 30 ignore-carrier false issue-file /etc/issue prompt-waittime 500 login-prompt @!login: login-time 240 diskspace 1024 notify faxadmin fax-owner uucp fax-group modem fax-mode 0660 По умолчанию в mgetty.config есть еще строчка (port ...), но мы ее предпочитаем убирать, т.к. зачастую запускаем mgetty на нескольких портах. 3. Далее необходимо инициализировать mgetty на порту(ах). Для управления внешними соединениями через последовательные уситройства применяется файл /etc/ttys (vi /etc/ttys). В этом файле определяются параметры и типы терминалов, в том числе и для последовательных портов. После установки mgetty в самом конце (внизу) этого файла должна появиться строка: сuaa0 "/usr/local/sbin/mgetty" unknown on insecure (если её нет, то надо прописать самому) Если необходимо запустить mgetty на нескольких портах, необходимо добавить аналогичные строчки для всехх портов. Например, для com1: сuaa1 "/usr/local/sbin/mgetty" unknown on insecure 4. После того, как все изменения сделаны, нужно перестартовать процесс init: kill -1 1 (у процесса init всегда pid=1). Нужно проверить, запустился ли mgetty: Команда: ps ax | grep mgetty должна выдать результат: ps ax | grep mgetty 39676 ?? I 0:00.12 /usr/local/sbin/mgetty cuaa1 73454 ?? I 0:00.02 /usr/local/sbin/mgetty cuaa0 Программа mgetty ведет подробные лог-файлы, которые располагаются в каталоге /vat/log и называются mgetty.[порт]. В них можно увидеть какие команды посылаются модему и какие ответы получает система. Если mgetty "правильно" видит модем на порту, то в лог-файл будут записи, подобные этим: 12/15 12:08:41 aa0 mgetty: experimental test release 1.1.25-Feb01 12/15 12:08:41 aa0 check for lockfiles 12/15 12:08:41 aa0 locking the line 12/15 12:08:44 aa0 lowering DTR to reset Modem 12/15 12:08:45 aa0 send: ATS0=0Q0&D3&C1[0d] 12/15 12:08:45 aa0 waiting for ``OK'' ** found ** 12/15 12:08:45 aa0 waiting... 12/15 13:08:45 aa0 checking if modem is still alive 12/15 13:08:46 aa0 mdm_send: 'AT' -> OK 12/15 13:08:46 aa0 waiting... Если mgetty не найдет модем на порту она будет его искать, непрерывно сообщая о неудачах в лог-файл. 5. Далее нужно настроить mgetty на запуск pppd. Вообще, вся мощь mgetty заключается в том, что она по типу пакета - запроса запускает различные программы. Т.е. в зависимости от запроса она может запустить программу pppd, uucp, или выдать приглашение login: (по умолчанию). Для того, чтобы mgetty "понимала" pppd, нужно отредактировать файл файл /usr/local/etc/mgetty+sendfax/login.conf 6. В файле login.conf необходимо найти строку которая начинается с #AutoPPP, раскоментировать и прописать либо параметры запуска pppd, либо просто указать pppd конфигурационный файл (можно вообще ничего не указывть - тогда будет взят файл по-умолчанию - /etc/ppp/options). Номы предпочитаем делать отдельный конфигурационный файл для соединений по модему (мало ли как еще будет применен pppd, например для постоянных соединений). Поэтому наша строка должна выглядеть следующим образом: /AutoPPP/ - a_ppp /usr/sbin/pppd file /etc/ppp/options.modem 7. Затем снова необходимо перестартовать init: kill -1 1 10. Далее нужно создать файл с логинами и паролями пользователей для доступа (/etc/ppp/pap-secrets) через модем. Файл pap-secrets содержит строчки вида: username * password * где username - логин пользователя password - пароль пользователя Если пользователю нужно дать персональный ip, то его тоже можно указать в файле pap-secrets следующим образом (как параметр вместо воторой звездочки): user * pass 195.131.31.1:195.131.31.247 или user * pass :195.131.31.247 где 195.131.31.247 персональный адрес пользователя. 11. Затем необходимо создать файл параетров запуска pppd: /etc/ppp/options.modem Наш файл options.modem выглядит следующим образом: modem noipdefault nodetach debug noccp proxyarp crtscts ms-dns xxx.xxx.xxx.xxx domain xxxxx.ru idle 1000 require-pap refuse-chap Комментарии к некоторым параметрам: modem: данная опция настраивает демон pppd так, чтобы он проверял наличие сигнала CD (Carrier Detect) от модема, после чего осуществляет открытие порта. noipdefault: указывает, что IP адрес назначается динамически. crtscts: эта опция устанавливает аппаратный контроль за приемом/передачей данных; необходима для высокоскоростных соединений. domain: задает доменное имя провайдера, к которому осуществляется подключение, что иногда необходимо для аутентификации (доменное имя добавляется к имени хоста) require-pap: требование использовать именно РАР-аутентификцию refuse-chap: если задать эту опцию, то хост откажет клиенту в СНАР- аутентификации, даже если удаленный компьютер делает запрос именно на такой тип аутентификации. ms-dns: задает DNS для пользователей Windows-систем. idle 1000: задает интервал "простоя" в секундах. Если за указанное время через интерфейс не будет передано ни одного байта - то pppd автоматически закрывает соединение proxyarp: добавляет адреса пользователей pppd в arp таблицу, что позволяет использовать их без дополнительной маршрутизации. Более подробную информацию обо всех параметрах можно получить из документации на pppd (man pppd). 12. Осталось задать IP-адрес, который будет получать пользователь и локальный IP-адрес. Это можно сделать в файле options.modem, но правильнее создать специальный файл, который будет читаться, при соединении с конкретным портом. При старте pppd "читатет" файлы options.[имя порта соединения]. Для com1 (cuaa0) создадим файл /etc/ppp/options.cuaa0. в котором будет всего одна строка, задающая локальный IP и IP пользователя, который подсоединиться к этому порту: 195.131.31.1:195.131.31.245 Если организовывается несколько принимающих портов, то нужно для всех них создать подобные файлы. Например, /etc/ppp/options.cuaa1: 195.131.31.1:195.131.31.246 В качество локального IP смело можно указывать Интрнетовский IP-интерфейс. 13. Теперь осталось проверить что все работает. Для этого, можно в Windows настроить новое соединение с Интернетом, указав логин и пароль, прописанный в pap-secrets. При удачном соединении mgetty выдаст: 12/15 12:13:44 aa0 wfr: waiting for ``RING'' 12/15 12:13:44 aa0 send: ATA[0d] 12/15 12:13:44 aa0 waiting for ``CONNECT'' ** found ** 12/15 12:13:55 aa0 send: 12/15 12:13:55 aa0 waiting for ``_'' ** found ** 12/15 12:13:57 ##### data dev=cuaa2, pid=73540, caller='none', conn='21600/ARQ/V 32/LAPM/V42BIS', name='', cmd='/usr/sbin/pppd', user='/AutoPPP/' А pppd должен выдать (в зависимости от уровня debug): Dec 15 14:12:43 vGate pppd[74380]: Connect: ppp4 <--> /dev/cuaa0 Dec 15 14:12:47 vGate pppd[74380]: rcvd [PAP AuthReq id=0x6 user="user" passw ord="password"] Dec 15 14:12:47 vGate pppd[74380]: sent [PAP AuthAck id=0x6 "Login ok"] Dec 15 13:56:17 vGate pppd[74175]: found interface fxp0 for proxy arp Dec 15 13:56:17 vGate pppd[74175]: local IP address 195.131.31.1 Dec 15 13:56:17 vGate pppd[74175]: remote IP address 195.131.31.246 Полезные ссылки http://www.opennet.dev/ http://www.sysoev.ru/pppd/ http://www.freebsd.org.ua/ppp-primer/c309.html ftp://cs.anu.edu.au/pub/software/ppp/
|
Обсуждение | [ Линейный режим | Показать все | RSS ] |
|
Добавить комментарий |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |