Этот перевод был создан с помощью машинного обучения и может быть не на 100% точным. Просмотреть английскую версию

Формат фильтра доступа

Синтаксис файлов фильтров контроля доступа tunnel

Обзор

Определение фильтра представляет собой список строк. Пустые строки и строки, начинающиеся с #, игнорируются. Изменения в определении фильтра вступают в силу при перезапуске tunnel.

Каждая строка может представлять один из следующих элементов:

  • Определение порога по умолчанию для применения к любым удаленным назначениям, не указанным в данном файле или любых из referenced файлов
  • Определение порога для применения к определенному удаленному назначению
  • Определение порога для применения к удаленным назначениям, перечисленным в файле
  • Определение порога, нарушение которого приведет к записи нарушившего удаленного назначения в указанный файл

Порядок определений имеет значение. Первый порог для данного назначения (будь то явно указанный или перечисленный в файле) переопределяет любые будущие пороги для того же назначения, независимо от того, указаны ли они явно или перечислены в файле.

Пороговые значения

Порог определяется количеством попыток подключения, которые удаленному назначению разрешено выполнить за указанное количество секунд до возникновения “нарушения”. Например, следующее определение порога 15/5 означает, что одному и тому же удаленному назначению разрешено выполнить 14 попыток подключения в течение 5-секундного периода. Если оно выполнит еще одну попытку в течение того же периода, порог будет нарушен.

Формат порога может быть одним из следующих:

  • Числовое определение количества соединений за количество секунд - 15/5, 30/60 и так далее. Обратите внимание, что если количество соединений равно 1 (как например в 1/1), первая попытка соединения приведет к нарушению порога.
  • Слово allow. Этот порог никогда не нарушается, то есть разрешено бесконечное количество попыток соединения.
  • Слово deny. Этот порог всегда нарушен, то есть попытки соединения не будут разрешены.

Порог по умолчанию

Пороговое значение по умолчанию применяется к любым удалённым назначениям, которые не указаны явно в определении или в любом из файлов, на которые имеются ссылки. Чтобы установить пороговое значение по умолчанию, используйте ключевое слово default. Ниже приведены примеры пороговых значений по умолчанию:

15/5 default
allow default
deny default

Может быть только одно определение порога по умолчанию на фильтр. Если оно опущено, фильтр будет разрешать неизвестные соединения по умолчанию.

Явные пороговые значения

Явные пороговые значения применяются к удаленному назначению, указанному в самом определении. Примеры:

15/5 explicit asdfasdfasdf.b32.i2p
allow explicit fdsafdsafdsa.b32.i2p
deny explicit qwerqwerqwer.b32.i2p

Пороговые значения для массовых операций

Для удобства можно поддерживать список назначений в файле и определить пороговое значение для всех из них сразу. Примеры:

15/5 file /path/throttled_destinations.txt
deny file /path/forbidden_destinations.txt
allow file /path/unlimited_destinations.txt

Эти файлы можно редактировать вручную во время работы tunnel. Изменения в этих файлах могут вступить в силу в течение 10 секунд.

Регистраторы

Регистраторы отслеживают попытки подключения, предпринимаемые удалённым назначением, и если это превышает определённый порог, это назначение записывается в указанный файл. Примеры:

30/5 record /path/aggressive.txt
60/5 record /path/very_aggressive.txt

Возможно использовать регистратор для записи агрессивных назначений в указанный файл, а затем использовать тот же файл для их ограничения. Например, следующий фрагмент определит фильтр, который изначально разрешает все попытки подключения, но если любое отдельное назначение превышает 30 попыток за 5 секунд, оно ограничивается до 15 попыток за 5 секунд:

# by default there are no limits
allow default
# but record overly aggressive destinations
30/5 record /path/throttled.txt
# and any that end up in that file will get throttled in the future
15/5 file /path/throttled.txt

Возможно использовать recorder в одном tunnel, который записывает в файл, ограничивающий скорость другого tunnel. Возможно повторно использовать один и тот же файл с назначениями в нескольких tunnel. И конечно, возможно редактировать эти файлы вручную.

Вот пример определения фильтра, который по умолчанию применяет ограничение пропускной способности, не ограничивает назначения из файла friends.txt, запрещает любые соединения от назначений из файла enemies.txt и записывает любое агрессивное поведение в файл suspicious.txt:

15/5 default
allow file /path/friends.txt
deny file /path/enemies.txt
60/5 record /path/suspicious.txt

Was this page helpful?