Сетевое взаимодействие в ОССН.
Оглавление
1.Логические уровни сетевой инфраструктуры
2. Формирование базового уровня сетевой инфраструктуры ОССН
1.Логические уровни сетевой инфраструктуры
Использование ОССН в составе АСЗИ подразумевает организацию сетевого взаимодействия компьютеров, функционирующих под её управлением в составе ЗЛВС.
АСЗИ – это автоматизированная система в защищенном исполнении.
ЗЛВС — защищённая локальная вычислительная сеть.
Рисунок 1. Вариант реализации корпоративной ЗЛВС для мультисервисной системы связи на базе ОССН Astra Linux Special Edition (релизы Смоленск, Мурманск, Новороссийск).
Поскольку в качестве базового стека сетевых протоколов в ОССН используется стек TCP/IP, методика создания подобных ЗЛВС основана на методике создания сетевой инфраструктуры на базе этого стека протоколов. При этом организация сетевой инфраструктуры может рассматриваться, как минимум, на двух логических уровнях:
- базовом, подразумевающем организацию сетевого взаимодействия компьютеров (хостов), работающих под управлением ОССН в составе одной или нескольких подсетей со статическим или динамическим выделением IP-адресов, реализацией статической маршрутизации между хостами, входящими в разные подсети, а также организацией шлюза для доступа в сеть Интернет;
- корпоративном, подразумевающем организацию доменной сетевой инфраструктуры на базе варианта службы каталогов (Directory Service), обеспечивающей её пользователям механизм ЕПП (Единое пространство пользователей), включая централизованное управление учётными записями пользователей и групп пользователей, прозрачную (сквозную) аутентификацию в ЕПП с любого хоста, являющегося клиентом домена и централизованное хранение домашних каталогов пользователей.
В этом случае модули LSM Module Policy Engine подсистемы безопасности ОССН PARSEC раздельно реализуют управление доступом (hooks/decision) для каждого из указанных логических уровней:
- LSM-модуль parsec обеспечивает управление доступом на уровне стека протоколов TCP/IP (реализован для версии протокола IPv4);
- LSM-модуль parsec-cifs обеспечивает управление доступом на уровне протокола прикладного уровня CIFS — диалекта протокола SMB (реализован для версии протокола SMB 3.0).
Linux Security Modules (LSM) — фреймворк, добавляющий в Linux поддержку различных моделей безопасности. LSM является частью ядра начиная с Linux версии 2.6. На данный момент в официальном ядре «обитают» модули безопасности SELinux, AppArmor, Tomoyo и Smack.
Работают модули параллельно с «родной» моделью безопасности Linux — избирательным управлением доступом (Discretionary Access Control, DAC). Проверки LSM вызываются на действия, разрешенные DAC.
Применять механизм LSM можно по-разному. В большинстве случаев это добавление мандатного управления доступом (как, например, в случае с SELinux). Кроме того, можно придумать собственную модель безопасности, реализовать ее в виде модуля и легко внедрить, используя фреймворк.
SMB (сокр. от англ. Server Message Block) — сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия. Первая версия протокола, также известная как Common Internet File System (CIFS) (Единая файловая система Интернета), была разработана компаниями IBM, Microsoft, Intel и 3Com в 1980-х годах; вторая (SMB 2.0) была создана Microsoft и появилась в Windows Vista. В настоящее время SMB связан главным образом с операционными системами Microsoft Windows, где используется для реализации «Сети Microsoft Windows» (англ. Microsoft Windows Network) и «Совместного использования файлов и принтеров» (англ. File and Printer Sharing). В Windows Server 2012 используется новая версия протокола SMB — SMB 3.0.
Очевидно, что корпоративный уровень сетевой инфраструктуры может быть развернут только поверх базового уровня.
2. Формирование базового уровня сетевой инфраструктуры ОССН
В общем случае процесс создания базового уровня сетевой инфраструктуры ОССН состоит из этапов, приведенных на рис. 2.
Рисунок 2. Этапы формирования базового уровня сетевой инфраструктуры ОССН.
В ОССН указанные этапы реализуются с помощью ряда средств, стандартных для большинства современных дистрибутивов ОС проекта GNU/Linux, к ним относятся:
- net tools — набор команд конфигурирования сетевой инфраструктуры на базе стека TCP/IP ;
- iproute2 — альтернативный набор команд конфигурирования сетевой инфраструктуры на базе стека TCP/IP, учитывающий такие его особенности, как туннелированние сетевых протоколов, возможность формирования виртуальных частных сетей (VPN) и средства управления трафиком (качеством обслуживания);
- графические утилиты, встроенные в защищённую графическую подсистему Fly.
Далее будут рассматриваться команды из набора net tools поскольку именно он рекмендуется в документации на ОССН в качестве основного средства администрирования базовой сетевой инфраструктуры. В текущий версии ОССН в набор net tools входят команды, указанные в табл. 1. Для создания базовой сетевой инфраструктуры основными из представленных в табл. 1 являются команды ifconfig, netstat, аrр и route.
Таблица 1. Команды net tools.
аrр | Работает с таблицей ARP (ARP кэшем ядра), используемой протоколом ARP для преобразования IP-адреса в МАС-адрес |
dnsdomainname | Сообщает о доменном имени DNS-системы |
domainname | Выдаёт или устанавливает доменное имя NIS/YP системы (Network Information Service/Yellow Pages) — службы централизованного администрирования промышленных сетей |
hostname | Выдаёт или устанавливает имя хоста (сетевого узла) |
ifconfig | Является основной утилитой конфигурирования сетевых интерфейсов |
ipmaddr | Добавляет, удаляет или показывает широковещательные адреса сетевого интерфейса |
iptunnel | Добавляет, удаляет или показывает туннели, используемые в сетевом интерфейсе |
mii-tool | Проверяет или устанавливает статус интерфейсного модуля МП (Media Independent Interface — независимый мультимедийный интерфейс) |
nameif | Присваивает интерфейсам имена, используя при этом МАС-адреса |
netstat | Получает отчёт о сетевых соединениях, таблицах маршрутизации и статистике работы сетевого интерфейса |
nisdomainname | Обладает теми же функциями, что и команда domainname |
plipconhg | Управляет параметрами протокола PLIP — передачи IP-пакетов через параллельный порт (подключение компьютеров между собой соединением «точка-точка» через параллельные порты) |
rarp | Управляет протоколом RARP — удалённое получение бездисковыми станциями IP-адреса по MAC-адресу |
route | Работает с таблицей маршрутизации протокола IP |
slattach | Подключает сетевой интерфейс к линии последовательного доступа (для использования терминальных линий при подключении компьютеров между собой соединением «точка-точка») |
Настройка сетевых интерфейсов. Для настройки сетевых интерфейсов используется команда ifconfig (от Interface Configuration), выполняющая следующие функции:
- назначение IP-адреса;
- назначение широковещательного адреса и связанной с ним маски подсети;
- включение (up) и выключения (down) сетевого интерфейса.
Обычно команда ifconfig применяется во время первоначальной настройки сети, но может использоваться и для внесения изменений в ходе её эксплуатации. Пример вывода этой команды приведён на рис. 3.
Рисунок. 3. Пример вывода команды ifconfig
Управлять конфигурированием сетевых интерфейсов администратор ОССН может не только с помощью команды ifconfig, но и с использованием графической утилиты «Сетевые соединения» (вызываемой из главного пользовательского меню через меню «Настройки»), предназначенной для настройки параметров проводных и беспроводных сетевых интерфейсов.
Доступ к графической утилите «Сетевые соединения» можно получить из области уведомлений рабочего стола Fly (рис. 4).
Рисунок 4. Доступ к графической утилите «Сетевые соединения» из области уведомлений рабочего стола Fly
В основном окне интерфейса графической утилиты «Сетевые соединения» отображаются обнаруженные автоматически сетевые интерфейсы, при этом предоставляются возможности:
- отключить/включить сетевой интерфейс;
- вызвать интерфейс настроек IP-адресации (рис. 5,6);
Рисунок 5. Окно «Сетевые соединения». Для вызова окна «Настройки нужно щелкнуть кнопкой мыши по опции «Настройки».
Рисунок 6. Управление параметрами сетевого интерфейса.
- задать сетевой интерфейс в сетевом профиле по умолчанию (default) (рис. 7);
Рис. 7. Управление профилями сетевого интерфейса - осуществить настройки сетевого интерфейса (рис. 6)
При успешном конфигурировании адресной информации сетевого интерфейса в области уведомлений рабочего стола Fly появится соответствующее сообщение об успешном сетевом подключении (рис. 8).
Рисунок 8. Уведомление об успешном подключении сетевого интерфейса.
При этом следует учитывать, что поскольку ОССН адаптирована для работы с мобильными устройствами (планшетными компьютерами), в разделе «Сетевые интерфейсы» и во вкладке «Дополнительные настройки» графической утилиты «Сетевые соединения» предоставлены функции конфигурирования беспроводных сетевых интерфейсов и правила переключения между проводным и беспроводным интерфейсами.
Проверка и настройка базового уровня сетевой инфраструктуры. Команда netstat отображает информацию о состоянии сетевого ПО, включая статистику сетевых интерфейсов и данные из таблицы маршрутизации. Наиболее востребованными её функциями являются:
- вывод информации о конфигурации и статистике работы сетевых интерфейсов;
- получение статических данных о сетевых протоколах;
- проверка состояния сетевых соединений;
- просмотр таблицы маршрутизации.
Команда аrр используется для просмотра, добавления и удаления записей в специальной системной таблице ядра ОССН — кэше ARP, в которой задано соответствие IP-адресов хостов сети аппаратным интерфейсам сетевых адаптеров (Аппаратным (MAC) адресам).
MAC-адрес или HW-адрес (от англ. Media Access Control — управление доступом к среде, также Hardware Address) — уникальный идентификатор, присваиваемый каждой единице активного оборудования или некоторым их интерфейсам в компьютерных сетях Ethernet.
При проектировании стандарта Ethernet было предусмотрено, что каждая сетевая карта (равно как и встроенный сетевой интерфейс) должна иметь уникальный шестибайтный номер (MAC-адрес), «прошитый» в ней при изготовлении. Этот номер используется для идентификации отправителя и получателя фрейма; и предполагается, что при появлении в сети нового компьютера (или другого устройства, способного работать в сети) сетевому администратору не придётся настраивать этому компьютеру MAC-адрес вручную.
Уникальность MAC-адресов достигается тем, что каждый производитель получает в координирующем комитете IEEE Registration Authority диапазон из шестнадцати миллионов адресов и, по мере исчерпания выделенных адресов, может запросить новый диапазон. Поэтому по трём старшим байтам MAC-адреса можно определить производителя.
Для интерфейсов сети Ethernet в кэше ARP устанавливается соответствие между IP-адресом хоста и МАС-адресом его сетевого адаптера. Для опроса хостов на предмет этой информации используется специальный протокол сетевого уровня ARP. Он передаёт широковещательные пакеты, которые не могут выйти за пределы локальной сети, т. е. протокол ARP позволяет находить только адреса хостов, работающих в пределах одной сети (подсети). Рассылка пакетов протокола ARP происходит вскоре после начальной загрузки ОССН, поэтому протокол ARP практически не влияет на загруженность сети.
Информацию о соответствии собственных IP-адресов и MAC-адресов сетевых интерфейсов ядро ОССН хоста сохраняет в таблице ARP и отображается в файле /рrос/self/net/arp (рис. 9).
Рисунок 9. Пример таблицы ARP.
В ОССН правила маршрутизации IP-пакетов хранятся в системной таблице Kernel IP routing table ядра и в случае таблицы ARP отображаются в файле /рrос/self/net/route (рис. 10).
Iface | Destination | Gateway | Flags | RefCnt | Use | Metric | Mask | MTU | Window | IRTT |
eth0 | 00000000 | 0164A8C0 | 0003 | 0 | 0 | 0 | 00000000 | 0 | 0 | 0 |
eth0 | 0064A8C0 | 00000000 | 0001 | 0 | 0 | 0 | 00FFFFFF | 0 | 0 | 0 |
Рисунок 10. Пример таблицы Kernel IP routing table
Маршрутизация в ОС семейства Linux может использоваться следующих двух видов:
- статическая маршрутизация — когда маршруты задаются явно и хранятся в таблице маршрутизации до момента необходимости их удаления;
- динамическая маршрутизация — выполняющаяся демонами routed или gated, которые заполняют и модифицируют таблицу Kernel IP routing table на основе сообщений от других хостов сети (динамическая маршрутизация необходима в том случае, если структура сети не является статичной и меняется с течением времени, и в ней один и тот же компьютер может быть доступен по различным интерфейсам, например, через разные адаптеры Ethernet или беспроводный интерфейс).
Команда route определяет только статические маршруты, записываемые в таблицу Kernel IP routing table. Пример вывода этой команды приведён на рис. 11.
Рисунок. 11. Пример вывода таблицы Kernel IP routing table командой route
Поскольку в состав дистрибутива ОССН не включены демоны routed и gated, динамическая маршрутизация в ней не реализуется.
В случае использования на хосте двух и более сетевых интерфейсов (например, когда хост применяется в качестве маршрутизатора или шлюза в другую подсеть) требуется указать ядру ОССН на необходимость включения функции «IP forwarding», которая позволяет перенаправлять IP-пакеты с одного сетевого интерфейса на другой. Это осуществляется путём вызова команды sysctl. Для того чтобы функция «IP forwarding» применялась каждый раз при загрузке/перезагрузке ОССН, необходимо задать соответствующий параметр в конфигурационном файле /etc/sysctl.conf (рис. 12).
Рисунок 12. Строка включения функции «IP forwarding» для протокола IPv4