The OpenNET Project / Index page

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

Настройка модема для организации приема входящих звонков (freebsd ppp dial-up dial-in getty)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: 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/

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

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Kirill (?), 10:24, 03/10/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    все сделал как тут написано, момед коннектается, но грит "неправильный логин/пароль" pap-secrets написан след образом:
    user(Tab)*(Tab)pass(Tab)*
    (Tab) - табуляция, не пробелы....
    в чем может быть ошибка????
     
     
  • 2.4, Grit (?), 03:09, 01/11/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что автор beep. Прописывается не
    user * pass *

    А правильно

    "user" * "pass" *

    Сам с этим мучался.

     
     
  • 3.5, Mitya (?), 11:32, 01/11/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Все сделал как есть
    Имя/пароль без кавычек - все работает
    сразу же встало
     

  • 1.2, Seregas (?), 14:06, 20/10/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все сделал, работает, модем трубу берет клиент логиниться и видит только себя и сервер. В чём проблема?
     
     
  • 2.3, Михаил (?), 20:31, 20/10/2003 [^] [^^] [^^^] [ответить]  
  • +/
    >Все сделал, работает, модем трубу берет клиент логиниться и видит только себя
    >и сервер. В чём проблема?
    в маршрутизации и/или файерволе...


     

  • 1.6, zzz1 (?), 14:54, 06/11/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как насчет callback
     
  • 1.7, Владимир (??), 18:22, 07/04/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сделал все как написано, но ничего не выходит.
    Модем не коннектится. Один раз законнектился, и то pppd написал в логе
    ioctl - device not configured
    mgetty запущена на cuaa1
    На cuaa0 успешно работает выделенка.
     
     
  • 2.8, nike (?), 21:58, 21/06/2004 [^] [^^] [^^^] [ответить]  
  • +/
    смотри /var/log/mgetty.log.cuaa1

    нельзя запускать mgetty из консоли
    только из процесса init

     

  • 1.9, Александр (??), 00:32, 20/07/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите пожалуйста, можно ли в Windows RAS изменить номер звонка, на который модем снимает трубку. 2-й звонок по умолчанию – это очень быстро.
     
  • 1.10, Алексей (??), 08:00, 03/08/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Проблема была уже озвучена.Тоесть:
    1. подключаюсь - ок
    2. логинюсь - ок
    3. пинг сервера - нет
    4. скорость 33600 а не 56700
    6. ничего не ходит вообще !!!

    Где проверить что надо, или исправить.
    FreeBSD 5.2.1
    modem- USRob...56k

     
  • 1.11, ALCOOL (?), 04:33, 18/08/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    56700 не бывает!! 33600 максимум, это тебе повезло. Не ходит, это бывает.. может у тебя дефолтный маршрут до запуска pppd был?
     
  • 1.12, DeD (??), 13:14, 21/09/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    56700 бывает, хотя это как легенда, короче у институтского товарисча был 57600 и цифровая линия а у меня 57600 и педально-приводная, так вот мы законектились на 57600 и он кинул мне файло с умопомрачительной скоростью.
    А насчет кавычек - автор упустил это.
     
  • 1.13, Mc (??), 10:13, 15/10/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Обсуждение статьи тематического каталога: Настройка модема для организации приема входящих звонков (freebsd
    >ppp dial-up dial-in getty)
    >
    >Ссылка на текст статьи: http://www.opennet.dev/base/modem/dial_in_bsd.txt.html

    Все сделал как написано.
    настройки ПК
    IP_адрес сетеовй карты - 217.107.72.162
    ip_адрес - сервера dial-up 192.168.1.3
    ip_адрес который получает клиент при подклчюении - 192.168.1.5
    модемом подключаюсь - все номрально
    модем получает адрес
    с модема могу пинговать сервер (как сервый адрес так и адрес сетевой карты), но никуда дальше выйти не могу
    нужно ли ставить на этом компе natd или что-то вроде этого для обеспечения работы ?

     
  • 1.14, Michael Chegodar (?), 18:37, 03/11/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ipfw add [номер правила] allow ip from any to any via ppp0

    И всё работает! :)

     
  • 1.15, Самурай (?), 14:16, 15/11/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что-то у меня с /dev/hand - не хочет он логин-пароль из pap-secrets брать - хоть вешайся.. :-/
     
     
  • 2.16, dawer (?), 00:35, 21/12/2004 [^] [^^] [^^^] [ответить]  
  • +/
    a ti postav' radius i ne muchaisia :)
     

  • 1.17, by_konst (?), 11:57, 14/09/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо - все заработало, но если в ядре строка pseudo-device ppp 1 - то одновременно два модема не работают: pppd [117]: ioctl(TIOCSETD): Device not configured, надо ставить столько сколько будет подключений...
     
  • 1.18, Leonid (??), 13:51, 07/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Статья зачетная. Все сразу заработало, молодец автор.

    Потратил минут

     

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




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру