Мини-HOWTO: Раздельное использование модема в Linux

Этот документ описывает, как настроить Linux для разделенного (shared) использования модема, подключенного к системе, с другими системами по сети TCP/IP

[Friedemann Baitinger (baiti@toplink.net). Перевод Станислав Рогин (sam@asplinux.ru)]

Мини-HOWTO: Разделенное использование модема в Linux

Автор:  Friedemann Baitinger,  baiti@toplink.net
Перевод: Станислав Рогин, ASPLinux

последнее обновление:

v1.01, 11 февраля 1997 - текст теперь в формате HTML, добавлены ссылки, где
                можно найти 'cu', также добавлены ссылки, где найти
                mserver. В пример с 'cu' добавлен ключ '-s'.

V1.00, 06/12/97 Исходная версия


1. Введение

Этот документ описывает, как настроить Linux для разделенного (shared) использования модема, подключенного к системе, с другими системами по сети TCP/IP.

2. Требования к серверу

Предполагается, что сервер - это Linux система с:

  a)  модемом, подключенным к устройству /dev/ttySx

  b)  или 'isdn4linux'-эмуляцией модема в устройстве /dev/ttyIx

Наиболее простым способом является создание "модемного демона" (daemon) - perl-скрипта, состоящего из пяти строк:

    $ cat /usr/sbin/modemd

    #!/usr/bin/perl
    select((select(STDOUT), $| = 1)[$[]);
    select((select(STDIN), $| = 1)[$[]);
    exec 'cu -s 115200 -l /dev/ttyS1';
    die '$0: Cant exec cu: $!\n';

Этот демон будет запускаться INETD , если клиент подключится к соответствующему порту, как описано ниже. 'modemd' просто соединяет гнездо (socket) со стандартными входами и выходами команды 'cu' , и оставляет за 'cu' управление реальным модемным устройством. В случае, если у вас нет 'cu' , установите пакет 'UUCP' , частью которого является 'cu'.

Надо сообщить INETD о наличии модемного демона, просто отредактировав его файл конфигурации INETD, (обычно это /etc/ inetd.conf) примерно так:

    #
    # Модемный демон
    #
    modem stream tcp nowait root /usr/sbin/tcpd /usr/sbin/modemd /dev/ttyS1

Чтобы это заработало, добавьте в файл '/etc/services' строку типа:

    modem           2006/tcp        modemd

Строка, приведенная выше, назначает символьное название свободному порту, например 2006 . Номер порта может быть любым, который еще не выделен под существующий сервис. После этих изменений необходимо послать сигнал inetd, чтобы он перечитал и обработал свой конфигурационный файл:

    $ ps |grep inetd
    194  ?  S     0:00 /usr/sbin/inetd

    kill -HUP 194
 

Теперь сервер готов принимать запросы от клиентов. Правильность настройки можно проверить командой:

    $ telnet localhost modem

    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.

Теперь вы подключены к модему. Использовать 'AT' -команды для проверки правильности настройки:
 
    atz
    atz
    OK

    ati1
    ati1
    Linux ISDN
    OK

    ^]
    telnetquit
    $ 

Вместо использования perl-скрипта в виде модемного демона, можно использовать программу  'mserver' , доступную по адресу ftp://ftp.innet.be/pub/staff/carl/ . В случае, если там его уже нет, используйте 'archie' или другую поисковую систему для поиска архива mserver-а. Я, к сожалению, не имел возможности установить и использовать mserver.

3. Требования к клиенту

На настоящий момент, здесь описана только настройка Windows-клиентов. На клиентской машине необходимо установить программу переназначения (redirector) COM-порта на TCP/IP. Лучшая программа, которую я видел, -  ' DialOut/IP ' производства 'Tactical Software' для Windows 3.1 и Windows 95.  (Версия для Windows 3.1 может использоваться и на Windows NT, но только для 16-битных приложений. 32-битная версия для Windows NT должна выйти в конце лета 1997 года.)

DialOut/IP представляет разделенный на сервере модем, как новый виртуальный COM-порт, добавленный к Windows. Этот виртуальный COM-порт может использоваться Windows так же, как будто он напрямую подключен к машине. Многие клиентские приложения (включая сам Windows 95 с его удаленным соединением) понимают это и работают так, как будто к машине на самом деле подключен COM-порт с модемом, кроме, пожалуй, факсовых программ и всех остальных, которые напрямую обращаются к управляющим сигналам микросхемы UART. DialOut/IP может поддерживать и обработку протокола Telnet, но эта функция относится к специальным модемным пулам, а не к настройке Linux, описанной выше. Заметьте, что несмотря на название, программа DialOut/IP может также использоваться для обработки входящих звонков.

На сервере www.tactical-sw.com есть страница, откуда можно загрузить полностью работающую оценочную версию, которая работает 1-2 недели. Установка и настройка проводятся в программе инсталляции, а все детали описаны в файле README.TXT. Когда вы запустите DialOut/IP , введите IP-адрес и номер порта разделенного модема.

DialOut/IP - это коммерческий продукт, который лицензируется "помодемно", то есть, цена зависит от количества модемов, которые вы разделяете. В лицензии записано, что можно устанавливать программу на любое количество машин, которые используют этот разделенный модем.

4. Безопасность

Если у вас только один модем для всех машин в локальной сети, то, наверно, не стоит беспокоиться о безопасности. Однако, если одна или несколько ваших машин подключены к Интернет, не используя этот разделенный модем, который мы только что настроили, то ограничение доступа необходимо. В противном случае, кто угодно сможет набрать 'telnet your_host modem' и позвонить по междугородней или даже по международной связи.

Я советую настроить tcp-wrappers, чтобы защитить модемный сервер от неавторизованного доступа.

5. Примеры

Я использовал настройки, описанные в (2) и (3) для запуска программы "Quicken" на моем "Windows 95 ThinkPad" и производил банковские финансовые операции с модема, подключенного к моему Linux-у. "Модем", в моем случае, был  не совсем модемом - это была эмуляция модема на ISDN карте. "Quicken" просто видел COM-порт, он не знал того, что устройство на самом деле подключено к COM-порту машины на другом конце сети, как и не знал того, что это не простой модем, а ISDN-устройство, которое почему-то понимало 'AT'-команды.
 

6. Авторские права

Авторские права на русский перевод этого текста принадлежат ї 2000 ASPLinux Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе автор текста и автор перевода, желали бы знать о таких дистрибутивах.

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

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу

[Источник: www.linuxdoc.ru]

[ опубликовано 19/09/2003 ]

Friedemann Baitinger (baiti@toplink.net). Перевод Станислав Рогин (sam@asplinux.ru) - Мини-HOWTO: Раздельное использование модема в Linux   Версия для печати