Базовые рекомендации по безопасности
Что необходимо сделать для обеспечения безопасности вашей системы
По-умолчанию система поставляется в конфигурации с минимальным уровнем безопасности, для масимально быстрой установки и тестирования любым пользователем. Поэтому, после окончания тестовой эксплуатации, администратору необходимо самостоятельно обеспечить уровень безопасности системы, подходящий для эксплуатации в production режиме. Ниже мы предоставили список рекомендаций, который вы можете использовать.
Смена паролей пользователей root и установка сложного пароля для БД
При установке системы в среде Linux, в установочном скрипте предлагается сбросить и заменить пароль root и создать пароль для пользователе БД (mySQL или MariaDB). Рекомендуется задавать сложные пароли.
При установке системы на Windows, используется пароль пользователя root по-умолчанию и он равен имени пользователя root, и для обеспечения безопасности его рекомендуется поменять на сложный пароль.
После установки системы доступ к БД осуществляется только через сокет с локального IP адреса, если вы собираетесь дать доступ через TCP протокол с других адресов, так же необходимо сменить дефолтные пароли для пользователей БД.
Смена паролей пользователей в веб-интерфейсе vsDesk
После установки системы, для авторизации использованы максимально простые пароли, поэтому рекомендуется выполнить смену паролей, особенно для учетной записи администратора системы.
Восстановление пароля администратора системы
В системе не предуссмотрено механизма восстановления пароля администратора через веб-интерфейс. Если вы забыли пароль администратора и в системе нет других административных учетных записей, восстановить пароль можно только через запрос к БД. Для этого в консоли сервера необходимо выполнить подключение к БД с учетной записью root
После успешного подключения, необходимо выбрать базу vsdesk
И выполнить следующий запрос, который устанавливает для учетной записи admin пароль admin:
Ограничение / разрешение доступа к обновлению системы
По-умолчанию в системе реализован механизм ограничения доступа к обновлению через веб-интерфейс. В зависимости от версии ПО или ОС сервера в файле .htaccess находящемся в корне установленной системы по пути:
Для огрничения доступа к скрипту обновления используется директива, которая ограничивает доступ к обнолению только с локального сервера, на котором установлена система (актуально для WIndows), где IP адрес (127.0.0.1) это адрес ПК с которого администратор может выполнять обновление, или же это может быть подсеть, например 192.168.0.0/24
В зависимости от версии ПО данная директива может быть прописана или не прописана и ее необходимо добавить вручную, чтобы обезопасить систему от воздействия извне.
Ограничение загрузки исполняемых файлов
Ограничение загрузки исполняемых файлов позволяет защитить систему от загрузки на сервер и запуска вредоностных скриптов или попыток взлома системы. По-умолчанию реализовано через директивы .htaccess расположенные в папках куда загружаются вложения и аватары пользователей uploads, media и подпапках, а так же в папке protected/_backup для резервных копий. По-умолчанию прописан запрет на загрузку только исполняемых скриптов php и js, но мы рекомендуем прописать необходимые для вашего уровня безопасности расширения файлов, которые могут быть использованы злоумышленниками.
Использование SSL сертификатов и HTTPS протокола
Для production режима рекомендуется настроить систему на работу по HTTPS протоколу и получить валидные SSL-сертификаты. Это так же необходимо для работы большинства интеграций с внешними системами.
Подключение SSL сертификата в Windows
Важно! Установка проводится без изменения существующих настроек, только путём добавления новых записей.
По пути: C:\vsDesk\userdata\config\ есть папка "cert_files", (там лежат дефолтные файлы server.crt и server.key). Рядом создаём папку, например "cert_files_for_me". В ней будут хранится наши сертификаты и ключи. Если у нас несколько доменов, копируем в эту папку все сертификаты и ключи, купленные или созданные бесплатно. Переименовываем, чтобы не запутаться. Рекомендуется называть файлы по названиям доменов, легче управлять. Например site1.crt, site1.key, site2.crt, site2.key, site3.crt, site3.key.
Потом открываем конфигурационные файлы того модуля, который у вас в настройках: например (это для примера): Зелёный флажок ->Дополнительно ->конфигурация ->Apache-PHP-8 ( или Nginx или Apache 2.4) откроется два конфигурационных файла. Один закроем, а в файле vhost.conf (именно в vhost.conf) в блоке
находим строки
и прописываем дополнительно под имеющимися указывая путь к папке с сертификатами - (вместо cert_files вписываем cert_files_for_me), заменяем названия crt и key на наши и получает вот так:
Не забывайте про важность установки цепочки сертификатов (SSLCertificateChainFile)
Обязательно перезапускаем OSP. Всё начинает работать после перезапуска OpenServer Panel
Подключение SSL сертификата в Linux
Если устанавливаете сертификаты Let`s Encrypt прямо с сервера, то скрипт сделает все за вас, ниже описана процедура подключения купленных сертификатов.
Скопируем ваши сертификаты в /etc/ssl и назначим файлу ключа права чтения только администратору:
Настройка Apache
Для начала необходимо активировать mod_ssl
:
А затем включить настройки HTTPS сайта по умолчанию:
Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется /etc/apache2/sites-enabled/default-ssl
(или /etc/apache2/sites-enabled/default-ssl.conf
).
В этом файле рекомендуется после директивы
добавить строчку
дабы запретить использование устаревшего протокола SSLv2.
Дальше вам необходимо отредактировать параметры, ответственные за сертификаты.
Теперь просто перезагрузите Apache:
И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.
Протокол HTTPS работает по 443 порту, поэтому если сервер находится за шлюзом, то необходимо на нём пробросить данный порт.
Перенаправление HTTP запросов на HTTPS
Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью mod_alias
. Если он не включён — включаем:
Затем изменяем файл /etc/apache2/sites-enabled/000-default
, отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву
При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.
Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS страницу.
Пример default-ssl файла:
Last updated