В папку /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-адресов, для которых будет разрешен доступ к админке.
Для разрешения доступа к сайту с определенного 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
Инструкция -> тут
Другие полезные правила для указания в .htaccess приводятся -> тут
С нашей стороны система защиты блокирует IP-адрес атакующего. Кроме этого для защиты от перебора паролей может быть заблокирован сам сайт до завершения атаки. Не переживайте, следует подождать разблокировки сайта. Обычно не более одного-двух часов
Функция 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) проверить на конфликт с модулями (отключать по одному)
В различных 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»
Общий принцип установки любой CMS на сайт следующий:
1. Скачайте дистрибутив с официального сайта
2. Залейте в папку /www/имя_сайта:
- по FTP: Инструкция по работе с FTP: https://wiki.cishost.ru/index.php/Работаем_с_FTP
- либо через Панель управления - Менеджер файлов - кликаете по архиву - канопка "Закачать"
3. Извлеките файлы из архива.
Панель управления - Менеджер файлов - кликаете по архиву - канопка "Извлечь"
! Все файлы должны непосредственно находиться в папке /www/имя_сайта. Если это не так, переметите их в корневой каталог сайта (кнопки "Вырезать/Вставить" в Менеджере файлов)
4. Создайте базу данных по инструкции: https://www.cishost.ru/faq/shared-hosting/bazy-dannykh/sozdanie-bazy-dannykh
! Запомните и сохраните имя базы данных, имя пользователя базы данных и пароль. Эти данные будут вместе с префиксом (userXXX_), так и нужно будет указывать на следующем шаге.
5. Перейдите на сайт через браузер и пройдите по шагам установщика
Видеоинструкция по установке wordpress: https://www.youtube.com/watch?v=8OqoeKAl6Vc&list=PL2E7-5bzVdtSVp_ii3RDvlR6vcFF6BfWQ
SSL сертификат подключается по -> инструкции
После подключения сертификата при переходе на сайт по протоколу https могут возникнуть ошибки Mixed Content (смешанное содержимое)
В консоли браузера при этом сообщается, что подгружен контент по незащищенному протоколу
Решение:
Общее для всех: в .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 -> тут
Как обновить MODX: https://trofimovdigital.ru/blog/upgrading-modx
Для этого закрываем доступ к каталогам /manager/, /core/, /connectors/ в разделе "Ограничение доступа" панели.
Подробнее об этом -> тут
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>
Теперь при попытке входа в админку необходимо будет сначала пройти базовую авторизацию.
В конец каждого из редактируемых .htaccess можно добавить:
ErrorDocument 401 "401 Authorisation Required"
В таком случае при указании некорректных данных в консоли браузера увидим ошибку:
Failed to load resource: the server responded with a status of 401 ()
Код ответа на статус ошибки HTTP 401 Unauthorized клиента указывает, что запрос не был применён, поскольку ему не хватает действительных учётных данных для целевого ресурса. Этот статус похож на 403, но в этом случае возможна повторная аутентификация.
С другими настройками безопасности можно ознакомиться тут: https://modx.pro/howto/7902
По умолчанию панель 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
Теперь можно заходить в админ панель по новому адресу.
Если при указании данных доступа в административную панель они пропадают, как будто и не вводились, то необходимо:
Воспользоваться плагином для ModX: https://extras.modx.com/package/revossl?version=1.0.3..
1) активировать блок с SSL в файле .htaccess
2) Войти в PhpMyAdmin (в MODX путь до файла конфигурации с данными от базы для входа: /www/domain.ru/core/config/config.inc.php)
и заменить "site_url" в таблице "_context_setting" to "https://сайт.ru"
3) В панели управления сайтом заменить в системных настройках параметр "server_protocol" на https

4) Заменить "link_tag_scheme" с "-1" на "https"
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://';
1. Выводим ошибки:
- в wp-config.php включаем debug для отображения файла на сайте, в котором может быть ошибка:
define( 'WP_DEBUG', true );
- дополнительно можно прописать вывод ошибок в конретном файле согласно - > инструкции
- для просмотра информации от web-сервера об ошибках www-домена смотрим .error.log в разделе "Журнал" панели управления. Подробнее о работе с Журналом в -> инструкции
2. Производим устранение указанных ошибок.
3. Возможен конфликт плагинов. Отключаем все плагины. Затем включаем по одному, проверяя каждый раз работу сайта. Так можно выявить сбойный плагин.
Взлом был осуществлен через уязвимость в старой версии CMS.
Вот почему так важно выполнять своевременные обновления.
Рекомендуем поддерживать сайты в актуальном состоянии и своевременно обновлять ПО!
Если Вы обнаружили вредоносный код на сайте, сторонний файл или есть подозрение на вирус, следуйте рекомендациям из -> инструкции
О том, как обновить 1C-Bitrix -> тут
! Для установки Bitrix с помощью данного скрипта требуется разовое повышение в apache или php.ini параметра max_execution_time = 300
Для этого обратитесь в Центр поддержки хостинга
Далее производим установку CMS:
1. Скачиваем файл bitrixsetup.php
2. Добавляем файл в корень сайта /www/имя-сайта.ru
3. Запускаем установку переходом по ссылке: http://имя-сайта.ru/
Для проверки параметров сервера скачиваем скрипт bitrix_server_test от компании "1С-Битрикс" и заливаем в корневой каталог сайта /www/сайт.ru . После перехода на https://сайт.ru/bitrix_server_test.php будет выполнено тестирование конфигурации сервера на соответсвие требований к функционированию CMS.
Если Ваш сайт размещен на 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-
upload_tmp_dir = "/var/www/userXXXX/data/mod-
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
Первое, что нам понадобится - это переключить работу сайта на 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
Устранить проблему можно несколькими способами
Одно из решений - это указать 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, так как скрипты сайта начнут производить запись в корневой каталог сервера "/", в результате чего может быть забит весь корневой раздел и сервер «ляжет».
Оставить 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
CISHost - просто хороший хостинг!