4 votos

Firewall de MacOS: El programa está en gris, no se puede añadir a las opciones del cortafuegos

En MacOS Monterey (12.0.1), estoy ejecutando Python 2.7 desde un entorno virtual Anaconda. Cada vez que ejecuto el Python script, se me pregunta si quiero aceptar conexiones de red entrantes:

enter image description here

He intentado varias veces "Denegar" o "Permitir" esto (que requiere que introduzca el nombre de usuario y la contraseña de un usuario administrador). Sin embargo, cada vez que ejecuto el script se me presenta la misma pregunta.

Cuando voy a Preferencias del Sistema > Seguridad y Privacidad > Firewall > Opciones de Firewall y pulse + para añadir una aplicación manualmente, no puedo seleccionar Python 2.7 en el selector de archivos (está en gris, como se puede ver en la captura de pantalla de abajo):

enter image description here

Según Obtener información Mi usuario tiene privilegios de lectura y escritura para este archivo, lo que también parece ser cierto en la Terminal para el archivo y el directorio en el que se encuentra:

-rwxrwxr-x@  1  my_user  staff   8464 Oct 30 12:21 python2.7
drwxr-xr-x@  81 my_user  staff   2592 Nov 19 10:10 bin

¿Cómo puedo evitar que esta molesta ventana emergente vuelva a aparecer?

5voto

Deecee Puntos 39

Puede intentar controlar el cortafuegos a través de la interfaz del Terminal del cortafuegos de aplicaciones, socketfilterfw .

Paso a paso

socketfilterfw se encuentra en /usr/libexec/ApplicationFirewall Así que primero ve allí en la Terminal:

cd /usr/libexec/ApplicationFirewall

A continuación, puede enumerar las reglas existentes con:

./socketfilterfw --listapps

Puede añadir una aplicación con el siguiente comando:

sudo ./socketfilterfw --add <full path to application executable>

El terminal debe imprimir Incoming connection to the application is permitted cuando se tiene éxito.

Ejemplo: permitir python en una instalación de Anaconda

Parece que ha instalado python a través de Anaconda y están tratando de dejarlo pasar por el firewall.
En este ejemplo recorro todos los pasos en el Terminal.
Asumo que estás trabajando en el base entorno, si no es así, hay que cambiar ese nombre en los primeros pasos.

conda activate base
python_loc=$(which python)
cd /usr/libexec/ApplicationFirewall
sudo ./socketfilterfw --add $python_loc
sudo ./socketfilterfw --listapps

El último paso debe mostrar la recién añadida python aplicación en la lista:

ALF: total number of apps = 8 

...

8 :  /Users/username/opt/anaconda3/bin/python3.9 
     ( Allow incoming connections ) 

Tenga en cuenta que python suele ser un enlace simbólico a otro binario (por ejemplo python3.9 o python2.7 ). Durante la creación está bien referirse al enlace simbólico, pero cuando se quiere eliminar la regla de nuevo (con ./socketfilterfw --remove ) es necesario proporcionar la ruta real que aparece en la lista de socketfilterfw ( /Users/username/opt/anaconda3/bin/python3.9 en este caso), no el enlace simbólico.

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