Cómo enumerar todos los contextos de SELinux

Podemos acceder a los controles de seguridad que Security Enhanced Linux (SE), un módulo de seguridad del kernel de Linux, puede soportar en el sistema operativo Linux. Podría ser utilizado por las funciones de SELinux para dar los contextos de seguridad a los procesos que se ejecutan en los objetos del sistema y los archivos que existen en los directorios.

Cómo enumerar los contextos de SELinux

Cada operación y objeto se etiqueta de manera que represente los metadatos de protección contra amenazas que ejecuta SELinux en el sistema. En este artículo, veremos las distintas técnicas para enumerar cada contexto de SELinux en nuestro sistema operativo Linux. Discutiremos las formas y los comandos para la utilización de la lista de elementos para todo el sistema junto con las herramientas de la línea de comandos y las opciones que realiza la interfaz gráfica de usuario.

Al comprender la configuración del contexto de SELinux existente, podemos resolver los problemas de SELinux y modificar fácilmente los contextos de SELinux de ciertos recursos, lo que es utilizado por algunos de los usos para enumerar los contextos de SELinux. Podemos enumerar rápidamente todos los contextos de SELinux simplemente en un sistema Linux utilizando las técnicas descritas en este artículo. Podemos controlar la seguridad de nuestro sistema operativo utilizando esta información. El método “semanage” se utiliza si deseamos ver todos los contextos de los procesos y documentos de SELinux a la vez.

En Linux, la política de seguridad de SELinux establece sin ambigüedad la identidad de cualquier usuario que parezca tener acceso a un determinado archivo o proceso. Los usuarios de Linux, por lo tanto, invariablemente abordan su propia identidad.

Echemos un vistazo al funcionamiento de los comandos que se utilizan para enumerar el contexto. Para este propósito, necesitamos abrir la terminal de Linux y luego agregar el indicador «-Z» junto con el comando «ls». El comando «ls» se utiliza para enumerar cualquier dato. Funciona mostrando el contenido del directorio junto con el contexto de SELinux para cada elemento. El comando se da de la siguiente manera:

Linux@linux:~$ ls – Z

 
Luego de completar el comando, presionamos enter. Muestra el siguiente resultado como una lista simple de contexto que se utiliza en el directorio actual:

Linux@linux:~$ ? datos.txt? Escritorio ? ¿Descargas? filebash.sh? mh.txt

 
También podemos seleccionar cualquier directorio diferente pasando la ubicación de su ruta como argumento con el comando anterior junto con la barra inclinada «/» y «etc» de la siguiente manera:

Linux@linux:~$ ls -Z / etc.

 
Después de completar el comando, muestra todos los procesos en ejecución del directorio como una lista secuencial con el contexto del archivo.

Linux@linux:~$ ? acpi? lsb-liberación
? agregarusuario.conf ? ltrace.conf 
? alsa? ID de máquina
? alternativas? magia
? anacrontab? magic.mine
? apg.conf? ¿ tapa de correo
? apm                                        ? mailcap.pedido
? ¿vestir? manpath.config
? apparmor.d ? mimo.tipos                                                                
? ¿aportar? mke2fs.conf
? appstream.conf? ModemManager
? apto? modprobe.d
? avahi? módulos
? bash.bashrc? módulos-load.d
? bash_completion? mtab
? bash_completion.d ? mtools.conf
? bindresvport.lista negra? mysql
? binfmt.d? nanorc
? Bluetooth ? plan de red
? belapi.key ? red

 
El comando “ls -Z” también se puede utilizar para una inspección rápida de los contextos de archivos y directorios de SELinux en cualquier directorio actual en ejecución. Es especialmente útil para diagnosticar los problemas de SELinux para que sea sencillo detectar los archivos con contextos inesperados. La lista mejorada de seguridad en ejecución avanza y se muestra más junto con el proceso que incluye algunos procesos de Bash, Bluetooth, red, aplicación, legal y algunos más se proporcionan a continuación:

Linux@linux:~$ ? init.d? sistema

? initramfs-herramientas? terminfo
? entradarc? térmico
? insserve.conf.d? pájaro trueno
? iproute2? zona horaria
? asunto ? tmpfiles.d
? problema.net? Ubuntu-ventaja
? Núcleo ? ucf.conf
? Kernel-img.conf? udev
? Kerneloops.conf? udidiscos 2
? ldap? ufw
? ld.so.conf ? administrador de actualizaciones
? ld.so.conf.d ? actualizar-motd.d
? legal ? notificador de actualización
? libao.conf ? Upoder
? libaudit.conf? usb_modeswitch.d

 
Ahora, utilizamos el comando «stat» que podría usarse para mostrar la información extensa sobre el archivo y el contexto de SELinux. Podría operarse imprimiendo el archivo de metadatos y las propiedades que incluyen sus marcas de tiempo y tamaño. Aplicamos el comando «stat» en el archivo de texto con el nombre «file.txt» que está presente en el directorio del escritorio para ver su contexto SElinux. El siguiente es el comando para el «archivo.txt» en el directorio del escritorio:

Linux@linux:~/Escritorio$ archivo stat.txt

 
Cuando procedemos con el comando anterior en la terminal, muestra el contexto del archivo junto con el nombre, el tamaño y el dispositivo en la pantalla de salida, como podemos ver en la siguiente forma textual:

Linux@linux:~$ Archivo: archivo.txt
                             Tamaño: 83         Bloques: 8         Bloque I0: 4096 archivo         normal
Dispositivo: 805h / 2053 Incode         : 657033         Enlaces: 1    
Acceso: ( 0664 / -rw-rw-r- – ) Uid: ( 1002 /         Linux )    Gid:   (   1002 /     Linux )
Acceso: 2022 – 12 – 24  14 :16 : 25.060381731   +0500
Modificar: 2022 – 12 – 24  14 : 16 : 14.224258986   +0500
Cambiar: 2022 – 12 – 24  14 : 16 : 14.272259527   +0500

 
Ahora, implementamos el comando «buscar» que también podría usarse para el contexto de SELinux para buscar los archivos y directorios que cumplen con los criterios dados de nombre, tamaño y permisos. Este comando tiene tres roles intensivos que incluyen «ruta», «opción» y «expresión». “Ruta” define dónde queremos buscar los archivos. Mientras que «opciones» modifica el comportamiento del comando. Y «expresión» busca los criterios para el contexto de SELinux. Ahora, ejecutemos el comando de búsqueda en el sistema operativo Linux. Agregamos el siguiente comando en la terminal:

Linux@linux:~/Desktop$ buscar / etc.

 
Este comando busca y luego muestra todos los archivos que están presentes en el directorio «etc», ya que no mencionamos ningún parámetro específico para él. Luego, este comando muestra el siguiente resultado en la pantalla del terminal de Linux con archivos y procesos que están presentes y lo muestra en forma de lista.

/ etc
/ etc / rpc
/ etc / nsswitch.conf
/ etc / subgid
/ etc / alternativas
/ etc / alternativas / my.cnf
/ etc / alternativas / x-window-manager.1.gz
/ etc / alternativas / iptables-save
/ etc / alternativas / x-session-manager.1.gz
/ etc / alternativas / pasteurizar
/etc / alternativas / ebtables
/ etc / alternativas / pinentry
/ etc / alternativas / ex
/ etc / alternativas / gstreamer-codec-install
/ etc / alternativas / netcat.1.gz
/ etc / alternativas / escribir
/ etc / alternativas / awk. 1.gz
/ etc / alternativas / gnome-www-navegador
/etc / alternativas / editor
/ etc / alternativas / lzma.1.gz
/ etc / alternativas / view.ja.1.gz
/ etc / alternativas / nawk

 
Ahora, hay una extensión más para que el comando «buscar» busque junto con el usuario para obtener la lista de contexto de SELinux. El comando sigue siendo el mismo que el anterior, pero incluye al usuario con el comando «buscar» en lugar de «etc» con una barra inclinada. Para todos los archivos que son propiedad del usuario de nuestro sistema «Linux», utilizamos el siguiente comando:

Linux@linux:~$ buscar -usuario linux

 
Después de completar este comando, cuando presionamos el botón Intro, muestra la lista de todos los procesos y archivos en la terminal que funciona en este sistema operativo de usuario «Linux», como se muestra en la siguiente pantalla de salida:

Linux@linux:~$ .
. / .gnupg
. / .gnup / trustdb.gpg
. / .gnup / claves-privadas-v1.d
. / .gnupg / pubring.kbx
. / .config
. /.config/gnome-initial-setup-done
. _ _ _ /.config/user-dirs.dirs
. _ _ _ / .config / encantar
. /.config/encantar/en_US.exc
. _ _ _ _ _ / .config /encantar / en_US.dic
. / .config / user-dirs.locale
. /.config/goa-1.0
. _ _ _ _ / .config / notificador de actualización
. /.config/dconf
. _ _ _ /.config/dconf/usuario
. _ _ _ _ _ / .config / pulso
. / .config / pulso / 8a79842bae5e4368a17907e5ab8524dd-fuente-predeterminada

 

Conclusión

Discutimos el procedimiento o concepto de usar los comandos básicos de Linux para listar el contexto de SELinux. Usamos el comando «ls -Z» para la lista de archivos y directorios para este propósito. Usamos el comando «stat» para el segundo tipo de comando de listado para encontrar el sistema de archivos y los archivos que estaban presentes en las carpetas de trabajo, así como sus tamaños y permisos. El último comando que usamos es «buscar». Se utiliza para buscar y encontrar los archivos que se requieren para la condición particular.