Está en la página 1de 20

Trabajar con SELinux

SELinux pres enta un nuevo paradigma de seguridad y nuevo grupo de prcticas y herramientas para
los adminis tradores y algunos de los usuarios finales. Las herramientas y tc nic as que se disc uten en
este captulo se enfoc an en operac iones es tndar que us uarios finales, administradores y analis tan
realizan.

45.1. Control de Usuario Final de SELinux


En general, los usuarios finales tienen poca interacc in con SELinux c uando Red Hat Enterpris e Linux
es ta ejec utando la poltica objetivo. Esto se debe a que los usuarios estn ejec utando en el dominio
de unconfined_t junto con el resto del sistema a excepcin de los demonios objetivo.
En la mayoria de los casos , los controles DAC estndares le evitan el tener que realizar tareas para
las cuales us ted no tiene el acceso o los permis os requeridos antes de que se le cons ulte a SELinux.
Por lo tanto es muy probable que usted nunc a genere un mens aje avc: denied.
Las siguientes s ecc iones cubren las tareas y prtic as generales que los usuarios finales pueden llegar
a nec es ita realizar en un sistema Red Hat Enterpris e Linux. Estas tareas aplican a los usurios de tod
nivel de privilegios y no slamente a us uarios finales.

45.1.1. Mover y Copiar Arc hivos


En operac iones del s is tema de archivos, el contexto de seguridad debe ser cons iderado en trminos
de la etiqueta del archivo, el proc es o que lo evala y los directorios en donde est ocurriendo la
operac in. Debido a esto, el mover y copiar archivos con mv y cp puede llegar a tener resultados
ines perados.

Copiar Archivos : Opciones para cp de SELinux


A menos de que espec ifique lo contrario, cp sigue el comportamiento predeterminado de crear un
archivo nuevo con base en el dominio del proc es o de creac in y el tipo de directorio objetivo. A
menos de que haya una reglas es pc ifica para configuara la etiqueta, el archivo hereda el tipo del
directorio objetivo.
Utilice la opcin -Z user:role:type para espec ificar la etiqueta requerida para el nuevo archivo.
La opcin -p (or --preserva=m odo, propi edad, sellos de fecha) pres erva los atributos
es pec ific ados y si es posible pres erva los atribuots adic ionales como enlac es.

touc h bar fo o
ls - Z ba r f o o
-r w-r w -r- - a use r
-r w-r w -r- - a use r

auser
auser

user_ u: o bject _r: user _h o me _t


user_ u: o bject _r: user _h o me _t

bar
foo

Si utiliza el c omando cp sin ningn argumento de lnea de comando adicional se crear una copia del
archivo en la nueva ubic ac in utilizando el tipo predeterminado del proc es o de cracin y el directorio
objetivo. En este caso, debido a que no aplica ninguna regla es pec ific a a cp y /tmp, el nuevo archivo
tiene el tipo del directorio padre:

757

Verificar el Contexto de Seguridad de un Proc es o, Usuario u Objeto de Archivo

cp bar /tmp
ls - Z /t m p / b a r
-r w-r w-r -- a user

auser

user _ u: o b ject _r: t m p _t

/t m p/ bar

El tipo tmp_t es el tipo predeterminado para archivos temporales.


Utilice la opcin -Z para espec ific ar la etiqueta para el nuevo archivo:

cp -Z user_u :o bject_ r:user _h o me_t fo o /t mp


ls - Z /t m p / f o o
-r w-r w-r-- a user
auser
user _ u: o bject _r : user _h o me _ t

/t m p/f o o

Mover Archivos: SELinux O pciones para mv


Moving files with mv retains the original type ass oc iated with the file. Care should be taken using this
command as it can caus e problems. For example, if you move files with the type user_home_t into
~/publi c_html, then the httpd daemon is not able to serve thos e files until you relabel them. Refer
to Seccin 45. 1.3, Nuevas Etiquetas para un Archivo o Director io for more information about file
labeling.
Comando

Comportamiento

mv

The file retains its original label. This may caus e problems,
confus ion, or minor insecurity. For example, the tmpwatch
program running in the sbin_t domain might not be allowed
to delete an aged file in the /tmp directory because of the file's
type.

cp

Hace una copia del archivo utilizando el comportamiento


predeterminado con base en el dominio del proceso de
creac in (cp) y el tipo del directorio objetivo.

cp -p

Hace una copia del archivo pres ervando los atributos


es pec ific ados y los contextos de seguridad si es posible. Los
atributos predeterminados son mode, ownership y timestamps.
Los atributos adic ionales son links y all.

cp -Z <user:role:type>

Hace una copia del archivo con las etiquetas espec ific adas. La
opcin -Z es sinnimo de --context.

Tabla 45.1. Comportamiento de los Comandos mv y cp

45.1.2. Verificar el Contexto de Segurida d de un Proceso, Usua rio u


Objeto de Archivo
Verificar un ID de Proceso
In Red Hat Enterpris e Linux, the -Z option is equivalent to --context, and can be used with the ps,
id, l s, and cp c ommands. The behavior of the cp c ommand with res pec t to SELinux is explained in
Tabla 45.1, Comportamiento de los Comandos mv y cp.
El s iguiente ejemplo es una pequea muestra de la salida del comando ps. La mayora de los
proc es os es tn ejec utando en el dominio unconfined_t, con poc as exc epc iones.

758

Verificar el Contexto de Seguridad de un Proc es o, Usuario u Objeto de Archivo

[user@l ocalhost ~]$ ps auxZ


LABEL
TIME COMMAND
sy ste m _ u : s ys te m _ r :i n it _ t
0:00 init [5]
sys te m _ u :s ys te m _ r: ker n el _t
0 : 0 0 [ m i gra ti o n / 0 ]
sys te m _ u :s ys te m _ r: ker n el _t
0:00 [ksoftirqd/0]

USER

PID %CPU % M E M

VSZ

ST AT ST ART

620 ?

Ss

15:09

r o ot

0.0

0.1

ro o t

0.0

0. 0

0 ?

15:09

ro o t

0.0

0. 0

0 ?

SN

15:09

user_u:s ystem _r: unc onfi ned _t


user
31 22
0: 0 1 / usr /l i be xec/ gc o n f d- 2 5
user_u:s ystem _r: unc onfi ned _t
user
31 25
0:00 / usr/bi n/g no me -keyrin g-daemo n
user_u:s ystem _r: unc onfi ned _t
user
31 27
0: 0 0 /us r/l ibe xec/ g no me -sett in gs- dae m o n
user_u:s ystem _r: unc onfi ned _t
user
31 44
0 : 0 1 m e tac it y --s m - cl ie n t- i d = de fa u lt 1
user_u:s ystem _r: unc onfi ned _t
user
31 48
0:03 gnome-panel --s m - c li e n t- i d de fa u lt 2

20 32

RSS TT Y

0.0

0.6

69 08

32 32 ?

16:47

0.0

0.1

25 40

588 ?

16:47

0.0

1.4

3 36 12 69 88 ?

Sl

16: 47

0.1

1.4

1 65 28 73 60 ?

Ss

16: 47

0.2

2.9

7 95 44 1 48 08 ?

Ss

16: 47

Verificar un ID de Usuario
You can use the -Z option with the id command to determine a user's security context. Note that with
this command you cannot combine -Z with other options.

[roo t @local host ~]# i d -Z


user_ u:s yste m_r :u nco nfi ne d_t

Obs erve que no puede utilizar la opcin -Z con el comando id para inspecc ionar el contexto de
seguridad de un usario diferente. Es decir que usted s lamente puede visualizar el contexto de
seguridad del us uario conectado actualmente:

[user@localhost ~]$ id
ui d= 5 01( user) gi d= 5 01( user) gro u ps= 5 01( user) co ntex t= user_ u:s yste m_ r:u nc onf ine d_ t
[user@localhost ~]$ id root
ui d = 0(r o o t) g i d= 0 (r o ot) gr o u ps = 0(r o ot), 1 (b i n), 2( dae m o n), 3(s ys ),4 (a d m), 6( di sk ), 10 ( wheel )
[user @l oca lh os t ~]$ i d - Z r o o t
i d: ca n n o t d is p la y c o n te x t when selin u x n ot ena ble d or when displaying the id
o f a d i ff ere n t u se r

Verifica el ID de un Archivo
Puede utilizar la opcin -Z con el comando l s para agrupar informacin con formato comn largo.
Puede visualizar informacin sobre el modo, usuario, grupo, contexto de seguridad y nombre del
archivo.

cd /etc
ls -Z h* -d
d r wx r- x r- x r o o t r o o t
-rw-r--r-root root
-rw-r--r-root root

s y ste m _ u : o b j ec t _r :e tc _ t
system_u: object_r:etc_t
user_u: object_r:etc_t

ha l
host.conf
hosts

759

Verificar el Contexto de Seguridad de un Proc es o, Usuario u Objeto de Archivo

-rw-r--r--rw-r--r--rw-r--r-dr wx r- xr- x
drwxr- xr-x
drwxr- xr-x
drwxr- xr-x

root
root
root
r o ot
root
root
root

root
root
root
r o ot
root
root
root

sys te m _ u : o bjec t _r :etc _ t


h os ts.a ll o w
sys te m _ u : o bjec t _r :etc _ t
h osts.ca n na
sys te m _ u : o bjec t _r :etc _ t
h osts. de n y
s yste m _ u : o bject _r : h ot pl u g _etc _t h ot pl u g
sys te m _ u: o bject _ r:etc _ t
h ot pl u g. d
syste m _ u: o bjec t _r: ht tp d _s ys _c o nte nt _t h t di g
sys te m _ u: o bject _ r: ht tp d _c o nf i g_ t ht t p d

45.1.3. Nue vas Etiquetas para un Archivo o Directorio


Puede que nec es ite volver a etiquetar un archivo cunaod lo est moviendo o copiando a directorios
es pec iales relac ionados con los demonios objetivo as como los directorios ~/public_html o
cuando s e escriben scripts que funcionan en directorios fuera de /home.
Hay dos tipos generales de operac iones para volver a etiquetar:
Cambiando deliberadamente el tipo de archivo
Restablec er arc hivos a su estado predeterminado de ac uerdo con la poltica
There are also relabeling operations that an administrator performs. Thes e are covered in
Seccin 45.2. 2, Creacin de Etiquetas Nuevas para Sistemas de Archivos.

Tip
Gran parte del control de permis os de SELinux en la poltica objetivo es el Tipo de
Refuerzo (TE). Por lo tanto, generalmente puede ignorar la informacin de la
etiqueta de seguridad s obre el usuario y el rol y enfoc ars e en slo cambiar el tipo.
Normalmente no nec es ita cons iderar la configurac in del rol y del us uario en los
archivos.

Nota
If relabeling affects the label on a daemon's exec utable, you should restart the
daemon to be sure it is running in the correct domain. For example, i f /usr/sbin /
mysqld has the wrong security label, and you address this by using a relabeling
operation such as restorecon, you must restart mysqld after the relabeling
operation. Setting the exec utable file to have the correct type (mysqld_exec_t)
ensures that it transitions to the proper domain when started.

Utilice el c omando chcon para cambiar un archivo al tipo c orrec to. Nec es ita s aber el tipo c orrecto
que quiere aplicar para utilizar es te comando. Los directorios y archivos en el s iguiente ejemplo se
enc uentran etiquetados con el tipo predeterminado definido por los objetos del s istema de archivos
creados en /home :

cd ~
ls - Z d p u b li c _ h t m l /
dr wxr wx r- x ause r auser

user _u : o bject _r: use r_ h o me _t p u bl ic_ h t ml/

ls -Z web_files/
-r w-r w-r-- a user
-r w-r w-r-- a user
-r w-r w-r-- a user

user _ u: o bject _ r: user _ ho m e_ t


user _ u: o bject _ r: user _ ho m e_ t
user _ u: o bject _ r: user _ ho m e_ t

ause r
ause r
ause r

1. ht ml
2. ht ml
3. ht ml

760

Nuevas Etiquetas para un Archivo o Directorio

-r w-r w - r- -r w-r w - r- -r w-r w - r- -

auser
auser
auser

auser
auser
auser

user_ u: o bject _r: user _h o me _t


user_ u: o bject _r: user _h o me _t
user_ u: o bject _r: user _h o me _t

4.h t ml
5.h t ml
in dex. ht ml

Si mueve es tos arc hivos al directorio public_html retienen el tipo original:

mv web _fi les/ * p u bl ic _h t ml /


ls - Z p u b l ic _ h t m l /
-r w-r w - r- - auser auser user_ u: o bject _r: user _h o me _t
-r w-r w - r- - auser auser user_ u: o bject _r: user _h o me _t
-r w-r w - r- - auser auser user_ u: o bject _r: user _h o me _t
-r w-r w - r- - auser auser user_ u: o bject _r: user _h o me _t
-r w-r w - r- - auser auser user_ u: o bject _r: user _h o me _t
-r w-r w - r- - auser auser user_ u: o bject _r: user _h o me _t

1.h t ml
2.h t ml
3.h t ml
4.h t ml
5.h t ml
in dex. ht ml

Para que estos archivos s ean vis ibles desde una carpeta es pec ial HTML de usuarios pblicos, ellos
nec es itan tener un tipo httpd que tenga permis o de leer, aumiendo que el Servidor HTTP Apache se
enc uentra c onfigurado para UserDir y que el valor boleano httpd_enable_homedirs est activado.

chcon -R -t htt p d _ user _c on ten t _t p u bl ic _h t ml /


ls - Z p u b l ic _ h t m l
-r w-r w - r- - auser auser use r _ u: o b ject _r : ht t p d _ user _ c o nte n t _t
-r w-r w - r- - auser auser use r _ u: o b ject _r : ht t p d _ user _ c o nte n t _t
-r w-r w - r- - auser auser use r _ u: o b ject _r : ht t p d _ user _ c o nte n t _t
-r w-r w - r- - auser auser use r _ u: o b ject _r : ht t p d _ user _ c o nte n t _t
-r w-r w - r- - auser auser use r _ u: o b ject _r : ht t p d _ user _ c o nte n t _t
-r w-r w - r- - auser auser use r _ u: o b ject _r : ht t p d _ user _ c o nte n t _t
ls - Z p u b l ic _ h t m l / - d
dr wx r wxr- x au ser auser

user _ u: o bjec t _r: h tt p d _u ser _c on te nt _t

1.h t ml
2.h t ml
3.h t ml
4.h t ml
5.h t ml
in dex. ht ml

p u blic _ h t ml /

Tip
Si el archivo no tiene etiqueta as como un archivo creado mientras que SELinux
estaba des habilitado en el kernel, nec es ita darle una etiqueta completa con chcon
system_u:object_r:shlib_t foo.so. De otra manera, recibir un error sobre
aplic ac in de un contexto parcial a un archivo sin etiqueta.

Use the restorecon c ommand to restore files to the default values acc ording to the policy. There
are two other methods for performing this operation that work on the entire file system: fixfiles or
a policy relabeling operation. Each of thes e methods requires s uperus er privileges. Cautions against
both of thes e methods appear in Seccin 45.2. 2, Creacin de Etiquetas Nuev as para Sistemas de
Archivos.
The following example demons trates restoring the default user home directory context to a set of files
that have different types. The first two sets of files have different types, and are being moved into a
directory for archiving. Their contexts are different from each other, and are incorrect for a standard
user's home directory:

ls - Z /t m p /
-rw-rw-r-- auser auser
-rw-rw-r-- auser auser

user_u:object_r:tmp_t
user_u:object_r:tmp_t

/tmp/file1
/tmp/file2

761

Nuevas Etiquetas para un Archivo o Directorio

-rw-rw-r-- auser auser

user_u:object_r:tmp_t

/tmp/file3

mv /t m p / { 1, 2 , 3 } ar c h i ve s/
mv publ ic_ ht m l/ * arc h i v es /
ls -Z archives/
-rw-r w-r-- a user a user user _u: object _r:t m p_t
file1
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file1.html
-rw-r w-r-- a user a user user _u: object _r:t m p_t
file2
-rw-rw-r-- auser auser user_u:object_r:httpd_user_content_t file2.html
-r w-r w- r- - auser auser user _ u: o b ject _r: t m p _t
file 3
-r w-r w- r- - auser auser use r _ u: o b ject _r : ht t p d _ user _ c o nte n t _t
file3.html
-r w-r w- r- - auser auser use r _ u: o b ject _r : ht t p d _ user _ c o nte n t _t
file4.html
-r w-r w- r- - auser auser use r _ u: o b ject _r : ht t p d _ user _ c o nte n t _t
file5.html
-r w-r w- r- - auser auser use r _ u: o b ject _r : ht t p d _ user _ c o nte n t _t
in dex. ht ml

The archives/ directory already has the default type because it was created in the us er's home
directory:

ls - Z d ar c h i ve s/
dr wxr wxr- x auser

auser

user_u :o bject_r :user _h o me_t

arc h i v es /

Utilizando el comando restor econ para darle una nueva etiqueta a los archivos utiliza los contextos
de los archivos predeterminados establec idos por la poltica as que estos archivos s e les da la
etiqueta predeterminada para el directorio actual.

/sbin/restorecon -R
ls -Z archives/
-r w-r w- r- - auser
-r w-r w- r- - auser
-r w-r w- r- - auser
-r w-r w- r- - auser
-r w-r w- r- - auser
-r w-r w- r- - auser
-r w-r w- r- - auser
-r w-r w- r- - auser
-r w-r w- r- - auser

arc h i v es /
auser
auser
auser
auser
auser
auser
auser
auser
auser

system_ u: ob ject_r:user _h ome _t


system_ u: ob ject_r:user _h ome _t
system_ u: ob ject_r:user _h ome _t
system_ u: ob ject_r:user _h ome _t
system_ u: ob ject_r:user _h ome _t
system_ u: ob ject_r:user _h ome _t
system_ u: ob ject_r:user _h ome _t
system_ u: ob ject_r:user _h ome _t
system_ u: ob ject_r:user _h ome _t

file1
file1.html
file2
file2.html
file3
file3.html
file4.html
file5.html
in dex. ht ml

45.1.4. Creacin de Arc hivos que Retienen Co nte xtos de Segurida d


Puede utilizar las utilidades tar o star para crear ficheros que retengan c ontextos de seguridad
SELinux. El s iguiente ejemplo utiliza star para demostrar como crear tal fichero. Neces ita utilizar
las opc iones apropiadas -xattr y -H=exustar para asegurarse de que los atributos extras s on
capturados y de que el enc abezamiento para el archivo *.star sea de un tipo que soporta por
completo xattrs. Cons ulte la pgina del manual patra obtener mayor informacin sobre estas y otras
opc iones.
The following example illustrates the creation and extraction of a set of html files and directories. Note
that the two directories have different labels. Unimportant parts of the file context have been omitted
for printing purpos es (indicated by ellipses '...'):

ls - Z p u b l ic _ h t m l / we b _ fi le s/
p u bl ic _ ht m l /:
-r w- r w-r -- a u ser

a us er

... h t t p d _ u ser _ c o n te nt _ t

1. h t m l

762

Creac in de Archivos que Retienen Contextos de Seguridad

-r w- r w -r --r w- r w -r --r w- r w -r --r w- r w -r --r w- r w -r -we b _ f il es/ :


-r w-r w -r--r w-r w -r--r w-r w -r--r w-r w -r--r w-r w -r--r w-r w -r--

a u ser
a u ser
a u ser
a u ser
a u ser

a us er
a us er
a us er
a us er
a us er

... h t t p d _ u ser _ c o n te nt _ t 2. h t m l
... h t t p d _ u ser _ c o n te nt _ t 3. h t m l
... h t t p d _ u ser _ c o n te nt _ t 4. h t m l
... h t t p d _ u ser _ c o n te nt _ t 5. h t m l
... h t t p d _ u ser _ c o n te nt _ t i n dex. ht ml

a user
a user
a user
a user
a user
a user

ause r
ause r
ause r
ause r
ause r
ause r

user _ u: o bject _ r: user _ ho m e_ t


user _ u: o bject _ r: user _ ho m e_ t
user _ u: o bject _ r: user _ ho m e_ t
user _ u: o bject _ r: user _ ho m e_ t
user _ u: o bject _ r: user _ ho m e_ t
user _ u: o bject _ r: user _ ho m e_ t

1. ht m l
2. ht m l
3. ht m l
4. ht m l
5. ht m l
i nde x. ht m l

El s iguiente c omando crea el fichero reteniendo todos los contextos de seguridad de SELinux:

star - xattr - H= e x ustar - c -f a l l _ we b .s ta r p u b l ic _ h t m l / we b _ f i le s/


sta r: 11 blocks + 0 bytes (total of 11 26 40 b ytes = 1 10. 0 0 k).

Utilice el comando l s con la opcin -Z para validar el contexto de seguridad:

ls -Z all_web.star
-r w-r w -r -- a user au ser

user _ u :o b ject _r :u ser _ h o me _t \

all_web.star

Ahora puede copiar el fichero a un directorio diferente. En este ejemplo, el fichero es copiado a /
tmp. Si no hay una poltica espec ific a para tomar un tipo temporal derivativo, el comportamiento
predeterminado es adquirir el tipo tmp_t.

cp al l _ we b.sta r /t m p / cd /t m p /
ls -Z all_web.star
-r w- r w - r- - a u se r a us er

u ser _ u : o b j ec t _r :t m p _ t a ll _ we b .s ta r

Ahora puede expandir los ficheros utilizando star y restablec e los atributos extendidos :

star -xattr -x -f all_we b.star


sta r: 11 blocks + 0 bytes (total of 11 26 40 b ytes = 1 10. 0 0 k).
ls - Z /t m p / p u b l ic _ h t m l / / t m p / we b _ fi le s/
/t m p / p u bl ic _ ht m l/ :
-r w-r w - r- - auser auser ...h tt p d _ s y s _c o n te n t _ t
-r w-r w - r- - auser auser ...h tt p d _ s y s _c o n te n t _ t
-r w-r w - r- - auser auser ...h tt p d _ s y s _c o n te n t _ t
-r w-r w - r- - auser auser ...h tt p d _ s y s _c o n te n t _ t
-r w-r w - r- - auser auser ...h tt p d _ s y s _c o n te n t _ t
-r w-r w - r- - auser auser ...h tt p d _ s y s _c o n te n t _ t
/t m p / we b _ fi les /:
-r w-r w - r- -r w-r w - r- -r w-r w - r- -r w-r w - r- -r w-r w - r- -r w-r w - r- -

auser
auser
auser
auser
auser
auser

auser
auser
auser
auser
auser
auser

1 . ht m l
2 . ht m l
3 . ht m l
4 . ht m l
5 . ht m l
i n de x . ht m l

user_ u: o bject _r: user _h o me _t


user_ u: o bject _r: user _h o me _t
user_ u: o bject _r: user _h o me _t
user_ u: o bject _r: user _h o me _t
user_ u: o bject _r: user _h o me _t
user_ u: o bject _r: user _h o me _t

1.h t ml
2.h t ml
3.h t ml
4.h t ml
5.h t ml
\ in de x.h t ml

763

Creac in de Archivos que Retienen Contextos de Seguridad

Atencin
Si utiliza una ruta absoluta c uando crea un fichero utilizando star, el fichero se
expande en esa misma ruta. Por ejemplo, un fichero hec ho son es te c omando
restablec e los archivos a /var/log/httpd/:

star - xattr - H= e x ustar - c -f htt pd_l ogs.star /var/log/htt pd/

Si trata de expandir es te fichero, star emite una advertenc ia si los archivos en la


ruta son ms nuevos que los que se enc uentran el fichero.

45.2. Controles administrativos de SELinux


In addition to the tas ks often performed by users in Seccin 45.1, Contr ol de Usuario Final de
SELinux, SELinux administrators could be expected to perform a number of additional tas ks. T hes e
tas ks typically require root access to the system. Such tas ks are significantly eas ier under the targeted
policy. For example, there is no need to consider adding, editing, or deleting Linux users from the
SELinux users, nor do you need to consider roles.
Esta seccin cubre los tipos de tareas que se necesitan de un adminis trador que mantiene Red Hat
Enterpris e Linux ejecutando SELinux.

45.2.1. Ver el Estado de SELinux


El c omando sestatus proporc iona una vista configurable al estado de SELinux. La forma ms
simple de es te c omando mues tra la siguiente informac in:

[root @l ocalhost ~]# sestatus


SE L in ux status:
SELinuxfs mount:
Cur ren t m o de:
Mode from config file:
Po lic y ve rsi on :
Policy fro m co nfig fil e:

enabled
/selinux
enf orci n g
enf orci n g
21
tar get e d

La opcin -v incluye informacin sobre los contextos de seguridad de una serie de archivos que se
enc uentran es pec if ic ados en /etc/sestatus.conf:

[r o ot @l o cal h o st ~ ] # sest at us
SE L in ux status:
SELinuxfs mount:
Cur ren t m o de:
Mode from config file:
Po lic y ve rsi on :
Policy fro m co nfig fil e:
P r oc es s c o n te x ts :
Cur ren t c o nte xt :
Init context:
/sb i n/ m i nge tt y

-v
enabled
/selinux
enf orci n g
enf orci n g
21
tar get e d

user _ u:s yste m _ r: u nco nf i ned _ t


system_u:system_r:init_t
sys te m _ u:s yste m _ r: get t y _t

764

Creac in de Etiquetas Nuevas para Sistemas de Archivos

/ usr /s b i n /ss h d

s yst e m _ u : s ys te m _ r : u nc o n fi n e d _ t: s 0- s 0: c 0.c 1 0 2 3

File contexts:
Co n t r ol li n g t er m :
/etc / pass wd
/etc/shad o w
/b i n/ ba s h
/ bi n /l o g i n
/b i n/s h
/s b i n /a ge tt y
/sbi n/init
/s bi n/ m i n get t y
/ usr /s b i n /ss h d
/li b/li bc.s o. 6
/lib/l d-li nux.so. 2

use r _ u: o b jec t _r : de v pt s _t
sys te m _ u : o bjec t _r :etc _ t
system _u :o bject_ r:sha do w_t
sys te m _ u : o bjec t _r :s hel l _e xec _ t
s yst e m _ u : o b je ct _ r: l o g i n _e x ec _t
sys te m _ u: o b ject _r : bi n _ t -> s ys te m _ u: o b ject _r :s hel l _e xec _t
s ys te m _ u : o b j ec t _ r: g et t y _e x ec _ t
system _u: object_r:i nit _e xec_t
sys te m _ u: o b ject _r : get t y _e xec _t
s yst e m _ u : o b je ct _ r: ss h d _ e xec _ t
sy ste m _ u : o b j ect _ r: li b _ t - > s ys te m _ u : o b jec t _r : li b _ t
sys te m _ u: o b ject _r :l i b _t - > s yst e m _ u: o bj ect _r :l d _s o _t

La -b presenta el estado actual de los valores boleanos. Puede utilizar esto en combinac in con grep
u otras herramientas para determinar el estado de valores boleanos en particular:

[root @host2a ~]# ses ta t us - b | gre p h tt pd | grep on$


httpd_builtin_scripting
on
ht t pd _ d isa ble _tra ns
on
http d_ena ble_cgi
on
httpd_enable_homedirs
on
ht t p d _ u ni fie d
on

45.2.2. Creacin de Etiquetas N ue vas para Sistemas de Arc hivos


Puede que nunc a nec es ite crear etiquetas nuevas para un sis temas de archivos completo.
Us ualmente esto slamente ocurre cuando crea una etiqueta nueva para un sistema de archivos por
primera vez para SELinux o cuando est cambiando entre diferentes tipos de polticas as como el
cambio de la poltica objetivo a la es tricta.

Cre acin de Etique tas Nue vas para un Sis te ma de Archivos Utilizando init
El mtodo rec omendado para crear una etiqueta nueva para un sistemas de arc hivos es reinc iando la
mquina. Esto permite que el proc es o init realice la creac in de una nueva etiqueta asegurndose
de que las aplic ac iones tienen las etiquetas c orrectas c uando s e inician y de que se inician en el
orden correcto. Si crea una nueva etiqueta para un sistema de archivos si reiniciarlo, puede que
algunos de los proc es os c ontinuen ejec utndos e con un contexto inc orrecto. Puede llegar a ser dificil
as egurars e manualmente de que todos los demonios son reinic iados y ejec utados en el contexto
correcto.
Utilice el siguiente proc edimiento para cambiar la etiqueta de un sistema de archivos utilizando este
mtodo.

touch /.autorelabel
reb o ot

En tiempo de arranque init.rc verifica la existenc ia de /.autorelabel. Si este archivo existe,


SELinux crea etiquetas nuevas para el sistema de archivos completo (utilizando el c omando /sbin/
fixfiles -f -F relabel) y luego borra /.autorelabel.

765

Creac in de Etiquetas Nuevas para Sistemas de Archivos

Cre acn de Etique tas Nuevas para un Sis te ma de Archivos utilizan do fixfiles
Es posible crear una etiqueta nueva para un sistema de archivos utilizando el comando fixfiles o
con base en la base de datos RPM:
Utilice el s iguiente c omando para crear una etiqueta nueva para un sis temas de archivos utilizando
slamente el c omando fixfiles:

fixfiles relabel

Utilice el s iguiente c omando para crear etiquetas nuevas para un sistema de archivos con base en la
base de datos RPM:

fi xfi les - R <pa ck ag enam e > restore

Utilizando fixfiles para restablec er c ontextos de los paquetes es ms seguro y rpido.

Atencin
El ejec utar fixfiles en el sistema de archivos completo sin reiniciar puede hac er
inestable el s is tema.
Si la operac in de creac in de una nueva etiqueta aplica una nueva poltica que es
diferente de la poltica que se enc ontraba c uando el sistema se reinici, los proc es os
existentes pueden es tar ejec utndos e en dominios incorrectos e ins eguros. Por
ejemplo, un proc es o puede estar en un dominio que no es una trans ic in permitida
para ese proceso en la nueva poltica, dados los permis os ines perados en slo ese
proc es o.
Adems una de las opc iones para fixfiles relabel pide aprobac in para
vaciar /tm p/ ya que no es posible crear una etiqueta nueva de manera confiable
para /tm p/. Debido a que fixfiles se ejecuta como root, se borran los archivos
temporales de los cuales dependen las aplic ac iones. Esto puede hac er el s istema
inestable o que s e c omporte de una manera ines perada.

45.2.3. Administracin de Directorios Principales NFS


En Red Hat Enterpris e Linux 5, la mayora de los demonios objetivo no interactan con los datos de
us uarios y no son afectados por los directorios princ ipales montados con NFS. El Servidor Apache
HTTP es una excepc in. Por ejemplo los scripts CGI que se enc uentran montados en el sistema de
archivos tienen el tipo nfs_t, el cual es un tipo que no se le permite ejec utar a httpd_t.
Si tiene problemas con el tipo predeterminado de nfs_t trate de montar los directorios princ ipales
con un contexto diferente:

m o unt -t nfs -o c o nte x t= user _ u: o bjec t _r: user _ h o me _d ir _t \


fileser ver.exa m ple.c o m: /share d/ h o mes/ / h o me

766

Otorgar Acc eso a un Directorio o a un Arbol

Atencin
Seccin 45.2. 9, Especificacin del Contexto de Seguridad del Sistema de Archivos
Entero explains how to mount a directory so that httpd can exec ute scripts. If you
do this for user home directories, it gives the Apac he HTTP Server increas ed access
to thos e directories. Remember that a mountpoint label applies to the entire mounted
file system.
Las vers iones futuras de la poltica de SELinux abordan la func ionalidad de NFS.

45.2.4. Otorgar Acceso a un Directorio o a un Arbol


De manera similay a los permis os es tndares de Linux DAC, un demonio objetivo tiene que tener
permis os SELinux para poder desc ender en el rbol de directorios. Esto no significa que un directorio
y su cotenido nec es itan tener el mismo tipo. Hay muc hos tipos as como root_t, tmp_t y usr_t
que otorgan acc es o de lectura para un directorio. Estos tipos son apopiados para directorios que
no contienen ninguna informacin confidencial y que usted quiere que sean ampliamente lebles.
Tambin s e pueden utilizar para un directorio padre de directorios ms seguros con contextos
diferentes.
Si es t trabajando con un mens aje avc: deni ed hay algunos problemas c omunes que s urgen con
la traversal del directorio. Por ejemplo, muchos programas ejec utan un comando euqivalente a ls l / que no es necesario para su operac in pero que genera un mens aje de rec hazo en los regis tros.
Para estos necesita crear una regla dontaudi t en su archivo local.te.
Al tratar de interpretar mens ajes de rec hazo de AVC no se c onfunda por el componente path=/.
La ruta no est relac ionada con la etiqueta para el s istema de archivos root, /. De hecho es relativo al
root del sistema de archivos en el nodo del dipositivo. Por ejemplo, si su directorio /var/ se enc uentra
1
ubic ado en un dispositivo LVM (Administracin de Volmenes Lgicos ), /dev/ dm -0, el nodo
dispositivo es identificado en el mens aje como dev=dm-0. Cuando vea path=/ en este ejemplo, ese
es el nivel superior del dispositivo LVM dm-0, no nec es ariamente el mismo que la des ignac in del
s istema de archivos root /.

45.2.5. Copias de Seguridad y Restauracin del Sistema


Refer to the explanation in Seccin 45.1. 4, Creacin de Archivos que Retienen Contextos de
Seguridad.

45.2.6. Activacin o Desactivacin del Refuerzo


You can enable and disable SELinux enforcement at runtime or configure it to start in the correct mode
at boot time, using the command line or GUI. SELinux can operate in one of three modes : disabled,
meaning not enabled in the kernel; permissive, meaning SELinux is running and logging but not
controlling permiss ions; or enforcing, meaning SELinux is running and enforcing policy.
Utilice el comando setenforce para cambiar entre los modos permisivo y reforzar durante el tiempo
de ejecuc in. Utilice setenforce 0 para entrar en modo permisivo y utilice setenforce 1 para
entrar en modo de reforzamiento.
LVM es el a gr upa miento fsico en los pools virtuales que se p articion an en volm enes l gico s.

767

Otorgar Acc eso a un Directorio o a un Arbol

El c omando sestatus pres enta el modo actual y el modo del archivo de configurac in referenc iado
durante el arranque:

sestatus | gre p -i mo de
Curre nt m ode:
perm issi ve
Mode from config file: per missi ve

Obs erve que el cambio del refuerzo durante tiempo de ejec uc in no afec ta la configurac in de tiempo
de arranque:

setenf orce 1
sestatus | gre p -i mo de
Cur ren t m o de:
enf orci n g
Mode from config file: per missi ve

Tambin puede desac tivar el modo de refuerzo para un slo demonio. Por ejemplo, si es t tratando
de resolver problemas del demonio named y SELinux entonc es puede apagar el refuerzo para slo
ese demonio.
Utilice el comando getsebool para obtener el estado actual del valor booleano:

[root @h ost2a ~] # getseb ool name d_ disable_trans


named_ disable_ trans --> off

Utilice el s iguiente c omando para des activar el modo de refuerzo para este demonio:

[roo t @h ost 2a ~]# setseb oo l na med _d isable_ trans 1


[root @h ost2a ~] # getseb ool name d_ disable_trans
named_disable_trans --> on

Nota
Esto configura el valor del tiempo de ejecuc in s lamente. Utilice la opcin -P para
hac er pers istentes lo cambios a travs de los reinic ios.
Any *_dis able_trans booleans that are set to "on" invoke the conditional that prevents
the proc ess from transitioning to the domain on execution.

Utilice el s iguiente c omando para ver cuales de es tos valores booleanos estn c onfigurados :

ge ts e b o o l -a | gre p d isa ble. * o n


ht tp d _ disa ble _ tra ns= 1
mysq ld _disable _trans= 1
nt pd _ disa ble _tra ns= 1

Puede configurar cualquier nmero de valores booleanos utilizando el comando setsebool:

768

Activacin o Des activac in del Refuerzo

setsebo ol -P ht tp d _ disa ble_ trans = 1 m ys ql d _d isab le_t ra ns = 1 nt pd _ disa ble_ trans = 1

You can also use togglesebool <boolean_nam e> to change the value of a specific boolean:

[root @host2a ~]# ge tse b o o l ht t p d _ di sa ble _ tra n s


h tt p d _ d isa b le _t ra ns - - > off
[root @host2a ~]# t o g gle se b o ol ht t p d _ di sa ble _ tra n s
httpd_disable_trans: active

Puede configurar todas estas c arac terstic as utilizando sys te m-config-selinux. Se utilizan los
mis mos archivos de configurac in as que los cambios aparec en bidirecc ionalmente.

Cambio de un Valor B oole ano en Tiempo de Ejecucin


Utilice el siguiente proc edimiento para cambiar un valor boolenao en tiempo de ejecuc in utilizando el
GUI.

Nota
Se requieren privilegios de adminis trador para realizar este proc edimiento.

1.

En el men Siste ma vaya a Administracin y luego haga click en Nivel de Seguridad y


Cortafuegos para visualizar el dilogo de Configurac in del Nivel de Seguridad.

2.

Luego haga click en la pestaa SELinux y despus en Configuracin SELinux.

3.

En la lista de selecc in haga click en la entrada Nombre del Servicio y s elecc ione la opc in
Des activar la prote ccin SELinux para un de monio nombrado.

4.

Haga click sobre OK para aplicar el cambio. Obs erve que el rec argar la poltica puede tomar un
poco de tiempo.

769

Activacin o Des activac in del Refuerzo

Figura 45.1. Using the Security Level Configuration dialog box to change a runtime boolean.
Si quiere controlar estas c aracterstic as con scripts puede usar los comandos setenforce(1),
getenforce(1) y selinuxenabled(1).

45.2.7. Activar o Desactivar SELinux


Impo rtante
Los cambios que realice a los archivos mientras que SELinux se encuentra
des ac tivado puede llegar a darles una etiqueta de seguridad ines perada y los arc ivos
nuevos no tendrn una etiqueta. Puede que nec es ite darle una etiqueta nueva a una
parte o para todo el sistema de arc hivos des pes de re-activar SELinux.

Des de la lnea de comandos puede editar el archivo /etc/sysconfig/selinux. Este archivo es un


symlink a /etc/selinu x/config. El archivo de configurac ine s e explca por si mismo. El cambiar

770

Cambio de la Poltic a

el valor de SELINUX o SELINUXTYPE cambia el estado de SELinux y el nombre de la poltica que se


utiliza la proxima vez que el s istema arranc a.

[root @host2a ~]# cat /etc/sysconfig/selinux


# This file contr ols the state of SE L in ux on the sys te m.
# SELINUX= can t a ke o n e of t h ese t h ree v a l ues :
#
enforcing - SE L in ux security policy is enforced.
#
p er m i ss i ve - SE L in ux prints warnings i ns tea d of e nf o rc i n g.
#
disabled - SE L in ux is fully disabled.
SE L I NU X=p er m issiv e
# SELINUXT YPE= ty pe o f p o lic y i n use. P oss i bl e va l ues are:
#
targete d - On ly tar gete d n et wo r k daem o n s are protected.
#
stric t - Full SE L in ux protection.
SE LI NUXT YP E =tar gete d
# SET LOCALDEFS= Ch ec k l oc al d ef i ni ti o n
SET LOCALDEFS=0

c ha n g es

Cambio del Modo de SELinux Utilizando GUI


Utilice el siguiente proc edimiento para cambiar el modo de SELinux utilizando GUI.

Nota
Nec es ita privilegios de adminis trador para realizar este proc edimiento.

1.

En el men Siste ma vaya a Administracin y luego haga click en Nivel de Seguridad y


Cortafuegos para visualizar el dilogo de Configurac in del Nivel de Seguridad.

2.

Haga click en la pestaa SELinux

3.

En Configuracin SELinux puede selec ionar Deshabili tado, Reforzar o Permi sivo y
luego haga click en OK.

4.

Si lo cambi de Habili tado a Deshabili tado o vic evers a nec eita reiniciar las mquina para
que tenga efecto el cambio.

Los cambios realizados utilizando este dilogo se reflejan de inmediato en /etc/sysconfig/


selinux.

45.2.8. Cambio de la Poltica


Esta seccin proporc iona una breve introduccin para utilizar polticas pers onalizadas en su sistema.
Una disc uc in completa s obre este tema se encuentra ms alla del alc anc e de este doc umento.
Para c argar una poltica diferente en su sistema c ambie la s iguiente lnea en /etc/sysconfig/
selinux:

S EL I N U XT YP E = < p o lic y n am e >

771

Cambio de la Poltic a

where <policyname> is the policy name directory under /etc/selinux/. This assumes that you
have the custom policy installed. After changing the SELINUXTYPE parameter, run the following
commands :

touch /.autorelabel
reb o ot

Utilice el siguiente proc edimiento para cargar una poltica diferente utilizando la utilidad systemconfig-se linux:

Nota
Nec es ita privilegios de adminis trador para realizar este proc edimiento.

1.

As egres e de que la es tructura del directorio para la poltica requerida s e enc uentra c ompleta
bajo /etc/selinux .

2.

En el men Siste ma vaya a Administracin y luego haga click en Nivel de Seguridad y


Cortafuegos para visualizar el dilogo de Configurac in del Nivel de Seguridad.

3.

Haga click en la pestaa SELinux

4.

En la lista Tipo de Poltica selecc ione la poltica que desea cargar y luego haga click en OK.
Esta lista slamente es visible si se instala ms de una poltica.

5.

Reinicie la mquina para que los cambios tengan efecto:

772

Espec ificac in del Contexto de Seguridad del Sis tema de Archivos Entero

Figura 45.2. Using the Security Level Configuration dialog box to load a custom policy.

45.2.9. Especificacin del Conte xto de Segurida d del Sistema de


Archivos Entero
Puede utilizar el comando mount -o context = para configurar un contexto individual para un
s istema de archivos completo. Este puede ser un sistema de archivos que ya se enc uentra montado y
que soporta xattrs o un sistema de archivos de red que obtiene una etiqueta genfs tal como cifs_t o
nfs_t.
Por ejemplo, si nec es ita que el Servidor HTTP Apache lea desde un directorio montado o
que se produzc a un loopbac k del s istema de arc hivos nec es itar configurar el tipo como
httpd_sys _conten t_t:

m o unt -t nfs - o co n tex t =s yste m _ u : ob ject _r : htt p d _s ys _c o nte nt _ t \


server 1.e xa m ple.c o m: /s hared /scri p ts / var/ www/c g i

773

Espec ificac in del Contexto de Seguridad del Sis tema de Archivos Entero

Tip
Cuando s oluc iona problemas relac ionados con httpd y SELinux reduc e la
complejidad de su situac in. Por ejemplo, si tiene el s istema de arc hivos montado en
/mnt y enlazado s imblicamente a /var/ www/ html/foo tiene dos contextos de
seguridad de los que se debe preoc upar. Debido a que un contexto de seguridad es
de la clas e de objeto file y el otro de tipo lnk_file, son creados de manera diferente
por l poltic y puede llegar a tener lugar un comportamiento inesperado.

45.2.10. Cambio de la Categoria de Segurida d de un Archivo o


Usuario
45.2.11. Ejecuci n de un Co mando en un Contexto de Seguridad
Especifico
Puede utilizar el comando runcon para ejec utar un comando en un cotexto especfico. Esto estil
para scripts o para probar polticas pero se debe asegurar de que es implementado de manera
correcta.
Por ejemplo, puede utilizar el s iguiente comando para ejec utar un script para probar una posible mala
etiquetac in del contenido. Los argumentos que aparecen despus del comando son cons iderados
como parte del comando (en este ejemplo, ~/bin/contexttest es un script definido por el
usuario).

runcon -t htt pd_t ~/ bi n/contexttest -ARG1 -ARG2

Tambin puede es pec ific ar el contexto completo as :

ru nco n user _ u:s yste m _r: htt p d_ t ~/bin/contexttest

45.2.12. Co ma ndos Utiles para Scripts


La s iguiente es una lista de los comandos tiles introducidos con SELinux y los cuales le pueden ser
tiles al escribir scripts para ayudar a administrar su sistema:
getenforce
Este comando devuelve el estado de refuerzo de SELinux.
setenforce [ Enforcing | Permissive | 1 | 0 ]
Este comando controla el modo de refuerzo de SELinux. La opcin 1 o Refuerzo le dice a
SELinux que entre el modo de refuerzo. La opcin 0 o Permi si vo le dice a SELinux que entre en
modo pasivo. Todava s e registran las violaciones de acceso pero no se previenen.
seli nuxena bl ed
El c omando sale con un estado 0 si se habilita SELinux y 1 si SELinux es deshabilitado.

774

Cambio a un Rol Diferente

selin uxena bled

echo $? 0

getsebool [-a] [boolean_name]


This command shows the status of all booleans (-a) or a specific boolean (<boole an_name >).
setsebool [-P] <boolean_nam e> value | bool 1=val 1 bool 2=val2 ...
Este comando configura uno o ms valores boolenaos. La opcin -P hace que los cambios sean
pers is tentes en los reinicios.
toggl esebool bool ean ...
Este comando alterna la configurac in de uno o ms valores booleanos. Esto afecta la
configurac in de los valores booleanos en la memoria s lamente y los cambios no s on
pers is tentes en los reinicios.

45.2.13. Cambio a un Rol Diferente


Utilice el comando newrole para ejec utar una shell nueva con el tipo y/o rol espec ificado. El cambio
de roles tpic amente slo tiene s entido en la poltica estricta; la poltica objetivo generalmente est
restringida a un slo rol. Cambiar los tipos puede ser til para propos itos de prueba, validacin y
des arrollo.

newrole -r < ro le _ r > -t <type_t> [-- [ARGS]...]

The ARGS are passed directly to the shell spec ified in the user's entry in the /etc/passwd file.

Nota
El c omando newrol e es parte del paquete policycoreutils-newrole, el cual
se necesita si instala la poltica MLS o la estric ta. No es instalada por defecto en Red
Hat Enterprise Linux.

45.2.14. C uando Reiniciar


La razn principal para reiniciar el s is tema des de la perspectiva de SELinux es para dar etiquetas
nuevas al s istema de archivos. en c iertas oc as iones puede que nec es ite reinicar el s istema para
habilitar o deshabilitar SELinux.

45.3. Control Analista de SELinux


Esta seccin describe algunas de las tareas c omunes que un analista de seguridad puede llegar a
nec es itar realizar en un sistema SELinux.

45.3.1. Activacin de la Auditora de Kernel


Como parte de un anlis is de SELinux o de la solucin de problemas pude que usted elija habilitar
una completa auditora a nivel de kernel. Esto puede llegar a ser bas tante verboso debido a que
genera uno o ms mens ajes de aditora adic ionales por cada mens aje de auditora AVC. Para
habilitar este nivel de auditora agregue el parmetro audit=1 a su lnea de arranque de kernel ya
sea en el archivo /etc/grub.conf o en el men GRUB en tiempo de arranque.

775

Cambio a un Rol Diferente

Este es un ejemplo de una entrada de registro de auditora c ompleta cuando s e le niega


acceso a httpd a ~/ publi c_html porque el directorio no tiene un etiqueta de contenido
de web. Note que los sellos de fecha y el nmero serial el el cmpo de la auditora son
idntic os en ambos c as os. Esto hace ms fcil el s eguirle la pista a un evento especfico en
los regis tros de auditora:

Jan 15 08:03:56 hostname kernel:


audit(11 058 050 36.0 75: 239 289 2): \ avc: de nied { getattr
} for
pid= 22 3 9 e xe = / us r/ s bi n / h tt p d \
path =/h o me/auser/p ubl ic_h tml de v =h db2 in o =9 2 11 3 5 \
sco nte xt = user _ u:s yste m _ r: htt p d _t \
tconte xt =syste m_ u: ob ject_r: user_ ho me _t tclass=dir

El s iguiente mens aje de auditora dice ms sobre la fuente incluyendo la c las e de llamada de
s istema involucrada mostrando que el http trat de iniciar el directorio:

Jan 15 08:03:56 hostname kernel:


audit(11 058 050 36.0 75: 239 289 2): \ syscall=195
exit=429 496 728 3 a0=9ef88e0 a1=bfecc0d4 a2=a97ff4 \
a3=bfecc0d4 items=1 pi d=2 23 9 login uid=- 1 uid =48 gi d=4 8
euid=4 8 \ suid =4 8 fsuid= 48 egid =4 8 sgi d=4 8 fsgid= 48

El s iguiente mensaje proporc iona ms informacin sobre el objetivo:

Jan 15 08:03:56 hostname kernel: audit(1 10 580 50 36.07 5:2 392 89 2): \
item=0 name=/home/auser/public_html inode=92 1135 dev=00: 00

El sello de nmero serial s iempre es idntico para un evento revisado en particular. El sello
de fecha pude que sea o no idntico.

Nota
If you are using an audit daemon for troubleshooting, the daemon may
capture audit messages into a location other than /var/log/messages,
such as /var/log/ audit/audit.log.

45.3.2. Volcado y Vista de Registros


La implementac in de Red Hat Enterpris e Linux 5 enruta los mens ajes de auditora AVC a
/var/ log/ m essages. Puede utilizar cualquiera de las utilidades de bs queda es tndar
(por ejemplo, grep) para busc ar lneas que contengan avc o audit.

776

También podría gustarte