Русский · 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и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 лицензии.