#!/bin/bash # /opt/ghostshield-pulse-f2b/public/setup.sh # GhostShield Pulse F2B — Автоматический установщик АГЕНТА активной безопасности # Позиционирование: Система мониторинга сетевой активности и интерактивной защиты. set -e # 1. Проверка на root if [ "$EUID" -ne 0 ]; then echo "[-] Ошибка: Запустите установку от имени root (sudo bash setup.sh)" exit 1 fi NODE_ID=$1 NODE_TOKEN=$2 if [ -z "$NODE_ID" ] || [ -z "$NODE_TOKEN" ]; then echo "[-] Ошибка: Не указаны параметры идентификации." echo "[!] Использование: bash setup.sh " exit 1 fi echo "--- GhostShield Pulse F2B Agent Setup ---" echo "[*] Настройка узла: $NODE_ID" # 2. Проверка окружения echo "[*] Шаг 1: Проверка зависимостей..." if ! command -v python3 &> /dev/null; then echo "[*] Установка python3..." if command -v apt-get &> /dev/null; then apt-get update && apt-get install -y python3 else echo "[-] Ошибка: Пакетный менеджер не поддерживается. Установите python3 вручную." exit 1 fi fi if ! command -v curl &> /dev/null; then apt-get update && apt-get install -y curl fi # 3. Создание структуры папок INSTALL_DIR="/opt/ghostshield-pulse-f2b" mkdir -p "$INSTALL_DIR" # 4. Загрузка кода Агента AGENT_URL="https://pulse.bargcraft.top/view/agent" echo "[*] Шаг 2: Загрузка модуля анализа и защиты..." if ! curl -sL "$AGENT_URL" -o "$INSTALL_DIR/agent.py"; then echo "[-] Ошибка: Не удалось скачать файл агента. Проверьте доступность $AGENT_URL" exit 1 fi # 5. Создание скрытого файла конфигурации (ЗАЩИТА ТОКЕНА) echo "[*] Шаг 3: Создание защищенного хранилища ключей..." cat < "$INSTALL_DIR/.agent.env" NODE_ID="$NODE_ID" NODE_TOKEN="$NODE_TOKEN" EOF # Установка прав доступа: только root может читать этот файл chmod 600 "$INSTALL_DIR/.agent.env" # 6. Создание системной службы (systemd) echo "[*] Шаг 4: Регистрация службы gs-agent-f2b..." # Обратите внимание: мы больше не передаем ID и Token через ExecStart! cat < /etc/systemd/system/gs-agent-f2b.service [Unit] Description=GhostShield Pulse F2B Security Agent After=network.target [Service] Type=simple User=root WorkingDirectory=$INSTALL_DIR ExecStart=/usr/bin/python3 $INSTALL_DIR/agent.py Restart=always RestartSec=15 Environment=PYTHONUNBUFFERED=1 [Install] WantedBy=multi-user.target EOF # 7. Запуск echo "[*] Шаг 5: Активация IPS-мониторинга..." systemctl daemon-reload systemctl enable gs-agent-f2b systemctl restart gs-agent-f2b echo "------------------------------------------------" echo "✅ GhostShield Pulse F2B успешно активирован!" echo "------------------------------------------------" echo "[i] ID узла: $NODE_ID" echo "[i] Узел защищен. Токен сохранен в $INSTALL_DIR/.agent.env" echo "------------------------------------------------"