Всем привет! Сегодня на SEO-Mayak.com в рамках рубрики «Заботимся о безопасности» я буду рассказывать, как заблокировать доступ по IP адресу через файл .htacces к админ-панели блога или к отдельным файлам.
Немного лирики. Миллионы людей создают свои блоги на основе бесплатной CMS WordPress, которая безусловно является самой популярной на сегодняшний день системой управления.
Постоянно появляющиеся новые плагины, платные и бесплатные шаблоны и конечно новые версии, делают движок еще более удобным и легко управляемым. Эта доступность и простота побуждает все большее количество веб-мастеров пользоваться именно CMS WordPress.
Но популярность всегда имеет и обратною сторону медали. Чуя «запах» легкой наживы над WordPress постоянно кружат стаи «черных» специалистов, которые не упустят возможность воспользоваться брешами в системе защиты движка и неопытностью, а иногда просто обыкновенной халатностью, администраторов блогов.
Поэтому забота о безопасности наших проектов зачастую ложится на нас с вами и чем надежней мы выстроим оборону, тем спокойнее будет наша жизнь.
С помощью файла .htaccess можно управлять работой сервера, отдавая ему нужные «распоряжения».
Я уже писал в статье «Как сделать 301 редирект (перенаправление) через файл .htaccess» об одной из таких команд, но также, кроме перенаправления, можно разрешать, ограничивать или запрещать доступ, как к отдельным файлам, так и к целым каталогам (папкам).
Где лучше хранить пароли доступа и какие разделы блога следует защищать в первую очередь
Самым уязвимым местом в WordPress безусловно является админ-панель сайта. Чаще всего несанкционированные проникновения происходят именно через нее. Добравшись до админки, злоумышленник получает полную свободу действий по внедрению в файлы блога различных вирусов или злокачественных функций.
Одну из таких функций я обнаружил у себя на блоге и описал в статье «Ссылки в точке. Находим и удаляем внешние ссылки из статей с анкором в виде точки».
Каким же образом осуществляется взлом сайтов? Причиной могут быть разные, например: слабые пароли, которые легко подбираются или сохранение паролей в браузере:
Использование одинаковых паролей, как для входа в различные социальные сети, так и для входа в админ панель блога и т.д. Всех способов вычисления паролей я конечно не знаю, так как я не занимаюсь этим «скользким» ремеслом.
Могу дать совет, чтобы постоянно не вписывать логины и пароли при входе на различные ресурсы, и тем более не хранить их в браузере, установите расширение LastPass.
Расширение LastPass для Google Chrome
Расширение LastPass для Mozilla Firefox
Расширение LastPass для Opera
Как пользоваться расширением Вы можете почитать на официальном сайте lastpass.com.
Также взломщик может получить доступ к вашим файлам через протокол 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
и браузер должен нам выдать следующее:
Что означает — «У вас нет разрешения на доступ / 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:
И сохранить файл в каталог wp-admin:
Я уже не буду объяснять значения директив, а просто предложу опять для проверки изменить одну цифру в Вашем IP адресе и попробовать войти в админ-панель. В результате браузер покажет туже страницу, что и при проверке доступа к файлу wp-config.php.
Чтобы узнать больше про свой IP и проверить динамический он или статический можно воспользоваться услугами специального сервиса.
Но если в друг вы не смогли зайти к себе в админку из-за смены IP, то помните, что вы всегда можете воспользоватся FTP клиентом или зайти на свой хостинг и поправить файл .htaccess.
Конечно, это далеко не все полезные директивы, которыми можно укрепить оборону сайта, но обещаю в будущем посвятить файлу .htaccess еще несколько статей. Так что подписывайтесь на обновления блога и ничего не пропустите.
До встречи!
С уважением, Виталий Кириллов
Хочу сегодня я адресовать
Часть поздравлений
с женским днем…
МУЖЧИНАМ!!!
Считаю я: достаточно причин
К тому, чтоб в праздник этот
Поздравить с тем сегодня
вас, мужчин
Что существуют
женщины на свете!
Здоровья, счастья, любви, успехов, исполнения жизненных планов!!!
Ну вы удивили меня Светлана. Все же 8 марта это женский праздник и женщин надо поздравлять с тем, что существуют мужчины на свете 🙂
Очень нужная информация, Виталий! После праздника обязательно зайду разбираться ещё раз.
Но у меня ещё такая проблема: ко мне уже давно заходят на сайт буквально НА СЕКУНДУ одни и те же «товарищи» ЕЖЕДНЕВНО. Но в IP у них каждый раз меняются последние цифры. Вот с ними как быть? Ведь из-за них поисковики считают сайт невостребованным.
Видео очень красивое, спасибо!
Lada, рад видеть Вас с на блоге. Пользуясь случаем поздравляю Вас с 8 Мартом! Что касается вашего вопроса, то если Вы Думаете, что Ваш сайт специально кто-то хочет «уронить@? то на это как минимум должны быть причины. Причины обычно кроются в конкуренции. Мое мнение, что пока Ваш блог еще не достаточно вырос, чтобы составлять кому-то конкуренцию, но в жизни всякое бывает. Если IP постоянно меняется, то вход по IP ограничить не удастся. Следите анализируйте % отказав в общем и если он составляет не более 25%, то и волноваться пока не стоит!
Спасибо за поздравление, Виталий!
«Уронить» или нет, но так делается ежедневно с одних и тех же IP.
У меня к лету был PR 3, место в Li — меньше 10к, посетителей на отдельные статьи до 300-700, а сейчас…
Что ещё может быть причиной при всех тех же моих действиях?…
Lada, я конечно с уверенностью не могу сказать, возможно у вас есть недоброжелатели, но все же я этого не утверждаю. Если заход идет с разных IP, и Вы говорите, что меняется всего 1 цифра, то попробуйте проследить диапазон этих изменений, потом напишите, подумаем вместе, так как меня Ваша ситуация тоже заинтересовала.
Защита компа, сайта. — первоочередное дело. Так что в способах защиты стоит разобраться получше. Но не на 8 марта. Позже.
Конечно Анна, защищать свой компьютер просто необходимо.
мамочки — какой ты умный и как толково все рассказал, надо прямо тоже такое сделать — вот это супер, а еще можно вопрос задать — как чужой пользователь может удалить свой коммент у меня в блоге? куда нужно посмотреть и где прописать запрет?
Larisenok, вообще-то я свои комментарии не удалял на чужих сайтах и не могу ответить на Ваш вопрос с ходу, но обещаю разобраться, как такое можно осуществить.
хорошо))) я буду ждать очень сильно
Думаю этот метод для меня не подойдет, поскольку я так думаю у меня самой айпи адрес не статичен, а динамический. и такого добра у большинства пользователей. потому что ститический айпи адрес надо покупать и дорого. в основном провайдеры интернета дают динамические айпи адреса своим клиентам.
Впрочем, Виталий ты можешь проследить конкретно за моим адресом например у себя в админке — будет ли он все время одинаковый или бывает, что адресок то другой?
У большинства IP динамичные, но это не так страшно. Они меняются не каждый день и при изменении IP можно заново прописать в .htaccess зайдя через FTP клиент или через хостинг.Я сейчас веду маниторинг, с какой периодичностью изменяются динамические IP.
У меня вопрос к читателям.
Кто-нибудь покупал статический IP, и если да, то сколько он стоит?
Очень хорошие, нужные советы у Вас! Надо бы обязательно воспользоваться.
Ольга, рад видеть Вас на блоге и спасибо за оценку моего скромного труда.
Привет Виталий! Спасибо за поздравления!
Очень полезная и актуальная статья!
Попробую разобраться, но для меня это сложновато))
Здравствуйте Оксана, не все сразу. Возможно вы вернетесь к данной статье немного позже!
Добрый день, Виталий! Очень интересные и полезные статьи на Вашем сайте, во все сразу вникнуть не могу, но буду изучать постепенно.
Татьяна, на самом деля сложного ничего нет, просто я Вас прекрасно понимаю, так как сам был когда-то начинающим, но все приходит со временем!
Действительно сложновато хоть я и внимательно прочитала статью, но к сожалению не все поняла.
Людмила, не стесняйтесь и задавайте вопросы. Какие моменты Вам не понятны? Я постараюсь объяснить.
Мощная статья! Прочитав один раз не все усваивается сразу)))). Дело нужное. Нужно будет по экспериментировать со своим сайтом. Спасибо вам за такую нужную статью
Рад видеть Вас Станислав на своем блоге! Действительно, дело нужное для спокойного сна.
По любому я на ваш блог подписываюсь, очень много полезной информации.
Спасибо Станислав!
Статья очень мощная — но.. я так далека от всего что в ней написано…Однако — я ваш почитатель и надолго. Надеюсь к ней вернуться еще не один разок.
Спасибо за науку.
С ув. Т.С.
Большое спасибо Татьяна за оценку статьи. Не беда, что пока сложно понять некоторые вещи, но если серьезно заниматься ведением блога, то понимание обязательно придет!
Добрый день, Виталий! Потихоньку разбираюсь, спасибо Вам..
Добавила запрет доступа к файлу 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++ и потом при обновлении выбирайте все пункты — пригодиться!
Спасибо, Виталий, Вам пребольшое!!
Забыла спросить ещё вот что: до скольки IP-адресов можно вписать в запрет?
Пожалуйста Lada, по-моему ограничений нет.
Все это замечательно, но у большинства хозяев сайта IP адреса динамические.
Да я в курсе, слышал даже статические IP покупают. Дело в том, что изменить IP всегда можно на хостинге или через FTP клиент, не проблема прописать новый! Ведь динамические IP не каждый день изменяются.
В том то и дело, что статические — платные и имеют их единицы. А динамический IP может меняться чаще, чем каждый день, стоит только интернет перезагрузить и он сменился.
Возможно Искандер! Но Я не покупал статический IP и уже мой динамический IP не менялся уже 2 недели. Возможно у других пользователей по-другому. Вопрос изучается.
Возможно у Вас статический.
Так вот видите, значит у многих может быть IP статический, я ведь его не покупал!
Странная логика. Виталий, это большая редкость. Компании на этом деньги экономят. Это прописные истины, известные всем. А представьте, человек с динамическим IP изменит .htaccess, а на следующий день на свой сайт не попадет. Может шок случиться.
Я думаю, что можно или даже нужно, проверить динамический IP у Вас или статический, прежде чем запрет ставить. А шок может случится только у совсем зеленого веб-мастера, так как даже через хостинг можно войти в файл .htaccess и все поправить. Буду ждать претензий от читателей)
Спасибо Виталий, что все доходчиво рассказали. Сделала все, как у вас написано. Посмотрим, а то замучили атаки на админку. Но у меня есть еще админ-помощник на на сайте и его надо тоже IP вписать значит?
Здравствуйте teresa, рад видеть вас на блоге! Конечно, если вы хотите, чтобы Ваш помощник имел доступ к админке.
Виталий, а вот скажи еще пжс-та. Я вдобавок этому добавила плагин Stealth Login Page, как ты думаешь не помешает?
Насколько я знаю, плагин Stealth Login Page меняет адрес страницы входа в админку. Если вы запретили доступ по IP, то по-моему использовать плагин уже не обязательно.
Зато мне стало так удобно 🙂 Захожу махом без паролей! Может можно и оставить ? 🙂
Это уже по желанию.
зачем файлу htacces выдаете расширение txt =)
что-то мне кажется wp-config итак недоступен никому, а вот Логинскую панель надо блокировать и лучше всего по IP адресу.
Меня задрали разные сосунки, которые лезут в логинскую панель.
Кстати, если ваш ИП все же поменял провайдер, придется его редактировать потом и добавлять. Можно конечно сделать вообще так: Ваш IP поределяется и кладется в ДропБокс а какой-нибудь крон раз в неделю добавляет Ипшники к себе автоматом. Впрочем это такой страшные велосипед, что я сам так даже делать не буду.
Спасибо Автору за статью
можно было и не создавать второй файл htacces и прописать всё в первом, но всё равно спасибо за информацию.
Дело всё в том, что у вас динамический адрес только внутри вашей подсети (вашего интернет провайдера), а во внешний интернет вы выходите с одного статического IP адреса. Через него выходят и другие абоненты вашего провайдера, если хотите отдельный то только за деньги.
Добрый день!
Помогите, пожалуйста, не могу понять в чем дело. Делаю все так, как написано в статье.
НО… работает почему-то с точностью до наоборот 🙁
Как только создаю файл .htacces в папке wp-admin, в админку зайти не могу 🙁
Айпишник и правильность операторов проверила 10 раз, все правильно.
Буду очень благодарна за совет.
Татьяна, а Вы уверенны, что у Вас статический IP адрес?
Уверена 🙁
На всякий случай даже проверила тут moy-ip.com/ip.php#.UgS2sZI0x7c
Татьяна, возможно Вы создали файл .htaccess не в том расширении. Для создания файла используйте текстовый редактор Noteped++ и сохраняйте файл в формате All types (*.*)
Это вряд ли.
Я пересохранила существующий файл в другую папку, удалила из него все и прописала новый код.
Кстати, при добавлении в существующий файл .htaccess запрета на доступ к wp-config — та же ситуация. прямо мистика.
В любом случае спасибо за желание помочь.
Буду разбираться.
Ну тогда остается 2 варианта: или вы вписываете не тот IP или все же он у Вас динамический.
Хочу поделиться решением проблемы.
Рабочий код выглядит следующим образом:
SetEnvIf Remote_Addr «^0\.0\.0\.0» realremoteaddr
Order Deny,Allow
Deny from all
allow from env=realremoteaddr
0.0.0.0 — Ваш IP
Спасибо Татьяна, наверняка кому-нибудь пригодиться.
Здравствуйте! Есть проблема: нужно заблокировать доступ с чужих сайтов. Все сайты на одном ip, меняются только домены. Вышеуказанные способы не работают. Еще эти сайты каким-то образом попадают в ЯМетрику в раздел «страницы входа».
Подскажите как быть?
Здраствуйте! Ну если мои способы не работают, то не знаю как быть.
Всем привет, подскажите если кто знает что
значит «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 или нет, мне кажется я вообще не понял сути 🙂
очень хороший жирный мануал, автору спасибо огромное! такую ерундовину в инете порой пишут, еле нашел этот блог… еще находил информацию здесь
shneider-host.ru/blog/blokirovka-dostupa-k-sai%CC%86tu-pri-pomoschi-htaccess.html
, теперь хочу все таки самостоятельно разобраться до конца слепив информацию в кучу))Подскажите, пожалуйста, какой код должен быть, чтобы запретить доступ c разных IP- адресов?
Например, с 38.99.83.77 78.88.81.55 58.55.83.192 и т.д.