Grundsätzlich sollte das Prinzip gelten : es ist alles verboten was nicht explizit erlaubt ist. Es sollten auf dem nur die Verbindungen durch den Firewall erlaubt werden die man als hinreichend sicher betrachten kann und die auch als notwendig erachtet werden, zum Beispiel bei incoming :
Mit Ausnahme von ssh sollten diese Verbindungen jedoch nur zu den für diese Dienste vorgesehen Maschinen erlaubt werden. Bei den outgoing Verbindungen kann man entweder den offenen Ansatz verfolgen und prinzipiell alles erlauben oder aber man bleibt auf der sicherheitsbewußten Seite und erlaubt nur bestimmte Verbindungen. So ist es zum Beispiel durchaus üblich lediglich outgoing http zu erlauben und auch daß nur über einen Proxy.
Während TCP relativ gut zu verfolgen ist da es sich um ein verbindungsorientiertes Protokoll handelt ist dies bei UDP praktisch nicht möglich da bei diesem paketorientierten Protokoll keine Verbindungen aufgebaut werden. Es ist deshalb durchaus üblich (und sinnvoll) UDP entweder bis auf Port 53 (DNS) oder auch vollständig beidseitig zu sperren.
Auch wenn dies von einigen Firewall-Admins gemacht wird so sollte man ICMP durch den Firewall entweder überhaupt nicht oder zumindest nicht vollständig sperren. Es sollten zumindest ,,fragmentation needed`` und ,,unreachable`` zugelassen werden. Gerade ersteres wird dringend für die MTU-Discovery benötigt ohne die die Datenrate katastrophal niedrig werden kann.