Home

Linux con Seguridad Mejorada - Guía del Usuario

image

Contents

1. 4 1 Procesos Confinados Almost every service that listens on a network is confined in Fedora Also most processes that run as the Linux root user and perform tasks for users such as the passwd application are confined When a process is confined it runs in its own domain such as the httpd process running in the httpd_t domain If a confined process is compromised by an attacker depending on SELinux policy configuration an attacker s access to resources and the possible damage they can do is limited The following example demonstrates how SELinux prevents the Apache HTTP Server httpd from reading files that are not correctly labeled such as files intended for use by Samba This is an example and should not be used in production It assumes that the httpd wget setroubleshoot server dbus and audit packages are installed that the SELinux targeted policy is used and that SELinux is running in enforcing mode 1 Ejecute el comando sestatus para confirmar que SELinux est activado se ejecuta en modo obligatorio y que la pol tica destinada se est usando usr sbin sestatus SELinux status enabled SELinuxfs mount selinux Current mode enforcing Mode from config file enforcing Policy version 24 Policy from config file targeted SELinux status enabled is returned when SELinux is enabled Current mode enforcing is returned when SELinux is running in enforcing mode Policy from config file targeted is returned when the
2. 1 usr sbin semanage user a S targeted P user R unconfined_r system_r r s0 s0 c0 c1023 unconfined_u 2 usr sbin semanage login m S targeted s unconfined_u r s0 s0 c0 c1023 _ default__ 3 usr sbin semanage login m S targeted s unconfined_u r s0 s0 c0 c1023 root 24 Borrador Deshabilitando SELinux 4 usr sbin semanage user a S targeted P user R guest_r guest_u 5 usr sbin semanage user a S targeted P user R xguest_r xguest_u Importante Cuando los sistemas corren con SELinux en modo permisivo o deshabilitado los usuarios tiene permiso para etiquetar los archivos incorrectamente Tambi n los archivos creados con SELinux deshabilitado no son etiquetados Esto causa problemas cuando se cambia a modo obediente Para prevenir el etiquetado incorrecto o la falta de etiquetado los sistemas de archivos son autom ticamente reetiquetados cuando se cambie desde el modo deshabilitado al modo permisivo u obediente 5 4 2 Deshabilitando SELinux Para deshabilitar SELinux configure SELINUX disabled en etc selinux config This file controls the state of SELinux on the system SELINUX can take one of these three values tt enforcing SELinux security policy is enforced permissive SELinux prints warnings instead of enforcing disabled No SELinux policy is loaded SELINUX disabled SELINUXTYPE can take one of these two values targeted Targeted processes are protected
3. 6 3 Confinando Usuarios Linux Existentes semanage login Si un usuario Linux se mapea al usuario unconfined_u el comportamiento predeterminado y desea cambiar le usuario SELinux al que se mapea use el comando semanage login El siguiente 48 Borrador Confinando Usuarios Linux Existentes semanage login ejemplo crea un usuario de Linux nuevo llamado usuarionuevo luego lo mapea al usuario SELinux user_u 1 Como usuario root de Linux ejecute el comando usr sbin useradd usuarionuevo para crear un nuevo usuario usuarionuevo Dado que este usuario usa el mapeo por defecto no aparece en la salida de usr sbin semanage login 1 usr sbin semanage login 1 Login Name SELinux User MLS MCS Range _ default__ unconfined_u s0 s0 c0 c1023 root unconfined_u s0 s0 c0 c1023 system_u system_u s0 s0 c0 c1023 Para mapear un usuario usuarionuevo de Linux al usuario user_u de SELinux corra el siguiente comando como usuario root de Linux usr sbin semanage login a s user_u newuser La opci n a agrega un registro nuevo y la opci n s especifica el usuario SELinux al que mapea el usuario Linux El ltimo argumento usuarionuevo es el usuario Linux al que quiere que se mapee el usuario SELinux especificado Para ver el mapeo entre el usuario usarionuevo de Linux y user_u corra el comando semanage login 1 como usuario root de Linux usr sbin semanage login 1 Login Name SELinux User MLS MCS Range _ default__ unconf
4. Although system administration experience is not necessary content in this guide is written for system administration tasks This guide provides an introduction to fundamental concepts and practical applications of SELinux After reading this guide you should have an intermediate understanding of SELinux Gracias a todos los que nos alentaron ofrecieron ayuda y lo probaron la ayuda es muy apreciada Agradecimientos muy especiales a e Dominick Grift Stephen Smalley y Russell Coker por sus contribuciones ayuda y paciencia Karsten Wade for his help adding a component for this guide to Red Hat Bugzilla and sorting out web hosting on http docs fedoraproject org Al Equipo de Infraestructura de Fedora por proveer el alojamiento e Jens Ulrik Petersen por asegurar que la oficina de Brisbane de Red Hat tenga espejos de Fedora actualizados 1 Convenciones del Documento Este manual utiliza varias convenciones para resaltar algunas palabras y frases y llamar la atenci n sobre ciertas partes espec ficas de informaci n En ediciones PDF y de papel este manual utiliza tipos de letra procedentes de Liberation Fonts Liberation Fonts tambi n se utilizan en ediciones de HTML si est n instalados en su sistema Si no se muestran tipograf as alternativas pero equivalentes Nota Red Hat Enterprise Linux 5 y siguientes incluyen Liberation Fonts predeterminadas 1 1 Convenciones Tipogr ficas Se utilizan cuatro convencion
5. Los archivos en etc selinux targeted contexts files definen los contextos de archivos y directorios Los archivos en este directorio son le dos por restorecon y setfiles para restaurar archivos y directorios a sus contextos predeterminados 54 Borrador C mo se Ejecutan los Servicios Confinados En este ejemplo los archivos index html and pagina1 html se etiquetan con el tipo user_home_t Este tipo se usa para archivos en los directorios de inicio de los usuarios Usando el comando mv para mover archivos puede resultar en archivos etiquetados con el tipo user_home_t Este tipo no deber a existir fuera de los directorios home Use el comando restorecon para restaurar tales archivos a su tipo correcto sbin restorecon v var www html index html restorecon reset var www html index html context unconfined_u object_r user_home_t s0 gt system_u object_r httpd_sys_content_t s0 Para restaurar el contexto de todos los archivos bajo un directorio use la opci n R sbin restorecon R v var www html restorecon reset var www html page1 html context unconfined_u object_r samba_share_t s0 gt system_u object_r httpd_sys_content_t s0 restorecon reset var www html index html context unconfined_u object_r samba_share_t s0 gt system_u object_r httpd_sys_content_t s0 Refer to Secci n 5 10 3 Chequeando el Contexto SELinux Predeterminado for a more detailed example of matchpathcon 7 2 2 C mo se E
6. avc denied getattr for pid 2427 comm httpd path var www html filei dev dm 0 ino 284133 scontext unconfined_u system_r httpd_t s0 tcontext unconfined_u object_r samba_share_t s0 tclass file type SYSCALL msg audit 1226882736 442 86 arch 40000003 syscall 196 success no exit 13 a0 b9ale198 al bfc2921c a2 54dff4 a3 2008171 items 0 ppid 2425 pid 2427 auid 502 uid 48 gid 48 euid 48 suid 48 fsuid 48 egid 48 sgid 48 fsgid 48 tty none ses 4 comm httpd exe usr sbin httpd subj unconfined_u system_r httpd_t s0 key null Por defecto el dominio httpd_t es no permisivo y como tal la acci n es negada y el mensaje SYSCALL contiene success no El siguiente es un ejemplo de negaci n AVC para la misma situaci n excepto que el comando semanage permissive a httpd_t se ejecut para hacer el dominio httpd_t permisivo type AVC msg audit 1226882925 714 136 avc denied read for pid 2512 comm httpd name file1 dev dm 0 ino 284133 scontext unconfined_u system_r httpd_t s0 tcontext unconfined_u object_r samba_share_t s0 tclass file type SYSCALL msg audit 1226882925 714 136 arch 40000003 syscall 5 success yes exit 11 a0 b962a1le8 al 8000 a2 0 a3 8000 items 0 ppid 2511 pid 2512 auid 502 uid 48 gid 48 euid 48 60 Borrador B squeda y Revisi n de Negaciones suid 48 fsuid 48 egid 48 sgid 48 fsgid 48 tty none ses 4 comm httpd exe usr sbin httpd subj unconfined_u system_r httpd_t s0 key null En este caso aun
7. dontaudit smbd_t squid_port_t udp_socket name_bind Refer to Secci n 7 3 6 Raw Audit Messages and Secci n 7 3 7 Mensajes sealert for information about analyzing denials 7 3 3 P ginas de Manual para Servicios Las p ginas de manual para los servicios conteniendo informaci n valiosa tal como qu tipo de archivo usar para una situaci n dada y los Booleanos para cambiar el acceso que un servicio tiene tal como httpd para acceder sistemas de archivos NFS Esta informaci n puede estar en la p gina de manual est ndar o una p gina de manual con selinux como prefijo o sufijo 3 http fedoraproject org wiki Docs Drafts AdministrationGuide Permissions il http www redhat com mailman listinfo fedora selinux list 58 Borrador Dominios Permisivos For example the httpd_selinux 8 manual page has information about what file type to use for a given situation as well as Booleans to allow scripts sharing files accessing directories inside user home directories and so on Other manual pages with SELinux information for services include e Samba the samba_selinux 8 manual page describes that files and directories to be exported via Samba must be labeled with the samba_share_t type as well as Booleans to allow files labeled with types other than samba_share_t to be exported via Samba NFS the nfs_selinux 8 manual page describes that by default file systems can not be exported via NFS and that to al
8. La opci n usr sbin matchpathcon V compara el contexto SELinux actual con el contexto predeterminado correcto dado por la pol tica de SELinux Ejecute el comando usr sbin matchpathcon V var ww html para chequear todos los archivos del directorio var www htm1 usr sbin matchpathcon V var www html var www html file1 has context unconfined_u object_r samba_share_t s0 should be system_u object_r httpd_sys_content_t s0 var www html file2 verified var www html file3 verified La siguiente salida del comando usr sbin matchpathcon explica que el archivo1 est etiquetado con el tipo samba_share_t pero deber a estar etiquetado con el tipo httpd_sys_content_t var www html file1 has context unconfined_u object_r samba_share_t s0 should be system_u object_r httpd_sys_content_t s0 Para resolver el problema de etiqueta y permitir al Servidor HTTP Apache acceder a archivo1 como usuario root de Linux corra el comando sbin restorecon v var www html archivol1 sbin restorecon v var www html file1 restorecon reset var www html file1 context unconfined_u object_r samba_share_t s0 gt system_u object_r httpd_sys_content_t s0 5 10 4 Archivando archivos con tar tar no retiene los atributos extendidos por defecto Dado que los contextos SELinux se almacenan en los atributos extendidos los contextos se pueden perder cuando se compactan archivos Use tar selinux para crear archivos que retengan l
9. Z tmp file2 rw r r root root unconfined_u object_r user_tmp_t s0 tmp file2 cp tmp file2 etc filei ls Z etc file1 rw r r root root unconfined_u object_r etc_t s0 etc file1l En este ejemplo se crean dos archivos etc archivo1 etiquetado con el tipo etc_t y tmp archivo2 etiquetado con el tipo user_tmp_t Ell comando cp tmp archivo2 etc archivo1 sobreescribe archivo1 con archivo2 Despu s de copiar el comando ls Z etc archivo1 muestra a archivol1 etiquetado con el tipo etc_t en vez del user_tmp_t de tmp archivo2 que reemplaz a etc archivol1 Importante Copie archivos y directorios en vez de moverlos Esto ayuda a asegurar que se etiquetan con los contextos de SELinux correctos Los contextos SELinux incorrectos pueden hacer que los procesos no puedan acceder a esos archivos y directorios 5 10 2 Movimiento de Archivos y Directorios File and directories keep their current SELinux context when they are moved In many cases this is incorrect for the location they are being moved to The following example demonstrates moving a file from a user s home directory to var www htm1 which is used by the Apache HTTP Server Since the file is moved it does not inherit the correct SELinux context 1 Ejecute el comando cd sin ning n argumento para cambiar a su directorio de inicio Una vez ahi ejecute el comando touch archivo1 para crear un archivo Este archivo se etiqueta con el tipo user_home_t
10. d nde encontrar informaci n acerca del correcto etiquetado an lisis de las negaciones de SELinux y creaci n de m dulos de pol ticas personalizados con audit2allow 7 1 Qu pasa cuando el Acceso es Denegado SELinux decisions such as allowing or disallowing access are cached This cache is known as the Access Vector Cache AVC Denial messages are logged when SELinux denies access These denials are also known as AVC denials and are logged to a different location depending on which daemons are running Daemon Log Location auditd on var log audit audit log auditd off rsyslogd on var log messages setroubleshootd rsyslogd and var log audit audit log Easier to read denial messages auditd on also sent to var log messages If you are running the X Window System have the setroubleshoot and setroubleshoot server packages installed and the setroubleshootd and auditd daemons are running a warning is displayed when access is denied by SELinux SL d dll F Wed Nov 18 8 12 AM scott New SELinux security alert AVC denial click icon to view Dismiss Show q Clicking on Show presents a detailed analysis of why SELinux denied access and a possible solution for allowing access If you are not running the X Window System it is less obvious when access is denied by SELinux For example users browsing your website may receive an error similar to the following Forbidden You don t have permission to access file name
11. rsyslogd y setroubleshootd para que inicien autom ticamente al arrancar corra los siguientes comandos como usuario root de Linux sbin chkconfig levels 2345 auditd on sbin chkconfig levels 2345 rsyslog on Use el comando service nombre de servicio status para chequear si estos servicios se estan ejecutando por ejemplo sbin service auditd status auditd pid 1318 is running Si los servicos de arriba no se estan ejecutando nombre de servicio esta detenido use el comando service nombre de servicio start como usuario root de Linux para iniciarlos Por ejemplo sbin service auditd start Starting auditd OK 5 3 Archivo de Configuracion Principal El archivo etc selinux config es el archivo de configuraci n principal de SELinux Controla el modo de SELinux y la pol tica de SELinux a usar 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 these two values H targeted Targeted processes are protected mls Multi Level Security protection SELINUXTYPE targeted SELINUX enforcing La opci n SELINUX pone el modo en el que corre SELinux SELinux tiene tres modos obediente permisivo y deshabilitado Cuando se usa modo obediente la pol tica de SEL
12. 1s 1 para ver los permisos est ndares de Linux ls 1 var ww html1 index html rw r 1 root root 2009 05 07 11 06 index html En este ejemplo index html pertenece al usuario y al grupo root El usuario root tiene permisos de lectura y escritura rw y los miembros del grupo root tienen permisos de lectura r Cualquier otro no tiene acceso Por defecto tales permisos no permiten a httpd leer este archivo Para resolver esto use el comando chown el due o y el grupo Este comando se debe ejecutar como usuario root de Linux chown apache apache var www html index html Esto asume la configuraci n predeterminada en la que httpd corre como usuario apache de Linux Si corre httpd con un usuario diferente reemplace apache apache con ese usuario 57 Cap tulo 7 Soluci n a Problemas Borrador Refer to the Fedora Documentation Project Permissions draft for information about managing Linux permissions 7 3 2 Posibles Causas de las Negaciones Silenciosas En ciertas situaciones las negaciones AVC pueden no ser guardadas cuando SELinux niega el acceso Las aplicaciones y las funciones de las bibliotecas del sistema a menudo prueban m s accesos que los pedidos para realizar sus tareas Para mantener el menor privilegio sin llenar los informes de auditor a con negaciones AVC para pruebas sin peligro de las aplicaciones la pol tica puede silenciar las negaciones AVC sin permitir el uso de reglas dontaud
13. 5 2 3 Arquitectura de SELINUX occooccccncccnoccconocnononononcnncnnnnonnrronnnnonnnnnnnrnnnnnnnnnnrrennarenanrrnncnninnss 6 2 4 SELinux en otros Sistemas Operativos oocoooccccnccccoconnnncccnncnnnnonnnoncnnnnnnnnnnrcnnannnnarcnnncinnnns 6 3 Contextos de SELinux 7 3 1 Transiciones de DOMINIOS ocoocconoccnononcnononcnnnoncnnnoncnnnnnnonnnnnonnnnnnnnnnrnnnonrnnnnnrnnnnnnannnnnnnnos 8 3 2 Contextos de SELinux para los Procesos ooocccccccccncoccnnccccnannoronnnnnccnnnnnnnnnrcnnnnnnnannnnnnnnnns 9 3 3 Contextos de SELinux para los Usuarios coooocccoccccnnccccnocinnccnnoncccnnonnnncncnnnninnananoncnnnnanns 10 4 Pol tica Destinado 11 4 1 Procesos Confinados 00 ninia A o A sec coco cc 11 4 2 Procesos no ConfinadosS aese A coccion 13 4 3 Usuarios Confinados y NO Configados aE E E 17 5 Trabajando con SELinux 19 5 1 Paquetes de SELINA o O eee A cc 19 5 2 Qu Archivo LogiSerusa saes E E cc 20 5 3 Archivo de Configuraci n Principal ooooocidcnnnnnccncococoninnnnnnnnnnnnnncnnnan corn n ona nnrn rra rra nn 21 5 4 Habilitando y Deshabilitando SELINUX 0occcoooccccccnnoocccononoccnnnnnnccnnnnancnnnnnanncnnnnancnnnnnnnnnnns 22 5 4 1 iia bilite lo sS Einu T A 22 5 4 2 Deshabilitando SELINUX ocooocccocnconcconcocncocncnnnnnonononnnnoncnoncnoncnnnnnnnnnnnnnnnnnonnnnnns 25 5 5 Modos de4SEDIDS MP ces Nc ccccsucucueueuensucucusueuensucuenereucnsucususreucnsucusnereusnenes 25 5 6
14. 9876 no listening sockets available shutting down Unable to open logs FAILED Una negaci n de SELinux es similar a la siguiente y se guarda en var log audit audit log type AVC msg audit 1225948455 061 294 avc denied name_bind for pid 4997 comm httpd src 9876 scontext unconfined_u system_r httpd_t s0 tcontext system_u object_r port_t s0 tclass tcp_socket Para permitir a ht tpd escuchar en un puerto que no est listado en el tipo de puerto http_port_t ejecute el comando semanage port para agregar un puerto a la configuraci n de la pol tica Se usr sbin semanage port a t http_port_t p tcp 9876 El comando semanage port a agrega una entrada al archivo etc selinux targeted modules active ports local Nota por defecto este archivo s lo puede ser visto por el usuario root de Linux 56 Borrador Evolucionando las Reglas y las Aplicaciones Rotas La opci n a agrega un nuevo registro la opci n t define un tipo y la opci n p define un protocolo El ltimo argumento es el n mero de puerto a agregar 7 2 3 Evolucionando las Reglas y las Aplicaciones Rotas Las aplicaciones se pueden romper provocando que SELinux niegue el acceso Tambi n las reglas de SELinux evolucionan SELinux no se debe ver como una aplicaci n que se ejecuta en una cierta forma haciendo que deniegue el acceso a n cuando la aplicaci n est funcionado como se espera que lo haga Por ejemplo si una nueva versi n de PostgreSQ
15. BooleanosS7 A E coccion rr rr rar rra rr rr rr rr rr rr rr rr 26 5 6 1 Listando los Booleanos ooccocccoconnconncononnnnnnnonnnnnnononnnnnnnnnnnonononcnoncnonnnnnnnnnnnnnen 26 5 6 2 Configurando los BOO EanosS ooooccconocccccnnnnoccnonnnnccnnononcrnnnnnnrrnnnnnnrrnn nn aanne 27 5 6 3 Booleanos para NFS y CIFS 2 cccccecceeee cece cece eee innana an anaia 27 5 7 Contextos de SELinux Etiquetado de Archivos ccccceceee cece ce eeeeaeeeeeeeeeaaeeeeaeeesaeees 28 5 7 1 Cambios Temporales CHCON 0ccecceeeeeeeeee cece ee a a aa aaia 29 5 7 2 Cambios Persistentes semanage fcontext ceceeeeeeeeeeeeeeeeeeeeeeaaeeeeeeeeaaees 31 5 8 Los tipos Tile ty default Tata eeesaneeethansaeneaaneaueetawaratensaesendeandeaaeemnaandebeans Ea aa eden 35 5 9 Montaje de Sistemas de Archivos occooccccoccccnncccnnccnnnccccnncinnnnnnnncncnnnnnonarcnnncinnannnonencnnnss 36 5 91 Montajes de COntexto cis ias lactea O ed Dad 36 5 9 2 Cambio del Contexto Predeterminado coccoccoconcconinccncnncnnnoncnnnononononcannnnnonnnanons 37 5 9 3 Montando un Sistema de Archivos NES ooccocccccnnonccononccononccnnonccnnnnronnoncnnnoncnnnns 37 5 9 4 Montajes NFS M ltiples ooccooococcccnnooccnnnnoocnnnnnoncnnnononnnnnononcnnnonannnnnonancnnnonannnnns 38 5 9 5 Haciendo Persistente los Contextos de Montajes cccceceeeeeeeeeeeeeaeeeeeeeeeaes 39 5 10 Mantenci n de las Etiquetas de SELINUX occc
16. Borrador yd G Ap ndice A Revision History Revisi n 1 4 Mon Aug 31 2009 Scott Radvan sradvan redhat com Update and verification for Fedora 12 Revisi n 1 3 Tue May 12 2009 Scott Radvan sradvan redhat com Update and verification for Fedora 11 Revision 1 2 Mon Jan 19 2009 Murray McAllister mmcallis redhat com Actualizaci n de los enlaces a sitios web de la NSA Revision 1 1 Sat Dec 6 2008 Murray McAllister mmcallis redhat com Resolving Red Hat Bugzilla 472986 httpd does not write to etc htipd logs Added new section 6 6 Booleans for Users Executing Applications Revisiones menores del texto Revision 1 0 Tue Nov 25 2008 Murray McAllister mmcallis redhat com Initial content release on http docs fedoraproject org 71 72
17. SELinux targeted policy is used 2 Como usuario root de Linux ejecute el comando touch var www html1 prueba para crear un archivo 3 Ejecute el comando 1s Z var www html prueba para ver el contexto SELinux rw r r root root unconfined_u object_r httpd_sys_content_t s0 var www html testfile A http en wikipedia org wiki Buffer_overflow 11 Cap tulo 4 Pol tica Destinado Borrador By default Linux users run unconfined in Fedora which is why the testfile file is labeled with the SELinux unconfined_u user RBAC is used for processes not files Roles do not have a meaning for files the object_r role is a generic role used for files on persistent storage and network file systems Under the proc directory files related to processes may use the system_r role The httpd_sys_content_t type allows the httpd process to access this file Como usuario root de Linux ejecute el comando service httpd start para iniciar el proceso httpd La salida escomo sigue si httpd inicia con xito sbin service httpd start Starting httpd OK Cambie al directorio donde su usuario Linux tenga acceso de escritura y ejecute el comando wget http localhost prueba A menos que hubieran cambios en la configuraci n predeterminada este comando tiene xito 2009 11 06 17 43 01 http localhost testfile Resolving localhost 127 0 0 1 Connecting to localhost 127 0 0 1 80 connected HTTP request sent awaiting re
18. blurb for fedora setools packages Email to Murray McAllister 1 November 2008 Any edits or changes in this version were done by Murray McAllister 4 http oss tresys com projects setools 19 Cap tulo 5 Trabajando con SELinux Borrador To install packages in Fedora as the Linux root user run the yum install package name command For example to install the mcstrans package run the yum install mcstrans command To upgrade all installed packages in Fedora run the yum update command Vaya a Administraci n de Software con yum para m s informaci n sobre el uso de yum para administrar paquetes Nota En versiones anteriores de Fedora el paquete selinux policy devel es necesario cuando se crea un m dulo de pol tica local con audit2allow M 5 2 Qu Archivo Log se usa In Fedora 13 the dbus setroubleshoot server and audit packages are installed if packages are not removed from the default package selection Los mensajes de negaci n de SELinux tales como el siguiente se escriben por defecto en var log audit audit log type AVC msg audit 1223024155 684 49 avc denied getattr for pid 2000 comm httpd path var www html filei dev dm 0 ino 399185 scontext unconfined_u system_r httpd_t s0 tcontext system_u object_r samba_share_t s0 tclass file Also if setroubleshootd is running denial messages from var log audit audit log are translated to an easier to read form and sent to var log messages Ma
19. context as defined by SELinux policy In common policies this default context uses the file_t type If it is desirable to use a different default context mount the file system with the defcontext option El siguiente ejemplo monta un sistema de archivo reci n creado en dev sda2 en el directorio reci n creado prueba Asume que no hay reglas en etc selinux targeted contexts files que definan el contexto del directorio prueba mount dev sda2 test o defcontext system_u object_r samba_share_t s0 En este ejemplo the defcontext option defines that system_u object_r samba_share_t s6 is the default security context for unlabeled files cuando sea montado el directorio ra z prueba del sistema de archivo se trata como si estuviera etiquetado con el contexto especificado por def context esta etiqueta no se guarda en el disco Esto afecta el etiquetado de archvios creados en prueba los archivos nuevos heredan el tipo samba_share_t y estas etiquetas se guardan en el disco e los archivos creados bajo prueba mientras el sistema de archivo estaba montado con la opci n defcontext retendr n sus etiquetas 5 9 3 Montando un Sistema de Archivos NFS Por defecto los montajes NFS en el lado del cliente son etiquetados con un contexto predeterminado por la pol tica para los sistemas de archivo NFS En pol ticas comunes este contexto predeterminado usa el tipo nfs_t Dependiendo de la configuraci n de la pol
20. ls Z filet 41 Cap tulo 5 Trabajando con SELinux Borrador rw rw r userid group1 unconfined_u object_r user_home_t s0 filel 2 Ejecute el comando ls dZ var www html para ver el contexto de SELinux del directorio var www htm1 ls dZ var www html drwxr xr x root root system_u object_r httpd_sys_content_t s0 var www html Por defecto el directorio var www htm1 se etiqueta con el tipo httpd_sys_content_t Los archivos y directorios creados bajo el directorio var www html1 heredan este tipo y como tal son etiquetados con este tipo 3 Como usuario root de Linux ejecute el comando mv archivo1 var www html para mover el archivol al directorio var www htm1 Dado que el archivo es movido mantiene su tipo user_home_t actual mv filel var ww html ls Z var ww html1 filel rw rw r userid group1 unconfined_u object_r user_home_t s0 var www html1 file1l Por defecto el Servidor HTTP Apache no puede leer archivos etiquetados con el tipo user_home_t Si todos los archivos de una p gina web se etiquetaron con user_home_t u otro tipo al que el Servidor HTTP Apache no puede leer el permiso es negado cuando intente accederlo v a Firefox o alg n otro navegador web basado en texto Importante Mover archivos y directorios con el comando mv puede resultar en el contexto SELinux incorrecto evitando que los procesos tales como el Servidor HTTP Apache y Samba puedan acceder a tales archivos y directori
21. mls Multi Level Security protection SELINUXTYPE targeted Reinicie su sistema Despu s de reiniciar confirme que getenforce devuelve Disabled usr sbin getenforce Disabled 5 5 Modos de SELinux SELinux tiene tres modos Obligatorio la pol tica de SELinux es obligatoria SELinux niega el acceso basado en las reglas de pol ticas de SELinux e Permisivo la politica de SELinux no es obligatoria SELinux no niega el acceso pero se guardan las negaciones para acciones que hubieran sido negadas si el modo obligatorio estaba activado e Deshabilitado SELinux est deshabilitado S lo se usan las reglas DAC Use el comando usr sbin setenforce para cambiar entre los modos obediente y permisivo Los cambios hechos con usr sbin setenforce no sobreviven a una reiniciada Para cambiar a modo obediente como usuario root de Linux ejecute el comando usr sbin setenforce 1 25 Cap tulo 5 Trabajando con SELinux Borrador Para cambiar a modo permisivo ejecute el comando usr sbin setenforce 0 Use el comando usr sbin getenforce para ver el modo de SELinux actual Persistent mode changes are covered in Secci n 5 4 Habilitando y Deshabilitando SELinux 5 6 Booleanos Los booleanos permiten cambiar partes de la pol tica de SELinux en tiempo de ejecuci n sin ning n conocimiento sobre la escritura de pol ticas de SELinux Esto permite cambios como permitir el acceso de servicios a sistemas de archivo NFS s
22. on this server For these situations if DAC rules standard Linux permissions allow access check var log messages and var log audit audit 1log for SELinux is preventing and denied errors respectively This can be done by running the following commands as the Linux root user grep SELinux is preventing var log messages grep denied var log audit audit log 53 Cap tulo 7 Soluci n a Problemas Borrador 7 2 Tres Principales Causas de Problemas Las siguientes secciones describen las tres principales causas de problemas problemas de etiquetados configuraci n de Booleanos y puertos para servicios y la evoluci n de las reglas SELinux 7 2 1 Problemas de Etiquetados En sistemas que corren SELinux todos los procesosy archivos se etiquetan con una etiqueta que contiene informaci n de seguridad relevante Esta informaci n se llama contexto de SELinux Si estas etiquetas est n mal el acceso puede ser negado Si una aplicaci n se etiqueta incorrectamente el proceso al que transiciona puede no tener la etiqueta correcta causando negaciones de acceso de SELinux y los procesos pueden crear archivo con las etiquetas incorrectas A common cause of labeling problems is when a non standard directory is used for a service For example instead of using var www htm1 for a website an administrator wants to use srv myweb On Fedora 13 the srv directory is labeled with the var_t type Files and directories created
23. policy 3 5 13 11 fc12 Selinux Enabled True Policy Type targeted MLS Enabled True Enforcing Mode Enforcing Plugin Name public_content Host Name hostname Platform Linux hostname 2 6 27 4 68 fc12 i686 1 SMP Thu Oct 30 00 49 42 EDT 2008 i686 i686 Alert Count 4 First Seen Wed Nov 5 18 53 05 2008 Last Seen Wed Nov 5 01 22 58 2008 Local ID 84e0b04d d0ad 4347 8317 22e74f6cd020 Line Numbers Raw Audit Messages node hostname type AVC msg audit 1225812178 788 101 avc denied getattr for pid 2441 comm httpd path var www html filei dev dm 0 ino 284916 scontext unconfined_u system_r httpd_t s0 tcontext unconfined_u object_r samba_share_t s0 tclass file node hostname type SYSCALL msg audit 1225812178 788 101 arch 40000003 syscall 196 success no exit 13 a0 b8e97188 al bf87aaac a2 54dff4 a3 2008171 items 0 ppid 2439 pid 2441 auid 502 uid 48 gid 48 euid 48 suid 48 fsuid 48 egid 48 sgid 48 fsgid 48 tty none ses 3 comm httpd exe usr sbin httpd subj unconfined_u system_r httpd_t s0 key null Resumen Un breve resumen de la acci n negada Esto es lo mismo que la negaci n en var log messages En este ejemplo al proceso httpd se le neg el acceso al archivo1 que est etiquetado con el tipo samba_share_t Descripci n Detallada Una descripci n m s detallada En este ejemplo archivo1 est etiquetado con el tipo samba_share_t Este tipo se usa para archivos y directorios que quiere exportar v a Samba La descr
24. showing SELinux context SELinux contexts are used on processes Linux users and files on Linux operating systems that run SELinux Use the 1s Z command to view the SELinux context of files and directories ls Z filel rwxrw r user1 group1 unconfined_u object_r user_home_t s0 file1 Los contextos de SELinux siguen la SELinux nombre de usuario role type level sintaxis SELinux user The SELinux user identity is an identity known to the policy that is authorized for a specific set of roles and for a specific MLS range Each Linux user is mapped to an SELinux user via SELinux policy This allows Linux users to inherit the restrictions placed on SELinux users The mapped SELinux user identity is used in the SELinux context for processes in that session in order to define what roles and levels they can enter Run the semanage login 1 command as the Linux root user to view a list of mappings between SELinux and Linux user accounts usr sbin semanage login 1 Login Name SELinux User MLS MCS Range _ default__ unconfined_u s0 s0 c0 c1023 root unconfined_u s0 s0 c0 c1023 system_u system_u s0 s0 c0 c1023 Output may differ slightly from system to system The Login Name column lists Linux users and the SELinux User column lists which SELinux user the Linux user is mapped to For processes the SELinux user limits which roles and levels are accessible The last column MLS MCS Range is the level used by Multi Level Security MLS and Multi Ca
25. star no se instala por defecto Para instalar star ejecute el comando yum install star como usuario root de Linux El siguiente ejemplo muestra la creaci n de un archivo Star que retiene los contextos SELinux 44 Borrador Archivando archivos con tar 1 Como usuario root de Linux ejecute el comando touch var www html archivo 1 2 3 para crear tres archivos archivo1 archivo2 y archivo3 Estos heredan el tipo httpd_sys_content_t del directorio var www htm1 touch var www html file 1 2 3 ls Z var www html rw r r root root unconfined_u object_r httpd_sys_content_t s0 filet rw r r root root unconfined_u object_r httpd_sys_content_t s0 file2 fw r r root root unconfined_u object_r httpd_sys_content_t s0 file3 2 Ejecute el comando cd var www html para cambiar al directorio var www htm1 Una vez en este directorio como usuario root de Linux ejecute el comando star xattr H exustar c f prueba star archivo 1 2 3 para crear un archivo Star llamado prueba star star xattr H exustar c f test star file 1 2 3 star 1 blocks O bytes total of 10240 bytes 10 00k 3 Como usuario root de Linux corra el comando mkdir prueba para crear un directorio nuevo y luego ejecute el comando chmod 777 prueba para permitir a los usuarios acceso total al directorio prueba 4 Ejecute el comando cp var www htm1 prueba star prueba para copiar el archivo prueba star al directorio prueb
26. that do not match any other pattern in file context configuration so that such files can be distinguished from files that do not have a context on disk and generally kept inaccessible to confined domains If you create a new top level directory such as mydirectory this directory may be labeled with the default_t type If services need access to such a directory update the file contexts configuration for this location Refer to Secci n 5 7 2 Cambios Persistentes semanage fcontext for details on adding a context to the file context configuration 5 9 Montaje de Sistemas de Archivos Por defecto cuando un sistema de archivo que soporta atributos extendidos se monta el contexto de seguridad para cada archivo se obtiene de atributo extendido security selinux del archivo A los archivos en sistemas de archivo que no dan soporte a atributos extendidos se les asigna un nico contexto de seguridad predeterminado desde la configuraci n de la pol tica basada en el tipo de sistema de archivo Use el comando mount o context para superponer los atributos extendidos actuales o para especificar uno distinto y por defecto para sistemas de archivo que no dan soporte a atributos extendidos Esto es til si no conf a en que un sistema de archivo provea los atributos correctos por ejemplo medios removibles en sistemas m ltiples El comando mount o context tambi n se puede ussar para dar soporte al etiquetado de sistemas de archivos que no sop
27. tica los servicios como el Servidor HTTP Apache y MySQL pueden no poder leer archivos etiquetados con el tipo nfs_t Esto puede prevenir que los sistemas de archivos etiquetados con este tipo se monten y sean le dos o exportados por otros servicios Si desea montar un sistema de archivo NFS y leer o exportar ese sistema de archivo con otro servicio use la opci n contexto cuando monte para anular el tipo nfs_t Use la siguiente opci n de contexto para montar sistemas de archivo NFS para que puedan compartirse v a el Servidor HTTP Apache 37 Cap tulo 5 Trabajando con SELinux Borrador mount server export local mount point o context system_u object_r httpd_sys_content_t so Dado que los cambios de contexto no se escriben al disco para estas situaciones el contexto especificado con la opci n context s lo se retiene si la opci n context se usa en el siguiente montaje y si el mismo contexto se especifica As an alternative to mounting file systems with context options Booleans can be turned on to allow services access to file systems labeled with the nfs_t type Refer to Secci n 5 6 3 Booleanos para NFS y CIFS for instructions on configuring Booleans to allow services access to the nfs_t type 5 9 4 Montajes NFS M ltiples Cuando se monten m ltiples montajes desde el mismo NFS exportado el intento de sobreescribir el contexto de SELinux e cada montaje con un contexto diferente resulta en fallos de los com
28. use a different document root instead of var www htm1 1 Como usuario root de Linux ejecute el comando mkdir web para crear un directorio nuevo y luego el comando touch web archivo 1 2 3 para crear 3 archivos vac os archivo1 archivo2 y archivo3 El directorio web y los archivos en l son etiquetados con el tipo default_t ls dZ web drwxr xr x root root unconfined_u object_r default_t s0 web ls 1Z web rw r r root root unconfined_u object_r default_t s0 filel rw r r root root unconfined_u object_r default_t s0 file2 rw r r root root unconfined_u object_r default_t s0 file3 33 Cap tulo 5 Trabajando con SELinux Borrador As the Linux root user run the usr sbin semanage fcontext a t httpd_sys_content_t web command to change the type of the web directory and the files in it to httpd_sys_content_t The a option adds a new record and the t option defines a type httpd_sys_content_t The web regular expression causes the semanage command to apply changes to the web directory as well as the files in it Note running this command does not directly change the type web and files in it are still labeled with the default_t type tt ls dZ web drwxr xr x root root unconfined_u object_r default_t s0 web ls 1Z web rw r r root root unconfined_u object_r default_t s0 filel rw r r root root unconfined_u object_r default_t s0 file2 rw r r root root unc
29. y se usa como un ejemplo b sico para explicar la transici n de dominio Aunque hay una regla actual que permite a sujetos corriendo en el dominio passwd_t accedan objetos etiquetados con el tipo de archivo shadow_t otras reglas de pol tica de SELinux se deben cumplir para que el sujeto pueda transicionar a un nuevo dominio En este ejemplo la Obligaci n de Tipo asegura e el dominio passwd_t s lo se puede ingresar ejecutando una aplicaci n con la etiqueta del tipo passwd_exec_t s lo pueden ejecutar desde bibliotecas compartidas autorizadas tales como las del tipo 1ib_t y no pueden ejecutar ninguna otra aplicaci n e s lo los dominios autorizados tales como passwd_t pueden escribir en archivos con la etiqueta del tipo shadow_t A n si otros procesos corren con privilegios de superusuario esos procesos no podr n escribir archivos etiquetados con el tipo shadow_t porque no est n corriendo en el dominio passwd_t e s lo los dominios autorizados pueden transicionar al dominio passwd_t Por ejemplo el proceso sendmail corriendo en el dominio sendmail_t no tiene una raz n leg tima para ejecutar passwd por lo tanto no puede transicionar nunca al dominio passwd_t e los procesos que se ejecutan en el dominio passwd_t s lo pueden leer y escribir a tipos autorizados tales como archivos etiquetados con los tipos etc_t o shadow_t Esto impide a la aplicaci n passwd de ser modificada para leer o escribir en archivos arbitrarios 3
30. 0 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd Rey ES 8 ey oS ES ee oe ES Como usuario root de Linux corra el comando rm i var www html prueba2 para eliminar prueba2 Si no necesita que corra httpd como usuario root de Linux corra el comando service httpd stop para detener a httpd sbin service httpd stop Stopping httpd OK 16 Borrador Usuarios Confinados y no Confinados Los ejemplos en estas secciones muestran c mo proteger los datos desde un proceso confinado comprometido protegido por SELinux as como cu nto m s accesible son los datos para un atacante si el proceso comprometido estaba no confinado no protegido por SELinux 4 3 Usuarios Confinados y no Confinados Cada usuario Linux se mapea a un usuario SELinux v a la pol tica de SELinux Esto permite a los usuarios Linux heredar las restricciones sobre los usuarios SELinux Este mapeo de usuarios Linux se ve ejecutando el comando semanage login 1 como usuario root de Linux usr sbin semanage login 1 Login Name SELinux User MLS MCS Range _ default__ unconfined_u s0 s0 c0 c1023 root unconfined_u s0 s0 c0 c1023 system_u system_u s0 s0 c0 c1023 In Fedora 13 Linux users are mapped to the SELinux __default__ login by default which is mapped to the SELinux unconfined_u user The following defines the default mapping __default__ unconfined_u s0 s
31. 0 c0 c1023 The following example demonstrates adding a new Linux user and that Linux user being mapped to the SELinux unconfined_u user It assumes that the Linux root user is running unconfined as it does by default in Fedora 13 1 Como usuario root de Linux ejecute el comando usr sbin useradd usuarionuevo para crear un nuevo usuario Linux con nombre usuarionuevo 2 As the Linux root user run the passwd newuser command to assign a password to the Linux newuser user passwd newuser Changing password for user newuser New UNIX password Enter a password Retype new UNIX password Enter the same password again passwd all authentication tokens updated successfully 3 Log out of your current session and log in as the Linux newuser user When you log in pam_selinux maps the Linux user to an SELinux user in this case unconfined_u and sets up the resulting SELinux context The Linux user s shell is then launched with this context Run the id Z command to view the context of a Linux user newuser localhost id Z unconfined_u unconfined_r unconfined_t s0 s0 c0 c1023 4 Log out of the Linux newuser s session and log in with your account If you do not want the Linux newuser user runthe usr sbin userdel r newuser command as the Linux root user to remove it along with the Linux newuser s home directory 17 Cap tulo 4 Pol tica Destinado Borrador Los usuarios Linux confinados y no confinados son sujeto a ch
32. 2 Contextos de SELinux para los Procesos Use el comando ps eZ para ver los contextos de SELinux para los procesos Por ejemplo 1 Abra una terminal como la de Aplicaciones gt Herramientas del Sistema gt Terminal 2 Ejecute el comando usr bin passwd No ingrese una nueva contrase a 3 Abra una nueva pesta a u otra terminal y ejecute el comando ps eZ grep passwd La salida es similar a la siguiente unconfined_u unconfined_r passwd_t s0 s0 c0 c1023 13212 pts 1 00 00 00 passwd 4 Inthe first tab terminal press Ctrl C to cancel the passwd application In this example when the usr bin passwd application labeled with the passwd_exec_t type is executed the user s shell process transitions to the passwd_t domain Remember the type defines a domain for processes and a type for files Use el comando ps eZ para ver los contextos SELinux de los procesos en ejecuci n El siguiente es un ejemplo limitado de la salida y puede cambiar en su sistema Cap tulo 3 Contextos de SELinux Borrador system_u system_r dhcpc_t s0 1869 00 00 00 dhclient system_u system_r sshd_t s0 s0 c0 c1023 1882 00 00 00 sshd system_u system_r gpm_t s0 1964 00 00 00 gpm system_u system_r crond_t s0 s0 c0 c1023 1973 00 00 00 crond system_u system_r kerneloops_t s0 1983 00 00 05 kerneloops system_u system_r crond_t s0 s0 c0 c1023 1991 00 00 00 atd El rol system_r se usa para procesos de sistema como los demonios El tipo obligator
33. 2009 08 30 11 03 file1 Los primeros tres bits de permisos rwx controlan el acceso que el usuario Linux usuario1 en este caso el due o tiene para el archivo1 Los siguientes tres bits de permisos rw controlan el acceso que el grupo Linux grupol1 tiene para el archivo1 Los ltimos tres bits de permisos r controlan el acceso que todo el mundo tiene para el archivo1 que incluyen a todos los usuarios y procesos Security Enhanced Linux SELinux adds Mandatory Access Control MAC to the Linux kernel and is enabled by default in Fedora A general purpose MAC architecture needs the ability to enforce an administratively set security policy over all processes and files in the system basing decisions on labels containing a variety of security relevant information When properly implemented it enables a system to adequately defend itself and offers critical support for application security by protecting against the tampering with and bypassing of secured applications MAC provides strong separation of applications that permits the safe execution of untrustworthy applications Its ability to limit the privileges associated with executing processes limits the scope of potential damage that can result from the exploitation of vulnerabilities in applications and system services MAC enables information Integrating Flexible Support for Security Policies into the Linux Operating System by Peter Loscocco and Stephen Smalley This paper was origi
34. Como usuario root de Linux corra el comando usr sbin useradd Z user_u useruuser para crear el usuario Linux nuevo useruuser que se mapear al usuario SELinux user_u 2 Como usuario root de Linux corra el comando semanage login 1 para ver el mapeo entre el usuario Linux useruuser y user_u usr sbin semanage login 1 Login Name SELinux User MLS MCS Range _ default__ unconfined_u s0 s0 c0 c1023 root unconfined_u s0 s0 c0 c1023 system_u system_u s0 s0 c0 c1023 useruuser user_u sO 3 Como usuario root de Linux corra el comando passwd useruuser para asignar una contrase a para el usuario useruuser de Linux passwd useruuser Changing password for user useruuser New UNIX password Enter a password Retype new UNIX password Enter the same password again passwd all authentication tokens updated successfully 4 Log out of your current session and log in as the Linux useruuser user When you log in pam_selinux maps the Linux user to an SELinux user in this case user_u and sets up the resulting SELinux context The Linux user s shell is then launched with this context Run the id Z command to view the context of a Linux user useruuser localhost id Z user_u user_r user_t s0 5 Log out of the Linux useruuser s session and log back in with your account If you do not want the Linux useruuser user run the usr sbin userdel r useruuser command as the Linux root user to remove it along with its home directory
35. Fedora 13 Linux con Seguridad Mejorada Gu a del Usuario Te m e N E a call ae TM S a Ey N y j Ee gt rv Y NS wwe a a ss PA McAllister Scott Radvan Daniel Walsh Dominick Grift Eric Paris James Morris Linux con Seguridad Mejorada Borrador Fedora 13 Linux con Seguridad Mejorada Gu a del Usuario Edici n 1 4 Autor Murray McAllister mmcallis redhat com Autor Scott Radvan sradvan redhat com Autor Daniel Walsh dwalsh redhat com Autor Dominick Grift domg472 gmail com Autor Eric Paris eparis parisplace org Autor James Morris jmorris redhat com Copyright 2010 Red Hat Inc The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution Share Alike 3 0 Unported license CC BY SA An explanation of CC BY SA is available at http creativecommons org licenses by sa 3 0 The original authors of this document and Red Hat designate the Fedora Project as the Attribution Party for purposes of CC BY SA In accordance with CC BY SA if you distribute this document or an adaptation of it you must provide the URL for the original version Red Hat as the licensor of this document waives the right to enforce and agrees not to assert Section 4d of CC BY SA to the fullest extent permitted by applicable law Red Hat Red Hat Enterprise Linux the Shadowman logo JBoss MetaMatrix Fedora the Infinity Logo and RHCE are trademarks of Red
36. Hat Inc registered in the United States and other countries For guidelines on the permitted uses of the Fedora trademarks refer to https fedoraproject org wiki Legal Trademark_guidelines Linux is the registered trademark of Linus Torvalds in the United States and other countries Java is a registered trademark of Oracle and or its affiliates XFS is a trademark of Silicon Graphics International Corp or its subsidiaries in the United States and or other countries All other trademarks are the property of their respective owners The SELinux User Guide assists users and administrators in managing and using Security Enhanced Linux Borrador Borrador Prefacio v 1 Convenciones del Documento coccoccccnncoccnnnoncnnnonononononnnononnnononnonrnnnnnnnnnnnrnnnonnannnnnannnninnnns v 1 1 Convenciones TipOQT ICAS oooocccccoconnccnononnnnnnnonnnnnnannnonnnnnnnnnnnrnnnrnnirnnrrnnirnnnnnnoss v 1 2 Convenciones del documento coccoccoccnccnncnccnnnnccnnnncnnnnnrannnorannnnrannnnronnnnronanarannnanons vii 1 3 Notas y AGVEmte NClaS deiina ena di AAA E aei aa vii 2 Necesitamos SUS comentarios cccececc secs cesta eeeeteeeeeeeeeneeaeeneeseeeeeaeegetseegeraeenenseegenaes viii 1 Informaci n de Marca Comercial 1 IL SOUICS oden ata 1 2 Introducci n 3 2 1 Beneficios de usar SELINUX ocooccoccnccoconcconnncnnnoncnnnoncnncnnronnnnroncnnnnnnnncnnnnnnnnnnnrannnnnannnnnans 4 22 Ejemplos iia ai e iaa
37. L se lanza puede realizar acciones sobre la pol tica actual que no han sido vistas antes haciendo que el acceso sea denegado a n cuando el acceso deber a ser permitido For these situations after access is denied use audit2a1low to create a custom policy module to allow access Refer to Secci n 7 3 8 Permitiendo el Acceso audit2allow for information about using audit2allow 7 3 Correcci n de Problemas Las siguientes secciones ayudan a resolver problemas Cubren los temas chequeo de los permisos de Linux que se chequean antes que las reglas de SELinux posibles causas de negaciones de acceso de SELinux pero no negaciones que se est n guardando p ginas man de los servicios que contienen informaci n sobre etiquetado y Booleanos dominios permisivos para permitir a un proceso correr en modo permisivo en vez de todo el sistema c mo buscar y encontrar mensajes an lisis de negaciones y creaci n de m dulos de pol ticas personalizados con audit2a11ow 7 3 1 Permisos de Linux When access is denied check standard Linux permissions As mentioned in Cap tulo 2 Introducci n most operating systems use a Discretionary Access Control DAC system to control access allowing users to control the permissions of files that they own SELinux policy rules are checked after DAC rules SELinux policy rules are not used if DAC rules deny access first Si el acceso es denegado y no hay negaciones SELinux guardadas use el comando
38. SELinux Para la pol tica destinada instale selinux policy targeted Para MLS instale selinux policy mls En Fedora 8 la pol tica estricta fue mezclada con la pol tica destinada permitiendo a los usuarios confinados y no confinados coexistir en el mismo sistema setroubleshoot server traduce mensajes de negaciones producidos cuando el acceso es denegado por SELinux en descripciones detalladas que se ven con sealert que se provee en este paquete setools setools gui and setools console these packages provide the Tresys Technology SE Tools distribution a number of tools and libraries for analyzing and querying policy audit log monitoring and reporting and file context management The setools package is a meta package for SETools The setools gui package provides the apol seaudit and sediffx tools The setools console package provides the seaudit report sechecker sediff seinfo sesearch findcon replicon and indexcon command line tools Refer to the Tresys Technology SETools page for information about these tools libselinux utils provee las herramientas avcstat getenforce getsebool matchpathcon selinuxconlist selinuxdefcon selinuxenabled setenforce togglesebool mcstrans traduce niveles tales como s0 s0 c0 c1023 a una forma legible como SystemLow SystemHigh Este paquete no se instala por defecto 7 http oss tresys com projects refpolicy E http oss tresys com projects setools Brindle Joshua Re
39. a 5 Ejecute el comando cd prueba para cambiar al directorio prueba Una vez ah ejecute el comando star x f prueba star para extraer el archivo Star star x f test star star 1 blocks O bytes total of 10240 bytes 10 00k 6 Ejecute el comando 1s 1Z prueba para ver los contextos SELinux El tipo httpd_sys_content_t fue retenido en vez de haberse cambiado al default_t lo que hubiera pasado si la opci n selinux no se hubiera usado ls 1Z test rw r r userid group1 unconfined_u object_r httpd_sys_content_t s0 file1 rw r r userid group1 unconfined_u object_r httpd_sys_content_t s0 file2 rw r r useri group1 unconfined_u object_r httpd_sys_content_t s0 file3 rw r r userid group1 unconfined_u object_r default_t s0 test star 7 Siel directorio prueba no se necesita mas como usuario root de Linux ejecute el comando rm ri prueba para eliminarlo as como todos los archivos en l 8 Si star ya no se necesita como usuario root de Linux ejecute el comando yum remove star para eliminar el paquete 45 Cap tulo 5 Trabajando con SELinux Borrador Refer to the star 1 manual page for further information about star 46 Borrador Borrador Confinando a los Usuarios A number of confined SELinux users are available in Fedora 13 Each Linux user is mapped to an SELinux user via SELinux policy allowing Linux users to inherit the restrictions placed on SELinux users f
40. a determinada Ignorar una nota no deber a tener consecuencias negativas pero podr a perderse de algunos trucos que pueden facilitarle las cosas vii Prefacio Borrador Importante Important boxes detail things that are easily missed configuration changes that only apply to the current session or services that need restarting before an update will apply Ignoring a box labeled Important won t cause data loss but may cause irritation and frustration Advertencia Las advertencias no deben ignorarse Ignorarlas muy probablemente ocasionar p rdida de datos 2 Necesitamos sus comentarios Si encuentra un error tipogr fico en este manual o si sabe de alguna manera de mejorarlo nos gustar a escuchar sus sugerencias Por favor complete un reporte en Bugzilla http bugzilla redhat com bugzilla usando el producto Fedora Documentation Cuando env e un reporte de error no olvide mencionar el identificador del manual selinux user guide Si tiene una sugerencia para mejorar la documentaci n intente ser tan espec fico como sea posible cuando describa su sugerencia Si ha encontrado un error por favor incluya el n mero de secci n y parte del texto que rodea el error para que podamos encontrarlo m s f cilmente viii Borrador Borrador Informaci n de Marca Comercial Linux es una marca comercial registrada de Linus Torvalds en los EEUU y en otros pa ses UNIX es una marca comercial registrada d
41. a recomendado crear una pol tica m nima y luego poner la m quina completa en modo permisivo para que la aplicaci n pudiera funcionar pero las negaciones de SELinux eran igualmente grabadas audit2allow podr a usarse luego para ayudar a escribir la pol tica Esto pone todo el sistema en riesgo Con dominios permisivos s lo el dominio en la nueva pol tica puede marcarse como permisivo sin poner en riesgo todo el sistema 7 3 4 1 Creando un Dominio Permisivo Para hacer un dominio permisivo ejecute el comando semanage permissive a dominio donde dominio es el dominio que quiere hacer permisivo Por ejemplo ejecute el siguiente comando como usuario root de Linux para hacer permisivo el dominio httpd_t el dominio en el que corre el Servidor HTTP Apache usr sbin semanage permissive a httpd_t Para ver una lista de los dominios que hizo permisivos corra el comando semodule 1 grep permissive como usuario root de Linux Por ejemplo usr sbin semodule 1 grep permissive permissive_httpd_t 1 0 Si ya no quiere que un dominio sea permisivo corra el comando semanage permissive d dominio como usuario root de Linux Por ejemplo usr sbin semanage permissive d httpd_t 7 3 4 2 Negaciones para Dominios Permisivos El mensaje SYSCALL es diferente para dominios permisivos El siguiente es un ejemplo de una negaci n de AVC y la llamada a sistema asociada desde el Servidor HTTP Apache type AVC msg audit 1226882736 442 86
42. and srv inherit this type Also newly created top level directories such as myserver may be labeled with the default_t type SELinux prevents the Apache HTTP Server httpd from accessing both of these types To allow access SELinux must know that the files in srv myweb are to be accessible to httpd usr sbin semanage fcontext a t httpd_sys_content_t srv myweb Este comando semanage agrega el contexto para el directorio srv miweb y todos los archivos dentro de l a la configuraci n de contexto de archivos de SELinux El comando semanage no cambia el contexto Como usuario root de Linux ejecute el comando restorecon para aplicar los cambios sbin restorecon R v srv myweb Refer to Secci n 5 7 2 Cambios Persistentes semanage fcontext for further information about adding contexts to the file context configuration 7 2 1 1 Cu l es el contexto correcto El comando matchpathcon chequea el contexto de un nombre completo de archivo y lo compara con la etiqueta por defecto para esa direcci n El siguiente ejemplo muestra el uso de matchpathcon en un directorio con archivos etiquetados incorrectamente usr sbin matchpathcon V var www html var www html index html has context unconfined_u object_r user_home_t s0 should be system_u object_r httpd_sys_content_t s0 var ww html page1 html has context unconfined_u object_r user_home_t s0 should be system_u object_r httpd_sys_content_t s0
43. and if no label changes or Booleans allowed access use audit2a1l1low to create a local policy module After access is denied by SELinux running the audit2a11ow command presents Type Enforcement rules that allow the previously denied access El siguiente ejemplo muestra el uso de audit2a11low para crear un m dulo de politica 1 Una negaci n y la llamada al sistema asociado se graban en var log audit audit 1log type AVC msg audit 1226270358 848 238 avc denied write for pid 13349 comm certwatch name cache dev dm 0 ino 218171 scontext system_u system_r certwatch_t s0 tcontext system_u object_r var_t s0 tclass dir type SYSCALL msg audit 1226270358 848 238 arch 40000003 syscall 39 success no exit 13 a0 39a2bf al 3ff a2 3a0354 a3 94703c8 items 0 ppid 13344 pid 13349 auid 4294967295 uid 0 gid 0 euid 0 suid 0 fsuid 0 egid 0 sgid 0 fsgid 0 tty none ses 4294967295 comm certwatch exe usr bin certwatch subj system_u system_r certwatch_t s0 key null In this example certwatch comm certwatch was denied write access write toa directory labeled with the var_t type tcontext system_u object_r var_t s0 Analyze the denial as per Secci n 7 3 7 Mensajes sealert If no label changes or Booleans allowed access use audit2allow to create a local policy module 2 Conuna negaci n grabada tal como la negaci n de certwatch en el paso 1 corra el comando audit2allow w a para producir una descripci n legible al humano
44. andos de montaje subsecuentes En el siguiente ejemplo el servidor NFS tiene un exportado nico export que tiene dos subdirectorios web and database El siguiente comando intenta dos montajes desde un nico export NFS e intenta sobreescribir el contexto para cada uno mount server export web local web o context system_u object_r httpd_sys_content_t s0o mount server export database local database o context system_u object_r mysqld_db_t so El segundo comando mount falla y se graba lo siguiente en var log messages kernel SELinux mount invalid Same superblock different security settings for dev 0 15 type nfs Para montar montajes m ltiples de un exportado NFS nico con cada montaje teniendo un contexto diferente use las opciones o nosharecache context El siguiente ejemplo monta montajes m ltiples de un nico export de NSF con un contexto diferente para cada montaje permitiendo un nico acceso de servicio a cada uno mount server export web local web o nosharecache context system_u object_r httpd_sys_content_t so mount server export database local database o nosharecache context system_u object_r mysqld_db_t s0 En este ejemplo server export web se monta localmente en local web con todos los archivos etiquetados con el tipo httpd_sys_content_t lo que permite el acceso al Servidor HTTP Apache server export database est montado localmente en local database con lo
45. ara detener a httpd sbin service httpd stop Stopping httpd OK Este ejemplo muestra la seguridad adicional agregada por SELinux Aunque las reglas de DAC permitieron al proceso httpd acceder a prueba en el paso 7 dado que estaba etiquetado con un tipo al que el proceso httpd no ten a acceso SELinux neg el acceso Despu s del paso 7 un error similar al siguiente se guarda en var log messages May 6 23 00 54 localhost setroubleshoot SELinux is preventing httpd httpd_t getattr to var www html testfile samba_share_t For complete SELinux messages run sealert 1 co5911d3 e680 4e42 8e36 fe2ab9f8e654 Archivos log previos pueden usar el formato var log messages YYYYMMDD Cuando se ejecuta syslog ng los archivos log previos pueden usar el formato var 1log messages X Si los procesos setroubleshootd y auditd est n ejecut ndose errores similares a los siguientes se registran en var log audit audit log type AVC msg audit 1220706212 937 70 avc denied getattr for pid 1904 comm httpd path var www html testfile dev sda5 ino 247576 scontext unconfined_u system_r httpd_t s0 tcontext unconfined_u object_r samba_share_t s0 tclass file type SYSCALL msg audit 1220706212 937 70 arch 40000003 syscall 196 success no exit 13 a0 b9e21da0 al bf9581dc a2 555ff4 a3 2008171 items 0 ppid 1902 pid 1904 auid 500 uid 48 gid 48 euid 48 suid 48 fsuid 48 egid 48 sgid 48 fsgid 48 tty none ses 1 comm httpd exe usr sbin http
46. as reglas de la pol tica de SELinux pero las reglas de pol ticas que existen para usuarios Linux que corren en el dominio unconfined_t permiten casi todos los accesos Si los usuarios Linux no confinados ejecutan una aplicaci n que la pol tica de SELinux define pueden transicionar desde el dominio unconfined_t a su propio dominio confinado los usuarios Linux no confinados todav a pueden ser sujetos a restricciones del dominio confinado El beneficio de seguridad de esto es que aunque el usuario Linux corre en un dominio confinado la aplicaci n permanece confinada y por lo tanto la explotaci n de una brecha en la aplicaci n se puede limitar por la politica Nota esto no protege al sistema del usuario En su lugar el usuario y el sistema est n siendo protegido de posibles da os causados en alguna debilidad en la aplicaci n 47 Cap tulo 6 Confinando a los Usuarios Borrador Cuando se crean usuarios Linux con useradd use la opci n Z para especificar a qu usuario SELinux se debe mapear El siguiente ejemplo crea un usuario Linux nuevo useruuser y mapea ese usuario al usuario SELinux user_u Los usuarios Linux mapeados al usuario SELinux user_u corren en el dominio user_t En este dominio los usuarios Linux no pueden correr aplicaciones setuid a menos que la pol tica de SELinux lo permita tal como passwd y tampoco pueden correr su o sudo lo que evita que se puedan volver usuarios root de Linux con estos comandos 1
47. aureport The audit package provides aureport From the aureport 8 manual page aureport is a tool that produces summary reports of the audit system logs The aureport tool accesses var log audit audit log and as such must be run as the Linux root user To view a list of SELinux denials and how often each one occurred run the aureport a command The following is example output that includes two denials sbin aureport a 5 http danwalsh livejournal com 24537 html From the ausearch 8 manual page as shipped with the audit package in Fedora 13 From the ausearch 8 manual page as shipped with the audit package in Fedora 13 From the aureport 8 manual page as shipped with the audit package in Fedora 13 61 Cap tulo 7 Soluci n a Problemas Borrador AVC Report 1 05 01 2009 21 41 39 httpd unconfined_u system_r httpd_t s0 195 file getattr system_u object_r samba_share_t s0 denied 2 2 05 03 2009 22 00 25 vsftpd unconfined_u system_r ftpd_t s0 5 file read unconfined_u object_r cifs_t s0 denied 4 Refer to the aureport 8 manual page for further aureport options sealert El paquete setroubleshoot server provee sealert que lee los mensajes de negaci n traducidos por setroubleshoot server A las negaciones se le asignan IDs como se ve en var log messages El siguiente es un ejemplo de negaci n en messages setroubleshoot SELinux is preventing httpd httpd_t getattr to var www html file1 samba_sha
48. bon 3 6 33 41 Fc017 lose 4m Previous 62 Borrador Raw Audit Messages Ejecute el comando sealert b para lanzar la GUI de sealert e Ejecute el comando sealert 1 para ver un an lisis detallado de todas las negaciones As the Linux root user run the sealert a var log audit audit log H gt audit html command to create a HTML version of the sealert analysis as seen with the sealert GUI Refer to the sealert 8 manual page for further sealert options 7 3 6 Raw Audit Messages Los mensajes crudos de auditor a se guardan en var log audit audit log El siguiente es un ejemplo de negaci n AVC y su llamada a sistema asociado que ocurr o cuando el Servidor HTTP Apache corriendo en el dominio httpd_t intent acceder el var www html archivo1 etiquetado con el tipo samba_share_t type AVC msg audit 1226874073 147 96 avc denied getattr for pid 2465 comm httpd path var www html filei dev dm 0 ino 284133 scontext unconfined_u system_r httpd_t s0 tcontext unconfined_u object_r samba_share_t s0 tclass file type SYSCALL msg audit 1226874073 147 96 arch 40000003 syscall 196 success no exit 13 a0 b98df198 al bfec85dc a2 54dff4 a3 2008171 items 0 ppid 2463 pid 2465 auid 502 uid 48 gid 48 euid 48 suid 48 fsuid 48 egid 48 sgid 48 fsgid 48 tty none ses 6 comm httpd exe usr sbin httpd subj unconfined_u system_r httpd_t s0 key null getattr The item in braces indicates the permission that was
49. ccococccononocnnnnnoonnnnonannnnnonannnnnonancnnnonancnnnos 39 5 10 1 Copia de Directorios y Archivos 0coooccccnnconoccccnncccnncnnnnccncnnnnnnannnnncnonnnnnonarcnnnnins 39 5 10 2 Movimiento de Archivos y Directorios ooocccccnccnoccccnncccnncnnnnncncnncncnannnonaccnnnninns 41 5 10 3 Chequeando el Contexto SELinux Predeterminado ooocccoccccnnccccncccnnccccnnccnnnnns 42 5 10 4 Archivando archivos CON tal occococcconoccnononnnononnnnnnnnonnnnnnnnnnronnnnronnnnnannonnannnnnans 43 5 10 5 Archivando archivos CON tal occocccccononcnononcnnnonnnnnonnnnnononnnnnnonnnnronnnnrnnnnnrannnnnnns 44 Linux con Seguridad Mejorada Borrador 6 Confinando a los Usuarios 47 6 1 Linux y los Mapeos de Usuarios de SELINUX 0cccoccccnnccccnocinnccnnnncccnncnnnnancnnncnnnannnnncncnnnns 47 6 2 Confinando Usuarios Nuevos de Linux useradd ooooccccnnnccccnnnnnccnnnnnnccnnnnnnccnnnnnnrrnnnnnnno 47 6 3 Confinando Usuarios Linux Existentes semanage login ooooonoccccnccinncccnnncccnncnnnnaccnnncnns 48 6 4 Cambiando el Mapeo Predeterminado cccoocccocccnnnccccnocinnccnnnncccnnannnnarnnnncnnnnnnnnncccnnaninns 50 6 5 XguesSt Modo KIOSK cccsicsacweasansncrsanan AO 51 6 6 Booleanos para que los Usuarios Ejecuten Aplicaciones oooonccccncinoccccnncccnncnnnncccnnnncnns 51 7 Soluci n a Problemas 53 7 1 Qu pasa cuando el Acceso es Denegado occccccococcncnnnioconnnnnncnnnnnancnnnonnnnnnonannnnnonanonnns 53 7 2 Tres Principa
50. ci n de dominio 1 Auser wants to change their password To do this they run the passwd application The usr bin passwd executable is labeled with the passwd_exec_t type ls Z usr bin passwd rwsr xr x root root system_u object_r passwd_exec_t s0 usr bin passwd La aplicaci n passwd accede etc shadow que est etiquetado con el tipo shadow_t ls Z etc shadow Y root root system_u object_r shadow_t s0 etc shadow 2 Una regla de pol tica de SELinux dice que los procesos que se ejecutan en el dominio passwd_t no pueden leer y escribir archivos etiquetados con el tipo shadow_t El tipo shadow_t s lo se aplica a archivos que necesitan un cambio de contrase as Esto incluye a etc gshadow etc shadow y sus archivos de respaldo 3 Una regla de pol tica de SELinux fija que el dominio passwd_t tiene permiso de entrypoint al tipo passwd_exec_t a http en wikipedia org wiki Bell LaPadula_model E http oss tresys com projects refpolicy Borrador Contextos de SELinux para los Procesos 4 When a user runs the usr bin passwd application the user s shell process transitions to the passwd_t domain With SELinux since the default action is to deny and a rule exists that allows among other things applications running in the passwd_t domain to access files labeled with the shadow_t type the passwd application is allowed to access etc shadow and update the user s password Este ejemplo no es exhaustivo
51. confined_u object_r user_home_t s0 var ww htm1 file1 In this example file1 is created in a user s home directory and is labeled with the user_home_t type The var www html1 directory is labeled with the httpd_sys_content_t type as shown with the ls dZ var www html1 command Using the preserve context option preserves SELinux contexts during copy operations As shown with the ls Z var www html1 file1 command the file1 user_home_t type was preserved when the file was copied to var www htm1 Copiado y Cambio del Contexto Use the cp Z command to change the destination copy s context The following example was performed in the user s home directory 40 Borrador Movimiento de Archivos y Directorios touch filet cp Z system_u object_r samba_share_t s0 file1 file2 ls Z file1 file2 rw rw r userid group1 unconfined_u object_r user_home_t s0 file1 rw rw r useri group1 system_u object_r samba_share_t s0 file2 rm file1 file2 En este ejemplo el contexto se define en la opci n Z Sin la opci n Z archivo2 se etiquetar a con el contexto unconfined_u object_r user_home_t Copia de un Archivos sobre un otro existente When a file is copied over an existing file the existing file s context is preserved unless an option is used to preserve contexts For example touch etc file1 tt ls Z etc filel rw r r root root unconfined_u object_r etc_t s0 etc filet touch tmp file2 1s
52. ct_r default_t s0 web El comando usr sbin semanage fcontext a t httpd_sys_content_t web agrega la siguiente entrada a etc selinux targeted contexts files file_contexts local web unconfined_u object_r httpd_sys_content_t s0 Como usuario root de Linux ejecute el comando sbin restorecon v web para cambiar el tipo Como el comando semanage agreg una entrada a file contexts local para web el comando sbin restorecon cambia el tipo a httpd_sys_content_t sbin restorecon v web restorecon reset web context unconfined_u object_r default_t s0 gt system_u object_r httpd_sys_content_t s0 Por defecto los archivos y directorios reci n creados heredan el tipo SELinux de sus carpetas padres Cuando se us este ejemplo y antes de eliminar el contexto SELinux agregado para web los archivos y directorios creados en el directorio web fueron etiquetados con el tipo httpd_sys_content_t Como usuario root de Linux ejecute el comando usr sbin semanage fcontext d web para borrar el contexto agregado para web Como usuario root de Linux ejecute el comando sbin restorecon v web para restaurar el contexto predeterminado de SELinux Cambio de un Directorio y sus Tipos de Contenidos The following example demonstrates creating a new directory and changing the directory s file type along with its contents to a type used by Apache HTTP Server The configuration in this example is used if you want Apache HTTP Server to
53. cute el comando rm i etc archivol para borrar el archivol Como usuario root de Linux ejecute el comando usr sbin semanage fcontext d etc archivol1 para eliminar el contexto agregado para etc archivo1 Cuando el contexto se elimina ejecutando restorecon cambia el tipo a etc_t en vez de samba_share_t Changing a Directory s Type The following example demonstrates creating a new directory and changing that directory s file type to a type used by Apache HTTP Server 1 Como usuario root de Linux ejecute el comando mkdir web para crear un directorio nuevo Este directorio se etiqueta con el tipo default_t ls dZ web drwxr xr x root root unconfined_u object_r default_t s0 web La opci n d de 1s hace que 1s liste la informaci n de un directorio en vez de su contenido y la opci n Z hace que 1s muestre el contexto de SELinux en este ejemplo unconfined_u object_r default_t s0 Como usuario root de Linux ejecute el comando usr sbin semanage fcontext a t httpd_sys_content_t web para cambiar el tipo de web a httpd_sys_content_t La 32 Borrador Cambios Persistentes semanage fcontext opci n a agrega un nuevo registro y la opci n t define un tipo httpd_sys_content_t Nota la ejecuci n de este comando no cambia el tipo directamente web todav a tiene la etiqueta de tipo default_t usr sbin semanage fcontext a t httpd_sys_content_t web ls dZ web drwxr xr x root root unconfined_u obje
54. d No SELinux policy is loaded SELINUX disabled SELINUXTYPE can take one of these two values targeted Targeted processes are protected mls Multi Level Security protection SELINUXTYPE targeted Tambi n el comando getenforce devuelve Disabled usr sbin getenforce Disabled Para habilitar SELinux 1 Use los comandos rpm qa grep selinux rpm q policycoreutils y rpm qa grep setroubleshoot para confirmar que los paquetes de SELinux est n instalados esta gu a asume que los siguientes paquetes est n instalados selinux policy targeted selinux policy libselinux libselinux python libselinux utils policycoreutils setroubleshoot setroubleshoot server setroubleshoot plugins Si estos paquetes no est n instalados como usuario root de Linux debe instalarlos con el comando yum install nombre de paquete Los siguientes paquetes son opcionales policycoreutils gui setroubleshoot selinux policy devel y mcstrans 2 Antes de activar SELinux cada archivo en el sistema de archivo debe ser etiquetado con un contexto de SELinux Antes que esto ocurra los dominios confinados pueden tener el acceso denegado impidiendo de que su sistema se inicie correctamente Para prevenir esto configure SELINUX permissive en etc selinux config 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
55. d subj unconfined_u system_r httpd_t s0 key null Tambi n un error similar al siguiente se registra en var 1log httpd error_log Wed May 06 23 00 54 2009 error client 127 0 0 1 13 Permission denied access to testfile denied 4 2 Procesos no Confinados Los procesos no confinados corren en dominios no confinados por ejemplo los programas init del arranque corren en el dominio no confinado initrc_t los procesos no confinados del kernel corren en el dominio kernel_ t y los usuarios no confinados deLInux corren en el dominio unconfined_t Para procesos no confinados las reglas de la pol tica de SELinux son aplicadas pero hay reglas de la pol tica que permiten que los procesos se ejecuten en dominios no confinados tengan casi todos los accesos Los procesos que corren en dominios no confinados terminan usando exclusivamente las reglas DAC Si un proceso no confinado es comprometido SELinux no impide que un atacante gane acceso a los recursos del sistema y a los datos pero por supuesto las reglas DAC todav a se usan SELinux es una mejora de seguridad sobre las reglas DAC no las reemplaza 13 Cap tulo 4 Pol tica Destinado Borrador The following example demonstrates how the Apache HTTP Server httpd can access data intended for use by Samba when running unconfined Note in Fedora the httpd process runs in the confined httpd_t domain by default This is an example and should not be used in production It ass
56. del error 4 Para usar la regla mostrada por audit2allow a ejecute el comando audit2allow a M mycertwatch como usuario root de Linux La opci n M crea un archivo de Obligaci n de Tipo te con el nombre especificado en M en su directorio actual de trabajo audit2allow a M mycertwatch KRKKKKKKKKKKKKKKKKKEK IMPORTANT KREKKKKKKKKKKKKKKKKKKKKK To make this policy package active execute semodule i mycertwatch pp ls mycertwatch pp mycertwatch te Tambi n audit2allow compila la regla de Obediencia de Tipo en un paquete de pol tica pp Para instalar el m dulo ejecute el comando usr sbin semodule i mycertwatch pp como usuario root de Linux Importante Los m dulos creados con audit2allow pueden permitir m s acceso que el requerido Se recomienda que la pol tica creada con audit2allow sea enviada a una lista de SELinux tal como fedora selinux list para su revisi n Si cree que hay un error en la pol tica informe un error en Bugzilla de Red Hat Si tiene m ltiples negaciones de m ltiples procesos pero solo quiere crear una pol tica personalizada para un proceso nico use el comando grep para una b squeda m s refinada de audit2allow 67 Cap tulo 7 Soluci n a Problemas Borrador El siguiente ejemplo muestra el uso de grep para s lo enviar negaciones de certwatch a audit2allow grep certwatch var log audit audit log audit2allow M mycertwatch2 kkkxkxkxkxkxkxkxkxkkkkkkk
57. denied getattr indicates the source process was trying to read the target file s status information This occurs before reading files This action is denied due to the file being accessed having the wrong label Commonly seen permissions include getattr read and write comm ht tpa The executable that launched the process The full path of the executable is found in the exe section of the system call SYSCALL message which in this case is exe usr sbin httpd path var ww htm1 file1 La direcci n al objeto destino al que quiere acceder el proceso scontext unconfined_u system_r httpd_t so El contexto de SELinux del proceso que intent la acci n denegada En este caso es el contexto SELinux del Servidor HTTP Apache que core en el dominio httpd_t tcontext unconfined_u object_r samba_share_t s0 El contexto de SELinux del objeto destino al que intent acceder el proceso En este caso es el contexto SELinux del archivo1 Nota el tipo samba_share_t no es accesible para procesos que corren el dominio httpd_t En ciertas cituaci nes el tcontext puede coincidir con scontext por ejemplo cuando un proceso intenta ejecutar un servicio del sistema que cambiar las caracter sticas de ese proceso en ejecuci n tales como el ID del usuario Tambi n el tcontext puede coincidir con el scontext cuando un proceso intenta usar m s recursos como la memoria m s all de los l mites normales permitidos lo que resulta en un cheq
58. desarrolladores de e Herramientas y bibliotecas en el espacio del usuario para SELinux e Pol tica de Referencia de SELinux Noticias de SELinux e News hitp selinuxnews org wp e Planet SELinux blogs http selinuxnews org planet Wiki del Proyecto SELinux e Main page http selinuxproject org page Main_Page User resources including links to documentation mailing lists websites and tools http selinuxproject org page User_Resources Al http www nsa gov research selinux contrib shtml 5 http www tresys com 69 Cap tulo 8 Informaci n Adicional Borrador Linux para Empresas de Red Hat La Gu a de Despliegue del Linux para Empresas de Red Hat contiene una secci n de Referencias SELinux que tiene enlaces a tutoriales de SELinux informaci n general y la tecnolog a detr s de SELinux La Gu a de SELinux del Linux para Empresas de Red Hat 4 Fedora e Main page htip fedoraproject org wiki SELinux Troubleshooting http fedoraproject org wiki SELinux Troubleshooting Fedora Core 5 SELinux FAQ http docs fedoraproject org selinux faq fc5 e SELinux Managing Confined Services Guide http docs fedoraproject org selinux managing confined services guide Las Preguntas Frecuentes No Oficiales de SELinux http www crypt gen nz selinux faq html IRC En Freenode e selinux e fedora selinux e security http freenode net 70 Borrador
59. desde la barra de men de gedit El texto anterior incluye nombres de aplicaci n nombres y elementos del men de todo el sistema nombres de men de aplicaciones espec ficas y botones y texto hallados dentro de una interfaz gr fica de usuario todos presentados en negrita proporcional y distinguibles por contexto It licas negrita monoespaciado o It licas negrita proporcional Ya sea negrita monoespaciado o negrita proporcional la adici n de it licas indica texto reemplazable O variable Las italicas denotan texto que usted no escribe literalmente o texto mostrado que cambia dependiendo de la circunstancia Por ejemplo Para conectar a una m quina remota utilizando ssh teclee ssh nombredeusuario dominio nombre en un int rprete de comandos de shell Si la m quina remota es example com y su nombre de usuario en esa maquina es john teclee ssh john example com El comando mount o remount file system remonta el sistema de archivo llamado Por ejemplo para volver a montar el sistema de archivo home el comando es mount o remount home Para ver la versi n de un paquete actualmente instalado utilice el comando rpm q paquete ste entregar el resultado siguiente paquete versi n lanzamiento vi Borrador Convenciones del documento Observe las palabras en it licas negrita sobre nombre de usuario domain name sistema de archivo paquete versi n y lanzamiento Cada palabra es un marcador de posici n tan
60. e El Grupo Abierto Type Enforcement Obligaci n de Tipos es una marca comercial de Secure Computing LLC una subsidiaria de McAfee Inc registrada en los EEUU y en otros pa ses Ni McAfee ni Secure Computing LLC ha consentido el uso o referencia de esta marca comercial para el autor fuera de esta gu a Apache es una marca comercial de La Fundaci n de Software Apache MySQL es una marca comercial o marca comercial registrada de MySQL AB en los EEUU y en otros pa ses Other products mentioned may be trademarks of their respective corporations 1 1 Source Code The XML source for this guide is available at http svn fedorahosted org svn selinuxguide Borrador Borrador Introducci n Security Enhanced Linux SELinux is an implementation of a mandatory access control mechanism in the Linux kernel checking for allowed operations after standard discretionary access controls are checked It was created by the National Security Agency and can enforce rules on files and processes in a Linux system and on their actions based on defined policy When using SELinux files including directories and devices are referred to as objects Processes such as a user running a command or the Mozilla Firefox application are referred to as subjects Most operating systems use a Discretionary Access Control DAC system that controls how subjects interact with objects and how subjects interact with each other On operati
61. e Linux ejecute el comando touch etc archivo1 para crear un archivo nuevo Por defecto los archivos reci n creados en el directorio etc se etiquetan con el tipo etc_t ls Z etc file1 rw r r root root unconfined_u object_r etc_t s0 etc filei 31 Cap tulo 5 Trabajando con SELinux Borrador Como usuario root de Linux ejecute el comando usr sbin semanage fcontext a t samba_share_t etc archivol1 para cambiar el tipo del archivoi a samba_share_t La opci n a agrega un registro nuevo y la opci n t define un tipo samba_share_t Nota al ejecutar este comando no se cambia directamente el tipo el archivo1 todavia es del tipo etc_t usr sbin semanage fcontext a t samba_share_t etc filel ls Z etc filel rw r r root root unconfined_u object_r etc_t s0 etc file1 El comando usr sbin semanage fcontext a t samba_share_t etc archivo1 agrega la siguiente entrada a etc selinux targeted contexts files file _contexts local etc file1 unconfined_u object_r samba_share_t s0 Como usuario root de Linux ejecute el comando sbin restorecon v etc archivo1 para cambiar el tipo Dado que el comando semanage agreg una entrada a file contexts local para etc archivoi el comando sbin restorecon cambia el tipo a samba_share_t sbin restorecon v etc filel restorecon reset etc filei context unconfined_u object_r etc_t s0 gt system_u object_r samba_share_t s0 Como usuario root de Linux eje
62. equeso de memoria escribible y ejecutable y tambi n son restringidos por MCS y MLS si la pol tica MLS est siendo usada Si los usuarios Linux no confinados ejecutan una aplicaci n que la pol tica de SELinux define que puede transicionar del dominio unconfined_t a su propio dominio confinado los usuarios Linux no confinados est n sujetos a restricciones de ese dominio confinado El beneficio de seguridad de esto es que aunque un usuario Linux corra no confinado la aplicaci n permanece confinada y por lo tanto la explotaci n de una brecha en la aplicaci n est limitada por la pol tica Nota esto no protege al sistema del usuario En su defecto el usuario y el sistema est n siendo protegidos de posibles da os causados por una brecha en la aplicaci n The following confined SELinux users are available in Fedora 13 Usuario Dominio Sistema de su y sudo Ejecute en el Red Ventanas X directorio de inicio y tmp guest_u guest_t optional no xguest_u xguest_t optional only Firefox user_u user_t optional yes staff_u staff_t yes only sudo optional yes Tabla 4 1 Capacidades del Usuario SELinux e Los usuarios Linux en los dominios guest_t xguest_t y user_t s lo pueden ejecutar aplicaciones con ID de usuario setuid si la politica de SELinux lo permite tal como passwd No podr n ejecutar su y usr bin sudo e Los usuarios Linux en el dominio guest_t no tienen acceso a la red y s lo pueden i
63. ers A number of confined SELinux users exist in SELinux policy Linux users can be mapped to confined SELinux users to take advantage of the security rules and mechanisms applied to them For example mapping a Linux user to the SELinux user_u user results in a Linux user that is not able to run unless configured otherwise set user ID setuid applications such as sudo and su as well as preventing them from executing files and applications in their home directory if configured this prevents users from executing malicious files from their home directories e Process separation is used Processes run in their own domains preventing processes from accessing files used by other processes as well as preventing processes from accessing other processes For example when running SELinux unless otherwise configured an attacker can not compromise a Samba server and then use that Samba server as an attack vector to read and write to files used by other processes such as databases used by MySQL e SELinux helps limit the damage made by configuration mistakes Domain Name System DNS servers often replicate information between each other in what is known as a zone transfer Attackers can use zone transfers to update DNS servers with false information When running the Berkeley Internet Name Domain BIND as a DNS server in Fedora even if an administrator forgets to limit which servers can perform a zone transfer the default SELinux policy prevent
64. es tipogr ficas para llamar la atenci n sobre palabras o frases espec ficas Dichas convenciones y las circunstancias en que se aplican son las siguientes Negrita monoespaciado Utilizada para resaltar la entrada del sistema incluyendo comandos de shell nombres de archivo y rutas Tambi n se utiliza para resaltar teclas claves y combinaciones de teclas Por ejemplo Para ver el contenido del archivo my_next_bestselling_novel en su directorio actual de trabajo escriba el comando cat my_next_bestselling_novel en el int rprete de comandos de shell y pulse Enter para ejecutar el comando El ejemplo anterior incluye un nombre de archivo un comando de shell y una tecla clave Todo se presenta en negrita monoespaciado y distinguible gracias al contexto Las combinaciones de teclas se pueden distinguir de las teclas claves mediante el gui n que conecta cada parte de una combinaci n de tecla Por ejemplo Pulse Enter para ejecutar el comando j https fedorahosted org liberation fonts Prefacio Borrador Pulse Control1 A1t F1 para cambiar a la primera terminal virtual Pulse Control A1t F7 para volver a su sesi n de Ventanas X La primera oraci n resalta la tecla clave determinada que se debe pulsar La segunda resalta dos conjuntos de tres teclas claves que deben ser presionadas simult neamente Si se discute el c digo fuente los nombres de las clase los m todos las funciones los nombres de variables y valores de ret
65. eset file1 context unconfined_u object_r samba_share_t s0 gt system_u object_r user_home_t s0 En este ejemplo el tipo previo samba_share_t se restaura al tipo correcto user_home_t Cuando se usa la politica destinada la politica SELinux predeterminada en Fedora 11 el comando sbin restorecon lee los archivos en el directorio etc selinux targeted contexts files para ver qu contexto de SELinux deben tener los archivos El ejemplo en esta secci n funciona igual para directorios por ejemplo si archivo1 fuera un directorio Cambio de un Directorio y sus Tipos de Contenidos The following example demonstrates creating a new directory and changing the directory s file type along with its contents to a type used by the Apache HTTP Server The configuration in this example is used if you want Apache HTTP Server to use a different document root instead of var www htm1 1 Como usuario root de Linux ejecute el comando mkdir web para crear un directorio nuevo y luego el comando touch web archivo 1 2 3 para crear 3 archivos vac os archivo1 archivo2 y archivo3 El directorio web y los archivos en l son etiquetados con el tipo default_t ls dZ web drwxr xr x root root unconfined_u object_r default_t s0 web tt ls 1Z web rw r r root root unconfined_u object_r default_t s0 filel rw r r root root unconfined_u object_r default_t s0 file2 rw r r root root unconfined_u object_r default_t s0 file3 Com
66. eso recibe un error SELinux decisions such as allowing or disallowing access are cached This cache is known as the Access Vector Cache AVC Caching decisions decreases how often SELinux policy rules need to be checked which increases performance Remember that SELinux policy rules have no effect if DAC rules deny access first 2 4 SELinux en otros Sistemas Operativos Vaya a la siguiente informaci n sobre c mo correr SELinux en sistemas operativos Hardened Gentoo http www gentoo org proj en hardened selinux selinux handbook xml e Debian http wiki debian org SELinux e Ubuntu https wiki ubuntu com SELinux and https help ubuntu com community SEL inux e Linux para Empresas de Red Hat Gu a de Despliegue del Linux para Empresas de Red Hat y la Gu a de SELinux para el Linux para Empresas de Red Hat e Fedora http fedoraproject org wiki SELinux and the Fedora Core 5 SELinux FAQ 14 http www tresys com 15 http www tresys com innovation php Borrador Borrador Contextos de SELinux Processes and files are labeled with an SELinux context that contains additional information such as an SELinux user role type and optionally a level When running SELinux all of this information is used to make access control decisions In Fedora SELinux provides a combination of Role Based Access Control RBAC Type Enforcement TE and optionally Multi Level Security MLS The following is an example
67. fined by default change the default mapping with the semanage login command Por ejemplo corra el siguiente comando como usuario root de Linux para cambiar el mapeo predeterminado de unconfined_u auser_u usr sbin semanage login m S targeted s user_u r sO _ default__ Corra el comando semanage login 1 como usuario root de Linux para verificar que el ingreso __default__ se mapea a user_u usr sbin semanage login 1 Login Name SELinux User MLS MCS Range _ default__ user_u sO root unconfined_u s0 s0 c0 c1023 system_u system_u s0 s0 c0 c1023 Si un usuario Linux nuevo se crea y el usuario SELinux no se especifica o si un usuario Linux existente ingresa y no coincide una entrada espec fica de la salida de semanage login 1 se mapean a user_u seg n el ingreso __default__ Para volver al comportamiento predeterminado corra el siguiente comando como usuario root de Linux para mapear el ingreso __default__ al usuario SELinux unconfined_u usr sbin semanage login m S targeted s unconfined_u r s0 s0 c0 c1023 _ default__ 50 Borrador xguest Modo Kiosk 6 5 xguest Modo Kiosk The xguest package provides a kiosk user account This account is used to secure machines that people walk up to and use such as those at libraries banks airports information kiosks and coffee shops The kiosk user account is very limited essentially it only allows users to log in and use Firefox to browse Internet websites Any c
68. hanges made while logged in with his account such as creating files or changing settings are lost when you log out Para configurar la cuenta kiosk 1 Como usuario root de Linux corra el comando yum install xguest para instalar el paquete xguest Instale las dependencias requeridas 2 Para permitir a la cuenta kiosk usarse para una variedad de personas la cuenta no se protege con contrase a y como tal la cuenta s lo se puede proteger si SELinux est funcionando en modo obediente Antes de ingresar con esta cuenta use el comando getenforce para confirmar que SELinux est funcionando en modo obediente usr sbin getenforce Enforcing If this is not the case refer to Secci n 5 5 Modos de SELinux for information about changing to enforcing mode It is not possible to log in with this account if SELinux is in permissive mode or disabled 3 Solamente puede ingresar a esta cuenta a trav s del Administraci n de Pantalla de GNOME GDM Una vez que el paquete xguest se instala se agrega una cuenta Invitado a GDM Para ingresar haga clic en la cuenta Invitado Log in as xguest Restart 6 Shut Down 6 6 Booleanos para que los Usuarios Ejecuten Aplicaciones Not allowing Linux users to execute applications which inherit users permissions in their home directories and tmp which they have write access to helps prevent flawed or malicious applications 51 Cap tulo 6 Confinando a los Usuarios Bo
69. in recargar o recompilar la pol tica de SELinux 5 6 1 Listando los Booleanos Para una lista de los Booleanos una explicaci n de lo que son y de si est n activos o inactivos ejecute el comando semanage boolean 1 como usuario root de Linux El siguiente ejemplo no lista todos los Booleanos usr sbin semanage boolean 1 SELinux boolean Description ftp_home_dir gt off Allow ftp to read and write files in the user home directories xen_use_nfs gt off Allow xen to manage nfs files xguest_connect_network gt on Allow xguest to configure Network Manager La columna SELinux boolean lista los nombres de Booleanos La columna Description lista si el booleano est activo on o inactivo off y lo que hacen En el siguiente ejemplo el Booleano ftp_home_dir est apagado impidiendo al demonio FTP vsftpd la lectura y escritura de archivos en los directorios de inicio de los usuarios ftp_home_dir gt off Allow ftp to read and write files in the user home directories El comando getsebool a lista los Booleanos ya sea que est n activos o inactivos pero no da una descripci n de cada uno El siguiente ejemplo no lista todos los booleanos usr sbin getsebool a allow_console_login gt off allow_cvs_read_shadow gt off allow_daemons_dump_core gt on Ejecute el comando getsebool nombre de booleano para listar solamente el estado del booleano nombre de booleano usr sbin getsebool allow_console_login allo
70. ined_u s0 s0 c0 c1023 newuser user_u sO root unconfined_u s0 s0 c0 c1023 system_u system_u s0 s0 c0 c1023 As the Linux root user run the passwd newuser command to assign a password to the Linux newuser user passwd newuser Changing password for user newuser New UNIX password Enter a password Retype new UNIX password Enter the same password again passwd all authentication tokens updated successfully Log out of your current session and log in as the Linux newuser user Run the id Z command to view the newuser s SELinux context newuser rlocalhost id Z 49 Cap tulo 6 Confinando a los Usuarios Borrador user_u user_r user_t s0 6 Log out of the Linux newuser s session and log back in with your account If you do not want the Linux newuser user run the userdel r newuser command as the Linux root user to remove it along with its home directory Also the mapping between the Linux newuser user and user_u is removed usr sbin userdel r newuser usr sbin semanage login 1 Login Name SELinux User MLS MCS Range __default__ unconfined_u s0 s0 c0 c1023 root unconfined_u s0 s0 c0 c1023 system_u system_u s0 s0 c0 c1023 6 4 Cambiando el Mapeo Predeterminado In Fedora 13 Linux users are mapped to the SELinux __default__ login by default which is in turn mapped to the SELinux unconfined_u user If you would like new Linux users and Linux users not specifically mapped to an SELinux user to be con
71. ing the last boot this command does not return any output Refer to Cap tulo 7 Soluci n a Problemas for troubleshooting information if SELinux denied access during boot 5 Sino hay mensajes de negaci n en var log messages configure SELINUX enforcing en etc selinux config 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 these two values targeted Targeted processes are protected mls Multi Level Security protection SELINUXTYPE targeted 6 Reinicie su sistema Despu s de reiniciar confirme que getenforce devuelve Enforcing usr sbin getenforce Enforcing 7 Como usuario root de Linux corra el comando usr sbin semanage login 1 para ver el mapeo entre usuarios de SELinux y de Linux La salida debe ser como la siguiente Login Name SELinux User MLS MCS Range _ default__ unconfined_u s0 s0 c0 c1023 root unconfined_u s0 s0 c0 c1023 system_u system_u s0 s0 c0 c1023 Si ste no es el caso ejecute los siguientes comandos como usuario root de Linux para corregir los mapeos de usuario Es seguro ignorar los mensajes El usuario SELinux nombre de usuario ya est definido si es que aparecen donde nombre de usuario puede ser unconfined_u guest_u o xguest_u
72. inux es aplicada y SELinux niega el acceso bas ndose en las reglas de pol ticas de SELinux Los mensajes de negaci n se guardan Cuando se usa modo permisivo la pol tica de SELinux no es obediente Los mensajes son guardados SELinux no niega el acceso pero se guardan las negaciones de acciones que hubieran sido negadas si SELinux estaba en modo obediente Cuando se usa el modo deshabilitado SELinux est deshabilitado el m dulo de SELinux no se registra con el kernel de Linux y s lo se usan las reglas DAC 21 Cap tulo 5 Trabajando con SELinux Borrador SELINUXTYPE targeted La opci n SELINUXTYPE pone la pol tica SELinux a usar La pol tica Destinada es la predeterminada S lo cambie esta opci n si quiere usar la pol tica MLS Para usar la pol tica MLS instale el paquete selinux policy mls configure SELINUXTYPE m1s en etc selinux config y reinicie su sistema Importante Cuando los sistemas corren con SELinux en modo permisivo o deshabilitado los usuarios tiene permiso para etiquetar los archivos incorrectamente Tambi n los archivos creados con SELinux deshabilitado no son etiquetados Esto causa problemas cuando se cambia a modo obediente Para prevenir el etiquetado incorrecto o la falta de etiquetado los sistemas de archivos son autom ticamente reetiquetados cuando se cambie desde el modo deshabilitado al modo permisivo u obediente 5 4 Habilitando y Deshabilitando SELinux Use los comandos usr sbi
73. io los separa luego en dominios 3 3 Contextos de SELinux para los Usuarios Use el comando id Z para ver el contexto SELinux asociado con su usuario Linux unconfined_u unconfined_r unconfined_t s0 s0 c0 c1023 In Fedora Linux users run unconfined by default This SELinux context shows that the Linux user is mapped to the SELinux unconfined_u user running as the unconfined_r role and is running in the unconfined_t domain s0 s0 is an MLS range which in this case is the same as just sO The categories the user has access to is defined by c0 c1023 which is all categories cO through to c1023 10 Borrador Borrador Pol tica Destinado Targeted policy is the default SELinux policy used in Fedora When using targeted policy processes that are targeted run in a confined domain and processes that are not targeted run in an unconfined domain For example by default logged in users run in the unconfined_t domain and system processes started by init run in the initrce_t domain both of these domains are unconfined Unconfined domains as well as confined domains are subject to executable and writeable memory checks By default subjects running in an unconfined domain can not allocate writeable memory and execute it This reduces vulnerability to buffer overflow attacks These memory checks are disabled by setting Booleans which allow the SELinux policy to be modified at runtime Boolean configuration is discussed later
74. ipci n sugiere cambiar el tipo a un tipo que pueda ser accedido por Samba y por el Servidor HTTP Apache si tal acceso es deseado Permitiendo Acceso Una sugerencia sobre c mo permitir el acceso Esto puede hacerse reetiquetando archivos poniendo en 1 un Booleano o creando un m dulo de pol tica local En este caso la sugerencia es etiquetar el archivo con un tipo accesible por el Servidor HTTP Apache y por Samba Comando para Corregir Un comando sugerido para permitir el acceso y resolver la negaci n En este ejemplo se d el comando para cambiar el tipo del archivo1 a public_content_t que es accesible por el Servidor HTTP Apache y por Samba 65 Cap tulo 7 Soluci n a Problemas Borrador Informaci n Adicional Information that is useful in bug reports such as the policy package name and version selinux policy 3 5 13 11 fc12 but may not help towards solving why the denial occurred Raw Audit Messages The raw audit messages from var log audit audit 1log that are associated with the denial Refer to Secci n 7 3 6 Raw Audit Messages for information about each item in the AVC denial 7 3 8 Permitiendo el Acceso audit2allow No use el ejemplo en esta secci n en producci n Se usa s lo para mostrar el uso de audit2allow From the audit2allow 1 manual page audit2allow generate SELinux policy allow rules from logs of denied operations After analyzing denials as per Secci n 7 3 7 Mensajes sealert
75. ipo samba_share_t httpd se ejecuta en el dominio unconfined_t y termina usando las reglas DAC como tal el comando wget tiene xito Teniendo a httpd ejecut ndose en el dominio httpd_t el comando wget habr a fallado El comando restorecon restaura el contexto SELinux predeterminado de los archivos Como usuario root de Linux ejecute el comando restorecon v usr sbin httpd para restaurar el contexto SELinux de usr sbin httpd sbin restorecon v usr sbin httpd restorecon reset usr sbin httpd context system_u object_r unconfined_notrans_exec_t s0 gt system_u object_r httpd_exec_t s0 Ejecute el comando ls Z usr sbin httpd para confirmar que usr sbin httpd esta etiquetado con el tipo httpd_exec_t ls Z usr sbin httpd rwxr xr x root root system_u object_r httpd_exec_t usr sbin httpd Como usuario root de Linux corra el comando sbin service httpd restart para reiniciar httpd Despu s de reiniciar ejecute ps eZ grep httpd para confirmar que httpd se est ejecutando en el dominio confinado httpd_t sbin service httpd restart Stopping httpd OK Starting httpd OK ps eZ grep httpd unconfined_u system_r httpd_t 8880 unconfined_u system_r httpd_t 8882 unconfined_u system_r httpd_t 8883 unconfined_u system_r httpd_t 8884 unconfined_u system_r httpd_t 8885 unconfined_u system_r httpd_t 8886 unconfined_u system_r httpd_t 8887 unconfined_u system_r httpd_t 8888 unconfined_u system_r httpd_t 8889 00 0
76. it Estas reglas son com nes en la pol tica est ndar La contraparte de dontaudit es que aunque SELinux niega el acceso los mensajes no se guardan lo que dificulta resolver el problema Deshabilite temporalmente las reglas dontaudit permitiendo que se guarden todas las negaciones ejecute el siguiente comando como usuario root de Linux usr sbin semodule DB La opci n D deshabilita las reglas dontaudit la opci n B reconstruye la pol tica Despu s de ejcutar semodule DB pruebe ejercitar la aplicaci n que tuvo problemas de permisos y vea si ahora se guardan negaciones de SELinux relacionadas con la aplicaci n Tenga cuidado con la decici n de qu negaciones se deben permitir dado que algunas se deben ignorar y manejarse v a reglas dontaudit Si tiene duda o busca alguna gu a contacte a otros usuarios y desarrolladores de SELinux en una lista de SELinux tal como fedora selinux list Para reconstruir la pol tica y habilitar las reglas dontaudit ejecute el siguiente comando como usuario root de Linux usr sbin semodule B Esto restaura la pol tica a su estado original Para una lista completa de las reglas dontaudit corra el comando sesearch dontaudit B squedas m s refinadas usando la opci n s dominio y el comando grep Por ejemplo sesearch dontaudit s smbd_t grep squid WARNING This policy contained disabled aliases they have been removed dontaudit smbd_t squid_port_t tcp_socket name_bind
77. jecutan los Servicios Confinados Los servicios se pueden ejecutar en una variedad de formas Para cambiar esto debe decirle a SELinux c mo correr los servicios Esto se puede conseguir v a los Booleanos que permiten que parte de las pol ticas de SELinux se cambien en tiempo de ejecuci n sin ning n conocimiento sobre la escritura de pol ticas de SELinux Esto permite cambios tales como permitir a servicios que accedan a sistemas de archivo NFS sin recargar o recompilar una pol tica SELinux Tambi n correr servicios en n meros de puerto no predeterminados requiere que la configuraci n de la pol tica se actualice v a el comando semanage Por ejemplo para permitir al Servidor HTTP Apache comunicarse con MySQL active el Booleano httpd_can_network_connect_db usr sbin setsebool P httpd_can_network_connect_db on Si el acceso es denegado para un servicio particular use los comandos getsebool y grep para ver si algun Booleano esta disponible para permitir el acceso Por ejemplo use el comando getsebool a grep ftp para buscar un Booleano relacionado con FTP usr sbin getsebool a grep ftp allow_ftpd_anon_write gt off allow_ftpd_full_access gt off allow_ftpd_use_cifs gt off allow_ftpd_use_nfs gt off ftp_home_dir gt off 55 Cap tulo 7 Soluci n a Problemas Borrador httpd_enable_ftp_server gt off tftp_anon_write gt off For a list of Booleans and whether they are on or off r
78. l comando setsebool P hace persistentes a los cambios No use la opci n P si no quiere que los cambios persistan entre reiniciadas Servidor HTTP Apache Para permitir el acceso a sistemas de archivo NFS archivos etiquetados con el tipo nfs_t usr sbin setsebool P httpd_use_nfs on Para permitir el acceso a sistemas de archivos SAMBA archivos etiquetados con el tipo cifs_t usr sbin setsebool P httpd_use_cifs on Samba Para exportar sistemas de archivo NFS usr sbin setsebool P samba_share_nfs on FTP vsftpd Para permitir el acceso a sistemas de archivo NFS usr sbin setsebool P allow ftpd_use_nfs on Para permitir el acceso a sistemas de archivo Samba usr sbin setsebool P allow _ftpd_use cifs on Otros Servicios Para una lista de los Booleanos relacionados con NFS para otros servicios usr sbin semanage boolean 1 grep nfs Para una lista de los Booleanos relacionados con SAMBA para otros servicios usr sbin semanage boolean 1 grep cifs Nota These Booleans exist in SELinux policy as shipped with Fedora 13 They may not exist in policy shipped with other versions of Fedora or other operating systems Refer to the SELinux Managing Confined Services Guide http docs fedoraproject org selinux managing confined services guide for more information relating to SELinux Booleans 5 7 Contextos de SELinux Etiquetado de Archivos On systems running SELinux all processes and files are labeled in a wa
79. les Causas de Problemas ooocccoocccnoccccnocicnnonnnnccccnaconnnonnnncncnnannnnarcnnncnnnns 54 7 2 1 Problemas de Etiquetados oooocccooccccnocnnncnncnannonanncnnnncnnncnnnnnnonanncnanaronnnnonani s 54 7 2 2 C mo se Ejecutan los Servicios CONTINAdOS oocccccoccccncnnnoccnnnnooncnnnnnaccnnnnannnnns 55 7 2 3 Evolucionando las Reglas y las Aplicaciones Rotas oooocccoccccnnccccnccnnnoccnnncccnnanns 57 7 3 Correcci n de Problemas siii eta tata ea da 57 C31 Permisos de LINUR PPPPPACQOAO 5 U P aa nedeanaseedamanteetaaa nied AE E 57 7 3 2 Posibles Causas de las Negaciones Silenciosas ccceeeeeeeee teeta eeeeaeeeeneees 58 7 3 3 P ginas de Manual para Servicios occcocoooccccnnoocnnnonannonononancnnnnannnnnonancnnnonannnnns 58 7 3 4 Dominios PerMisSiVOS oooonocccccocccnnnnononnnnnonnnnnn inn 59 7 3 5 B squeda y Revisi n de Negaciones ooocccconcncnccnnconononononnnnononnnnnnnannnnnonannnnnnnss 61 7 3 6 Raw Audit Messages cece eee neea ee eeee ee ee ee ao eiiean naaninta eeee nessa eeeeaeeeeeeneeaa 63 7 3 7 Mensajes sealert o A ee O eee I cc 64 7 3 8 Permitiendo el Acceso audit2allow TnT T 66 8 Informaci n Adicional 69 8 1 Contributors aa o E O cc 69 8 2 Other Resources oc O A BO occ 69 A Revision History 71 Borrador Borrador Prefacio The Fedora 13 SELinux User Guide is for people with minimal or no experience with SELinux
80. low file systems to be exported Booleans such as nfs_export_all_roor nfs_export_all_ rw must be turned on Berkeley Internet Name Domain BIND the named 8 manual page describes what file type to use for a given situation see the Red Hat SELinux BIND Security Profile section The named_selinux 8 manual page describes that by default named can not write to master zone files and to allow such access the named_write_master_zones Boolean must be turned on La informaci n en las paginas del manual le ayudan a configurar los tipos de archivos correctos y los Booleanos ayud ndolo a prevenir las negaciones de acceso por parte de SELinux 7 3 4 Dominios Permisivos Cuando SELinux se ejecuta en modo permisivo SELinux no niega el acceso sino que las negaciones para las acciones se guardan como si fuera que corre en modo obediente Previamente no era posible hacer permisivo un nico dominio recuerde los procesos corren en dominios En ciertas situaciones esto llev a hacer el sistema permisivo para poder corregir los problemas Fedora 13 includes permissive domains where an administrator can configure a single process domain to run permissive rather than making the whole system permissive SELinux checks are still performed for permissive domains however the kernel allows access and reports an AVC denial for situations where SELinux would have denied access Permissive domains are also available in Fedora 9 with the latest update
81. n getenforce o usr sbin sestatus para chequear el estado de SELinux El comando getenforce devuelve Obediente Permisivo o Deshabilitado El comando getenforce devuelve Obediente cuando SELinux est habilitado las reglas de la pol tica de SELinux son aplicadas usr sbin getenforce Enforcing El comando getenforce devuelve Permissive cuando SELinux est activado pero las reglas de pol ticas de SELinux no est n en obligatorio y s lo se usan las reglas DAC El comando getenforce devuelve Disabled si SELinux est deshabilitado El comando sestatus devuelve el estado de SELinux y la pol tica de SELinux que se est usando usr sbin sestatus SELinux status enabled SELinuxfs mount selinux Current mode enforcing Mode from config file enforcing Policy version 23 Policy from config file targeted SELinux status enabled is returned when SELinux is enabled Current mode enforcing is returned when SELinux is running in enforcing mode Policy from config file targeted is returned when the SELinux targeted policy is used 5 4 1 Habilitando SELinux En sistemas con SELinux deshabilitado la opci n SELINUX disabled se configura en etc selinux config This file controls the state of SELinux on the system SELINUX can take one of these three values enforcing SELinux security policy is enforced 22 Borrador Habilitando SELinux permissive SELinux prints warnings instead of enforcing disable
82. nally prepared for the National Security Agency and is consequently in the public domain Refer to the original paper http www nsa gov research _files selinux papers freenix01 index shtml for details and the document as it was first released Any edits and changes were done by Murray McAllister Cap tulo 2 Introducci n Borrador to be protected from legitimate users with limited authorization as well as from authorized users who have unwittingly executed malicious applications The following is an example of the labels containing security relevant information that are used on processes Linux users and files on Linux operating systems that run SELinux This information is called the SELinux context and is viewed using the 1s Z command ls Z filet rwxrw r useri group1 unconfined_u object_r user_home_t s0 file1 In this example SELinux provides a user unconfined_u a role object_r a type user_home_t and a level s0 This information is used to make access control decisions With DAC access is controlled based only on Linux user and group IDs It is important to remember that SELinux policy rules are checked after DAC rules SELinux policy rules are not used if DAC rules deny access first Linux y los Usuarios SELinux On Linux operating systems that run SELinux there are Linux users as well as SELinux users SELinux users are part of SELinux policy Linux users are mapped to SELinux users To avoid confusion
83. ng systems using DAC users control the permissions of files objects that they own For example on Linux operating systems users could make their home directories world readable giving users and processes subjects access to potentially sensitive information with no further protection over this unwanted action Relying on DAC mechanisms alone is fundamentally inadequate for strong system security DAC access decisions are only based on user identity and ownership ignoring other security relevant information such as the role of the user the function and trustworthiness of the program and the sensitivity and integrity of the data Each user has complete discretion over their files making it impossible to enforce a system wide security policy Furthermore every program run by a user inherits all of the permissions granted to the user and is free to change access to the user s files so no protection is provided against malicious software Many system services and privileged programs must run with coarse grained privileges that far exceed their requirements so that a flaw in any one of these programs could be exploited to obtain further system access The following is an example of permissions used on Linux operating systems that do not run Security Enhanced Linux SELinux The permissions and output in these examples may differ from your system Use the 1s 1 command to view file permissions ls 1 filet rwxrw r 1 user1 group1
84. ngresar v a una terminal incluyendo ssh pueden ingresaro por ssh pero no se pueden ssh conectar a otro sistema e El nico acceso de red que tienen los usuarios en el dominoi xguest_t es con Firefox conect ndose a p ginas web e Los usuarios Linux en los dominios xguest_t user_t y staff_t pueden ingresar v a el Sistema de Ventanas X o por una terminal e Por defecto los usuarios Linux en el dominio staff _t no tienen permisos para ejecutar aplicaciones con usr bin sudo Estos permisos deben ser configurados por un administrador By default Linux users in the guest_t and xguest_t domains can not execute applications in their home directories or tmp preventing them from executing applications which inherit users permissions in directories they have write access to This helps prevent flawed or malicious applications from modifying files users own By default Linux users in the user_t and staff_t domains can execute applications in their home directories and tmp Refer to Secci n 6 6 Booleanos para que los Usuarios Ejecuten Aplicaciones for information about allowing and preventing users from executing applications in their home directories and tmp 18 Borrador Borrador Trabajando con SELinux The following sections give a brief overview of the main SELinux packages in Fedora installing and updating packages which log files are used the main SELinux configuration file enabling and disabling SELin
85. o usuario root de Linux corra el comando chcon R t httpd_sys_content_t web para cambiar el tipo del directorio web y su contenido a httpd_sys_content_t chcon R t httpd_sys_content_t web ls dZ web drwxr xr x root root unconfined_u object_r httpd_sys_content_t s0 web tt ls 1Z web yw r r root root unconfined_u object_r httpd_sys_content_t s0 filet rw r r root root unconfined_u object_r httpd_sys_content_t s0 file2 rw r r root root unconfined_u object_r httpd_sys_content_t s0 file3 Como usuario root de Linux corra el comando sbin restorecon R v web para restaurar los contextos de SELinux predeterminados sbin restorecon R v web 30 Borrador Cambios Persistentes semanage fcontext restorecon reset web context unconfined_u object_r httpd_sys_content_t s0 gt system_u object_r default_t s0 restorecon reset web file2 context unconfined_u object_r httpd_sys_content_t s0 gt system_u object_r default_t s0 restorecon reset web file3 context unconfined_u object_r httpd_sys_content_t s0 gt system_u object_r default_t s0 restorecon reset web file1 context unconfined_u object_r httpd_sys_content_t s0 gt system_u object_r default_t s0 Refer to the chcon 1 manual page for further information about chcon am Nota La Obligaci n de Tipo es el control de permisos principal usado en la politica destinada de SELinux Para la mayor parte los usuarios y roles de SELinu
86. onfined_u object_r default_t s0 file3 The usr sbin semanage fcontext a t httpd_sys_content_t web command adds the following entry to etc selinux targeted contexts files file_contexts local web system_u object_r httpd_sys_content_t s0 Como usuario root de Linux ejecute el comando sbin restorecon R v web para cambiar elt ipo del directorio web junto con los archivos dentro de l La opci n R significa recursivo es decir todos los archivos y directorios dentro del directorio web se etiquetar n con el tipo httpd_sys_content_t Dado que el comando semanage agreg una entrada en file contexts local para web el comando sbin restorecon los tipos a httpd_sys_content_t sbin restorecon R v web restorecon reset web context unconfined_u object_r default_t s0 gt system_u object_r httpd_sys_content_t s0 restorecon reset web file2 context unconfined_u object_r default_t s0 gt system_u object_r httpd_sys_content_t s0 restorecon reset web file3 context unconfined_u object_r default_t s0 gt system_u object_r httpd_sys_content_t s0 restorecon reset web filei context unconfined_u object_r default_t s0 gt system_u object_r httpd_sys_content_t s0 Por defecto los archivos y directorios reci n creados heredan el tipo SELinux de sus padres En este ejemplo los archivos y directorios creado en el directorio web se etiquetaran con el tipo httpd_sys_content_t As the Linux root u
87. or ejemplo web use las comillas para encerrar la expresi n regular usr sbin semanage fcontext d web Refer to the semanage 8 manual page for further information about usr sbin semanage Importante Cuando se cambia el contexto de SELinux con usr sbin semanage fcontext a use la direcci n completa del archivo o directorio para evitar etiquetar mal los archivos despu s de un reetiquetado del sistema de archivo o despu s ejecutar el comando sbin restorecon 5 8 Los tipos file_t y default_t For file systems that support extended attributes when a file that lacks an SELinux context on disk is accessed it is treated as if it had a default context as defined by SELinux policy In common policies this default context uses the file_t type This should be the only use of this type so that files without a context on disk can be distinguished in policy and generally kept inaccessible to confined domains The file_t type should not exist on correctly labeled file systems because all files on a system running SELinux should have an SELinux context and the file_t type is never used in file context configuration Files in etc selinux targeted contexts files define contexts for files and directories Files in this directory are read by restorecon and setfiles to restore files and directories to their default contexts 35 Cap tulo 5 Trabajando con SELinux Borrador The default_t type is used on files
88. or example depending on the user not being able to run the X Window System use networking run setuid applications unless SELinux policy permits it or run the su and sudo commands This helps protect the system from the user Refer to Secci n 4 3 Usuarios Confinados y no Confinados for further information about confined users 6 1 Linux y los Mapeos de Usuarios de SELinux Como usuario root de Linux corra el comando semanage login 1 para ver el mapeo entre los usuarios de Linux y los usuarios de SELinux usr sbin semanage login 1 Login Name SELinux User MLS MCS Range _ default__ unconfined_u s0 s0 c0 c1023 root unconfined_u s0 s0 c0 c1023 system_u system_u s0 s0 c0 c1023 In Fedora 13 Linux users are mapped to the SELinux __default__ login by default which is in turn mapped to the SELinux unconfined_u user When a Linux user is created with the useradd command if no options are specified they are mapped to the SELinux unconfined_u user The following defines the default mapping __default__ unconfined_u s0 s0 c0 c1023 6 2 Confinando Usuarios Nuevos de Linux useradd Los usuarios Linux mapeados al usuario SELinux unconfined_u corren en el dominio unconfined_t Esto se ve ejecutando el comando id Z luego de haber ingresado como el usuario Linux que se mapea a unconfined_u id Z unconfined_u unconfined_r unconfined_t s0 s0 c0 c1023 Cuando los usuarios linux ejecuten en el dominio unconfined_t se aplican l
89. orios y Archivos When a file or directory is copied a new file or directory is created if it does not exist That new file or directory s context is based on default labeling rules not the original file or directory s context unless options were used to preserve the original context For example files created in user home directories are labeled with the user_home_t type touch filet ls Z filet rw rw r useri group1 unconfined_u object_r user_home_t s0 filel Si un archivo se copia a otro directorio tal como etc el archivo nuevo se crea de acuerdo a las reglas de etiquetado predeterminado del directorio etc El copiado de un archivo sin opciones adicionales puede no preservar el contexto original ls Z filet rw rw r userid group1 unconfined_u object_r user_home_t s0 file1 cp filel etc ls Z etc filel rw r r root root unconfined_u object_r etc_t s0 etc file1l R http www redhat com docs en US Red_Hat_Enterprise_Linux 5 2 html Deployment_Guide s1 nfs client config html 39 Cap tulo 5 Trabajando con SELinux Borrador Cuando el archivo1 se copia a etc si etc archivol1 no existe etc archivol se crea como un archivo nuevo Como se muestra en el ejemplo de arriba etc archivo1 se etiqueta con el tipo etc_t de acuerdo con las reglas de etiquetado predeterminadas When a file is copied over an existing file the existing file s context is preserved unless the user specified cp options to p
90. orno mencionados dentro de un p rrafo ser n presentados en Negrita monoespaciado Por ejemplo Las clases de archivo relacionadas incluyen filename para sistema de archivos file para archivos y dir para directorios Cada clase tiene su propio conjunto asociado de permisos Negrita proporcional Esta denota palabras o frases encontradas en un sistema incluyendo nombres de aplicaci n texto de cuadro de di logo botones etiquetados etiquetas de cajilla de verificaci n y bot n de radio t tulos de men y t tulos del sub men Por ejemplo Seleccionar Sistema gt Preferencias gt Rat n desde la barra del men principal para lanzar Preferencias de Rat n En la pesta a de Botones haga clic en la cajilla rat n de mano izquierda y luego haga clic en Cerrar para cambiar el bot n principal del rat n de la izquierda a la derecha adecuando el rat n para la mano izquierda Para insertar un caracter especial en un archivo de gedit seleccione desde la barra del men principal Aplicaciones gt Accesorios gt Mapa de caracteres Luego desde la barra del men mapa de caracteres elija B squeda gt Hallar teclee el nombre del caracter en el campo B squeda y haga clic en Siguiente El caracter buscado se resaltar en la Tabla de caracteres Haga doble clic en este caracter resaltado para colocarlo en el campo de Texto para copiar y luego haga clic en el bot n de Copiar Ahora regrese a su documento y elija Editar Pegar
91. ort local mount point o context system_u object_r httpd_sys_content_t so Los archivos y directorios reci n creados en este sistema de archivo parecen tener un contexto SELinux especificado con o contexto sin embargo dado que los cambios del contexto no se escriben en el disco en estas situaciones el contexto especificado por la opci n o contexto s lo se mantiene si se usa la misma opci n en la siguiente montada y si adem s se especifica el mismo contexto La Obligaci n de Tipo es el control de permiso principal en la pol tica destinada de SELinux Para la mayor parte los usuarios y roles de SELinux se pueden ignorar por lo que cuando se superponga 36 Borrador Cambio del Contexto Predeterminado el contexto de SELinux con o context use el usuario SELinux system_u y el rol object_r y conc ntrese en el tipo Si no esta usando la pol tica MLS o seguridad multi categor a use el nivel sO Nota Cuando se monta un sistema de archivo con la opci n context los cambios de contexto por usuarios y procesos son prohibidos Por ejemplo ejecutando chcon en un sistema de archivo montado con la opci n context resulta en un error de Operaci n no soportada 5 9 2 Cambio del Contexto Predeterminado As mentioned in Secci n 5 8 Los tipos file_t y default_t on file systems that support extended attributes when a file that lacks an SELinux context on disk is accessed it is treated as if it had a default
92. ortan atributos extendidos tales como la Tabla de Ubicaci n de Archivos FAT o los sistemas de archivo NFS El contexto especificado con la opci n context no se escribe al disco los contextos originales son preservados y se ven cuando se lo monta sin la opci n context si el sistema de archivo ya ten a sopoorte para atributos extendidos For further information about file system labeling refer to James Morris s Filesystem Labeling in SELinux article http www linuxjournal com article 7426 5 9 1 Montajes de Contexto Para montar un sistema de archivo con el contexto especificado superponiendo los contextos existentes si existieran o para especificar uno predeterminado distinto para un sistema de archivo que no da soporte para atributos extendidos como usuario root de Linux use el comando mount o context SELinux_user role type level cuando monte el sistema de archivo deseado Los cambios de contexto no se graban en el disco Por defecto los montajes NFS en el lado del cliente se etiquetan con un contexto distinto definido por una pol tica para sistemas de archivo NFS En pol ticas comunes este contexto predeterminado usa el tipo nfs_t Sin las opciones de montaje adicionales esto podr a evitar el que sistemas de archivo NFS sean compartidos v a otros servicios como el Servidor HTTP Apache El siguiente ejemplo monta un sistema de archivo NFS para que se pueda acceder a trav s del Servidor HTTP Apache mount server exp
93. os 5 10 3 Chequeando el Contexto SELinux Predeterminado Use the usr sbin matchpathcon command to check if files and directories have the correct SELinux context From the matchpathcon 8 manual page natchpathcon queries the system policy and outputs the default security context associated with the file path The following example demonstrates using the usr sbin matchpathcon command to verify that files in var www htm1 directory are labeled correctly 1 Como usuario root de Linux ejecute el comando touch var www html1 archivo 1 2 3 para crear tres archivos archivo1 archivo2 y archivo3 Estos heredan el tipo httpd_sys_content_t del directorio var www htm1 touch var www htm1 file 1 2 3 ls Z var ww html rw r r root root unconfined_u object_r httpd_sys_content_t s0 filet rw r r root root unconfined_u object_r httpd_sys_content_t s0 file2 The matchpathcon 8 manual page as shipped with the ibselinux utils package in Fedora is written by Daniel Walsh Any edits or changes in this version were done by Murray McAllister 42 Borrador Archivando archivos con tar rw r r root root unconfined_u object_r httpd_sys_content_t s0 file3 2 Como usuario root de Linux ejecute el comando chcon t samba_share_t var www html archivol1 para cambiar el tipo del archivo1 a samba_share_t Nota El Servidor HTTP Apache no puede leer archivos o directorios etiquetados con el tipo samba_share_t 3
94. os contextos Si un archivo Tar contiene archivos sin los atributos extendidos o si quiere que los atributos extendidos coincidan con los predeterminados del sistema ejecute el archivado a trav s de sbin restorecon tar xvf archive tar sbin restorecon f Nota dependiendo del directorio puede necesitar ser el usuario root de Linux para ejecutar el comando sbin restorecon El siguiente ejemplo muestra la creaci n de un archivo Tar que mantiene sus contextos SELinux 43 Cap tulo 5 Trabajando con SELinux Borrador 1 Como usuario root de Linux ejecute el comando touch var www html archivo 1 2 3 para crear tres archivos archivo1 archivo2 y archivo3 Estos heredan el tipo httpd_sys_content_t del directorio var www htm1 touch var www html1 file 1 2 3 ls Z var www html rw r r root root unconfined_u object_r httpd_sys_content_t s0 filet rw r r root root unconfined_u object_r httpd_sys_content_t s0 file2 rw r r root root unconfined_u object_r httpd_sys_content_t s0 file3 2 Ejecute el comando cd var www html para cambiar al directorio var www htm1 Una vez en este directorio como usuario root de Linux ejecute el comando tar selinux cf prueba tar archivo 1 2 3 para crear un archivo Tar con nombre prueba tar 3 Como usuario root de Linux corra el comando mkdir prueba para crear un directorio nuevo y luego ejecute el comando chmod 777 prueba para permitir a los usuario
95. plo httpd_sys_content_t y nombre de archivo es un nombre de archivo o de directorio e Ejecute el comando chcon R t tipo nombre de directorio para cambiar el tipo de un directorio y su contenido donde tipo es el tipo por ejemplo httpd_sys_content_t y nombre de directorio es un nombre de directorio Changing a File s or Directory s Type El siguiente ejemplo muestra el cambio de tipo solamente en el contexto de SELinux 1 Ejecute el comando cd sin argumentos para cambiar a su directorio de inicio 2 Ejecute el comando touch archivol1 para crear un archivo nuevo Use el comando 1s Z archivol1 para ver el contexto de SELinux del archivo1 ls Z filel rw rw r useri group1 unconfined_u object_r user_home_t s0 file1 In this example the SELinux context for file1 includes the SELinux unconfined_u user object_r role user_home_ t type and the sO level For a description of each part of the SELinux context refer to Cap tulo 3 Contextos de SELinux 3 EJecute el comando chcon t samba_share_t archivo1 para cambiar el tipo a samba_share_t La opci n t s lo cambia el tipo Vea el cambio con 1s Z archivol ls Z filel rw rw r userid group1 unconfined_u object_r samba_share_t s0 filel 29 Cap tulo 5 Trabajando con SELinux Borrador Use el comando sbin restorecon v archivol1 para restaurar el contexto de SELinux del archivo1 Use la opci n v para ver qu cambia sbin restorecon v filet restorecon r
96. que la negaci n AVC fue grabada el acceso no fue negado como se muestra en el mensaje SYSCALL success yes Refer to Dan Walsh s Permissive Domains blog entry for further information about permissive domains 7 3 5 Busqueda y Revision de Negaciones This section assumes the setroubleshoot setroubleshoot server dbus and audit packages are installed and that the auditd rsyslogd and setroubleshootd daemons are running Refer to Secci n 5 2 Qu Archivo Log se usa for information about starting these daemons A number of tools are available for searching for and viewing SELinux denials such as ausearch aureport and sealert ausearch The audit package provides ausearch From the ausearch 8 manual page ausearch is a tool that can query the audit daemon logs based for events based on different search criteria The ausearch tool accesses var log audit audit log and as such must be run as the Linux root user Buscando Comando todas las negaciones sbin ausearch m avc negaciones de hoy sbin ausearch m avc ts today negaciones desde los ltimos 10 sbin ausearch m avc ts recent minutos To search for SELinux denials for a particular service use the c comm name option where comm name is the executable s name for example httpd for the Apache HTTP Server and smbd for Samba sbin ausearch m avc c httpd sbin ausearch m avc c smbd Refer to the ausearch 8 manual page for further ausearch options
97. re_t For complete SELinux messages run sealert 1 84e0b04d d0Oad 4347 8317 22e74f6cd020 En este ejemplo el ID de negaci n es 84e0b04d d0ad 4347 8317 22e74f6cd020 La opci n 1 toma un ID como argumento Ejecutando el comando sealert 1 84e0b04d d0ad 4347 8317 22e74f6cd020 le presenta un an lisis detallado de por qu SELinux neg el acceso y una posible soluci n para permitir el acceso If you are running the X Window System have the setroubleshoot and setroubleshoot server packages installed and the setroubleshootd dbus and auditd daemons are running a warning is displayed when access is denied by SELinux Clicking on Show launches the sealert GUI and displays denials in HTML output SELinux Security Alerts JA SELinux has detected suspicious behavior on your system Alen Bold Show all SELinux ls preventing fusrsbin httpd getattr access to Warfwww htmlndex3 html Today on Wied Noy 18 200 ot 08 29 31 AM EST f SELinux denied access requested by httod vara htmliindes3 himl may be a mislabeled ivar 4 xs htmllindex3 html default SELinux type is httpd sys content t but its current type is admin _home t Changing this Me back io the defaull bype may fix yow prablem File contexts can be assigned to a file in the following ways This alert has occurred 12 times since Wed Mov 14 2009 al 08 11 58 AM EST po Shaw tul error autput C lgnare Alert Copy to Clipooard ag Restore Conbexl Policy Vers
98. reserve the context of the original file such as preserve context SELinux policy may prevent contexts from being preserved during copies Copia sin Preservar los Contextos de SELinux Cuando se copia un archivo con el comando cp si no se dan opciones el tipo se hereda desde el directorio padre destino touch filet ls Z filet rw rw r user1 group1 unconfined_u object_r user_home_t s0 filet ls dZ var www html drwxr xr x root root system_u object_r httpd_sys_content_t s0 var www html cp file1 var www html ls Z var ww html file1 rw r r root root unconfined_u object_r httpd_sys_content_t s0 var www html file1 In this example file is created in a user s home directory and is labeled with the user_home_t type The var www html1 directory is labeled with the httpd_sys_content_t type as shown with the ls dZ var www html1 command When filed is copied to var www htn1 it inherits the httpd_sys_content_t type as shown with the ls Z var www html1 file1 command Preservaci n de los Contextos de SELinux cuando se copia Use el comando cp preserve context para preservar los contextos cuando se copia touch filel ls Z filet rw rw r useri group1 unconfined_u object_r user_home_t s0 file1 ls dZ var www html drwxr xr x root root system_u object_r httpd_sys_content_t s0 var www html cp preserve context filel var ww html ls Z var ww html file1 rw r r root root un
99. reventing httpd httpd_t getattr to var www htm1 file1 samba_share_t For complete SELinux messages run sealert l 84e0b04d d0Oad 4347 8317 22e74f6cd020 Como se sugiri ejecute el comando sealert 1 84e0b04d d0ad 4347 8317 22e74f6cd020 para ver el mensaje completo Este comando s lo funciona en la m quina local y presenta la misma informaci n que la interfase gr fica de sealert sealert 1 84e0b04d d0ad 4347 8317 22e74f6cd020 Summar y SELinux is preventing httpd httpd_t getattr to var ww html1 file1 samba_share_t Detailed Description SELinux denied access to var www html file1 requested by httpd var www html file1 has a context used for sharing by different program If you would like to share var www html file1 from httpd also you need to change its file context to public_content_t If you did not intend to this access this could signal a intrusion attempt Allowing Access You can alter the file context by executing chcon t public_content_t var www html filet Fix Command chcon t public_content_t var ww html1 file1 64 Borrador Mensajes sealert Additional Information Source Context unconfined_u system_r httpd_t s0 Target Context unconfined_u object_r samba_share_t s0 Target Objects var www html file1 file Source httpd Source Path usr sbin httpd Port lt Unknown gt Host hostname Source RPM Packages httpd 2 2 10 2 Target RPM Packages Policy RPM selinux
100. rrador from modifying files that users own In Fedora 13 by default Linux users in the guest_t and xguest_t domains can not execute applications in their home directories or tmp however by default Linux users in the user_t and staff_t domains can Hay booleanos disponibles para cambiar este comportamiento y se configuran con el comando setsebool El comando setsebool se debe usar con el usuario root de Linux El comando setsebool P hace los cambios persistentes No use la opci n P si no quiere que los cambios persistan entre reiniciadas guest t Para permitir a los usuarios Linux en el dominio guest_t que ejecuten aplicaciones en sus directorios de inicio y en tmp usr sbin setsebool P allow_guest_exec_content on xguest_t Para permitir a los usuarios Linux en el dominio xguest_t ejecutar aplicaciones en sus directorios inicios y tmp usr sbin setsebool P allow_xguest_exec_content on user_t Para impedir que los usuarios Linux en el dominio user_t ejecuten aplicaciones en sus directorios de inicio y tmp usr sbin setsebool P allow_user_exec_content off staff_t Para impedir que los usuarios Linux en el dominio staf f_t ejecuten aplicaciones en sus directorios de inicio y en tmp usr sbin setsebool P allow_staff_exec_content off 52 Borrador Borrador Soluci n a Problemas El siguiente cap tulo describe qu pasa cuando SELinux niega el acceso las principales tres causas de problemas
101. rver is compromised an attacker can not use that process to read files in user home directories unless a specific SELinux policy rule was added or configured to allow such access Se linux se puede usar para asegurar la confidencialidad e integridad de los datos asi como proteger los procesos de entradas no confiables Meeting Critical Security Objectives with Security Enhanced Linux by Peter Loscocco and Stephen Smalley This paper was originally prepared for the National Security Agency and is consequently in the public domain Refer to the original paper http www nsa gov research _files selinux papers ottawa01 index shtml for details and the document as it was first released Any edits and changes were done by Murray McAllister Borrador Ejemplos SELinux no es e software antivirus un reemplazo para las contrase as cortafuegos y otros sistemas de seguridad una soluci n todo en uno SELinux est dise ado para mejorar las soluciones de seguridad existentes no reemplazarlas A n cuando corra SELinux siga las buenas pr cticas de seguridad tales como mantener el software actualizado usar contrase as dif ciles de adivinar cortafuegos y dem s 2 2 Ejemplos Los siguientes ejemplos demuestran c mo SELinux aumenta la seguridad The default action is deny If an SELinux policy rule does not exist to allow access such as for a process opening a file access is denied e SELinux can confine Linux us
102. s Para hacer los cambios persistentes corra el comando setsebool P boolean name on como usuario root de Linux usr sbin setsebool P httpd_can_network_connect_db on 5 Para revertir temporalmente el comportamiento por defecto como usuario root de Linux corra el comando setsebool httpd_can_network_connect_db off Para que los cambios sean persistentes entre reiniciadas ejecute el comando setsebool P httpd_can_network_connect_db off 5 6 3 Booleanos para NFS y CIFS Por defecto los montajes NFS en el lado del cliente se etiquetan con el contexto predeterminado definido por la pol tica para sistemas de archivos NFS En pol ticas com nes este contexto predeterminado usa el tipo nfs_t Tambi n por defecto los compartidos de Samba en el lado del cliente se etiquetan con el contexto predeterminado definido por la pol tica En pol ticas com nes este contexto predeterminado usa el tipo cifs_t Dependiendo en la configuraci n de la pol tica los servicios pueden tener bloqueado la lectura a archivos con la etiqueta de los tipos nfs_t o cifs_t Esto puede prevenir que los sistemas de archivo etiquetados con estas etiquetas se monten y sean le dos o exportados por otros servicios 27 Cap tulo 5 Trabajando con SELinux Borrador Hay Booleanos que se pueden poner en 1 o O para controlar qu servicios pueden acceder los tipos nfs_t y cifs_t Los comandos setsebool y semanage se deben ejecutar como usuario root de Linux E
103. s archivos etiquetados con el tipo mysq1d_db_t lo que permite a MySQL el acceso Estos cambios de tipo no se escriben en el disco 38 Borrador Haciendo Persistente los Contextos de Montajes Importante Las opciones nosharecache le permiten montar el mismo subdirectorio de un exportado varias veces con distintos contextos por ejemplo montar export web varias veces No monte el mismo directorio de un exportado varias veces con distintos contextos dado que esto crea un montado solapado donde los archivos se pueden acceder con dos contextos diferentes 5 9 5 Haciendo Persistente los Contextos de Montajes Para hacer que los contextos de montajes persistentes entre remontadas y reiniciadas agregue las entradas de los sistemas de archivos en etc fstab o un mapa de automontador y use el contexto deseado como una opci n de montaje El siguiente ejemplo agrega una entrada en etc fstab para un montaje de contexto NFS server export local mount nfs context system_u object_r httpd_sys_content_t s0 0 0 Refer to the Red Hat Enterprise Linux 5 Deployment Guide Section 19 2 NFS Client Configuration for information about mounting NFS file systems 5 10 Mantenci n de las Etiquetas de SELinux Estas secciones describen qu les pasa a los contextos SELinux cuando se copia mueve y compacta archivos y directorios Tambi n explica c mo preservar los contextos cuando se copia o se compacta 5 10 1 Copia de Direct
104. s acceso total al directorio prueba 4 Ejecute el comando cp var www htm1 prueba tar prueba para copiar el archivo prueba tar en el directorio prueba 5 Ejecute el comando cd prueba para cambiar al directorio test Una vez ah ejecute el comando tar xvf prueba tar para extraer el archivo Tar 6 Ejecute el comando ls 1Z prueba para ver los contextos SELinux El tipo httpd_sys_content_t fue retenido en vez de haberse cambiado al default_t lo que hubiera pasado si la opci n selinux no se hubiera usado ls 1Z test rw r r useri group1 unconfined_u object_r httpd_sys_content_t s0 filel rw r r useri group1 unconfined_u object_r httpd_sys_content_t s0 file2 rw r r userid group1 unconfined_u object_r httpd_sys_content_t s0 file3 rw r r useri group1 unconfined_u object_r default_t s0 test tar 7 Siel directorio prueba no se necesita m s como usuario root de Linux ejecute el comando rm ri prueba para eliminarlo as como todos los archivos en l Refer to the tar 1 manual page for further information about tar such as the xattrs option that retains all extended attributes 5 10 5 Archivando archivos con tar star no retiene los atributos extendidos por defecto Dado que los contextos SELinux se almacenan en los atributos extendidos los contextos se pueden perder cuando se crean esos archivos Use star xattr H exustar para crear archivos que retengan los contextos El paquete
105. s applied En el Linux para Empresas de Red Hat 4 y 5 los Booleanos dominio _disable_trans est n disponibles para prevenir que una aplicaci n transicione a un dominio confinado y por lo tanto el proceso se ejecute en un dominio no confinado tal como initrc_t Poniendo en 1 tales booleanos pueden causar problemas serios Por ejemplo si el Booleano httpd_disable_trans se pone en 1 httpd corre en el dominio no confinado initrc_t Los archivos creados por los procesos en el dominio initrc_t puede no tener aplicadas las mismas reglas de etiquetados como los archivos creados por el proceso corriendo en el dominio httpd_t permitiendo que los procesos puedan potencialmente crear archivos mal etiquetados Esto causa problemas m s adelante dominios confinados que pueden comunicarse con httpd_t no pueden comunicarse con initrc_t posiblemente causan fallas adicionales Los Booleanos domain_disable_trans fueron eliminados de Fedora 7 y no se pusieron reemplazos Los dominios permisivos pueden resolver esos problemas se aplican las reglas de transici n y los archivos se crean con las etiquetas correctas Los dominios permisivos se pueden usar para e hacer que un nico proceso dominio corra permisivo para solucionar alguna cuesti n en vez de poner todo el sistema en riesgo haciendo permisivo a todo el sistema 59 Cap tulo 7 Soluci n a Problemas Borrador e creaci n de pol ticas para nuevas aplicaciones Previamente er
106. s zone files gt from being updated via zone transfers by the BIND named daemon itself and by other processes e Refer to the Red Hat Magazine article Risk report Three years of Red Hat Enterprise Linux a for exploits that were restricted due to the default SELinux targeted policy in Red Hat Enterprise Linux 4 Refer to the LinuxWorld com article A seatbelt for server software SELinux blocks real world exploits for background information about SELinux and information about various exploits that SELinux has prevented e Refer to James Morris s SELinux mitigates remote root vulnerability in OpenPegasus blog post for information about an exploit in OpenPegasus that was mitigated by SELinux as shipped with Red Hat Enterprise Linux 4 and 5 Cap tulo 2 Introducci n Borrador El sitio web de Tresys Technology tiene una secci n de Noticias de Migraci n a SELinux en la parte derecha que lista los ataques recientes que fueron mitigados o prevenidos por SELinux 2 3 Arquitectura de SELinux SELinux es un m dulo de seguridad de Linux que se construye dentro del kernel de Linux SELinux se maneja por reglas de pol ticas cargables Cuando un acceso de seguridad relevante se lleva a cabo tal como un proceso que trata de abrir un archivo la operaci n es interceptada por SELinux en el kernel Si una regla de pol tica de SELinux permite la operaci n contin a sino la operaci n se bloquea y el proc
107. ser run the usr sbin semanage fcontext d web command to remove the context added for web Como usuario root de Linux ejecute el comando sbin restorecon R v web para restaurar el contexto predeterminado de SELinux 34 Borrador Los tipos file_t y default_t Borrado de un Contexto agregado El siguiente ejemplo muestra el agregado y su eliminaci n del contexto de SELinux 1 Como usuario root de Linux ejecute el comando usr sbin semanage fcontext a t httpd_sys_content_t prueba El directorio prueba no tiene que existir Este comando agrega el siguiente contexto a etc selinux targeted contexts files file contexts local test system_u object_r httpd_sys_content_t s0 2 Para eliminar el contexto como usuario root de Linux ejecute el comando usr sbin semanage fcontext d nombre de archivo nombre de directorio donde nombre de archivo nombre de directorio es la primera parte en file_contexts local El siguiente es un ejemplo de un contexto en file_contexts local test system_u object_r httpd_sys_content_t s0 Siendo la primera parte prueba Para evitar que el directorio prueba se etiquete con httpd_sys_content_t despu s de ejecutar sbin restorecon o despu s de un reetiquetado del sistema ejecute el siguiente comando como usuario root de Linux para eliminar el contexto de file_contexts local usr sbin semanage fcontext d test Si el contexto es parte de una expresi n regular p
108. sobre por qu el acceso fue negado La opci n a hace que se lean todos los registros de autidor a La opci n w produce una descripci n legible al humano La herramienta audit2allow accede a var log audit audit log y como tal debe ser ejecutada como usuario root de Linux audit2allow w a type AVC msg audit 1226270358 848 238 avc denied write for pid 13349 comm certwatch name cache dev dm 0 ino 218171 scontext system_u system_r certwatch_t s0 tcontext system_u object_r var_t s0 tclass dir Was caused by Missing type enforcement TE allow rule You can use audit2allow to generate a loadable module to allow this access From the audit2allow 1 manual page as shipped with the policycoreutils package in Fedora 13 66 Borrador Permitiendo el Acceso audit2allow Como se muestra el acceso fue negado debido a que falta una regla de Obligaci n de Tipo 3 Ejecute el comando audit2allow a para ver la regla de Obligaci n de Tipo que permite el acceso negado audit2allow a eree ee e e e e certwatch_t aimera eei eee e allow certwatch_t var_t dir write Importante La falta de reglas de Ejecuci n de Tipos son usualmente causados por errores en la pol tica de SELinux y deben ser informadas en el Bugzilla de Red Hat Para Fedora crear informes sobre el producto Fedora y seleccione el componente selinux policy Incluya la salida de los comandos audit2allow w ay audit2allow a en el informe
109. sponse 200 OK Length O text plain Saving to testfile lt gt 0 K S in Os 2009 11 06 17 43 01 0 00 B s testfile saved 0 0 El comando chcon reetiqueta archivos sin embargo tales cambios de etiquetas no sobreviven cuando el sistema se reetiqueta Para que los cambios sobrevivan un reetiquetado del sistema use el comando semanage que se discute m s adelante Como usuario root de Linux corra el siguiente comando para cambiar el tipo a un tipo usado por Samba chcon t samba_share_t var www html testfile Ejecute el comando ls Z var www html prueba para ver los cambios rw r r root root unconfined_u object_r samba_share_t s0 var www html testfile Nota los permisos de DAC actuales permiten al proceso httpd acceder al prueba Cambie al directorio donde el usuario Linux tenga permiso de escritura y ejecute el comando wget http localhost prueba A menos que hayan cambios en la configuraci n predeterminada este comando fallar 2009 11 06 14 11 23 http localhost testfile Resolving localhost 127 0 0 1 Connecting to localhost 127 0 0 1 80 connected HTTP request sent awaiting response 403 Forbidden 2009 11 06 14 11 23 ERROR 403 Forbidden 12 Borrador Procesos no Confinados 8 Como usuario root de Linux corra el comando rm i var www html prueba para borrar prueba 9 Sino necesita que corra httpd como usuario root de Linux corra el comando service httpd stop p
110. ss this file El comando chcon reetiqueta archivos sin embargo tales cambios de etiquetas no sobreviven cuando el sistema se reetiqueta Para que los cambios sobrevivan un reetiquetado del sistema use el comando semanage que se discute m s adelante Como usuario root de Linux corra el siguiente comando para cambiar el tipo a un tipo usado por Samba chcon t samba_share_t var www html test2file Ejecute el comando 1s Z var www html prueba2 para ver los cambios rw r r root root unconfined_u object_r samba_share_t s0 var www html test2file Corra el comando service httpd status para confirmar que el proceso httpd no se est ejecutando sbin service httpd status httpd is stopped 14 Borrador Procesos no Confinados 10 Si la salida difiere ejecute service httpd stop como usuario root de Linux para detener el proceso httpd sbin service httpd stop Stopping httpd OK Para hacer que el proceso httpd corra no confinado ejecute el siguiente comando como usuario root de Linux para cambiar el tipo de usr sbin httpd a un tipo que no transicione a un dominio confinado chcon t unconfined_exec_t usr sbin httpd Ejecute el comando ls Z usr sbin httpd para confirmar que usr sbin httpd esta etiquetado con el tipo unconfined_exec_t rwxr xr x root root system_u object_r unconfined_exec_t usr sbin httpd Como usuario root de Linux ejecute el comando service httpd start para iniciar el proceso ht
111. t is a contiguous series it can be abbreviated For example c0 c3 is the same as c0 c1 c2 c3 The etc selinux targeted setrans conf file maps levels SQ cO to human readable form ie CompanyConfidential Do not edit setrans conf with a text editor use semanage to make changes Refer to the semanage 8 manual page for further information In Fedora targeted policy enforces MCS and in MCS there is just one sensitivity sO MCS in Fedora supports 1024 different categories cO through to c1023 s0 s0 c0 c1023 is sensitivity sO and authorized for all categories MLS enforces the Bell La Padula Mandatory Access Model and is used in Labeled Security Protection Profile LSPP environments To use MLS restrictions install the sel inux policy mls package and configure MLS to be the default SELinux policy The MLS policy shipped with Fedora omits many program domains that were not part of the evaluated configuration and therefore MLS on a desktop workstation is unusable no support for the X Window System however an MLS policy from the upstream SELinux Reference Policy can be built that includes all program domains 3 1 Transiciones de Dominios Un proceso transiciona de un dominio a otro ejecutando una aplicaci n que tiene el tipo entrypoint en el nuevo dominio Los permisos entrypoint se usan en las pol ticas de SELinux y controlan qu aplicaciones pueden usarse para ingresar a un dominio El siguiente ejemplo muestra una transi
112. tegory Security MCS Levels are briefly discussed later role Parte de SELinux es el modelo de seguridad de Control de Acceso Basado en Roles RBAC El rol es un atributo de RBAC Los usuarios de SELinux son autorizados para ciertos roles y los roles son autorizados para ciertos dominios Los roles sirven como un intermediario entre dominios y usarios SELinux Los roles en los que se puede ingresar determinan los dominios a los que se ingresan al final esto controla los tipos de objetos que se pueden acceder Esto ayuda a reducir la vulnerabilidad de ataques de escalada de privilegios type The type is an attribute of Type Enforcement The type defines a domain for processes and a type for files SELinux policy rules define how types can access each other whether it be a domain accessing a type or a domain accessing another domain Access is only allowed if a specific SELinux policy rule exists that allows it Cap tulo 3 Contextos de SELinux Borrador level El nivel es un atributo de MLS y la Seguridad Multi Categor a MCS Un rango MLS es un par de niveles escrito como bajonivel altonivel si los niveles sin distintos o bajonivel si los niveles son id nticos s0O sO es lo mismo que s0 Cada nivel es un par sensible a categor as donde las categor as son opcionales Si no hay categor as el nivel se escribe como sensibilidad conjunto de categor a Si no hay categor as se escribe como sensibilidad If the category se
113. this guide uses Linux user and SELinux user to differentiate between the two 2 1 Beneficios de usar SELinux e Todos los procesos y archivos se etiquetan con un tipo Un tipo define un dominio para los procesos y un tipo para los archivos Los procesos se separan entre s corri ndolos en sus propios dominios y las reglas de pol ticas de SELinux define c mo interact an los procesos con los archivos as como la forma en que interact an entre s El acceso s lo se permite si existe una regla de pol tica de SELinux que espec ficamente lo permita e Control de acceso m s fino Yendo un paso m s alla de los permisos tradicionales de UNIX que se controlan a discreci n del usuario y se basa en los IDs de usuario y de grupos de Linux las decisiones de accesos de SELinux se basan en toda la informaci n disponible tales como un usuario SELinux el rol el tipo y opcionalmente un nivel e La politica de SELinux se define administrativamente obligando a todo el sistema y no se pone a discreci n del usuario e Reduced vulnerability to privilege escalation attacks One example since processes run in domains and are therefore separated from each other and because SELinux policy rules define how processes access files and other processes if a process is compromised the attacker only has access to the normal functions of that process and to files the process has been configured to have access to For example if the Apache HTTP Se
114. to para el texto que usted escriba al ejecutar un comando como para el texto mostrado por el sistema Aparte del uso est ndar para presentar el t tulo de un trabajo las it licas denotan el primer uso de un t rmino nuevo e importante Por ejemplo Publican es un sistema de publicaci n de DocBook 1 2 Convenciones del documento Los mensajes de salida de la terminal o fragmentos de c digo fuente se distinguen visualmente del texto circundante Los mensajes de salida enviados a una terminal se muestran en romano monoespaciado y se presentan as books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgs Los listados de c digo fuente tambi n se muestran en romano monoespaciado pero se presentan y resaltan de la siguiente manera package org jboss book jca ex1 import javax naming InitialContext public class ExClient public static void main String args throws Exception InitialContext iniCtx new InitialContext Object ref iniCtx lookup EchoBean EchoHome home EchoHome ref Echo echo home create System out println Created Echo System out println Echo echo Hello echo echo Hello J J 1 3 Notas y Advertencias Finalmente utilizamos tres estilos visuales para llamar la atenci n sobre la informaci n que de otro modo se podr a pasar por alto Nota Una nota es una sugerencia atajo o enfoque alternativo para una tare
115. tpd La salida escomo sigue si httpd inicia con xito sbin service httpd start Starting httpd OK Ejecute el comando ps eZ grep httpd para ver si httpd est corriendo en el dominio unconfined_t ps eZ grep httpd unconfined_u system_r unconfined_t 7721 unconfined_u system_r unconfined_t 7723 unconfined_u system_r unconfined_t 7724 unconfined_u system_r unconfined_t 7725 unconfined_u system_r unconfined_t 7726 unconfined_u system_r unconfined_t 7727 unconfined_u system_r unconfined_t 7728 unconfined_u system_r unconfined_t 7729 unconfined_u system_r unconfined_t 7730 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd 00 00 00 httpd NYvunvnnvnun vy NN NY Cambie al directorio donde su usuario Linux tenga permiso de escritura y ejecute el comando wget http localhost prueba2 A menos que hayan cambios en la configuraci n predeterminada este comando deberia tener xito 2009 05 07 01 41 10 http localhost test2file Resolving localhost 127 0 0 1 Connecting to localhost 127 0 0 1 80 connected HTTP request sent awaiting response 200 OK Length 0 text plain Saving to test2file 1 lt gt K s in Os 15 Cap tulo 4 Pol tica Destinado Borrador 11 12 13 14 2009 05 07 01 41 10 0 00 B s test2file 1 saved 0 0 Aunque el proceso httpd no tiene acceso a archivos etiquetados con el t
116. ueo de seguridad para ver si el proceso tiene permitido romper esos l mites 63 Cap tulo 7 Soluci n a Problemas Borrador Desde el mensaje de llamado al sistema SYSCALL nos interesan dos tems e success no indica si la negaci n AVC fue aplicada o no success no indica que la llamada al sistema no fue exitosa SELinux neg el acceso success yes indica que la llamada al sistema fue exitosa esto se puede ver en dominios permisivos o en dominios no confinados tales como initrc_t y kernel_t e exe usr sbin httpd the full path to the executable that launched the process which in this case is exe usr sbin httpd An incorrect file type is a common cause for SELinux denying access To start troubleshooting compare the source context scontext with the target context tcontext Should the process scontext be accessing such an object tcontext For example the Apache HTTP Server httpd_t should only be accessing types specified in the httpd_selinux 8 manual page such as httpd_sys_content_t public_content_t and so on unless configured otherwise 7 3 7 Mensajes sealert Las negaciones tienen IDs asignados como se ve en var log messages El siguiente es un ejemplo de negaci n AVC guardado en messages que ocurri cuando el Servidor HTTP Apache corriendo en el dominio httpd_t domain intent acceder el var www htm1 archivo1 etiquetado con el tipo samba_share_t hostname setroubleshoot SELinux is p
117. umes that the httpd wget setroubleshoot server dbus and audit packages are installed that the SELinux targeted policy is used and that SELinux is running in enforcing mode 1 Ejecute el comando sestatus para confirmar que SELinux est activado se ejecuta en modo obligatorio y que la pol tica destinada se est usando usr sbin sestatus SELinux status enabled SELinuxfs mount selinux Current mode enforcing Mode from config file enforcing Policy version 23 Policy from config file targeted SELinux status enabled is returned when SELinux is enabled Current mode enforcing is returned when SELinux is running in enforcing mode Policy from config file targeted is returned when the SELinux targeted policy is used Como usuario root de Linux corra el comando touch var www html prueba2 para crear un archivo Ejecute el comando ls Z var www html prueba2 para ver el contexto SELinux rw r r root root unconfined_u object_r httpd_sys_content_t s0 var www html test2file By default Linux users run unconfined in Fedora which is why the test2file file is labeled with the SELinux unconfined_u user RBAC is used for processes not files Roles do not have a meaning for files the object_r role is a generic role used for files on persistent storage and network file systems Under the proc directory files related to processes may use the system_r role The httpd_sys_content_t type allows the httpd process to acce
118. un the usr sbin getsebool a command For a list of Booleans an explanation of what each one is and whether they are on or off run the usr sbin semanage boolean 1 command as the Linux root user Refer to Secci n 5 6 Booleanos for information about listing and configuring Booleans N meros de Puertos Dependiendo de la configuraci n de la pol tica los servicios pueden tener permitido correr sobre ciertos n meros de puerto Intentar cambiar el puerto en el que corre un servicio sin cambiar la pol tica puede resultar en un fallo al iniciar el servicio Por ejemplo ejecute el comando semanage port 1 grep http como usuario root de Linux para listar los puertos relacionados con http usr sbin semanage port 1 grep http http_cache_port_t tcp 3128 8080 8118 http_cache_port_t udp 3130 http_port_t tcp 80 443 488 8008 8009 8443 pegasus_http_port_t tcp 5988 pegasus_https_port_t tcp 5989 El tipo de puerto http_port_t define los puertos en los que el Servidor HTTP Apache puede escuchar que en este caso son los puertos TCP 80 443 488 8008 8009 y 8443 Si un administrador configura httpd conf para que httpd escuche en el puerto 9876 Listen 9876 pero la politica no fue actualizada para reflejar esto el comando service httpd start falla sbin service httpd start Starting httpd 13 Permission denied make_sock could not bind to address 9876 13 Permission denied make_sock could not bind to address 0 0 0 0
119. ux SELinux modes configuring Booleans temporarily and persistently changing file and directory labels overriding file system labels with the mount command mounting NFS file systems and how to preserve SELinux contexts when copying and archiving files and directories 5 1 Paquetes de SELinux In Fedora the SELinux packages are installed by default unless they are manually excluded during installation By default SELinux targeted policy is used and SELinux runs in enforcing mode The following is a brief description of the main SELinux packages policycoreutils provee utilitarios tales como semanage restorecon audit2allow semodule load_policy y setsebool para la operaci n y administraci n de SELinux policycoreutils gui provee system config selinux una herramienta gr fica para la administraci n de SELinux selinux policy provee una Pol tica de Referencia de SELinux La Pol tica de Referencia de SELinux en una pol tica de SELinux completa y se usa como base para otras pol ticas tales como la pol tica destinada de SELinux Vaya a la p gina Pol tica de Referencia de SELinux de Tresys Technology para m s informaci n El paquete selinux policy devel provee herramientas de desarrollo tales como usr share selinux devel policygentool y usr share selinux devel policyhelp as como archivos de pol tica ejemplos Este paquete fue mezclado con el paquete selinux policy selinux policy policy provee las pol ticas de
120. w_console_login gt off Una lista separada por espacio para listar los Booleanos m ltiples getsebool allow_console_login allow_cvs_read_shadow allow_daemons_dump_core allow_console_login gt off 26 Borrador Configurando los Booleanos allow_cvs_read_shadow gt off allow_daemons_dump_core gt on 5 6 2 Configurando los Booleanos El comando setsebool nombre de booleano x activa o desactiva Booleanos donde nombre de booleano es un nombre de Booleano y x es on para activar u off para desactivar El siguiente ejemplo muestra la configuraci n de Booleano httpd_can_network_connect_db 1 Por defecto el booleano httpd_can_network_connect_db est apagado impidiendo a los scripts y m dulos del Servidor HTTP Apache conectarse a servidores de bases de datos usr sbin getsebool httpd_can_network_connect_db httpd_can_network_connect_db gt off 2 Para permitir temporalmente a los scripts y m dulos del Servidor HTTP Apache conectarse a servidores de bases de datos ejecute el comando setsebool httpd_can_network_connect_db on como usuario root de Linux 3 Use el comando getsebool httpd_can_network_connect_db para verificar que el Booleano est activado usr sbin getsebool httpd_can_network_connect_db httpd_can_network_connect_db gt on Esto permite a los scripts y m dulos del Servidor HTTP Apache conectarse a servidores de bases de datos 4 Este cambio no es persistente entre reinicio
121. warnings instead of enforcing disabled No SELinux policy is loaded SELINUX permissive SELINUXTYPE can take one of these two values targeted Targeted processes are protected mls Multi Level Security protection SELINUXTYPE targeted 3 Como usuario root de Linux corra el comando reboot para reiniciar el sistema Durante el siguiente arranque los sistemas de archivo son etiquetados El proceso etiqueta todos los archivos con un contexto de SELinux Warning SELinux targeted policy relabel is required Relabeling could take a very long time depending on file system size and speed of hard drives KKK Cada caracter en la linea de abajo representa 1000 archivos que han sido etiquetados En el ejemplo de arriba cuatro caracteres representan 4000 archivos etiquetados El tiempo que toma reetiquetar todos los archivos depende del numero de archivos del sistema y la velocidad de los discos r gidos En sistemas modernos este proceso puede tomar 10 minutos 23 Cap tulo 5 Trabajando con SELinux Borrador 4 In permissive mode SELinux policy is not enforced but denials are still logged for actions that would have been denied if running in enforcing mode Before changing to enforcing mode as the Linux root user run the grep SELinux is preventing var log messages command as the Linux root user to confirm that SELinux did not deny actions during the last boot If SELinux did not deny actions dur
122. x se pueden ignorar 5 7 2 Cambios Persistentes semanage fcontext El comando usr sbin semanage fcontext cambia el contexto SELinux de los archivos Cuando se usa la pol tica destinada los cambios hechos con este comando se agregan al archivo etc selinux targeted contexts files file_contexts si los cambios so para archivos que est n en file_contexts se agregan a file_contexts local para archivos nuevos y directorios como ser a al crear un directorio web nuevo setfiles que se usa cuando el sistema de archivo es reetiquetado y sbin restorecon que restaura los contextos de SELinux predeterminados leen estos archivos Lo que significa que los cambios hechos por usr sbin semanage fcontext son persistentes a n si el sistema de archivo es reetiquetado La pol tica de SELinux controla si los usuarios pueden modificar el contexto de SELinux para cualquier archivo dado Referencia R pida Para hacer que los cambios de contexto de SELinux sobrevivan un reetiquetado del sistema de archivo 1 Ejecute el comando usr sbin semanage fcontext a opciones nombre de archivo nombre de directorio recuerde usar la direcci n completa del archivo o del directorio 2 Ejecute el comando sbin restorecon v nombre de archivo nombre de directorio para aplicar los cambios de contexto Changing a File s Type The following example demonstrates changing a file s type and no other attributes of the SELinux context 1 Como usuario root d
123. xkxkx k IMPORTANT kkkkxkxkxkxkxkxkxkkkkkkkxkxkxkxkkk To make this policy package active execute usr sbin semodule i mycertwatch2 pp Refer to Dan Walsh s Using audit2allow to build policy modules Revisited pe blog entry for further information about using audit2a11ow to build policy modules 3 http danwalsh livejournal com 24750 html 68 Borrador Borrador Informaci n Adicional 8 1 Contributors Geert Warrink translation Dutch Domingo Becker translation Spanish Daniel Cabrera translation Spanish 8 2 Other Resources La Agencia de Seguridad Nacional NSA De la p gina Contribuyentes de SELinux Researchers in NSA s National Information Assurance Research Laboratory NIARL designed and implemented flexible mandatory access controls in the major subsystems of the Linux kernel and implemented the new operating system components provided by the Flask architecture namely the security server and the access vector cache The NSA researchers reworked the LSM based SELinux for inclusion in Linux 2 6 NSA has also led the development of similar controls for the X Window System XACE XSELinux and for Xen XSM Flask e Main SELinux website http Awww nsa gov research selinux index shtml e SELinux documentation http www nsa gov research selinux docs shtml e SELinux background http www nsa gov research selinux background shtml Tecnolog a de Tresys Tresys Technology son los
124. y 7 18 55 56 localhost setroubleshoot SELinux is preventing httpd httpd_t getattr to var www html file1 samba_share_t For complete SELinux messages run sealert 1 de7e30d6 5488 466d a606 92c9f40d316d In Fedora 13 setroubleshootd no longer constantly runs as a service however it is still used to analyze the AVC messages Two new programs act as a method to start setroubleshoot when needed sedispatch and seapplet sedispatch runs as part of the audit subsystem and via dbus sends a message when an AVC denial occurs which will go straight to setroubleshootd if it is already running or it will start setroubleshootd if it is not running seapplet is a tool which runs in the system s toolbar waiting for dbus messages in setroubleshootd and will launch the notification bubble allowing the user to review the denial Los mensajes de negaci n se env an a una ubicaci n distinta dependiendo de cu les demonios se est n ejecutando Daemon Log Location auditd on var log audit audit log auditd off rsyslogd on var log messages rsyslogd and auditd on var log audit audit log Easier to read denial messages also sent to var log messages 5 http docs fedoraproject org yum en Administraci n de Software con yum escrito por Stuart Ellis editado por Paul W Frields Rodrigo Menezes y Hugo Cisneiros 20 Borrador Archivo de Configuraci n Principal Iniciando Demonios Autom ticamente Para configurar los demonios auditd
125. y that represents security relevant information This information is called the SELinux context For files this is viewed using the ls Z command 28 Borrador Cambios Temporales chcon ls Z filel rw rw r user1 group1 unconfined_u object_r user_home_t s0 filet En este ejemplo SELinux provee un usuario unconfined_u un rol object_r un tipo user_home_t y un nivel sO Esta informaci n se usa para tomar decisiones sobre el control de acceso En sistemas DAC el control de acceso se basa en los IDs de usuario y grupo de Linux Las reglas de la pol tica de SELinux se chequean despu s de las reglas DAC Las reglas de la pol tica de SELinux no se usan si las reglas DAC niegan el acceso antes Hay muchos comandos para la administraci n del contexto de archivos de SELinux como por ejemplo chcon semanage fcontext y restorecon 5 7 1 Cambios Temporales chcon The chcon command changes the SELinux context for files However changes made with the chcon command do not survive a file system relabel or the execution of the sbin restorecon command SELinux policy controls whether users are able to modify the SELinux context for any given file When using chcon users provide all or part of the SELinux context to change An incorrect file type is a common cause of SELinux denying access Referencia R pida e Ejecute el comando chcon t tipo nombre de archivo para cambiar el tipo de archivo donde tipo es el tipo por ejem

Download Pdf Manuals

image

Related Search

Related Contents

Service Manual 03-03    TWR-MPC5125  xBrick Full-Colour 16×3W LED floodlight user manual  User's Guide - PC Test Instruments  Développement de modèles standardisés pour l`étude des aérosols  Omega Engineering CDE681 User's Manual  7009 MINISTÉRIO DA ECONOMIA E DA INOVAÇÃO      

Copyright © All rights reserved.
DMCA: DMCA_mwitty#outlook.com.