Inicio Foros Sistemas operativos Linux semanage para SELinux en Linux CentOS 7 no aparece

Este debate contiene 4 respuestas, tiene 2 mensajes y lo actualizó  Varios hace 2 meses, 1 semana.

Viendo 5 publicaciones - del 1 al 5 (de un total de 5)
  • Autor
    Publicaciones
  • #2850

    Varios
    Moderador

    Hola, necesito que un servidor con Linux CentOS 7 (srvweb) pueda acceder a otro con MySQL y Linux Ubuntu Server 18 (srvmysql) por el puerto 3306. He comprobado que desactivando SELinux en el srvweb ejecutando:

    setenforce permissive

    sí que funciona, pero cuando lo activo deja de tener acceso:

    setenforce enforcing

    El caso es que quisiera configurar el SELinux para que funcione la conexión a MySQL pero sin tener que desactivarlo, pues es una buena medida de seguridad.

    He añadido estas reglas al cortafuegos del srvweb con Linux CentOS 7:

    firewall-cmd –permanent –zone=trusted –add-source=192.168.1.100/32

    firewall-cmd –permanent –zone=trusted –add-port=3306/tcp

    Donde 192.168.1.100 es la IP del servidor Linux Ubuntu Server con MySQL.

    Pero así tampoco me funciona con el SELinux activo.

    He visto que se puede configurar el SELinux usando el comando semanage pero veo que en Linux CentOS 7 no está este comando ¿se puede obtener o usar otro similar?

     

    #2851
    alonsojpd
    alonsojpd
    Jefe de claves

    Para poder usar semanage debes instalar el paquete policycoreutils-python, puedes hacerlo con el siguiente comando:

    yum install policycoreutils-python

    #2852

    Varios
    Moderador

    Muchas gracias, con ese comando ya dispongo de semanage, aunque la verdad es que no consigo saber usarlo ni logro que funcione.

    Y no quiero desactivar el SELinux que es lo que casi todos los foros indican para que funcione, es una herramienta de seguridad y supongo que no es conveniente desactivarla.

    #2853
    alonsojpd
    alonsojpd
    Jefe de claves

    Así es, no es recomendable desactivar SELinux.

    Si quieres tener acceso desde Apache a un servidor MySQL externo con SELinux puedes ejecutar estos comandos:

    setsebool -P httpd_can_network_connect 1
    setsebool -P httpd_can_network_connect_db 1

    Y no necesitarás desactivar SELinux. Asegúrate de que tienes habilitado y activo (modo enforcing) el SELinux. Puedes ver su estado con:

    sestatus

    Que te devolverá algo así:

    SELinux status: enabled
    SELinuxfs mount: /sys/fs/selinux
    SELinux root directory: /etc/selinux
    Loaded policy name: targeted
    Current mode: enforcing
    Mode from config file: enforcing
    Policy MLS status: enabled
    Policy deny_unknown status: allowed
    Max kernel policy version: 28

    Si en “Current mode” tienes permissive en lugar de enforcing es porque lo tienes desactivado, para activarlo usa el comando:

    setenforce enforcing

    Y para asegurarte de que SELinux esté activo en el próximo arranque del equipo comprueba el fichero:

    /etc/selinux/config

    que debe tener este contenido:

    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    # enforcing – SELinux security policy is enforced.
    # permissive – SELinux prints warnings instead of enforcing.
    # disabled – No SELinux policy is loaded.
    SELINUX=enforcing
    # SELINUXTYPE= can take one of three two values:
    # targeted – Targeted processes are protected,
    # minimum – Modification of targeted policy. Only selected processes are protected.
    # mls – Multi Level Security protection.
    SELINUXTYPE=targeted

    #2854

    Varios
    Moderador

    Genial, he ejecutado los comandos que me has dicho:

    setsebool -P httpd_can_network_connect 1
    setsebool -P httpd_can_network_connect_db 1

    y ya me funciona el acceso del Linux CentOS con Apache al Linux Ubuntu con MySQL y con el SELinux en enforcing.

    Muchas gracias!!

Viendo 5 publicaciones - del 1 al 5 (de un total de 5)

Debes estar registrado para responder a este debate.