Формула remote-access-groups-ssh-formula
| Формула используется для установки и настройки ограничений доступа к удаленному устройству через SSH в зависимости от версии Astra Linux. |
Формула устанавливает и настраивает специализированный пакет osmax-ira-openssh, адаптированный под конкретную версию ОС (Astra Linux 1.7 или 1.8), обеспечивая совместимость с системными библиотеками, политиками безопасности и требованиями к аутентификации.
Особенности обработки формулы с учетом версии ОС
Начиная с версии 1.19.0, пакеты SSH разделены по версиям Astra Linux:
-
Astra Linux 1.7 → osmax-ira-openssh-astra1.7;
-
Astra Linux 1.8 → osmax-ira-openssh-astra1.8.
Формула автоматически выбирает нужный пакет на основе версии ОС (через grains.osmajorrelease).
В формуле указывается базовое имя пакета (name: osmax-ira-openssh), без указания версии ОС. Параметр pkg.name в pillar не обязателен: по умолчанию формула использует name: osmax-ira-openssh и автоматически дополняет его суффиксом -astra<версия>.
В пользовательском интерфейсе «Кабинет администратора» при заполнении содержимого pillar указывать имя пакета не требуется. Пример:
{
"lookup": {
"pkg": {
"version": "1.4.5"
},
"sshd_config": {
"Port": "222"
},
"remote_access_groups": [
"Domain Users"
],
"passwordauthentication_ips": [
"*"
]
}
}
Доступные состояния
Состояние remote-access-groups-ssh
Мета-состояние, которое включает в себя все необходимые действия для настройки SSH-доступа с ограничениями.
Автоматически:
-
устанавливает пакет osmax-ira-openssh (с указанием версии, если задана);
-
создает файлы /opt/osmax/sshd/etc/ssh/sshd_config, /opt/osmax/sshd/etc/ssh/sshd_config.d/match, /opt/osmax/sshd/etc/ssh/sshd_config.d/custom, /etc/pam.d/osmax-ira-sshd-access-groups, /etc/access-groups-ssh;
-
включает и запускает сервис
osmax-ira-sshd.
Зависит от remote-access-groups-ssh.package через include.
Состояние remote-access-groups-ssh.package
Устанавливает пакет osmax-ira-openssh, создает файлы конфигурации (sshd_config, match, custom, osmax-ira-sshd-access-groups, access-groups-ssh) и запускает сервис.
Состояние remote-access-groups-ssh.clean
Мета-состояние, отменяющее все действия remote-access-groups-ssh в обратном порядке:
-
останавливает сервис
osmax-ira-sshd; -
удаляет файлы конфигурации /opt/osmax/sshd/etc/ssh/sshd_config, /opt/osmax/sshd/etc/ssh/sshd_config.d/match,/opt/osmax/sshd/etc/ssh/sshd_config.d/custom, /etc/pam.d/osmax-ira-sshd-access-groups, /etc/access-groups-ssh;
-
удаляет установленный пакет osmax-ira-openssh.
Зависит от remote-access-groups-ssh.package.clean через include.
Состояние remote-access-groups-ssh.package.clean
Удаляет пакет osmax-ira-openssh и файлы конфигурации /opt/osmax/sshd/etc/ssh/sshd_config, /opt/osmax/sshd/etc/ssh/sshd_config.d/match, /opt/osmax/sshd/etc/ssh/sshd_config.d/custom, /etc/pam.d/osmax-ira-sshd-access-groups, /etc/access-groups-ssh.
Пример файла pillar.example
remote-access-groups-ssh:
# Переопределите значение map.jinja
lookup:
# Задайте параметры пакета
pkg:
# Формула использует значение по умолчанию: osmax-ira-openssh
# На Astra Linux автоматически заменяется на osmax-ira-openssh-astra1.7 или -astra1.8
name: osmax-ira-openssh
# Укажите конкретную версию пакета. Если значение представляет собой пустую строку, используется последняя версия
version: '1.3.0'
# Задайте параметры ssh:
# Игнорировать/не игнорировать группы доступа при аутентификации. Значение true указывает на то, что группы
# доступа не будут учитываться при определении прав доступа
access_groups_ignore: false
# IP-адреса или диапазоны IP-адресов, для которых будет использоваться аутентификация Kerberos при подключении по SSH
kerberosauthentication_ips: ['*']
# IP-адреса, для которых разрешена аутентификация по паролю при подключении по SSH
passwordauthentication_ips: ['*']
# IP-адреса, для которых будет использоваться аутентификация GSSAPI при подключении по SSH
gssapiauthentication_ips: ['*']
# IP-адреса, для которых разрешена аутентификация с использованием открытых ключей при подключении по SSH
pubkeyauthentication_ips: ['*']
# IP-адреса, для которых разрешена интерактивная аутентификация при подключении по SSH
kbdinteractiveauthentication_ips: ['*']
# Задайте группы доступа к ssh
remote_access_groups: []
# Дополнительные настройки, связанные с пользовательской настройкой SSH
config_customize:
# Время ожидания (таймаут) для неактивного канала связи
ChannelTimeout: '*=5m'
# Время ожидания (таймаут) для неиспользуемых соединений
UnusedConnectionTimeout: '5m'
# Настройки конфигурации SSH-сервера
sshd_config:
# Порт, на котором будет работать SSH-сервер
Port: 22
По умолчанию все подключения заблокированы — пустой файл правил блокирует все подключения. Для каждого из правил аутентификации по IP-адресу можно задать следующие директивы:
-
*— разрешение для всех адресов;
Также для IP-адреса можно добавить подсеть. Для этого необходимо дополнительно указать символ /.
Например, */16 — разрешение для всех адресов в подсети 16.
-
!<IP-адрес>— запрет доступа для конкретного адреса; -
<IP-адрес> — разрешение для конкретного адреса.
Также можно задать несколько директив, но в таком случае при подключении правила будут проверяться по очереди до первого подходящего, например:
!199.35.209.1 *
Данный набор директив разрешит определённый вид аутентификации для всех адресов кроме 199.35.209.1
|
В параметре Также если параметры конфигурации задаются в файле со специальным форматированием, необходимо экранировать
спецсимволы. Например, для формата JSON экранируется символ |