3 votos

El PF estableció la condición de no igualar una lista de puertos para MacOS

Me gustaría establecer una condición para que una regla de cortafuegos no se aplique a una lista de puertos, algo parecido a esto:

 table <my_table> persist file "/etc/pf.anchors/entries"
 set skip on lo
 block out quick proto { tcp, udp } from any to ! <my_table> port != { 66 80 } 

Esto da un error de sintaxis cuando se ejecuta 'sudo pfctl -vnf /etc/pf.conf'.

Si pongo lo siguiente, funciona (sólo especifica un puerto).

 block out quick proto { tcp, udp } from any to ! <my_table> port != 80

¿Cómo puedo especificar una lista de puertos con el operador '!='?

2voto

Prado Puntos 261

Puedes hacer la lógica del comando inverso.

Primero bloquea todo, luego abre sólo los que quieras:

El resultado es el mismo que intentaste al negar todos excepto los elegidos para ser abiertos. :)

set skip on lo
port_pass = "{ 80 66 53 22 }"
block all
pass out on en0 proto { tcp, udp } to any port $port_pass keep state

2voto

GreekFire Puntos 26

Lo descubrí:

Es negando cada puerto individual, dentro del delimitador { }

 block out quick proto { tcp, udp } from any to ! <my_table> port { != 66, != 80 } 

Encontré la sección de la "lista de opciones" para especificar el puerto aquí: https://man.openbsd.org/pf.conf.5

Esto muestra cómo aplicar la lógica de añadir más puertos

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