Мой клиент пожаловался на нападение. Я проверил журнал доступа и обнаружил огромное количество запросов на страницу входа администратора с, казалось бы, случайных IP-адресов. Я создал .htacces
файл в /administrator
каталог и заполнил его следующим (IP-адреса скрыты):
order deny,allow
deny from all
allow from 96.xxx.xx.xxx #my IP address
allow from 97.xx.xxx.xxx #my client's IP address
Затем я перешел на бесплатный прокси-сервер и ввел URL-адрес страницы администратора. Страница не загружала никакие ресурсы (изображения), но загружала саму страницу.
Joomla! делает некоторые вещи SEF в .htaccess
файл, который находится в DocumentRoot
. Выглядит это так:
## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.
Я предполагаю, что причина, по которой .htaccess
файл в каталоге администратора не работает должным образом, имеет какое-то отношение к основному Joomla! .htaccess
файл. Это правда? Я попытался добавить это в свой основной файл .htaccess, но это привело к ошибке 500:
<Directory /var/www/vhosts/sweathelp.org/httpdocs/administrator>
order deny,allow
deny from all
allow from 96.xxx.xx.xxx
allow from 97.xx.xxx.xxx
</Directory>
Как я могу эффективно заблокировать любой доступ к каталогу администратора, за исключением двух IP-адресов из белого списка?
Существует ли там фактическая страница администратора (возможно, PHP?) Или она просто сгенерирована из чего-то вроде index.php
с поддельной структурой каталогов?
Чтобы упростить, попробуйте что-то вроде этого (в основном файле конфигурации, а не .htaccess
):
<Location /administrator>
Order deny,allow
Deny from all
Allow from 96.xxx.xx.xxx
Allow from 97.xx.xxx.xxx
</Location>