Важным аспектом защиты сайтов на джумле является ограничение доступа для посторонних к административной панели управления. Большую часть атак хакеров приходится на получения доступа суперпользователя - с такими правами можно залить шелл и делать с проектом что угодно. Злоумышленники используют как обычный перебор паролей (атаку брутофорсом), так и всевозможные уязвимости самой Joomla. Именно поэтому важно вовремя обезопасить сайт и закрыть доступ к админке джумлы. Некоторые используют различные плагины для скрытия или изменения адреса админки. Как яркий пример можно привести Jsecure. Однако лично я не советую их использовать, а даже наоборот рекомендую их удалять, потому что есть более надежные и простые способы ограничения доступа от незванных гостей.
Защита админки Joomla через файл htaccess
Доступ к административной панели можно ограничить как модулями, так и настройками сервера.
Ограничение доступа к папке в ISP
Рассмотрим для начала как сделать это в ISP Managere. Заходим в панель управления сайтом и выбираем в "World Wide Web" пункт "Ограничение доступа":
Выбираем пункт "Создать" и в появившемся окошке указываем полный путь до папки administrator (путь можно посмотреть по фтп, к примеру).
После этого выбираем созданный пункт и нажимаем кнопку "Пользователи". Здесь жмем кнопку создать и вводим логин, сохраняем, выделяем созданного пользователя и выбираем "Изменить":
Вводим и подтверждаем пароль, нажимаем "Ок" - теперь админка защищена от посторонних ботов, подбирающих пароли.
Поставить админку под пароль на хостинге Beget
Как отдельный пример рассмотрим популярный хостинг среди вебмастеров бегет, тем более у него своя панель для этих целей.
Для начала заходим в панель управления хостингом. Здесь нам необходимо выбрать и перейти в файловый мененеджер:
Следующим шагом необходимо зайти в необходимую папку для защиты, в нашем случае это папка administrator необходимого сайта. Будьте внимательны, надо перейти именно внутрь каталога, а не выделить его!
Теперь кликаем по меню "Инструменты" и у нас появится выбор между парольной защитой и сокрытием админки по айпи. Я рассмотрю оба варианта реализации на практике.
Если выбрали пункт "Установить пароль на текущую директорию", то появится всплывающее окно с заполнением имени пользователя и пароля. Если всё было указано корректно, то после нажатия кнопки "Установить пароль" в папке administrator создадутся файлы .htpasswd с зашифрованным паролем и логином и .htaccess с готовыми директивами. В целях повышения безопасности я советую выносить файл паролей .htpasswd за пределы сайта (выше директории public_html). Не забудьте после этого прописать новые пути в файле .htaccess!
Немного запутано выглядит второй вариант с использованием фильтрации айпи-адресов. В появившемся окне галочка должна стоять на пункте "Запретить доступ с любого адреса" и в дополнительных параметрах " Сначала запрещенные, потом разрешенные". После этого добавляем белые айпи и не забываем всё это дело сохранять. После всех манипуляций в админку можно будет зайти только с определённых айпи.
Аналогичным образом можно поставить парольный доступ к любой другой директории на сервере или же аналогичным образом можно защищать админки других CMS, таких как Wordpress, Drupal, Modx, Bitrix и другие.
Добавление пароля на папку в CPanel
Ещё одна популярная контрольная панель управления сайтами, используемая многими хостингами - это Cpanel. И в ней уже изначально внедрено создание паролей на директории и не надо самим тратить много времени с созданием и добавлением htpasswd файлов.
Для начала конечно же надо зайти в панель управления и среди множества разных пунктов выбрать "Конфиденциальность каталога" во вкладке "Файлы":
Появится упрощённый файловый менеджер, в котором нужно выбрать необходимую папку, в нашем случае administator необходимого домена. Для того, чтобы передвигаться по папкам, необходимо щелкать по значкам папки, а не по названию, клик по имени каталога служит выбором директории для создания защиты.
У нас появится окно с забавным переводом "Параметры безопасности". Здесь можно добавлять, удалять и редактировать пользователей, но всё это не будет работать, пока не поставишь галку на защите директории. Я советую сначала добавлять нового пользователя, а потом уже применять защиту папки. В любом случае, надо будет 2 раза нажимать кнопку сохранить и по юзабилити этот момент оказался непродуманным.
Можно воспользоваться генератором паролей или придумать свою кодовую фразу обязательно нажмите сохранить для добавления пользователя. Должно появиться окно об успешном завершении:
Далее нажимаем кнопку назад и применяем защиту на папку. Для этого ставим галочку напротив "Защитить этот каталог паролем", можно отредактировать сообщение, которое будет выдавать незваным гостям и обязательно жмём "Сохранить". Проверяем результат, в итоге у нас должна быть работающая двухфакторная авторизация на административную панель 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
RSS лента комментариев этой записи