redlineoandClaude Sonnet 5 264ed74095 Fix first real VSTO build, add sender account selection, polish deploy
First live build against real Visual Studio/VSTO tooling surfaced two
issues in the hand-written AddIn scaffold: ThisAddIn derived from the
wrong base type (OutlookAddIn is an interface, not the concrete
OutlookAddInBase class), and VSTO Application projects cannot build
without a signed ClickOnce manifest, so SignManifests is now on with a
throwaway self-signed test certificate. Both Core/Core.Tests/AddIn now
build clean and Core.Tests passes.

Also: mail always sent from Outlook's default account with no way to
pick a different one (e.g. a shared mailbox) - added a "From account"
setting (Session.Accounts dropdown in SettingsForm, SendUsingAccount in
MailSender). And added deploy/ with both a local ClickOnce publish
script (real install/uninstall via Windows Apps, no manual registry
editing) and a manual registry sideload fallback for scripted rollouts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-24 09:51:52 +03:00
2026-07-23 11:29:25 +03:00
2026-07-22 14:14:53 +03:00
2026-07-23 12:38:13 +03:00
2026-07-23 12:38:13 +03:00
2026-07-22 14:14:53 +03:00
2026-07-23 11:29:25 +03:00
2026-07-22 14:14:53 +03:00
2026-07-22 14:14:53 +03:00
2026-07-23 12:38:13 +03:00
2026-07-23 12:38:13 +03:00

ssh-access-tui

Консольный (TUI) инструмент для администрирования Linux jump-хоста: заводит пользователей, у которых есть только проброс портов к явно разрешённому списку внутренних хостов — без интерактивного шелла. Клиентский конфиг выдаётся в одном из двух режимов на выбор администратора (переключается на пользователя, по умолчанию — первый): LocalForward (одно всегда открытое соединение jump сразу открывает все разрешённые сервисы на локальных портах) или ProxyJump (отдельный Host-алиас на каждый сервис, ssh <алиас> по требованию, без постоянно открытого туннеля и локальных портов). Оба режима — только формат клиентского конфига; на сервере в обоих случаях одинаково работает permitopen=-ограничение в authorized_keys (см. docs/ARCHITECTURE.md). Хосты и сервисы описываются один раз в общем каталоге, группы просто выбирают из него. Генерирует и раздаёт зашифрованные архивы с ключом/конфигом/инструкцией, блокирует уволенных, пишет журнал подключений, хранит всю конфигурацию в 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%