Важным аспектом защиты сайтов на джумле является ограничение доступа для посторонних к административной панели управления. Большую часть атак хакеров приходится на получения доступа суперпользователя - с такими правами можно залить шелл и делать с проектом что угодно. Злоумышленники используют как обычный перебор паролей (атаку брутофорсом), так и всевозможные уязвимости самой Joomla. Именно поэтому важно вовремя обезопасить сайт и закрыть доступ к админке джумлы. Некоторые используют различные плагины для скрытия или изменения адреса админки. Как яркий пример можно привести Jsecure. Однако лично я не советую их использовать, а даже наоборот рекомендую их удалять, потому что есть более надежные и простые способы ограничения доступа от незванных гостей.

Защита админки Joomla через файл htaccess

Доступ к административной панели можно ограничить как модулями, так и настройками сервера.

Ограничение доступа к папке в ISP

Рассмотрим для начала как сделать это в ISP Managere. Заходим в панель управления сайтом и выбираем в "World Wide Web" пункт "Ограничение доступа":

Ограничение доступа в ISP Manager
Паролирование папки administrator в ISP manager

Выбираем пункт "Создать" и в появившемся окошке указываем полный путь до папки administrator (путь можно посмотреть по фтп, к примеру).

Создание ограничения доступа к директории
Поставить защиту на админку Joomla

После этого выбираем созданный пункт и нажимаем кнопку "Пользователи". Здесь жмем кнопку создать и вводим логин, сохраняем, выделяем созданного пользователя и выбираем "Изменить":

Создание ограничения доступа к директории в джумле
Защита админки Joomla

Вводим и подтверждаем пароль, нажимаем "Ок" -  теперь админка защищена от посторонних ботов, подбирающих пароли.

Поставить админку под пароль на хостинге Beget

Как отдельный пример рассмотрим популярный хостинг среди вебмастеров бегет, тем более у него своя панель для этих целей.

Для начала заходим в панель управления хостингом. Здесь нам необходимо выбрать и перейти в файловый мененеджер:

Выбрать файловый менеджер в панели управления хостингом Beget
Выбрать файловый менеджер в панели управления хостингом Beget

Следующим шагом необходимо зайти в необходимую папку для защиты, в нашем случае это папка administrator необходимого сайта. Будьте внимательны, надо перейти именно внутрь каталога, а не выделить его!

Переходим в папку /administrator/ в файловом менеджере
Переходим в папку /administrator/ в файловом менеджере

Теперь кликаем по меню "Инструменты" и у нас появится выбор между парольной защитой и сокрытием админки по айпи. Я рассмотрю оба варианта реализации на практике.

Меню
Меню "Инструменты" в менеджере файлов бегета

Если выбрали пункт "Установить пароль на текущую директорию", то появится всплывающее окно с заполнением имени пользователя и пароля. Если всё было указано корректно, то после нажатия кнопки "Установить пароль" в папке administrator создадутся файлы .htpasswd с зашифрованным паролем и логином и .htaccess с готовыми директивами. В целях повышения безопасности я советую выносить файл паролей .htpasswd за пределы сайта (выше директории public_html). Не забудьте после этого прописать новые пути в файле .htaccess!

Установка парольной защиты на бегете
Установка парольной защиты на бегете

Немного запутано выглядит второй вариант с использованием фильтрации айпи-адресов. В появившемся окне галочка должна стоять на пункте "Запретить доступ с любого адреса" и в дополнительных параметрах " Сначала запрещенные, потом разрешенные". После этого добавляем белые айпи и не забываем всё это дело сохранять. После всех манипуляций в админку можно будет зайти только с определённых айпи.

Настройка доступа по IP Beget
Настройка доступа по IP Beget

Аналогичным образом можно поставить парольный доступ к любой другой директории на сервере или же аналогичным образом можно защищать админки других CMS, таких как Wordpress, Drupal, Modx, Bitrix и другие.

Добавление пароля на папку в CPanel

Ещё одна популярная контрольная панель управления сайтами, используемая многими хостингами - это Cpanel. И в ней уже изначально внедрено создание паролей на директории и не надо самим тратить много времени с созданием и добавлением htpasswd файлов.

Для начала конечно же надо зайти в панель управления и среди множества разных пунктов выбрать "Конфиденциальность каталога" во вкладке "Файлы":

Конфиденциальность каталога в Cpanel
Конфиденциальность каталога в Cpanel

Появится упрощённый файловый менеджер, в котором нужно выбрать необходимую папку, в нашем случае administator необходимого домена. Для того, чтобы передвигаться по папкам, необходимо щелкать по значкам папки, а не по названию, клик по имени каталога служит выбором директории для создания защиты.

Выбор папки для добавления пароля в Cpanel
Выбор папки для добавления пароля в Cpanel

У нас появится окно с забавным переводом "Параметры безопасности". Здесь можно добавлять, удалять и редактировать пользователей, но всё это не будет работать, пока не поставишь галку на защите директории. Я советую сначала добавлять нового пользователя, а потом уже применять защиту папки. В любом случае, надо будет 2 раза нажимать кнопку сохранить и по юзабилити этот момент оказался непродуманным.

Задание пароля на папку в CPanel
Задание пароля на папку в CPanel

Можно воспользоваться генератором паролей или придумать свою кодовую фразу обязательно нажмите сохранить для добавления пользователя. Должно появиться окно об успешном завершении:

Успешное добавление пользователя с паролем в Cpanel
Успешное добавление пользователя с паролем в Cpanel

Далее нажимаем кнопку назад и применяем защиту на папку. Для этого ставим галочку напротив "Защитить этот каталог паролем", можно отредактировать сообщение, которое будет выдавать незваным гостям и обязательно жмём "Сохранить". Проверяем результат, в итоге у нас должна быть работающая двухфакторная авторизация на административную панель Joomla.

Basic авторизация для админки джумлы

Следующим вариантом для рассмотрения будут возможности файла .htaccess ( в принципе предыдущий метод основан на этом, поэтому я расскажу подробнее, как сделать это вручную, или для тех, у кого хостингом не предусмотрена такая настройка в панели управлении). Для простоты понимания данный метод я называю двухфакторной авторизацией в админку.

 Создаем в папке administrator файл .htaccess со следующим кодом:

AuthType Basic
AuthName "/"
AuthUserFile "Путь к файлу паролей/.htpasswds/passwd"
require valid-user

Итак, теперь рассмотрим подробнее, в строке AuthName в кавычках мы указываем текст  выводимого сообщения авторизации (Будь то "Введите логин-пароль для входа в административную панель" до "Бот дальше не пройдет" - всё зависит от вашей фантазии).

В AuthUserFile   мы указываем полный путь к файлу, где будет храниться наш зашифрованный логин с паролем. Я обычно стараюсь их расположить выше директории сайта, чтобы физический доступ к ним полностью отсутствовал.

Создать файл паролей не так сложно, достаточно в гугле вбить "htpasswd creator", и нам будет предложено много онлайн-сервисов по генерации ключа.

Не забудьте поместить сгенерированную строку в файл по пути, которому мы прописали в файле .htaccess. И обязательно проверьте работоспособность успешного входа: при неверно прописанных путях даже с корректным вводом пароля будет выдаваться ошибка сервера, и в админку мы не попадем.

Данный способ называется basic авторизацией, реализованный в стандартных инструментах апача. Единственным недостатком данного метода является то, что пароли передаются открытым текстом. Хоть вероятность перехватить данные пароли мала, для более высокой степени защищенности можно использовать digest авторизацию.

Digest авторизация для защиты админки джумлы.

На этот раз пароль будет зашифрован браузером в md5 и уже не будет обычного незащищенного текста. В остальном всё схоже с basic вариантом, обязателен лишь параметр AuthName. Ну и изменяется тип авторизации, а так всё остается аналогичным:

        AuthType Digest
        AuthName protected
        AuthUserFile мой путь к файлу .htpasswd
        Require valid-user

Вот так можно легко защитить админку джумлы от перебора паролей. Данный метод подходит и для других CMS по аналогии, для сайтов на вордпрессе есть нюансы, описал в этой статье, а также можно таким образом защищать определенные папки на сервере.

Защита админки Joomla по айпи

Кроме этого метода можно ограничить вход в административную панель фильтрацией айпи адресов. Для этого стоит создать в папке, которую необходимо защитить файл .htaccess со следующим кодом:

Order Deny,Allow
Deny from all
Allow from myip

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

Allow from 192.168.0.1

Allow from 127.0.0.

Allow from 178.133.

В первом случае зайти можно будет с одного адреса, во втором случае с диапазона 127.0.0.1-127.0.0.255, а в последнем варианте с адресов 178.133.0.1-178.133.255.255

На этом о защите админки хватит, а теперь стоит почитать как защитить сайт от вирусов на Joomla 1.5

 

Комментарии   
0 # Али 20.06.2019 23:12
Попробовал как вы написали на своём сайте https://ramadan.date/ и получилось. А то по статистике 950 раз обращались к странице с админкой, а я сам только 6 раз за неделю заходил.
Ответить | Ответить с цитатой | Цитировать
Добавить комментарий