Известно как любят в госструктурах мандатное разграничение доступа.
И тут потребовалось наладить сетевое взаимодействие между Альт 8 СП и Астра 1.6 SE.
Ничто не предвещает беды, пока это происходит на "нулевом" уровне. Но внезапно потребовали обеспечить сетевое взаимодействие в режимах, отличных от "нуля".
Подопытные: Альт 8 СП
cat /etc/os-release
NAME="ALT SPWorkstation"
VERSION="8.0 (cliff)"
ID=altlinux
VERSION_ID=8.0
PRETTY_NAME="ALT 8 SP Workstation (cliff)"
ANSI_COLOR="1;33"
CPE_NAME="cpe:/o:alt:spworkstation:8.0"
HOME_URL="
http://altsp.su"
BUG_REPORT_URL="
https://bugs.altlinux.org/"
Астра 1.6
cat /etc/os-release
PRETTY_NAME="Astra Linux (Smolensk 1.6)"
NAME="Astra Linux (Smolensk)"
ID=astra
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="
http://astralinux.ru"
SUPPORT_URL="
http://astralinux.ru/support"
VARIANT_ID=smolensk
VARIANT=Smolensk
VERSION_ID=1.6
Астра практически не требует настроек, за исключение назначения пользователю мандатных атрибутов.
Альт был препарирован в соответствии с Руководством по комплексу средств защиты ЛКНВ.11100-1 99 01 п.3.4.6
по итогу имеются:
iptables -L -n -t security
Chain INPUT (policy ACCEPT)
target prot opt source destination
TRIPSO all -- 0.0.0.0/0 0.0.0.0/0 -j TRIPSO --to-cipso
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
TRIPSO all -- 0.0.0.0/0 0.0.0.0/0 -j TRIPSO --to-astra
Поднялся модуль перекодировки меток Commercial в ГОСТ
lsmod | grep -i tripso
xt_TRIPSO 16384 2
x_tables 32768 4 xt_TRIPSO,ip_tables,iptable_filter,iptable_security
modinfo xt_TRIPSO
filename: /lib/modules/4.9.227-std-4.9-alt0.M80C.1/misc/xt_TRIPSO.ko
alias: ipt_TRIPSO
version: 1.0-alt1.264675.0.M80C.1
license: GPL
description: iptables target for security label translation
author: <vt@altlinux.org>
srcversion: 004D0899B6BDA52E366766F
depends: x_tables
vermagic: 4.9.227-std-4.9-alt0.M80C.1 SMP preempt mod_unload
parm: doi:domain of interpretation (default=1) (uint)
parm: debug:debug level (uint)
parm: icmp:send ICMP on errors (default=1) (uint)
И с этими настройками, если инициатор соединения Альт, то работает
от Альта до Астры из секретного режима
$ping 14.1.9.1
64 bytes from 14.1.9.1: icmp_req=157 ttl=64 time=0.281 ms
unknown option 86
А вот в обратную сторону, всё плохо.
23 packets transmitted, 0 received, 100% packet loss,
Пришлось задействовать tcpdump. И выяснилось, что пакеты с установленным полем SECURITY Альтом принимается, а вот ответ Альт отправляет уже без поля SECURITY.
Пришлось начать выкуривать selinux. Умом я понимаю, что надо задать нужный контекст на процессы, отвечающие за ТСР стек. Но на практике не получается. В Базальте selinux отличается от Centos.
Кто-нибудь сталкивался? Техподдержка Базальта игнорирует вопрос.