init
This commit is contained in:
commit
23c7133fa9
33 files changed
+2896
No files matched your search
@@ -0,0 +1,65 @@
|
||||
# ssh-access-tui
|
||||
|
||||
Консольный (TUI) инструмент для администрирования Linux jump-хоста: заводит
|
||||
пользователей, у которых есть **только** проброс портов (`-L`/`-D`) и прыжок
|
||||
(`ProxyJump`) к явно разрешённому списку внутренних хостов — без
|
||||
интерактивного шелла. Управляет группами доступа, генерирует и раздаёт
|
||||
зашифрованные архивы с ключом/конфигом/инструкцией, блокирует уволенных,
|
||||
пишет журнал подключений и хранит всю конфигурацию в 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 — только для сборки бинарника (можно собрать на другой машине).
|
||||
|
||||
## Установка
|
||||
|
||||
```sh
|
||||
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](docs/ARCHITECTURE.md#бэкап-и-аварийное-восстановление)):
|
||||
|
||||
```sh
|
||||
git -C /var/lib/ssh-access-tui/state remote add origin <ssh-или-https-url>
|
||||
```
|
||||
|
||||
## Запуск
|
||||
|
||||
```sh
|
||||
sudo ssh-access-tui
|
||||
```
|
||||
|
||||
Полное руководство по экранам и типовым сценариям — в
|
||||
[docs/ADMIN_GUIDE.md](docs/ADMIN_GUIDE.md).
|
||||
Обоснование архитектурных решений и модель угроз — в
|
||||
[docs/ARCHITECTURE.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/ руководство администратора, архитектура/модель угроз
|
||||
```
|
||||
Reference in new issue
Block a user