Брандмауэр выполняет проверку с учетом состояния, то есть собирает информацию о текущих соединениях, в том числе исходный и целевой IP-адреса, номера портов, имена приложений и так далее. При принятии решений о пропуске трафика клиент сначала изучает эту информацию, а затем проверят правила брандмауэра.
Например, если правило брандмауэра разрешает клиенту подключаться к веб-серверу, то брандмауэр сохранит информацию о таком соединении. Когда сервер отправит ответ, брандмауэр обнаружит, что ответ веб-сервера ожидается клиентом, и разрешит передачу данных веб-сервера указанному в таблице клиенту без проверки базы правил. Сохраняется информация только о тех исходящих соединениях, которые разрешены правилами.
Учет состояния при проверке позволяет упростить базу правил за счет создания правил, разрешающих передачу данных в одном, наиболее часто используемом направлении вместо создания правил, разрешающих передачу данных в обоих направлениях. К числу данных, обычно передаваемых на клиенте в одном направлении, относятся Telnet (порт 23), HTTP (порт 80) и HTTPS (порт 443). В основном клиенты отправляют такие данные другим компьютерам, поэтому для этих протоколов достаточно создать правила, разрешающие передачу исходящих данных. Брандмауэр пропускает ответный трафик.
Рекомендуется настраивать только правила для исходящих данных, так как это позволяет повысить безопасность клиента следующим образом:
Проверка с учетом состояния выполняется для всех правил, управляющих передачей данных TCP. Однако такая проверка не выполняется для правил, фильтрующих данные ICMP. В случае ICMP требуется создавать правила, разрешающие передачу данных в обоих направлениях, когда это необходимо. Например, если клиент будет применять команду ping и получать ответы, то необходимо создать правило, разрешающее передавать пакеты ICMP в обоих направлениях.