Linux Modem sharing mini-HOWTO

Friedemann Baitinger, baiti@toplink.net
Русский перевод Ilgiz Kalmetev, ilgiz@mail.rb.ru

    Последнее обновление :
     
     v1.01, 11 February 1997 
                    источник теперь в формате HTML, добавлена ссылка
                    где можно найти 'cu' и ссылка, где можно найти 
                    mserver. В пример с 'cu' добавлен параметр '-s'.
  
     v1.00, 06/12/97 
                    первый релиз

1. Введение

Этот mini-HOWTO описывает как установить Linux-машину для того, чтобы обеспечить совместный доступ к модему другим машинам в этой же сети TCP/IP.

2. Серверная сторона

Предполагается, что сервер - это Linux машина с одним из двух устройств:

Наиболее простая настройка, как мне кажется, это 'модем-демон' - пять строчек на 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' просто соединяет обработчик сокета с потоками STDIN и STDOUT команды 'cu' и разрешает 'cu' работать с модемом. если у вас нет 'cu', инсталлируйте пакет 'UUCP', 'cu' обычно входит в пакет 'UUCP'.

Процессу INETD надо дать знать о существовании modemd. Отредактируйте файл настроек, обычно это /etc/inetd.conf :

        #
        # modem daemon
        #
        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
    
        ^]
        telnet>quit
        $
Вместо использования Perl-скрипта в качестве модемного сервера можно также использовать программу 'mserver'. Ее можно взять на ftp://ftp.innet.be/pub/staff/carl/. Если ссылка не работает, воспользуйтесь 'archie' или другим средством поиска. Пока что я не имел удовольствия ставить и использовать mserver.

3. Клиентская сторона

В настоящее время ниже описываются только Windows-клиенты. На клиентской машине нужно перенаправить 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-порту. Программы видят этот виртуальный COM-порт как обычный модем. Большинство программ успешно работают с виртуальным COM-портом, за исключением тех, кому требуется доступ к UART и факс-приложений. DialOut/IP можно настроить для работы с telnet потоколом, но это применимо к конкретным модемным пуллам, но не к описываемой установке Linux. Заметьте, что не смотря на свое имя DialOut/IP можно использовать для приема входящих звонков.

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

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

4. Защита

Если у вас только один модем для всех хостов вашей LAN, то оснований для беспокойства нет. Однако если один или несколько хостов подключено к Internet через другие каналы связи, чем описываемый модемный сервер, тогда вам придется позаботиться о защите, потому что кто-нибудь может сделать 'telnet ваш_хост modem' и позвонить по междугородке или даже международке.

Чтобы защитить модемный сервер от несанкционированного вторжения я предлагаю использовать tcp-врапперы.

5. Примеры

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

6. Ссылки

  1. baiti@toplink.net
  2. ftp://ftp.innet.be/pub/staff/carl/
  3. http://www.tactical-sw.com/
Hosted by uCoz