TCPFOSS

Версия 4.03.1

Содержание

·         Введение

·         Системные требования программы

·         Установка программы

·         Настройка программы

o        Общие принципы работы

o        Глобальные параметры

o        Параметры абонента

§         Настройка соединения с узлом

·         Настройка операционной системы

·         Запуск и работа с программой

o        Использование утилит

§         keymaker

§         tcpfossctl

·         Использование дополнительных модулей защиты информации

o        Защита Национального Банка Украины (НБУ)

·         Что нового

Введение

Коммуникационная программа TCPFOSS предназначена для передачи файлов в локальных и глобальных вычислительных сетях по протоколу TCP/IP. Передача ведется в автоматическом режиме.

Преимущества данной программы перед другими коммуникационными программами заключаются в следующем:

·         Обмен ведется в дуплексном режиме.

·         Допередача файлов при разрыве канала связи.

·         Передаваемые файлы могут иметь разные приоритеты на отправку. Появление более приоритетного файла вызывает приостановку передачи менее приоритетного файла. Эта свойство позволяет отправлять низкоприоритетные файлы любого размера, задержки в отправке высокоприоритетных файлов не будет.

·         Оригинальный протокол обмена файлами значительно повышающий скорость обмена при передаче большого количества файлов малой длины. Например, при работе по выделенной линии связи при передаче файлов длиной менее 1КБайт TCPFOSS превосходит PROCARRY по скорости в 2,5 раза, FTP-более, чем в 3 раза. При работе через спутниковые каналы связи и сеть X.25 эти цифры еще выше. При передаче длинных файлов скорость обмена близка к физической скорости канала связи.

·         Автоматическое сжатие файлов, что еще больше повышает скорость обмена и позволяет выгоднее использовать сетевые ресурсы.

·         Система защиты от несанкционированного доступа, базирующаяся на двух ключевом алгоритме шифрования RSA.

·         Передача файлов с длинными именами.

·         Возможность использования Internet как канала передачи данных.

·         Маршрутизация пакетов, что позволяет не прерывать работу в случае отключения прямых каналов связи при существовании обходных.

·         Поддержка подключаемых модулей, с помощью которых можно использовать дополнительные средства защиты информации (SSL, защита Национального Банка Украины).

·         С помощью любого HTML браузера Вы можете осуществлять управление работой TCPFOSS как локально, так и удаленно.

Системные требования программы

Для работы программы необходимо иметь:

·         Linux ядро версии 2.4.x и выше или FreeBSD версии 4.7 и выше.

·         Процессор 80486 и выше.

Узнать параметры Вашей системы возможно с использованием следующей команды:
$ uname -srm

Установка программы

1.      Распакуйте архив дистрибутива в необходимый каталог, который может быть произвольным. Рекомендуется использовать каталог /usr/local и далее мы будем предпологать, что приложение будет установлено в этот каталог. Распаковать архив можно так:
$ cd /usr/local
$
tar -xjvf <файл дистрибутива>

2.      Если вы хотите использовать TCPFOSS без применения прав root выполните дополнительно следующие действия:

·         Создайте новые группу tcpfoss и пользователя tcpfoss:
$ groupadd tcpfoss; useradd -g tcpfoss tcpfoss
Для
FreeBSD:
$ pw groupadd tcpfoss; pw useradd -g tcpfoss tcpfoss

·         Выполните команду для установки прав доступа:
$ chown -R tcpfoss:tcpfoss /usr/local/tcpfoss

Для выполнения последующих действий, необходимых для запуска программы, см. инструкции по настройке программы.

Настройка программы

Общие принципы работы

Для каждого абонента имеется каталог входящих (inbox) файлов, в который складываются принятые от него файлы, и каталог выходящих (outbox) файлов, в который вы помещаете файлы для отправки. Программа периодически сканирует выходящие каталоги и подготавливает очередь для каждого абонента. Программа по наличию файлов начнет устанавливать с этим абонентом соединение и, если соединение будет установлено, произведет обмен файлами в обоих направлениях.

Если же для абонента файлов нет, то вызов возможен по истечению PollTimeout - периода автоматического опроса. Если ни одно из возможных соединений не завершилось удачно, то будет выждано время FailTimeout, после чего попытки вызова абонента возобновятся. Программа вида клиент-сервер и сама принимает запросы на соединение.

В случае обрыва соединения, при последующем сеансе все недопринятые/недопереданные файлы будут приниматься/передаваться с точки обрыва.

Прием файлов ведется во временные каталоги, и только после успешного получения файл перемещается во входящий каталог. Аналогично передаваемые файлы находятся в служебном каталоге /usr/local/tcpfoss/spool.

Для успешного соединения необходимо, чтобы имелась возможность непосредственного сетевого соединения (PPP соединения устанавливаются программой автоматически). Также, если Вы планируете использовать внутренний механизм аутентификации TCPFOSS c помощью RSA ключей, необходимо чтобы успешно прошла аутентификация. Следует отметить, что механизм аутентификации c помощью RSA ключей может быть выключен вообще или использован механизм, предоставляемый одним из дополнительных модулей защиты информации.

Серийный номер программы должен позволять одной стороне устанавливать соединение с другой (например, у Вас может быть клиент для сервера SERVER1, в этом случае этот клиент не сможет установить соединение с другим сервером). Сервера могут соединяться между собой всегда (при условии, что используемые механизмы аутентификации позволят осуществить данную операцию).

Для успешной аутентификации с использованием внутреннего механизма TCPFOSS c помощью RSA ключей необходимо:

·         Если для абонента включена аутентификация (параметр Auten) у каждой из сторон должен быть правильный открытый ключ друг друга (открытые ключи находятся в каталоге /usr/local/tcpfoss/public_keys). Пару открытый/закрытый ключ можно получить с помощью утилиты keymaker.

Структура каталогов (установка по умолчанию)

/usr/local/tcpfoss/bin - здесь находится скрипт управления программой, а также различные утилиты.
/usr/local/tcpfoss/etc - здесь находится конфигурационный файл Default.tcp, закрытый ключ сервера и открытые ключи абонентов для внутреннего механизма аутентификации TCPFOSS.
/usr/local/tcpfoss/etc/ppp - здесь находятся примеры конфигурации pppd и chat скрипт для дозвона.
/
usr/local/tcpfoss/boxes/[имя абонента]/inbox - каталог, в который складываютя файлы принятые от абонента. Устанавливается параметром абонента Inbox.
/usr/local/tcpfoss/boxes/[имя абонента]/outbox - в этот каталог вы помещаете файлы для отправки. Устанавливается параметром абонента Outbox.
/usr/local/tcpfoss/log - здесь находятся лог-файлы абонентов. Устанавливается глобальным параметром LogDir.
/usr/local/tcpfoss/spool - здесь находятся файл очереди, защиты от дублей, статуса для каждого абонента, а также уже специально обработанные файлы для отправки и приема (служебный каталог). Устанавливается глобальным параметром SpoolDir.

Глобальные параметры

Редактировать файл конфигурации (по умолчанию это /usr/local/tcpfoss/etc/Default.tcp) можно в любом редакторе (файл имеет XML-подобный синтаксис). Ниже приводится полное описание всех секций и параметров конфигурационного файла. Параметры, для которых указано значение по умолчанию, необязательные.

Основные параметры

Name

Это имя хоста (в контексте TCPFOSS, а не TCP/IP), с именем связан параметр Serial.

Serial

Серийный номер программы.

ScanTimeout

Период сканирования выходных каталогов (сек).

Priority

Приоритет процесса TCPFOSS в операционной системе. Может принимать значения в промежутке от -100 (минимальный приоритет) до 100 (максимальный) (по умолчанию 0).

LogLevel

Задает уровень детальности логов (0..2 (0 - нормальный, 2 - для отладки)) (по умолчанию 0).

Специфические параметры протокола обмена данными (для экспертов)

AddTxLen

Файлы меньшей длины (в байтах) будут передаваться сразу и с начала (с нуля), без проверок на дубль и учета точки обрыва (по умолчанию 2048 байт).

ReceiveTimeout

Время ожидания входящих данных (задается в секундах, по умолчанию 180 сек).

SendTimeout

Время ожидания отправки исходящих данных (задается в секундах, по умолчанию 180 сек).

Приоритеты

FileMask

Задает файловую маску по правилам unix shell (man bash(1)). Приоритет данной маски определяется ее положением в секции. Параметров FileMask может быть задано до 7, номера приоритетов, соответственно от 0 (наивысший) до 6(низший). Пример: FileMask *.rar
Маска регистрозависимая (как и имена файлов в
Unix).

Файлы, не подлежащие сжатию

NonCompressableFiles

Задает файловую маску по правилам unix shell (man bash(1)).
Пример:
FileMask *.jpg
Маска регистрозависимая. Для задания регистронезависимой маски можно воспользоваться примерами конфигурационных файлов, которые идут в поставке с
TCPFOSS.

Значением по умолчанию является список регистронезависимых масок для общеизвестных типов файлов, которые не поддаются или слабо поддаются сжатию. В этот список входят следующие типы файлов: jpg, jpeg, gif, png, avi, mp3, mpg, mpeg, zip, arj, lzh, lha, ice, rar, gz, bz2, ace, divx.

Установки сервера

BindAddress

Маска адреса для сервера (по умолчанию *:10000).

HTTPBindAddress

Маска адреса для административного веб-сервера (по умолчанию *:10080).

Пути

PrivateKey

Путь к собственному закрытому ключу. Необязателен, если ни один из абонентов не использует внутренний механизм аутентификации TCPFOSS.

PublicKeys

Путь к файлу с открытыми ключами абонентов. Необязателен, если ни один из абонентов не использует внутренний механизм аутентификации TCPFOSS. Этот параметр имеет меньший приоритет при поиске открытого ключа для абонента, чем параметр PublicKey, находящийся в секции параметров конкретного абонента.

LogDir

Каталог, в котором будут находиться лог файлы программы.

SpoolDir

Каталог временных файлов, файла очереди.

LogFile

Имя лог файла службы доставки файлов (по умолчанию ${LogDir}/tcpfoss.log).

HTTPAccessLogFile

Имя файла, в который ведется журналирование доступа к административному веб-серверу (по умолчанию ${LogDir}/http_access.log).

HTTPErrorLogFile

Имя файла, в который ведется журналирование сообщений и ошибок выполнения административного веб-сервера (по умолчанию ${LogDir}/http_error.log).

Плагины

Параметры всех плагинов (подключаемых модулей) находятся внутри тега Plugins. Параметры конкретного плагина содержатся внутри тега с его именем. Пример:

  <Plugins>
    <NBU>     # плагин защиты НБУ
      # имя файла плагина (без расширения)
      FileName ${TCPFOSS_PATH}/lib/modules/Transport/NBU
      <Parameters>  # секция параметров плагина
        # содержимое секции специфично для каждого плагина
      </Parameters>
    </NBU>
 
    <SSL>     # плагин защиты SSL
      # имя файла плагина (без расширения)
      FileName ${TCPFOSS_PATH}/lib/modules/Transport/SSL
      <Parameters>  # секция параметров плагина
        # содержимое секции специфично для каждого плагина
      </Parameters>
    </SSL>
  </Plugins>
           

FileName

Имя файла плагина без расширения.


Parameters

Внутри этого тега описываются специфические параметры плагина.

 

Параметры абонента

Параметры каждого узла содержатся внутри тега с именем этого узла. Пример:

  <UUH0>
    Inbox ${TCPFOSS_PATH}/boxes/UUH0/in
    Outbox ${TCPFOSS_PATH}/boxes/UUH0/out
    Auten 1
    PollTimeout 0   
    <Link "Default">    
      Address 10.0.1.16:10000
    </Link>      
    <PluginsParameters>
      <SSL>
        Active 0
      </SSL>
      <NBU>
        Active 1
      </NBU>
    </PluginsParameters>
  </UUH0>
 
  <LXSERVER>
    Auten 1          # Использовать аутентификацию        
    PollTimeout 0    # Период опроса (сек)    
    FailTimeout 10   # Пауза между неудачными опросами
    Inbox ${TCPFOSS_PATH}/boxes/LXSERVER/in
    Outbox ${TCPFOSS_PATH}/boxes/LXSERVER/out   
    <Link "LAN 0">
      Address localhost:10002 
    </Link>
    <Link "LAN 1">
      TimeAllow Al1534-2300
      Address g1:10002
    </Link>
    <Link "LAN 2">
      Address voodoo:10003
    </Link>
    <Link "LAN 3">
      Address ramzes:10002
    </Link>
    <Link "PPP 1">
      Address 192.168.84.1:10002
      <PPP>                  
        Options "tcpfoss"
        Chat "/etc/ppp/chat-tcpfoss"
        ChatVerbose 1
        Timeout 60
        Tries 3
        <Phone>
          Number 17
          TimeAllow Al0000-2400
        </Phone>
        <Phone>
          Number 9W1234567
          Tries 2
          TimeAllow Al1800-2400
        </Phone>
      </PPP>     
    </Link>
    <PluginsParameters>
      <SSL>
        Active 1
      </SSL>
      <NBU>
        Active 0
      </NBU>
    </PluginsParameters>
  </LXSERVER>

Возможные параметры узла перечислены ниже.

PollTimeout

Период опроса (принудительного выхода на связь), задается в секундах (по умолчанию 30). Если 0, то опрос не производится.

FailTimeout

Время ожидания при неудачном завершении всех возможных соединений, задается в секундах (по умолчанию 30).

Auten

Определяет использовать или нет аутентификацию с ключами с этим абонентом. Если 0, то параметр PublicKey не требуется.

PublicKey

Путь к открытому ключу абонента. Ключ необходим, если параметр Auten = 1. Открытый ключ может находиться как в общем файле с открытыми ключами (в этом случае этот параметр указывать не надо), так и в отдельном файле (путь к которому и задает этот параметр). Этот параметр имеет больший приоритет по сравнению с глобальным параметром PublicKeys, указывающем на путь у общему файлу с ключами.

Inbox

Путь к каталогу, куда будут складываться принятые от абонента файлы. Этот каталог будет создан автоматически при первом запуске.

Outbox

Путь к каталогу, куда следует помещать файлы для абонента. Этот каталог будет создан автоматически при первом запуске.

InboxDuplicate

Путь к каталогу, куда будут дополнительно складываться удачно принятые от абонента файлы. Этот каталог будет создан автоматически при первом запуске.

OutboxDuplicate

Путь к каталогу, куда будут дополнительно складываться удачно отправленые файлы абонента. Этот каталог будет создан автоматически при первом запуске.


Link

Внутри этого тега находятся свойства соединения узла. Таких тегов может быть несколько, что позволяет задавать альтернативные соединения с узлом. Параметр Name задает логическое имя соединения.

Address

IP адрес или доменное имя абонента. Используется для того, чтобы программа могла автоматически выходить на связь с этим абонентом по наличию файлов или истечению периода времени PollTimeout.

TimeAllow

Время, когда можно устанавливать связь с узлом по этому соединению.

ReceiveSpeedLimit

Максимальная скорость приема. Задается в cps (байт в секунду). Может применяться для ограничения использования канала. Если значение равно 0, то ограничение скорости отсутствует (по умолчанию 0).

SendSpeedLimit

Максимальная скорость приема. Задается в cps (байт в секунду). Может применяться для ограничения использования канала. Если значение равно 0, то ограничение скорости отсутствует (по умолчанию 0).


PPP

Если это секция присутствует, то для установления связи с узлом будет устанавливаться PPP соединение.

Options

Файл с опциями соединения, файла должен находиться в каталоге /etc/ppp/peers .

Chat

Файл Chat скрипта (man chat(1)), используемый для установления модемного соединения, например /etc/ppp/chat-tcpfoss .

ChatVerbose

Если равен 1, то производится расширенный вывод программы chat (вывод идет в syslog). Удобен для отладки дозвона. По умолчанию 0.

Timeout

Это значение по умолчанию применяется для всех номеров, у которых не указан свой параметр Timeout.

Tries

Это значение по умолчанию применяется для всех номеров, у которых не указан свой параметр Tries.


Phone

Параметры конкретного телефонного номера.

Number

Номер телефона, передается Chat скрипту как параметр /T (man chat(8)).

TimeAllow

Расписание времени, когда разрешен звонок по этому номеру. Имеет больший приоритет, чем значение глобальное значение параметра TimeAllow для этого хоста.

Timeout

Время, в течении которого TCPFOSS ждет установления PPP соединения.

Tries

Количество попыток дозвонится по номеру.

 

 

 


PluginsParameters

Внутри этого тега описываются специфические параметры плагинов для данного абонента. Параметры конкретного плагина содержатся внутри тега с его именем (см. пример выше).

 

Настройка соединения с узлом

TCPFOSS позволяет задавать для узла несколько соединений. Это может быть как соединение по сети (LAN)
так и
PPP соединение. Соединения описываются тегом <Link> в опциях узла (абонента).

Таким образом вы легко можете настроить резервные каналы, а указав несколько PPP соединений - программа может перебирать устройства (модемы).

Вы можете настроить программу для автоматического установления PPP соединения с удаленным узлом. Для этого необходимо произвести настройку операционной системы. Далее Вам необходимо добавить секцию <PPP> в секцию параметров абонента. Пример такой секции указан выше, а также находиться в конфигурационном файле, поставляемым с программой. Там Вам нужно будет указать путь к файлу с chat-скриптом, имя файла опций ppp (имя задается без пути, так как pppd ищет его только в /etc/ppp/peers), а также внести телефонные номера и их параметры.

Задание расписания

В формате используются следующие сокращения для дней недели:

·         Mo - понедельник

·         Tu - вторник

·         We - среда

·         Th - четверг

·         Fr - пятница

·         Sa - суббота

·         Su - воскресенье

·         Wk = MoTuWeThFr (рабочая неделя)

·         Al = все дни недели

Задание расписания поясним на примерах:

·         Al0700-1130 - Звонить можно каждый день недели с 7-00 до 11-30 утра.

·         Mo0700-1130,Tu1100-1400 - В понедельник с 7-00 до 11-30, во вторник с 11-00 до 14-00. В остальные дни не звонить.

·         Wk1130-0700 - С понедельника по пятницу звонить можно с 00-00 до 7-00 и с 11-30 утра до 24-00. В промежуток времени с 7-00 до 11-30 не звонить.

·         MoTuWe0700-1500 - В понедельник, вторник, среду с 7-00 до 15-00.

·         Al1600-1700,Mo0000-2400 - каждый день недели с 16-00 до 17-00, а в понедельник - круглый день.

Если расписание не указано, то звонить можно всегда.

Настройка операционной системы

Будьте внимательны при выборе дистрибутива операционной системы. Желательно, чтобы она поддерживала кириллицу в кодировке KOI8, так как некоторые плагины (плагин защиты НБУ) могут использовать только ее. Настройка операционной системы, которая не имеет встроенной поддержки кириллицы является очень специфическим и трудоемким процессом, поэтому лучше воспользоваться готовым решением.

Если Вы хотите использовать для соединения модем или другие виды PPP соединений, то необходимо настроить опреационную систему для поддержки PPP соединений:

1.      Если не установлены утилиты pppd и chat, то необходимо произвести их установку (смотрите дисрибутив Вашей операционной системы и инструкции по установке там же).

2.      Установить на pppd setuid-root бит (это абсолютно безопасно, об этом сказано в документации к pppd). Это нужно для того, чтобы pppd мог устанавливать соединения, так как TCPFOSS скорее всего работает не от root. Это можно сделать так:
$ chmod +s `which pppd`

3.      Подготовить файл с опциями для каждого модема (стандартные опции pppd (man pppd(8))) (устройство, скорость порта, параметры аутентификации PPP) пример см. ниже.

4.      Подготовить chat скрипт для дозвона пример см. ниже.

5.      Подготовить файлы, необходимые для выбранного метода аутентификации PPP (/etc/ppp/pap-secrets, /etc/ppp/chap-secrets).

Примеры следующих файлов можно найти в каталоге /usr/local/tcpfoss/ppp. Пример файла с опциями (/etc/ppp/peers/tcpfoss):

/dev/ttyS1 38400 crtscts noauth

Здесь указывается, что модем находиться на порту COM2, скорость порта должна быть установлена 38400, использоваться аппаратный контроль потока, и удаленная сторона аутентифицировать себя не должна. Более подробно о настройке PPP соединения сказано в документации к pppd, а также в соответствующих HOWTO.

Типичный chat скрипт выглядит так:

ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
"" "
atz"
OK "atl3"
OK "atdt\T"
"
ogin:" "^Umylogin"
"
word:" "\qmypassword"
"~"

Строка OK "ATDT\T" говорит программе chat, что номер телефона передан ей в качестве параметра запуска -T (это делает TCPFOSS, подставляя номера указанные в конфигурации).

Если узел, на котроый необходимо выходить имеет IP адрес отличный от адреса сервера дозвона, то необходимо добавлять маршрут на этот узел через сервер. Это делается в скрите /etc/ppp/ip-up: route add -host 172.16.1.8 dev $IFNAME
(переменная $
IFNAME автоматически будет заменяться pppd на имя интрефейса)

Подробнее о chat скриптах написано в документации (man chat).

Пример настройки соединения с узлом приведен выше. В примере указано несколько соединений. Пробоваться они будут в перечисленном порядке. Каждое соединение (Link) пробуется только в разрешенное для этого время (TimeAllow).

Запуск и работа с программой

Если программа работает с использованием прав root, то ее можно запустить так:
$ /usr/local/tcpfoss/bin/tcpfossctl start
$ /
usr/local/tcpfoss/bin/tcpfossctl start_http

В противном случае необходимо запускать программу от соответствуещего пользователя и группы:
$
su tcpfoss -c '/usr/local/tcpfoss/bin/tcpfossctl start'
$
su tcpfoss -c '/usr/local/tcpfoss/bin/tcpfossctl start_http'

Для запуска служб TCPFOSS при загрузке операционной системы соответвующие команды (см. выше) должны быть добавлены в скрипт, выполняемый при загрузке. В большинстве Linux систем таким скриптом является файл /etc/rc.d/rc.M.

Использование утилит

·         keymaker

Применяется для создания пары открытый/закрытый ключей для использования аутентификации.
Использование:
./keymaker -name=<имя узла> -pub=<файл с открытыми ключами абонентов>

В результате выполнения в текущей директории будет создано два файла.
Пример: для вызова
$ ./keymaker -name=LXSERVER -pub=public_all.keys будут созданы файлы LXSERVER_private.key (закрытый ключ) и public_all.keys (файл с открытым ключом, если этот файл уже существует, то ключ для абонента LXSERVER будет в него просто дописан к ключам других абонентов, находящихся в этом файле).

Программа ищет открытый ключ каждого абонента либо в общем файле с ключами (параметр PublicKeys) либо в отдельном файле, путь к которому задается параметром PublicKey секции параметров этого абонента. Файл с открытым ключом отдается всем абонентам, работающим с этим узлом.

·         tcpfossctl

Используется для управления
TCPFOSS.

Использование:
./tcpfossctl [файл конфигурации] <команда> [аргументы команды]

start - стартовать службу доставки файлов TCPFOSS
stop - остановить службу доставки файлов TCPFOSS
restart - перезапустить службу доставки файлов TCPFOSS
call <HOST> - инициировать сессию с абонентом <HOST>
start
_http - стартовать службу поддержки HTTP управления
stop
_http - остановить службу поддержки HTTP управления
restart
_http - перезапустить службу поддержки HTTP управления

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

dialog - запуск административной консоли, позволяющей просмотреть информацию и ответить на вопросы. Каждое сообщение требует ответа пользователя. Это используется для подтверждения прочтения каждого сообщения. Выход из консоли осуществляется с помощью нажатия Ctrl+C.
command
<имя плагина> [коммандная строка] - выполнения команды для плагина. Следует отметить, что данная операция синхронная, т.е. ожидает результат выполнения команды (который, в свою очередь, иногда может быть получен только после обработки административных сообщений пользователем). Выход из операции не дожидаясь результата осуществляется с помощью нажатия Ctrl+C.

Использование дополнительных модулей защиты информации

Защита Национального Банка Украины (НБУ)

Данная система защиты (разработка Национального Банка Украины) позволяет осуществлять взаимную строгую аутентификацию сторон, а также опциональное шифрование файлов.

Инсталляция

Данный модуль использует вывод сообщений, содержащих кириллические символы, поэтому внимательно прочитайте об этом в разделе о настройке операционной системе.

Для использования системы прежде всего необходимо подключить модуль защиты НБУ. Для этого добавьте в секцию Plugins запись, подобную следующей:

    <NBU>     # плагин защиты НБУ
      # имя файла плагина (без расширения)
      FileName ${TCPFOSS_PATH}/lib/modules/Transport/NBU
      <Parameters>  # секция параметров плагина
        NbuLibrary ${TCPFOSS_PATH}/lib
        NbuPrivate ${TCPFOSS_PATH}/etc/NBU/PrivateKeys
        NbuPublic ${TCPFOSS_PATH}/etc/NBU/PublicKeys
        NbuSert ${TCPFOSS_PATH}/etc/NBU/Certificates
        NbuLog ${TCPFOSS_PATH}/log/%N%Y%M%D.NBU
        NbuLogLevel 0
        NbuCrypto "*.[Tt][Xx][Tt]"
      </Parameters>
    </NBU>

Затем необходимо настроить модуль защиты НБУ посредством уточнения его параметров (все параметры, для которых не указано значение по умолчанию, являются обязательными):

·         NbuLibrary - параметр должен указывать на папку, содержащую файл библиотеки защиты НБУ (также может указывать на конретный файл без расширения).

·         NbuPrivate - параметр должен указывать на папку, в которой хранится закрытый ключ НБУ.

·         NbuPublic - параметр указывает на папку, в которой хранится таблица открытых ключей НБУ, индексы, журналы криптосистемы НБУ и т.д.

·         NbuSert - параметр указывает на папку в которой будет производится поиск сертификата открытого ключа НБУ.

·         NbuLog - параметр указывает папку и имя файла, в котором будут записываться протокол работы модуля системы защиты НБУ.

Имя файла может содержать символы:

·%y - заменяются на последние две цифры текущего года;

·%Y - заменяются на четыре цифры текущего года:

·%M - заменяются на две цифры текущего месяца;

·%W - заменяются на номер дня недели;

·%D - заменяются на две цифры текущей даты;

·%N - заменяются на имя данного узла (имя узла задается глобальным параметром TCPFOSS Name).

·         NbuLogLevel - если значение параметра равно 0, то в файле, заданном параметром NbuLog будут фиксироваться только неудачные вызовы функций библиотеки защиты, а также вызовы инициализации/деинициализации удостоверения рабочего места и инициализации/деинициализации контекста защиты соединения. Если параметр равен 1 – все вызовы функций. Значение по умолчанию – 0.

·         NbuCrypto - параметр, указывающий регистрозависимую маску для файлов, подлежащих шифрованию. Несколько масок могут быть заданы через разделяющий символ “;”. Если параметр равен пустой строке (“”), то шифрование файлов для данного абонента не используется вообще. Значение по умолчанию – “” (шифрование не используется). Значение этого параметра используется по умолчанию для абонентов, у которых не указан свой параметр NbuCrypto.

Также необходимо сконфигурировать модуль для абонентов, которые будут его использовать. Это делается путем добавления записи подобной следующей в секцию PluginsParameters для каждого из абонентов:

    <NBU>     # плагин защиты НБУ
      Active 1
      NbuCrypto "*.[Dd][Oo][Cc];*.txt;*.xls"
    </NBU>

Рассмотрим параметры модуля защиты НБУ для абонента:

·         Active - параметр, указывающий активность системы защиты НБУ для данного абонента (1 - включена, 0 - выключена).

·         NbuCrypto - параметр, указывающий регистрозависимую маску для файлов, подлежащих шифрованию. Несколько масок могут быть заданы через разделяющий символ “;”. Если параметр отсутствует, то используется маска файлов, заданая в общих параметрах модуля защиты НБУ. Если параметр равен пустой строке (“”), то шифрование файлов для данного абонента не используется.

Параметр Auten для абонента при использовании модуля защиты НБУ должен быть 0.

Работа

После успешной установки модуля можно приступать к работе. Взаимодействие пользователя и системы защиты осуществляется посредством административной консоли, в которую выдаются сообщения для пользователя, и команд для плагинов (см. описание утилиты tcpfossctl).

Параметр NbuPublic должен указывать на папку, в которой будут храниться открытые ключи абонентов. Параметр NbuPrivate должен указывать на папку, содержащую закрытый ключ данного узла. Параметр NbuSert должен указывать на папку, в которую, с помощью внешних программ, будут выкладываться файлы с сертификатами НБУ. Параметрами NbuCrypto можно указать маски файлов, которые будут шифроваться во время передачи.

Аутентификация абонентов производится библиотекой защиты НБУ. Может произойти два этапа аутентификации. Если первый этап неудачный, абоненты обмениваются своими действующими сертификатами, встраивают эти сертификаты в таблицы открытых ключей и производят повторную аутентификацию.

При запуске TCPFOSS производится инициализация системы защиты НБУ, для чего выводится диалог:

Защита НБУ: Пароль AHRT00 ?

Вместо AHRT00 Вы должны увидеть имя своего узла в контексте системы защиты НБУ. Необходимо ввести пароль доступа. При появлении ошибки появляется подобное сообщение:

Защита НБУ: Критическая ошибка в функции SET_ZAH - Неверный пароль закрытого ключа (-1049)

При этом абоненты, работающие с защитой НБУ, получат сообщение "Ошибка аутентификации".

Повторить инициализацию можно выполнив tcpfossctl command NBU init.

В процессе работы программа периодически ищет файл сертификата в папке заданной параметром NbuSert. При появлении этого файла программа выводит диалог:

Защита НБУ: Принят сертификат Вашего открытого ключа. Перейти на новый ключ? [Да/Нет]

Можно отказаться от перехода на новый ключ. Повторно вызвать этот запрос можно командой tcpfossctl command NBU changekey.

Если была выбрана смена ключа, сертификат открытого ключа встраивается в таблицу открытых ключей, после чего выводится следующее диалоговое сообщение:

Защита НБУ: Сертификат обработан успешно. Подготовьте новый закрытый ключ для AHRT00 в папке /usr/local/tcpfoss/etc/NBU/PrivateKeys.

Вместо AHRT00 Вы должны увидеть имя своего узла в контексте системы защиты НБУ. Затем произойдет инициализация системы защиты НБУ.

Появление ошибки при обработке сертификата вызывает появление сообщения:

Защита НБУ: При обработке сертификата возникла ошибка: Критическая ошибка в функции RENEW - В процессе выполнения были ошибки (-13059)

Удалить полученный сертификат? [Да/Нет]

В зависимости от ошибки полученный сертификат можно удалить (например, если сертификат был испорчен) так и оставить (например, если срок действия ключа не наступил).

Для просмотра действующих ключей служит команда tcpfossctl command NBU viewkeys [маска имени абонента в контекте системы защиты НБУ]. Если при выполнении команды не был задан ни один из абонентов, то будет выведена информация об общем количестве ключей встроенных в таблицу открытых ключей (маска *):

Защита НБУ:

-------- report.pub --------

Перегляд таблиц вдкритих ключв

Загальна кльксть ключв 2

-----------------------------------

Для просмотра собственного ключа служит команда tcpfossctl command NBU viewownkey:

Защита НБУ:

-------- report.pub --------

Перегляд таблиц вдкритих ключв

Ключ AHRT00

створений : 21.05.2003 10:36

вводиться в дю з : 21.05.2003 10:46

дйсний до : 24.06.2004 10:46

-----------------------------------

Существует возможность восстановления таблицы открытых ключей из резервной копии. Команда tcpfossctl command NBU repairkeys old восстанавливает ключи из предыдущей копии таблицы открытых ключей, tcpfossctl command NBU repairkeys new - из текущей. После успешного выполнения команды на экран выводится сообщение:

Защита НБУ: Таблица открытых ключей успешно восстановлена из резервной копии.

После чего произойдет инициализация системы защиты НБУ. При появлении ошибки на экране появляется подобное сообщение:

Защита НБУ: При восстанавлении таблицы открытых ключей возникла ошибка: Критическая ошибка в функции RENEW – Файл резервной копии испорчен (-13056)

При неудачной аутентификации абонента в лог файлы TCPFOSS записывается сообщение об ошибке аутентификации. Более подробную информацию об ошибке можно узнать выполнив tcpfossctl command NBU viewerror <имя абонента в контексте TCPFOSS>.

Что нового

v316_1.0.rc1

· Первый вариант программы.


v316_1.0.rc2

· Ключи для аутентификации теперь полностью совпадают с ключами для Windows версии.
· Исправлена ошибка, приводившая к появлению сообщения "accept failed()" на ядре 2.4.
· Добавлена возможность загружать открытый ключ абонента не из общего файла, а из отдельного.
· Параметр polltimeout устанавливается для каждого абонента отдельно.
· Лог-файл для каждого абонента теперь свой.
· Автоматический дозвон по модему (используя pppd/chat).
· Перебор номеров.
· Расписание (разрешенное время для звонка) и таймаут ожидания для каждого номера в отдельности и для всех номеров абонента.


v316_1.0.rc3

· Добавлен параметр секции PPP Tries - задающий кол-во попыток дозвониться по номеру.
· Возможность управлять сервером удаленно с помощью telnet. В дальнейшем будет сделана отдельная программа-консоль с авторизацией.


v316_1.0 Wed Nov 6 14:23:23 2002

· Исправлена ошибка обрезания первого имени абонента в сообщении удаленной консоли "sesion to XXX iniated".


v316_1.1 Sat Jan 11 19:05:03 2003

· Добавлен параметр LogLevel.
· Раздельные пути для Inbox и Outbox каталогов абонента.
· Встроенный веб-сервер для удобного конфигурирования и управления программой.
· Telnet-консоли больше нет, вместо нее веб-сервер.
· Серийные номера совпадают с номерами для Windows версии.


v316_1.2 Fri Jan 17 23:35:22 2003

· Исправлена ошибка, из-за которой не работал tcpfossctl restart.
· Возможность принудительного выхода на связь с помощью tcpfossctl call <имя абонента>.
· Возможность настраивать несколько соединений с узлом (по сети, по PPP).
· Параметр TimeAllow перенесен из секции PPP в общие параметры соединения (<Link>), что позволяет устанавливать желаемое время связи не только для PPP.


v316-2.0 Пнд Дек 15 15:42:55 2003

· Поддержка многоплатформенности (Linux, FreeBSD).
· Изменена архитектура системы. Служба доставки файлов работает отдельно от сервера консоли управления.
· Изменен формат файла конфигурации.
· Добавлена поддержка сжатия передаваемых файлов.
· Добавлены параметры Priority, FailTimeout, ReceiveSpeedLimit, SendSpeedLimit, BindAddress, HTTPBindAddress, NonCompressableFiles.


v4.03.1 Птн Июл 2 13:50:55 2004

· Произошла смена серийных номеров.
· Номера версий теперь одинаковые для всех платформ.
· Появилась поддержка плагинов транспортного уровня (будет задействована в следующих версиях).
· Внимание! Работа над поддержкой системы защиты НБУ в этой версии не закончена и защита НБУ работать не будет (будет сделано в следующих версиях).
· Внимание! Работа TCPFOSS на ОС RedHat Linux 9.0 с ядром 2.4.20-8 может быть неустойчивая - рекомендуется заменить ядро на более позднее.
· Исправлена ошибка в версии для ОС FreeBSD, из-за которой TCPFOSS не мог обнаружить утилиту chat .
· Исправлена ошибка, из-за которой на некоторых файлах при передаче постоянно появлялся результат S7.
· Исправлена ошибка, из-за которой не происходило прекращение передачи низкоприоритетных файлов при появлении высокоприоритетных.
· Расширена поддержка раличных версий систем.
· Возможность запускать несколько экземпляров TCPFOSS с различными конфигурационными файлами.
· Появилась возможность дополнительно складывать в отдельные папки все удачно переданные и удачно принятые файлы. См. параметры InboxDuplicate, OutboxDuplicate.  
· Параметры LogFile, HTTPAccessLog, HTTPErrorLog, NonCompressableFiles теперь имеют значение по умолчанию.

 


Служба поддержки techsupport@foss.kharkov.ua

© 2004 ФОСС-Он-Лайн