Советы по защите папки manager от несанкционированного доступа

Итак как закрыть manager MODx от посторонних глаз ( и рук :)? Есть несколько способов - буду рассказывать в порядке приоритетности. Если у вас не получится сделать по каким то причинам одним способом, пробуйте другой

Первый способ.

У вас есть доступ к конфигу Apache, и Apache у вас скомпилирован с поддержкой mod_auth_digest. В конфигурации виртуального хоста нужно добавить следующую секцию :

  1.  
  2. ErrorDocument 403 /page404.htm
  3. Order deny,allow
  4. Deny from all
  5. Allow from x.x.x.x
  6. AuthType Digest
  7. AuthName "Restricted"
  8. AuthDigestDomain /manager/ http://www.your_site.com/manager/
  9. AuthBasicProvider file
  10. AuthUserFile /etc/httpd/conf/modxadmins
  11. Require user admin
  12.  

Данный конфиг разрешает заходить в менеджер только с 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:

  1. 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. В конфигурации виртуального хоста нужно добавить следующую секцию :

  1.  
  2. ErrorDocument 403 /page404.htm
  3. Order deny,allow
  4. Deny from all
  5. Allow from x.x.x.x
  6. AuthType Basic
  7. AuthName "Restricted"
  8. AuthBasicProvider file
  9. AuthUserFile /etc/httpd/conf/modxadmins
  10. Require user admin
  11.  

Отличие от предыдущей конфигурации только в типе аутентификации, и способе генерации файла паролей:

  1. htpasswd -c /etc/httpd/conf/modxadmins admin

Все остальное остается в силе.

Третий способ

Если у вас нет доступа к конфигу апача, при помощи файла .htaccess лежащего в директории /manager. Следует отметить, что работать это будет только если на вашем сервере разрешено переопределение аутентификации при помощи .htaccess. - как говорит источник это будет работать если в конфиге апача сказано :

  1.  
  2. AllowOverride AuthConfig
  3.  

Я не пробовал такой способ защиты manager-а, но предполагаю, что в .htaccess надо поместить след. строки:

  1.  
  2. Order deny,allow
  3. Deny from all
  4. Allow from x.x.x.x
  5. AuthType Basic
  6. AuthName "Restricted"
  7. AuthBasicProvider file
  8. AuthUserFile /etc/httpd/conf/modxadmins
  9. Require user admin
  10.  

И сгенерировать файл паролей, как во втором способе.

Еще замечание по поводу файла паролей: хранить его, для пущей безопасности, надо где то вне дерева веб сервера, и установить на него аттрибуты 400.

Четвертый способ

Заключается в том, что можно отказаться вообще от паролей, а ограничиться только разрешением ходить админку с определенных адресов:

Для .htaccess

  1.  
  2. Order deny,allow
  3. Deny from all
  4. Allow from x.x.x.x
  5.  

Для конфига апача :

  1.  
  2. ErrorDocument 403 /page404.htm
  3. Order deny,allow
  4. Deny from all
  5. Allow from x.x.x.x
  6.  

автор статьи Dmitry Alekhin разработчик проекта Russian FileShare Service MODx powered

Свои замечания и комментарии вы можете оставить на форуме, в соответствующей теме