Вначале давайте разберемся - зачем это надо?
Joomla относится к одному из самых распространенных движков для сайтов, которые чаще всего устанавливают непрофессионалы. Чаще нее ставят только Wordpress. Про нее можно сказать - легкий старт и тяжелые последствия...
Даже админскую запись новички почему-то всегда называют admin. Зачем? Ну на то мы и непрофессионалы, чтобы так делать... Да еще и пароли выбирают из разряда попроще, чтобы не забыть...
Первый урок - выберите для админской записи любой псевдоним, но не admin!
При установке Джумлы совсем не обязательно выбирать admin в качестве админской учетной записи. И даже это вредно! Вы облегчаете работу всем взломщикам! Выбирайте что угодно, только не admin!
А что так можно?
Да, можно! И даже нужно!
Что делать с папкой administrator?
Конечно нет ничего удивительного в том, что такие сайты становятся жертвами атак роботов-взломщиков, которые ищут легкие пути для стандартного взлома. И точка приложения усилий таких роботов - это админка сайта.
Поэтому первая мысль у тех, кто наслушался о взломах Джумлы и хочет хоть как-то себя обезопасить - это - "а можно ли поменять папку Joomla administrator на что-то другое?" И тогда роботы попадут не по адресу и взлома не будет.
Так можно ли поменять папку administrator?
Ответ - и да, и нет.
До недавнего времени я бы вообще ответил - нет.
Стандартным ответом на подобного рода вопросы всегда был такой - ставьте такой или такой плагин, расширение, модуль...
Мое личное мнение - чем больше вы понаставите всевозможных плагинов, расширений и модулей, тем больше у вас будет проблем в дальнейшем.
Не все расширения одинаково хорошо поддерживаются. Не все группы поддержки будут решать ваши частные проблемы несовместимости с другими расширениями. Чаще всего аргументом от службы поддержки будет такой - "на чистой джумле наше расширение работает прекрасно, а то что у вас не работает - это проблема тех расширений которые вы поставили..."
Я слышал такое много раз. Вроде бы ты заплатил за расширение, купил его, а проблемы твои никто решать не хочет.
Ключевое слово - "твои проблемы".
Что делать?
Можно прекрасно обойтись без сторонних расширений.
Мне очень понравилось решение, которое предложил Филипп Сорокин. Оригинальную статью можно прочитать вот по этой ссылке https://addondev.com/blog/administrator-security
Суть решения заключается в следующем - при посещении определенного секретного адреса вашему браузеру устанавливается специальная секретная кука, которая является пропуском в папку администратора. Все остальные идут лесом.
По факту мы получаем точно такое же поведение, как будто мы переименовали папку Joomla. То есть при попытке открытия любым человеком (или роботом) папки administrator он получает в ответ код 403 (запрещен доступ) или 404 (нет такой страницы).
Как это сделать?
Нам нужен файл .htaccess. Находим в нем такие строки:
## No directory listings IndexIgnore * ## Can be commented out if causes errors, see notes above. Options +FollowSymlinks Options -Indexes ## Mod_rewrite in use. RewriteEngine On
Нас интересует строка RewriteEngine On.
Сразу после нее вставляем вот эти строки:
RewriteCond %{HTTP_COOKIE} !antihack2017 RewriteCond %{REQUEST_URI} ^/administrator [NC] RewriteCond %{REQUEST_URI} !^/administrator/cache [NC] RewriteRule .? - [F] RewriteCond %{REQUEST_URI} ^/supersecret$ RewriteRule .? /administrator/ [CO=antihack2017:1:%{HTTP_HOST},R=303,L]
Что здесь можно менять и что означает?
antihack2017 - это название устанавливаемой куки. Лучше конечно это поменять на что-то свое, но можно и оставить. Обратите внимание, что менять надо в двух местах.
supersecret - это, собственно, и есть новое наименование вашей папки. Его однозначно нужно менять на что-то свое, а то никакого супер секрета не выйдет....
Обратите внимание - адрес по которому теперь надо заходить в админку - http://site.com/supersecret
Не надо добавлять в конце косую черту! То есть по адресу http://site.com/supersecret/ - вы в свой сайт не попадете! Обязательно проверяйте чтобы в конце не было косой черты - "/" !
Какие бывают подводные камни?
У хостеров часто настраивается работа nginx и apache серверов в паре. Может случиться так, что из-за неверной настройки эта система может работать неправильно. Можете попросить Вашего хостера добавить правило для прокси-сервера, чтобы он пропускал cookie от Apache.