Google блока запрашивает к 16k с помощью pf брандмауэр

Похож нет никаких решений, так закрываю вопрос

5
задан 31 October 2012 в 17:12
1 ответ

Параметр source-track применяется к каждому правилу, поэтому вы не ограничиваете «Google до X запросов в день», вы ограничиваете каждый отдельный адрес этим пределом. .

Я предлагаю вам два решения. Один простой и приблизительный, другой сложнее и острее.

Решение 1

Преобразуйте условие так, чтобы все интересующие серверы соответствовали одному правилу. Самый простой подход - использовать спецификацию CIDR, например:

pass out on vte0 inet proto tcp from any to 173.194.44.80/29 port http keep state (source-track rule, max-src-conn 200, max-src -conn-rate 17500/86400, src.track 86400)

Это соответствует узлам с 173.194.44.80 по 173.194.44.86: на два больше, чем вы хотите. Вы получаете 99% цели при 10% сложности. В большинстве случаев я бы пошел этим путем. Этот конкретный случай особенный, потому что Google - одна из 2-3 организаций в мире, которые владеют множеством сетевых блоков и часто повторно назначают свои адреса. Для работы с google, yahoo и т. Д. Я бы не стал прибегать к этому решению.

Решение 2

Используйте тег , очень красивое свойство PF. Теги позволяют наклеить заметку на пакет и применить правила позже на его основе. Вот пример для вашего случая:

передать vte0 proto tcp с любого порта http на www.google.com TOGOOGLE передать быстро на vte0 proto tcp tagged TOGOOGLE сохранить состояние (правило исходной дорожки, max-src-conn 200, max-src-conn-rate 17500/86400, src.track 86400)

Дополнительные примечания

  • вам больше не нужны флаги S / SA : это значение по умолчанию для соединений с отслеживанием состояния
  • , указание правил брандмауэра, совпадающих по имени хоста, опасно
4
ответ дан 3 December 2019 в 01:45

Теги

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