SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
SELinux: Haciendo Nuestra 
Seguridad Impenetrable
Fundacion Codigo Libre Dominicano
J u n i o   2 0 0 8 .

Departamento:
División:

­

Investigacion Cientifica
Academica

Documentación realizada por:
Jesus Rafael Sanchez Medrano
Director de Investigacion Cientifica
Índice de contenido
Que es SELinux?..........................................................................................................................1
Entendiendo como funciona SELinux:......................................................................................2
Conceptos basicos de seguridad.................................................................................................4
Atributos de seguridad...........................................................................................................4
Control de escalamiento de privilegios:...............................................................................5
El sistema de archivos virtual /selinux/...............................................................................6
El archivo de configuración /etc/sysconfig/selinux............................................................7
Utilidades para SELinux.............................................................................................................9

Creando nuevas politicas de SELinux, Paso a Paso..............................................................10
¿Como puedo conocer el estado actual de SELinux?......................................................11
¿Que aplicaciones estan siendo denegadas por SELinux en mi sistema?.....................11
¿Como puedo permitir una aplicacion ya denegada por SELinux en el sistema?........11
¿Como permitir el acceso a las aplicaciones que han sido negadas por el sistema?...14
¿Como puedo permitir que un servicio pueda usar cualquier puerto?...........................14
¿Cómo puedo cambiar la localización por defecto de algunos servicios?....................15
Fundacion Codigo Libre Dominicano

Que es SELinux?
Security-Enhanced Linux o SELinux, es una arquitectura de seguridad integrada en el kernel 2.6.x

usando los módulos de seguridad linux (o linux security modules, LSM). Este es un proyecto de la

Agencia de Seguridad Nacional (NSA) de los Estados Unidos y de la comunidad SELinux. La
integración de SELinux en Red Hat Enterprise Linux fue un esfuerzo conjunto entre al NSA y Red Hat.
SELinux proporciona un sistema flexible de control de acceso obligatorio ( mandatory access control,

MAC) incorporado en el kernel. Bajo el Linux estándar se utiliza el control de acceso a discreción

(discretionary access control, DAC), en el que un proceso o aplicación ejectutándose como un usuario
(UID o SUID) tiene los permisos y de ese usuario en los objetos, archivos, sockets y otros procesos. Al

ejecutar un kernel SELinux MAC se protege al sistema de aplicaciones maliciosas o dañadas que pueden

perjudicar o destruir el sistema. SELinux define el acceso y los derechos de transición de cada usuario,
aplicación, proceso y archivo en el sistema. SELinux gobierna la interacción de estos sujetos y objectos
usando una política de seguridad que especifica cuán estricta o indulgente una instalación de GNU/Linux
dada debería de ser.
En su mayor parte, SELinux es casi invisible para la mayoría de los usuarios. Solamente los

administradores de sistemas se deben de preocupar sobre lo estricto que debe ser una política a

implementar en sus entorno de servidores. La política puede ser tan estricta o tan indulgente como se

requiera, y es bastante detallada. Este detalle le dá al kernel SELinux un control total y granular sobre el
sistema completo.
Cuando un sujeto, tal como una aplicación, intenta acceder a un objeto tal como a un archivo, el

servidor de aplicación de políticas verifica un caché de vector de acceso (AVC), donde se registran los
permisos de objeto y del sujeto. Si no se puede tomar una decisión basado en los datos en el AVC, la

petición continua al servidor de seguridad, el cual busca el contexto de securidad de la aplicación y del
archivo en una matriz. Los permisos son entonces otorgados o negados, con un mensaje de avc: denied
detallado en

/var/log/messages.

Los sujetos y objetos reciben su contexto de seguridad a partir de la

política instalada, que también proporciona información para llenar la matriz de seguridad del servidor.
Además de ejecutarse en un modo impositivo u obligatorio, SELinux puede ejecutarse en un modo

permisivo, donde el AVC es verificado y se registran los rechazos, pero SELinux no hace cumplir esta
política.

SELinux: Haciendo Nuestra Seguridad Impenetrable

1
Fundacion Codigo Libre Dominicano

Entendiendo como funciona SELinux:
SELinux funciona como un modulo en el kernel, logrando un mayor nivel de abstraccion para los
usuarios.
SELinux trabaja con lo que son contextos de seguridad, controles de acceso impositivos u obligarios y

control de acceso en base a roles; ofreciendo un control mas granular del acceso a los recursos del
sistema por parte de los objetos (programas y aplicaciones) y los sujetos (roles, usuarios y grupos).

Este no reemplaza el modelo tradicional se seguridad de los sistemas tipo Unix, por el contrario, sirve

de complemento de este en los puntos que la seguridad tradicional no es suficiente, en el cual la
seguridad esta dividida por niveles de usuarios, grupos, derechos de accesos, listas de control de acceso y

atributos extendidos de acceso; en donde un usuario puede ejecutar un conjunto de aplicaciones a las que
tiene derecho y estas son ejecutadas con los niveles de acceso que posee el usuario. Este tipo de
seguridad es llamada DAC (Discretionary Access Control), control de acceso discrecional.

La NSA introdujo un sistema de control tipo MAC (Mandatory Access Control), basado en contextos

donde se indica cuando un objeto o sujeto puede acceder a otro objeto.

En este caso, el administrador debe definir los derechos de cada usuario que acceda a algunas

aplicaciones que que accedan a cualquier objeto del sistema. Para evitar que esta operacion sea tediosa,
se definen controles de acceso por roles (Role-Based Access Control, RBAC).

SELinux: Haciendo Nuestra Seguridad Impenetrable

2
Fundacion Codigo Libre Dominicano

Por ejemplo, el usuario
programa

xx

A

le otorgamos acceso de lectura y escritura para escribir en los archivos del

solamente a traves de este, ahora el usuario

B

solamente necesita acceso de lectura y nada

mas sobre los mismos archivos a traves del mismo programa.

Los metodos de seguridad de SELinux no reemplazan los tradicionales controles de acceso
discrecionales, por el contrario, los complementa para brindar un control completo y granular de la
seguridad. Todo inicialmente es consultado con la capa de control de acceso discrecional (DAC), si esta
niega, no hay necesidad de consultar la capa de control de acceso obligatorio (MAC); en caso contrario
que el DAC permite el acceso, entonces se hace la consulta hacia la capa MAC para terminar de
verificar los controles de acceso.

SELinux: Haciendo Nuestra Seguridad Impenetrable

3
Fundacion Codigo Libre Dominicano

Conceptos basicos de seguridad
Atributos de seguridad
SELinux usa una combinacion de un modelo de identidad, control de acceso en base a roles (RBAC),
enforzamiento de tipos (TE) y categorias de acceso a la informacion. SELinux RBAC autoriza a cada
usuario (de SELinux) para un conjunto de roles. Cada rol es autorizado para un conjunto de tipos.
Esto se logra utilizando cuatro atributos de seguridad:
1. Identidad de usuario: SELinux tiene su propia base de datos de usuarios que esta
asociada a la base de datos normal de usuarios de Linux. Las identidades son usadas en ambos,

sujetos y objetos. Solamente unos cuantos usuarios de SELinux son definidos: (pueden ser
listados por el comando 'semanage

user -l'):

•

user_u – Usuarios normales.

•

system_u – Procesos iniciados (al arranque).

•

root - administrador.

2. Ro le: Los usuarios pueden entrar en diferentes roles. Diferentes roles pueden entrar en
diferentes dominios. Para objetos (archivos), esto es siempre object_r.

3. Tipo / dominio: Es el atributo “principal” en SELinux. Tambien llamado el “atributo
primario”. Es, por lo general, solo unos pocos usuarios / roles, pero centenares de tipos. No existe

diferencia entre “tipos” y “dominios”, pero los "dominios" son usados para cuando hablamos de
procesos y los “tipos” para cuando hablamos de archivos. Cada proceso esta confinado en su
propia caja de arena, con acceso restringido, tambien llamado “Enforzamiento de Tipos”.

4. Categoria / Nivel: Podra establecer la categoria / nivel. Introducido en RHEL 5, Habilita
los controles de seguridad Multi-nivel (MLS) o seguridad Multi-categoria (MCS).
Estos cuatro atributos de seguridad, construyen lo que se denomina un “contexto de seguridad”:
<usuario>: <rol>: <tipo>: <categoria/nivel>

Atributo de seguridad

Convencion de nombre

Ejemp lo

usuario

_u

user_u

rol

_r

object_r

tipo

_t

unconfined_t

categoria/nivel

(ninguna)

s0:c0

SELinux: Haciendo Nuestra Seguridad Impenetrable

4
Fundacion Codigo Libre Dominicano

Cuando tenemos todos los servicios de red y sistema confinados, tenemos un mayor control de
seguridad, porque no comprometemos al sistema, aislando cada servicio como una entidad independiente.

Control de escalamiento de privilegios:
La seguridad esta segmentada en roles principales
●

user_r: El mas minimo privilegio, asignado simplemente a los usuaros; alguien con este rol,

no puede hacer escalamiento de privilegios ni alternar de rol.
●

staff_r: Similar al rol user_r, con la diferencia que con este rol se puede alternar a los

diferentes roles asignados con el perfil del usuario.
●

auditadm_r: Rol encargado de las herramientas de auditoria de manera unica y exclusiva,

los usuarios de este rol solamente desempeñan esta funcion.
●

secadm_r: Rol encargado de manejar las herramientas de seguridad, declarar nuevos roles,

crear nuevas politicas y de ver los log de auditoria, mas no puede modificarlos.
●

sysadm_r: Rol maximo en el sistema, pero no puede usar las herramientas de auditoria ni

modificar estos reportes.

SELinux: Haciendo Nuestra Seguridad Impenetrable

5
Fundacion Codigo Libre Dominicano

El sistema de archivos virtual
El pseudo-sistema de archivos

/selinux/

/selinux/

contiene los comandos que son utilizados más a menudo

por el subsistema del kernel. Este tipo de sistema de archivos es similar al pseudo sistema /proc/.
En la mayoría de los casos, los administradores y usuarios no necesitan manipular este componente,

en comparación con otros archivos y directorios SELinux.

El ejemplo siguiente presenta contenidos de muestra del directorio /selinux/:
-rw-rw-rwdr-xr-xr-x
--w-------rw-rw-rw-rw-rw-rw--w-------rw-r--r--rw-------r--r--r--r--r--r--rw-rw-rw-rw-rw-rw-

1
1
1
1
1
1
1
1
1
1
1
1

root
root
root
root
root
root
root
root
root
root
root
root

root
root
root
root
root
root
root
root
root
root
root
root

Por ejemplo, al ejecutar el comando

0
0
0
0
0
0
0
0
0
0
0
0

Sep
Sep
Sep
Sep
Sep
Sep
Sep
Sep
Sep
Sep
Sep
Sep

cat

22
22
22
22
22
22
22
22
22
22
22
22

13:14
13:14
13:14
13:14
13:14
13:14
13:14
13:14
13:14
13:14
13:14
13:14

access
booleans
commit_pending_bools
context
create
disable
enforce
load
mls
policyvers
relabel
user

en el archivo

/selinux/enforce

revela un 1, para el modo

impositivo u obligatorio, o un 0, para el modo permisivo.

SELinux: Haciendo Nuestra Seguridad Impenetrable

6
Fundacion Codigo Libre Dominicano

El archivo de configuración

/etc/sysconfig/selinux

Hay dos formas de configurar SELinux bajo Red Hat Enterprise Linux y CentOS: usando el
Herramienta de configuración de nivel de seguridad (system-config-securitylevel), o
manualmente editando el archivo de configuración (/etc/sysconfig/selinux).
El archivo

/etc/sysconfig/selinux

es el archivo de configuración principal para habilitar o

inhabilitar SELinux, así como también para configurar cuál política de debe imponer en el sistema y
cómo hacerlo.

**NOTA: El archivo /etc/sysconfig/selinux contiene un enlace simbólico al archivo de
configuración real, /etc/selinux/config.
A continuación se explica el subconjunto completo de opciones disponibles para la configuración:
•

SELINUX=<enforcing|permissive|disabled>

un sistema.

— Define el estado superior para SELinux en

o 'impositivo' — Se impone la política de seguridad SELinux.

•

enforcing

•

permissive

o 'permisivo' — El sistema SELinux advierte pero no impone la política.

Esto es útil para propósitos de depuración o de resolución de problemas. En modo
permisivo, se registrarán más rechazos, pues los sujetos podrán continuar con acciones

que de lo contrario serían rechazadas en el modo impositivo. Por ejemplo, navegar en un
árbol de directorios producirá varios mensajes de

avc:

denied

para cada nivel de

directorio leído, pero un kernel en modo impositivo habría detenido la primera acción de
este tipo, previniendo que se produjeran más mensajes de rechazo.
•

disabled

o 'inhabilitado' — SELinux está completamente desactivado. Los ganchos

de SELinux no están conectados al kernel y el pseudo sistema de archivos no está
registrado.

SELinux: Haciendo Nuestra Seguridad Impenetrable

7
Fundacion Codigo Libre Dominicano

•

SELINUXTYPE=<targeted|strict>:

Especifica

cuál

política

está

siendo

implantada

actualmente por SELinux.
•

targeted

(objetivo, dirigido): Solamente se protegen ciertos demonios particulares.

La imposición de políticas para estos demonios se puede activar y desactivar, utilizando
valores boleanos controlados por Herramienta de configuración de nivel de

seguridad (system-config-securitylevel). Al activar un valor boleano para un

demonio objetivo se desactiva la transición de políticas para ese demonio, lo que
previene, por ejemplo, que

init

pase a

(ilimitado) al dominio especificado en

dhcpd

dhcpd.te.

desde el dominio

El dominio

unconfined_t

unconfined_t

permite a

los sujetos y objetos con ese contexto de seguridad a ejecutarse bajo la seguridad
estándar de Linux.
•

MLS

(Seguridad Multi-nivel): Se definen capas de seguridad para cada objeto, en

donde solo los usuarios que posean los niveles correspondientes o superiores pueden
acceder a las secciones correspondientes; nunca en sentido inverso.
•

MCS

(Seguridad Multi-categoria): Muy similar a la seguridad Multi-nivel, pero con

patrones mas flexibles y faciles de aplicar; debido a que uno segmenta la informacion
como si fuese para ser manejada por departamentos.
•

strict

(estricta): Protección SELinux completa, para todos los demonios. Se definen

los contextos de seguridad para todos los sujetos y objetos y cada simple acción es
procesada por el servidor de aplicación de políticas.

SELinux: Haciendo Nuestra Seguridad Impenetrable

8
Fundacion Codigo Libre Dominicano

Utilidades para SELinux
Los siguientes son algunos de los programas de utilidades usados más a menudo por SELinux
•

/usr/bin/setenforce:

ejecutar

1,

setenforce

Modifica en tiempo real el modo en que se ejecuta SELinux. Al

se coloca SELinux en modo impositivo. Al ejecutar

setenforce

0,

SELinux se coloca en modo permisivo. Para desactivar SELinux, se necesita que configure el
parámetro en

/etc/sysconfig/selinux

/etc/grub.conf

•

o que pase el parámetro

selinux=0

o al momento del arranque.

/usr/bin/sestatus -v:

al kernel, bien sea en

obtiene el estado detallado de un sistema ejecutando SELinux. El

ejemplo siguiente muestra un extracto de la salida sestatus:
SELinux status:
SELinuxfs mount:
Current mode:
Policy version:

•

enabled
/selinux
enforcing
18

/usr/bin/newrole:

Ejecuta un nuevo shell en un nuevo contexto o papel. La política debe

/sbin/restorecon:

Configura el contexto de seguridad de uno o más archivos, marcando los

permitir la transición al nuevo papel.
•

atributos extendidos con el archivo apropiado o contexto de seguridad.
•

/sbin/fixfiles:

de archivos.

Verifica o corrige la base de datos del contexto de seguridad en el sistema

SELinux: Haciendo Nuestra Seguridad Impenetrable

9
Fundacion Codigo Libre Dominicano

Creando nuevas politicas de SELinux, Paso a Paso
Para crear un modulo de politicas de SELinux, se deben tomar en cuenta los siguientes puntos:
●

Para saber si las politicas de seguridad de selinux estan enforzadas se ejecuta el comando

getenforce.

●

para obtener las metricas de efectividad de las politicas de seguridad implementadas se

ejecuta seinfo.
●

Para desactivar el enforzamiento de SELinux en el momento se ejecuta

reactivarlo de nuevo se ejecuta la sentencia
●

Si

se

desea

desactivar

/etc/sysconfig/selinux

●

selinux

setenforce 0

y para

setenforce 1.

de

manera

definitiva,

se

modifica

y se cambia la directiva SELINUX=enforcing por

el

archivo

SELINUX=disabled.

Para saber que aplicaciones se estan denegando por selinux en el sistema, se utiliza la

herramienta grafica incluida

llamada

setroubleshoot,

en caso de no tener soporte de

Xwindow se puede ejecutar en modo consola:

$ sealert -a /var/log/audit/audit.log

●

para permitir una aplicacion que habia sido denegada por selinux, se genera un modulo de

politicas de seguridad con el siguiente ejemplo:
$ ausearch -c "telnetd" -m avc | audit2allow -M telnetd

Esto generara 3 archivos:
○

telnet.te : que es el conjunto de reglas de seguridad que permiten o denegan permisos a

tipos, roles, atributos y dominios de seguridad. Sobre los archivos de esta clase es que
trabajaremos la mayoria del tiempo.
○

telnet.pp : que es el paquete binario que contiene el modulo (o los modulos) a cargar

hacia SELinux, para la ejecucion de las nuevas politicas.
○

telnet.mod : que es el modulo de politicas compiladas, no empaquetadas aun.

Despues de generados todos los archivos, si no hay que hacer ninguna modificacion en las
reglas, se procede a la instalacion con
los recursos que nos fueron negados.

semodule -i telnetd.pp;

El tipo de politicas de enforzamiento que usaremos sera el modo

ya esto nos permitira acceso a

strict

(estricto), el cual nos provee

un conjunto de politicas de protección para todos los daemons (servicios) del sistema.

SELinux: Haciendo Nuestra Seguridad Impenetrable

10
Fundacion Codigo Libre Dominicano

¿Como puedo conocer el estado actual de SELinux?
Para conocer el estado actual de SELinux, debe ejecutar el siguiente comando:
$ getenforce

Un valor Disable le indica que SELinux esta desactivado, Permissive le indica que SELinux esta

desactivado pero registrando cualquier evento que infringe sus políticas sin tomar ninguna acción a
cambio y finalmente un valor de Enforcing le indica que SELinux esta actualmente activo y listo para
actuar ante cualquier evento que infrinja cualquiera de sus políticas.
Incidentalmente también puede usar el comando

mostrada por

getenforce,

seinfo

para ampliar la información de estado

para conocer por ejemplo, cantidad de reglas, atributos, roles, cadenas

booleanas, tipo de política, versión, etc. Tambien podria ser util listar algunas sentencias booleanas con
seinfo -b.

¿Que aplicaciones estan siendo denegadas por SELinux en mi sistema?
Fedora incluye potentes herramientas para auditar SELinux y con ello una completa descripción que
nos ayudarán a solucionar cualquier problema relacionado a aquellos eventos que infringen las politícas
de SELinux, puede utilizar la herramienta gráfica incluida llamada

setroubleshoot,

en caso de no

disponer de soporte XWindow puede también ejecutar en modo consola:
$ sealert -a /var/log/audit/audit.log

¿Como puedo permitir una aplicacion ya denegada por SELinux en el sistema?
Es necesario crear políticas de acceso detalladas para cada aplicación que se desea tenga acceso a

determinado objeto/dominio en su sistema, esta tarea puede ser terriblemente compleja, es por esto que
resulta importante auditar las políticas mediante
de acceso fue denegado con mensajes del tipo:

sealert

o

setroubleshoot,

allí se dará cuenta que tipo

avc: denied { read, write, unlink, etc. },

basado

en esto podemos crear y cargar políticas en tiempo de ejecución que permitan exactamente los tipos de
acceso que SELinux esta prohibiendo y registrando.

SELinux: Haciendo Nuestra Seguridad Impenetrable

11
Fundacion Codigo Libre Dominicano

Vamos a tomar como ejemplo el comando su y supongamos que SELinux esta denegando su

ejecución con mensajes del siguiente tipo:
avc:

denied

{ getattr } for

pid=3414 comm="su" name="shadow" dev=dm-3

Aquí SELinux nos dice que denego el acceso al comando su cuando éste intentó leer los atributos del

el archivo /etc/shadow sobre la partición dm-3, basado en esto crearemos una política que permita

justamente el acceso al progrmana su para que pueda leer los atributos del archivo /etc/shadow
únicamente sobre la partición dm-3 de la siguiente manera:

$ ausearch -c "su" -m avc | audit2allow -M su ; semodule -i su.pp

Analizando la linea anterior podemos ver que inicialmente el comando ausearch busca eventos que

corresponden al comando su, luego en base a esto audit2allow genera un módulo de políticas en binario
llamado su.pp y finalmente semodule carga esté archivo de políticas en SELinux.

El ejemplo siguiente nos muestra cual es el codigo de politicas generado, del cual explicaremos como
funciona y como deben realizarse las politicas para un programa determinado.
module su 1.0;
require {
class dir search;
class file { execute getattr };
type bin_t;
type default_t;
type selinux_config_t;
type staff_su_t;
role staff_r;
};
allow staff_su_t bin_t:file execute;
allow staff_su_t default_t:dir search;
allow staff_su_t selinux_config_t:file getattr;

SELinux: Haciendo Nuestra Seguridad Impenetrable

12
Fundacion Codigo Libre Dominicano

En un analisis rapido de este codigo, podemos apreciar lo siguiente:
●

Se debe declarar el nombre del modulo en la primera linea, y con esta se debe declarar cual

es el numero de version de la politica:
●

module su 1.0;

Se define cuales son las clases, macros, tipos, atributos, conjunto de subclases, y roles a

permitir en la politica
○

Para definir los requerimientos es usa require

○

Dentro de require:
■

{ ... };

se definen las clases de acceso de seguridad a usar con class y son:
●

dir: para acceso de los directorios

●

file: para acceso de los archivos

●

process: para acceso de los procesos

■

se definen los tipos a usar con type

■

se definen los roles a usar con role

■

se definen los atributos de tipos a usar con attribute

○

Luego se comienza a permitir la transición de tipos y dominios con allow

○

Se debe tomar en cuenta que todo lo que no ha sido declarado como admitido, esta

denegado por defecto; ya que, por su estructura de diseño, SELinux viene cerrado y

enforzado por defecto; y es nuestro deber moldear las politicas que mejor ajusten con nuestro
entorno operacional.

SELinux: Haciendo Nuestra Seguridad Impenetrable

13
Fundacion Codigo Libre Dominicano

¿Como permitir el acceso a las aplicaciones que han sido negadas por el
sistema?
Es una buena practica conocer que acceso vamos a otorgar, evaluando y auditando los registros
denied

avc:

del archivo de registro de SELinux, para que finalmente crear las reglas en 2 simples pasos y

terminar generando el nuevo modulo binario de politicas a aplicar:

$ audit2allow -M reglaslocales -l -i /var/log/audit/audit.log

Luego se carga la información de las nuevas politicas en SELinux:
$ semodule -i reglaslocales.pp

Alternativamente, si desea conocer las reglas que exactamente fueron creadas, puede crear el archivo
.te,

el cual contiene las reglas de ejecucion de cada tipo de dominio en SELinux basados en audit.log :
$ checkmodule -M -m -o reglaslocales reglaslocales.te

¿Como puedo permitir que un servicio pueda usar cualquier puerto?
Regularmente SELinux solo permite que determinadas aplicaciones utilicen solo aquellos puertos

para los cuáles han sido configurados por defecto, por ejemplo, SSH regularmente escucha por el puerto
22 y de estar SELinux con la política de referencia

strict

resultaría casi imposible intentar cambiarlo a

otro puerto, como por ejemplo al puerto 10022, para lograrlo necesitamos desplegar un conjunto de reglas
confinadas en el dominio de SELinux llamado "sshd_port" para ssh de la siguiente manera:
$ semanage port -a -t sshd_port_t -p tcp 10022

Otro ejemplo util es cambiar el puerto 80 por defecto por donde escucha el servidor web Apache:
$ semanage port -a -t http_port_t -p tcp 81

Sin embargo, en algunas aplicaciones es común el cambio del puerto de servicio, tal es el caso de

Squid ,

regularmente squid escucha por el puerto 3128 pero algunos administradores prefieren usar el

8080 e incluso el 80, SELinux tiene una cadena booleana específica para squid llamada
squid_connect_any

la cuál permite cambiar el puerto de servicio con bastante flexibilidad:

$ setsebool -P squid_connect_any 1

SELinux: Haciendo Nuestra Seguridad Impenetrable

14
Fundacion Codigo Libre Dominicano

¿Cómo puedo cambiar la localización por defecto de algunos servicios?
Casos comunes, supongamos que queremos cambiar la localización de nuestro servidor web, muchos
administradores o webmasters cambian premeditadamente la ruta que trae Apache por defecto, por
ejemplo un proveedor de hosting acostumbra a utilizar el directorio

/home/web/

para alojar las páginas

webs de todo un universo de dominios, así pues el creera oportuno aplicar las políticas predefinidas para

el servicio Apache, esto lo podemos lograr agregando el tipo de contexto a los archivos y directorios de
la siguiente forma:
# semanage fcontext -a -t httpd_sys_content_t "/home/web(/.*)?"

Otro servicio es la base de datos MySQL, al cambiar la localización de los archivos de bases de datos

que comúnmente se encuentran en

/var/lib/mysql/

a por ejemplo

/db/mysql/

debemos etiquetar sus

archivos con:
$ semanage fcontext -a -t mysqld_db_t "/db/mysql(/.*)?"

Y así con todos los demás servicios de la misma forma, si no sabes cuál es el contexto de los archivos

en SELinux para tu servicio, puedes simplemente buscarlo:

$ semanage fcontext -l | grep dhcpd
/var/lib/dhcp(3)?/dhcpd.leases.* regular file
/var/lib/dhcpd(/.*)?
all files
/usr/sbin/dhcpd.*
regular file
/etc/dhcpd.conf
regular file
/var/run/dhcpd.pid
regular file

system_u:object_r:dhcpd_state_t:s0
system_u:object_r:dhcpd_state_t:s0
system_u:object_r:dhcpd_exec_t:s0
system_u:object_r:dhcp_etc_t:s0
system_u:object_r:dhcpd_var_run_t:s0

Entonces podemos deducir que, si deseo cambiar los datos almacenados en /var/lib/dhcpd para otro
directorio llamado /data/dhcpd debo aplicarles el contexto de archivos dhcpd_state_t.
$ semanage fcontext -a -t dhcpd_state_t "/data/dhcpd(/.*)?"

SELinux: Haciendo Nuestra Seguridad Impenetrable

15

Más contenido relacionado

La actualidad más candente

Sistemas operativos de red
Sistemas operativos de redSistemas operativos de red
Sistemas operativos de redAndrea
 
Sistemas operativos para redes
Sistemas operativos para redesSistemas operativos para redes
Sistemas operativos para redesCézar Leyton ↯
 
Sistemas Operativos De Red
Sistemas Operativos De RedSistemas Operativos De Red
Sistemas Operativos De Redjuanuptc
 
Sistemas operativos de red
Sistemas operativos de redSistemas operativos de red
Sistemas operativos de redsackeos
 
Sistemas Operativos en Red
Sistemas Operativos en RedSistemas Operativos en Red
Sistemas Operativos en RedCAMILO-DANIEL
 
Tema 2. integración de sistemas
Tema 2. integración de sistemasTema 2. integración de sistemas
Tema 2. integración de sistemasmvercolas
 
Wireshark a.1
Wireshark a.1Wireshark a.1
Wireshark a.1Tensor
 
Sistemas
SistemasSistemas
Sistemasmartin
 
UNIDAD VI
UNIDAD VIUNIDAD VI
UNIDAD VImartin
 
Sistemas operativos de red prueba
Sistemas operativos de red pruebaSistemas operativos de red prueba
Sistemas operativos de red pruebaAnthony Torres
 
Sistemas Operativos de Red
Sistemas Operativos de RedSistemas Operativos de Red
Sistemas Operativos de Redjlcerda
 
1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)JavierMponfellis
 
Instalación y configuración de los equipos de la red
Instalación y configuración de los equipos de la redInstalación y configuración de los equipos de la red
Instalación y configuración de los equipos de la redaamancera
 

La actualidad más candente (20)

Sistemas operativos de red
Sistemas operativos de redSistemas operativos de red
Sistemas operativos de red
 
Sistemas operativos para redes
Sistemas operativos para redesSistemas operativos para redes
Sistemas operativos para redes
 
Internet para todos
Internet para todosInternet para todos
Internet para todos
 
Sistemas Operativos De Red
Sistemas Operativos De RedSistemas Operativos De Red
Sistemas Operativos De Red
 
Sistemas operativos de red
Sistemas operativos de redSistemas operativos de red
Sistemas operativos de red
 
Sistemas Operativos en Red
Sistemas Operativos en RedSistemas Operativos en Red
Sistemas Operativos en Red
 
Tema 2. integración de sistemas
Tema 2. integración de sistemasTema 2. integración de sistemas
Tema 2. integración de sistemas
 
Wireshark a.1
Wireshark a.1Wireshark a.1
Wireshark a.1
 
Sistemas
SistemasSistemas
Sistemas
 
UNIDAD VI
UNIDAD VIUNIDAD VI
UNIDAD VI
 
Sistemas operativos de red prueba
Sistemas operativos de red pruebaSistemas operativos de red prueba
Sistemas operativos de red prueba
 
Zenoss Manual
Zenoss ManualZenoss Manual
Zenoss Manual
 
Sistema operativo de red
Sistema operativo de redSistema operativo de red
Sistema operativo de red
 
Sistemas Operativos de Red
Sistemas Operativos de RedSistemas Operativos de Red
Sistemas Operativos de Red
 
1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)
 
Presentación1
Presentación1Presentación1
Presentación1
 
Linux
LinuxLinux
Linux
 
Investigacion wireshark
Investigacion wiresharkInvestigacion wireshark
Investigacion wireshark
 
Instalación y configuración de los equipos de la red
Instalación y configuración de los equipos de la redInstalación y configuración de los equipos de la red
Instalación y configuración de los equipos de la red
 
Presentación1
Presentación1Presentación1
Presentación1
 

Destacado

Configuracion servidores linux-20131029-octubre
Configuracion servidores linux-20131029-octubreConfiguracion servidores linux-20131029-octubre
Configuracion servidores linux-20131029-octubrecyberleon95
 
Manual de referencia
Manual de referenciaManual de referencia
Manual de referenciacyberleon95
 
Repositorio grafico
Repositorio graficoRepositorio grafico
Repositorio graficocyberleon95
 
Manual WDS - Windows Server 2008 R2
Manual WDS - Windows Server 2008 R2Manual WDS - Windows Server 2008 R2
Manual WDS - Windows Server 2008 R2cyberleon95
 
Centos 6.5 Servidor Básico
Centos 6.5 Servidor BásicoCentos 6.5 Servidor Básico
Centos 6.5 Servidor Básicocyberleon95
 
Instalación y Configuración SSH CentOS 6.5 / RHEL 6.2
Instalación y Configuración SSH CentOS 6.5 / RHEL 6.2Instalación y Configuración SSH CentOS 6.5 / RHEL 6.2
Instalación y Configuración SSH CentOS 6.5 / RHEL 6.2cyberleon95
 
Teoría Plataformas de Monitoreo
Teoría  Plataformas de Monitoreo  Teoría  Plataformas de Monitoreo
Teoría Plataformas de Monitoreo cyberleon95
 
Manual PXE - RHEL 6.2
Manual PXE - RHEL 6.2Manual PXE - RHEL 6.2
Manual PXE - RHEL 6.2cyberleon95
 
Integración GNS3 - VirtualBox - Wireshark
Integración GNS3 - VirtualBox - WiresharkIntegración GNS3 - VirtualBox - Wireshark
Integración GNS3 - VirtualBox - Wiresharkcyberleon95
 
Actividad Topologías VoIP
Actividad Topologías VoIPActividad Topologías VoIP
Actividad Topologías VoIPcyberleon95
 
Autodiagnostico 5 Trimestre
Autodiagnostico 5 TrimestreAutodiagnostico 5 Trimestre
Autodiagnostico 5 Trimestrecyberleon95
 
Integración LDAP + SAMBA
Integración LDAP + SAMBAIntegración LDAP + SAMBA
Integración LDAP + SAMBAcyberleon95
 
Manual WSUS - Windows Server 2008 R2
Manual WSUS - Windows Server 2008 R2Manual WSUS - Windows Server 2008 R2
Manual WSUS - Windows Server 2008 R2cyberleon95
 
Manual Monitoreo de Servidores
Manual  Monitoreo de ServidoresManual  Monitoreo de Servidores
Manual Monitoreo de Servidorescyberleon95
 
Sendero del Hacker
Sendero del HackerSendero del Hacker
Sendero del Hackercyberleon95
 
Herramientas Administrativas de Red
Herramientas Administrativas de RedHerramientas Administrativas de Red
Herramientas Administrativas de Redcyberleon95
 
Servidor dns rhel 6.2
Servidor dns rhel 6.2Servidor dns rhel 6.2
Servidor dns rhel 6.2cyberleon95
 

Destacado (20)

Configuracion servidores linux-20131029-octubre
Configuracion servidores linux-20131029-octubreConfiguracion servidores linux-20131029-octubre
Configuracion servidores linux-20131029-octubre
 
Manual linux
Manual linuxManual linux
Manual linux
 
Manual de referencia
Manual de referenciaManual de referencia
Manual de referencia
 
Softlibre
SoftlibreSoftlibre
Softlibre
 
Firewall
FirewallFirewall
Firewall
 
Repositorio grafico
Repositorio graficoRepositorio grafico
Repositorio grafico
 
Manual WDS - Windows Server 2008 R2
Manual WDS - Windows Server 2008 R2Manual WDS - Windows Server 2008 R2
Manual WDS - Windows Server 2008 R2
 
Centos 6.5 Servidor Básico
Centos 6.5 Servidor BásicoCentos 6.5 Servidor Básico
Centos 6.5 Servidor Básico
 
Instalación y Configuración SSH CentOS 6.5 / RHEL 6.2
Instalación y Configuración SSH CentOS 6.5 / RHEL 6.2Instalación y Configuración SSH CentOS 6.5 / RHEL 6.2
Instalación y Configuración SSH CentOS 6.5 / RHEL 6.2
 
Teoría Plataformas de Monitoreo
Teoría  Plataformas de Monitoreo  Teoría  Plataformas de Monitoreo
Teoría Plataformas de Monitoreo
 
Manual PXE - RHEL 6.2
Manual PXE - RHEL 6.2Manual PXE - RHEL 6.2
Manual PXE - RHEL 6.2
 
Integración GNS3 - VirtualBox - Wireshark
Integración GNS3 - VirtualBox - WiresharkIntegración GNS3 - VirtualBox - Wireshark
Integración GNS3 - VirtualBox - Wireshark
 
Actividad Topologías VoIP
Actividad Topologías VoIPActividad Topologías VoIP
Actividad Topologías VoIP
 
Autodiagnostico 5 Trimestre
Autodiagnostico 5 TrimestreAutodiagnostico 5 Trimestre
Autodiagnostico 5 Trimestre
 
Integración LDAP + SAMBA
Integración LDAP + SAMBAIntegración LDAP + SAMBA
Integración LDAP + SAMBA
 
Manual WSUS - Windows Server 2008 R2
Manual WSUS - Windows Server 2008 R2Manual WSUS - Windows Server 2008 R2
Manual WSUS - Windows Server 2008 R2
 
Manual Monitoreo de Servidores
Manual  Monitoreo de ServidoresManual  Monitoreo de Servidores
Manual Monitoreo de Servidores
 
Sendero del Hacker
Sendero del HackerSendero del Hacker
Sendero del Hacker
 
Herramientas Administrativas de Red
Herramientas Administrativas de RedHerramientas Administrativas de Red
Herramientas Administrativas de Red
 
Servidor dns rhel 6.2
Servidor dns rhel 6.2Servidor dns rhel 6.2
Servidor dns rhel 6.2
 

Similar a Se linux

44 seguridad y se linux
44  seguridad y se linux44  seguridad y se linux
44 seguridad y se linuxAprende Viendo
 
Seguridad y protección en los s.o
Seguridad y protección en los s.oSeguridad y protección en los s.o
Seguridad y protección en los s.oJESÚS GUERRA
 
Linux seguridad proteccion
Linux seguridad proteccionLinux seguridad proteccion
Linux seguridad proteccionKrlitos Xavier
 
Proteccionyseguridadgrupo7
Proteccionyseguridadgrupo7Proteccionyseguridadgrupo7
Proteccionyseguridadgrupo7Santiago
 
Seguridad y proteccion
Seguridad y proteccionSeguridad y proteccion
Seguridad y proteccionvagusska
 
Seguridad Informática en Sistemas Operativos.
 Seguridad Informática en Sistemas Operativos. Seguridad Informática en Sistemas Operativos.
Seguridad Informática en Sistemas Operativos.Noel Cruz
 
Proteccion y seguridad de sistemas operativos
Proteccion y seguridad de sistemas operativosProteccion y seguridad de sistemas operativos
Proteccion y seguridad de sistemas operativosEnrike Mendoza
 
trabajo de sistemas operativos-seguridad y proteccion.pptx
trabajo de sistemas operativos-seguridad y proteccion.pptxtrabajo de sistemas operativos-seguridad y proteccion.pptx
trabajo de sistemas operativos-seguridad y proteccion.pptxManuelcardozo9
 
Seguridad y proteccion en Sistemas Operativos
Seguridad y proteccion en Sistemas OperativosSeguridad y proteccion en Sistemas Operativos
Seguridad y proteccion en Sistemas OperativosDanianny Verónica Senju
 
Protección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosProtección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosRichard J. Nuñez
 
Seguridad cap 2
Seguridad cap 2Seguridad cap 2
Seguridad cap 2itzelk
 
Seguridad y proteccion
Seguridad y proteccionSeguridad y proteccion
Seguridad y proteccionarthurLeav
 
Seguridad y proteccion
Seguridad y proteccionSeguridad y proteccion
Seguridad y proteccionarthurLeav
 
Curso: Control de acceso y seguridad: 08 Controles de la ISO/IEC 27002 relaci...
Curso: Control de acceso y seguridad: 08 Controles de la ISO/IEC 27002 relaci...Curso: Control de acceso y seguridad: 08 Controles de la ISO/IEC 27002 relaci...
Curso: Control de acceso y seguridad: 08 Controles de la ISO/IEC 27002 relaci...Jack Daniel Cáceres Meza
 
Seguridad en sitios web
Seguridad en sitios webSeguridad en sitios web
Seguridad en sitios webUTPL
 

Similar a Se linux (20)

44 seguridad y se linux
44  seguridad y se linux44  seguridad y se linux
44 seguridad y se linux
 
Seguridad y protección en los s.o
Seguridad y protección en los s.oSeguridad y protección en los s.o
Seguridad y protección en los s.o
 
Linux seguridad proteccion
Linux seguridad proteccionLinux seguridad proteccion
Linux seguridad proteccion
 
Proteccionyseguridadgrupo7
Proteccionyseguridadgrupo7Proteccionyseguridadgrupo7
Proteccionyseguridadgrupo7
 
Seguridad y proteccion
Seguridad y proteccionSeguridad y proteccion
Seguridad y proteccion
 
Seguridad Informática en Sistemas Operativos.
 Seguridad Informática en Sistemas Operativos. Seguridad Informática en Sistemas Operativos.
Seguridad Informática en Sistemas Operativos.
 
Proteccion y seguridad de sistemas operativos
Proteccion y seguridad de sistemas operativosProteccion y seguridad de sistemas operativos
Proteccion y seguridad de sistemas operativos
 
Protección y seguridad
Protección y seguridadProtección y seguridad
Protección y seguridad
 
trabajo de sistemas operativos-seguridad y proteccion.pptx
trabajo de sistemas operativos-seguridad y proteccion.pptxtrabajo de sistemas operativos-seguridad y proteccion.pptx
trabajo de sistemas operativos-seguridad y proteccion.pptx
 
Seguridad y proteccion en Sistemas Operativos
Seguridad y proteccion en Sistemas OperativosSeguridad y proteccion en Sistemas Operativos
Seguridad y proteccion en Sistemas Operativos
 
Protección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosProtección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas Operativos
 
Seguridad cap 2
Seguridad cap 2Seguridad cap 2
Seguridad cap 2
 
Taller 3
Taller 3Taller 3
Taller 3
 
Elementary 2
Elementary 2Elementary 2
Elementary 2
 
Seguridad informatica
Seguridad informaticaSeguridad informatica
Seguridad informatica
 
Seguridad y proteccion
Seguridad y proteccionSeguridad y proteccion
Seguridad y proteccion
 
Seguridad y proteccion
Seguridad y proteccionSeguridad y proteccion
Seguridad y proteccion
 
Curso: Control de acceso y seguridad: 08 Controles de la ISO/IEC 27002 relaci...
Curso: Control de acceso y seguridad: 08 Controles de la ISO/IEC 27002 relaci...Curso: Control de acceso y seguridad: 08 Controles de la ISO/IEC 27002 relaci...
Curso: Control de acceso y seguridad: 08 Controles de la ISO/IEC 27002 relaci...
 
Las funciones de los sistemas operativos
Las funciones de los sistemas operativosLas funciones de los sistemas operativos
Las funciones de los sistemas operativos
 
Seguridad en sitios web
Seguridad en sitios webSeguridad en sitios web
Seguridad en sitios web
 

Más de cyberleon95

Configuración VPN Sitio a Sitio en ENDIAN
Configuración VPN Sitio a Sitio en ENDIANConfiguración VPN Sitio a Sitio en ENDIAN
Configuración VPN Sitio a Sitio en ENDIANcyberleon95
 
Configuración VPN de Acceso remoto con TMG
Configuración VPN de Acceso remoto con TMGConfiguración VPN de Acceso remoto con TMG
Configuración VPN de Acceso remoto con TMGcyberleon95
 
Instalación y Configuración Firewall ENDIAN
Instalación y Configuración Firewall ENDIANInstalación y Configuración Firewall ENDIAN
Instalación y Configuración Firewall ENDIANcyberleon95
 
Manual Instalación y Configuración Firewall TMG
Manual Instalación y Configuración Firewall TMGManual Instalación y Configuración Firewall TMG
Manual Instalación y Configuración Firewall TMGcyberleon95
 
Documentación ACL - Firewall ASA
Documentación ACL - Firewall ASADocumentación ACL - Firewall ASA
Documentación ACL - Firewall ASAcyberleon95
 
Plan de continuidad
Plan de continuidadPlan de continuidad
Plan de continuidadcyberleon95
 
Análisis de riesgos y vulnerabilidades
Análisis de riesgos y vulnerabilidades Análisis de riesgos y vulnerabilidades
Análisis de riesgos y vulnerabilidades cyberleon95
 
Configuración DHCP - NAT
Configuración DHCP - NATConfiguración DHCP - NAT
Configuración DHCP - NATcyberleon95
 
Trabajo IOS de CISCO
Trabajo IOS de CISCOTrabajo IOS de CISCO
Trabajo IOS de CISCOcyberleon95
 
Correo Red Hat Enterprise Linux 6.2
Correo Red Hat Enterprise Linux 6.2Correo Red Hat Enterprise Linux 6.2
Correo Red Hat Enterprise Linux 6.2cyberleon95
 
OPENLDAP Red Hat Enterprise Linux 6.2
OPENLDAP Red Hat Enterprise Linux 6.2OPENLDAP Red Hat Enterprise Linux 6.2
OPENLDAP Red Hat Enterprise Linux 6.2cyberleon95
 
Gestión del Talento Humano
Gestión del Talento HumanoGestión del Talento Humano
Gestión del Talento Humanocyberleon95
 
Contratación de Tecnología para Call Center
Contratación de Tecnología para Call CenterContratación de Tecnología para Call Center
Contratación de Tecnología para Call Centercyberleon95
 
Instalación y Configuración de Exchange 2013 en Windows Server 2012 R2
Instalación y Configuración de Exchange 2013 en Windows Server 2012 R2Instalación y Configuración de Exchange 2013 en Windows Server 2012 R2
Instalación y Configuración de Exchange 2013 en Windows Server 2012 R2cyberleon95
 
Instalación y Configuración Active Directory en Windows Server 2012 R2
Instalación y Configuración Active Directory en Windows Server 2012 R2Instalación y Configuración Active Directory en Windows Server 2012 R2
Instalación y Configuración Active Directory en Windows Server 2012 R2cyberleon95
 

Más de cyberleon95 (17)

Configuración VPN Sitio a Sitio en ENDIAN
Configuración VPN Sitio a Sitio en ENDIANConfiguración VPN Sitio a Sitio en ENDIAN
Configuración VPN Sitio a Sitio en ENDIAN
 
Configuración VPN de Acceso remoto con TMG
Configuración VPN de Acceso remoto con TMGConfiguración VPN de Acceso remoto con TMG
Configuración VPN de Acceso remoto con TMG
 
Instalación y Configuración Firewall ENDIAN
Instalación y Configuración Firewall ENDIANInstalación y Configuración Firewall ENDIAN
Instalación y Configuración Firewall ENDIAN
 
Manual Instalación y Configuración Firewall TMG
Manual Instalación y Configuración Firewall TMGManual Instalación y Configuración Firewall TMG
Manual Instalación y Configuración Firewall TMG
 
Documentación ACL - Firewall ASA
Documentación ACL - Firewall ASADocumentación ACL - Firewall ASA
Documentación ACL - Firewall ASA
 
Plan de continuidad
Plan de continuidadPlan de continuidad
Plan de continuidad
 
Análisis de riesgos y vulnerabilidades
Análisis de riesgos y vulnerabilidades Análisis de riesgos y vulnerabilidades
Análisis de riesgos y vulnerabilidades
 
Conceptos VoIP
Conceptos VoIPConceptos VoIP
Conceptos VoIP
 
Configuración DHCP - NAT
Configuración DHCP - NATConfiguración DHCP - NAT
Configuración DHCP - NAT
 
Trabajo IOS de CISCO
Trabajo IOS de CISCOTrabajo IOS de CISCO
Trabajo IOS de CISCO
 
Correo Red Hat Enterprise Linux 6.2
Correo Red Hat Enterprise Linux 6.2Correo Red Hat Enterprise Linux 6.2
Correo Red Hat Enterprise Linux 6.2
 
OPENLDAP Red Hat Enterprise Linux 6.2
OPENLDAP Red Hat Enterprise Linux 6.2OPENLDAP Red Hat Enterprise Linux 6.2
OPENLDAP Red Hat Enterprise Linux 6.2
 
Gestión del Talento Humano
Gestión del Talento HumanoGestión del Talento Humano
Gestión del Talento Humano
 
Contratación de Tecnología para Call Center
Contratación de Tecnología para Call CenterContratación de Tecnología para Call Center
Contratación de Tecnología para Call Center
 
Actividad ITIL
Actividad ITIL Actividad ITIL
Actividad ITIL
 
Instalación y Configuración de Exchange 2013 en Windows Server 2012 R2
Instalación y Configuración de Exchange 2013 en Windows Server 2012 R2Instalación y Configuración de Exchange 2013 en Windows Server 2012 R2
Instalación y Configuración de Exchange 2013 en Windows Server 2012 R2
 
Instalación y Configuración Active Directory en Windows Server 2012 R2
Instalación y Configuración Active Directory en Windows Server 2012 R2Instalación y Configuración Active Directory en Windows Server 2012 R2
Instalación y Configuración Active Directory en Windows Server 2012 R2
 

Último

COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIA
COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIACOMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIA
COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIAWilian24
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...JAVIER SOLIS NOYOLA
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxcandy torres
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
Planeacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docxPlaneacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docxSarisdelosSantos1
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuelabeltranponce75
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
UNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto gradoUNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto gradoWilian24
 

Último (20)

COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIA
COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIACOMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIA
COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIA
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Planeacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docxPlaneacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
UNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto gradoUNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto grado
 

Se linux

  • 1. SELinux: Haciendo Nuestra  Seguridad Impenetrable Fundacion Codigo Libre Dominicano J u n i o   2 0 0 8 . Departamento: División: ­ Investigacion Cientifica Academica Documentación realizada por: Jesus Rafael Sanchez Medrano Director de Investigacion Cientifica
  • 2. Índice de contenido Que es SELinux?..........................................................................................................................1 Entendiendo como funciona SELinux:......................................................................................2 Conceptos basicos de seguridad.................................................................................................4 Atributos de seguridad...........................................................................................................4 Control de escalamiento de privilegios:...............................................................................5 El sistema de archivos virtual /selinux/...............................................................................6 El archivo de configuración /etc/sysconfig/selinux............................................................7 Utilidades para SELinux.............................................................................................................9 Creando nuevas politicas de SELinux, Paso a Paso..............................................................10 ¿Como puedo conocer el estado actual de SELinux?......................................................11 ¿Que aplicaciones estan siendo denegadas por SELinux en mi sistema?.....................11 ¿Como puedo permitir una aplicacion ya denegada por SELinux en el sistema?........11 ¿Como permitir el acceso a las aplicaciones que han sido negadas por el sistema?...14 ¿Como puedo permitir que un servicio pueda usar cualquier puerto?...........................14 ¿Cómo puedo cambiar la localización por defecto de algunos servicios?....................15
  • 3. Fundacion Codigo Libre Dominicano Que es SELinux? Security-Enhanced Linux o SELinux, es una arquitectura de seguridad integrada en el kernel 2.6.x usando los módulos de seguridad linux (o linux security modules, LSM). Este es un proyecto de la Agencia de Seguridad Nacional (NSA) de los Estados Unidos y de la comunidad SELinux. La integración de SELinux en Red Hat Enterprise Linux fue un esfuerzo conjunto entre al NSA y Red Hat. SELinux proporciona un sistema flexible de control de acceso obligatorio ( mandatory access control, MAC) incorporado en el kernel. Bajo el Linux estándar se utiliza el control de acceso a discreción (discretionary access control, DAC), en el que un proceso o aplicación ejectutándose como un usuario (UID o SUID) tiene los permisos y de ese usuario en los objetos, archivos, sockets y otros procesos. Al ejecutar un kernel SELinux MAC se protege al sistema de aplicaciones maliciosas o dañadas que pueden perjudicar o destruir el sistema. SELinux define el acceso y los derechos de transición de cada usuario, aplicación, proceso y archivo en el sistema. SELinux gobierna la interacción de estos sujetos y objectos usando una política de seguridad que especifica cuán estricta o indulgente una instalación de GNU/Linux dada debería de ser. En su mayor parte, SELinux es casi invisible para la mayoría de los usuarios. Solamente los administradores de sistemas se deben de preocupar sobre lo estricto que debe ser una política a implementar en sus entorno de servidores. La política puede ser tan estricta o tan indulgente como se requiera, y es bastante detallada. Este detalle le dá al kernel SELinux un control total y granular sobre el sistema completo. Cuando un sujeto, tal como una aplicación, intenta acceder a un objeto tal como a un archivo, el servidor de aplicación de políticas verifica un caché de vector de acceso (AVC), donde se registran los permisos de objeto y del sujeto. Si no se puede tomar una decisión basado en los datos en el AVC, la petición continua al servidor de seguridad, el cual busca el contexto de securidad de la aplicación y del archivo en una matriz. Los permisos son entonces otorgados o negados, con un mensaje de avc: denied detallado en /var/log/messages. Los sujetos y objetos reciben su contexto de seguridad a partir de la política instalada, que también proporciona información para llenar la matriz de seguridad del servidor. Además de ejecutarse en un modo impositivo u obligatorio, SELinux puede ejecutarse en un modo permisivo, donde el AVC es verificado y se registran los rechazos, pero SELinux no hace cumplir esta política. SELinux: Haciendo Nuestra Seguridad Impenetrable 1
  • 4. Fundacion Codigo Libre Dominicano Entendiendo como funciona SELinux: SELinux funciona como un modulo en el kernel, logrando un mayor nivel de abstraccion para los usuarios. SELinux trabaja con lo que son contextos de seguridad, controles de acceso impositivos u obligarios y control de acceso en base a roles; ofreciendo un control mas granular del acceso a los recursos del sistema por parte de los objetos (programas y aplicaciones) y los sujetos (roles, usuarios y grupos). Este no reemplaza el modelo tradicional se seguridad de los sistemas tipo Unix, por el contrario, sirve de complemento de este en los puntos que la seguridad tradicional no es suficiente, en el cual la seguridad esta dividida por niveles de usuarios, grupos, derechos de accesos, listas de control de acceso y atributos extendidos de acceso; en donde un usuario puede ejecutar un conjunto de aplicaciones a las que tiene derecho y estas son ejecutadas con los niveles de acceso que posee el usuario. Este tipo de seguridad es llamada DAC (Discretionary Access Control), control de acceso discrecional. La NSA introdujo un sistema de control tipo MAC (Mandatory Access Control), basado en contextos donde se indica cuando un objeto o sujeto puede acceder a otro objeto. En este caso, el administrador debe definir los derechos de cada usuario que acceda a algunas aplicaciones que que accedan a cualquier objeto del sistema. Para evitar que esta operacion sea tediosa, se definen controles de acceso por roles (Role-Based Access Control, RBAC). SELinux: Haciendo Nuestra Seguridad Impenetrable 2
  • 5. Fundacion Codigo Libre Dominicano Por ejemplo, el usuario programa xx A le otorgamos acceso de lectura y escritura para escribir en los archivos del solamente a traves de este, ahora el usuario B solamente necesita acceso de lectura y nada mas sobre los mismos archivos a traves del mismo programa. Los metodos de seguridad de SELinux no reemplazan los tradicionales controles de acceso discrecionales, por el contrario, los complementa para brindar un control completo y granular de la seguridad. Todo inicialmente es consultado con la capa de control de acceso discrecional (DAC), si esta niega, no hay necesidad de consultar la capa de control de acceso obligatorio (MAC); en caso contrario que el DAC permite el acceso, entonces se hace la consulta hacia la capa MAC para terminar de verificar los controles de acceso. SELinux: Haciendo Nuestra Seguridad Impenetrable 3
  • 6. Fundacion Codigo Libre Dominicano Conceptos basicos de seguridad Atributos de seguridad SELinux usa una combinacion de un modelo de identidad, control de acceso en base a roles (RBAC), enforzamiento de tipos (TE) y categorias de acceso a la informacion. SELinux RBAC autoriza a cada usuario (de SELinux) para un conjunto de roles. Cada rol es autorizado para un conjunto de tipos. Esto se logra utilizando cuatro atributos de seguridad: 1. Identidad de usuario: SELinux tiene su propia base de datos de usuarios que esta asociada a la base de datos normal de usuarios de Linux. Las identidades son usadas en ambos, sujetos y objetos. Solamente unos cuantos usuarios de SELinux son definidos: (pueden ser listados por el comando 'semanage user -l'): • user_u – Usuarios normales. • system_u – Procesos iniciados (al arranque). • root - administrador. 2. Ro le: Los usuarios pueden entrar en diferentes roles. Diferentes roles pueden entrar en diferentes dominios. Para objetos (archivos), esto es siempre object_r. 3. Tipo / dominio: Es el atributo “principal” en SELinux. Tambien llamado el “atributo primario”. Es, por lo general, solo unos pocos usuarios / roles, pero centenares de tipos. No existe diferencia entre “tipos” y “dominios”, pero los "dominios" son usados para cuando hablamos de procesos y los “tipos” para cuando hablamos de archivos. Cada proceso esta confinado en su propia caja de arena, con acceso restringido, tambien llamado “Enforzamiento de Tipos”. 4. Categoria / Nivel: Podra establecer la categoria / nivel. Introducido en RHEL 5, Habilita los controles de seguridad Multi-nivel (MLS) o seguridad Multi-categoria (MCS). Estos cuatro atributos de seguridad, construyen lo que se denomina un “contexto de seguridad”: <usuario>: <rol>: <tipo>: <categoria/nivel> Atributo de seguridad Convencion de nombre Ejemp lo usuario _u user_u rol _r object_r tipo _t unconfined_t categoria/nivel (ninguna) s0:c0 SELinux: Haciendo Nuestra Seguridad Impenetrable 4
  • 7. Fundacion Codigo Libre Dominicano Cuando tenemos todos los servicios de red y sistema confinados, tenemos un mayor control de seguridad, porque no comprometemos al sistema, aislando cada servicio como una entidad independiente. Control de escalamiento de privilegios: La seguridad esta segmentada en roles principales ● user_r: El mas minimo privilegio, asignado simplemente a los usuaros; alguien con este rol, no puede hacer escalamiento de privilegios ni alternar de rol. ● staff_r: Similar al rol user_r, con la diferencia que con este rol se puede alternar a los diferentes roles asignados con el perfil del usuario. ● auditadm_r: Rol encargado de las herramientas de auditoria de manera unica y exclusiva, los usuarios de este rol solamente desempeñan esta funcion. ● secadm_r: Rol encargado de manejar las herramientas de seguridad, declarar nuevos roles, crear nuevas politicas y de ver los log de auditoria, mas no puede modificarlos. ● sysadm_r: Rol maximo en el sistema, pero no puede usar las herramientas de auditoria ni modificar estos reportes. SELinux: Haciendo Nuestra Seguridad Impenetrable 5
  • 8. Fundacion Codigo Libre Dominicano El sistema de archivos virtual El pseudo-sistema de archivos /selinux/ /selinux/ contiene los comandos que son utilizados más a menudo por el subsistema del kernel. Este tipo de sistema de archivos es similar al pseudo sistema /proc/. En la mayoría de los casos, los administradores y usuarios no necesitan manipular este componente, en comparación con otros archivos y directorios SELinux. El ejemplo siguiente presenta contenidos de muestra del directorio /selinux/: -rw-rw-rwdr-xr-xr-x --w-------rw-rw-rw-rw-rw-rw--w-------rw-r--r--rw-------r--r--r--r--r--r--rw-rw-rw-rw-rw-rw- 1 1 1 1 1 1 1 1 1 1 1 1 root root root root root root root root root root root root root root root root root root root root root root root root Por ejemplo, al ejecutar el comando 0 0 0 0 0 0 0 0 0 0 0 0 Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep cat 22 22 22 22 22 22 22 22 22 22 22 22 13:14 13:14 13:14 13:14 13:14 13:14 13:14 13:14 13:14 13:14 13:14 13:14 access booleans commit_pending_bools context create disable enforce load mls policyvers relabel user en el archivo /selinux/enforce revela un 1, para el modo impositivo u obligatorio, o un 0, para el modo permisivo. SELinux: Haciendo Nuestra Seguridad Impenetrable 6
  • 9. Fundacion Codigo Libre Dominicano El archivo de configuración /etc/sysconfig/selinux Hay dos formas de configurar SELinux bajo Red Hat Enterprise Linux y CentOS: usando el Herramienta de configuración de nivel de seguridad (system-config-securitylevel), o manualmente editando el archivo de configuración (/etc/sysconfig/selinux). El archivo /etc/sysconfig/selinux es el archivo de configuración principal para habilitar o inhabilitar SELinux, así como también para configurar cuál política de debe imponer en el sistema y cómo hacerlo. **NOTA: El archivo /etc/sysconfig/selinux contiene un enlace simbólico al archivo de configuración real, /etc/selinux/config. A continuación se explica el subconjunto completo de opciones disponibles para la configuración: • SELINUX=<enforcing|permissive|disabled> un sistema. — Define el estado superior para SELinux en o 'impositivo' — Se impone la política de seguridad SELinux. • enforcing • permissive o 'permisivo' — El sistema SELinux advierte pero no impone la política. Esto es útil para propósitos de depuración o de resolución de problemas. En modo permisivo, se registrarán más rechazos, pues los sujetos podrán continuar con acciones que de lo contrario serían rechazadas en el modo impositivo. Por ejemplo, navegar en un árbol de directorios producirá varios mensajes de avc: denied para cada nivel de directorio leído, pero un kernel en modo impositivo habría detenido la primera acción de este tipo, previniendo que se produjeran más mensajes de rechazo. • disabled o 'inhabilitado' — SELinux está completamente desactivado. Los ganchos de SELinux no están conectados al kernel y el pseudo sistema de archivos no está registrado. SELinux: Haciendo Nuestra Seguridad Impenetrable 7
  • 10. Fundacion Codigo Libre Dominicano • SELINUXTYPE=<targeted|strict>: Especifica cuál política está siendo implantada actualmente por SELinux. • targeted (objetivo, dirigido): Solamente se protegen ciertos demonios particulares. La imposición de políticas para estos demonios se puede activar y desactivar, utilizando valores boleanos controlados por Herramienta de configuración de nivel de seguridad (system-config-securitylevel). Al activar un valor boleano para un demonio objetivo se desactiva la transición de políticas para ese demonio, lo que previene, por ejemplo, que init pase a (ilimitado) al dominio especificado en dhcpd dhcpd.te. desde el dominio El dominio unconfined_t unconfined_t permite a los sujetos y objetos con ese contexto de seguridad a ejecutarse bajo la seguridad estándar de Linux. • MLS (Seguridad Multi-nivel): Se definen capas de seguridad para cada objeto, en donde solo los usuarios que posean los niveles correspondientes o superiores pueden acceder a las secciones correspondientes; nunca en sentido inverso. • MCS (Seguridad Multi-categoria): Muy similar a la seguridad Multi-nivel, pero con patrones mas flexibles y faciles de aplicar; debido a que uno segmenta la informacion como si fuese para ser manejada por departamentos. • strict (estricta): Protección SELinux completa, para todos los demonios. Se definen los contextos de seguridad para todos los sujetos y objetos y cada simple acción es procesada por el servidor de aplicación de políticas. SELinux: Haciendo Nuestra Seguridad Impenetrable 8
  • 11. Fundacion Codigo Libre Dominicano Utilidades para SELinux Los siguientes son algunos de los programas de utilidades usados más a menudo por SELinux • /usr/bin/setenforce: ejecutar 1, setenforce Modifica en tiempo real el modo en que se ejecuta SELinux. Al se coloca SELinux en modo impositivo. Al ejecutar setenforce 0, SELinux se coloca en modo permisivo. Para desactivar SELinux, se necesita que configure el parámetro en /etc/sysconfig/selinux /etc/grub.conf • o que pase el parámetro selinux=0 o al momento del arranque. /usr/bin/sestatus -v: al kernel, bien sea en obtiene el estado detallado de un sistema ejecutando SELinux. El ejemplo siguiente muestra un extracto de la salida sestatus: SELinux status: SELinuxfs mount: Current mode: Policy version: • enabled /selinux enforcing 18 /usr/bin/newrole: Ejecuta un nuevo shell en un nuevo contexto o papel. La política debe /sbin/restorecon: Configura el contexto de seguridad de uno o más archivos, marcando los permitir la transición al nuevo papel. • atributos extendidos con el archivo apropiado o contexto de seguridad. • /sbin/fixfiles: de archivos. Verifica o corrige la base de datos del contexto de seguridad en el sistema SELinux: Haciendo Nuestra Seguridad Impenetrable 9
  • 12. Fundacion Codigo Libre Dominicano Creando nuevas politicas de SELinux, Paso a Paso Para crear un modulo de politicas de SELinux, se deben tomar en cuenta los siguientes puntos: ● Para saber si las politicas de seguridad de selinux estan enforzadas se ejecuta el comando getenforce. ● para obtener las metricas de efectividad de las politicas de seguridad implementadas se ejecuta seinfo. ● Para desactivar el enforzamiento de SELinux en el momento se ejecuta reactivarlo de nuevo se ejecuta la sentencia ● Si se desea desactivar /etc/sysconfig/selinux ● selinux setenforce 0 y para setenforce 1. de manera definitiva, se modifica y se cambia la directiva SELINUX=enforcing por el archivo SELINUX=disabled. Para saber que aplicaciones se estan denegando por selinux en el sistema, se utiliza la herramienta grafica incluida llamada setroubleshoot, en caso de no tener soporte de Xwindow se puede ejecutar en modo consola: $ sealert -a /var/log/audit/audit.log ● para permitir una aplicacion que habia sido denegada por selinux, se genera un modulo de politicas de seguridad con el siguiente ejemplo: $ ausearch -c "telnetd" -m avc | audit2allow -M telnetd Esto generara 3 archivos: ○ telnet.te : que es el conjunto de reglas de seguridad que permiten o denegan permisos a tipos, roles, atributos y dominios de seguridad. Sobre los archivos de esta clase es que trabajaremos la mayoria del tiempo. ○ telnet.pp : que es el paquete binario que contiene el modulo (o los modulos) a cargar hacia SELinux, para la ejecucion de las nuevas politicas. ○ telnet.mod : que es el modulo de politicas compiladas, no empaquetadas aun. Despues de generados todos los archivos, si no hay que hacer ninguna modificacion en las reglas, se procede a la instalacion con los recursos que nos fueron negados. semodule -i telnetd.pp; El tipo de politicas de enforzamiento que usaremos sera el modo ya esto nos permitira acceso a strict (estricto), el cual nos provee un conjunto de politicas de protección para todos los daemons (servicios) del sistema. SELinux: Haciendo Nuestra Seguridad Impenetrable 10
  • 13. Fundacion Codigo Libre Dominicano ¿Como puedo conocer el estado actual de SELinux? Para conocer el estado actual de SELinux, debe ejecutar el siguiente comando: $ getenforce Un valor Disable le indica que SELinux esta desactivado, Permissive le indica que SELinux esta desactivado pero registrando cualquier evento que infringe sus políticas sin tomar ninguna acción a cambio y finalmente un valor de Enforcing le indica que SELinux esta actualmente activo y listo para actuar ante cualquier evento que infrinja cualquiera de sus políticas. Incidentalmente también puede usar el comando mostrada por getenforce, seinfo para ampliar la información de estado para conocer por ejemplo, cantidad de reglas, atributos, roles, cadenas booleanas, tipo de política, versión, etc. Tambien podria ser util listar algunas sentencias booleanas con seinfo -b. ¿Que aplicaciones estan siendo denegadas por SELinux en mi sistema? Fedora incluye potentes herramientas para auditar SELinux y con ello una completa descripción que nos ayudarán a solucionar cualquier problema relacionado a aquellos eventos que infringen las politícas de SELinux, puede utilizar la herramienta gráfica incluida llamada setroubleshoot, en caso de no disponer de soporte XWindow puede también ejecutar en modo consola: $ sealert -a /var/log/audit/audit.log ¿Como puedo permitir una aplicacion ya denegada por SELinux en el sistema? Es necesario crear políticas de acceso detalladas para cada aplicación que se desea tenga acceso a determinado objeto/dominio en su sistema, esta tarea puede ser terriblemente compleja, es por esto que resulta importante auditar las políticas mediante de acceso fue denegado con mensajes del tipo: sealert o setroubleshoot, allí se dará cuenta que tipo avc: denied { read, write, unlink, etc. }, basado en esto podemos crear y cargar políticas en tiempo de ejecución que permitan exactamente los tipos de acceso que SELinux esta prohibiendo y registrando. SELinux: Haciendo Nuestra Seguridad Impenetrable 11
  • 14. Fundacion Codigo Libre Dominicano Vamos a tomar como ejemplo el comando su y supongamos que SELinux esta denegando su ejecución con mensajes del siguiente tipo: avc: denied { getattr } for pid=3414 comm="su" name="shadow" dev=dm-3 Aquí SELinux nos dice que denego el acceso al comando su cuando éste intentó leer los atributos del el archivo /etc/shadow sobre la partición dm-3, basado en esto crearemos una política que permita justamente el acceso al progrmana su para que pueda leer los atributos del archivo /etc/shadow únicamente sobre la partición dm-3 de la siguiente manera: $ ausearch -c "su" -m avc | audit2allow -M su ; semodule -i su.pp Analizando la linea anterior podemos ver que inicialmente el comando ausearch busca eventos que corresponden al comando su, luego en base a esto audit2allow genera un módulo de políticas en binario llamado su.pp y finalmente semodule carga esté archivo de políticas en SELinux. El ejemplo siguiente nos muestra cual es el codigo de politicas generado, del cual explicaremos como funciona y como deben realizarse las politicas para un programa determinado. module su 1.0; require { class dir search; class file { execute getattr }; type bin_t; type default_t; type selinux_config_t; type staff_su_t; role staff_r; }; allow staff_su_t bin_t:file execute; allow staff_su_t default_t:dir search; allow staff_su_t selinux_config_t:file getattr; SELinux: Haciendo Nuestra Seguridad Impenetrable 12
  • 15. Fundacion Codigo Libre Dominicano En un analisis rapido de este codigo, podemos apreciar lo siguiente: ● Se debe declarar el nombre del modulo en la primera linea, y con esta se debe declarar cual es el numero de version de la politica: ● module su 1.0; Se define cuales son las clases, macros, tipos, atributos, conjunto de subclases, y roles a permitir en la politica ○ Para definir los requerimientos es usa require ○ Dentro de require: ■ { ... }; se definen las clases de acceso de seguridad a usar con class y son: ● dir: para acceso de los directorios ● file: para acceso de los archivos ● process: para acceso de los procesos ■ se definen los tipos a usar con type ■ se definen los roles a usar con role ■ se definen los atributos de tipos a usar con attribute ○ Luego se comienza a permitir la transición de tipos y dominios con allow ○ Se debe tomar en cuenta que todo lo que no ha sido declarado como admitido, esta denegado por defecto; ya que, por su estructura de diseño, SELinux viene cerrado y enforzado por defecto; y es nuestro deber moldear las politicas que mejor ajusten con nuestro entorno operacional. SELinux: Haciendo Nuestra Seguridad Impenetrable 13
  • 16. Fundacion Codigo Libre Dominicano ¿Como permitir el acceso a las aplicaciones que han sido negadas por el sistema? Es una buena practica conocer que acceso vamos a otorgar, evaluando y auditando los registros denied avc: del archivo de registro de SELinux, para que finalmente crear las reglas en 2 simples pasos y terminar generando el nuevo modulo binario de politicas a aplicar: $ audit2allow -M reglaslocales -l -i /var/log/audit/audit.log Luego se carga la información de las nuevas politicas en SELinux: $ semodule -i reglaslocales.pp Alternativamente, si desea conocer las reglas que exactamente fueron creadas, puede crear el archivo .te, el cual contiene las reglas de ejecucion de cada tipo de dominio en SELinux basados en audit.log : $ checkmodule -M -m -o reglaslocales reglaslocales.te ¿Como puedo permitir que un servicio pueda usar cualquier puerto? Regularmente SELinux solo permite que determinadas aplicaciones utilicen solo aquellos puertos para los cuáles han sido configurados por defecto, por ejemplo, SSH regularmente escucha por el puerto 22 y de estar SELinux con la política de referencia strict resultaría casi imposible intentar cambiarlo a otro puerto, como por ejemplo al puerto 10022, para lograrlo necesitamos desplegar un conjunto de reglas confinadas en el dominio de SELinux llamado "sshd_port" para ssh de la siguiente manera: $ semanage port -a -t sshd_port_t -p tcp 10022 Otro ejemplo util es cambiar el puerto 80 por defecto por donde escucha el servidor web Apache: $ semanage port -a -t http_port_t -p tcp 81 Sin embargo, en algunas aplicaciones es común el cambio del puerto de servicio, tal es el caso de Squid , regularmente squid escucha por el puerto 3128 pero algunos administradores prefieren usar el 8080 e incluso el 80, SELinux tiene una cadena booleana específica para squid llamada squid_connect_any la cuál permite cambiar el puerto de servicio con bastante flexibilidad: $ setsebool -P squid_connect_any 1 SELinux: Haciendo Nuestra Seguridad Impenetrable 14
  • 17. Fundacion Codigo Libre Dominicano ¿Cómo puedo cambiar la localización por defecto de algunos servicios? Casos comunes, supongamos que queremos cambiar la localización de nuestro servidor web, muchos administradores o webmasters cambian premeditadamente la ruta que trae Apache por defecto, por ejemplo un proveedor de hosting acostumbra a utilizar el directorio /home/web/ para alojar las páginas webs de todo un universo de dominios, así pues el creera oportuno aplicar las políticas predefinidas para el servicio Apache, esto lo podemos lograr agregando el tipo de contexto a los archivos y directorios de la siguiente forma: # semanage fcontext -a -t httpd_sys_content_t "/home/web(/.*)?" Otro servicio es la base de datos MySQL, al cambiar la localización de los archivos de bases de datos que comúnmente se encuentran en /var/lib/mysql/ a por ejemplo /db/mysql/ debemos etiquetar sus archivos con: $ semanage fcontext -a -t mysqld_db_t "/db/mysql(/.*)?" Y así con todos los demás servicios de la misma forma, si no sabes cuál es el contexto de los archivos en SELinux para tu servicio, puedes simplemente buscarlo: $ semanage fcontext -l | grep dhcpd /var/lib/dhcp(3)?/dhcpd.leases.* regular file /var/lib/dhcpd(/.*)? all files /usr/sbin/dhcpd.* regular file /etc/dhcpd.conf regular file /var/run/dhcpd.pid regular file system_u:object_r:dhcpd_state_t:s0 system_u:object_r:dhcpd_state_t:s0 system_u:object_r:dhcpd_exec_t:s0 system_u:object_r:dhcp_etc_t:s0 system_u:object_r:dhcpd_var_run_t:s0 Entonces podemos deducir que, si deseo cambiar los datos almacenados en /var/lib/dhcpd para otro directorio llamado /data/dhcpd debo aplicarles el contexto de archivos dhcpd_state_t. $ semanage fcontext -a -t dhcpd_state_t "/data/dhcpd(/.*)?" SELinux: Haciendo Nuestra Seguridad Impenetrable 15