Брандмауэр netfilter в Linux по умолчанию представляет собой фильтр пакетов, так что это вам не очень поможет.
То, что вы ищете, это то, что обычно называют межсетевым экраном уровня 7, брандмауэр приложений, который понимает протокол HTTP.
Как вариант, посмотрите на IPS. Я думаю, что вы можете, например, настроить SNORT для работы в режиме реального времени, выполняя проверку пакетов в реальном времени.