¿Podría discourse-setup agregar contextos para sistemas SELinux? Esto mejoraría enormemente la seguridad para los usuarios de RHEL (CentOS, Fedora, etc.).
La mejor manera de ganar tracción aquí es hacer un PR de prueba de concepto.
No puedo encontrar ningún discourse-setup en la raíz del repositorio de origen. ¿No es un script sh?
Edición: Lo encontré. Estaba buscando en discourse/discourse en lugar de discourse/discourse-docker.
Entiendo que muchas personas requieren la seguridad mejorada que ofrece SELinux y todo lo que ello conlleva.
Uno de los propósitos principales y beneficios sólidos de las arquitecturas contenerizadas (como Docker) es que las aplicaciones contenerizadas pueden ejecutarse en cualquier arquitectura subyacente, siempre que el sistema de gestión de contenedores (en este caso, Docker para Discourse) funcione correctamente.
Mi opinión, por lo que vale, es que un equipo de desarrollo de aplicaciones no debería caer en la trampa de dar soporte a cada distribución de sistema operativo solicitada con una instalación de Docker no estándar. Eso va en contra de uno de los propósitos principales de ejecutar una arquitectura contenerizada.
A mi juicio, es más mantenible que los administradores de sistemas aseguren que sus instalaciones de Docker funcionen de manera estándar y, si su configuración de Docker no coincide con el “estándar de Discourse”, deberían agregar enlaces simbólicos a binarios, archivos y directorios para que coincidan con las configuraciones estándar principales de Docker.
Las distribuciones de sistemas operativos pueden y de hecho cambian en cualquier momento, y esto incluye la configuración de las aplicaciones instaladas. Si un equipo de aplicaciones (como Discourse, por ejemplo) comienza a expandir sus archivos de configuración para adaptarse a diversas configuraciones de Docker, tendrán que rastrear cada distribución de sistema operativo en busca de cambios con cada nueva versión del sistema operativo.
Para nosotros, si fuéramos a ejecutar Discourse en SELinux (por cierto, nosotros ejecutamos en Ubuntu), muy probablemente comenzaríamos escribiendo un script para crear los enlaces simbólicos necesarios para que SELinux coincida con los archivos de Docker requeridos, tal como están instalados y configurados en la distribución estándar compatible con Discourse.
Hice una verificación rápida de algunos proveedores de VPS para ti y pensé en hacerlo (crear el script para ti) si pudiera configurar una distribución con SELinux en un VPS económico. Desafortunadamente, los proveedores de VPS que uso (Linode y Digital Ocean) no ofrecen SELinux, así que abandoné la idea.
¿Conoces algún proveedor de “VPS económico y fiable” donde pueda configurar SELinux rápidamente?
Como Discourse recomienda Ubuntu, ¿estás argumentando a favor del soporte de AppArmor antes de dedicar tiempo a SELinux?
Gracias. Ahora lo recuerdo. Gracias por aclararlo.
Security-Enhanced Linux ( SELinux ) es un módulo de seguridad del kernel de Linux que proporciona un mecanismo para respaldar políticas de seguridad de control de acceso, incluidos los controles de acceso obligatorio (MAC).
Módulo de seguridad del kernel de Linux módulo de seguridad
SELinux representa uno de varios enfoques posibles para el problema de restringir las acciones que puede realizar el software instalado. Otra alternativa popular se llama AppArmor y está disponible en SUSE Linux Enterprise Server (SLES), openSUSE y plataformas basadas en Debian. AppArmor se desarrolló como un componente de la ahora extinta plataforma Immunix Linux. Dado que AppArmor y SELinux difieren radicalmente entre sí, constituyen alternativas distintas para el control del software. Mientras que SELinux reinventa ciertos conceptos para proporcionar acceso a un conjunto más expresivo de opciones de políticas, AppArmor se diseñó para ser simple al extender la misma semántica administrativa utilizada para el DAC hasta el nivel de control de acceso obligatorio.
Honestamente, olvidé que SELinux era un módulo y no una distribución. Fue un error mío.
Quizás @GalacticLion7, si necesitas este nivel de control de acceso, ¿has considerado usar SELinux en Ubuntu?
Por ejemplo, mira esto:
https://www.linode.com/docs/quick-answers/linux/how-to-install-selinux-on-ubuntu-18-04/
Parece que tienes una gran variedad de opciones para elegir, @GalacticLion7
Tal vez sería una buena idea elegir una diseñada o que funcione con Ubuntu (ya que Discourse “oficialmente” soporta Ubuntu), ¿no crees?
@neounix Pero como ya dije, no importa qué distribución. Solo es para sistemas que tienen SELinux, ya sea integrado o instalado manualmente.
Entonces, mi sugerencia es que uses Ubuntu (soportado oficialmente por Discourse), instales SELinux y hagas una prueba de concepto. Cuando funcione, considera enviar un PR y abrir una discusión en el foro de desarrollo al respecto.
¿Qué te parece?