Как завершить настройку: автозагрузка скрипта storm.sh

Завершение настройки защиты

Для завершения настройки защиты необходимо выполнить скрипт storm.sh на сервере с помощью команды:
./storm.sh start
Перед запуском убедитесь, что скрипт имеет права на выполнение:

chmod +x storm.sh

Рекомендуем добавить этот скрипт в автозагрузку, чтобы обеспечить его запуск при перезагрузке сервера.

Примечание

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

Особенности настройки для серверов за NAT

Если ваш сервер (например, с локальным IP 192.150.0.120) находится за NAT и выходит в интернет через внешний IP (например, 92.80.113.140), необходимо внести изменения в скрипт, который настраивает GRE-туннель между вашим сервером и защитной инфраструктурой StormWall.

Откройте файл в текстовом редакторе (например, nano):

nano storm.sh

Найдите в скрипте строки, содержащие внешний IP (92.80.113.140), и замените их на локальный адрес сервера (192.150.0.120).

Пример:

OLD: BIND_IP="92.80.113.140"
NEW: BIND_IP="192.150.0.120"

Сохраните изменения и перезапустите скрипт:

./storm.sh restart

Добавление скрипта в автозагрузку

Способ 1: Через systemd (рекомендуемый)

Создайте конфигурационный файл сервиса (после этого появится новый systemd-сервис в стандартной директории для пользовательских служб).

nano /etc/systemd/system/stormwall.service

Вставьте в файл следующую конфигурацию:

[Unit]
Description=StormWall Protection Service
After=network.target

[Service]
Type=simple
ExecStart=/полный/путь/к/storm.sh start
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

Активируйте сервис:

sudo systemctl daemon-reload
sudo systemctl enable stormwall.service
sudo systemctl start stormwall.service

Чтобы проверить работоспособность, выполните:

sudo systemctl status stormwall.service
journalctl -u stormwall.service -f # Просмотр логов в реальном времени

Примечание

  • Параметр Restart=on-failure автоматически перезапускает сервис при сбоях
  • Логи systemd доступны через journalctl
  • Способ 2: Через cron (альтернативный)

    Откройте планировщик заданий: После выполнения команды откроется личный crontab файл в текстовом редакторе.

    crontab -e

    Добавьте в конец файла:

    @reboot /полный/путь/к/storm.sh start

    Способ 3: Через демонизацию скрипта

    Этот способ подходит для случаев, когда нужно запустить скрипт как фоновый процесс (демон) без использования systemd или cron.

    Добавление скрипта в автозагрузку

    Вариант A: Через nohup (с перенаправлением вывода);

    nohup /полный/путь/к/storm.sh start > /var/log/stormwall.log 2>&1 &

    Вариант B: Через disown (если скрипт уже запущен):

    /полный/путь/к/storm.sh start &
    disown -h %1

    Где добавить команду:

    • Для текущего пользователя: ~/.bashrc или ~/.profile.
    • Для всех пользователей (системный уровень): /etc/rc.local (если он есть и поддерживается вашим дистрибутивом).

    Пример:

    #!/bin/bash
    /полный/путь/к/storm.sh start > /var/log/stormwall.log 2>&1 &
    exit 0

    Права на выполнение:

    sudo chmod +x /etc/rc.local

    Проверка работоспособности

    Убедитесь, что процесс запущен:

    ps aux | grep storm.sh

    Проверьте логи (если использовали перенаправление вывода):

    tail -f /var/log/stormwall.log