LinuxParty
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:
- 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.
- 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.
-
Seguridad
- Drones, vigilancia y reconocimiento facial: una startup llamada 'Sauron' presenta un sistema de seguridad para el hogar de estilo militar
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- ¿Olvidó su contraseña? Cinco razones por las que necesita un administrador de contraseñas
- Cómo limitar las conexiones SSH (puerto TCP 22) con ufw en Ubuntu Linux
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS