Добро пожаловать в базу знаний

Общее для CMS

Рекомендации по защите CMS от атак на уровне пользователя

Joomla В папку /www/site/administrator/ положить .htaccess или добавить в существующий SetEnvIf Remote_Addr "123.45.67.8|123.456.7.89" realremoteaddrOrder Deny,AllowDeny from allallow from env=realremoteaddr В…
Joomla

В папку /www/site/administrator/ положить .htaccess или добавить в существующий

SetEnvIf Remote_Addr "123.45.67.8|123.456.7.89" realremoteaddr
Order Deny,Allow
Deny from all
allow from env=realremoteaddr

В первой строке можно указать один или несколько IP-адресов, для которых будет разрешен доступ к админке.

Wordpress

Для разрешения доступа к сайту с определенного ip, добавдяем в корневой /www/site/.htaccess запись:

<Files wp-login.php>
SetEnvIf Remote_Addr "123.45.67.8|123.456.7.89" realremoteaddr
Order Deny,Allow
Deny from all
allow from env=realremoteaddr
</Files>

Этот код пускает только 123.45.67.8|123.456.7.89

Для запрета доступа к сайту определенных ip, добавляем в .htaccess:

SetEnvIf Remote_Addr "176.14.1.1" realremoteaddr
Order Allow,Deny
Allow from all
Deny from env=realremoteaddr

Этот код пускает всех кроме 176.14.1.1

MODX

Инструкция -> тут

 

Другие полезные правила для указания в .htaccess приводятся -> тут


С нашей стороны система защиты блокирует IP-адрес атакующего. Кроме этого для защиты от перебора паролей может быть заблокирован сам сайт до завершения атаки. Не переживайте, следует подождать разблокировки сайта. Обычно не более одного-двух часов

Информация полезна?
0

Настройка почты для различных CMS

Функция mail() запрещена на хостинге. Для работы почтовых форм требуется настройка smtp-авторизации: 1) Добавляем почтовый домен и создаем почтовый ящик по - > инструкции…

Функция mail() запрещена на хостинге. Для работы почтовых форм требуется настройка smtp-авторизации:

1) Добавляем почтовый домен и создаем почтовый ящик по - > инструкции

2) Далее производим настройки в зависимости от того, на какой CMS разработан сайт

Общие параметры почтовых настроек для различных CMS

Способ отправки почты: SMTP сервер
Использовать SMTP-авторизацию: Да
Адрес отправителя: *****@имя_домена
Имя отправителя: Любое
Путь к Sendmail: /usr/sbin/sendmail
SMTP Security: Нет 
Шифрование (Encryption): Нет (No encryption)
Auto TLS: ВЫКЛ
Адрес SMTP-сервера: mail.имя_домена.ru
SMTP порт: 25
Имя пользователя SMTP (Username): *******@домен.ru (!Для национальных доменов адрес нужно указывать в кодировке Punycode)
SMTP пароль: пароль

В частности для определенной CMS

Joomla

Может потребоваться внести изменения в /www/имя_домена.ru/libraries/vendor/phpmailer/phpmailer/class.phpmailer.php
Указать public $SMTPAutoTLS = false;

Wordpress

Нужно закачать плагин WP MAIL SMTP или Easy WP SMTP и произвести настройки плагина cогласно общим параметрам.

DLE
Настройка SMTP Helo (по умолчанию)
/var/www/user73693/data/www/kazanuslugi.ru/engine/classes/mail/class.phpmailer.php заменить AutoTLS на false

ModX

Настройка smtp производится в админке: MODx Manager меню System > System Settings

Bitrix

Плагин: http://marketplace.1c-bitrix.ru/solutions/wsrubi.smtp/?sphrase_id=56535483
Тип аунтификации: Login аунтификация (по умолчанию)

OpenCart

OpenCart и mail.ru: http://ida-freewares.ru/opencart-2-nastrojka-pochty-mailru-v-kachestve-otpravitelya.html
Исправление бага: https://opencartforum.com/topic/76110-nastroyka-pochty-v-openkart-21/
1) по статье с багом очистить модификаторы (Модули/Расширения - Модификаторы) и внести правки сюда: /www/domain.ru/system/storage/modification/catalog/controller/information/contact.php
2) проверить на конфликт с модулями (отключать по одному)

Информация полезна?
0

Как очистить кэш в разных CMS

В различных CMS кэш чистится по-разному.   Joomla: Административная панель -> Система -> Очистка кэша -> Очистить кеш или Очистить…

В различных CMS кэш чистится по-разному.

 

Joomla: Административная панель -> Система -> Очистка кэша -> Очистить кеш или Очистить устаревший кеш (или удалить все файлы папке /cache, за исключением файла index.html)

Wordpress: удалить файлы в каталоге /wp-content/cache/папка_дополнения/

ModX: очистить папку /core/cache

DLE: административная панель -> Настройки системы -> Оптимизация запросов к базе данных -> Очистить кеш

OpenCart: очистить /system/cache, а так же Административная панель -> Модули -> Модификаторы -> Очистить, затем Обновить (или очистить /system/modification/)

PhpBB: очистить cache/production.

Если сайт за Cloudflare - чистим кэш и там: Caching -> Configuration и жмем «Purge Everything»

Информация полезна?
0

Установка CMS

Общий принцип установки любой CMS на сайт следующий: 1. Скачайте дистрибутив с официального сайта 2. Залейте в папку /www/имя_сайта: -…

Общий принцип установки любой CMS на сайт следующий:

1. Скачайте дистрибутив с официального сайта

2. Залейте в папку /www/имя_сайта:

- по FTP: Инструкция по работе с FTP: https://wiki.cishost.ru/index.php/Работаем_с_FTP

- либо через Панель управления - Менеджер файлов - кликаете по архиву - канопка "Закачать"

upload.png

 

3. Извлеките файлы из архива.
 Панель управления - Менеджер файлов - кликаете по архиву - канопка "Извлечь"

extract.png

! Все файлы должны непосредственно находиться в папке /www/имя_сайта. Если это не так, переметите их в корневой каталог сайта (кнопки "Вырезать/Вставить" в Менеджере файлов)

path.png

 

4. Создайте базу данных по инструкции: https://www.cishost.ru/faq/shared-hosting/bazy-dannykh/sozdanie-bazy-dannykh 
! Запомните и сохраните имя базы данных, имя пользователя базы данных и пароль. Эти данные будут вместе с префиксом (userXXX_), так и нужно будет указывать на следующем шаге.


 

5. Перейдите на сайт через браузер и пройдите по шагам установщика

cms-domain.png

 

Видеоинструкция по установке wordpress: https://www.youtube.com/watch?v=8OqoeKAl6Vc&list=PL2E7-5bzVdtSVp_ii3RDvlR6vcFF6BfWQ

Информация полезна?
0

Подключение SSL сертификата и настройка редиректа на https

SSL сертификат подключается по -> инструкции После подключения сертификата при переходе на сайт по протоколу https могут возникнуть ошибки Mixed Content…

SSL сертификат подключается по -> инструкции

После подключения сертификата при переходе на сайт по протоколу https могут возникнуть ошибки Mixed Content (смешанное содержимое)

В консоли браузера при этом сообщается, что подгружен контент по незащищенному протоколу

Mixed-Content.jpg

Решение:

Общее для всехв .htaccess настраиваем переадресацию:


RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Далее выполняем шаги, описанные ниже, для различных вариантов сайтов:

Для самописных сайтов: правим ссылки в скриптах и базе вручную - меняем http на https.

Для CMS Wordpress следуем мануалу: https://blog.cishost.ru/2021/11/10/nastroyka-redirekta-s-http-na-https-v-wordpress.html

Для ModX варианты настройки https -> тут

 

 

Информация полезна?
0

MODX

Полезные материалы по MODX

Как обновить MODX: https://trofimovdigital.ru/blog/upgrading-modx

Закрываем служебные директории MODX

Вариант 1 (с помошью панели) Для этого закрываем доступ к каталогам /manager/, /core/, /connectors/ в разделе "Ограничение доступа" панели.Подробнее об этом…
Вариант 1 (с помошью панели)

Для этого закрываем доступ к каталогам /manager/, /core/, /connectors/ в разделе "Ограничение доступа" панели.
Подробнее об этом -> тут

Вариант 2 (добавить файлы вручную)

1. Создаём файл .htpasswd . Примеры генераторов .htpasswd

https://htmlweb.ru/service/htpasswd.php

https://wpschool.ru/tools/htpasswd-generator/ 

Получим файл с содержимым, например:

mozg:$apr1$67DGTaqb$m58NDMBT2w5z1

, где mozg — имя пользователя, а $apr1$67DGTaqb$m58NDMBT2w5z1 — хешированный пароль MD5/SHA1.

2. Размещаем .htpasswd в директории сайта выше /www/domain.ru/,например, непосредственно в корневой каталог аккаунта /var/www/userXXXX/data/.

3. В файл .htaccess, распологающийся в директориях manager, core, connectors (если файла нет, то его нужно создать) добавляем/изменяем следующие записи:

• /manager/.htaccess

RewriteEngine Off

AuthType Basic
AuthName "Thats protected Area!"
AuthUserFile /var/www/userXXXX/data/.htpasswd
Require valid-user
<Files .htpasswd>
deny from all
</Files>

• /core/.htaccess

IndexIgnore */*
<Files *.*>
Order Deny,Allow
Deny from all
</Files>

AuthType Basic
AuthName "Thats protected Area!"
AuthUserFile /var/www/userXXXX/data/.htpasswd
Require valid-user
<Files .htpasswd>
deny from all
</Files>

/connectors/.htaccess

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /var/www/userXXXX/data/.htpasswd
Require valid-user
<Files .htpasswd>
deny from all
</Files>

Теперь при попытке входа в админку необходимо будет сначала пройти базовую авторизацию.

protect4.jpg

 

В конец каждого из редактируемых .htaccess можно добавить:

ErrorDocument 401 "401 Authorisation Required"

В таком случае при указании некорректных данных в консоли браузера увидим ошибку: 

Failed to load resource: the server responded with a status of 401 ()

Код ответа на статус ошибки HTTP 401 Unauthorized клиента указывает, что запрос не был применён, поскольку ему не хватает действительных учётных данных для целевого ресурса. Этот статус похож на 403, но в этом случае возможна повторная аутентификация.

protect5.jpg

С другими настройками безопасности можно ознакомиться тут: https://modx.pro/howto/7902

 

 

Информация полезна?
0

Как сменить адрес входа в админку ModX

По умолчанию панель ISPmanager и административная панель MODX имеют одинаковый адрес: htpps://имя_домена/managerПоэтому, чтобы не возникал конфликт доступа:1 вариант: обратитесь в…

По умолчанию панель ISPmanager и административная панель MODX имеют одинаковый адрес: htpps://имя_домена/manager
Поэтому, чтобы не возникал конфликт доступа:
1 вариант: обратитесь в Центр Поддержки - мы удалим алиас панели ISPmanager.
Для владельцев VDS необходимо применить директиву alias. Инструкция -> тут
2 вариант: Вы можете сменить адрес входа в админку ModX. Для этого:
- в файле /core/config/config.inc.php нужно заменить:
$modx_manager_path= '/modx/directory/manager/';
$modx_manager_url= '/manager/';
например, на
$modx_manager_path= '/modx/directory/modx-myadmin/';
$modx_manager_url= '/modx-admin/';
- очистить папку /core/cache

Теперь можно заходить в админ панель по новому адресу.

Информация полезна?
0

Cбрасывается доступ в админку MOD-X

Если при указании данных доступа в административную панель они пропадают, как будто и не вводились, то необходимо: 1) Почистить папку…

Если при указании данных доступа в административную панель они пропадают, как будто и не вводились, то необходимо:

1) Почистить папку /mod-tmp в корневом каталоге аккаунта;
2) Проверить базу на ошибки (в ней могут хранится сессии):
Repairing tables
userXXXX_fs.modx_session
warning : Duplicate key for record at 3230628 against record at 1520948
warning : Number of rows changed from 16 to 7365
status : OK
Привести к ошибке в таблице может, к примеру, проблема с диском.
Таблица могла испортиться из-за того, что использовалась во время сбоя, так как сессии пишутся при каждом посещении у некоторых сайтов.
 
Информация полезна?
0

Варианты подключения SSL для сайтов на CMS ModX

Вариант1 Воспользоваться плагином для ModX: https://extras.modx.com/package/revossl?version=1.0.3.. Вариант 2 1) активировать блок с SSL в файле .htaccess 2) Войти в PhpMyAdmin (в…
Вариант1

Воспользоваться плагином для ModX: https://extras.modx.com/package/revossl?version=1.0.3..

Вариант 2

1) активировать блок с SSL в файле .htaccess
modx-https.png

2) Войти в PhpMyAdmin (в MODX путь до файла конфигурации с данными от базы для входа: /www/domain.ru/core/config/config.inc.php)
и заменить "site_url" в таблице "_context_setting" to "https://сайт.ru"

3) В панели управления сайтом заменить в системных настройках параметр "server_protocol" на https

modx-https3.png
4) Заменить "link_tag_scheme" с "-1" на "https"

modx-https4.png

Вариант 3

1) В .htaccess настраиваем переадресацию:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

2) Открываем файл конфигурации /www/sitename.ru/core/config/config.inc.php
В нем находим строки:
if (!defined('MODX_URL_SCHEME')) {
$url_scheme= $isSecureRequest ? 'https://' : 'http://';

и меняем на:
if (!defined('MODX_URL_SCHEME')) {
$url_scheme= 'https://';

Информация полезна?
0

Wordpress

Порядок действий при наличии ошибки на сайте Worpress

1. Выводим ошибки: - в wp-config.php включаем debug для отображения файла на сайте, в котором может быть ошибка:define( 'WP_DEBUG', true…

1. Выводим ошибки:

- в wp-config.php включаем debug для отображения файла на сайте, в котором может быть ошибка:
define( 'WP_DEBUG', true );

- дополнительно можно прописать вывод ошибок в конретном файле согласно  - > инструкции

- для просмотра информации от web-сервера об ошибках www-домена смотрим .error.log в разделе "Журнал" панели управления. Подробнее о работе с Журналом в -> инструкции

2. Производим устранение указанных ошибок.

3. Возможен конфликт плагинов. Отключаем все плагины. Затем включаем по одному, проверяя каждый раз работу сайта. Так можно выявить сбойный плагин.

Информация полезна?
0

1C-Bitrix

Пример shell'а при взломе сайта на 1C-Bitrix

Взлом был осуществлен через уязвимость в старой версии CMS. Вот почему так важно выполнять своевременные обновления. Рекомендуем поддерживать сайты в…

Bitrix-shell.png

Взлом был осуществлен через уязвимость в старой версии CMS.

Вот почему так важно выполнять своевременные обновления.

Рекомендуем поддерживать сайты в актуальном состоянии и своевременно обновлять ПО!

Если Вы обнаружили вредоносный код на сайте, сторонний файл или есть подозрение на вирус, следуйте рекомендациям из -> инструкции

О том, как обновить 1C-Bitrix -> тут

Информация полезна?
0

Установка Bitrix с помощью BitrixSetup

! Для установки Bitrix с помощью данного скрипта требуется разовое повышение в apache или php.ini параметра max_execution_time = 300 Для этого…

! Для установки Bitrix с помощью данного скрипта требуется разовое повышение в apache или php.ini параметра max_execution_time = 300

Для этого обратитесь в Центр поддержки хостинга

Далее производим установку CMS:

1. Скачиваем файл bitrixsetup.php

2. Добавляем файл в корень сайта /www/имя-сайта.ru

3. Запускаем установку переходом по ссылке: http://имя-сайта.ru/bitrixsetup.php

По завершении файл дистрибутива будет удален.
4. После этого продолжаем установку перейдя на главную страницу сайта: http://имя-сайта.ru/index.php 
 
Детали - в источнике
 
 
Информация полезна?
0

Тест параметров сервера

Для проверки параметров сервера скачиваем скрипт bitrix_server_test от компании "1С-Битрикс" и заливаем в корневой каталог сайта /www/сайт.ru . После перехода на https://сайт.ru/bitrix_server_test.php будет…

Для проверки параметров сервера скачиваем скрипт bitrix_server_test от компании "1С-Битрикс" и заливаем в корневой каталог сайта /www/сайт.ru . После перехода на https://сайт.ru/bitrix_server_test.php будет выполнено тестирование конфигурации сервера на соответсвие требований к функционированию CMS.

Bitrix-test.png

Если Ваш сайт размещен на shared-хостинге, то в случае обнаружения отсутсвующих параметров обратитесь в Центр Поддержки.

Для владельцев VDS выполняем необходимые настройки 1C-Bitrix:
- в /etc/apache2/apache2.conf:
php_admin_value mbstring.func_overload "2"
php_admin_value mbstring.internal_encoding "UTF-8"
php_admin_value max_input_vars 10000

- в php.ini
session.save_path = "/var/www/userXXXX/data/bin-tmp"
upload_tmp_dir = "/var/www/userXXXX/data/mod-tmp"
mail.add_x_header = 1
date.timezone= Europe/Moscow
open_basedir = "/var/www/userXXXX/data:/tmp:."
memory_limit = 512M
max_execution_time = 120
post_max_size = 120M
upload_max_filesize = 120M
mbstring.func_overload = 2
mbstring.internal_encoding = UTF-8
max_input_vars = 10000

Информация полезна?
0

OpenCart

Проблема с open_basedir при установке OpenCart

Первое, что нам понадобится - это переключить работу сайта на php 8.1. Для выполняем действия по инструкции: https://blog.cishost.ru/2021/12/09/kak-smenit-versiyu-php.html Затем переходим на…

Первое, что нам понадобится - это переключить работу сайта на php 8.1. Для выполняем действия по инструкции: https://blog.cishost.ru/2021/12/09/kak-smenit-versiyu-php.html

Затем переходим на сайт, но при попытки выполнить установку OpenCart видим предупреждение:

Warning: is_dir(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/var/www/userXXXX/data:/tmp:.) in /var/www/userXXXX/data/www/domain
.ru/system/storage/vendor/twig/twig/src/Loader/FilesystemLoader.php on line 91 Twig\Error\Loader Error: The "/" directory does not exist ("/"). in /var/www/userXXXX/da
ta/www/domain.ru/system/storage/vendor/twig/twig/src/Loader/FilesystemLoader.php on line 92

Устранить проблему можно несколькими способами

Cпособ 1 (не рекомендуемый)

Одно из решений - это указать php_admin_value open_basedir none в конфиге apache или open_basedir = "" в php.ini . Разберем, почему этого не стоит делать.

PHP функция open_basedir предотвращает работу (открытие) файлов и скриптов, которые находится вне разрешённый настроками сервера, директории. Если эти open_basedir ограничения включены, то все неавторизованные пользователи получают разрешения и доступ только к разрешённым в настройках папкам на сервере.

Поэтому в целях безопасности не верно указывать пустой путь в open_basedir = "" или задавать php_admin_value open_basedir none, то есть отключать ограничения в open_basedir, так как скрипты сайта начнут производить запись в корневой каталог сервера "/", в результате чего может быть забит весь корневой раздел и сервер «ляжет».

Способ 2 ( корректный способ)

Оставить open_basedir = "/var/www/userXXXX/data:/tmp:." – то есть каталог аккаунта пользователя

Открыть /system/storage/vendor/twig/twig/src/Loader/FilesystemLoader.php

Заменить

$checkPath = $this->isAbsolutePath($path) ? $path : $this->rootPath.$path;

на

$checkPath = $this->rootPath.$path;

После выполнения данной замены переходим на сайт и видим приглашение к установке OpenCart

Open-cart-basedir.png

Информация полезна?
0