#!/bin/bash # install-ish.sh — установка ПО «Интеграционный шлюз НРД» (ИШ) на Astra Linux. # # Документ-источник: DOC/ruk_install_ish_2025_11_10.pdf (раздел 7.3.2). # # Пред-требования: # 1. ОС: Astra Linux SE 1.6 или 1.7 # 2. УСТАНОВЛЕНА Валидата CSP + АПК Валидата Клиент L (см. install-validata.sh) # 3. Корневой сертификат УЦ МБ загружен в Справочник сертификатов # 4. Пользовательский сертификат экспортирован в системное хранилище # # Что делает скрипт: # 1. Проверяет наличие Валидаты # 2. Устанавливает igate_*.deb через dpkg # 3. Создаёт каталог настроек ~/igate # 4. Подсказывает следующие шаги (запуск настройщика каналов) set -euo pipefail DEB_PATH="${1:-}" log() { echo -e "\033[1;34m[ish-install]\033[0m $*"; } warn() { echo -e "\033[1;33m[ish-install WARN]\033[0m $*" >&2; } fail() { echo -e "\033[1;31m[ish-install FAIL]\033[0m $*" >&2; exit 1; } # ---- 1. Поиск .deb ---- if [ -z "$DEB_PATH" ]; then # Поиск в стандартных местах for candidate in \ ./dist/ish/igate_*_amd64.deb \ /opt/bj/src/dist/ish/igate_*_amd64.deb \ ~/Downloads/igate_*_amd64.deb \ /tmp/igate_*_amd64.deb; do if [ -f "$candidate" ]; then DEB_PATH="$candidate" break fi done fi if [ -z "$DEB_PATH" ] || [ ! -f "$DEB_PATH" ]; then fail "Не найден .deb пакет ИШ. Скачайте с https://www.nsd.ru/workflow/system/programs/web-service/ и передайте путь: sudo bash $0 /path/to/igate_100.0-765_amd64.deb" fi log "Дистрибутив ИШ: $DEB_PATH" # ---- 2. Проверка ОС ---- if [ -r /etc/astra_version ]; then log "Astra Linux: $(cat /etc/astra_version)" else warn "Это не Astra Linux. ИШ под Astra Linux может не запуститься на других ОС." warn "Продолжить? (y/N)" read -r REPLY < /dev/tty [ "$REPLY" = "y" ] || exit 1 fi # ---- 3. Проверка Валидаты ---- log "Проверка СКЗИ Валидата CSP..." VAL_FOUND=0 for path in /opt/Validata /opt/validata-csp /opt/Validata-CSP /usr/local/Validata; do [ -d "$path" ] && { log " ✓ Валидата найдена в $path"; VAL_FOUND=1; break; } done if [ "$VAL_FOUND" = 0 ]; then warn "Валидата CSP не найдена. ИШ всё равно поставится, но не запустится без СКЗИ." warn "Получите дистрибутив Валидаты у НРД (soed@nsd.ru) и поставьте через install-validata.sh." warn "Продолжить установку ИШ? (y/N)" read -r REPLY < /dev/tty [ "$REPLY" = "y" ] || exit 1 fi # ---- 4. dpkg -i ---- log "Установка ИШ через dpkg..." [ "$EUID" -eq 0 ] || fail "Запускать от root (sudo bash $0)" dpkg -i "$DEB_PATH" 2>&1 | tee /tmp/igate-install.log || { warn "dpkg -i вернул ошибку, пытаюсь починить зависимости через apt-get install -f" apt-get install -f -y dpkg -i "$DEB_PATH" } # ---- 5. Проверка ---- if command -v igate >/dev/null 2>&1; then log "✓ ИШ установлен: $(which igate)" elif [ -x /opt/igate/igate ]; then log "✓ ИШ установлен в /opt/igate/" else warn "Бинарник igate не нашёл в PATH. Возможно установлен в /opt/igate или ~/igate." warn "Проверьте: dpkg -L igate | grep -E 'bin|igate$'" fi # ---- 6. Финал ---- echo echo "================================================================" echo " ИШ установлен" echo "================================================================" echo echo " Следующие шаги (по DOC/ruk_install_ish_2025_11_10.pdf раздел 10):" echo " 1. Запустить ИШ в GUI: igate & (или через меню Пуск/Astra)" echo " 2. Настройки БД → PostgreSQL (URL/логин/пароль из bj-server)" echo " 3. Создать канал WSL → URL https://gost.nsd.ru/onyxt3/WslService (TEST3)" echo " 4. Указать сертификат УЦ МБ из системного хранилища" echo " 5. Активировать ИШ как сервис:" echo " sudo systemctl enable --now igate" echo echo " REST API ИШ (для bj-server):" echo " http://localhost:8090 (порт по умолчанию — см. настройки ИШ)" echo echo " После настройки канала в ИШ: открыть" echo " http://<этот-сервер>:8080/admin/setup → раздел «Интеграционный шлюз НРД»" echo " и указать URL ИШ + имя канала." echo "================================================================"