Buscar en este blog

domingo, 26 de agosto de 2012

¿QUE ES SELINUX?

 SECURITY-ENHANCED LINUX, "seguridad mejorada de linux", es una caracteristica de seguridad de linux que provee una variedad de politicas de seguridad incluyendo controles de acceso del estilo de los del departamento de defensa de estados unidos a traves del uso de módulos de seguridad en el núcleo linux, no es una distribuión de linux, si no un "set" de modificaciones que puede ser aplicado a un sistema tipo unix como linux y BSD.

-Al ejecutar un kernel SElinux MAC se protege al sistema de aplicaciones maliciosas o dañadas que pueden perjudicar o destruir el siistemam SElinux define el acceso y los derechos de transición de cada usuario, aplicación, proceso y archivo en el sistema.


-La razón de usar USERLINUX es limitar el acceso que tienen las aplicacaciones a otras aplicaciones y alos ficheros, impidiendo que un proceso pueda modificar cualquier fichero del usuario con el que se lanzó. (firefox jamás deberia ser capaz de cambiar los permisos de mi clave privada ssh.


-Un administrador de un sistema SElinux tiene la posibilidad de configurar una politca donde se define  los archivos a los que tiene acceso cada programa, SElinux implementa un mecanismo para establecer en cada archivo y proceso el contexto en el que está siendo utilizado.






CONTROL DE ESCALAMIENTO DE PRIVILEGIOS: la seguridad esta segmentada en roles principales:


user_r: el más minimo privilegio, asigando simplemente a los usuarios;alguien con este rol no puede hacer escalamiento de privilegios ni alternar de rol.


stoff_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.


auditam_r: rol encargado de las herramientas de auditoria de manera unica y exclusiva, los usuarios de este rol solamente desempeñan esta función.


secadm_r:  rol encargado de manear las herramientas de seguridad, declarar nuevos roles, crear nuevas politicas y de ver los log de auditoria, mas no puede modificarlos.

 
sysadm_r: rol máximo en el sistema pero no puede usar las herramientas de auditoria ni modificar estos reportes.

 EL ARCHIVO DE CONFIGURACIÓN  /ETC/SYSCONFIG/SELINUX


Hay dos formas de configurar SElinux bajo redhat y centos usando la herramienta de configuración de nivel de seguridad (system-config-securitylevel), o manualmente editando el archivo  /etc/sysconfig/selinux  , este es el archivo de ocnfiguración principal para habilitar o inhabilitar SElinux, asi como tambien para configurar cual politica se debe imponer en el sistema  y como hacerlo.


NOTA: EL ARCHIVO /etc/sysconfig/selinux  CONTIENE UN ENLACE SIMBÓLICO AL ARCHIVO DE CONFIGURACIÓN REAL,  /etc/selinux/config.



  SUBCONJUNTO DE OPCIONES DISPONIBLES PARA LA CONFIGURACIÓN:

  
 .selinux= < enforcing | permissive | disabled > -- define el estado superior para selinux en un sistema.

 .enforcing  o "impositivo" __ se impone la politica de seguridad SELinux.


  permissive  o "permisivo" __ el sistema selinux advierte pero no impone la politco.Util para propositos 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  serian rechazadas en el modo impositivo.


 disabled o "inhabilitado" __ SELinux esta completamente desactivado.los ganchos de SELinux no están conectados  al kernel y el pseudo sistema de archivos no esta registrado.


 .selinuxtype= <targeted | strict > --Especifica cuál politica esta siendo implantada actualmente por SELinux.

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


 strict  (estricta): proteccion SELINX completa para todos los demonios.





CONOCER EL ESTADO ACTUAL DE SELINUX:


$ GETENFORCE 

 un valor:

DISABLE: indica que selinux esta desactivado.


PERMISSIVE: indica que selinux esta desactivado pero registrando cualquier evento que infringe sus politicas sin tomar ninguna accion a cambio.

ENFORCING:   indica que selinux esta activado actualmente y listo para actuar ante cualquier evento que infrinja cualquiera de sus politicas.

TAMBIEN SE PUEDE USAR EL COMANDO  $SEINFO (-B)  PARA AMPLIAR LA INFORMACIÓN DE ESTADO MOSTRADA POR  $ GETENFORCE .



APLICACIONES QUE ESTAN SIENDO DENEGADAS POR SELINUX EN MI SISTEMA:  

 $SEALERT -A  /VAR/LOG/AUDIT/AUDIT.LOG


¿COMO PUEDO PERMITIR QUE UN SERVICIO PUEDA USAR CUALQUIER PUERTO?


Regularmente  selinux solo permite que determinadas aplicaciones utilicen solo aquellos puertos para los cuáleshan sido configurados por defecto, por ejemplo, SSH regularmente escucha   por el puerto 22 y de estar SELinux con la politica de referencia strict  resultaria 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" 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


 

 

No hay comentarios:

Publicar un comentario