У меня есть веб-приложение, которое не имеет пользователей на Филиппинах, но постоянно подвергается бомбардировке спамерами, карточками тестирования кардеров и другой нежелательной деятельностью оттуда. В журналах я вижу, что у них есть IP-адреса на Филиппинах, и они первоначально находят мой сайт через google.ph или другие .ph
сайты.
У меня есть довольно хорошие фильтры и проверки безопасности, поэтому они не наносят большого ущерба, но, тем не менее, я действительно устал от этого. Они используют пропускную способность, наполняют мою базу данных, журналы злоупотреблений и журналы безопасности дерьмом, тратят мое время на определение учетных записей и т. Д.
Хотя подавляющее большинство граждан Филиппин не являются спамерами, и я не могу просто заблокировать каждую страну, которая меня раздражает, на данный момент, я думаю, что решения - просто заблокировать весь трафик с Филиппин в мое веб-приложение. (Я знаю, что блокировка IP-блоков целых стран - не очень хорошая практика, и у нее много проблем, но для этой страны я хочу сделать исключение.)
(Я знаю, что они могут подделать свой IP-адрес, но, по крайней мере, я могу заставить их немного поработать.)
Я знаю, что есть несколько гео-сервисов. Кто-нибудь знает какие-либо бесплатные или недорогие услуги? Или любой другой способ отфильтровать трафик из конкретной страны?
Я использую PHP на Apache 2, если это имеет значение.
Ответы:
Вы можете сделать это на основе IP-адреса, используя бесплатный IP Locatin API, такой как IPInfoDB http://ipinfodb.com/index.php.
источник
В отличие от большинства других постеров здесь, я не собираюсь говорить вам, что это плохая идея, что вы не должны этого делать, что это не решит вашу проблему, или что вы должны сделать что-то еще. Вот что случилось с нами:
Люди из Китая и Кореи (или использующие прокси в Китае и Корее, в любом случае) продолжали раздражать нас. Сканирование портов, сканирование наших сайтов в поисках уязвимостей, попытки входа в систему и т. Д. Я пытался их игнорировать (fail2ban обычно о них заботится), но в некоторых моментах они поражали нас настолько сильно, что фактически превращались в DoS-атаку. Когда у вас есть сотни соединений одновременно от людей, пытающихся использовать ваш веб-сервер в качестве прокси-сервера, пытающихся подключиться к вашей машине через SSH, пробующих случайные имена пользователей и пароли, это имеет тенденцию оказывать влияние на сайт. В конце концов я сыт по горло.
Мы не получаем никакого законного трафика из Китая или Кореи; наша компания там не продает (мы занимаемся электронной коммерцией), поэтому не было никакого риска потерять законный трафик, поэтому я решил, что было бы проще заблокировать их раньше времени, вместо того, чтобы ждать, пока они станут хреном.
Вот и все. Наши проблемные пользователи ушли, нагрузка на сеть и сервер уменьшились, и мы без проблем выдержали рождественский сезон.
Примечание 1 : вы можете сделать это с обычными iptables (т.е. без ipset), но это дороже в вычислительном отношении, чем при использовании ipset.
Примечание 2 : Вот как выглядят дампы (ipset сгенерирует их для вас, если хотите):
Примечание 3 : Мы используем nethash, потому что все наши диапазоны хранятся в виде блоков CIDR. Если вы не хотите конвертировать их в CIDR, вместо этого вы можете использовать iptreemap, но я думаю, что это может быть менее эффективно, если вы получаете много трафика.
источник
Как исправить ошибку в коде?
Вот так?
Ошибка: Добавить (2,2) возвращает 0, должно возвращать 4.
Фиксированный код:
Очевидно нет. Вы не просто создаете уродливое чудовище особых случаев, это чрезвычайно хрупкое и рецепт катастрофы. Вы также не просто исправляете симптом сегодняшней основной проблемы.
Вместо этого выясните причину и устраните ее. Это гораздо надежнее любого хакерского патча для особых случаев, который вы могли бы реализовать.
Почему ваше веб-приложение уязвимо для спама? Какие характеристики делают его уязвимым? Какие характеристики делают его ценной целью? Есть ли способы, которыми вы можете изменить эти характеристики, чтобы сделать ваше приложение более устойчивым к спаму и менее заманчивым объектом? Почти наверняка ответ на эти вопросы - да. Добавьте цепочки проверки к вашим формам, используйте интеллектуальную капчу, рандомизируйте URL-адреса и / или имена параметров, чтобы сделать их недружественными для ботов. Существуют миллионы способов решения этой проблемы, извините, что вы выбрали одно из наименее ценных, наименее полезных и наиболее хрупких решений.
источник
Во-первых, я настоятельно рекомендую не делать этого.
Как красноречиво говорят другие, блокирование конкретной страны не решает проблему, а лишь слегка ее откладывает. Кроме того, когда пользователи из этой страны увидят, что вы их специально заблокировали , это только мотивирует их вызывать больше проблем.
Тем не менее, если вы действительно хотите это сделать, IPinfoDB предоставляет бесплатную базу данных геолокации IP,
источник
Вы должны использовать такие продукты, как fail2ban, чтобы отключить ошибки, которые вы генерируете в своем веб-приложении, что указывает на попытку спама. Это будет блокировать IP на определенный период времени, делая ваш сайт устойчивым, но не блокировать все блоки IP.
источник
Пара решений:
Эти решения довольно легко и быстро внедрить и бесплатно.
Более долгосрочным решением будет обнаружение спама в вашем веб-приложении, регистрация IP-адреса и подача ваших iptables для автоматической их блокировки.
источник
Рассматривали ли вы, кто управляет сетями, на которые вас атакуют? Найдите контакт "злоупотребление" с помощью whois и сообщите им. Конечно, это может происходить из нескольких сетей, но это также может стоить того, если вы видите некоторые повторяющиеся адреса / сетевые блоки.
источник
Вы имеете полное право блокировать IP-адреса по любой причине, которую вы можете оправдать для себя. Именно вы оказываете услугу, и именно вы решаете, кто может иметь ее или нет. Возможно, сомнительно, морально ли это, но это то, что вы можете решить только для себя.
Однако блокирование сегмента IP, поскольку он имеет некоторые географические аспекты, звучит для меня более или менее как панический подход.
То, что я делал в прошлом, - это просмотрщик, просматривающий мои последние журналы и основанный на этом запрете отдельных IP-адресов, которые раздражают в течение 24 часов. Если этот конкретный IP снова ведет себя неправильно, его забанят на 2 дня, затем на 3 дня и т. Д., И т. Д.
IP-адреса, которые запрещены на срок более недели, будут отправлены мне по почте, и я отправлю письмо с оскорблениями этому поставщику услуг (который знает, что это может даже помочь).
источник
Я бы выбрал решение Snort + OSSEC, которое могло бы динамически поддерживать нечто подобное.
источник