3 votos

¿Cómo puedo bloquear todos los puertos excepto 443 en macOS Catalina?

Me doy cuenta de que esto romperá una gran cantidad de funcionalidades integradas en macOS a medida que se envía, pero por razones de prueba quiero bloquear temporalmente todos los puertos entrantes / salientes de tcp en macOS Catalina, excepto 443.

¿Cómo puedo hacer esto de una manera que sea fácil de activar / desactivar una vez que está configurado?

9voto

Douglas Puntos 10417

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

  1. 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í?).

  2. 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.

  3. 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.

  4. Si desea desactivar esta función sólo de emitir el comando sudo pfctl -d y se desactivará la pf firewall.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X