Wenn kein Dienst angeboten wird, dann kann er auch nicht angesprochen also auch nicht ausgenutzt werden. Ein Port ist ja dann geöffnet, wenn ein Programm beim Betriebssystem dafür einen Netzwerkdienst angemeldet hat. Man schließt einen Port, indem man den jeweiligen Dienst beendet. Im Falle von Windows ist eine Firewall unabdingbar, weil da alle möglichen Programme Netzwerkdienste anbieten, selbst Nicht-Netz-Programme. Deshalb sagt man ja auch, dass es löchrig ist, weil so viele Gänge im System vorhanden sind, und was vorhanden ist, kann auch ausgenutzt werden. Eine Personal Firewall kann keine Ports schließen, nur den Datenverkehr kontrollieren (erlauben/verbieten/sperren), deshalb bietet sie nur bedingt Schutz, da sie unter Umständen umgangen werden kann. Bei Mac OS X sieht es anders aus, nur ganz wenige Dienste sind angemeldet und auch nur die, die wirklich benötigt werden, z.B. damit Safari oder Mail überhaupt funktionieren. Bei Bedarf können zusätzlich Dienste in Systemeinstellungen/Sharing aktiviert werden, die dann entsprechende Ports öffnen, und natürlich auch wieder schließen, wenn sie vom Benutzer wieder beendet/deaktiviert werden.
Laufende Dienste sind aber nicht unbedingt ein Problem, wenn es nicht gerade zu viele sind, also wenn es nur einige wenige sind, die wirklich benötigt werden. Problem ist nur, wenn ein Programm, welches einen Netzwerkdienst anbietet, wie z.B. der Webbrowser, eine offene Sicherheitslücke hat, dann kann diese ausgenutzt werden um in das System einzudringen. Sicherheitslücken können nicht zu 100% ausgeschlossen werden. Deshalb gilt, je mehr laufende Dienste, desto größer die Angriffsfläche und damit das Risiko. Eine gute Router-Firewall bietet schon einen recht umfassenden Schutz gegen viele Angriffs-Arten, und auch die OS X interne Firewall sollte mindestens dann aktiviert werden, wenn man das Haus (und damit den Schutz der Router-Firewall) verlässt, so bleibt dennoch ein Restrisiko. Die Firewall kontrolliert zwar den Datenfluss aller aktivierten Dienste/Ports und lässt z.B. beim Webbrowser nur aus-gehende bzw. nur dann ein-gehende Daten-ströme, wenn diese angefordert sind.
Problem beim Webbrowser ist jedoch, dass dieser mit besuchten Webseiten kommuniziert um diese zu öffnen, also lässt die Firewall von diesen Webseiten logischerweise auch ein-gehende Datenströme durch. Auf den ersten Blick kein Problem, mit dem Webbrowser kann sich gerne jeder unterhalten - hat dieser jedoch eine kritische Sicherheitslücke, dann hat man ein Problem. Das Gute ist jedoch, dass es im Internet mehrere Milliarden Webseiten gibt, und man muss schon Pech haben (oder man begibt sich in bestimmte Themen-Bereiche des Internets), um auf einer bösartige Webseite zu landen, die ausgerechnet eine zu dem Zeitpunkt offene Sicherheitslücke des Webbrowsers den wir einsetzen ausnützt. Wer es aber generell sicherer haben will, kann in OS X den Safari im sog. Sandkasten laufen lassen.