Блокировка сайтов Astra Linux 1.6. Решено использованием squid.
Имеется несколько машин с Astra Linux SE 1.6, на одну установлен центр управления
drweb-11.00.2-201905070-esuite-server-unix-linux-x86_64 , на клиенты установлены — drweb-workstations_11.1.0-1905132145+mo~linux_amd64. Подскажите, чтобы разрешить трафик только на несколько ресурсов — возможно ли это реализовать средствами сервера или соответственно клиентов?
Рекомендации этого поста пока не помогают. Не ясно где взять сертификат для Mozilla.
Начали разбирать тему с саппортом DrWeb https://forum.drweb.com/index.php?showtopic=336814&p=905710
Последнее редактирование: 20.04.2023
Kaktus
New member
Сообщения 30
Пока что реализовали при помощи прозрачного squid 3.5 + ssl_bump
Работает только с Chromium (firefox не понимает системные настройки, и ограничить его работу возможно только принудительно указав в браузере на прокси), разрешаем при помощи whitelist.
https://wiki.astralinux.ru/pages/vi. 3520#id-ИспользованиеPROXY-Web-браузерFirefox
oko
New member
Сообщения 1 253
- доставить на оконечную машину собственный корневой сертификат, которым подписан сертификат squid;
- прописать групповыми или иными политиками в браузере конкретный адрес и «непрозрачный» порт squid;
- оставить в организации разрешение на использование только одного выбранного браузера, а остальной софт, который требует выход во внешку, либо прописывать вручную как исключение из общей схемы (с фиксацией), либо тоже запретить;
- вообще весь трафик с Интернет пропускать исключительно через прокси, не допуская самовольных соединений от оконечной машины с удаленными ресурсами Интернет.
oko
New member
Сообщения 1 253
- базовая схема работы любого прокси-сервера (без учета NAT и проч. сетевых штук между клиентом и удаленным ресурсом): клиент (запрос с IP-клиента) → прокси (перехват, удержание сессии с клиентом и создание новой сессии с удаленным ресурсом с использованием IP-прокси) → удаленный ресурс («видит» IP-прокси, а не IP-клиента).
- непрозрачный режим — клиентское приложение (тот же браузер) подключается к прокси-серверу, указывая адрес и порт соединения вручную. При этом, если клиентское приложения явно перенаправляет на прокси-сервер и HTTP, и HTTPS трафик, проблем с недоверием к SSL-сертификатам и управлением SSL-сессиями не возникает.
- прозрачный режим — клиентское приложение знать не знает о наличии прокси-сервера, но все его соединения с «внешним миром» перехватываются и подменяются прокси-сервером автоматически. Увы, «прозрачный» режим в контексте SSL-сессии возможен только путем подмены сертификата.
- фильтрация уровней L3, L4 и L7 — Squid способен анализировать DNS-домен назначения, DNS-домен источника, их IP-адреса, имена пользователей (если настроена аутентификация пользователей на прокси-сервере), а также анализировать URL-адреса и заголовки HTTP-протокола (и некоторых других протоколов). За счет этого можно фильтровать доступ клиентских приложений к чему угодно и как угодно;
- терминирование HTTPS-соединений — Squid за счет механизма SSL-Bump способен проводить вышеописанную фильтрацию и терминировать (обрывать) HTTPS-сессию (поскольку она зашифрована) или вообще подменять/перенаправлять всю HTTP-сессию (поскольку данные передаются в открытом виде).
- нет необходимости настраивать прокси на каждом отдельном хосте сети;
- http и https трафик равнозначно перехватываются squid и фильтруются по белым или черным спискам, преобразуются, меняются, перенаправляются — тут как кому захочется;
- для клиента подмена SSL-сертификата происходит незаметно: squid перехватывает соединение, отдает назначению (web-сайту или иному ресурсу) «свой» сертификат, а потом, после фильтрации, перенаправляет оригинальное соединение клиента с данным ресурсом.
- нужен центральный сервер-шлюз, на который направляется весь клиентский трафик изнутри сети («default gateway» в сетевых настройках каждого клиента);
- трафик через этот шлюз проходит от клиентов к внешним ресурсом «транзитом»;
- https-трафик не дешифруется полностью, перехватывается только начала SSL-сессии, т.е. всецело логировать на таком шлюзе каждый пакет клиента в дешифрованном виде не выйдет.
1. Ставим Squid с поддержкой Openssl из репозитория: apt install squid-openssl
2. Генерируем сертификат для Squid (или используем уже готовый и подписанный каким-либо внутренним УЦ, если у нас реализован PKI): openssl req -new -newkey rsa:2048 -sha256 -days 3650 -nodes -x509 -extensions v3_ca -keyout /etc/squid/squidCA.pem -out /etc/squid/squidCA.pem, где:
- rsa:2048 — алгоритм RSA и длина ключа 2048 бит;
- sha256 — алгоритм хэширования sha256;
- x509 — тип (стандарт) SSL-сертификата;
- v3_ca — указатель, что SSL-сертификат будет самоподписанным (он же сертификат самоподписанного УЦ);
- /etc/squid/squidCA.pem — путь к размещению SSL-сертификата.
4. Подсовываем конфигурационный файл /etc/squid/squid.conf. Исправляем его под нашу структуру сети и желаемые порты. Конфигурация хорошо документирована, так что это дело техники. В приведенной конфигурации предполагается, что сервер-шлюз имеет два «внутренних» IP (для двух разных подсетей): 172.16.0.1 и .192.168.1.1. «Внешний» IP не так важен в данном случае.
Спойлер: конфигурация squid с ssl-bump и transparent
# Базовые параметры
coredump_dir /var/spool/squid
visible_hostname ОТОБРАЖАЕМОЕ-ИМЯ-СЕРВЕРА (как правило FQDN-имя)
via off
forwarded_for off
shutdown_lifetime 1 seconds
# Параметры DNS (при явном указании dns_nameservers Squid не будет читать штатный /etc/resolv.conf — будет обращаться к указанному DNS-серверу)
dns_nameservers IP-АДРЕС-НУЖНОГО-DNS-СЕРВЕРА
dns_v4_first on
dns_timeout 5 seconds
check_hostnames on
allow_underscore on
dns_defnames off
ignore_unknown_nameservers on
ipcache_size 1024
ipcache_low 90
ipcache_high 95
fqdncache_size 1024
# Прозрачный порт для HTTP (перенаправление происходит автоматически через iptables):
http_port 172.16.0.1:3128 intercept
http_port 192.168.1.1:3128 intercept
# НЕпрозрачный порт для HTTP (можно указать в настройках любого клиентского приложения):
http_port 172.16.0.1:3129
http_port 192.168.1.1:3129
# Прозрачный порт для HTTPS (перенаправление происходит автоматически через iptables):
https_port 172.16.0.1:3130 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem
https_port 192.168.1.1:3130 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem
# Перечень портов, на которые Squid будет передавать соединение
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 443 # https
acl CONNECT method CONNECT
# определяем тип acl (black_list_special — специальный черный список для этого прокси, white_list_special — белый список)
acl black_list_special dstdom_regex -i «/etc/squid/black_list_special.txt»
acl white_list_special dstdom_regex -i «/etc/squid/white_list_special.txt»
# Описание подсетей или отдельных клиентов, от которых допустимы запросы к Squid (остальные будут отбрасываться)
acl arm0 src 172.16.0.2-172.16.0.100
acl mainservers src 192.168.1.2-192.168.1.50
acl all src all
# Параметры разрешения и блокировки доступа по умолчанию
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
# Параметры разрешения доступа от нужных объектов с учетом черных и белых списков
# — параметры выполняются Squid построчно, поэтому важен порядок записей
# — allow разрешить, deny — запретить
http_access allow all white_list_special
http_access deny all black_list_special
http_access allow arm0
http_access allow mainservers
http_access allow localhost
# — последним всегда указываем блокировать все и ото всех
http_access deny all
# Все запросы, проходящие через этот прокси, МОЖЕМ (если хотим) переводить на другой прокси
#cache_peer IP-АДРЕС-ВЫШЕСТОЯЩЕГО-ПРОКСИ parent 3128 0 proxy-only default no-netdb-exchange no-digest
#cache_peer_access IP-АДРЕС-ВЫШЕСТОЯЩЕГО-ПРОКСИ allow all
#never_direct allow all
# Дополнительные опции SSL (закомментировано для случая ПЕРЕНАПРАВЛЕНИЯ на вышестоящий прокси-сервер)
#always_direct allow all
always_direct allow all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/spool/squid/ssl_db -M 8MB
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump splice all
# Опции кэширования (подходят для инфраструктуры в 100 одновременных клиентов)
cache_dir ufs /var/spool/squid 20248 64 256
maximum_object_size_in_memory 32 MB
maximum_object_size 16 MB
minimum_object_size 10 KB
# — выделяем 1Гб ОЗУ под кэширование
cache_mem 1024 MB
cache_swap_low 90
cache_swap_high 95
memory_replacement_policy lru
# настраиваем журнализацию (ротация 0, потому что файлы журналов контролируются logrotate)
logformat speciallog %tl — %>a — %un — «%rm %ru» — «%>h» — %>Hs % cache_store_log none
client_db off
buffered_logs on
# — не забываем настроить /etc/logrotate.d/squid
logfile_rotate 0
#. первый лог-формат для SARG
access_log /var/log/squid/access_sarg.log
#. второй для человекочитабельности
access_log /var/log/squid/access_text.log speciallog
# Отображения страниц ошибок средствами Squid (можно подправить шаблоны для корпоративного стиля), но работает это только для HTTP
error_directory /usr/share/squid/errors/ru
error_map ERR_ACCESS_DENIED 403,404,407,408,423,500,502,503,504,523,526
deny_info ERR_ACCESS_DENIED black_list_special
Спецскрипты для AstraLinux SpecialEdition
=== первая версия скрипта включения/отключения защитных механизмов Astra Linux Special Edition 1.6 ===
Набросал простенький скрипт для включения/отключения механизмов защиты, определенных для Astra Linux Special Edition 1.6 согласно Red-Book.
В идеале для АС с высокими требованиями безопасности включать нужно все, но безопасность — дело индивидуальное, ага.
Фактический состав механизмов, доступных для активации/отключения, можно посмотреть в тексте скрипта непосредственно.
Скрипт нужен больше как памятка и средство упрощения действий по настройке, на большее не претендует. Знатоки BASH могут поправить и оптимизировать текст скрипта — не обижусь
Спойлер: Текст скрипта
#!/bin/bash
answer_astra_control () echo -n «Включить $1? »
while read response; do
case $response in
[yY][eE][sS]|[yY])
$2 enable
echo «$1 — активировано» && echo «»
break
;;
[nN][oO]|[nN])
$2 disable
echo «$1 — отключено» && echo «»
break
;;
*)
echo -n «Пожалуйста, введите Yes или No: »
esac
done
>
answer_def () echo -n «$1»
while read response; do
case $response in
[yY][eE][sS]|[yY])
echo «$2» && echo «»
break
;;
[nN][oO]|[nN])
echo «$3» && echo «»
break
;;
*)
echo -n «Пожалуйста, введите Yes или No: »
esac
done
>
echo «Запуск скрипта активации/отключения механизмов Astra Linux SE 1.6 согласно Red-Book, 2020 г.»
echo «»
answer_def «Начать настройку встроенных механизмов защиты Astra Linux SE 1.6? » «» «Завершение работы скрипта управления. »
case $response in
[nN][oO]|[nN])
exit 0
;;
*)
esac
answer_def «Запретить создание дампа ядра? » «запрет создания дампа ядра — активировано» «запрет создания дампа ядра — отключено»
sed -i «/fs\.suid_dumpable/d» /etc/sysctl.conf
case $response in
[nN][oO]|[nN])
echo «fs.suid_dumpable = 2» >> /etc/sysctl.conf
;;
[yY][eE][sS]|[yY])
echo «fs.suid_dumpable = 0» >> /etc/sysctl.conf
;;
*)
esac
answer_def «Включить рандомизацию адресного пространства ядра ОС (защита от атак на переполнение буфера)? » «рандомизация адресного пространства — активировано» «рандомизация адресного пространства — отключено»
sed -i «/kernel\.randomize_va_space/d» /etc/sysctl.conf
case $response in
[nN][oO]|[nN])
echo «kernel.randomize_va_space = 0» >> /etc/sysctl.conf
;;
[yY][eE][sS]|[yY])
echo «kernel.randomize_va_space = 2» >> /etc/sysctl.conf
;;
*)
esac
answer_def «Запретить управление ядром ОС командами SysRQ? » «запрет управления ядром командами SysRQ — активировано» «запрет управления ядром командами SysRQ — отключено»
sed -i «/kernel\.sysrq/d» /etc/sysctl.conf
case $response in
[nN][oO]|[nN])
echo «kernel.sysrq = 1» >> /etc/sysctl.conf
;;
[yY][eE][sS]|[yY])
echo «kernel.sysrq = 0» >> /etc/sysctl.conf
;;
*)
esac
answer_def «Запретить прохождение сетевого трафика между сетевыми интерфейсами (режим сетевого шлюза)? » «запрет прохождения сетевого трафика — активировано» «запрет прохождения сетевого трафика — отключено»
sed -i «/net\.ipv4\.ip_forward/d» /etc/sysctl.conf
case $response in
[nN][oO]|[nN])
echo «net.ipv4.ip_forward = 1» >> /etc/sysctl.conf
;;
[yY][eE][sS]|[yY])
echo «net.ipv4.ip_forward = 0» >> /etc/sysctl.conf
;;
*)
esac
answer_def «Запретить ICMP-перенаправления? » «запрет ICMP-перенаправлений — активировано» «запрет ICMP-перенаправлений — отключено»
sed -i «/net\.ipv4\.conf\.all\.send_redirects/d» /etc/sysctl.conf
sed -i «/net\.ipv4\.conf\.default\.send_redirects/d» /etc/sysctl.conf
case $response in
[nN][oO]|[nN])
echo «net.ipv4.conf.all.send_redirects = 1» >> /etc/sysctl.conf
echo «net.ipv4.conf.default.send_redirects = 1» >> /etc/sysctl.conf
;;
[yY][eE][sS]|[yY])
echo «net.ipv4.conf.all.send_redirects = 0» >> /etc/sysctl.conf
echo «net.ipv4.conf.default.send_redirects = 1» >> /etc/sysctl.conf
;;
*)
esac
answer_def «Запретить использование протокола IPv6? » «запрет IPv6 — активировано» «запрет IPv6 — отключено»
sed -i «/net\.ipv6\.conf\.all\.disable_ipv6/d» /etc/sysctl.conf
sed -i «/net\.ipv6\.conf\.default\.disable_ipv6/d» /etc/sysctl.conf
sed -i «/net\.ipv6\.conf\.lo\.disable_ipv6/d» /etc/sysctl.conf
case $response in
[nN][oO]|[nN])
echo «net.ipv6.conf.all.disable_ipv6 = 0» >> /etc/sysctl.conf
echo «net.ipv6.conf.default.disable_ipv6 = 0» >> /etc/sysctl.conf
echo «net.ipv6.conf.lo.disable_ipv6 = 0» >> /etc/sysctl.conf
;;
[yY][eE][sS]|[yY])
echo «net.ipv6.conf.all.disable_ipv6 = 1» >> /etc/sysctl.conf
echo «net.ipv6.conf.default.disable_ipv6 = 1» >> /etc/sysctl.conf
echo «net.ipv6.conf.lo.disable_ipv6 = 1» >> /etc/sysctl.conf
;;
*)
esac
declare -a arrtext
declare -a arrcmd
arrtext[0]=»Мандатный Контроль Целостности»
arrcmd[0]=»astra-mic-control»
arrtext[1]=»механизм блокировки консоли для пользователей, не входящих в группу astra-console»
arrcmd[1]=»astra-console-lock»
arrtext[2]=»обязательный запрос пароля при использовании sudo»
arrcmd[2]=»astra-sudo-control»
arrtext[3]=»механизм блокировки любых интерпретаторов кроме BASH для пользователей кроме root»
arrcmd[3]=»astra-interpreters-lock»
arrtext[4]=»механизм блокировки интерпретатора BASH для пользователей кроме root»
arrcmd[4]=»astra-bash-lock»
arrtext[5]=»механизм очистки SWAP»
arrcmd[5]=»astra-swapwiper-control»
arrtext[6]=»механизм очистки удаляемых файлов и данных»
arrcmd[6]=»astra-secdel-control»
arrtext[7]=»запрет установки исполняемого бита (chmod +x)»
arrcmd[7]=»astra-nochmodx-lock»
arrtext[8]=»механизм блокировки макросов»
arrcmd[8]=»astra-macros-lock»
arrtext[9]=»механизм блокировки трассировки ptrace»
arrcmd[9]=»astra-ptrace-lock»
arrtext[10]=»механизм блокировки одновременной работы пользователей в разных уровнях конфиденциальности»
arrcmd[10]=»astra-sumac-lock»
arrtext[11]=»системные ограничения ulimits»
arrcmd[11]=»astra-ulimits-control»
arrtext[12]=»механизм блокировки выключения/перезагрузки для пользователей кроме root»
arrcmd[12]=»astra-shutdown-lock»
arrtext[13]=»механизм блокировки системных команд для пользователей кроме root»
arrcmd[13]=»astra-commands-lock»
arrtext[14]=»межсетевой экран UFW»
arrcmd[14]=»astra-ufw-control»
arrtext[15]=»запрет монтирования МНИ непривилегированными пользователями»
arrcmd[15]=»astra-mount-lock»
arrtext[16]=»механизм блокировки клавиш SysRq для всех пользователей»
arrcmd[16]=»astra-sysrq-lock»
arrtext[17]=»режим работы файловой системы »
arrcmd[17]=»astra-overlay»
for ((index=0; index; index++))
do
answer_astra_control «$» «$»
done
echo «ВНИМАНИЕ: при активации ЗПС исполнение любых ELF-файлов без цифровой подписи будет заблокировано!»
answer_def «Включить механизм Замкнутой Программной Среды? » «механизм ЗПС — активировано» «механизм ЗПС — отключено»
case $response in
nN][oO]|[nN])
echo -e «DIGSIG_ELF_MODE=0\nDIGSIG_XATTR_MODE=0\nDIGSIG_IGNORE_XATTR_KEYS=0\nDIGSIG_IGNORE_GOST2001=0» > /etc/digsig/digsig_initramfs.conf
;;
[yY][eE][sS]|[yY])
echo -e «DIGSIG_ELF_MODE=1\nDIGSIG_XATTR_MODE=1\nDIGSIG_IGNORE_XATTR_KEYS=0\nDIGSIG_IGNORE_GOST2001=0» > /etc/digsig/digsig_initramfs.conf
;;
*)
esac
update-initramfs -u -k all
echo «Настройка механизмов защиты завершена. Требуется перезагрузить операционную систему. »
exit 0
- разбивка диска при установке ОС и по использование защитного преобразования диска;
- выбор ядра Hardened по умолчанию;
- отключение вывода меню загрузчика GRUB;
- тонкая настройка межсетевого экрана UFW или netfilter/iptables;
- установка актуальных обновлений безопасности и выполнение методических рекомендаций согласно этим обновлениям;
- режим «только чтение» для файловой системы ОС;
- тонкая настройка мандатных меток и уровней;
- настройка afick для автоматического контроля целостности;
- настройка разграничения доступа к машинным носителям информации;
- настройка дисковых квот в /etc/fstab;
- настройка режима КИОСК;
- настройка используемых или отключение неиспользуемых systemd-служб.
- создаем файл в том же /usr/bin или домашней директории пользователя-администратора;
- даем права на запуск (sudo chmod +x путь-к-файлу-скрипта);
- запускаем от лица пользователя-администратора при 0 мандатном уровне, 0 мандатной метке и с Высоким контролем целостности (sudo путь-к-файлу-скрипта);
- последовательно отвечаем на вопросы Y, y, yes, Yes или N, n, no, No;
- не прерываем работу скрипта до полного окончания настройки.
Перед установкой ОС
- Если планируется использовать ОС в рекомендованном режиме очистки освобождающихся дисковых ресурсов, то исключить использование дисков SSD.
- Содержащий не менее 8 символов;
- Не содержащий в себе никаких осмысленных слов (ни в каких раскладках);
- Содержащий в себе буквы в различных регистрах, цифры и спецсимволы.
При установке ОС
- Обязательно использовать при установке ОС защитное преобразование дисков,
и по возможности обеспечить невозможность физического доступа к жесткому диску, на котором установлена ОС
/
/boot
/home
/tmp
/var/tmp
Создать отдельные дисковые разделы в соответствии с рекомендациями:
- включение опции noexec при установке ОС приведёт к невозможности установки, при необходимости эту опцию можно включить после установки;
- использование опции noexec после установки может привести к неработоспособности части ПО (в частности, будет нарушена работа установщика пакетов dpkg);
По возможности не использовать. См. Область подкачки (swap): особенности применения и обеспечения безопасности
Если необходимо использовать — то использовать с включенным защитным преобразованием и с включенным гарантированным удалением.
Для всех перечисленных дисковых разделов (кроме раздела /boot) рекомендуется использовать журналируемую файловую систему ext4.
При выборе размера дисковых размеров следует помнить, что при размере раздела /tmp менее 250МБ весьма вероятно возникновение ошибок при работе с графикой или с большими объёмами данных.
«В качестве файловых систем на носителях информации компьютеров с ОС (в том числе съемных машинных носителях информации) должны использоваться только файловые системы Ext2/Ext3/Ext4, поддерживающие расширенные (в т.ч. мандатные) атрибуты пользователей и обеспечивающие гарантированное уничтожение (стирание) информации»
«Руководство по КСЗ, Часть 1» РУСБ.10015-01 97 01-1, 2020г., п. 17.3.1 «Условия применения ОС»

Это сервисы:
- apache2.service
- bind9.service
- exim4 dovecot.service
- ejabberd.service
- nfs-client.target
- ntp
- nfs-server.service
- nmbd.service
- smbd.service
- snmpd.service
- pppd-dns.service
- ssh.service
- vsftpd.service
- winbind.service
- bluetooth.service
- openvpn.service
- sssd.service
- firewalld.service Настройка параметров (в т.ч. параметров безопасности и параметров автоматического запуска) этих сетевых сервисов до их запуска входит в состав работ по настройке системы после установки.
- При установке ОС отдельно обрабатывается установка сервиса SSH: после установки ОС сервис SSH, в отличие от указанных выше сервисов, запускается автоматически. Это исключение сделано для того, чтобы обеспечить возможность удаленного администрирования компьютера для дальнейших настроек после установки.
- Включить режим замкнутой программной среды;
- Запретить установку бита исполнения;
- Использовать по умолчанию ядро hardened. При невозможности использования ядра hardened использовать модуль lkrg ядра generic (см. Инструменты командной строки astra-safepolicy)
- Запретить вывод меню загрузчика;
- Включить очистку разделов страничного обмена (помнить, что очистка освобождаемых ресурсов как правило не работает на SSD-дисках);
- Включить очистку освобождаемых областей для EXT-разделов (помнить, что очистка освобождаемых ресурсов как правило не работает на SSD-дисках);
- Включить блокировку консоли;
- Включить блокировку интерпретаторов;
- Включить межсетевой экран ufw;
- Включить системные ограничения ulimits;
- Отключить возможность трассировки ptrace;
После установки ОС
- Установить единственным устройством для загрузки ОС жесткий диск, на который была произведена установка ОС.
Astra Linux Special Edition (очередное обновление x.7): Ключевые изменения в комплексе средств защиты информации
Подробно все особенности комплекса средств защиты информации описаны в документе РУСБ.10015-01 97 01-1 «Операционная система специального назначения «Astra Linux Special Edition». Руководство по КСЗ. Часть 1».
Уровни защищенности операционной системы
Начиная с очередного обновления 1.7/4.7 операционная система специального назначения «Astra Linux Special Edition» (далее по тексту — ОС ОН) может работать на различных уровнях защищенности, каждому из которых соответствует набор функций подсистемы безопасности реализованной в ОС запатентованными средствами защиты информации, объединенными в единый комплекс средств защиты (КСЗ). В зависимости от приобретаемой лицензии возможен выбор одного из уровней защищенности системы:
- усиленный уровень защищенности;
- максимальный уровень защищенности.
Усиленный уровень защищенности
Вариант лицензирования с усиленным уровнем защищенности рекомендуется для обработки и защиты конфиденциальной информации в государственных информационных системах, в информационных системах, обрабатывающих персональные данные, в составе значимых объектов критической информационной инфраструктуры, в иных информационных (автоматизированных) системах, обрабатывающих информацию ограниченного доступа, не содержащую сведения, составляющие государственную тайну.
Максимальный уровень защищенности
Вариант лицензирования с максимальным уровнем защищенности рекомендуется для обработки и защиты информации любой категории доступа в государственных информационных системах, в информационных системах, обрабатывающих персональные данные, в составе значимых объектов критической информационной инфраструктуры, в иных информационных (автоматизированных) системах, обрабатывающих информацию ограниченного доступа, в т.ч. содержащую сведения, составляющие государственную тайну до степени секретности «совершенно секретно» или «особой важности» (в зависимости от класса защиты, установленного в сертификате соответствия для используемого конечным пользователем варианта исполнения Astra Linux) включительно.
Каждый из уровней защищенности ОС соответствует набору доступных к включению пользователем функций подсистемы безопасности :
Для усиленного уровня защищенности доступны следующие базовые функции безопасности:
- «Запрет вывода меню загрузчика» — при включении данной функции будет запрещен вывод меню загрузчика GRUB 2. В процессе загрузки будет загружаться ядро системы, выбранное по умолчанию. По умолчанию функция не включена;
- «Запрет трассировки ptrace» — при включении данной функции будет исключена возможность трассировки и отладки выполнения программного кода. По умолчанию функция включена;
- «Запрос пароля для команды sudo» — при включении данной функции будет необходим ввод пароля при использовании механизма sudo. По умолчанию функция включена;
- «Запрет установки бита исполнения» — при включении данной функции будет активирован режим запрета установки бита исполнения, обеспечивающий предотвращение несанкционированного запуска исполняемых файлов и сценариев для командной оболочки. По умолчанию функция не включена;
- «Запрет исполнения скриптов пользователя» — при включении данной функции будет блокировано интерактивное использование пользователем интерпретаторов. По умолчанию функция не включена;
- «Запрет исполнения макросов пользователя» — при включении данной функции будет блокировано исполнение макросов в стандартных приложениях. По умолчанию функция не включена;
- «Запрет консоли» — при включении данной функции будет блокирован консольный вход в систему для пользователя и запуск консоли из графического интерфейса сессии пользователя. По умолчанию функция не включена;
- «Системные ограничения ulimits» — при включении данной функции будут активированы системные ограничения, установленные в файле /etc/security/limits.conf . По умолчанию функция не включена;
- «Запрет автонастройки сети» — при включении данной функции будет блокирована автоматическая настройка сети в процессе установки ОС, сеть необходимо будет настроить вручную. По умолчанию функция не включена;
- «Местное время для системных часов» — при включении данной функции будет включен режим интерпретации показаний аппаратных (RTC) часов. По умолчанию функция не включена;
Для усиленного уровня защищенности доступны следующие усиленные функции безопасности:
- «Мандатный контроль целостности» — при включении данной функции будет активирован механизм мандатного контроля целостности. По умолчанию функция включена;
- «Замкнутая программная среда» — при включении данной функции будет активирован механизм, обеспечивающий проверку неизменности и подлинности загружаемых исполняемых файлов формата ELF. По умолчанию функция не включена;
- «Очистка освобождаемой внешней памяти» — при включении данной функции будет активирован режим очистки блоков файловой системы непосредственно при их освобождении, а также режим очистки разделов страничного обмена. По умолчанию функция не включена.
Для максимального уровня защищенности доступны все функции безопасности усиленного уровня, а также функция:
- «Мандатное управление доступом» — при включении данной функции будет активирован механизм мандатного управления доступом. По умолчанию функция включена.
Функции подсистемы безопасности и их состояния определяются следующим образом:
- Значения «по умолчанию» задаются при выборе уровня защищенности в процессе установки ОС;
- Значения «по умолчанию», определенные уровнем защищенности, могут быть изменены в процессе установки ОС;
- Функции подсистемы безопасности могут быть включены и выключены в процессе эксплуатации ОС. Порядок включения и выключения функций подсистемы безопасности после установки Astra Linux описан в документе РУСБ.10015-01 97 01-1 «Операционная система специального назначения «Astra Linux Special Edition». Руководство по КСЗ. Часть 1»;
- При изменении уровня защищенности (режимов работы ОС):
- В сторону снижения уровня защищенности — автоматически отключаются функции безопасности, которые для данного уровня защищенности недоступны;
- В сторону увеличения уровня защищенности — состояние функций безопасности автоматически не меняется. Функции безопасности становятся доступными для включения.
Краткое описание механизмов мандатного управления доступом и мандатного контроля целостности представлено в статье Мандатное управление доступом и мандатный контроль целостности.
Сводная таблица «расширенных» функций подсистемы безопасности и их состояний по умолчанию
В таблице ниже представлен список «расширенных» функций подсистемы безопасности ( доступных к включению пользователем для систем с уровнями защищенности «Усиленный» и «Максимальный») и их состояний по умолчанию, задаваемых при установке в зависимости от выбранного режима:
Функция подсистемы безопасности
- Вкл — режим по умолчанию Включен и доступен для отключения;
- Выкл — режим по умолчанию Отключен и доступен для включения;
- Н/Д — режим по умолчанию Отключен и недоступен для включения.
Отличительные особенности максимального уровня защищенности в сравнении с Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
Изменения программных компонентов, относящихся к КСЗ
Обновлены и доработаны следующие основные компоненты, относящихся к КСЗ:
- FreeIPA — пакет программ для создания доверительных отношений с доменными службами AD и создания ЕПП, доработанный для поддержки КСЗ;
- SambaDC — пакет программ для создания доверительных отношений с доменными службами AD и создания ЕПП Samba DC;
- PostgreSQL — защищенная СУБД;
- CUPS – защищенный комплекс программ печати и маркировки документов;
- Zabbix — средство централизованного протоколирования;
- fly-admin-smc — управление локальной политикой безопасности и управление ЕПП;
- Parsec — комплекс средств защиты информации.
Интегрированы следующие сторонние приложения, относящиеся к КСЗ:
- docker.io — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации;
- bleachbit — приложение для управления приватностью и очисткой свободного места, а также увеличения производительности операционных систем;
- keepassxc — менеджер паролей с поддержкой различных алгоритмов защитного преобразования данных. Совместим с менеджерами паролей – KeePass2, KeePassX, KeeWeb. Поддерживает интеграцию с web-браузерами Google Chrome, Chromium, Mozilla Firefox;
- seahorse — приложение для управления PGP и SSH ключами, поддерживает интеграцию с Caja, Nautilus, gedit и Evolution для защитного преобразования данных и других криптографических операций и серверами ключей HKP и LDAP.
Значения по умолчанию
- защитные механизмы МКЦ и МРД можно не включать при установке Astra Linux. Они могут быть включены и выключены в процессе эксплуатации системы (ранее можно было выключить и включить только МКЦ);
- такие защитные механизмы, как МКЦ, МРД, ЗПС и Очистка освобождаемой внешней памяти, работают независимо друг от друга;
- при включении защитного механизма МКЦ автоматически включается МКЦ на корневой файловой системе и присваиваются атрибуты МКЦ;
- при использовании механизма sudo требуется ввести пароль;
- в настройках ядра установлены следующие параметры:
- включена защита от неправомерного создания жестких и символических ссылок;
- для протокола IPv4 включена фильтрация пакетов по адресу назначения (проверка адреса получателя);
- для протокола IPv4 включена фильтрация входящих пакетов, которые были отправлены одним интерфейсом, а приняты другим;
Графическая утилита «Управление политикой безопасности»
Добавлены следующие функции:
- включение/выключение защитного механизма МРД;
- управление ограничениями на использование дискового пространства (квотами).
Дополнительные мандатные атрибуты управления доступом
- мандатный атрибут управления доступом ccnri более не используется в Astra Linux для управления доступом, при этом штатное функционирование Astra Linux соответствует функционированию с установленным мандатным атрибутом ccnri. Возможность установки и получения данного мандатного атрибута сохранена в Astra Linux для обеспечения совместимости с системами и ПО, которые его использует;
- мандатный атрибут управления доступом ccnra в Astra Linux приравнивается к ccnr и также сохранен только для обеспечения совместимости и не рекомендован к использованию;
- мандатный атрибут управления доступом whole можно присваивать только файлам с максимальной меткой (ранее можно было присваивать файлам c ненулевой классификационной меткой).
Parsec-привилегии
- исключена Parsec-привилегия PARSEC_CAP_BYPASS_KIOSK , позволяющая игнорировать ограничения киоска;
- добавлена новая Parsec-привилегия PARSEC_CAP_BYPASS_XATTR , отключающая проверку подписи файлов в xattr ;
- добавлена новая Parsec-привилегия PARSEC_CAP_PROCFS , позволяющая игнорировать уровни конфиденциальности и уровни целостности при работе с /proc .
Регистрация событий безопасности
В Astra Linux реализована расширенная подсистема протоколирования, осуществляющая регистрацию событий в двоичные файлы с использованием службы auditd. Протоколирование работает согласно правилам, которые делятся на два типа:
- постоянные — действуют всегда, даже после перезагрузки системы;
- временные — действуют до перезагрузки системы.
Помимо графической утилиты fly-admin-smc («Управление политикой безопасности») для работы с подсистемой протоколирования используются следующие новые графические утилиты:
- system-config-audit («Конфигурация аудита») — включение и выключение регистрации событий аудита, настройка auditd, настройка журнала аудита, а также добавление, удаление и редактирование правил аудита;
- ksystemlog («Системный журнал») — выборочный просмотр протоколов аудита.
Защищенный комплекс программ печати и маркировки документов
Вместо web-приложения printcontrol-web («Управление печатью») для печати документов с маркировкой используется графическая утилита fly-print-station («Управление печатью документов»).
Добавлена возможность изменения шрифтов маркировки, в том числе и добавление своего шрифта маркировки.
Изменены наименования дополнительных атрибутов заданий (см. таблицу ниже).
Наименование в 1.7 Наименование в 1.6 Назначение mac-job-mac-label mac-job-mac Метка безопасности задания mac-job-mac-level-name stepen Уровень (название текстом) mac-job-mac-level-reason punkt Основание для степени секретности (пункт перечня) mac-job-user-full-name printuser-fullname Полное имя пользователя, выполнившего маркировку («отпечатал») mac-job-originating-user-full-name user-fullname Полное имя пользователя, который создал задание («исполнитель») Кроме того, добавлен следующий дополнительный атрибут — mac-marking-session-id (идентификатор сессии).
Добавлены следующие дополнительные запросы:
- MAC-Lock-Job — блокировка задания;
- MAC-Unock-Job — снятие блокировки задания;
- MAC-Get-Info — получение информации о станции печати (версия и т.д.);
- MAC-Get-Journal — получение журнала маркировки.
Изменены дополнительные параметры конфигурации (см. таблицу ниже).
Режим печати маркера на обратной стороне (при наличии поддержки со стороны принтера). Значения:
- off — отключено;
- marker — печать маркера на обратной стороне;
- fonarik — печать «фонарика» на обратной стороне последнего листа (будет создано задание с маркированном документом без последней страницы и задание из двух страниц — последняя страница документа и «фонарик» в дуплексном режиме).
Значение по умолчанию — «отключено».
Включить журнал маркировки.
По умолчанию журнал записывается в базу данных SQLITE:
/var/spool/cups/parsec/marking-journal.sqlite .Требовать высокую целостность для операций администрирования (редактирование принтеров, перенос задания на другой принтер и т.д.) — работает только для локальных сокетов.
Значение по умолчанию — «отключено».
Добавлены следующие файлы конфигурации:
- /etc/cups/cups-marker-vars.conf — конфигурационный файл переменных маркировки, значения которых будут запрошены у пользователя перед маркировкой;
- /usr/share/cups/fonts/*.t42 — шрифты для маркировки;
- /usr/share/cups/charsets/utf-8.*, /usr/share/cups/charsets/utf-8 — наборы символов для различных шрифтов маркировки.
Программное обеспечение Docker
Добавлена возможность запуска контейнеров Docker на пониженном уровне целостности 2 для обеспечения еще большей изоляции и безопасности основной системы. Это позволяет изолировать работу процессоров внутри контейнера от процессов других контейнеров и хостовой ОС, что предотвращает воздействие потенциально вредоносного кода, выполняемого в контейнерах.
По умолчанию данная функция выключена. Подробнее — см. Установка и администрирование Docker в Astra Linux 1.7
Другие изменения, касающиеся встроенных средств защиты
- для файловой системы XFS добавлена поддержка таких защитных механизмов, как МКЦ, МРД и Очистка освобождаемой памяти;
- реализована поддержка мандатных меток в протоколе IPv6 и фильтрация пакетов по меткам;
- для файлового сервера Samba добавлена поддержка МРД на всех версиях протокола SMB (v1, v2, v3).
Отличительные особенности в сравнении с Astra Linux Common Edition 2.12
Изменения программных компонентов, относящихся к КСЗ
Повышены версии основных компонентов, относящихся к КСЗ:
- служба FreeIPA версии 4.8.5, доработанная для поддержки КСЗ;
- SambaDC версии 4.12.5 — пакет программ для создания доверительных отношений с доменными службами AD и создания ЕПП Samba DC;
- PostgreSQL версии 11.10 — защищенная СУБД, доработанная для обеспечения мандатного управления доступом к информации;
- CUPS версии 2.3.3 – защищенный комплекс программ печати и маркировки документов (версия CUPS в Astra Linux Common Edition 2.12 не обеспечивает маркировку выводимых на печать документов);
- Zabbix версии 5.0.7 — средство централизованного протоколирования;
- fly-admin-smc версии 0.1.54 — управление локальной политикой безопасности и управление ЕПП;
- docker.io версии 20.10.2 — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации;
- bleachbit версии 2.0-3 — приложение для управления приватностью и очисткой свободного места, а также увеличения производительности операционных систем;
- keepassxc версии 2.3.4 — менеджер паролей с поддержкой различных алгоритмов защитного преобразования данных. Совместим с менеджерами паролей – KeePass2, KeePassX, KeeWeb. Поддерживает интеграцию с браузерами Google Chrome, Chromium, Mozilla Firefox;
- seahorse версии 3.30.1.1-1 — приложение для управления PGP и SSH ключами, поддерживает интеграцию с Caja, Nautilus, gedit и Evolution для защитного преобразования данных и других криптографических операций и серверами ключей HKP и LDAP.
Значения по умолчанию
- межсетевой экран ufw выключен (при установке Astra Linux соответствующий пакет только устанавливается);
- в настройках ядра включена защита от неправомерного создания жестких и символических ссылок;
- протокол IPv6 в настройках ядра не отключен;
- функции безопасности «Запрет исполнения макросов пользователя» и «Запрет установки бита исполнения» можно включить при установке ОС.
Графическая утилита «Управление политикой безопасности»
Добавлены следующие функции:
- управление расширенной подсистемой протоколирования (аудит);
- управление разграничением доступа к подключаемым устройствам;
- отображение сводки состояний функций безопасности (монитор безопасности).
Регистрация событий безопасности
В Astra Linux реализована расширенная подсистема протоколирования, осуществляющая регистрацию событий в двоичные файлы с использованием службы auditd. Протоколирование работает согласно правилам, которые делятся на два типа:
- постоянные — действуют всегда, даже после перезагрузки системы;
- временные — действуют до перезагрузки системы.
Для работы с подсистемой протоколирования могут использоваться следующие графические утилиты, которые позволяют настраивать параметры регистрации событий и просмотра протоколов:
- fly-admin-smc («Управление политикой безопасности») — управление протоколированием, работа с пользователями и группами;
- system-config-audit («Конфигурация аудита») — включение и выключение регистрации событий аудита, настройка auditd, настройка журнала аудита, а также добавление, удаление и редактирование правил аудита;
- ksystemlog («Системный журнал») — выборочный просмотр протоколов аудита.
Средства разграничения доступа к подключаемым устройствам
В Astra Linux поддерживается разграничение доступа к символьным и блочным устройствам, для которых в каталоге /dev создаются файлы устройств. Разграничение доступа реализуется с использованием генерации правил менеджера устройств udev. Для разграничения доступа к устройствам типа видеокарт, сетевых карт и т.д. данный метод не используется.
Учет носителей, управление их принадлежностью и протоколированием осуществляется с помощью утилиты fly-admin-smc («Управление политикой безопасности»), в том числе и при работе в ЕПП.