Linux con seguridad mejorada, o SELinux, es un módulo del kernel para mejorar la seguridad de los sistemas operativos Linux. Integra la compatibilidad con las políticas de seguridad de control de acceso, incluido el control de acceso obligatorio (MAC), que limita las aplicaciones de los usuarios y los daemons del sistema a los archivos y recursos de la red.
En el contexto de Galera Cluster, los sistemas con SELinux pueden bloquear el servidor de la base de datos, impidiendo que se inicie o impidiendo que el nodo establezca conexiones con otros nodos en el clúster. Para evitar esto, debe configurar las políticas de SELinux para permitir que el nodo funcione.
Para crear una política de SELinux para Galera Cluster, primero debe abrir puertos y configurar SELinux en modo permisivo. Luego, después de generar varios eventos de replicación, transferencias de estado y notificaciones, cree una política a partir de los registros de esta actividad y restablezca SELinux al mode enforcing.
Configuración de SELinux en modo permisivo para MySQL/MariaDB
- Utilizando semanage (por si no sabes que es semanage y no lo tienes instalado aquí te dejo la entrada SEMANAGE COMMAND NOT FOUND EN CENTOS 7), abra los puertos de comunicación para el clúster:
# semanage port -a -t tram_port_t -p tcp 4567 # semanage port -a -t mysqld_port_t -p tcp 4568 # semanage port -a -t kerberos_port_t -p tcp 4444
- SELinux ya abre el puerto estándar de MySQL 3306. En el caso de que utilice UDP en su clúster, también necesita abrir el puerto 4567.
# semanage port -a -t mysqld_port_t -p udp 4567
- Establezca SELinux en modo permisivo para el servidor de base de datos.
# semanage permissive -a mysqld_t
SELinux ahora permite que el servidor de base de datos funcione en el servidor y ya no bloquea el nodo de la conectividad de la red con el clúster.