Apple application firewall está diseñado para tener muchas excepciones a trabajar con sus servicios, por lo que el sistema de preferencias, tendrá una gran cantidad de clics. Voy a sugerir una más de la línea de comandos manera de llevar a cabo este gran cambio en el puerto de acceso para la incorporada en el cortafuegos de pf (sin necesidad de software adicional).
Aquí es un simple conjunto de reglas que se bloquea todo el tráfico excepto para los puertos 80 y 443 (http y https). Yo no te aconsejo guardarlo en su /etc/pf.conf
en el caso de que las cosas van hacia un lado, un simple reinicio (si usted tiene pf
conjunto de cargar en el arranque) va a arreglar las cosas. He utilizado el nombre de archivo ~/pf_rules01.conf
, se puede llamar a lo que te gusta.
Crear el archivo de reglas
# Set the interface to be used
if="en0"
# Default Deny Policy
block all
# Skip the loop back interface
set skip on lo
# Set http(80) & https (443) ports #
web_ports = "{80 443}"
# Pass in only web traffic
pass in quick on $if proto tcp to any port $web_ports keep state
pass out quick on $if proto tcp to any port $web_ports keep state
El archivo de prueba
Antes de habilitar el nuevo conjunto de reglas (tenga en cuenta que usted específicamente pidió que todos los protocolos a ser bloqueado excepto 443), puede comprobar si hay errores de sintaxis con el comando:
$ sudo pfctl -n -f /path/to/rulefile
- El
-n
dice pfctl
a sólo analizar las reglas
- El
-f
especifica qué archivo para la carga; el valor por defecto es /etc/pf.conf
Habilitar pf
Si todo está bien, habilitar el conjunto de reglas con el -e
bandera
$ sudo pfctl -e -f /path/to/rulefile
Las pruebas de...
Desde otra máquina, ejecute el comando telnet <machinename || IPaddress> 80
de los host que ejecuta el servidor web. Si todo funciona, usted recibirá algo similar a la siguiente:
Trying 192.168.1.123...
Connected to testmachine.home.
Escape character is '^]'.
El éxito! Usted puede también intenta apuntar su navegador a la dirección y, si recibe una respuesta del servidor, funciona.
Advertencias
Esto bloquea todo el tráfico con la excepción de los 80 y 443 (http y https). Si usted está SSHing en este cuadro, se pierde la conexión, porque no se que pasa SSH (puerto 22) o no (tal vez pase 22 así?).
en0
es mi adaptador de red (por cable). La suya puede ser diferente. Para obtener un listado de sus interfaces de red, utilice el ifconfig
comando. Se encuentran generalmente en la parte superior de la salida de partida con en0
, en1
etc.
-
Esto fue probado en un servidor FreeBSD ejecución dhttpd
(no de Apache). Usted no puede probar a menos que tenga algo que escuchar y responder en los puertos usted está interesado en.
Yo normalmente no ejecutar ningún tipo de servidor web en mi Mac, pero en VMs
por el bien de la portabilidad, la seguridad y la estabilidad. Sin embargo, pf
está basado en BSD y las reglas y los comandos son idénticos.
Si desea desactivar esta función sólo de emitir el comando sudo pfctl -d
y se desactivará la pf
firewall.