LinuxParty

Ratio:  / 0
MaloBueno 

SELinux es una de las funciones de seguridad más potentes de su sistema Fedora. Es como una llave de mano para sus servicios informáticos, permitiéndoles solamente acceder a los datos aprobados. SELinux ha superado su reputación en los primeros días de dificultad. Ahora tiene una política sintonizable para las aplicaciones más populares, y proporciona seguridad y confianza adicionales. Sin embargo, a veces ocurren errores, y este artículo le ayudará a lidiar con ellos.

Suposiciones

Este artículo supone dos cosas:

  1. Conoce los fundamentos de SELinux. Si usted no ha aprendido los fundamentos de SELinux, ahora es un buen momento para hacerlo. Uno de los mejores primers es este video de Thomas Cameron . Tómese el tiempo para verlo y entenderlo.
  2. Estás utilizando SELinux en el modo de hacer cumplir. El modo de aplicación es la forma normal y esperada de ejecutar Fedora. Si ha inhabilitado SELinux, deberá habilitarlo. Edite el archivo /etc/sysconfig/selinux para establecer SELINUX = permissive. El uso del modo permisivo asegura primero que cualquier problema radical pueda ser fijado automáticamente por los siguientes comandos. A continuación, haga lo siguiente:
    sudo fixfiles -F onboot
    reboot

    El proceso de arranque puede tardar más de lo normal, ya que SELinux cinoryeba los archivos creados mientras estaba deshabilitado. Esto puede tomar un tiempo en sistemas de archivos muy grandes, así que sea paciente.

No se sorprenda si comienza a ver errores después de volver a marcar, si ha estado funcionando en modo deshabilitado durante un tiempo. Ejecutar en modo desactivado es como papel tapiz sobre una fuga. Cuando usted quita el papel pintado, usted es probable que encuentre el daño provocado por el agua. De la misma manera, si has estado corriendo sin SELinux habilitado, probablemente has creado más problemas que ahora necesitan ser resueltos.

Una vez que la máquina ha reiniciado, puede cambiar al modo de imposición :

sudo setenforce 1

¿Es (el responsable) realmente SELinux?

Una buena manera de saber si SELinux es el responsable de un error es establecer el modo permisivo. Esto significa que SELinux registra el error, pero todavía permite la actividad. Para ello, ejecute este comando:

sudo setenforce 0

A continuación, intente el proceso de nuevo, en otro terminal si es necesario. Si ahora tiene éxito, la política SELinux es la culpable. Para encontrar errores en los últimos 10 minutos, utilice el comando ausearch :

sudo ausearch -m AVC,USER_AVC,SELINUX_ERR -ts recent

Si el proceso sigue fallando mientras está en modo permisivo, es probable que el problema no sea la política de SELinux. En ese caso, asegúrese de ejecutar sudo setenforce 1 para volver al modo de imposición. Recuerde que esta configuración es global , por lo que no quiere dejar de aplicar la política en todas partes!

Identificar el problema

Generalmente, puede identificar los errores SELinux a través del mensaje AVC. Uno de los parámetros del mensaje AVC es el comando que generó el mensaje. Por ejemplo, puede ver comm=”/usr/sbin/httpd” en un mensaje sobre un error SELinux generado por el servidor web Apache.

El problema también le dirá el contexto de origen ( scontext ) de la parte actuante de su sistema, y ​​el contexto de destino ( tcontext ) de la cosa en la que trató de actuar. A menudo, pero no siempre, el origen es un binario y el objetivo de un archivo. Para entender mejor el error, puede utilizar el solucionador de problemas de SELinux. Puede instalarlo desde la herramienta Software en Fedora Workstation o utilizar sudo con dnf en un terminal:

sudo dnf install setroubleshoot

Para iniciar el programa, utilice la vista general en Fedora Workstation para localizar el solucionador de problemas SELinux o ejecutar desde un terminal:

 sealert 

Puede encontrar alertas recientes en el navegador que aparece:

En esta pantalla, por ejemplo, puede listar todas las alertas presentes en su sistema para solucionarlas sistemáticamente.

Solucionar el problema

Cuando selecciona Solución de problemas , verá varias opciones para el error.

En este caso, el usuario creó un archivo index.html en su directorio de inicio y utilizó el comando mv para ponerlo en /var/www/html/ para ser servido por el servidor web Apache. Después de señalar un navegador web en http://localhost/index.html , se produjo este error.

Observe cómo cada opción le da un conjunto específico de comandos que puede ejecutar para solucionar el problema. En este caso, hay un switch booleano que puede habilitar para permitir la actividad en el futuro, incluso mientras que SELinux está aplicando la política.

Sin embargo, el hecho de que exista un booleano no significa que debas habilitarlo sin entenderlo. En este caso, si activa el booleano, el servidor web Apache podrá leer cualquier contenido de usuario cuyos permisos de archivo lo permitan. Por lo tanto, en este caso, en su lugar podríamos preguntar, "¿Por qué el archivo tiene ese contexto?" En este caso es porque el usuario movió el archivo. Esto significa que el archivo llevaba su antiguo contexto a su nueva ubicación, en lugar de recibir un nuevo contexto predeterminado que permite al servidor web leer contenido en /var/www/html

En este caso, la mejor idea es simplemente restaurar el contexto correcto del archivo:

sudo restorecon -rv /var/www/html/index.html
Relabeled /var/www/html/index.html from unconfined_u:object_r:user_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0

Una nota sobre los booleanos de SELinux

Hay muchos booleanos disponibles. Cada uno le permite establecer una amplia clase de acceso que se puede esperar para que una aplicación funcione. Para ver toda la lista y su configuración actual, ejecute este comando:

 semanage boolean -l 

Si instala el paquete selinux-policy-devel primero, también puede ver una breve descripción de cada booleano cuando ejecuta el comando anterior:

SELinux boolean State Default Description

abrt_anon_write (off , off) Allow ABRT to modify public files used for public file transfer services.
abrt_handle_event (off , off) Determine whether ABRT can run in the abrt_handle_event_t domain to handle ABRT event scripts.
abrt_upload_watch_anon_write (on , on) Determine whether abrt-handle-upload can modify public files used for public file transfer services in /var/spool/abrt-upload/.
antivirus_can_scan_system (off , off) Allow antivirus programs to read non security files on a system

Para establecer un booleano temporalmente, ejecute este comando, donde boolname es el nombre del valor booleano y el valor está en o 1 o desactivado o 0.

 setsebool boolname = valor 

Para establecerlo permanentemente, agregue el -P cambiar:

 setsebool -P boolname = valor 

Conclusión

Hay otras funciones que puede realizar con el solucionador de problemas SELinux, como la creación de un módulo de directiva específico para su propio sistema. Es posible que esta guía de SELinux sea útil para comprender esas funciones.

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Encuesta de LinuxParty

Crees que la robotización traerá acarreada...

Que la gente abandonará las ciudades para vivir en los pueblos. - 16.4%
Que en los pueblos la robotización se frenará por los humanos - 13.1%
Que a la gente no les gustarán sus vecinos robots. - 3.3%
Que los negocios pequeños sufrirán la carencia de clientes humanos. - 9.8%
Que los humanos achacarán su desgracia a los robots y pasará algo grave. - 19.7%
Que los robots se levantarán contra los humanos y nos exterminarán. - 37.7%

Total votes: 61
The voting for this poll has ended on: 30 Sep 2017 - 00:00

Donar a LinuxParty

La mejor forma de darnos las gracias, es hacer una donación.


Tutorial de Linux

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política