Программное обеспечение шлюза однонаправленной передачи

advertisement
Описание и настройка программного обеспечения
однонаправленной передачи SFT.
Программное обеспечение(ПО) STF – это комплект утилит, предназначенных для
однонаправленной передачи файлов через информационный диод, разработанный компанией
«СиЭйЭн».
Основные требования.
Для однонаправленной передачи данных кроме однонаправленного шлюза (Data Diode)
необходимо использовать два персональных компьютера (ПК), которые в дальнейшем мы будем
называть внешний ПК(PC_ext) и внутренний ПК(PC_int). Пример типовой структуры включения
приведён на рис.1.
Внутренняя
сеть
Однонаправленный
шлюз
Рис.1. Структура сети для передачи файлов.
Основные требования к ПК:
 одинаковые по производительности ПК.
 Два сетевых интерфейса в каждом ПК.


Для внутреннего ПК: наличие сетевой карты с оптическим выходом (100/1000BASE- X,
многомод, 1300/850нм), либо наличие оптического конвертера с соответствующими
оптическими параметрами.
Любая ОС из следующего списка: Linux Debian 32bit, Linux Debian 64bit, Windows 32bit,
Windows 64bit, МСВС 5.0, МСВС 3.0, Заря 1.1.
Замечание 1.
ПО однонаправленной передачи SFT платформо-независимое. Все утилиты под любую ОС
совместимы между собой. Это позволяет устанавливать на ПК как одинаковые ОС, так и разные ОС
- на работоспособность это никак не повлияет.
Замечание 2.
Для уменьшения вероятности потери данных, не рекомендуется ставить между PC_ext и
однонаправленным шлюзом какое-либо активное сетевое оборудование. Также не
рекомендуется использовать сетевой интерфейс eth1 ПК PC_ext, к которому подключен диод
данных, под какие-либо другие приложения.
Структура и работа ПО.
ПО делится на утилиты 3-х видов:
SendService — утилита для передачи файлов. Устанавливается на внешнем ПК. При запуске
SendService обрамляет указанный для передачи файл необходимыми заголовками. Затем режет
данные на UDP-пакеты и отправляет UDP пакеты на указанный в конфигурации IP адрес.
ScanFolder — утилита, которая следит за папкой для передачи файлов. Устанавливается на
внешнем ПК. При запуске ScanFolder следит за появлением файлов в папке scan_dir. В случае
появления там файла ScanFolder его блокирует и отправляет в шлюз, вызывая утилиту
SendService. После окончания работы SendService, файл из папки scan_dir удаляется.
RecvService - утилита для приема файлов. Устанавливается на внутреннем ПК. Утилита
постоянно «слушает» указанный в конфигурации UDP порт. В случае приема заголовка
определённой структуры RecvService пытается собрать из принятый данных файл. Если
контрольные суммы принятого файла совпадают, то файл записывается в папку dest. Если же
файл собрать не удалось, то в папку dest ничего не записывается, в логе отображается запись о
неудачном приеме.
Настройка и параметры ПО.
Настройка SendService.
После первого запуска SendService без параметров в рабочей папке создается
конфигурационный файл sendcfg. При каждом следующем запуске SendService программа будет
считывать параметры из sendcfg.
Для исключения сбоев передачи рекомендуется устанавливать статическую ARP запись на IP
адрес, на который будет посылаться файлы.
Параметры sendcfg.
i: IP-адрес, на который будет пересылаться файл. Например: i:192.168.1.5
p: Порт назначения, по умолчанию 55001
h: Количество повторов заголовка, по умолчанию равно 5.
d: Количество передач данных, по умолчанию равно 2. При d:1 данные передаются один раз. При
d:2 два раза. При нормальной работе достаточно d:1.
v: Вывод на консоль. При v:0 ничего не выводится. При v:1 присутствует вывод на консоль.
s: Скорость передачи. При s:0 - максимальная скорость передачи.
n: Внутренний параметр, лучше не изменять
m: Минимальный размер посылки. При m:1400 данные режутся по 1 пакету UDP,
фрагментированные пакеты отсутствуют, достижение максимальной скорости передачи
маловероятно. При больших значениях будут фрагментированные пакеты, максимальная
скорость передачи.
Настройка ScanFolder.
После первого запуска ScanFolder без параметров в рабочей папке создается конфигурационный
файл sсancfg. При каждом следующем запуске ScanFolder программа будет считывать
параметры из scancfg. Так же необходимо создать в рабочей папке директорию, за которой будет
следить ScanFolder (по умолчанию scan_dir).
Параметры scancfg.
m: режим запуска. При m:0 программа перешлёт 1 файл из папки scan_dir и закончит своё
выполнение. При m:1 программа будет постоянно проверять папку на наличие файлов для
передачи.
v: Вывод на консоль. При v:0 ничего не выводится. При v:1 присутствует вывод на консоль.
l: Ведение лога. При l:1 включено. При l:0 выключено.
р: Папка для передачи файлов. По умолчанию scan_dir.
Настройка RecvService.
После первого запуска RecvService без параметров в рабочей папке создается
конфигурационный файл rconfig, папка для временных файлов tmp и папка, куда будут
складываться принятые файлы dest. При каждом следующем запуске RecvService программа
будет считывать параметры из rconfig.
Параметры rconfig.
Порт сервера:
55001
Адрес для временных файлов:
tmp\
Адрес для входящих файлов:
dest\
Таймаут неудачи по получению файла:
15000
Таймаут удаления из очереди полученного файла:
5000
Пример настройки ПО.
Задача. Необходимо установить однонаправленную передачу между двумя сегментами сети. Во
внешней сети выделен IP адрес 10.8.0.5. Во внутренней сети выделен IP адрес 10.8.1.2. На
выделенных IP адресах должны быть организованы Ftp-сервера. Данные на внешний Ftp-сервер
должны попадать под пользователем user_ext, забирать данные с закрытого Ftp-сервера нужно
под пользователем user_int (рис.2).
Рисунок 2.Исходные данные.
Решение.
1.Выбор аппаратных компонент.
Для данной задачи необходимо(рис.3.):
 Шлюз однонаправленной передачи, разработанный компанией «СиЭйЭн».
 Два ПК одинаковой производительности PC_ext и PC_int.
 У ПК PC_ext должно быть два сетевых интерфейса. Один из них витая пара с поддержкой
Ethernet 100/1000BASE-T (на рис.3 это eth1).
 У ПК PC_int должно быть два сетевых интерфейса. Один из них оптика с поддержкой
Ethernet 100/1000BASE-SX (на рис.3 это eth0). Либо конфигурацию необходимо дополнить
оптическим конвертером.
Внешняя
сеть
Закрытая
сеть
Однонаправленный
шлюз
Рисунок 3. Аппаратные
компоненты.
2.Распределение сетевых адресов.
Для интерфейсов, которые соединяются с однонаправленным шлюзом (информационным
диодом), выбираются адреса, не пересекающиеся с сетевыми интерфейсами, к которым
подключается сеть (рис.4).
Внешняя
сеть
Закрытая
сеть
Однонаправленный
шлюз
192.168.5.1
10.8.0.5
192.168.1.1
192.168.1.2
Рисунок 4. Распределение IP
адресов.
10.8.1.2
3.MAC адреса.
Назначаем MAC адрес у однонаправленного шлюза. Выясняем MAC адрес интерфейса eth0 у
PC_int.
MAC однонаправленного шлюза: 00:11:22:33:44:55 (назначается).
MAC eth0: 00:23:F2:AB:23:33 (выясняем через команду ifconfig eth0).
4.Создаем конфигурацию для однонаправленного шлюза.
Исходя из полученной структуры сети, создаем конфигурационный файл (z.txt)
4.1. Указываем MAC однонаправленного шлюза
wan mac 00:11:22:33:44:55
4.2. Указываем разрешенный IP-адрес
ip permit 192.168.1.1
4.3. Указываем маршрутизацию в закрытую сеть
route 192.168.1.2 192.168.5.1 00:23:F2:AB:23:33
4.4. Компилируем конфигурацию
./zc z.txt z.cfg
4.5. Полученный файл z.cfg сохраняем на SD-карту и загружаем в однонаправленный шлюз.
Подробности в описании «Конфигурирование однонаправленный шлюз.pdf»
5.Проверка взаимодействия с однонаправленным шлюзом.
5.1. На PC_ext запустить проверку работоспособности сети на 192.168.1.2. При этом ответов не
будет (это нормально).
ping 192.168.1.2
5.2. Проверить, появилась ли ARP запись на адресе 192.168.1.2. Адресу 192.168.1.2 должен
соответствовать МАС однонаправленного шлюза.
arp -a
192.168.1.2
----- 00:11:22:33:44:55
5.3. Так же должен увеличиваться счетчик на дисплее однонаправленного шлюза.
5.4. Так же должен увеличиваться счетчик принятых пакетов у PC_int на интерфейсе eth0
(команда ifconfig eth0, поле RX packet в ответе на команду)
Если пункты 5.2-5.4 выполняются, то взаимодействие с однонаправленным шлюзом (диодом
данных) налажено. Иначе обратиться к «Конфигурирование однонаправленный шлюз.pdf»,
раздел «Диагностика работоспособности».
6.Настройка ПО на PC_ext.
6.1 Запустить службу Ftp.
6.2 Создать пользователя user_ext. Локальный каталог /home/user_ext.
6.3 В папку /home/user_ext скопировать утилиты ScanFolder и SendService.
6.4 В папкe /home/user_ext запустить и остановить утилиты ScanFolder и SendService.
6.5 В папке /home/user_ext создать папку scan_dir.
6.6 Отредактировать появившиеся после запуска утилит файлы конфигурации.
6.7 Конфигурация ScanFolder (файл scancfg)
# Режим запуска: постоянный мониторинг папки
m:1
# Дополнительная индикация: включена
v:1
# Ведение лога: включено
l:1
6.8. Конфигурация SendService (файл sendcfg)
# Порт сервера:
p:55001
# IP адрес сервера: указываем IP адрес однонаправленного шлюза
i:192.168.1.2
# Количество повторов заголовка:
h:5
# Количество повторов для данных:
d:1
# Дополнительная индикация:
v:1
# Скорость передачи MBit (0 - max):
s:0
# минимальный размер передаваемых данных
m:1400
Замечание.
Параметр m на начальном этапе работы лучше оставить равным 1400, потом можно
увеличивать до 64000.
7.Проверка работоспособности ПО на PC_ext.
7.1. После корректировки конфигураций утилит из папки /home/user_ext нужно запустить утилиту
ScanFolder:
./ScanFolder
7.2 В папку /home/user_ext/scan_dir скопировать один или несколько файлов.
7.3 В случае нормальной работы ПО:
7.3.1. скопированные файлы в /home/user_ext/scan_dir исчезнут
7.3.2. увеличится счетчик на однонаправленном шлюзе
7.3.3. увеличится счетчик принятых пакетов у PC_int на интерфейсе eth0 (команда ifconfig
eth0, поле RX packet в ответе на команду)
7.4
Если пункты 7.3.1-7.3.3 выполняются, то ПО работает правильно. В этом случае можно
попробовать положить в папку scan_dir файлы через Ftp. Результат должен быть такой же, как и
в 7.3.1-7.3.3.
7.5
Если пункты 7.3.1-7.3.3 не выполняются, то необходимо искать проблему, рассматривая
логи утилит и ошибки, которые утилиты пишут в эти логи.
8.Прописывание ПО в автозагрузку.
Для этого необходимо в стартовом скрипте (в основном это /etc/rc.local) указать следующие
строки:
# статическая ARP запись
arp -s 192.168.1.2 00:11:22:33:44:55
# приход в рабочую папку
cd /home/user_ext
# запуск утилиты
./ScanFolder 1> /home/user_ext/scan_ver.txt &
Замечание.
Сброс лога консоли можно отменить, указав 1> /dev/null. В обязательном порядке необходимо
поставить в конце строки знак & (отдать консоль). Иначе при загрузке у вас повиснет служба local.
9.Настройка ПО на PC_int.
9.1 Запустить службу Ftp.
9.2 Cоздать пользователя user_int. Локальный каталог /home/user_int
9.3 В папку /home/user_int скопировать утилиту RecvService
9.4 В папкe /home/user_ int запустить и остановить утилиту RecvService
9.5
Отредактировать при необходимости появившийся после запуска
конфигурации rconfig.
утилиты
файл
10. Проверка работоспособности ПО на PC_int
10.1. Запустить утилиту ./ScanFolder на PC_ext.
10.2. На PC_int из папки /home/user_int нужно запустить утилиту RecvService: ./RecvService.
10.3. Скопировать на PC_ext файл в папку scan_dir
10.4. Утилита RecvService должна среагировать на прием файла.
10.5. В случае удачной передачи — файл окажется в папке /home/user_int/dest
10.6. Далее этот файл можно забрать через Ftp пользователю из закрытой сети.
11. Прописывание ПО в автозагрузку.
Для этого необходимо в стартовом скрипте (в основном это /etc/rc.local) указать следующие
строки:
# приход в рабочую папку
cd /home/user_int
# запуск утилиты
./ RecvService 1> /home/user_int/rx_ver.txt &
Замечание.
Сброс лога консоли можно отменить, указав 1> /dev/null. В обязательном порядке необходимо
поставить в конце строки знак & (отдать консоль). Иначе при загрузке у вас повиснет служба local.
Download