Поддержка Проблемы и решения Как закрыть доступ к системным папкам?

  • Здравствуйте,
    У меня на сайте в очередной раз был превышен лимит хостинга по нагрузке на БД. Сегодня и вовсе с утра приходит по сообщению раз в несколько секунд о блокировке того или иного IP из-за слишком большого количества попыток входа (установлен плагин Better WP Security, также установлен плагин Wordfence Security). В последний раз такая лавина обращений была около месяца назад из-за DDOS-атаки на хостера, но сейчас у него таких проблем нет. Особых аномалий специалист в техподдержке не обнаружил, порекомендовал запросить и изучить логи. В то же время он увидел обращения и к системным файлам. Специалист сказал, что .htaccess можно настроить так, чтобы к системным файлам мог обращаться только заданный IP, а всем остальным выдавалась ошибка, причем это настройка для WP своя. Вопросы такие:

    1) Это можно сделать средствами уже установленных плагинов Better WP Security и Wordfence Security, или какого-то другого плагина? В своих плагинах я нашел только возможность блокировки заданных IP, а не блокировки обращения к системным папкам всех IP, кроме моего.

    2) Если нет — как это можно сделать вручную, существуют ли образцы кода?

    3) Как это сделать, чтобы при этом не запретить и не затруднить индексацию сайта поисковыми роботами?

    Спасибо.

Просмотр 15 ответов — с 1 по 15 (всего 69)
  • Модератор Yuri

    (@yube)

    Специалист сказал, что .htaccess можно настроить так, чтобы к системным фаайлам мог обращаться только заданный IP

    Вообще-то, к системным файлам сервера через http и так не должно быть доступа, если сисадмин сервера не полный кретин. Возможно, речь идет о файлах движка? Или об админке?

    Админку можно закрыть, поместив в /wp-admin/ файл .htaccess со следующим кодом

    order deny,allow
    deny from all
    allow from #тут_ваш_ip#
    <Files admin-ajax.php>
    allow from all
    </Files>

    Затрудняюсь сказать. Системные файлы — это мое выражение, возможно он говорил именно об админке. А этот код не нарушит работу поисковых роботов, сбор статистики и т.д.? Меня смущает то соображение, что будь это безусловно полезно, то скорее всего соответствующую настройку предусмотрели бы в плагинах безопасности.

    Модератор Yui

    (@fierevere)

    永子

    админку и не должны индексировать,
    если у вас динамический ip то лучше пароль на админку через .htaccess поставить

    Модератор Yuri

    (@yube)

    А этот код не нарушит работу поисковых роботов, сбор статистики и т.д.?

    Вот у них и спросите 🙂

    ПС вообще нефиг делать в админке.

    Меня смущает то соображение, что будь это безусловно полезно

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

    Yui, Юрий, спасибо. Рискну прописать предложенный Юрием код.

    Юрий,
    К сожалению, сообщения «хост … заблокирован … из-заслишком много попыток входа» продолжают поступать, правда в последнее время (возможно после вставки рекомендованного вами кода) были и сообщения «хост … заблокирован … из-заслишком много попыток не существующий открыть файл«. Сейчас код выглядит следующим образом:
    ваш код

    Order deny,allow
    Deny from all
    Allow from #мой IP#
    <files admin-ajax.php>
    Allow from all
    </files>

    прежний код, который я не стал удалять (как я понимаю, он вашему не противоречит)

    <files .htaccess>
    Order allow,deny
    Deny from all
    </files>
    
    <files readme.html>
    Order allow,deny
    Deny from all
    </files>
    
    <files readme.txt>
    Order allow,deny
    Deny from all
    </files>
    
    <files install.php>
    Order allow,deny
    Deny from all
    </files>
    
    <files wp-config.php>
    Order allow,deny
    Deny from all
    </files>

    Что-нибудь еще можно сделать без ущерба работе и индексации сайта, чтобы при попытке обращения к административным файлам выдавалась ошибка и нагрузка на сайт была минимальна?

    Модератор Yuri

    (@yube)

    хост … заблокирован … из-заслишком много

    Может, надо менять хостинг на более гуманный? А то, чего доброго, следующим сообщением будет «хост … заблокирован … из-заслишком много думать о нем» 😉

    Модератор Yui

    (@fierevere)

    永子

    если вы грамотно закрыли вход на wp-login.php
    то базу он больше грузить не должен, если хостер продолжает настаивать на перегрузках, то можете конечно использовать db cache reloaded fix плагин для снижения нагрузки, но в любом случае, присоединюсь к Юрию с тем что это «звоночек» к тому чтобы найти хостера поприличнее

    Юрий, Yui,
    Блокировка происходит не из-за хостера, а благодаря плагину Better WP Security. Без него количества обращений были вообще неограничены. Почему нагрузка сохраняется после установки плагина, который блокирует IP с большим количеством обращений, я не понимаю — разве что DDOS-атака? Но в техподдержке мне сказали, что ее не было. Когда на днях я полдня получал по сообщению о блокировке хоста раз в несколько секунд, нагрузка по сравнению со средней выросла в 3-4 раза. В техподдержке мне сказали, что проблема может быть в том, что у посторонних есть возможность обращаться к админ-файлам, а значит надо их сделать недоступными даже для чтения, чтобы на обращение к ним выдавало ошибку. Я надеялся, что код Юрия решит эту проблему, но сообщения о блокировке хоста за большое количество обращений все равно приходят.

    Насчет хостера мне SeVlad уже подсказал, что тот фактически сваливает на меня свои проблемы, я не спорю. Но я брал его из зеленого списка, нет уверенности, что у другого хостера таких проблем не будет. И вообще хотелось бы оптимизировать сайт максимально. На форуме кто-то жаловался, что WP не тянет больше 10 тыс. посетителей в день и из-за чрезмерных нагрузок у него проблемы с хостером. А у меня посетителей куда меньше…

    Yui,
    Можно пояснить про грамотное закрытие входа? В файле .htaccess присутствует код, описанный выше, а в панели управления хостера доступ на редактирование этого и других административных файлов закрыт (каждый раз перед редактированием я временно разрешаю редактирование владельцу, т.е. себе). Этого недостаточно?

    если хостер продолжает настаивать на перегрузках, то можете конечно использовать db cache reloaded fix плагин для снижения нагрузки

    Yui, а это может негативно сказаться на работе сайта?

    Но я брал его из зеленого списка

    Напомните, плз, о каком хостере речь?

    Хостинг-Центр.

    Модератор Yui

    (@fierevere)

    永子

    Yui, а это может негативно сказаться на работе сайта?

    будет некоторая «резиновость» в обновлении данных, число комментариев итп,
    но в целом терпимо, лучше устанавливать минимальное время для кеширования запросов sql (1 — 3 минуты), тогда негативные эффекты будут не сильно ощущаться и в то же время повторные одинаковые запросы будут обслужены кешем.

    Можно пояснить про грамотное закрытие входа

    потестируйте вход с другого ip, чтобы убедиться что правила действительно работают )

    Ясно, Yui, большое спасибо за пояснения.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    прежний код, который я не стал удалять (как я понимаю, он вашему не противоречит)

    Если вы добавили предложенный Юрием фрагмент в файл .htaccess в корневом каталоге (судя по другим упомянутым в нём файлам), то запрет распространяется не только на каталог wp-admin, но и на весь сайт (т.е. доступ к сайту разрешён только с вашего IP-адреса).

    Или вы всё же добавили его в .htaccess в каталоге wp-admin?

Просмотр 15 ответов — с 1 по 15 (всего 69)
  • Тема «Как закрыть доступ к системным папкам?» закрыта для новых ответов.