Советы по защите папки manager от несанкционированного доступа
Итак как закрыть manager MODx от посторонних глаз ( и рук :)? Есть несколько способов - буду рассказывать в порядке приоритетности. Если у вас не получится сделать по каким то причинам одним способом, пробуйте другой
Первый способ.
У вас есть доступ к конфигу Apache, и Apache у вас скомпилирован с поддержкой mod_auth_digest. В конфигурации виртуального хоста нужно добавить следующую секцию :
ErrorDocument 403 /page404.htm Order deny,allow Deny from all Allow from x.x.x.x AuthType Digest AuthName "Restricted" AuthDigestDomain /manager/ http://www.your_site.com/manager/ AuthBasicProvider file AuthUserFile /etc/httpd/conf/modxadmins Require user admin
Данный конфиг разрешает заходить в менеджер только с IP x.x.x.x ( конечно необходимо изменить x.x.x.x на IP адрес того хоста откуда будет производиться администрирование MODx. Если вы не знаете свой IP , или сидите за динамическим NATом провайдера - можно указать весь пул адресов вашего провайдера. Например для MTU intel - 85.140.0.0/15
Перед тем как перезапускать Apache необходимо создать файл паролей - в данном примере он лежит в etc/httpd/conf/modxadmins. Что бы создать пользователя admin необходимо выполнить следующую команду под шеллом в unix:
htdigest -c /etc/httpd/conf/modxadmins Restricted admin
Вас попросят ввести пароль для пользователя аdmin. Этот пароль не имеет ничего общего с админским паролем MODx - это грубо говоря пароль на URL /manager/
Перед тем как вывести приглашение MODx овой админки - браузер вывалит дополнительное окно с аутентификацией, в котором необходимо ввести admin и пароль который вы сгенерировали htdigest-ом. Для всех остальных хакеров :) будет показана страничка /page404.html которую вы сами сконфигурите директивой ErrorDocument 403 /page404.htm
Это самый параноидальный и относительно сложный способ, который требует доступа к конфигу апача, и шеллу на хостинге.
Ссылка по теме - http://httpd.apache.org/docs/2.2/mod/mod_auth_digest.html
Второй способ.
Опять таки вам потребуется доступ к конфигу апача, но уже достаточно иметь вкомпиленный mod_auth_basic, что в большинстве стандартных конфигов апача присутствует.
У вас есть доступ к конфигу Apache, и Apache у вас скомпилирован с поддержкой mod_auth_basic. В конфигурации виртуального хоста нужно добавить следующую секцию :
ErrorDocument 403 /page404.htm Order deny,allow Deny from all Allow from x.x.x.x AuthType Basic AuthName "Restricted" AuthBasicProvider file AuthUserFile /etc/httpd/conf/modxadmins Require user admin
Отличие от предыдущей конфигурации только в типе аутентификации, и способе генерации файла паролей:
htpasswd -c /etc/httpd/conf/modxadmins admin
Все остальное остается в силе.
Третий способ
Если у вас нет доступа к конфигу апача, при помощи файла .htaccess лежащего в директории /manager. Следует отметить, что работать это будет только если на вашем сервере разрешено переопределение аутентификации при помощи .htaccess. - как говорит источник это будет работать если в конфиге апача сказано :
AllowOverride AuthConfig
Я не пробовал такой способ защиты manager-а, но предполагаю, что в .htaccess надо поместить след. строки:
Order deny,allow Deny from all Allow from x.x.x.x AuthType Basic AuthName "Restricted" AuthBasicProvider file AuthUserFile /etc/httpd/conf/modxadmins Require user admin
И сгенерировать файл паролей, как во втором способе.
Еще замечание по поводу файла паролей: хранить его, для пущей безопасности, надо где то вне дерева веб сервера, и установить на него аттрибуты 400.
Четвертый способ
Заключается в том, что можно отказаться вообще от паролей, а ограничиться только разрешением ходить админку с определенных адресов:
Для .htaccess
Order deny,allow Deny from all Allow from x.x.x.x
Для конфига апача :
ErrorDocument 403 /page404.htm Order deny,allow Deny from all Allow from x.x.x.x
автор статьи Dmitry Alekhin разработчик проекта Russian FileShare Service MODx powered
Свои замечания и комментарии вы можете оставить на форуме, в соответствующей теме


