» » » Как заблокировать доступ по IP адресу через файл .htaccess
logotip

Как заблокировать доступ по IP адресу через файл .htaccess

Всем привет! Сегодня на SEO-Mayak.com в рамках рубрики «Заботимся о безопасности» я буду рассказывать, как заблокировать доступ по IP адресу через файл .htacces к админ-панели блога или к отдельным файлам.

Немного лирики. Миллионы людей создают свои блоги на основе бесплатной CMS WordPress, которая безусловно является самой популярной на сегодняшний день системой управления.

Постоянно появляющиеся новые плагины, платные и бесплатные шаблоны и конечно новые версии, делают движок еще более удобным и легко управляемым. Эта доступность и простота побуждает все большее количество веб-мастеров пользоваться именно CMS WordPress.

Но популярность всегда имеет и обратною сторону медали. Чуя «запах» легкой наживы над WordPress постоянно кружат стаи «черных» специалистов, которые не упустят возможность воспользоваться брешами в системе защиты движка и неопытностью, а иногда просто обыкновенной халатностью, администраторов блогов.

zapret dostupa po ip

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

Блокирование доступа по IP адресу является наиболее действенной мерой зашиты от взлома системы управления сайтом.

С помощью файла .htaccess можно управлять работой сервера, отдавая ему нужные «распоряжения».

Я уже писал в статье «Как сделать 301 редирект (перенаправление) через файл .htaccess» об одной из таких команд, но также, кроме перенаправления, можно разрешать, ограничивать или запрещать доступ, как к отдельным файлам, так и к целым каталогам (папкам).

Где лучше хранить пароли доступа и какие разделы блога следует защищать в первую очередь

Самым уязвимым местом в WordPress безусловно является админ-панель сайта. Чаще всего несанкционированные проникновения происходят именно через нее. Добравшись до админки, злоумышленник получает полную свободу действий по внедрению в файлы блога различных вирусов или злокачественных функций.

Одну из таких функций я обнаружил у себя на блоге и описал в статье «Ссылки в точке. Находим и удаляем внешние ссылки из статей с анкором в виде точки».

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

zapret po ip

Использование одинаковых паролей, как для входа в различные социальные сети, так и для входа в админ панель блога и т.д. Всех способов вычисления паролей я конечно не знаю, так как я не занимаюсь этим «скользким» ремеслом.

Могу дать совет, чтобы постоянно не вписывать логины и пароли при входе на различные ресурсы, и тем более не хранить их в браузере, установите расширение LastPass.

Расширение LastPass для Google Chrome

Расширение LastPass для Mozilla Firefox

Расширение LastPass для Opera

Как пользоваться расширением Вы можете почитать на официальном сайте lastpass.com.

Использование расширения LastPass упрощает авторизацию на веб-ресурсах и надежно защищает Ваши данные доступа от хакеров

Также взломщик может получить доступ к вашим файлам через протокол FTP, но об это я расскажу уже как-нибудь в другой раз.

Итак, как запретить доступ к важным разделам сайта по IP адресу? Давайте для начала определимся, какие разделы являются важными.

В первую очередь надо запретить доступ к каталогу wp-admin, который находится в корне вашего блога.

Также очень важным, с точки зрения безопасности, является файл wp-config.php, который тоже находится в корневой папке и его изменение напрямую влияет на базу данных.

Не надо далеко ходить, в прошлой статье «Как удалить, отключить, ограничить ревизии записей» мы с вами воздействовали на базу данных посредством небольших команд через файл wp-config.php.

Как заблокировать доступ по IP адресу к файлу wp-config.php через файл .htaccess

Что такое IP адрес? Если бы меня спросили об этом лет пять назад, то наверное я бы с трудом смог подобрать слова для ответа. Но теперь наверное даже многие бабушки скажут вам, что IP — это уникальный сетевой адрес определенного компьютерного узла.

Как узнать свой IP адрес? Большой сложности узнать свой IP не представляет, можно просто спросить у Яндекса, если конечно вы зарегистрированы в этой поисковой системе.

Начнем с того, что сделаем бекап. Как сделать резервную копию всех файлов расположенных на сервере, читайте в статье «FTP клиент Fileziia»

Теперь запретим доступ к файлу wp-config.php со всех IP адресов , кроме своего, чтобы никто извне не смог «нагадить» в нашу базу данных.

С помощью текстового редактора Notepad++ открываем для редактирования файл .htaccess, который должен находиться в корневой папке блога.

Обычно, после настройки ссылок ЧПУ, файл .htaccess выглядит так:

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

После строчки # END WordPress вставляем следующее:

# Запрет доступа по IP адресу к файлу wp-config.php

<Files wp-config.php>
Order Deny,Allow
Deny from all
Allow from Ваш IP адрес
</Files>

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

Order — Директива означающая «порядок». Является управляющей директивой для директив Deny и Allow.

Deny — Запрещающая доступ к документам директива. Распространяется на всех или на определенных пользователей.

Allow — Разрешающая доступ к документу директива. Распространяется на всех или на определенных пользователей.

Пока не понятно, но дальше постепенно все должно прояснится.

Deny,Allow — запрещаем доступ всем, кроме определенных пользователей.

Allow,Deny — разрешаем доступ всем, кроме определенных пользователей.

Значит с первой строчкой <Files wp-config.php> должно быть все ясно, здесь мы просто указываем имя файла к которому хотим ограничить доступ.

Общее значение второй строчки Order Deny,Allow постараюсь объяснить своими словами: Order — порядок действий такой, Deny — сначала запрещаем, Allow — потом разрешаем.

Deny from all — запрещаем доступ к файлу всем пользователям.

Allow from Ваш IP адрес — но разрешаем доступ пользователю с определенным IP адресом

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

# Запрет доступа по IP адресу к файлу wp-config.php

<Files wp-config.php>
Order Deny,Allow
Deny from all
Allow from Ваш IP адрес
Allow from другой IP адрес
Allow form еще один IP адрес
</Files>

Как проверить, действует ли запрет?

Изменяем одну цифирку в своем IP адресе и в адресной строке браузера указываем путь к файлу:

http://site.com/wp-config.php


и браузер должен нам выдать следующее:

zapret po ip

Что означает — «У вас нет разрешения на доступ / WP-config.php на этом сервере». Незабываем обратно поменять цифирку в своем IP адресе.

Как заблокировать доступ по IP адресу в админ-панель через файл .htaccess

Для того, чтобы запретить доступ извне в админку блога нам придется создать еще один файл .htaccess, но уже не в корне блога а непосредственно в каталоге wp-admin.

При создании файла .htaccess настоятельно не рекомендую пользоваться обычными блокнотами, которые изначально присутствуют в арсенале Windows.

Во-первых, созданный файл .htaccess необходимо сохранять в кодировке UTF-8 без BOM.

Во-вторых, написание кодов в обычном блокноте сопровождается автоматическим добавлением специальных символов, которые не видны невооруженным глазом.

Не перестану советовать, при создании новых файлов, пользоваться текстовым редактором Notepad++

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

Order Deny,Allow
Deny from all
Allow from Ваш IP адрес

Незабываем изменить кодировку файла на UTF-8 без BOM:

zapret po ip

И сохранить файл в каталог wp-admin:

zapret po ip6

Я уже не буду объяснять значения директив, а просто предложу опять для проверки изменить одну цифру в Вашем IP адресе и попробовать войти в админ-панель. В результате браузер покажет туже страницу, что и при проверке доступа к файлу wp-config.php.

Обращаю Ваше внимание на то, что надо обязательно проверить статический у вас IP или динамический. Динамические IP могут меняться с разной периодичностью и прописывать в .htaccess динамический IP не имеет смысла.

Чтобы узнать больше про свой IP и проверить динамический он или статический можно воспользоваться услугами специального сервиса.

Но если в друг вы не смогли зайти к себе в админку из-за смены IP, то помните, что вы всегда можете воспользоватся FTP клиентом или зайти на свой хостинг и поправить файл .htaccess.

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

До встречи!

С уважением, Виталий Кириллов

Комментарии: 62

  1. Светлана:

    Хочу сегодня я адресовать
    Часть поздравлений
    с женским днем…
    МУЖЧИНАМ!!!
    Считаю я: достаточно причин
    К тому, чтоб в праздник этот
    Поздравить с тем сегодня
    вас, мужчин
    Что существуют
    женщины на свете!

    Здоровья, счастья, любви, успехов, исполнения жизненных планов!!!

    Ответить
    • Виталий Кириллов:

      Ну вы удивили меня Светлана. Все же 8 марта это женский праздник и женщин надо поздравлять с тем, что существуют мужчины на свете 🙂

      Ответить
  2. Lada:

    Очень нужная информация, Виталий! После праздника обязательно зайду разбираться ещё раз.
    Но у меня ещё такая проблема: ко мне уже давно заходят на сайт буквально НА СЕКУНДУ одни и те же «товарищи» ЕЖЕДНЕВНО. Но в IP у них каждый раз меняются последние цифры. Вот с ними как быть? Ведь из-за них поисковики считают сайт невостребованным.
    Видео очень красивое, спасибо!

    Ответить
    • Виталий Кириллов:

      Lada, рад видеть Вас с на блоге. Пользуясь случаем поздравляю Вас с 8 Мартом! Что касается вашего вопроса, то если Вы Думаете, что Ваш сайт специально кто-то хочет «уронить@? то на это как минимум должны быть причины. Причины обычно кроются в конкуренции. Мое мнение, что пока Ваш блог еще не достаточно вырос, чтобы составлять кому-то конкуренцию, но в жизни всякое бывает. Если IP постоянно меняется, то вход по IP ограничить не удастся. Следите анализируйте % отказав в общем и если он составляет не более 25%, то и волноваться пока не стоит!

      Ответить
      • Lada:

        Спасибо за поздравление, Виталий!
        «Уронить» или нет, но так делается ежедневно с одних и тех же IP.
        У меня к лету был PR 3, место в Li — меньше 10к, посетителей на отдельные статьи до 300-700, а сейчас…
        Что ещё может быть причиной при всех тех же моих действиях?…

        Ответить
        • Виталий Кириллов:

          Lada, я конечно с уверенностью не могу сказать, возможно у вас есть недоброжелатели, но все же я этого не утверждаю. Если заход идет с разных IP, и Вы говорите, что меняется всего 1 цифра, то попробуйте проследить диапазон этих изменений, потом напишите, подумаем вместе, так как меня Ваша ситуация тоже заинтересовала.

          Ответить
  3. Анна:

    Защита компа, сайта. — первоочередное дело. Так что в способах защиты стоит разобраться получше. Но не на 8 марта. Позже.

    Ответить
    • Виталий Кириллов:

      Конечно Анна, защищать свой компьютер просто необходимо.

      Ответить
  4. Larisenok:

    мамочки — какой ты умный и как толково все рассказал, надо прямо тоже такое сделать — вот это супер, а еще можно вопрос задать — как чужой пользователь может удалить свой коммент у меня в блоге? куда нужно посмотреть и где прописать запрет?

    Ответить
    • Виталий Кириллов:

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

      Ответить
      • Larisenok:

        хорошо))) я буду ждать очень сильно

        Ответить
  5. Наталья:

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

    Ответить
    • Виталий Кириллов:

      У большинства IP динамичные, но это не так страшно. Они меняются не каждый день и при изменении IP можно заново прописать в .htaccess зайдя через FTP клиент или через хостинг.Я сейчас веду маниторинг, с какой периодичностью изменяются динамические IP.
      У меня вопрос к читателям.
      Кто-нибудь покупал статический IP, и если да, то сколько он стоит?

      Ответить
  6. Ольга Фомина:

    Очень хорошие, нужные советы у Вас! Надо бы обязательно воспользоваться.

    Ответить
    • Виталий Кириллов:

      Ольга, рад видеть Вас на блоге и спасибо за оценку моего скромного труда.

      Ответить
  7. Оксана:

    Привет Виталий! Спасибо за поздравления!
    Очень полезная и актуальная статья!
    Попробую разобраться, но для меня это сложновато))

    Ответить
    • Виталий Кириллов:

      Здравствуйте Оксана, не все сразу. Возможно вы вернетесь к данной статье немного позже!

      Ответить
  8. Татьяна:

    Добрый день, Виталий! Очень интересные и полезные статьи на Вашем сайте, во все сразу вникнуть не могу, но буду изучать постепенно.

    Ответить
    • Виталий Кириллов:

      Татьяна, на самом деля сложного ничего нет, просто я Вас прекрасно понимаю, так как сам был когда-то начинающим, но все приходит со временем!

      Ответить
  9. людмила:

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

    Ответить
    • Виталий Кириллов:

      Людмила, не стесняйтесь и задавайте вопросы. Какие моменты Вам не понятны? Я постараюсь объяснить.

      Ответить
  10. Станислав:

    Мощная статья! Прочитав один раз не все усваивается сразу)))). Дело нужное. Нужно будет по экспериментировать со своим сайтом. Спасибо вам за такую нужную статью

    Ответить
    • Виталий Кириллов:

      Рад видеть Вас Станислав на своем блоге! Действительно, дело нужное для спокойного сна.

      Ответить
  11. Станислав:

    По любому я на ваш блог подписываюсь, очень много полезной информации.

    Ответить
    • Виталий Кириллов:

      Спасибо Станислав!

      Ответить
  12. Татьяна Румянцева:

    Статья очень мощная — но.. я так далека от всего что в ней написано…Однако — я ваш почитатель и надолго. Надеюсь к ней вернуться еще не один разок.
    Спасибо за науку.
    С ув. Т.С.

    Ответить
    • Виталий Кириллов:

      Большое спасибо Татьяна за оценку статьи. Не беда, что пока сложно понять некоторые вещи, но если серьезно заниматься ведением блога, то понимание обязательно придет!

      Ответить
  13. Lada:

    Добрый день, Виталий! Потихоньку разбираюсь, спасибо Вам..
    Добавила запрет доступа к файлу wp-config.php Теперь хочу добавить запрет на доступ ip-адреса спамеров. И здесь нужна Ваша помощь. Куда мне поставить в .htaccess следующие строки:
    Order Allow,Deny
    Allow from All
    Deny from xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx и т.д.
    — в конце?, т.е. после , которым у меня сейчас заканчивается файл ?
    Ещё один вопрос: когда скачивала Notepad++ 6.3.1. там несколько его вариантов, какой скачивать? Спасибо.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Lada, можете разместить строчки в самый конец файла .htaccess. Что касается второго вопроса, скачивайте любой вариант Notepad++ и потом при обновлении выбирайте все пункты — пригодиться!

      Ответить
  14. Lada:

    Спасибо, Виталий, Вам пребольшое!!
    Забыла спросить ещё вот что: до скольки IP-адресов можно вписать в запрет?

    Ответить
    • Виталий Кириллов:

      Пожалуйста Lada, по-моему ограничений нет.

      Ответить
  15. Искандер:

    Все это замечательно, но у большинства хозяев сайта IP адреса динамические.

    Ответить
    • Виталий Кириллов:

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

      Ответить
  16. Искандер:

    В том то и дело, что статические — платные и имеют их единицы. А динамический IP может меняться чаще, чем каждый день, стоит только интернет перезагрузить и он сменился.

    Ответить
    • Виталий Кириллов:

      Возможно Искандер! Но Я не покупал статический IP и уже мой динамический IP не менялся уже 2 недели. Возможно у других пользователей по-другому. Вопрос изучается.

      Ответить
  17. Искандер:

    Возможно у Вас статический.

    Ответить
    • Виталий Кириллов:

      Так вот видите, значит у многих может быть IP статический, я ведь его не покупал!

      Ответить
  18. Искандер:

    Странная логика. Виталий, это большая редкость. Компании на этом деньги экономят. Это прописные истины, известные всем. А представьте, человек с динамическим IP изменит .htaccess, а на следующий день на свой сайт не попадет. Может шок случиться.

    Ответить
    • Виталий Кириллов:

      Я думаю, что можно или даже нужно, проверить динамический IP у Вас или статический, прежде чем запрет ставить. А шок может случится только у совсем зеленого веб-мастера, так как даже через хостинг можно войти в файл .htaccess и все поправить. Буду ждать претензий от читателей)

      Ответить
  19. teresa:

    Спасибо Виталий, что все доходчиво рассказали. Сделала все, как у вас написано. Посмотрим, а то замучили атаки на админку. Но у меня есть еще админ-помощник на на сайте и его надо тоже IP вписать значит?

    Ответить
    • Виталий Кириллов:

      Здравствуйте teresa, рад видеть вас на блоге! Конечно, если вы хотите, чтобы Ваш помощник имел доступ к админке.

      Ответить
  20. teresa:

    Виталий, а вот скажи еще пжс-та. Я вдобавок этому добавила плагин Stealth Login Page, как ты думаешь не помешает?

    Ответить
    • Виталий Кириллов:

      Насколько я знаю, плагин Stealth Login Page меняет адрес страницы входа в админку. Если вы запретили доступ по IP, то по-моему использовать плагин уже не обязательно.

      Ответить
  21. teresa:

    Зато мне стало так удобно 🙂 Захожу махом без паролей! Может можно и оставить ? 🙂

    Ответить
    • Виталий Кириллов:

      Это уже по желанию.

      Ответить
  22. jkeks:

    зачем файлу htacces выдаете расширение txt =)
    что-то мне кажется wp-config итак недоступен никому, а вот Логинскую панель надо блокировать и лучше всего по IP адресу.
    Меня задрали разные сосунки, которые лезут в логинскую панель.

    Кстати, если ваш ИП все же поменял провайдер, придется его редактировать потом и добавлять. Можно конечно сделать вообще так: Ваш IP поределяется и кладется в ДропБокс а какой-нибудь крон раз в неделю добавляет Ипшники к себе автоматом. Впрочем это такой страшные велосипед, что я сам так даже делать не буду.

    Спасибо Автору за статью

    Ответить
  23. Николай:

    можно было и не создавать второй файл htacces и прописать всё в первом, но всё равно спасибо за информацию.

    Ответить
  24. Николай:

    Дело всё в том, что у вас динамический адрес только внутри вашей подсети (вашего интернет провайдера), а во внешний интернет вы выходите с одного статического IP адреса. Через него выходят и другие абоненты вашего провайдера, если хотите отдельный то только за деньги.

    Ответить
  25. Татьяна:

    Добрый день!
    Помогите, пожалуйста, не могу понять в чем дело. Делаю все так, как написано в статье.
    НО… работает почему-то с точностью до наоборот 🙁
    Как только создаю файл .htacces в папке wp-admin, в админку зайти не могу 🙁
    Айпишник и правильность операторов проверила 10 раз, все правильно.

    Буду очень благодарна за совет.

    Ответить
    • Виталий Кириллов:

      Татьяна, а Вы уверенны, что у Вас статический IP адрес?

      Ответить
      • Татьяна:

        Уверена 🙁
        На всякий случай даже проверила тут moy-ip.com/ip.php#.UgS2sZI0x7c

        Ответить
        • Виталий Кириллов:

          Татьяна, возможно Вы создали файл .htaccess не в том расширении. Для создания файла используйте текстовый редактор Noteped++ и сохраняйте файл в формате All types (*.*)

          Ответить
        • Татьяна:

          Это вряд ли.
          Я пересохранила существующий файл в другую папку, удалила из него все и прописала новый код.
          Кстати, при добавлении в существующий файл .htaccess запрета на доступ к wp-config — та же ситуация. прямо мистика.
          В любом случае спасибо за желание помочь.
          Буду разбираться.

          Ответить
          • Виталий Кириллов:

            Ну тогда остается 2 варианта: или вы вписываете не тот IP или все же он у Вас динамический.

            Ответить
  26. Татьяна:

    Хочу поделиться решением проблемы.
    Рабочий код выглядит следующим образом:

    SetEnvIf Remote_Addr «^0\.0\.0\.0» realremoteaddr
    Order Deny,Allow
    Deny from all
    allow from env=realremoteaddr

    0.0.0.0 — Ваш IP

    Ответить
    • Виталий Кириллов:

      Спасибо Татьяна, наверняка кому-нибудь пригодиться.

      Ответить
  27. Евгений:

    Здравствуйте! Есть проблема: нужно заблокировать доступ с чужих сайтов. Все сайты на одном ip, меняются только домены. Вышеуказанные способы не работают. Еще эти сайты каким-то образом попадают в ЯМетрику в раздел «страницы входа».
    Подскажите как быть?

    Ответить
    • Виталий Кириллов:

      Здраствуйте! Ну если мои способы не работают, то не знаю как быть.

      Ответить
  28. pqr:

    Всем привет, подскажите если кто знает что
    значит «admin.somewhere.in.the.net»
    в этом коде
    «Order Deny,Allow
    Deny from all
    Allow from 192.168.0.
    Allow from .localnet
    Allow from admin.somewhere.in.the.net»
    Виталий может быть вы подскажете
    есть еще вот такой код
    «Order Allow,Deny
    Allow from all
    Deny from 192.168.1.
    Deny from hackers.are.everywhere.in.the.net»
    тут тоже не понятно что означает строка «hackers.are.everywhere.in.the.net»
    хотелось бы понять алгоритм этих строчек что они делают, для чего они?
    На сайте пишут что «Данный код запретит доступ для всех, кроме сети 192.168.0.0/24, всех хостов, DNS имя которых содержит .localnet, а также хоста, DNS имя которого admin.somewhere.in.the.net.» но мне не совсем понятно, это динамические данные то есть
    например DNS имя которых содержит .localnet или может содержать еще что то другое, и как вообще узнать содержит ли .localnet или нет, мне кажется я вообще не понял сути 🙂

    Ответить
  29. Виталий Янчук:

    очень хороший жирный мануал, автору спасибо огромное! такую ерундовину в инете порой пишут, еле нашел этот блог… еще находил информацию здесь shneider-host.ru/blog/blokirovka-dostupa-k-sai%CC%86tu-pri-pomoschi-htaccess.html, теперь хочу все таки самостоятельно разобраться до конца слепив информацию в кучу))

    Ответить
  30. Алекс:

    Подскажите, пожалуйста, какой код должен быть, чтобы запретить доступ c разных IP- адресов?

    Например, с 38.99.83.77 78.88.81.55 58.55.83.192 и т.д.

    Ответить
    • Виталий Кириллов:
      <Files wp-config.php>
      Order Deny
      Allow from IP адрес
      Allow from  IP адрес
      Allow form  IP адрес
      </Files>
      Ответить

Оставить комментарий

Внимание комментатор! Прежде чем вставить: HTML, JavaScript или PHP код в свой комментарий, преобразуй его в html сущность!

Subscribe without commenting

» Подписаться на комментарии по RSS