Installation security hints/ru: Difference between revisions
From LimeSurvey Manual
(Created page with "'urlManager' => array( [...] 'rules' => require('/var/www/htdocs/limesurvey/config/routes.php'), [...] ); </syntaxhighlight>") |
(Created page with "Также не используйте "admin" пользователем по-умолчанию. Отправляйтесь в Вашу MySQL базу данных (или...") |
||
Line 110: | Line 110: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Также не используйте "admin" пользователем по-умолчанию. Отправляйтесь в Вашу MySQL базу данных (или другую, если Вы развернули LimeSurvey на какой либо другой базе) и измените имя пользователя по-умолчанию "admin" на какое угодно (например "admin_xyz"). Теперь подобрать имя пользователя администратора будет гораздо сложнее. Пароль администратора - это другая переменная. Выбирайте его с особой тщательностью. |
Revision as of 06:31, 17 May 2015
__ОГЛАВЛЕНИЕ__
Общее
LimeSurvey опирается на собственную систему безопасности, которая по-умолчанию активирована. Авторы данного программного обеспечения не несут никакой ответственности и не делают заявлений в отношении уместности или безопасности данной программы. Однако, мы подходим к вопросам безопасности довольно серьезно и быстро реагируем - если Вам известны проблемы в безопасности LimeSurvey, пожалуйста, дайте нам знать: info@limesurvey.org или заведите отчет об ошибке на нашем баг-трекере (пожалуйста, отметьте его как частный).
Права на файлы в Linux
Если вы пользуетесь Linux сервером, то требуется настройка прав файлов для обеспечения безопасной установки LimeSurvey.
Основные сведения о правах на файлы в Linux/*nix
Операционная система Linux/*nix - многопользовательская. Это означает, что кроме Вашей учетной записи другие пользователи могут параллельно с Вами находиться в системе и Вам необходимо позаботиться о правах которые Вы даете на файлы для других пользователей.
При этом хочется отметить, что пользователь 'root' всегда сможет получить доступ к Вашим файлам (вне зависимости какие были выставлены права) т.к. это супер-администратор.
Web-сервер (на котором запущена LimeSurvey) обычно работает от учетной записи пользователя (user). В Linux, это обычно 'www','www-data' (в Debian/Ubuntu), 'apache' или 'nobody' пользователи. Однако, некоторые хостинг-компании используют системы (такие как suexec), которые запускают скрипты LimeSurvey от имени Вашего пользователя. Разумеется, пользователь от имени которого работает Web-сервер должен иметь право читать файлы LimeSurvey. В то же самое время лишь немногие каталоги должны быть доступны для записи Web-сервером.
Установка прав в управляемой системе Linux
Если Вы сами управляете Web-сервером и настраиваете операционную систему (Вы владелец физического сервера или арендатор виртуального сервера к которому у Вас есть 'root'-доступ), то Вам нужно следовать этим рекомендациям.
Для начала Вы можете установить владельца и группу владельца на файлы LimeSurvey, что облегчит настройку разрешений для файлов установки.
Возможная стратегия заключается в установке владельцем Вашей собственной учетной записи пользователя и группы владельца - учетной записи Web-сервера. Обычно группа Web-сервера содержит в себе только учетную запись Web-сервера (и, возможно, другую учетную запись Web-мастера).
Например, если Ваше имя пользователя 'myaccount' и имя пользователя Web-сервера 'apache' находящегося в группе 'apache', то в консоли Вы можете набрать следующую команду:
$ chown -R myaccount:apache limesurvey/
Затем настроим права для файлов и подкаталогов.
Для корректной работы скрипта необходимо чтобы он имел возможность записи в некоторые директории:
- "/limesurvey/tmp" директория и все подкаталоги используются для импорта/выгрузки файлов и должны быть настроены для Чтения и Записи Вашим Web-сервером.
- Директория upload/ и все подкаталоги также должны быть настроены для Чтения и Записи Вашим Web-сервером, чтобы иметь возможность загружать картинки и media-файлы.
- Все остальные директории и файлы должны быть установлены в режим доступа Только чтение
$ chmod -R o-r-w-x limesurvey/
$ chmod -R -w limesurvey/
$ chmod -R 770 limesurvey/tmp
$ chmod -R 770 limesurvey/upload
Настройка файловых разрешений на Web-сервере хостинга
Осуществить стандартную процедуру защиты Web-приложения в окружении хостинга довольно сложно, потому что окружения хостинга могут существенно отличаться.
Для корректной работы скрипта необходимо, чтобы он имел доступ на запись в следующие директории:
- "/limesurvey/tmp" директория и все подкаталоги используются для импорта/выгрузки файлов и должны быть настроены для Чтения и Записи Вашим Web-сервером.
- Директория upload/ и все подкаталоги также должны быть настроены для Чтения и Записи Вашим Web-сервером, чтобы иметь возможность загружать картинки и media-файлы.
- Все остальные директории и файлы должны быть установлены в режим доступа Только чтение
- В зависимости от конфигурации Вашего Web-сервера будет необходимо выдать права 755 или 777, чтобы сделать возможным запись туда сервером. Сначала попробуйте 755 - если не сработает, то обновите на 777.
- Вы также можете убрать доступ на чтение с файла config.php для всех остальных установив на него права 750 - если ничего не работает, то попробуйте выставить 755.
Права доступа к файлам в Windows
Если Вы используете Windows сервер, то необходимо убедиться, что каталог admin разрешен для записи процессом Web-сервера, при этом на все остальные файлы могут действовать разрешения только на чтение и выполнение.
Прочие вопросы безопасности
Ниже были приведены только рекомендации. Сама по себе LimeSurvey и так довольно безопасная система, даже без применения указанных мер. Однако, если Вы обрабатываете исключительно конфиденциальные данные, то безопасности никогда не бывает мало и следующее должно Вам помочь:
Доступ к config.php
/application/config/config.php - файл содержит имя пользователя и пароль к базе данных Вашего сервера. Вы рискуете заполучить определенные проблемы безопасности, если в данном файле указан пользователь с высоким уровнем административных прав к Вашей базе. В случае возникновения каких либо ошибок, содержимое данного файла может быть отображено на экране браузера, и конфиденциальные данные могут быть скомпрометированы(хотя, это маловероятный сценарий). Лучшим вариантом будет указать в данном файле пользователя, который имеет полномочия лишь внутри базы данных limesurvey.
Другим способом дополнительно обезопасить данную систему может быть расположение информации находящейся в файле /application/config/config.php не в Web-директории, т.е. для пользователя Apache эта директория будет находиться выше каталога htdocs (или public_html или www). Таким образом Вы сможете использовать config.php, но с одной единственной строкой в нем - которая подключает актуальную конфигурацию из внешнего источника (например: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>). Удалите всю актуальную конфигурационную информацию из /application/config/config.php и вставьте ее в другой файл (configreal.php), который в свою очередь подключается в файле /application/config/config.php. Подключаемый файл не должен находиться в Web-директории. Таким образом непосредственно в самом файле /application/config/config.php больше не будут храниться конфиденциальные данные, а лишь имя файла, где это содержится на самом деле. Данная манипуляция позволяет избежать необходимости изменять все файлы, которые подключают /application/config/config.php. При этом, Вам необходимо будет отредактировать файл configreal.php и изменить в нем следующие параметры
'basePath' => dirname(dirname('''FILE''')),
'runtimePath' => dirname(dirname(dirname('''FILE'''))).DIRECTORY_SEPARATOR.'tmp'.DIRECTORY_SEPARATOR.'runtime',
[...]
'urlManager' => array(
[...]
'rules' => require('routes.php'),
[...]
);
чтобы использовать абсолютные пути к каталогам, чтобы все работало должным образом. Пример:
'basePath' => '/var/www/htdocs/limesurvey',
'runtimePath' => '/var/www/htdocs/limesurvey/tmp/runtime',
[...]
'urlManager' => array(
[...]
'rules' => require('/var/www/htdocs/limesurvey/config/routes.php'),
[...]
);
Также не используйте "admin" пользователем по-умолчанию. Отправляйтесь в Вашу MySQL базу данных (или другую, если Вы развернули LimeSurvey на какой либо другой базе) и измените имя пользователя по-умолчанию "admin" на какое угодно (например "admin_xyz"). Теперь подобрать имя пользователя администратора будет гораздо сложнее. Пароль администратора - это другая переменная. Выбирайте его с особой тщательностью.