Мини-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@metalab.unc.edu> или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу <linux-howto@asplinux.ru>

 

Hosted by uCoz