Skip to content

dimadr/admintools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

Admin Tools

Универсальный скрипт для настройки и управления Linux-сервером через удобное меню.

Возможности

  • SSH — настройка порта, безопасности, управление ключами
  • Users — создание пользователей, настройка SSH-ключей
  • Docker — установка Docker
  • UFW — управление файрволом
  • Fail2Ban — защита от брутфорса
  • Apps — установка OpenCode, Open WebUI, Ollama
  • System Monitor — мониторинг CPU, RAM, диска, процессов
  • Network Tools — IP-адреса, порты, сетевые тесты
  • Service Manager — управление сервисами

Требования

  • Linux-сервер (тестировалось на Debian)
  • Root-доступ
  • Bash 4.0+

Установка

Скачайте скрипт и сделайте его исполняемым:

wget https://raw.githubusercontent.com/snakedr/admintools/main/admintools.sh
chmod +x admintools.sh
sudo ./admintools.sh

Или клонируйте репозиторий:

git clone https://github.com/snakedr/admintools.git
cd admintools
chmod +x admintools.sh
sudo ./admintools.sh

Использование

Запустите скрипт от имени root:

sudo ./admintools.sh

Откроется главное меню. Выберите нужный раздел, вводя номер пункта и нажимая Enter.

Главное меню

ADMIN TOOLS v1.0 (Public)
User: root@hostname
IP:   xxx.xxx.xxx.xxx

━━━ Main Menu ━━━

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

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

[0] Exit

Разделы меню

1. SSH

Управление настройками SSH-сервера.

Что делает каждый пункт:

  1. Change SSH port — изменить порт SSH

По умолчанию SSH работает на порту 22. Это первый порт, который проверяют взломщики. Изменив порт на другой (например, 2222 или 443), вы скрыете SSH от случайных сканеров.

  1. Root: prohibit-password — разрешить root-вход только по ключу

Разрешает вход под пользователем root, но только с SSH-ключом, без пароля. Если пароль для root не задан или не используется, это безопасно.

  1. Enable PubkeyAuthentication — включить аутентификацию по ключам

Включает использование SSH-ключей для входа. Это рекомендуется сделать сразу после установки системы.

  1. Disable PubkeyAuthentication — выключить аутентификацию по ключам

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

  1. Disable PasswordAuthentication — выключить парольную аутентификацию

Отключает вход по паролю. ПОСЛЕ ЭТОГО ВХОДИТЬ МОЖНО БУДЕТ ТОЛЬКО ПО КЛЮЧУ.

Это самый важный пункт для безопасности. После его включения:

  • Пароли больше не принимаются
  • Вход только по SSH-ключу
  • Убедитесь, что ключ настроен ДО включения этого пункта
  1. Edit sshd_config.d — редактировать дополнительные конфиг-файлы

В Debian конфигурация SSH может быть разнесена по файлам в /etc/ssh/sshd_config.d/. Этот пункт позволяет редактировать эти файлы через редактор nano.

  1. Show config — показать текущие настройки SSH

Показывает реальные настройки SSH, которые применяются в данный момент. Полезно для проверки.

  1. Restart SSH — перезапустить SSH-сервис

Перезапускает SSH-сервис, чтобы применить изменения. При перезапуске текущее подключение не разорвется.

  1. Backup list — показать список резервных копий конфига

Показывает все созданные резервные копии файла /etc/ssh/sshd_config. Имена файлов содержат дату и время создания.

Важные предупреждения:

  • При изменении порта или отключении паролей убедитесь, что у вас есть доступ по SSH-ключу
  • Скрипт автоматически делает backup конфига SSH перед каждым изменением
  • НИКОГДА не отключайте пароли, пока не настроен вход по ключу

Рекомендуемая последовательность настройки SSH:

  1. SSH → 2 (Root: prohibit-password) — если нужен root-вход
  2. SSH → 3 (Enable PubkeyAuthentication) — включить ключи
  3. SSH → 5 (Disable PasswordAuthentication) — отключить пароли
  4. SSH → 8 (Restart SSH) — применить изменения

Как проверить, что ключ работает:

Перед отключением паролей откройте второе окно терминала и попробуйте подключиться:

ssh -p ваш_порт root@ip_сервера

Если подключение прошло по ключу — можно отключать пароли.

2. Users

Управление пользователями и SSH-ключами.


Что такое SSH-ключи

SSH-ключи — это пара файлов:

  • приватный ключ — хранится на вашем компьютере
  • публичный ключ — добавляется на сервер в файл ~/.ssh/authorized_keys

Приватный ключ используется для входа и никогда не должен передаваться другим.

Публичный ключ можно безопасно копировать на сервер.


Почему это лучше пароля

  • пароль можно подобрать или украсть
  • SSH-ключи практически невозможно подобрать перебором
  • не нужно вводить пароль при каждом подключении

Как это работает

  1. Вы подключаетесь к серверу со своего компьютера
  2. Сервер проверяет файл authorized_keys
  3. Если там есть ваш публичный ключ — доступ разрешён

Где хранятся ключи

Где Что хранится
Ваш компьютер приватный + публичный ключ
Сервер только authorized_keys (публичные ключи)

Важно: сервер не хранит ваш приватный ключ.


Типы ключей

  • ed25519 — современный и рекомендуемый
  • RSA — старый, но всё ещё поддерживается

Пункты меню

1. Add sudo user

Создаёт нового пользователя и добавляет его в группу sudo. Рекомендуется не работать под root постоянно.


2. Prepare .ssh + authorized_keys

Создаёт:

  • директорию ~/.ssh
  • файл authorized_keys
  • правильные права доступа

3. Add client public key to authorized_keys

Основной сценарий.

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


Как получить публичный ключ

На вашем компьютере:

Linux / macOS:

cat ~/.ssh/id_ed25519.pub

Windows (PowerShell):

Get-Content ~/.ssh/id_ed25519.pub

Пример ключа:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB3Lw... user@computer

Скопируйте всю строку и вставьте в пункт 3.


Пошаговая настройка SSH-доступа

  1. Users → 1 — создать пользователя
  2. Users → 2 — подготовить .ssh
  3. На компьютере получить публичный ключ
  4. Users → 3 — добавить ключ на сервер
  5. Подключиться:
ssh user@server-ip

3. Docker

Установка Docker.

Пункты меню:

  1. Install Docker — установить Docker + Docker Compose
  2. Reference commands — показать основные команды Docker

4. UFW

Управление файрволом UFW (Uncomplicated Firewall).

UFW — это простой файрвол для Linux. Он позволяет контролировать, какие подключения разрешены, а какие заблокированы.

Что такое файрвол и зачем он нужен:

Файрвол (firewall) — это программа, которая контролирует входящий и исходящий сетевой трафик. Он работает как фильтр: пропускает разрешенные подключения и блокирует нежелательные.

Без файрвола ваш сервер открыт для всего мира. Злоумышленник может:

  • Сканировать порты
  • Подбирать пароли к SSH
  • Эксплуатировать уязвимости сервисов

Пункты меню:

  1. Install/Remove — установить или удалить UFW

Устанавливает UFW из репозитория или удаляет его.

  1. Ports — управление портами

Позволяет открывать (разрешать) или закрывать (запрещать) сетевые порты.

  • Allow port — открыть порт. Примеры:
    • 80 — HTTP-сервер
    • 443 — HTTPS-сервер
    • 22/tcp — SSH (если порт не меняли)
    • 2222/tcp — SSH (если изменили на 2222)
  • Delete port — закрыть порт. Можно ввести номер (80) или номер правила из списка.
  • Show numbered rules — показать все правила с номерами. Полезно перед удалением правила.
  1. Defaults — настройка политик по умолчанию

Политика по умолчанию определяет, что делать с подключениями, не подпадающими под явные правила.

  • Default deny incoming — запретить ВСЕ входящие подключения. Рекомендуется для серверов.
  • Default allow outgoing — разрешить ВСЕ исходящие подключения. Обычно нужно оставить разрешенным.
  • Set both — применить обе политики сразу.
  1. Status — показать статус и правила файрвола

Отображает текущее состояние UFW и список активных правил.

  1. Reset — сбросить все правила

Удаляет все правила UFW и сбрасывает настройки. Потребует подтверждения.

  1. Enable — включить файрвол

Активирует UFW. После включения будут работать только явно разрешенные порты.

  1. Disable — выключить файрвол

Деактивирует UFW. Все подключения будут разрешены.

  1. Reference commands — справочник команд UFW

Показывает список основных команд UFW для использования в терминале.

Рекомендуемая последовательность для базовой настройки:

  1. UFW → 1 → 1 (Install)
  2. UFW → 2 → 1 → введите ваш SSH-порт (например, 22/tcp или 2222/tcp)
  3. UFW → 3 → 3 (Set both — запретить входящие, разрешить исходящие)
  4. UFW → 6 (Enable)

Примеры использования:

  • Открыть порт для веб-сервера: UFW → Ports → Allow port → 80

  • Открыть порт для HTTPS: UFW → Ports → Allow port → 443

  • Закрыть порт: UFW → Ports → Delete port → введите номер порта

5. Fail2Ban

Установка и настройка Fail2Ban для защиты от брутфорса.

Что такое Fail2Ban и зачем он нужен:

Fail2Ban — это программа, которая автоматически блокирует IP-адреса после нескольких неудачных попыток входа. Она отслеживает логи и банит злоумышленников, которые пытаются подобрать пароль к SSH, FTP, веб-серверу и другим сервисам.

Как это работает:

  1. Fail2Ban читает логи системы
  2. Если обнаруживает несколько неудачных попыток входа (например, 5 неудачных попыток за 10 минут)
  3. Блокирует IP-адрес злоумышленника на определенное время (обычно на 10 минут)
  4. После истечения времени блокировка снимается

Пункты меню:

  1. Install Fail2Ban — установить Fail2Ban

Устанавливает Fail2Ban из репозитория и включает его. После установки он автоматически начинает защищать SSH.

  1. Reference commands — справочник команд

Показывает основные команды для управления Fail2Ban вручную.

После установки Fail2Ban:

  • Защита SSH включается автоматически
  • Не требует дополнительной настройки
  • Можно проверить статус: fail2ban-client status sshd

6. Apps

Установка приложений.

В этом разделе можно установить популярные приложения для работы с AI и контейнерами.

Пункты меню:

  1. OpenCode — установить OpenCode

OpenCode — это AI-ассистент для программирования, работающий в терминале. Помогает писать код, исправлять ошибки, объяснять код, создавать файлы и многое другое.

После установки запускается командой:

opencode
  1. Open WebUI — установить Open WebUI

Open WebUI — это веб-интерфейс для работы с AI-моделями (в том числе с Ollama). Позволяет общаться с AI через браузер.

После установки доступен по адресу: http://ваш_ip:3000

Требует установленного Docker.

  1. Ollama — установить Ollama

Ollama — это платформа для запуска больших языковых моделей (LLM) локально на сервере. Поддерживает множество моделей: llama2, mistral, codellama и другие.

После установки:

ollama serve  # запустить сервер
ollama run llama2  # запустить модель
  1. Status — показать статус установленных приложений

Показывает, какие из приложений установлены и запущены.

  1. Reference — справочник команд установки

Показывает команды для установки приложений вручную.

7. System Monitor

Мониторинг системы в реальном времени.

Показывает текущее состояние сервера:

  • Uptime — сколько времени работает сервер с последней перезагрузки
  • Load Average — средняя нагрузка за 1, 5 и 15 минут. Если нагрузка выше количества ядер процессора — сервер перегружен
  • Memory — использование оперативной памяти. Показывает сколько занято, свободно и всего
  • Disk — использование дискового пространства. Показывает размер и процент использования для каждого раздела
  • Top processes — список самых ресурсоемких процессов. Показывает PID, пользователя, % CPU, % RAM и название процесса

Нажмите r для обновления данных, 0 для выхода.

8. Network Tools

Сетевые инструменты для диагностики и тестирования.

Что показывает:

  • Публичный IP — ваш IP-адрес в интернете. Определяется через внешний сервис.
  • Локальный IP — IP-адрес в локальной сети (обычно в диапазоне 192.168.x.x или 10.x.x.x)
  • Listening ports — какие порты открыты и слушают подключения. Полезно для проверки, какие сервисы запущены
  • TCP connections — общее количество TCP-подключений к серверу

Пункты меню:

  1. Test ping — пинг до google.com

Проверяет доступность интернета и качество связи. Показывает время отклика (ping).

  1. Test curl — тест curl до google.com

Проверяет HTTP-соединение. Показывает заголовки ответа.

  1. Check DNS — проверить DNS

Проверяет работу DNS-серверов. Показывает, как резолвится домен google.com.

9. Service Manager

Управление системными сервисами.

Сервисы — это программы, которые работают в фоне и обеспечивают работу системы. Например, веб-сервер, SSH, базы данных.

Проверяемые сервисы:

  • ssh/sshd — SSH-сервер
  • docker — контейнерная платформа
  • fail2ban — защита от брутфорса
  • nginx — веб-сервер
  • apache2 — веб-сервер

Цветовая индикация:

  • Зеленый (active) — сервис запущен и работает
  • Желтый (inactive) — сервис установлен, но не запущен
  • Серый (not found) — сервис не установлен

Пункты меню:

  1. Restart all services — перезапустить все установленные сервисы

Останавливает и запускает заново все сервисы из списка. Используется после изменения конфигурации.

  1. Stop all services — остановить все установленные сервисы

Останавливает все сервисы. Используется редко, например, для обслуживания.

Warning

This script makes system-level changes:

  • modifies SSH configuration
  • manages firewall rules (UFW)
  • installs system packages

Use at your own risk. Always ensure you have SSH access before applying changes.

Compatibility

Tested on Debian. Other distributions are not guaranteed to work.

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

Несколько рекомендаций при использовании скрипта:

  1. SSH — после настройки всегда проверяйте, что можете подключиться по новым настройкам
  2. UFW — перед включением убедитесь, что SSH-порт открыт
  3. Пароли — не храните пароли в скриптах, используйте SSH-ключи
  4. Бэкапы — скрипт автоматически делает бэкапы конфигов SSH

Лицензия

MIT License

Автор

snakedr

About

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

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Contributors

Languages