Diferencia entre los booleanos de SELinux "httpd_can_network_relay" y "httpd_can_network_connect"

2

Estoy en el proceso de habilitar SELinux en mi servidor CentOS 7.3. Lo tengo configurado en modo permisivo y monitoreando el registro de auditoría en busca de denegaciones. Estoy buscando implementar el conjunto mínimo de reglas que permitirá todo lo que se necesita en el servidor y nada más.

Entonces, esta mañana noté que a httpd se le habría bloqueado la conexión a la red cuando usé la función de actualización FTP de WordPress la noche anterior. audit2why recomienda configurar httpd_can_network_relay o httpd_can_network_connect .

Solo quiero asegurarme de que estoy entendiendo la diferencia entre estos dos correctamente. ¿Sería exacto decir que httpd_can_network_connect le permite a httpd realizar la conexión de red que desee, mientras que httpd_can_network_relay solo permite el puerto FTP y los puertos efímeros?

audit2why dice:

# setsebool -P httpd_can_network_connect 1
Description: Allow httpd to act as a relay

# setsebool -P httpd_can_network_relay 1
Description: Allow httpd to act as a FTP client connecting to the ftp port and ephemeral ports

Si es así, ¿cómo sería definir qué son los puertos efímeros, o simplemente permitiría algo más de 1024?

¿Hay alguna referencia más detallada sobre todo esto que me estoy perdiendo?

Actualizar

He leído mal el orden de los comentarios a los comandos, lo anterior debe leer:

Description: Allow HTTPD scripts and modules to connect to the network using TCP.
# setsebool -P httpd_can_network_connect 1

Description: Allow httpd to act as a relay
# setsebool -P httpd_can_network_relay 1
    
pregunta SuperDuperApps 25.02.2017 - 19:57
fuente

2 respuestas

4

Como dice Enigma:

  

La primera opción [httpd_can_network_relay] se usa en un proxy inverso   escenario en el que su httpd está retransmitiendo solicitudes a algún backend   httpd en nombre del cliente.

En cuanto a httpd_can_network_connect , permite que httpd realice conexiones de red, incluidos scripts y módulos.

Básicamente, la salida de audit2why está formateada de una manera extraña que hace que sea difícil decir qué descripción coincide con qué booleano, de ahí la pregunta extraña basada en eso. Actualicé la pregunta con la interpretación correcta de eso.

    
respondido por el SuperDuperApps 26.02.2017 - 04:29
fuente
1

La primera opción [ httpd_can_network_relay ] se usa en un escenario de proxy inverso en el que su httpd está retransmitiendo solicitudes a algún httpd backend en nombre del cliente.

El segundo [ httpd_can_network_connect ] permite que los módulos y scripts httpd realicen conexiones salientes a los puertos que están asociados con el servicio httpd. Para ver una lista de esos puertos, ejecute semanage port -l | grep -w http_port_t

Para hacer que su escenario funcione, necesita ejecutar setsebool -P httpd_can_network_connect 1 y luego agregar el puerto al que su httpd debería poder conectarse ejecutando este comando semanage port -a -t http_port_t -p tcp <PORT>

    
respondido por el enigma 26.02.2017 - 02:32
fuente

Lea otras preguntas en las etiquetas