- Resumen
- Modelos de Control de
Acceso - SELinux
- DAC en SELinux
- Seguridad
- Instalación
- Aplicación de Debian y
Fedora
El presente trabajo trata
sobre la necesidad actual de trabajar bajo estándares
seguros y
administrar de manera eficiente los sistemas
operativos, SELinux puede
aplicar una política de seguridad
definida administrativamente sobre todos los procesos y
objetos en el sistema, en base
a decisiones en etiquetas que contienen una variedad de información de seguridad-pertinente. La
arquitectura
proporciona flexibilidad limpia, separando la política
lógica
de la política de ejecución lógica. La
política decision-making lógica se encapsula dentro
de un solo componente conocido como el servidor de
seguridad con una interfaz de seguridad general. Una amplia gama
de modelos de
seguridad puede llevarse a cabo como los servidores de
seguridad sin requerir cambios a cualquier otro componente del
sistema.
Selinux, Security Enhaced Linux, es una
colección de parches que modifican el núcleo del
sistema operativo
Linux, fortaleciendo los mecanismos de control, posee
una arquitectura de seguridad integrada en el kernel 2.6.x,
usando los módulos de seguridad Linux, conocidos como
Linux Security Modules o LSM, se ha constituido en un Proyecto de la
Agencia de Seguridad Nacional de los Estados Unidos y
como se había enunciado de la Comunidad SELinux
que busca la integración, especialmente en Red Hat Enterprise y
actualmente con Debian.
Selinux fortalece los mecanismos de control de acceso
forzando la ejecución de los procesos dentro de un entorno
con el mínimo de privilegios.
El desarrollo
elevado de la Tecnología y su
acceso por parte de los usuarios en las últimas
décadas, ha tornado más fácil el acceso a la
información así como convertir a ella en centro
vulnerable de ataques. La utilización de grandes bases de datos,
sean de carácter comercial como científico,
el auge investigativo de grandes sociedades
productoras de conocimientos, la necesidad de manejar grandes
volúmenes de información ha hecho que el mundo de
la informática también acelere su paso
para mantenerse a la par de las necesidades de los grandes
usuarios, debiéndose en esta sociedad
globalizada enfrentarse al grave problema de las patentes y el
usufructo de los derechos de
autor, tornando muchas veces al conocimiento
como fuente de opresión especialmente para los
países denominados subdesarrollados que deben gastar
ingentes recursos en las
compras de las
denominadas "licencias".
Actualmente la red de redes o internet ha facilitado el
contacto entre el mundo y los desarrolladores independientes se
ubican en desigual lucha creando sus propios sistemas y
compartiéndolo de manera libre entre la sociedad sus
aspiraciones y conocimientos, basados también en normas y
estándares internacionales en su desarrollo, bajo
licencias GNU, siendo los sistemas que más se han
desarrollado Unix/Linux,
bajo grupos de
desarrollo independiente.
De esta manera, además se ha visto el auge por
alterar las seguridades y provocar daños hacia sistemas y
equipos, sean estos locales o remotos, del mismo modo existe una
comunidad capaz, en frontal lucha para mejorar los sistemas y sus
seguridades, buscando además que éstas sean
fáciles de implementar, livianas y de muy bajos costos, que
consuman la menor cantidad de recursos, sean fiables y
seguros.
Entonces, no habrá sistema operativo que no pueda
ser atacado o vulnerado, creando a pesar de los esfuerzos un
panorama de inseguridad,
frente a peligros de ataques sean estos internos o externos, a la
presencia de virus, malware;
sabemos que los firewalls son elementos fronterizos, sin embargo
falta control y protección, el control de acceso se halla
en primera línea, tornándose en la necesidad de
mantener una lucha constante por mantener y mejorar la seguridad
de los sistemas.
2. MODELOS DE
CONTROL DE ACCESO
Tradicionalmente los sistemas Unix han utilizado el
modelo de
control de acceso discrecional (Discretionary Access
Control, DAC) en el que un usuario tiene un completo control
sobre los objetos que le pertenecen y los programas que
ejecuta. Así mismo, el programa
ejecutado por un usuario tendrá los mismos permisos de ese
usuario que lo está ejecutando.
Esto implica que la seguridad del sistema depende de las
aplicaciones que se están ejecutando y, por tanto, cuando
se produce una vulnerabilidad de seguridad en una
aplicación, ésta afecta a todos los objetos a los
que el usuario tiene acceso. Así, si la aplicación
es ejecutada por root, el atacante puede obtener los
máximos privilegios en la máquina, comprometiendo
la seguridad global del sistema.
Otro modelo de control de acceso es el denominado
control de acceso obligatorio (Mandatory Access Control,
MAC), donde existe una política de seguridad definida por
el administrador y
que los usuarios no pueden modificar. Esta política va
más allá de establecer propietarios de archivos sino que
fija "contextos", en donde se indica cuando un objeto puede
acceder a otro objeto.
Este modelo de control de acceso puede aumentar el nivel
de seguridad, especialmente cuando se establece como base de la
política definida que no se permite cualquier
operación no expresamente autorizada. La
implementación de este modelo de seguridad para todo un
sistema puede ser una tarea muy tediosa.
En teoría
deben definirse reglas para cualquier usuario que utiliza
cualquier programa que accede a cualquier objeto del sistema.
Para evitar tener que llegar a este detalle de definición,
algo que fácilmente se convertiría en un monstruo
inmanejable, se utiliza el concepto de
control de acceso basado en roles (Role-Based Access Control,
RBAC). Bajo este modelo, el administrador define una serie de
roles y asigna a los usuarios en los diferentes roles que
corresponden a su perfil. Como ejemplo, el usuario de un programa
únicamente necesita disponer de permisos para leer y
escribir los archivos utilizados por esa aplicación
concreta, pero nada más.
Otros usuarios es posible que necesiten permisos para
poder leer
archivos, pero no modificarlos. Cada uno de estos usuarios se
asignará a diferentes roles.
La Agencia de Seguridad Nacional (NSA) de los Estados
Unidos lanza un proyecto de fuente abierta el Security Enhanced
Linux (SE Linux), que lo desarrollaron originalmente como un
avance revolucionario, pero es también muy diferente del
modelo estándar de seguridad de Linux. Las nuevas
tecnologías que desarrollo SELinux como, control de
acceso obligatorio en un sistema basado en Linux, se incorporan
en distribuciones como RedHat, Fedora y Gentoo, y ahora el nuevo
lanzamiento de EnGarde Linux 3,0.
Security Enhanced Linux, SELinux, es una
colección de parches que modifican el núcleo del
sistema operativo Linux, fortaleciendo los mecanismos de control
de acceso y forzando la ejecución de los procesos dentro
de un entorno con los mínimos privilegios
necesarios.
3.1 Definición
SELinux puede considerarse como una
implementación práctica del modelo de seguridad de
control de acceso obligatorio basado en el núcleo del
sistema operativo Linux.
SELinux determina dos objetos, por un lado, demostrar la
posibilidad de implementar el modelo de seguridad de control de
acceso obligatorio (MDAC) y el control de acceso basad o en roles
(RBAC) en entorno Linux, como segundo objetivo, el
hacer frente a la eventualidad de que los sistemas
operativos "trusted" comerciales dejaran de estar
disponibles.
Un administrador de un sistema SELinux tiene la
posibilidad de configurar una política donde se define los
archivos a que tiene acceso cada programa. SELinux implementa un
mecanismo para establecer en cada archivo y
proceso el
contexto en el que está siendo utilizado.
Mediante la utilización de un módulo del
sistema operativo, es posible establecer reglas para permitir o
denegar el acceso a cualquier archivo del sistema (utilizando el
concepto de archivo de Unix, lo que incluye a los dispositivos,
archivos…).
3.2 Características
- La noción de un sistema seguro incluye
muchos atributos (seguridad física, seguridad
lógica, la seguridad del personal,
etc.). SELinux se dirige sólo a un juego muy
estrecho de estos atributos (mandos de acceso obligatorios en
el sistema operativo). - SELinux significa la caja fuerte para proteger la
información del mundo real de algún adversario
del mundo real que el dueño de información no
permita el acceso al usuario.
- SELinux proporciona compatibilidad binaria con las
aplicaciones existentes de Linux y con los kernel de Linux,
algunos kernel pueden requerir modificaciones para actuar con
SELinux
- Los nuevos rasgos del SELinux se diseñan para
dar fuerza a la
separación de información basada en la
confidencialidad y requisitos de integridad. Ellos se
diseñan para impedir a los procesos pocos fiables leer
datos y
programas, desviando los mecanismos de seguridad de la
aplicación, interfiriendo estos procesos en la
violación de la política de seguridad de sistema.
Ellos también ayudan confinar el daño
potencial que puede causar a los datos o programas. Ellos
también deben ser útiles para permitir usar un
solo sistema por los usuarios diferenciando las autorizaciones
de seguridad para acceder a tipos múltiples de
información mediante requisitos de
seguridad.
- El sistema operativo dispone de un proceso servidor
de seguridad, que se ejecuta como parte del núcleo, que
decide en base a la política de seguridad definida por
el administrador, si algo (un proceso o un usuario) dispone de
permiso para acceder a un objeto (archivo, dispositivo…),
este mecanismo de control se denomina Type Enforcement
(TE). - SELinux también permite implementar un modelo
adicional de seguridad (Multi-Level Security, MLS) en el que
además de lo indicado hasta ahora es posible, para cada
objeto, una capa de seguridad (como "altamente secreta",
"secreta", "confidencial" y "sin
restricción").
3.3 Ventajas y desventajas
- El mecanismo de control Type Enforcement (TE), ante
una incidencia de seguridad como puede ser un desbordamiento de
búfer en un proceso ejecutado por root, el atacante
sólo podrá acceder a los archivos para los cuales
el proceso vulnerable esté autorizado por la
política del sistema. No tendrá ningún
efecto sobre el resto de archivos u objetos del
sistema. - Los mecanismos del SELinux añade restricciones
de que únicamente aquellos procesos y usuarios situados
en la misma capa (o una capa superior) puede acceder a los
objetos, pero nunca al revés. Así un usuario o un
proceso de la capa "confidencial" puede acceder a la
información "confidencial" y "sin restricción",
pero nunca a la información marcada como "secreta" o
"altamente secreta".
El modelo de seguridad utilizado por la mayoría
de sistemas operativos está basado en Discretionary Access
Control (DAC), que hace cumplir la seguridad por propiedad. En
este modelo, los usuarios controlan los datos según sus
necesidades, el dueño del sistema no controla totalmente
el sistema. Sin embargo, la mayor preocupación sobre el
modelo de Linux es la planteada por la cuenta de root, quien
tiene el poder de controlar todos los ficheros y procesos. Si la
cuenta de root, o un proceso que se ejecute con sus privilegios,
se ve comprometido, un atacante puede tomar el control del
sistema y de sus datos.
Una aproximación más segura podría
limitar o incluso eliminar la necesidad de una cuenta de root, y
cambiar el poder de las cuentas de
usuario al dueño del sistema, esta es la
aproximación MAC. MAC hace cumplir las políticas
de seguridad de una forma o mandatory, en lugar de una forma
discreta o discretionary, a partir del nombre Mandatory Access
Controls las políticas de seguridad pueden ser
establecidas por el dueño del sistema e implementadas por
un sistema o un administrador de seguridad. Una vez que estas
políticas existan, los usuarios no podrán hacer
caso omiso de las mismas, aun teniendo privilegios de root. Con
MAC, la protección de ficheros y procesos es independiente
de los dueños.
Todo lo anterior son requerimientos para conocer a un
sistema operativo con el criterio del Departamento de Defensa de
EEUU "confiable". Estos criterios están bajo la
publicación "Trusted Computer System Evaluation Criteria",
también conocido como Libro
Naranja.
Discretionary Access Control (DAC) significa restringir
el acceso a los objetos basados en la necesidad de identificar y
conocer a los usuarios o grupos de usuarios los cuales van a
hacer uso de esos objetos, muchas veces es conocido como
surrogate access, ya que se debe establecer ciertos permisos de
acceso o access permission.
SELinux aparece a finales del año 2000 lanzado y
distribuido por la Agencia Nacional de Seguridad de los Estados
Unidos (NSA). El objetivo del mismo es, por un lado, demostrar la
posibilidad de implementar el modelo de seguridad de control de
acceso obligatorio (MDAC) y el control de acceso basado en roles
(RBAC) en entorno Linux.
Un segundo objetivo, hacer frente a la eventualidad de
que los sistemas operativos "trusted" comerciales dejarán
de estar disponibles. SELinux puede considerarse como una
implementación práctica del modelo de seguridad de
control de acceso obligatorio basado en el núcleo del
sistema operativo Linux. Un administrador de un sistema SELinux
tiene la posibilidad de configurar una política donde se
define los archivos a que tiene acceso cada programa.
Para poder realizar esto, SELinux implementa un
mecanismo para establecer en cada archivo y proceso el contexto
en el que está siendo utilizado.
Mediante la utilización de un módulo del
sistema operativo, es posible establecer reglas para permitir o
denegar el acceso a cualquier archivo del sistema. El sistema
operativo dispone de un proceso servidor de seguridad, que se
ejecuta como parte del núcleo, que decide en base a la
política de seguridad definida por el administrador, si
algo (un proceso o un usuario) dispone de permiso para acceder a
un objeto sea este un archivo o dispositivo, mecanismo de control
denominado Type Enforcement (TE). Así, ante una incidencia
de seguridad como puede ser un desbordamiento de búfer en
un proceso ejecutado por root, el atacante sólo
podrá acceder a los archivos para los cuales el proceso
vulnerable esté autorizado por la política del
sistema sin tener ningún efecto sobre el resto de archivos
u objetos del sistema. SELinux también permite implementar
un modelo adicional de seguridad (Multi-Level Security, MLS) en
el que además de lo indicado hasta ahora es posible, para
cada objeto, una capa de seguridad conocida como "altamente
secreta", "secreta", "confidencial" y "sin
restricción".
En este modelo, a los mecanismos descritos anteriormente
se añade la restricción de que únicamente
aquellos procesos y usuarios situados en la misma capa o una capa
superior pueden acceder a los objetos, pero nunca en sentido
contrario.
- Security Enhanced Linux es un prototipo de investigación para el Kernel de Linux y
varios utilidades con las funcionalidades del SE
diseñado para demostrar el valor del
control de acceso obligatorios para la comunidad de Linux y
ahora puede agregar dichos controles a Linux. El Kernel de
Linux contiene nueva arquitectura de componentes desarrollados
para mejorar la seguridad del sistema operativo. Estos
componentes arquitectónicos mantienen el apoyo a los
Roles y Multi-niveles. - El Kernel de Linux da fuerza a políticas de
mando de acceso obligatorias que confinan al usuario programa y
servidores del sistema a la cantidad mínima de
privilegio, el super-usuario root no comparte las limitaciones
de los mecanismos tradicionales. - La seguridad de un unmodified en el sistema Linux
depende de la exactitud del kernel, de todas las aplicaciones
privilegiadas, y de cada una de sus configuraciones. Un
problema en cualquier de estas áreas puede comprometer
el sistema entero. La seguridad del SE Linux depende
principalmente de la exactitud del kernel y de la
configuración de su política de seguridad. Los
problemas
con la exactitud o configuración de aplicaciones
comprometen el entorno limitado del usuario individual, ellos
no proponen una amenaza a la seguridad de otro usuario o a la
seguridad del sistema en conjunto.
SELinux viene distribuyéndose como una
colección de parches para el código
fuente del núcleo del sistema operativo, actualmente se ha
cambiado la arquitectura constituyéndose en un
módulo que utiliza los enganches de seguridad facilitados
por el Linux Security Module (LSM), por lo que como paso previo a
la instalación de SELinux debe instalarse el sistema
operativo Linux.
Los requerimientos para la instalación del
sistema operativo Linux son: Utilizar sistema de archivos ext2 o
ext3, instalar las herramientas
necesarias para compilar el núcleo e instalar los diversos
componentes que deberá ejecutar el servidor (como BIND,
Apache, Samba).
La distribución actual de SELinux
incluye:
- El código fuente del núcleo
estándar de Linux, con los parches de SELinux ya
aplicados. - El soporte para Linux Security Modules
(LSM). - El soporte de SELinux para LSM.
- Programas para la
administración de SELinux y las políticas de
seguridad. - Diversos ejemplos de políticas de
seguridad. - Diversas utilidades para sustituir algunas de las
utilidades estándar
del sistema (cp, find, id, ls).
SELinux establece una serie de prioridades o
políticas para el control de la seguridad del sistema
operativo, conocidas como un conjunto de reglas a ser aplicadas,
tales como:
Reglas de acceso de control
(Role-Based Access Control)
Implementadas en un parche del kernel y un conjunto de
herramientas administrativas que añaden un número
de módulos de seguridad al núcleo. El administrador
de seguridad puede escoger y seleccionar que módulos
utilizar, existen versiones de los núcleos 2.4 y 2.6.
RSBAC esta siendo desarrollado desde 1996, incluye módulos
para:
Restringir el poder del root
Listas de control de acceso
Jaulas de procesos
Limitación de recursos
Limitación de acceso a la red
Control de acceso en base a roles
Protección del espacio de direcciones con
PaX3
Detección de intrusos (Linux
Intrusion Detection System)
Linux Intrusion Detection System es un parche para el
núcleo y un conjunto de herramientas de administración que añaden MAC,
así como otras muchas mejoras de seguridad al
núcleo de Linux.
Existen parches disponibles para los núcleos de
las series 2.4 y 2.6. Con LIDS es posible:
Restringir el poder del root
Establecer un granularidad final en el control de
accesos mediante ACLs
Proteger ficheros y procesos
Restringir el acceso a la red
Detectar escaneos de puertos
Es una variante de MAC en la que se establecen unos
flujos de información unidireccionales. Se crean grupos
dentro de los cuales existen distintas clases de
información.
Grupo 1: Clases: desclasificado, público y
confidencial.
Grupo 2: Clases: Secreto y supersecreto.
Un documento puede pasar de:
Desclasificado a –à Público.
Los permisos se asignan de esta manera, siempre con
cambio
unidireccional. Es posible otorgar ambos permisos a una cuenta de
forma que el mismo usuario pueda desclasificar de nuevo el
documento.
Principios de LBAC
Reflexivo: Un usuario debe poder modificar un documento
y volverlo a su estado
original.
Desclasificado-à
Desclasificado
Grsecurity
Grsecurity es otro parche que añade mucho
más que MAC al núcleo de Linux. MAC está
implementado utilizando RBACS (Role Based Access Controls), y se
usa a través de su utilidad gradm.
Ambos núcleos, 2.4 y 2.6 están soportados.
Grsecurity provee las siguientes mejoras de seguridad:
Protección del espacio de dircciones con
PaX
Aleatoriedad adicional en la pila TCP/IP
Los usuarios sólo pueden ver sus propios
procesos.
Archivos relacionados con Selinux
Archivos /selinux/
Contiene los comandos
más utilizados por el kernel, siendo muy similar al
subsistema de /proc/, en la mayoría de los casos, los
administradores y usuarios no necesitan manipular este
componente.
Archivos de configuración de Selinux
La mayoría de archivos se localizan en
/etc/
Archivo de configuración.
Localizado en /etc/sysconfig/selinux
Hay dos formas de configurar Selinux usando
principalmente la Herramienta de configuración del nivel
de seguridad(system-config-security level) o
Manualmente editando el archivo de
configuración(/etc/sysconfig/selinux).
Opciones de configuración:
SELINUX=<enforcing|permissive|disabled>
— Define el estado
superior para SELinux en un sistema.
enforcing o 'impositivo' — Se impone la
política de seguridad SELinux.
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.
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.
SELINUXTYPE=<targeted|strict> —
Especifica cuál política está siendo
implantada actualmente por SELinux.
targeted (objetivo) — 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-security level). 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 dhcpd desde el dominio
unconfined_t (ilimitado) al dominio especificado en
dhcpd.te.
El dominio unconfined_t permite a los sujetos y objetos
con ese contexto de seguridad a ejecutarse bajo la seguridad
estándar de Linux.
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.
El directorio /etc/selinux/
El directorio /etc/selinux/ es la ubicación
principal para todos los archivos de políticas así
como también para el archivo de configuración
principal.
El ejemplo siguiente presenta contenidos de muestra del
directorio /etc/selinux/
Los dos subdirectorios, strict/ y targeted/, son los
directorios específicos donde se contienen los archivos de
políticas del mismo nombre (por ejemplo, strict y
targeted).
Para más información sobre las
políticas de SELinux y su configuración, consulte
el Guía para escribir políticas SELinux de Red
Hat
Utilidades para SELinux
Los siguientes son algunos de los programas de
utilidades más usados por SELinux
/usr/bin/setenforce — Modifica en tiempo real el
modo en que se ejecuta SELinux.
Al ejecutar setenforce 1, 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 o que pase el
parámetro selinux=0 al kernel, bien sea en /etc/grub.conf
o al momento del arranque.
/usr/bin/sestatus -v — obtiene el estado detallado
de un sistema ejecutando SELinux.
/usr/bin/newrole — Ejecuta un nuevo shell en un
nuevo contexto o papel. La política debe permitir la
transición al nuevo papel.
/sbin/restorecon — Configura el contexto de
seguridad de uno o más archivos, marcando los atributos
extendidos con el archivo apropiado o contexto de
seguridad.
/sbin/fixfiles — Verifica o corrige la base de datos
del contexto de seguridad en el sistema de archivos.
Nuevas características de los kernel
2.6
Integración de UML en el
kernel
Las UML (User Mode Linux) es una de las
características más importantes para los
administradores de redes y la seguridad de las mismas,
característica implementada en el kernel 2.6, que permite
correr "un sistema operativo Linux bajo otro Linux". Esto lo
realiza corriendo un proceso en el Linux normal, que llamaremos
anfitrión, este proceso es una versión de Linux
corriendo normalmente como cualquier otro proceso, pero el cual
su función
es emular de manera perfecta el sistema operativo Linux, teniendo
total independencia
con el sistema que se esta corriendo como anfitrión. Con
estas características se hace fácil poder crear
redes virtuales, simular una red con varios PC,
aunque en realidad se tenga un único PC, facilitando el
Webhosting o repositorio para shell.
Otra de las utilidades de la UML, es conocida como
"honeypots" (tarro de miel), útil para atrapar crackers o
aficionados a entrar en lugares donde no invitados, y mantenerlos
en cuarentena y que no puedan interferir con el sistema real que
contienen la información.
Mejoras en el manejo de procesos y CPU
Se espera que el algoritmo
introducido por Linus e Ingo, mejore de manera sustancial la
manera en que el kernel maneje los procesos que se están
ejecutando, lo que introduciría una notable mejora en la
administración de los procesos.
* FileSystem
Se integran más elementos a seguridad como las
ACL (Access Control List), que permiten definir con mayor detalle
los permisos para los archivos, aunque cabe señalar que
esta característica está disponible solo en los
sistema de fichero extended 2 (ext2) y extended 3
(ext3).
Con respecto al tema de soporte, para ocupar el sistema
de archivos de SGI, de plataformas IRIX, el llamado sistema XFS,
hay que parchar el kernel 2.4 para acceder al soporte para este
FileSystem. En la versión 2.6 del kernel, viene integrado
por defecto.
* Módulos
En la versión 2.6 del núcleo hay un cambio
drástico en la carga de los módulos, para lo que se
han desarrollado nuevas herramientas. Hay nuevas APIs que hacen
que el portar código de módulos de 2.4 a 2.6, sea
un poco mas trabajoso.
.Net
En cuanto a las herramientas para trabajo en red,
NetWorking, una característica que se nota a primera
vista, es la incorporación de IPsec, lo cual hace mas
fácil la posibilidad de implementar una VPN (Virtual
Private Network).
En la versión que estoy probando (2.6.0-test2) la
cantidad de drivers para tarjetas de redes
es baja.
Seguridad
La integración de elementos de seguridad en el
mismo kernel, da una visión de la importancia que los
desarrolladores han dado a este tema tan importante en estos
días. Está a cargo del proyecto lsm (Linux Security
Modules), perteneciente a Immunix, organización que ha trabajado en conjunto
con DARPA y la empresa WireX
Communications en hacer de Linux una plataforma más
segura.
Como hemos visto ya, los filesystem traen incorporadas
ACL, elemento de seguridad importante. Un complemento es la
sesión "Security Options", en la cual se pueden activar
los módulos de seguridad. Estos módulos trabajan
agregando mas campos a las estructuras de
System V IPC y manejo de socket, activando mas controles de
acceso a estos.
Existe un modulo llamado ROOTPLUG, muy interesante en su
función, el cual deniega cualquier ejecución con
UID 0 (root), si es que no existe un dispositivo USB.
Compilación Kernel 2.4.x en
Debian.
Decargar el kernel, con wget, para instalarlo con apt.
….:/# apt-get update
….:/# apt-get install wget
….:/# cd /usr/src
….:/usr/src# wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.28.tar.bz2
Descomprimir el recurso.
….:/usr/src# apt-get install
bzip2
….:/usr/src# tar jxvf
linux-2.4.28.tar.bz2
Crear un link simbólico.
….:/usr/src# ln -s linux-2.4.28
linux
OPCIONAL: Parchar el kernel con soporte
encriptación MPPE 128bit y compresión MPPC VPN
Server
….:/usr/src# wget -c
http://www.polbox.com/h/hs001/linux-2.4.28-mppe-mppc-1.2.patch.gz
….:/usr/src# cd Linux
….:/usr/src/linux# apt-get install
match
….:/usr/src/linux# zcat
../linux-2.4.28-mppe-mppc-1.2.patch.gz | patch
–p0
Configurar el kernel para adaptarlo al hardware.
….:/usr/src/linux# apt-get install
libncurses5-dev
….:/usr/src/linux# make clean
mrproper
….:/usr/src/linux# make
menuconfig
Una vez configurado el kernel, compilar la imagen y los
módulos.
….:/usr/src/linux# apt-get install gcc
make
….:/usr/src/linux# make dep
….:/usr/src/linux# make bzImage
….:/usr/src/linux# make modules
Instalamos los módulos y copiar la imagen del kernel al
/boot.
….:/usr/src/linux# make modules_install
….:/usr/src/linux# cp arch/i386/boot/bzImage
/boot/2.4.28.img
Creamos la imagen del initrd.
….:/usr/src/linux# apt-get install
mkinitrd-tools
….:/usr/src/linux# mkinitrd –o
/boot/initrd.2.4.28.img /lib/modules/2.4.28
Opción A: Gestor de arranque Lilo
Editamos el lilo.conf y añadimos la nueva
imagen de nuestro kernel.
….:/usr/src/linux# nano -w
/etc/lilo.conf
image=/boot/2.4.28.img
label=2.4.28
read-only
initrd=/boot/initrd.2.4.28.img
Cargar la nueva configuración del lilo.
….:/usr/src/linux# lilo
–v
Opción B: Gestor de arranque Grub
Editamos el archivo de configuración del grub y
añadimos la nueva imagen de nuestro kernel.
….:/usr/src/linux# nano -w
/boot/grub/menu.lst
title Debian
GNU/Linux, kernel 2.4.28
root (hd0,1)
kernel /boot/2.4.28.img root=/dev/hda1
ro
initrd /boot/initrd.2.4.28.img
savedefault
boot
Kernel 2.6.x en Debian.
Descargar el kernel con wget e instalar con
apt.
….:/# apt-get update
….:/# apt-get install wget
….:/# cd /usr/src
….:/usr/src# wget
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.11.tar.bz2
Descomprimir los sources.
….:/usr/src# apt-get install
bzip2
….:/usr/src# tar jxvf
linux-2.6.11.11.tar.bz2
Crear un link simbólico.
:/usr/src# ln -s linux-2.6.11.11 linux
OPCIONAL: Parchar el kernel con soporte
encriptación MPPE 128bit y compresión MPPC VPN
Server
….:/usr/src# wget –c
http://www.polbox.com/h/hs001/linux-2.6.11-mppe-mppc-1.3.patch.gz
….:/usr/src# cd Linux
….:/usr/src/linux# apt-get install
match
….:/usr/src/linux# zcat
../linux-2.6.11-mppe-mppc-1.3.patch.gz | patch
–p0
Configuramos el kernel para adaptarlo al hardware.
….:/usr/src/linux# apt-get install
libncurses5-dev
….:/usr/src/linux# make clean
mrproper
….:/usr/src/linux# make
menuconfig
Una vez configurado el kernel , compilar la imagen y los
módulos.
….:/usr/src/linux# apt-get install gcc
make
….:/usr/src/linux# make dep
….:/usr/src/linux# make bzImage
….:/usr/src/linux# make modules
Instalar los módulos y copiar la imagen del kernel al
/boot.
….:/usr/src/linux# make modules_install
….:/usr/src/linux# cp arch/i386/boot/bzImage
/boot/2.6.11.img
Crear la imagen del initrd.
….:/usr/src/linux# apt-get install
mkinitrd-tools
….:/usr/src/linux# mkinitrd –o
/boot/initrd.2.6.11.img /lib/modules/2.6.11
Opción A: Gestor de arranque Lilo
Editar el lilo.conf
….:/usr/src/linux# vi
/etc/lilo.conf
image=/boot/2.6.11.img
label=2.4.20
read-only
initrd=/boot/initrd.2.6.11.img
Cargar la nueva configuración del lilo.
….:/usr/src/linux# lilo
–v
Opción B: Gestor de arranque Grub
Editar el archivo de configuración del grub y
añadir la nueva imagen del kernel.
….:/usr/src/linux# nano -w
/boot/grub/menu.lst
title Debian GNU/Linux, kernel 2.6.11
root (hd0,1)
kernel /boot/2.6.11.img root=/dev/hda1
ro
initrd /boot/initrd.2.6.11.img
savedefault
boot
El SElinux esta presente en las ultimas versiones como
tal del Red Hat, su continuidad en Fedora y ahora en Corel de la
misma línea. El ingreso tradicional a los sistemas Linux
es mediante el nombre y password del Usuario que tradicionalmente
con mucho riesgo como se a
explicado es con el root (super-administrador).
Ahora es posible ingresar con un usuario
específico que se identifica dentro de un grupo.
Dentro de fedora 2, para la creación de grupos y
usuarios a un grupo definiendo roles se ingresa mediante la
siguiente opción.
Figura 1.
Cabe destacar que los Sistemas Linux cada vez son
más completos y fáciles de usar, sin embargo
requieren de una expertitud para la ejecución de procesos.
A continuación la creación de un grupo
Maestría con sus respectivos permisos.
Figura 2.
Aquí la asignación del usuarios master al
grupo Maestría.
Figura 3.
Edgar Castañeda
Luis Patiño
Octubre/2005