WAF для Руководителя на базе Sheldon

Делитесь своими плагинами и темами оформления.
Ответить
Аватара пользователя
mikhalkin
Инвестор
Инвестор
Сообщения: 154
Зарегистрирован: 04 июн 2018, 15:07
Имя: Александр
Откуда: Москва
Организация: Нионейт
Контактная информация:

WAF для Руководителя на базе Sheldon

Сообщение mikhalkin »

Изображение
Наименование:
Сайт проекта: Shieldon
Разработчик WAF: Terry Lin
Адаптация под Rukovoditel: Руслан Плетнев
Тестирование и адаптация настроек: Александр Михалкин

Описание:
Брандмауэр веб-приложений с легкой настройкой. Данная версия адаптирована под Rukovoditel.

Основные возможности:
  • Защита от DDOS-атак направленные на HTTP(s) протокол.
  • Anti-scraping.
  • Ограничивает количество онлайн-пользователей.
  • Защита от межсайтового скриптинга (XSS).
  • Защита от сканирования уязвимостей.
  • Предотвращение атак грубой силы.
  • IP-менеджер.
  • Защита страниц через WWW-аутентификацию.
  • Подробная статистика и графики.
  • Отправка уведомлений сторонним сервисам.
  • Веб-интерфейс для управления iptables, системным брандмауэром (только Linux).
Требование к серверу:
Linux
Apache, Nginx
PHP 7.1 или выше (Тестировалось на версии 7.4.26)
Базы: файловая, MySQL(MariaDB), Redis, SQLite

Установка(для тестирования):
  • Извлеките архив в корень вашей crm. Рядом с index.php должна появится папка vendor.
  • Отредактируйте index.php и добавьте строки:

    Код: Выделить всё

     require_once __DIR__ . '/vendor/autoload.php';
    
    if (isset($_SERVER['REQUEST_URI'])) {
    
        // This directory must be writable.
        $storage = __DIR__ . '/storage/shieldon';
    
        $firewall = new \Shieldon\Firewall\Firewall();
        $firewall->configure($storage);
    
        // The base url for the control panel.
        $firewall->controlPanel('/firewall/panel/');
    
        $response = $firewall->run();
    
        if ($response->getStatusCode() !== 200) {
            $httpResolver = new \Shieldon\Firewall\HttpResolver();
            $httpResolver($response);
        }
    }
    
    if (false !== strpos($_SERVER['REQUEST_URI'] ?? '', '/firewall/panel/')) {
        $panel = new \Shieldon\Firewall\Panel();
        $panel->entry();
        exit;
    }
  • Панель будет доступна по ссылка: /firewall/panel/
    По умолчанию логин: shieldon_user
    Пароль: shieldon_pass
Установка(для рабочей версии):
  • Извлеките архив ниже уровня доступности рабочего каталога для вашей crm. Пример: Ваша CRM находится по следующему пути: /var/data/www/user1/www/crm.primer.ru. Вам лучше выложить ее по следующему пути для безопасности:/var/data/www/user1/
  • Отредактируйте index.php и добавьте строки:

    Код: Выделить всё

     require_once '/vendor/autoload.php'; // перед /vendor/ нужно добавить путь
    
    if (isset($_SERVER['REQUEST_URI'])) {
    
        // This directory must be writable.
        $storage = '/storage/shieldon'; // перед /storage/ нужно добавить путь
    
        $firewall = new \Shieldon\Firewall\Firewall();
        $firewall->configure($storage);
    
        // The base url for the control panel.
        $firewall->controlPanel('/firewall/panel/');
    
        $response = $firewall->run();
    
        if ($response->getStatusCode() !== 200) {
            $httpResolver = new \Shieldon\Firewall\HttpResolver();
            $httpResolver($response);
        }
    }
    
    if (false !== strpos($_SERVER['REQUEST_URI'] ?? '', '/firewall/panel/')) {
        $panel = new \Shieldon\Firewall\Panel();
        $panel->entry();
        exit;
    }
  • Панель будет доступна по ссылка: /firewall/panel/
    По умолчанию логин: shieldon_user
    Пароль: shieldon_pass
Первоначальная настройка:
  • Зайдите в панель, Firewall, Setting, Daemon и нажмите на тумблер On Off. При этом On станет синим и нажмите кнопку Save.
  • Для смены логина и пароля, вам нужно в панели зайти в Firewall, Setting, Admin Login.
  • В разделе Firewall, Setting, Filters нужно заменить некоторые значения, для корректной работы Rukovoditel:
    Secondly Limit поставить 10
    Minutely Limit поставить 60
    Hourly Limit поставить 300
    Daily Limit поставить 500
Примечание:
Добавлен пример index.php для версии 3.0.
Вложения
screenshot_1.PNG
screenshot_2.PNG
screenshot_3.PNG
screenshot_4.PNG
index.zip
Пример index.php
(726 байт) 109 скачиваний
sheldon.zip
Сам дистрибутив shieldon
(1.58 МБ) 105 скачиваний
Ответить