Как использовать .htaccess для блокировки русских IP-адресов?

1451
Chezzers

Я добавил этот код в мой .htaccessфайл

#deny all russian IP's Order allow,deny deny from .ru Allow from all 

Мои вопросы:

  1. Это может пойти где-нибудь в файле? Я добавил это до конца.
  2. Я помещаю код в корневой .htaccessфайл? У меня много .htaccessфайлов; они повсюду с сайтом Prestashop.

enter image description here

2
Просто из любопытства, почему ты этого хочешь? bipll 6 лет назад 1
У меня есть русский бот, который отправляет сотни сообщений на мою страницу контактов - он ломает мой сайт и делает его непригодным для всех моих клиентов. Я установил SlideCaptcha, но он, кажется, может обойти его. Chezzers 6 лет назад 0
Итак, вы понимаете, что блокируете весь большой домен верхнего уровня, чтобы заблокировать что-то, что может спамить вас из другого сегмента? : -О bipll 6 лет назад 0
нет, но я делаю сейчас - спасибо Chezzers 6 лет назад 0

2 ответа на вопрос

3
JakeGould

Это может пойти где-нибудь в файле?

И да и нет. В общем, если вы добавили его в конец файла, все должно быть в порядке. Но причина, по которой я говорю «да и нет», заключается в том, что, не зная остального содержимого .htaccessфайла, невозможно дать однозначный ответ. Для всех я знаю, что у вас есть другие allow/ denyдирективы, которые могут помешать этому.

Положить ли код в корневой файл .htaccess?

Да! Это должно идти в корне. Мне не совсем понятна логика других .htaccessфайлов на сайте Prestashop, но я не могу представить, что эти файлы без полномочий root .htaccessбудут мешать. В общем случае .htaccessфайл в корне будет охватывать все остальные пути под ним.

Тем не менее, этот метод «охоты и клевки» не работает эффективно, так как вам нужно постоянно обновлять его; это даст вам больше головной боли, чем стоит.

Вместо этого, если вы являетесь системным администратором и знаете, как использовать IPtables и IPSec, тогда эти инструменты являются лучшей альтернативой блокированию целых диапазонов IP-адресов. Они быстрее, надежнее и гибче, чем просто .htaccessбесконечный взлом файлов. В этой теме о сбое сервера объясняются основы блокирования IP-адресов на уровне страны с использованием IPsec и IPtables, и на него стоит обратить внимание.

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

Просто стоит помнить - использование iptables и тому подобное будет выглядеть так, будто вашего сайта там нет. Теоретически, хотя его подход кажется совершенно неверным, вы можете получить реальное сообщение об ошибке, если его веб-сервер будет "ах, этот русский ip. GO AWAY!" Journeyman Geek 6 лет назад 1
@JourneymanGeek Правда, можно отправить конкретное сообщение на российский IP-адрес, используя `.htaccess`, но большинство людей не практикуют эту практику. Простое отключение IP-соединения и продолжение жизни имеет смысл. JakeGould 6 лет назад 0
0
Journeyman Geek

Я думаю ... вы не совсем понимаете связь между IP-адресами и доменными именами. Во - первых, как правило, если вы явно не настроить его таким образом, один или несколько доменов на карте по адресу IP, а не наоборот, и, когда вы действительно установить RDNS - ваш типичный веб - сервер dosen't заботиться о нем. Короче говоря .ru ничего не значат в этом контексте для вашего веб-сервера.

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

Файл .htaccess действительно является переопределением для определенного каталога. Стоит помнить, что apache на самом деле не рекомендует его использовать . Если вы хотите что-то заблокировать, это должно быть установлено в основном конфигурационном файле.

Немного возиться - вы, очевидно, можете получить htaccess файлы из интернета со списком диапазонов IP-адресов - тот, который я сгенерировал здесь, составляет около 3 МБ для России - и я не уверен в эффектах выброса больших диапазонов IP-адресов для блокировки на вашем сервере

Предупреждение Apache об использовании `.htaccess` является правдивым. Вот оно: «Вам следует полностью избегать использования файлов .htaccess, если у вас есть доступ к файлу конфигурации основного сервера httpd. Использование файлов .htaccess замедляет работу вашего http-сервера Apache ». Обоснование заключается в том, что Apache должен будет проверять каждый каталог на наличие файла« .htaccess », что теоретически может замедлить работу. Но на практике на современных серверах эта потеря скорости в лучшем случае незначительна. Подавляющее большинство известных веб-приложений используют `.htaccess`, такие как WordPress, Drupal и другие. Так что никакой большой крик в 2018 году. JakeGould 6 лет назад 0

Похожие вопросы