Le filtrage par service est possible pour le TCP et l'UDP, mais est surtout utilisé en TCP car les ports UDP peuvent changer (à cause du RPC). Le filtrage par service consiste tout simplement à interdire ou autoriser des connexions en fonction des ports utilisés. Exemple : interdire tous les ports sortants, sauf le 80 (utilisé par les serveurs Web). Inconvénient : si un serveur différent (IRC, par exemple) accepte des connexions sur le port 80, ça passera ; et à l'inverse, si un serveur Web attend des connexions sur un autre port, ça ne passera pas.
Façon plus élégante de réaliser un accès ``Web seulement'' : utiliser un serveur mandataire (``proxy'', pour ceux qui, comme moi, n'arrivent plus à parler français). Voir plus bas pour plus de détails. Noter qu'on peut aussi utiliser le bit d'ACK comme règle de filtrage, ce qui permet de n'autoriser que les connexions sortantes (une machine à l'intérieur peut contacter une machine de l'extérieur, mais pas l'inverse). Et évidemment, toutes ces règles peuvent se combiner dans tous les sens, de façon par exemple à tout interdire, sauf toutes les connexions venant d'un autre site (d'une filiale par exemple) et les connexions depuis quelques serveurs bien choisis vers notre serveur SMTP sur le port 25 (protocole et port généralement utlisés pour relayer du traffic e-mail).