Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: GeoIP - страны и провайдеры + генерация фильтров iptables & apache  (Прочитано 2006 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн golota

  • Автор темы
  • Участник
  • *
  • Сообщений: 132
    • Просмотр профиля
В теме UFW приоритет правил? мы с коллегой обсуждали вопрос ограничения доступа из различных стран мира, базирующуюся на фильтрации IP.

Различные бесплатные базы GeoIP довольно древние, а за актуальные базы разные деляги хотят денег.
Например, основной поставщик бесплатных данных maxmind.com, бесплатно раздаёт неполные данные 2012 года.

После исследования этого вопроса, мне удалось получить актуальные данные.
Для сравнения -
# GeoIPCountryWhois.csv взятый на maxmind.com
# Countries - 250
# Networks - 83754
---------------------------------------------
# Что удалось найти мне
# Countries - 250
# Networks - 130952

Честно говоря, стран мира 248
Есть ещё
A1 - Anonymous Proxy
A2 - Satellite Provider

В прицепе 2 файла
GeoIP_Country_CIDR_golota.cidr - в формате Country_Code Network
GeoIP_providers.sh - скриптик для генерации правил для iptables, apache и.т.д

Что-бы избежать наезда всякого рода "правообладателей" он запакован в мой автар

Кмпрессированный размер 463287, и непосредственн на форум его запостить нельзя (max 200k+200k)
Достать его оттуда не трудно -
(Нажмите, чтобы показать/скрыть)

Минимально, надо ввести код одной страны, например -
Без ключей, генерируется правила для iptables такого вида -
./GeoIP_providers.sh AD
iptables -I INPUT -s  109.111.96.0/19  -j DROP
...
iptables -I INPUT -s  94.142.204.0/22  -j DROP

Пример генерации правил для apahe (Андора и Австралия) -
./GeoIP_providers.sh -b "deny from" -e "" AD AU
deny from 109.111.96.0/19
...
deny from 91.200.218.0/24

« Последнее редактирование: 31 Января 2014, 23:02:56 от golota »
Я знаю то, что ничего не знаю, но некоторые не знают и этого. Сократ

Оффлайн kneker

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Действительно, скрипт генерит готовые правила для NetFilter в виде
iptables -I INPUT -s 1.0.1.0/24 -j DROPЗамечательно, что при необходимости его можно легко перепилить под свои нужды.

У меня правила фаера генерятся несколькими скриптами, "черный список" вынесен в отдельную пользовательскую цепочку black_list, которая легко автоматически заполняется приведенным скриптом.

Лишние пробелы до IP и после IP в генерируемых строках я все-же убрал:
Было
iptables -I INPUT -s  1.0.1.0/24  -j DROPСтало
iptables -I INPUT -s 1.0.1.0/24 -j DROP
Смутил вот этот момент, который Вы указали:
(Нажмите, чтобы показать/скрыть)
Куча народу использует эти базы для ограничения доступа в NetFilter и Apache.

А вот здесь:
(Нажмите, чтобы показать/скрыть)
Сразу возникает просьба к Вам: привести алгоритм (или готовый скрипт) для обновления файла GeoIP_Country_CIDR_golota.cidr, ибо его содержимое так или иначе будет устаревать, и неплохо бы его как минимум раз в год переливать заново.

Еще один момент, о котором спорят на разных форумах:
Утверждается, что xtables_geoip меньше грузит проц при фильтрации трафика, чем тупо цепочка правил iptables -I INPUT -s 1.0.1.0/24 -j DROP.
Хотя, по логике, с какого оно будет меньше, т.к. все равно производится обращение к локальной базе адресов, поиск по критерию, принятие решения на основе результатов поиска и т.д.
Однако, если в качестве шлюза используется физическая машина, с каким-нибудь недревним Core2DUO или Athlon 2 X2 на это можно забить, ибо прирост нагружения на не очень старом железе заметен сильно не будет.
Каково Ваше мнение по данному поводу?

UPD:
Народ бродит по китайским сайтам-барахолкам типа taobao, в то же время нам надо забанить их активность, чтоб не сканили и не пинговали.
Используем механизм контроля состояния:

(Нажмите, чтобы показать/скрыть)
И уже теперь Ваши правила, но немного модифицированные:
(Нажмите, чтобы показать/скрыть)

А вообще целесообразнее для снижения нагрузки на машину выгрузить бан-лист в отдельную цепочку, и кидать в нее пакеты из INPUT с состоянием NEW.
В конце цепочки ставим "-j RETURN" (что необязательно, ибо по умолчанию так).
Большинство трафика - со статусами ESTABLISHED,RELATED - пойдет через первое правило и не будет попусту проверяться нагружая проц.
« Последнее редактирование: 03 Февраля 2014, 06:47:04 от kneker »

Оффлайн golota

  • Автор темы
  • Участник
  • *
  • Сообщений: 132
    • Просмотр профиля
Сразу возникает просьба к Вам: привести алгоритм (или готовый скрипт) для обновления файла GeoIP_Country_CIDR_golota.cidr, ибо его содержимое так или иначе будет устаревать, и неплохо бы его как минимум раз в год переливать заново.
1. Скрипты не доделаны, всё делал в несколько этапов, кажется, пару раз промежуточные файлы ручками редактировал.
2. При частых запросах, сайт (откуда брал), начинает просить капчу. Так что сбор проходил медленно, осторожно с большими задержками между запросами.
   Если выложить его в паблик, боюсь "пионЭры", бысторо доведут до полного бана. 

Утверждается, что xtables_geoip меньше грузит проц при фильтрации трафика, чем тупо цепочка правил
...
Каково Ваше мнение по данному поводу?
Если xtables_geoip не генерируют таблицу сразу, а лезут в свою базу для каждого пакета, то вообще 3.14..ц


И уже теперь Ваши правила, но немного модифицированные:
(Нажмите, чтобы показать/скрыть)
Скрипт делал на скорую руку, исключительно как болванку, даже странно, что не поленился вставить дефолтные правила.


А вообще целесообразнее для снижения нагрузки на машину выгрузить бан-лист в отдельную цепочку, и кидать в нее пакеты из INPUT с состоянием NEW.
Абсолютно согласен !
Я знаю то, что ничего не знаю, но некоторые не знают и этого. Сократ

 

Страница сгенерирована за 0.063 секунд. Запросов: 24.