Начиная с 10.7, Apple перешла на пакетный фильтр (PF) проекта OpenBSD.
Фильтрация пакетов с помощью PF документирована проектом OpenBSD .
Способность PF сохранять состояние предназначена для выполнения именно того, что вы хотите: пропускать трафик, инициируемый хостом, при этом блокируя остальное. «Сохраняя информацию о каждом соединении в таблице состояний, PF может быстро определить, принадлежит ли пакет, проходящий через брандмауэр, уже установленному соединению. Если это так, он проходит через брандмауэр, не проходя оценку набора правил».
Таким образом, вы можете начать с набора правил, таких как
block all pass out from any to any
так что все, кроме исходящего трафика, запрещено. Записи состояния создаются для исходящего трафика, что позволяет возвращать трафик по этому соединению, поскольку он полностью пропускает набор правил.