Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 

Repository files navigation

Admin Tools

Bash Debian

Русский · English

Интерактивный Bash-инструмент для администрирования серверов Debian.

Обзор

Admin Tools предоставляет интерактивное меню для типовых задач администрирования Debian VPS или сервера. Скрипт управляет настройками SSH и пользователями, устанавливает выбранные пакеты и приложения, настраивает UFW, а также предоставляет простые средства мониторинга и диагностики.

Это компактный вспомогательный инструмент, а не система управления конфигурацией и не замена Ansible. Все операции выполняются локально на сервере и остаются под контролем администратора.

Возможности

Раздел Возможности
SSH Изменение отдельных параметров SSH, просмотр эффективной конфигурации, безопасный перезапуск, редактирование drop-in-файлов и просмотр резервных копий.
Users Создание пользователей с sudo, подготовка защищённых SSH-путей и добавление проверенных публичных ключей.
Docker Установка Docker Engine и Compose plugin из официального репозитория Docker для Debian.
UFW Установка и удаление UFW, управление портами и политиками по умолчанию, просмотр состояния firewall.
Fail2Ban Установка, включение и запуск Fail2Ban.
Applications Установка OpenCode, Ollama и Open WebUI, а также общий просмотр их состояния.
System Monitor Просмотр нагрузки, памяти, дисков и процессов с наибольшим потреблением CPU.
Network Tools Просмотр IP-адресов, listener-портов и соединений, базовые проверки ping, HTTP и DNS.
Service Manager Просмотр состояния сервисов, защищённый массовый перезапуск и остановка сервисов без SSH.

Быстрый запуск

Скачайте и запустите скрипт с правами root:

curl -fsSL https://raw.githubusercontent.com/dimadr/admintools/main/admin-tools.sh -o admin-tools.sh
sudo bash admin-tools.sh

Если скрипт запущен не от root, он сразу завершит работу. Перед использованием на важном сервере рекомендуется просмотреть его исходный код.

Главное меню

[1] SSH
[2] Users
[3] Docker
[4] UFW
[5] Fail2Ban
[6] Apps

[7] System Monitor
[8] Network Tools
[9] Service Manager

[0] Exit

Все подменю интерактивны. Получение EOF корректно закрывает текущее меню, а ошибка отдельного действия возвращает управление пользователю.

Безопасность SSH

Операции, изменяющие SSH, содержат локальные проверки для защиты от очевидной потери доступа и небезопасной работы с файлами:

  • .ssh и authorized_keys должны быть реальными объектами, принадлежать целевому пользователю и не являться symlink; пользовательские SSH-файлы изменяются от имени этого пользователя.
  • Текущая и подготовленная SSH-конфигурация проверяются через sshd -t до применения или перезапуска.
  • Применённые значения сверяются с эффективной конфигурацией из sshd -T там, где это необходимо.
  • После смены SSH-порта проверяется локальный listener sshd; при фактической ошибке применения выполняется rollback управляемого drop-in-файла.
  • Перед отключением парольной или key-based аутентификации проверяется наличие локально определяемого альтернативного способа административного входа.
  • Перед реальными изменениями создаются timestamped backup-файлы /etc/ssh/sshd_config.bak.*, доступные через SSH → Backup list.
  • Действие Stop services всегда исключает SSH.
  • При массовом перезапуске SSH-конфигурация проверяется до перезапуска SSH.

Автоматическое управление параметрами использует /etc/ssh/sshd_config.d/00-admin-tools.conf. Если обнаружена нестандартная SSH-конфигурация, которую нельзя безопасно обработать простым способом, скрипт отказывается от автоматического изменения и предлагает выполнить его вручную.

Эти механизмы проверяют локальную конфигурацию и состояние сервиса. Они не гарантируют, что новое SSH-подключение сможет достичь сервера через внешнюю сеть.

Приложения

В меню Applications доступны три установщика:

Приложение Поведение
OpenCode Запускает upstream-установщик после явного предупреждения и подтверждения.
Ollama Запускает upstream-установщик после явного предупреждения и подтверждения.
Open WebUI Запускает Docker-образ на порту 3000 с постоянным Docker volume.

В этом же меню можно проверить состояние OpenCode, Ollama, Docker, Open WebUI, Fail2Ban и UFW.

Встроенные справочники

В интерактивном интерфейсе сохранены краткие справочники команд для:

  • SSH;
  • Docker;
  • UFW;
  • Fail2Ban;
  • Applications.

Откройте пункт Reference в соответствующем меню, чтобы посмотреть команды для ручного использования вне скрипта.

Требования

  • Сервер или VPS на Debian
  • Bash 4 или новее
  • Права root
  • Стандартные утилиты Debian, необходимые для выбранной операции
  • systemd для функций управления сервисами
  • Доступ в интернет для загрузки пакетов, установщиков, образов и публичной сетевой информации

Установка Docker явно требует ID=debian в /etc/os-release. У отдельных функций Docker и приложений могут быть дополнительные требования, о которых интерфейс сообщает при запуске операции.

Примечания по безопасности

Следующие особенности являются сознательными решениями проекта и должны учитываться перед использованием:

  • OpenCode и Ollama используют upstream-команды установки через curl | bash/sh после подтверждения.
  • Членство в группе docker фактически предоставляет root-equivalent доступ к системе. Установщик добавляет в неё только обнаруженного непривилегированного SUDO_USER; при прямом запуске от root пользователь root в группу не добавляется.
  • Open WebUI публикуется на всех интерфейсах как 0.0.0.0:3000.
  • Для Open WebUI используется rolling-тег ghcr.io/open-webui/open-webui:main.
  • Существующий контейнер open-webui может быть заменён через docker rm -f open-webui; именованный volume с данными сохраняется.
  • После включения UFW и установки default deny скрипт проверяет стандартное локальное состояние UFW и правило для эффективного SSH-порта, но не проверяет доступ извне.

Ограничения

Admin Tools может проверять локальные файлы, эффективные настройки SSH, listener-порты, сервисы и стандартный вывод UFW. Скрипт не может гарантировать:

  • доступность через внешний firewall, security group, NAT или сеть VPS-провайдера;
  • наличие правильного приватного ключа у SSH-клиента;
  • доступность сети провайдера или соединения администратора;
  • возможность восстановления через консоль VPS-провайдера.

Скрипт сознательно отказывается от обработки некоторых нестандартных конфигураций OpenSSH вместо попытки разобрать все возможные комбинации Include, Match и listener-параметров. Также он не реализует универсальную систему транзакций или rollback для UFW.

Совместимость

Admin Tools предназначен для Debian с Bash 4+, GNU userland, OpenSSH и стандартной моделью сервисов systemd. В репозитории пока нет подтверждённой матрицы протестированных версий Debian.

Поддержка Ubuntu и дистрибутивов, которые указывают совместимость с Debian только через ID_LIKE, не заявляется.

Лицензия

В репозитории пока отсутствует файл лицензии. До его добавления не следует считать, что проект распространяется на условиях какой-либо open-source лицензии.

About

CLI tool for Linux server setup and management (SSH, Docker, UFW, Fail2Ban) release v1.3

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages