MacOSX cuenta con un potente firewall llamado ipfw. Aunque existe un interfaz gráfico para manejarlo, llamado WaterRoof, lo más normal es que queramos usarlo desde el terminal.
En este ejemplo voy a crear una regla que bloquee los accesos externos a nuestro puerto 80 y después voy a eliminarla.
Para poder ver las reglas que tenemos aplicadas en nuestro equipo podemos llamar al comando
sudo ipfw list
Si quisieramos crear una regla nueva que denegase todo tráfico externo entrante, dirigido a un puerto concreto de nuestro equipo (por ejemplo el 80, usado por apache u otro servidor web corriendo en nuestro equipo) usaríamos el comando:
sudo ipfw add 02001 deny tcp from any to any 80 in
Explico lo que hemos hecho:
- Con sudo, adquiero los privilegios de root para manejar el firewall
- Llamo al comando ipfw, que controla el firewall
- Con add, le indico que quiero añadir una regla nueva
- 02001 es un número de regla que puede ser cualquiera que no esté siendo usado en la lista de reglas aplicadas. Hay que tener en cuenta que las reglas se procesan de forma secuencial y si ponemos una regla de denegación para un grupo de ips antes de permitir a una en concreto, ésta no tendra acceso (por poner un ejemplo).
- Deny le indica que la regla es de denegación (podría ser allow para permitir o log para logear el acceso, por ejemplo)
- tcp le indica que queremos que se aplique al tráfico que se de tipo tcp
- From any to any 80 in le indica que se aplique al tráfico que venga de cualquier ip o dirección externa a cualquier ip o dirección interna de nuestro equipo a traves del puerto 80 (http)
Volvemos a ver las reglas aplicadas a nuestro equipo
sudo ipfw list
Vemos como se ha creado la nueva regla. Si tenemos el servidor http de MacOSX activado, podemos comprobar que accedemos a nuestra web en local pero no desde otros equipos.
Para eliminar la regla creada simplemente haremos
sudo ipfw delete 02001
Éste ejemplo es de lo más sencillo que podemos hacer con ipfw, podéis leer un artículo más extenso de Peter Hickman para haceros una idea de lo que se puede hacer con éste firewall.