Рейтинг:0

Как заблокировать точки "." в правиле iptables?

флаг vn

У меня есть это правило в моих iptables для блокировки доменов, оканчивающихся на .смотреть:

sudo iptables -A ВЫВОД -j DROP -m string --string ".watch" --algo kmp

Но проблема в том, что . не может быть сопоставлено. Таким образом, строка выше ничего не соответствует. Но если я уберу точку с .смотреть к смотреть это работает нормально.

Как я могу заблокировать точки "." в правилах iptables?

флаг us
Это не правильный способ сделать это. Если вы планируете блокировать DNS-запросы для домена, в пакетах запросов нет точек для сопоставления из-за того, как реализован протокол DNS.
light9876 avatar
флаг vn
Спасибо @Tero. Знаете ли вы лучший способ сделать это, чем использовать `Dnsmasq`?
Рейтинг:3
флаг jp

Синтаксически это кажется правильным, но ваш подход для этой цели не подходит. струнный патч соответствует строке в любом месте пакета:

  • Вы отбрасываете любой пакет, который смотреть или же .смотреть везде. Это может привести к ложным срабатываниям и даже вводит новый вектор для атак типа «отказ в обслуживании».
  • Он не может обрабатывать зашифрованный трафик. Он не может заблокировать большая часть веб-трафика.
  • Хотя у вас есть относительно хорошие варианты алгоритма сопоставления (бм Бойер-Мур и кмп Knuth-Pratt-Morris), использование строкового фильтра по-прежнему требует больших вычислительных ресурсов.

Документация также явно предупреждает об этом:

Пожалуйста, используйте этот матч с осторожностью. Многие люди хотят использовать это совпадение, чтобы остановить червей, вместе с целью DROP. это главное ошибка. Он будет побежден любым методом обхода IDS.

Аналогичным образом, многие люди использовали этот матч в качестве означает остановку определенных функций в HTTP, таких как POST или GET, путем удаления любой HTTP-пакет, содержащий строку POST. Пожалуйста, поймите это эта работа лучше выполняется фильтрующим прокси. Кроме того, любой HTML содержимое со словом POST будет удалено с помощью первого метода. Этот матч был разработан, чтобы иметь возможность стоять в очереди в пользовательскую зону. интересные пакеты для лучшего анализа, вот и все. Отбрасывание пакета на основе этого будет побежден любым методом обхода IDS.

Есть лучшие альтернативы тому, чего вы пытаетесь достичь:

  • Фильтрация на основе DNS. Это может сделать любой DNS-сервер. Например., Днсмаск является обычным облегченным сервером пересылки DNS: вы можете просто добавить адрес=/смотреть/0.0.0.0 к его конфигурации.
  • Фильтрация на основе веб-прокси.
light9876 avatar
флаг vn
Спасибо. На самом деле я пытаюсь сказать, что `.` нельзя заблокировать. Например, блокирующая строка `"com"` блокирует `serverfault.com`; но использование «.com» не блокирует тот же веб-сайт.
флаг jp
Я могу понять, что.Я пытаюсь сказать, что вы должны перестать улучшать свой молоток для завинчивания и вместо этого использовать отвертку. :)
light9876 avatar
флаг vn
Оказалось, что `/etc/hosts.deny` устарел. https://askubuntu.com/a/23225
флаг jp
Спасибо! Я удалил это.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.