Как фильтровать TCP-пакеты на основе флагов с помощью Packet Filter

Ну, я не знаю точно, как задать этот вопрос, но я знаю, что вы можете использовать ключевые слова flags, чтобы определить, какие флаги вы хотите отфильтровать.

Согласно документации Пакетного фильтра:

Чтобы PF проверял флаги TCP во время оценки правила, используется ключевое слово flags со следующим синтаксисом:

флажки проверки / маски флаги любые

Часть маски указывает PF проверять только указанные флаги, а часть проверки указывает, какие флаги должны быть включены в заголовке для совпадения. Использование любого ключевого слова позволяет установить любую комбинацию флагов в заголовке.

передача по протоколу fxp0 proto tcp с любого на любой порт ssh flags S / SA передача по протоколу fxp0 proto tcp с любого на любой порт ssh

Поскольку флаги S / SA установлены по умолчанию, приведенные выше правила эквивалентны. Каждое из этих правил передает TCP-трафик с установленным флагом SYN, глядя только на флаги SYN и ACK. Пакет с флагами SYN и ECE будет соответствовать вышеуказанным правилам, а пакет с SYN и ACK или просто ACK - нет.

Итак, я понял пример и почему пакет с флагами S и E может пройти (потому что флаг E не рассматривается из-за маски SA) и почему пакет только с флагом Ack не может пройти межсетевой экран.

Я не понял, почему пакет с флагами S и A не может пройти правило S/SA, если флаг S включен в заголовке пакета. Может быть, документация неоднозначна? Извините, если это глупый вопрос или английский язык неправильно понят.

Я представляю, что он может пройти, только если он ДОЛЖЕН ИМЕЕТ ТОЛЬКО флаг S. В арифметике множества будет что-то вроде этого:

флаг (ы) должен быть включен в заголовке -> флаг (ы) относится к замаскированному подмножеству [pf doc] только флаг (ы) должен быть включен в заголовке -> флаг (ы), например, замаскированное подмножество [что я понял из приведенного примера]

Заранее спасибо!

1 ответ

Это означает, что вы смотрите на два флага S & A но вы подходите, если и только если S находится "на" И A выключен".

flags S/SA

 ---------------
| S | A | Match |
 ---|---|-------
| 0 | 0 | No    |
| 0 | 1 | No    |
| 1 | 0 | Yes   |
| 1 | 1 | No    |
 ---------------

Если вы хотите соответствовать, когда оба SA флаги включены, вы будете использовать flags SA/SA,

flags SA/SA

 ---------------
| S | A | Match |
 ---|---|-------
| 0 | 0 | No    |
| 0 | 1 | No    |
| 1 | 0 | No    |
| 1 | 1 | Yes   |
 ---------------
Другие вопросы по тегам