O que você está perguntando é tipicamente chamado de firewall "camada de aplicação" ou firewall "camada 7" porque ele opera na camada 7 do Modelo OSI . Um filtro da camada 7 opera inspecionando todos os pacotes que passam pelo firewall para identificar o protocolo em uso.
Existe um classificador de camada 7 disponível para uso com o Netfilter, a implementação do firewall Linux. Não parece ser um projeto especialmente ativo, mas também não é completamente obsoleto - a última atualização na página principal parece ser de janeiro do ano passado.
Eu não tenho nenhuma experiência pessoal com este módulo.