2026-07-22 17:20:32 +03:00
2026-07-22 14:14:53 +03:00
rc
2026-07-22 17:13:35 +03:00
2026-07-22 17:20:32 +03:00
2026-07-22 14:14:53 +03:00
2026-07-22 14:14:53 +03:00
2026-07-22 14:14:53 +03:00
2026-07-22 17:20:32 +03:00

ssh-access-tui

Консольный (TUI) инструмент для администрирования Linux jump-хоста: заводит пользователей, у которых есть только проброс портов (LocalForward, одно соединение сразу открывает все разрешённые сервисы) к явно разрешённому списку внутренних хостов — без интерактивного шелла. Хосты и сервисы описываются один раз в общем каталоге, группы просто выбирают из него. Генерирует и раздаёт зашифрованные архивы с ключом/конфигом/ инструкцией, блокирует уволенных, пишет журнал подключений, хранит всю конфигурацию в git для бэкапа/переезда, и требует явное подтверждение (ввод случайной строки) для любого деструктивного действия.

Почему не веб-панель: инструмент требует root (создание пользователей, правка authorized_keys и sshd_config). Веб-бэкенд с такими правами — новый слушающий процесс с TLS/сессиями/CSRF на и так критичном хосте. TUI работает поверх уже существующего SSH+sudo доступа админа и не добавляет новой сетевой поверхности атаки.

Требования на jump-хосте

  • Linux с systemd и OpenSSH ≥ 7.2 (restrict, permitopen= в authorized_keys; актуальные Debian/Ubuntu/RHEL этому условию отвечают).
  • ssh-keygen, 7z (пакет p7zip-full), git — устанавливаются через системный пакетный менеджер.
  • Go ≥ 1.24 — только для сборки бинарника (можно собрать на другой машине).

Установка

sudo apt-get install -y p7zip-full git   # или аналог для вашего дистрибутива
sudo ./scripts/install.sh

Скрипт собирает бинарник, ставит systemd-юниты (сборщик журнала подключений и часовой git-бэкап состояния), создаёт каталоги /var/lib/ssh-access-tui/* и Match-блок в /etc/ssh/sshd_config.d/50-ssh-access-tui.conf.

После установки настройте git-бэкап на внешний репозиторий (см. docs/ARCHITECTURE.md):

git -C /var/lib/ssh-access-tui/state remote add origin <ssh-или-https-url>

Запуск

sudo ssh-access-tui

Полное руководство по экранам и типовым сценариям — в docs/ADMIN_GUIDE.md. Обоснование архитектурных решений и модель угроз — в docs/ARCHITECTURE.md.

Структура репозитория

cmd/ssh-access-tui/    точка входа (TUI, install, audit-tail)
internal/model/        типы данных (Group, Host, User, State)
internal/store/        YAML-состояние в git-репозитории, файловая блокировка
internal/sysadm/       useradd/usermod, authorized_keys, sshd Match-блок
internal/keymgr/       генерация ключей, клиентский config, .7z архив
internal/audit/        журнал подключений (JSONL) + "кто сейчас в сети"
internal/ui/           bubbletea TUI
scripts/               install.sh, systemd-юниты, скрипт бэкапа
docs/                  руководство администратора, архитектура/модель угроз
S
Description
No description provided
Readme
6.9 MiB
0 Stars 1 Watchers 0 Forks
2026-07-24 13:05:30 +03:00
Languages
Go 52.1%
C# 45.5%
PowerShell 1.3%
Shell 1.1%