TL;DR
Protege contra la necesidad de configurar manualmente los servicios para que solo escuchen en localhost, ya que tiene que permitirles manualmente la conectividad de la red, y aumenta el esfuerzo que debe realizar un atacante para volver a reconocer su buzón. Esto significa que es una herramienta efectiva tanto contra atacantes como con una configuración deficiente. Sí, deberías ejecutar un firewall.
Detail
Los puertos tienen 2 estados principales:
- Abrir (el servicio está escuchando)
- Cerrado (No hay nada escuchando)
Parece estar familiarizado con los dos estados: los puertos están predeterminados en "cerrado", cambiando a "abierto" si hay un servicio de escucha. Es muy rápido enumerar tanto los puertos abiertos como los cerrados: el sistema operativo en realidad enviará una respuesta que dice "aquí hay un servicio" (el puerto está abierto), o uno que dice "no hay servicio aquí" (el puerto está cerrado).
Si usa un firewall, proporciona la opción de filtrar puertos. Para los puertos filtrados, el sistema operativo no responde en absoluto. Esto significa que un atacante debe invertir más tiempo para determinar los estados del puerto, ya que no tienen forma de saber si la computadora no envió ninguna respuesta o si la respuesta se perdió en el tránsito.
Además, si está ejecutando un cortafuegos, debe protegerse contra la exposición accidental de servicios adicionales a Internet.
He incluido un escaneado de muestra de mi escritorio con mi firewall desactivado (preste especial atención a la cantidad de puertos descubiertos y al tiempo que duró el escaneo):
$ nmap 192.168.1.26
Starting Nmap 6.40 ( http://nmap.org ) at 2015-01-24 21:41 EST
Nmap scan report for TehPwner (192.168.1.26)
Host is up (0.00017s latency).
Not shown: 987 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
902/tcp open iss-realsecure
912/tcp open apex-mesh
2869/tcp open icslap
5357/tcp open wsdapi
8081/tcp open blackice-icecap
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49163/tcp open unknown
49176/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 2.30 seconds
Ahora he habilitado mi firewall:
$ nmap 192.168.1.26
Starting Nmap 6.40 ( http://nmap.org ) at 2015-01-24 21:42 EST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.03 seconds
Una vez más, saltándose la sonda de ping:
$ nmap 192.168.1.26 -Pn
Starting Nmap 6.40 ( http://nmap.org ) at 2015-01-24 21:42 EST
Nmap scan report for TehPwner (192.168.1.26)
Host is up (0.00090s latency).
Not shown: 996 filtered ports
PORT STATE SERVICE
902/tcp open iss-realsecure
912/tcp open apex-mesh
2869/tcp open icslap
5357/tcp open wsdapi
Nmap done: 1 IP address (1 host up) scanned in 49.29 seconds