Контрольный список безопасности 2 - Хостинг и настройки сервера

NO TRANSLATION AVAILABLE

Выбирайте квалифицированного хостинг-провайдера

Самое важное решение

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

 

Общие риски сервера

Если у вас ограниченный бюджет и ваш сайт не содержит секретной информации, вы можете обойтись общим сервером, но нужно понимать неизбежность риска. Ниже приведены советы по содержанию сайта на общем сервере.

Будьте аккуратны при настройках сервера

Для реального восприятия прочитайте эту статью о тысячах сайтов, которые позволили Google индексировать результаты phpinfo (). Не делайте эту ошибку на вашем сайте! Статья включает в себя тревожную статистику о большом проценте сайтов, которые используют старые настройки, как register_globals или не имеют open_basedir вообще. Кстати, если термины phpini и register_globals, незнакомы вам, вероятно, вы не готовы управлять безопасностью собственного сайта.

 

Настройка Apache


Использование Apache. Htaccess

Заблокируйте типичные попытки эксплоитов, локальным .htaccess файлом Apache. Это опция доступна не на каждом сервере. Поговорите с вашим хостером при возникновении проблем. Используя .htaccess вы можете с помощью пароля защитить важные каталоги, такие как администратор, ограничить доступ к директориям, IP-адресам в зависимости от конфигурации сервера, можно поднять уровень защиты при переходе с РНР4 на РНР5.

Joomla предоставляется с уже установленным .htaccess, но его нужно выбрать для использования. Файл называется htaccess.txt. Для использования, переименуйте его в .htaccess и поместите в корень вашего сайта с помощью FTP. Важно отметить, что утановочный файл называется htaccess.txt, а установленный на сайте .htaccess, практически не использует обновления, когда вы обновляете сайт для установки новой версии Joomla. Вам придется вручную обновлять файл для новой версии Joomla. Есть  существенные изменения для файлов с 1.5.23 и выше, и 1.6.2 и выше.

Рассмотрим следующий принцип «наименьших привилегий» для запуска PHP с использованием таких инструментов, как PHPsuExec, php_suexec или suPHP. ( Примечание: эти новые методы, требующие согласования действий с хостинг - провайдером. Такой выбор разрешен либо блокирован на основном сервере и индивидуально не регулируется на общих серверах.

 

Использование Apache mod_security

Настройка Apache mod_security и mod_rewrite фильтров для блокирования PHP атак. (Примечание: эти методы обычно требуют согласования с вашим хостинг-провайдером.  Такие возможности будут включены или отключены на выделенном сервере и не регулируются на общих серверах.)

 

Настройка MySQL

Безопасность базы данных

Убедитесь, что аккаунты MySQL установлены с ограниченным доступом. Начальная установка MySQL является небезопасной и требует тщательной настройки. (Примечание: этот пункт относится только к администраторам собственных серверов таких, как выделенные серверы. Пользователи общих серверов зависят от их хостинг-провайдера, устанавливающего надлежащий уровень безопасности баз данных.)

 

Настройка PHP

Как работает РНР

Разберитесь, как работает файл php.ini и как управляют конфигурациями PHP. Изучите Официальный список директив php.ini на http://www.php.net/, и хорошо-документируемый типовой файл php.ini включенный по умолчанию в установку PHP.

 

Пользуйтесь РНР5

В настоящие время, как PHP4, так и PHP5, поддерживаются, и оба часто доступны на серверах. Перед тем как РНР4 оживет свое, обновите свои скрипты для РНР5. Не волнуйтесь об основном коде Joomla; все существующие версии РНР5 совместимы.

Применение локальных файлов php.ini

На общих серверах вы не можете редактировать основной файл php.ini, но можете добавлять собственные, локальные файлы php.ini.

Если это так, вам необходимо скопировать файлы php.ini для каждой поддиректории, который требует специальных настроек. К счастью, набор скриптов на B & T и подсказок помогут сделать эту работу за вас.

 

Несколько важных моментов о которых не стоит забывать

  1. Локальные php.ini файлы работают, только если ваш сервер настроен на их использование. Это включает файл php.ini в ваш корневой каталог http_root. Вы можете проверить влияние этих файлов на сайт, установив соответствующую директиву в корневом каталоге php.ini.
  2.  

  3. Локальные php.ini файлы .рнр эффективны только, когда находятся в том же каталоге ( или не включены в () или требуют () от этих файлов). Это означает, что обычно существует только два каталога Joomla!, в которых вы могли бы разместить файлы php.ini. Это корневаой каталог вашего сайта, в котором располагается файл index.php, который выводит лицевую часть сайта, и каталог administrator, в котором располагаются файлы администраторской части сайта.
  4.  

  5. Если у вас есть файл php.ini в каждом каталоге, то скрипт вероятно, сделал это за вас. Если вы не хотите, чтобы это случилось, перенесите php.ini в корень вашего сайта, но, учитывая указанный выше пункт 2 , вы, вероятно, запаникуете из-за нахождения php.ini в корневом каталоге.

Применение PHP disable_functions

Используйте disable_functions, чтобы отключить опасные PHP-функции, которые не требуются для вашего сайта. Вот типичный вариант для сайтов Joomla!:

 disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open

Применение PHP open_basedir

open_basedir должена быть включена и правильно настроена. Эта директива ограничивает файлы, которые могут быть открыты в PHP для указанного дерева каталогов. На директиву не влияет, включен или нет безопасный режим.

Указанное значение является префиксом, а не названием директории. Это означает, что open_basedir = /dir/incl позволяет получить доступ к /dir/include и /dir/incls если они существуют. Чтобы ограничить доступ к конкретной директории, используйте завершающий слеш.

open_basedir = /home/users/you/public_html

 

В некоторых конфигурациях, по крайней мере, в PHP 4.4.8, использование слэш ограничивает доступ только к указанной директории, может заставить Joomla предупреждать JFolder:: создавать: бесконечный цикл обнаружения при сохранении глобальных конфигураций административной части. Это предупреждение срабатывает, поскольку PHP file_exists () не срабатывает, например, при запросе /home/user/public_html/joomla_demo, если существует open_basedir установленный в / /home/user/public_html/joomla_demo/.

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

open_basedir = /home/users/you/public_html:/tmp

 

PHP будет использовать временный каталог системы, когда upload_tmp_dir не установлен или когда он установлен, но каталог не существует (не установлен), поэтому может возникнуть необходимость добавить его в open_basedir, как сказано выше, чтобы избежать пересылки ошибки в Joomla.


Отрегулируйте magic_quotes_gpc

Отрегулируйте директиву magic_quotes_gpc, как необходимо для вашего сайта. Рекомендуемое для установки в Joomla! 1.0.x для защиты от плохо написанных сторонних расширений. Самый безопасный метод, включить magic_quotes_gpc, чтобы избежать всех плохо написанного расширений.
Joomla! 1.5 игнорирует этот параметр и прекрасно работает без проблем.

magic_quotes_gpc = 1

 

Не используйте PHP safe_mode

Избегайте использования safe_mode PHP. Это правильное, но неполное решение более глубокой проблемы и дает ложное чувство безопасности. См. официальный сайт PHP для объяснения этого вопроса.

 safe_mode = 0

 

Не используйте PHP register_globals

Автоматическая регистрация глобальных переменных, вероятно, является одним из неудобных решений сделанных разработчиками PHP. Эта директива определяет, будет ли или не регистрировать EGPCS (Environment, GET, POST, Cookie, Server) переменные, как глобальные переменные, где они сразу же становятся доступны для всех PHP-скриптов, и где они могут легко заменять его собственную переменную, если вы не будете осторожны. К счастью, разработчики PHP давно понял ошибку, и исправили эту «особенность».

Если ваш сайт находится на одном сервере с хостинг-провайдером, который настаивает, чтобы register_globals был включен, это должно вас очень волновать. Хотя вы можете отключать register_globals для своего собственного сайта с локального файла php.ini это обеспечит частичную безопасность, но сайты на том же сервере остаются уязвимыми для атак, которые могут производиться на ваш сайт с сервера.

 register_globals = 0

Не используйте PHP allow_url_fopen

Не используйте PHP allow_url_fopen. Эта опция позволяет заполучить доступ через URL к некоторым объектам, например, файлам. По умолчанию оболочки предназначены для доступа к удаленным файлам с помощью FTP или HTTP-протоколов. Некоторые расширения, такая, как Zlib, может испоьзовать дополнительные оболочки. Примечание: из соображений безопасности такая опция может быть установлена только в php.ini

 allow_url_fopen = 0

Установка резервного копирования и восстановление процесса

Самое важное правило:

 

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

 

1. Угроза взлома/взлом сайта.

2. Поломка сайта в результате неправильного обновления.

3. Сбой оборудования, такой как неисправные жесткие диски, перебои в питании, воровство сервера, и т.д.

4. Авторитарное вмешательство правительства. (Более распространенный, чем некоторые думают.)

5. Необходимость быстро переместить сайт на новый сервер или хостинг-провайдер.

Contact

518 4067
220 5532

ICQ 255018290

info@redsoft.ru

 

 

Redsoft-участник top25 рейтинга рунета

Redsoft - участник Top25
рейтинга студий России