diff --git a/es_ES.ISO8859-1/books/handbook/Makefile b/es_ES.ISO8859-1/books/handbook/Makefile index d5b724c20e..3ac39a4362 100755 --- a/es_ES.ISO8859-1/books/handbook/Makefile +++ b/es_ES.ISO8859-1/books/handbook/Makefile @@ -1,217 +1,218 @@ # # $FreeBSD$ # $FreeBSDes: doc/es_ES.ISO8859-1/books/handbook/Makefile,v 1.6 2004/10/08 22:36:28 jesusr Exp $ # # Build the FreeBSD Handbook. # # ------------------------------------------------------------------------ # # Handbook-specific variables # # WITH_PGPKEYS The print version of the handbook only prints PGP # fingerprints by default. If you would like for the # entire key to be displayed, then set this variable. # This option has no affect on the HTML formats. # # Handbook-specific targets # # pgpkeyring This target will read the contents of # pgpkeys/chapter.sgml and will extract all of # the pgpkeys to standard out. This output can then # be redirected into a file and distributed as a # public keyring of FreeBSD developers that can # easily be imported into PGP/GPG. # # ------------------------------------------------------------------------ MAINTAINER= jesusr@FreeBSD.org DOC?= book FORMATS?= html-split HAS_INDEX= true INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= IMAGES_EN = advanced-networking/isdn-bus.eps IMAGES_EN+= advanced-networking/isdn-twisted-pair.eps IMAGES_EN+= advanced-networking/natd.eps IMAGES_EN+= advanced-networking/net-routing.pic IMAGES_EN+= advanced-networking/static-routes.pic IMAGES_EN+= install/adduser1.scr IMAGES_EN+= install/adduser2.scr IMAGES_EN+= install/adduser3.scr IMAGES_EN+= install/boot-mgr.scr IMAGES_EN+= install/console-saver1.scr IMAGES_EN+= install/console-saver2.scr IMAGES_EN+= install/console-saver3.scr IMAGES_EN+= install/console-saver4.scr IMAGES_EN+= install/desktop.scr IMAGES_EN+= install/disklabel-auto.scr IMAGES_EN+= install/disklabel-ed1.scr IMAGES_EN+= install/disklabel-ed2.scr IMAGES_EN+= install/disklabel-fs.scr IMAGES_EN+= install/disklabel-root1.scr IMAGES_EN+= install/disklabel-root2.scr IMAGES_EN+= install/disklabel-root3.scr IMAGES_EN+= install/disk-layout.eps IMAGES_EN+= install/dist-set.scr IMAGES_EN+= install/dist-set2.scr IMAGES_EN+= install/docmenu1.scr IMAGES_EN+= install/ed0-conf.scr IMAGES_EN+= install/ed0-conf2.scr IMAGES_EN+= install/edit-inetd-conf.scr IMAGES_EN+= install/fdisk-drive1.scr IMAGES_EN+= install/fdisk-drive2.scr IMAGES_EN+= install/fdisk-edit1.scr IMAGES_EN+= install/fdisk-edit2.scr IMAGES_EN+= install/ftp-anon1.scr IMAGES_EN+= install/ftp-anon2.scr IMAGES_EN+= install/hdwrconf.scr IMAGES_EN+= install/keymap.scr IMAGES_EN+= install/main1.scr IMAGES_EN+= install/mainexit.scr IMAGES_EN+= install/main-std.scr IMAGES_EN+= install/main-options.scr IMAGES_EN+= install/main-doc.scr IMAGES_EN+= install/main-keymap.scr IMAGES_EN+= install/media.scr IMAGES_EN+= install/mouse1.scr IMAGES_EN+= install/mouse2.scr IMAGES_EN+= install/mouse3.scr IMAGES_EN+= install/mouse4.scr IMAGES_EN+= install/mouse5.scr IMAGES_EN+= install/mouse6.scr IMAGES_EN+= install/mta-main.scr IMAGES_EN+= install/net-config-menu1.scr IMAGES_EN+= install/net-config-menu2.scr IMAGES_EN+= install/nfs-server-edit.scr IMAGES_EN+= install/ntp-config.scr IMAGES_EN+= install/options.scr IMAGES_EN+= install/pkg-cat.scr IMAGES_EN+= install/pkg-confirm.scr IMAGES_EN+= install/pkg-install.scr IMAGES_EN+= install/pkg-sel.scr IMAGES_EN+= install/probstart.scr IMAGES_EN+= install/routed.scr IMAGES_EN+= install/security.scr IMAGES_EN+= install/sysinstall-exit.scr IMAGES_EN+= install/timezone1.scr IMAGES_EN+= install/timezone2.scr IMAGES_EN+= install/timezone3.scr IMAGES_EN+= install/userconfig.scr IMAGES_EN+= install/userconfig2.scr IMAGES_EN+= install/xf86setup.scr IMAGES_EN+= mail/mutt1.scr IMAGES_EN+= mail/mutt2.scr IMAGES_EN+= mail/mutt3.scr IMAGES_EN+= mail/pine1.scr IMAGES_EN+= mail/pine2.scr IMAGES_EN+= mail/pine3.scr IMAGES_EN+= mail/pine4.scr IMAGES_EN+= mail/pine5.scr IMAGES_EN+= install/example-dir1.eps IMAGES_EN+= install/example-dir2.eps IMAGES_EN+= install/example-dir3.eps IMAGES_EN+= install/example-dir4.eps IMAGES_EN+= install/example-dir5.eps IMAGES_EN+= security/ipsec-network.pic IMAGES_EN+= security/ipsec-crypt-pkt.pic IMAGES_EN+= security/ipsec-encap-pkt.pic IMAGES_EN+= security/ipsec-out-pkt.pic IMAGES_EN+= vinum/vinum-concat.pic IMAGES_EN+= vinum/vinum-mirrored-vol.pic IMAGES_EN+= vinum/vinum-raid10-vol.pic IMAGES_EN+= vinum/vinum-raid5-org.pic IMAGES_EN+= vinum/vinum-simple-vol.pic IMAGES_EN+= vinum/vinum-striped-vol.pic IMAGES_EN+= vinum/vinum-striped.pic # Images from the cross-document image library IMAGES_LIB= callouts/1.png IMAGES_LIB+= callouts/2.png IMAGES_LIB+= callouts/3.png IMAGES_LIB+= callouts/4.png IMAGES_LIB+= callouts/5.png IMAGES_LIB+= callouts/6.png IMAGES_LIB+= callouts/7.png IMAGES_LIB+= callouts/8.png IMAGES_LIB+= callouts/9.png IMAGES_LIB+= callouts/10.png # # SRCS lists the individual SGML files that make up the document. Changes # to any of these files will force a rebuild # # SGML content SRCS+= book.sgml SRCS+= colophon.sgml SRCS+= advanced-networking/chapter.sgml SRCS+= basics/chapter.sgml SRCS+= bibliography/chapter.sgml SRCS+= boot/chapter.sgml SRCS+= config/chapter.sgml SRCS+= cutting-edge/chapter.sgml SRCS+= disks/chapter.sgml SRCS+= eresources/chapter.sgml SRCS+= install/chapter.sgml SRCS+= introduction/chapter.sgml SRCS+= kernelconfig/chapter.sgml SRCS+= kerneldebug/chapter.sgml SRCS+= kernelopts/chapter.sgml SRCS+= l10n/chapter.sgml SRCS+= linuxemu/chapter.sgml +SRCS+= mac/chapter.sgml SRCS+= mail/chapter.sgml SRCS+= mirrors/chapter.sgml SRCS+= multimedia/chapter.sgml SRCS+= pgpkeys/chapter.sgml SRCS+= ports/chapter.sgml SRCS+= ppp-and-slip/chapter.sgml SRCS+= preface/preface.sgml SRCS+= printing/chapter.sgml SRCS+= security/chapter.sgml SRCS+= serialcomms/chapter.sgml SRCS+= users/chapter.sgml SRCS+= vinum/chapter.sgml SRCS+= x11/chapter.sgml # Entities SRCS+= chapters.ent SYMLINKS= ${DESTDIR} index.html handbook.html # Turn on all the chapters. CHAPTERS?= ${SRCS:M*chapter.sgml} SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./} # XXX The Handbook build currently overflows some internal, hardcoded # limits in pdftex. Until we split the Handbook up, build the PDF # version using ps2pdf instead of pdftex. PS2PDF?= ${PREFIX}/bin/ps2pdf book.tex-pdf: ${TOUCH} book.tex-pdf book.pdf: book.ps ${PS2PDF} book.ps book.pdf pgpkeyring: pgpkeys/chapter.sgml @${JADE} -V nochunks ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC} DOC_PREFIX?= ${.CURDIR}/../../.. # # Handbook-specific variables # .if defined(WITH_PGPKEYS) JADEFLAGS+= -V withpgpkeys .endif .include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/es_ES.ISO8859-1/books/handbook/book.sgml b/es_ES.ISO8859-1/books/handbook/book.sgml index 8627e55a0a..40a4917bfb 100755 --- a/es_ES.ISO8859-1/books/handbook/book.sgml +++ b/es_ES.ISO8859-1/books/handbook/book.sgml @@ -1,349 +1,352 @@ %man; %bookinfo; %freebsd; %translators; %chapters; %authors; %teams; %mailing-lists; %newsgroups; %trademarks; %txtfiles; + + %pgpkeys; ]> Manual de FreeBSD Proyecto de Documentación de FreeBSD Febrero 1999 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 The FreeBSD Documentation Project &bookinfo.legalnotice; &tm-attrib.freebsd; &tm-attrib.3com; &tm-attrib.3ware; &tm-attrib.arm; &tm-attrib.adaptec; &tm-attrib.adobe; &tm-attrib.apple; &tm-attrib.corel; &tm-attrib.creative; &tm-attrib.cvsup; &tm-attrib.heidelberger; &tm-attrib.ibm; &tm-attrib.ieee; &tm-attrib.intel; &tm-attrib.intuit; &tm-attrib.linux; &tm-attrib.lsilogic; &tm-attrib.m-systems; &tm-attrib.macromedia; &tm-attrib.microsoft; &tm-attrib.netscape; &tm-attrib.nexthop; &tm-attrib.opengroup; &tm-attrib.oracle; &tm-attrib.powerquest; &tm-attrib.realnetworks; &tm-attrib.redhat; &tm-attrib.sap; &tm-attrib.sun; &tm-attrib.symantec; &tm-attrib.themathworks; &tm-attrib.thomson; &tm-attrib.usrobotics; &tm-attrib.vmware; &tm-attrib.waterloomaple; &tm-attrib.wolframresearch; &tm-attrib.xfree86; &tm-attrib.xiph; &tm-attrib.general; ¡Bienvenido a FreeBSD!. Este manual cubre la instalación y uso diario de FreeBSD &rel.current;-RELEASE y FreeBSD &rel2.current;-RELEASE. Este manual está en constante evolución y es el resultado del trabajo de muchas personas. Algunas secciones no están completas y otras necesitan ser actualizadas. Si estás interesado en colaborar en este proyecto, envía un mensaje de correo electrónico a &a.doc;. La última versión de este documento está siempre disponible en el servidor World Wide Web de FreeBSD. También está disponible en diferentes formatos y opciones de compresión en el servidor FTP de FreeBSD o en los numerosos mirrors. Si se prefiere disponer de una copia en papel de este manual, se puede adquirir en FreeBSD Mall. También es posible realizar búsquedas en este manual. Primeros pasos Esta parte del manual de FreeBSD es para usuarios y administradores nuevos en FreeBSD. Estos capítulos: Realizan una introducción a FreeBSD. Guían a través de una instalación de FreeBSD. Explican información básica sobre Unix. Explican como instalar la gran cantidad de software de terceros disponible para FreeBSD. Introducen en el manejo de X Window, el sistema de ventanas de &unix; y detallan como configurar un entorno de escritorio más productivo. Se ha intentado minimizar el número de referencias a otras secciones de este documento para evitar el salto entre páginas y facilitar la lectura continuada. Tareas comunes Ahora que se han cubierto los esquemas básicos, parte del Handbook de FreeBSD cubre algunas de las características más usadas de FreeBSD: Introducción a algunas de las aplicaciones de escritorio: navegadores, herramientas de productividad, visores de documentos, etc. Introducción a algunas de las herramientas multimedia de FreeBSD. Explicación de cómo crear un kernel de FreeBSD personalizado para obtener nuevas funcionalidades en el sistema. Descripción en detalle del sistema de impresión tanto en entornos de escritorio como en impresoras conectadas en red. Cómo ejecutar aplicaciones de Linux en FreeBSD. Algunos de los capítulos recomiendan lecturas de capítulos anteriores, lo que se indica al inicio de cada capítulo. Administración del sistema. Los restantes capítulos de este Manual de FreeBSD cubren todos los aspectos de administración de un sistema FreeBSD. Cada capítulo comienza describiendo lo que será aprendido una vez finalizada la lectura, explicando también los conocimientos mínimos necesarios para un entendimiento satisfactorio. Estos capítulos están diseñados para ser leídos cuando se necesita la información. No es necesario leerlos en un determinado orden ni tampoco es necesario leerlos todos antes de comenzar con el uso de FreeBSD. + Comunicaciones en red FreeBSD es uno de los sistemas operativos más usados como servidores en red de alto rendimiento. Los siguientes capítulos cubren: Comunicaciones serie PPP y PPP sobre Ethernet Correo electrónico Servidores de red Otros aspectos avanzados de red Estos capítulos están diseñados para ser leidos cuando sea necesario. No tienen porque leerse en un determinado orden o leerlos todos antes de poder usar FreeBSD en un entorno de red. Apéndices &chap.colophon; diff --git a/es_ES.ISO8859-1/books/handbook/chapters.ent b/es_ES.ISO8859-1/books/handbook/chapters.ent index cbe574728d..03f4095083 100755 --- a/es_ES.ISO8859-1/books/handbook/chapters.ent +++ b/es_ES.ISO8859-1/books/handbook/chapters.ent @@ -1,62 +1,62 @@ - + diff --git a/es_ES.ISO8859-1/books/handbook/mac/chapter.sgml b/es_ES.ISO8859-1/books/handbook/mac/chapter.sgml new file mode 100644 index 0000000000..ffd735ebb0 --- /dev/null +++ b/es_ES.ISO8859-1/books/handbook/mac/chapter.sgml @@ -0,0 +1,2522 @@ + + + + + + + Tom + Rhodes + Escrito por + + + + + Mandatory Access Control + + + Sinopsis + + MAC + + Mandatory Access Control + MAC + + + &os; 5.X introdujo nuevas extensiones de seguridad del + proyecto TrustedBSD basado en el escrito &posix;.1e. Dos de los + mecanismos de seguridad más significativos son las + facilidades de Listas de control de acceso del sistema de archivos + (Access Control Lists,ACLs) y control de acceso + obligatorio (Mandatory Access Control, MAC). + El control de acceso obligatorio permite que nuevos módulos + de control de acceso sean cargados, implementando nuevas + políticas de seguridad. Algunas brindan protecciones de un + angosto subconjunto del sistema, endureciendo un servicio en + particular, mientras otros proveen seguridad etiquetada comprensible + a traveés de todos las áreas y objetos. + La parte obligatoria de la definición proviene del hecho + que la imposición de los controles es realizada por + administradores y el sistema, y no es dejada a la discreción + de los usuarios como se hace con el control de acceso discrecional + (discretionary access control, DAC, los + permisos de archivo y System V IPC estándares + en &os;). + + Este capítulo se enfocará en la estructura + del control de acceso obligatorio (MAC Framework), y un + conjunto de módulos enchufables de políticas de + seguridad habilitando varios mecanismos de seguridad. + + Despues de leer este capítulo, usted sabrá: + + + + Que son los módulos de políticas de seguridad + MAC actualmente incluidos en &os; y sus + mecanismos asociados. + + + + Que implementan los módulos de políticas de + seguridad MAC así como la diferencia + entre una política etiquetada y no etiquetada. + + + + Como configurar eficientemente un sistema para + utilizar la estructura MAC. + + + + Como configurar los diferentes módulos de + políticas de seguridad incluidos con la estructura + MAC. + + + + Como implementar un ambiente más seguro utilizando + la estructura MAC y los ejemplos + mostrados. + + + + Como probar la configuración MAC + para asegurar que la estructura ha sido implementada + correctamente. + + + + Antes de leer este capítulo, usted debería: + + + + Entender las bases de &unix; y &os; + (). + + + + Estar familiarizado + con lo basico de la configuración/compilación + del kernel + (). + + + + Tener cierta familiaridad con seguridad y como + se relaciona con &os; (). + + + + + El uso inadecuado de la + información en este capítulo puede provocar + pérdida de acceso al sistema, irritación de + los usuarios, o inhabilidad para accesar las características + que brinda X11. Aún más importante, + MAC no debe confiarse para asegurar un sistema + completamente. La estructura MAC solo aumenta + las políticas de seguridad existentes; sin prácticas + de seguridad sonadas y revisiones de seguridad constantes el + sistema nunca será completamente seguro. + + También debe notarse que los ejemplos contenidos + dentro de este capítulo son solo eso, ejemplos. No + se recomienda que estas configuraciones en particular sean + desplegadas en un sistema en producción. Implementar + los varios módulos de políticas de seguridad + toma un buen de pensamiento. Alguien que no entiende + completamente como funciona todo puede encontrarse en la + situación de regresar a configurar muchos archivos + y directorios a través de todo el sistema. + + + + Que es lo que no se cubrirá + + Este capitulo cubre un amplio rango de temas de seguridad + relacionados a la estructura MAC; sin embargo, + el desarrollo de nuevos módulos de políticas de + seguridad MAC no serán cubiertos. Un + número de módulos de políticas de seguridad + incluidos con la estructura MAC tienen + características específicas las cuales son provistas + tanto para prueba como para desarrollo de nuevos módulos. + Estos incluyen &man.mac.test.4;, &man.mac.stub.4; y &man.mac.none.4;. + Para más información sobre estos módulos de + políticas de seguridad y los varios mecanismos que brindan, + por favor revise las páginas de manual. + + + + + Términos clave en este capítulo + + Antes de leer este capítulo, se deben explicar + algunos términos clave. Esto tal vez borre cualquier + confusión que pueda ocurrir y evite la indrocucción + abrupta de nueva información y términos. + + + + compartimiento: Un compartimiento + es un conjunto de programas y datos a ser particionados o + separados, en donde a usuarios se les proporciona acceso + explícito a componentes específico de un sistema. + También, un compartimiento representa un agrupamiento, + como un grupo de trabajo, departamento, proyecto o tópico. + Usando compartimientos es posible implementar una política + de seguridad de necesita-saber. + + + + integridad: Integridad, como + un concepto clave, es el nivel de confianza que puede + ser puesto en un dato. Mientras el nivel de integridad + del dato es elevado también lo hace la habilidad + de confiar en ese dato. + + + + etiqueta: Una etiqueta es un + atributo de seguridad el cual puede ser aplicado a + archivos, directorios o a otros componentes en el + sistema. Se puede considerar una estampilla de seguridad; + cuando una etiqueta es colocada en un archivo describe + las propiedades de seguridad para ese archivo específico + y solo permitirá acceso de archivos, usuarios, + recursos, etc. con características de seguridad + similares. El significado e interpretación de valores + de etiquetas depende de la configuración de la + política: mientras algunas políticas pueden + tratar una etiqueta como la representación de + la integridad o secreto de un objeto, otras políticas + pueden usar etiquetas para mantener reglas de acceso. + + + + nivel: El aumento o disminución + de un atributo de seguridad. Si el nivel incrementa, + su seguridad es considerada que se eleva también. + + + + multietiqueta: La propiedad + es una opción del + sistema de archivos la cual puede ser activada en modo + mono usuario usando la utilidad &man.tunefs.8; , durante + el arranque usando el archivo &man.fstab.5; , o durante + la creación de un nuevo sistema de archivos. + Esta opción le permitirá a un administrador + aplicar diferentes etiquetas MAC en + diferentes objetos. Esta opción + solamente aplica a módulos de políticas de + seguridad que soporten etiquetamiento. + + + + objeto: Un objeto o un + objeto de sistema es una entidad a través de + la cual la información fluye bajo la dirección + de un sujeto. + Esto incluye directorios, archivos, campos, pantallas, + teclados, memoria, almacenamiento magnético, + impresoras o cualquier otro dispositivo de + almacenamiento/transporte. Básicamente, un objeto + es un contenedor de datos o un recurso del sistema; + el acceso efectivo a un objeto significa + acceso a los datos. + + + + política: Una colección + de reglas que definen como se van a lograr los objetivos. + Una política usualmente documenta + como ciertos elementos deben ser manejados. Este capítulo + considerará el término + política en este contexto como + política de seguridad; por ejemplo, + una colección de reglas que controlan el flujo de datos e + información y define quién tendrá acceso a + esos datos e información. + + + + sensitividad: Usualmente utilizado + al discutir MLS. Un nivel de sensitividad + es un término usado para describir que tan importante + o secreto debe ser el dato. + Mientras el nivel de sensitividad + del dato es incrementado también lo hace la + importancia del secreto o confidencialidad del dato. + + + + etiqueta única: Una etiqueta + única es cuando todo el sistema de archivos + utiliza una etiqueta para imponer control de acceso + sobre el flujo de datos. Cuando un sistema de archivos + tiene esto activado, lo cual es en cualquier momento + que la opción + no está activada, todos los archivos concordarán + a la misma configuración de etiqueta. + + + + sujeto: Un sujeto es cualquier + entidad activa que provoca que la información + fluya entre objetos; por ejemplo, + un usuario, usuario procesador, proceso de sistema, etc. + En &os;, esto es casi siempre un hilo actuando en un + proceso en beneficio de un usuario.. + + + + + + Explicación de MAC + + Con todos estos nuevos terminos en mente, considere + como la estructura MAC aumenta la + seguridad de el sistema como un todo. Los varios módulos + de políticas de seguridad provistos por la estructura + MAC pueden ser usados para proteger + la red y los sistemas de archivos, bloquear usuarios de + accesar ciertos puertos y sockets, y más. Quizás + el mejor uso de los módulos de políticas es el + de mezclarlos juntos, por medio del cargado de varios módulos + de políticas de seguridad al mismo tiempo para un + ambiente de seguridad multicapa. En un ambiente de seguridad + multicapa, múltiples módulos de políticas + están en efecto para mantener la seguridad. Esto es diferente + a un política de endurecimiento, la cual tipicamente endurece + elementos de un sistema que es utilizado solamente para propositos + específicos. El único lado malo es la carga + administrativa en casos de sistemas de archivos con etiquetas + múltiples, configuraciones de control de acceso a red + usuario por usuario, etc. + + Estas desventajas son mínimas cuando se comparan + con el efecto perdurable de la estructura; por ejemplo, la + habilidad de seleccionar y elegir que políticas son + requeridas para una configuración específica mantiene + la sobrecarga de ejecución abajo. La reducción de + soporte para políticas innecesarias puede elevar la + ejecución total del sistema así como también + ofrecer flexibilidad de elección. Una buena + implementación podría considerar los requerimientos + de seguridad total e implementar efectivamente los varios + módulos de políticas de seguridad ofrecidos por la + estructura. + + Así un sistema utilizando una propiedad + MAC debería al menos garantizar que a un + usuario no se le permitirá cambiar atributos de seguridad a + su antojo; todos las utilidades de usuario, programas y scrips deben + trabajar dentro de las restricciones de las reglas de acceso + provistas por el módulo de políticas de seguridad + seleccionado; y ese control total de las reglas de acceso + MAC están en las manos del administrador + del sistema. + + Es deber solamente del administrador de sistema seleccionar + cuidadosamente los módulos de políticas de seguridad + correctos. Algunos ambientes pueden necesitar limitar el control + de acceso a través de la red; en estos casos los + módulos de políticas &man.mac.portacl.4;, + &man.mac.ifoff.4; e incluso &man.mac.biba.4; pueden ser un buen + punto de inicio. En otros casos, confidencialidad estricta de + objetos del sistema de archivos puede ser requerida. Módulos + de políticas como &man.mac.bsdextended.4; y &man.mac.mls.4; + existen para este propósito. + + Desiciones de política pueden hacerse basándose + en la configuración de red. Quizás solo + a ciertos usuarios se les debería permitir acceso + a facilidades proporcionadas por &man.ssh.1; para + accesar la red o Internet. El módulo de políticas + &man.mac.portacl.4; podría ser la opción para estas + situaciones. Pero, ¿que debería hacerse en el caso de sistemas + de archivos?, ¿los accesos a ciertos directorios deberían ser + cortados de otros grupos o usuarios específicos?, ¿o + deberíamos limitar accesos a usuarios o utilidades a archivos + específicos poniendo ciertos objetos como clasificados? + + En el caso de sistemas de archivo, el acceso a los + objetos puede ser considerado confidencial a algunos + usuarios, pero no a otros. Por ejemplo, un gran grupo de + desarrolladores puede ser dividido en pequeños grupos + de individuos. Desarrolladores en el proyecto A no se les + debe permitir accesar objetos escritos por desarrolladores + del proyecto B. Pero pueden necesitar accesar objetos + creados por desarrolladores del proyecto C; esa es una + situación complicada. Utilizando los diferentes + módulos de políticas de seguridad proporcionados + por la estructura MAC; los usuarios pueden + ser divididos en estos grupos y entonces otorgarles acceso + a las áreas apropiadas sin temor de filtrado de + información. + + Así, cada módulo de poliíticas de seguridad + tiene un modo único de tratar con la seguridad de un sistema en + general. La selección de módulo debería basarse + en una poliítica de seguridad bien planeada. En muchos casos, + la poliítica general tal vez necesite ser revisada y + reimplementada en el sistema. Entender los diferentes módulos + de poliíticas de seguridad ofrecidos por la estructura + MAC le ayudará a los administradores a + elegir las mejores poliíticas para sus situaciones. + + El kernel por omisión de &os; no incluye la opción + para la estructura MAC; así que la + siguiente opción del kernel debe ser agregada antes de + usar cualquiera de los ejemplos o la información de + este capítulo: + + options MAC + + Y el kernel requerirá una recosntrucción y + una reinstalación. + + + Mientras varias páginas de manual para módulos + de políticas MAC afirman que pueden + ser construidos dentro del kernel, es posible cortar el acceso + del sistema a la red y más. Implementar MAC + es muy parecido a implementar un firewall, se debe tener + cuidado en prevenir que el sistema quede bloqueado totalmente. + La habilidad de retornar a una configuración previa + debería ser considerada durante la implementación + de MAC, remotamente debe realizarse con + precaución extrema. + + + + + Entendiendo etiquetas MAC + + Una etiqueta MAC es un atributo de + seguridad el cual puede ser aplicado a sujetos y objetos + a través del sistema. + + Al aplicar una etiqueta, el usuario debe ser capaz de + comprender, exactamente, lo que se está haciendo. + Los atributos dsponibles en un objeto dependen del módulo + de política cargado, y esos módulos de política + interpretan sus atributos de diferentes maneras. Si la + configuración es inapropiada debido a falta de + compresnsión, o inhabilidad de comprender las implicaciones, + el resultado puede ser lo inesperado y tal vez, la conducta no + deseada del sistema. + + La etiqueta de seguridad en un objeto es utilizada como + parte de una desición de control de acceso de seguridad + por una política. Con algunas políticas, la + etiqueta por si misma contiene toda la información + necesaria para hacer una desición; en otros modelos, + las etiquetas pueden ser procesadas como parte de un conjunto + más grande de reglas, etc. + + Por ejemplo, activando la etiqueta de biba/low + en un archivo representará una etiqueta mantenida por el + módulo de políticas de seguridad Biba, con un valor + de low. + + Algunos módulos de políticas que soportan la + propiedad de etiquetado en &os; ofrecen tres etiquetas + específicas predefinidas. Estas son las etiquetas + low, high, y equal. Aunque refuerzan el control de acceso de + una manera diferente con cada módulo de políticas, + puede estar seguro que la etiqueta low será la + configuración más baja, la etiqueta equal + provocará que el sujeto o el objeto sea deshabilitado o no + sea afectado, y la etiqueta high impondrá la + configuración más alta disponible en los + módulos de políticas Biba y MLS. + + + Dentro de ambientes de sistemas de archivos con etiqueta + única, solamente una etiqueta puede ser utilizada en objetos. + Esto impondrá un conjunto de permisos de acceso a + través del sistema entero y en muchos ambientes puede ser + todo lo que se requiera. Existen algunos casos donde etiquetas + múltiples pueden ser activadas en objetos o sujetos en el + sistema de archivos. Para esos casos, la opción + puede ser pasada a &man.tunefs.8;. + + en el caso de Biba y MLS, una etiqueta + numérica puede activarse para indicar el nivel preciso + de control jerárquico. Este nivel numérico es + utilizado para particionar o para ordenar información + en difeentes grupos de digamos, clasificación permitiendo + acceso solamente a ese grupo o a un nivel de grupo superior. + + En la mayoría de los casos el administrador solo + estará configurando una etiqueta única para + utilizar a través del sistema de archivos. + + ¡Un momento, esto es similar a DAC! + Pensé que MAC daba control estrictamente + al administrador. Esa declaración todavía + se mantiene como verdadera, hasta cierto grado ya que + root es el único en control y el que + configura las políticas para que los usuarios sean colocados + en las categorías/niveles apropiados. Desafortunadamente, + muchos módulos de políticas pueden restringir al + usuario root también. Control + básico sobre objetos serán entonces liberados al + grupo, pero root puede revocar o modificar + las configuraciones en cualquier momento. Este es el modelo + jerárquico/aclaramiento cubierto por políticas tales + como Biba y MLS. + + + Configuración de etiquetas + + Virtualmente todos los aspectos de configuración de + módulos de políticas de etiquetas serán + realizados usando utilidades del sistema base. Estos comandos + brindan una interfaz simple para la configuración de + objetos o sujetos o para manipulación y verificación + de la configuración. + + Toda la configuración puede hacerse usando + las utilidades &man.setfmac.8; y &man.setpmac.8;. + El comando setfmac es usado para + activar etiquetas MAC en objetos del + sistema mientras que el comando setpmac + es usado para activar etiquetas en sujetos del sistema. + Observe: + + &prompt.root; setfmac biba/high test + + Si no ocurrió algún error con el comando de + arriba, se nos regresará el prompt. El único momento + en que estos comandos no son silentes es cuando se produce + un error; similarmente a los comandos + &man.chmod.1; y &man.chown.8;. En algunos casos el error + puede ser un Permission denied y es + obtenido usualmente cuando la etiqueta está siendo + activada o modificada en un objeto el cual está + restringido.Otras condiciones pueden producir + fallas diferentes. Para ilustrar, el archivo puede no ser + propiedad del usuario tratando de reetiquetar el objeto, el + objeto puede que no exista o que sea de solo lectura. Una + política obligatoria no permitirá al proceso + reetiquetar el archivo, debido tal vez a una propiedad del + archivo, una propiedad del proceso o una propiedad del + valor de la nueva etiqueta propuesta. Por ejemplo: un usuario + corriendo a integridad baja trata de cambiar una etiqueta + de un archivo con integridad baja (low) a una etiqueta de + integridad alta (high). El administrador + puede usar los siguientes comandos para lograr esto: + + &prompt.root; setfmac biba/high test +Permission denied +&prompt.root; setpmac biba/low setfmac biba/high test +&prompt.root; getfmac test +test: biba/high + + Como vemos arriba, setpmac + puede usarse para anular las configuraciones del módulo de + políticas asignando una etiqueta diferente al proceso + invocado. La utilidad + getpmac es utilizada generalmente con procesos + en ejecución, como sendmail: + aunque toma un identificador de proceso en + lugar de un comando la lógica es extremadamente + similar. Si usuarios tratan de manipular un archivo al + que no está a su acceso, dependiendo de las + reglas del módulo de políticas cargado, + el error + Operation not permitted será + desplegado por la función mac_set_link. + + + + Tipos comunes de etiquetas + + Para los módulos &man.mac.biba.4;, &man.mac.mls.4; + y &man.mac.lomac.4;, se tiene la posibilidad de asignar + etiquetas simples. Estas toman la forma de high, + equal y low, a continuación una breve descripción + de lo que estas etiquetas brindan: + + + + La etiqueta low es considerada + la configuración de etiqueta más baja que + un objeto o sujeto puede tener. Activando esto en + objetos o sujetos bloqueará su acceso a objetos + o sujetos marcados como high. + + + + La etiqueta equal solo debería + ponerse en objetos considerados excluidos de la + política. + + + + La etiqueta high proporciona a un + objeto o sujeto la configuración más alta + posible. + + + + Con respeto a cada módulo de políticas, cada + una de esas configuraciones establecerá una directiva + de flujo de información diferente. Leyendo las páginas + de manual pertinentes le explicarán en mayor medida + las cualidades de las configuraciones de estas etiquetas + genéricas. + + + Configuración avanzada de etiquetas + + Números de grado numérico usados por + comparación:compartimiento+compartimiento; así + lo siguiente: + + biba/10:2+3+6(5:2+3-20:2+3+4+5+6) + + Puede ser interpretado como: + + Etiqueta de política Biba/Grado 10 + :Compartimientos 2, 3 y 6: + (grado 5 ...) + + En este ejemplo, el primer grado podría ser + considerao el grado efectivo con + compartimientos efectivos, el segundo + grado es el grado bajo y el último es el grado + alto. En la mayoría de configuraciones estas + opciones no serán utilizadas; de hecho se ofrecen + para configuraciones más avanzadas. + + Cuando se aplica a objetos del sistema, solo tendrán + un grado/compartimiento actual tanto en oposición a sujetos + del sistema como reflejen el rango de derechos disponibles + en el sistema, e interfaces de red, donde sean utilizados + para control de acceso. + + El grado y compartimientos en un par sujeto y objeto + son usados para construir una relación referida + como dominante, en la cual un sujeto domina + un objeto, el objeto domina al sujeto, ninguno domina al + otro, o ambos se dominan. El caso ambos dominan + ocurre cuando las dos etiquetas son iguales. Debido a la + naturaleza de flujo de información de Biba, usted + tiene derecho a un conjunto de compartimientos, + necesita saber, que pueden corresponder + a proyectos, pero los objetos también tiene un + conjunto de compartimientos. + Los usuarios deben de subactivar sus derechos usando + su o setpmac para + poder accesar objetos en un compartimiento desde el cual + no estén restringidos. + + + + + Configuraciones de usuarios y etiquetas + + Los mismos usuarios requieren tener etiquetas para + que sus archivos y procesos puedan interactuar + adecuadamente con la política de seguridad + definida en el sistema. Esto se configura a través + del archivo login.conf mediante el + uso de clases de login. Cada módulo de políticas + que utiliza etiquetas implementará las configuraciones + de clases de usuario. + + Una entrada de ejemplo conteniendo cada configuración + de módulo de políticas es desplegado abajo: + + default:\ + :copyright=/etc/COPYRIGHT:\ + :welcome=/etc/motd:\ + :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ + :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\ + :manpath=/usr/share/man /usr/local/man:\ + :nologin=/usr/sbin/nologin:\ + :cputime=1h30m:\ + :datasize=8M:\ + :vmemoryuse=100M:\ + :stacksize=2M:\ + :memorylocked=4M:\ + :memoryuse=8M:\ + :filesize=8M:\ + :coredumpsize=8M:\ + :openfiles=24:\ + :maxproc=32:\ + :priority=0:\ + :requirehome:\ + :passwordtime=91d:\ + :umask=022:\ + :ignoretime@:\ + :label=partition/13,mls/5,biba/10(5-15),lomac10[2]: + + La opción label es usada para + activar la etiqueta de clase de usuario por omisión + la cual será impuesta por MAC. + A los usuarios no se les permitirá nunca modificar + este valor, así pueda ser considerado no óptimo + para el caso del usuario. En un configuración real, + sin embargo, el administrador nunca deseará habilitar + todos los módulos de políticas. + Se recomienda que el resto de este capítulo sea revisado + antes de que cualquiera de estas configuraciones sea implementada. + + + + Los usuarios pueden cambiar su etiqueta despues del + login inicial; sin embargo, este cambio está sujeto + a la restricción de la política. + El ejemplo de arriba le dice a la política Biba + que la integridad mínima de un proceso es 5, su + máximo es 15, pero la etiqueta por omisión + efectiva es 10. El proceso correrá a 10 hasta que + elija cambiar de etiqueta, quizás el usuario + utilice el comando setpmac, el cual será restringido + por Biba a el rango activado al momento de login. + + + En todos los casos, despues de + un cambio a login.conf, la + base de datos de capacidades de clases de login debe + ser reconstruida usando cap_mkdb + y esto será reflejado a lo largo de cada + ejemplo y discusión futura. + + Es útil notar que muchos sitios pueden + tener un grán número de usuarios en + particular que requieren varias clases de usuarios + diferentes. La planeación profunda se requiere + ya que esto puede tornarse extremadamente difícil + de administrar. + + Versiones futuras de &os; incluirán una nueva + manera de tratar con el mapeo de usuarios a etiquetas; + de todas maneras, esto no estará disponible hasta + despues de &os; 5.3. + + + + Interfaces de red y configuración de etiquetas + + Se pueden colocar etiquetas en interfaces de red también + para ayudar a controlar el flujo de datos a través de + la red. En todos los casos éstas funcionan de la misma + manera que las políticas funcionan con respecto + a objetos. Los usuarios con configuraciones altas en + biba, por ejemplo, no se les permitirá + accesar interfaces de red con una etiqueta de low. + + La puede ser pasada a + ifconfig al activar la etiqueta + MAC en interfaces de red. Por + ejemplo: + + &prompt.root; ifconfig bge0 maclabel biba/equal + + activará la etiqueta MAC de + biba/equal en la interfaz &man.bge.4;. + Cuando se está utilizando una configuración + similar a + biba/high(low-high) la etiqueta entera + debería ser entrecomillada; de otra manera se + retornará un error. + + Cada módulo de políticas que soporta + etiquetamiento posee un sintonizable el cual puede ser + usado para deshabilitar la etiqueta MAC + en interfaces de red. Configurando la etiqueta a + tendrá un efecto similar. + Revise la salida de sysctl, las páginas + de manual de políticas, o incluso la información + encontrada má adelante en este capítulo para + esos sintonizables. + + + + + ¿Etiqueta única o miltietiqueta? + + Por omisión el sistema usará la + opción . Pero, ¿que + significa esto para el administrador?, existen varias + diferencias las cuales, por su propio derecho, ofrecen + pros y contras a la flexibilidad en el modelo de + seguridad de los sistemas. + + La opción solo + permite una etiqueta, para ilustrar, biba/high + para ser usado para cada objeto o sujeto. Brinda una menor + carga de administración pero decrementa la flexibilidad + de políticas que soportan etiquetado. Muchos administradores + pueden querer utilizar la opción + en sus políticas de seguridad. + + La opción le permitirá + a cada objeto o sujeto tener su propia etiqueta MAC + independiente en lugar de la opción + estándar la cual solo + permitirá una etiqueta en toda la partición. La + opciones de etiqueta y + solo se requieren para las + políticas que implementan la propiedad de etiquetado, + incluyendo las políticas Biba, Lomac, MLS + y SEBSD. + + En muchos casos, la puede que no + se necesite activar. Considere la siguiente situación y + el siguiente modelo de seguridad: + + + + servidor de Web &os; usando la estructura + MAC y una mezcla de las + diferentes políticas. + + + + Esta máquina solo requiere una etiqueta, + biba/high, para todo en el sistema. + Aquí el sistema de archivos no requerirá + la opción ya que + una etiqueta única estará siempre en + efecto unicamente. + + + + Pero, esta máquina será un servidor web + y debería ejecutar el servidor web en + biba/low para prevenir capacidades de + escritura. La política Biba y su funcionamiento + serán discutidos más adelante, por eso si el + comentario anterior fue dificil de interpretar solo continue + leyendo y regrese despues. El servidor podría utilizar + una partición separada activada a + biba/low para la mayoría o para todo + su estado de ejecución. Faltan muchas cosas en este + ejemplo, como las restricciones en datos, configuración + y propiedades de usuarios; de todas maneras, este es solo un + ejemplo rápido para probar el punto mencionado. + + + + Si alguna de las políticas de no etiquetado + se van a utilizar, entonces la opción + nunca sería requerida. Esto + incluye las políticas seeotheruids, + portacl y partition. + + Debería notarse también que usando + con una partición y + estableciendo un modelo de seguridad basado en la + funcionalidad puede abrir las + puertas para una carga administrativa mayor ya que todo + en el sistema de archivos tendría una etiqueta. + Esto incluye directorios, archivos e incluso nodos de + dispositivo. + + El siguiente comando activará + en el sistema de archivos para tener etiquetas múltiples. + Esto solo puede hacerse en modo mono usuario: + + &prompt.root; tunefs -l enable / + + Esto no es un requerimiento para el sistema de + archivos swap. + + + Algunos usuarios han experimentado problemas + activando la bandera en la + partición raíz. + Si este es el caso, por favor revise la + de este capítulo. + + + + + Controlando MAC con sintonizables + + Sin ningún módulo cargado, hay todavía + algunas partes de MAC las cuales pueden + ser configuradas utilizando la interfaz sysctl. + Estos sintonizables son descritos abajo y en todos los + casos el número uno (1) significa habilitado + mientras que el número cero (0) significa + deshabilitado: + + + + security.mac.enforce_fs tiene el valor + uno (1) por omisión e impone políticas + MAC del sistema de archivos en el sistema + de archivos. + + + + security.mac.enforce_kld tiene el valor + uno (1) por omisión e impone políticas + MAC de enlazado de kernel en el enlazador + dinámico del kernel (ver &man.kld.4;). + + + + security.mac.enforce_network tiene el valor + uno (1) por omisión e impone políticas + MAC de red. + + + + security.mac.enforce_pipe tiene el valor + uno (1) por omisión e impone políticas + MAC en pipes. + + + + security.mac.enforce_process tiene el valor + uno (1) por omisión e impone políticas + MAC en procesos que utilizan + comunicación inter-procesos. + + + + security.mac.enforce_socket tiene el valor + uno (1) por omisión e impone políticas + MAC en sockets (ver la p´gina de manual + &man.socket.2;). + + + + security.mac.enforce_system tiene el valor + uno (1) por omisión e impone políticas + MAC en actividades del sistema tales como + contabilidad y reinicio. + + + + security.mac.enforce_vm tiene el valor + uno (1) por omisión e impone políticas + MAC en la memoria virtual del sistema. + + + + + Cada política u opción MAC + soporta sintonizables. Estas usualmente cuelgan del + árbol + security.mac.<policyname>. + Para visualizar todos los sintonizables de MAC + utilice el siguiente comando: + + &prompt.root; sysctl -da | grep mac + + + Esto debe ser interpretado como si todas las + políticas básicas MAC + están impuestas por omisión. + Si los módulos fueron construidos en el kernel + el sistema podría estar extremadamente cerrado + y muy probablemente sin poder comunicarse con la red + local o conectar a Internet, etc. Debido a esto la + construcción de los módulos dentro del + kernel no es completamente recomendable. No porque + limite la habilidad de deshabilitar funciones al vuelo + con sysctl, pero le permite al + administrador cambiar instantaneamente las políticas + de un sistema sin el requerimiento de recosntruir y + reinstalar un nuevo sistema. + + + + + Configuración de módulo + + Cada módulo incluido con la estructura MAC + puede ser ya sea compilado en el kernel como se notó arriba + o cargado como un módulo ejecutable del kernel. + El método recomendado es agregar el nombre del + módulo al archivo + /boot/loader.conf para que se cargue + durante la operación inicial de arranque. + + Las siguientes secciones discutirán los + varios módulos MAC y cubrirán + sus propiedades. + Implementarlos en un ambiente específico también + será una consideración de este capítulo. + Algunos módulos soportan el uso de etiquetamiento, + el cual controla accesos mediante la imposición de + una etiqueta como esto es permitido y esto no. + Un archivo de configuración de etiqueta puede controlar + como se pueden accesar archivos, se dan las comunicaciones + de red y más. La sección previa mostró como + la bandera podía activarse + en sistemas de archivos para habilitar control de acceso + por archivo o por partición. + + Una configuración de etiqueta única impondría + solamente una etiqueta a través del sistema, es por eso + que la opción tunefs es llamada + . + + + El módulo MAC seeotheruids + + + MAC See Other UIDs Policy + + Nombre de módulo: + mac_seeotheruids.ko + + Línea de configuración de Kernel: + options MAC_SEEOTHERUIDS + + Opción de arranque: + mac_seeotheruids_load="YES" + + El módulo &man.mac.seeotheruids.4; imita los + sintonizables de sysctl + security.bsd.see_other_uids + y security.bsd.see_other_gids. + Esta opción no requiere activar ninguna etiqueta + antes de la configuración y puede operar de + manera transparente con los otros módulos. + + Despues de cargar el módulo, los + siguientes sintonizables de sysctl + pueden utilizarse para controlar las opciones: + + + + security.mac.seeotheruids.enabled + habilitará las opciones del módulo, con + las opciones por omisión. Estas opciones por + omisión le negarán a los usuarios la + habilidad de ver procesos y sockets propiedad de + otros usuarios. + + + + + security.mac.seeotheruids.specificgid_enabled + permitirá a un cierto grupo ser exentados de esta + política. Para exentar grupos específicos de + esta política, utilice el sintonizable de + sysctl security.mac.seeotheruids.specificgid=XXX. + En el ejemplo de arriba, XXX + debería ser reemplazado con el ID numérico a ser + exentado. + + + + + security.mac.seeotheruids.primarygroup_enabled + es usado para exentar grupos primarios específicos de + esta política. Cuando utilice este sintonizable no + se debe activar + security.mac.seeotheruids.specificgid_enabled. + + + + + + + El módulo MAC bsdextended + + + MAC + File System Firewall Policy + + Nombre de módulo: + mac_bsdextended.ko + + Línea de configuración de Kernel: + options MAC_BSDEXTENDED + + Opción de arranque: + mac_bsdextended_load="YES" + + El módulo &man.mac.bsdextended.4; impone el + fireall del sistema de archivos. La política de + este módulo brinda una extensión al modelo + estándar de permisos del sistema de archivos, + permitiendo a un administrador un conjunto de reglas + tipo firewall para proteger archivos, utilidades y directorios + en la jerarquía del sistema de archivos. + + La política puede ser creada mediante una utilidad, + &man.ugidfw.8;, que tiene una sintaxis similar a la de + &man.ipfw.8;. Se pueden escribir más herramientas + utilizando las funciones en la librería + &man.libugidfw.3;. + + Se debe tener extrema precaución al trabajar con + este módulo, el uso incorrecto puede bloquear el + acceso a ciertas partes del sistema de archivos. + + + Ejemplos + + Despues de que el módulo &man.mac.bsdextended.4; ha + sido cargado, el siguiente comando puede ser usado para + listar la regla de configuración actual: + + &prompt.root; ugidfw list +0 slots, 0 rules + + Como se esperaba, no existen reglas definidad. Esto + significa que todo es completamente accesible. Para crear + una regla que bloqueará todos los accesos de + usuarios pero dejará inafectado a + root simplemente ejecute + el siguiente comando: + + &prompt.root; ugidfw add subject not uid root new object not uid root mode n + + + En releases previas a &os; 5.3, el + parámetro add no existía. + En esos casos set deberí ser + utilizado en su lugar. Vea abajo para un ejemplo de + comando. + + Esta es una muy mala idea ya que bloqueará a + todos los usuarios de utilizar incluso los comandos más + simples, como ls. Una lista más + patriotica de reglas puede ser: + + &prompt.root; ugidfw set 2 subject uid user1 object uid user2 mode n +&prompt.root; ugidfw set 3 subject uid user1 object gid user2 mode n + + Esto bloqueará todos los accesos, incluyendo + listado de directorios, al directorio home de + user2 + desde el nombre de usuario user1. + + En lugar de user1, se puede pasar + . + Esto impondrá las mismas restricciones de acceso de + arriba para todos los usuarios en lugar de solo uno. + + + El usuario root no será + afectado por estos cambios. + + + Esto debe proporcionar una idea general de + como se puede utilizar el módulo + &man.mac.bsdextended.4; para ayudar a fortificar + un sistema de archivos. Para mayor información, + vea las páginas de manual + &man.mac.bsdextended.4; y &man.ugidfw.8;. + + + + + El módulo MAC ifoff + + + MAC Interface Silencing Policy + + Nombre de módulo: mac_ifoff.ko + + Línea de configuración de Kernel: + options MAC_IFOFF + + Opción de arranque: mac_ifoff_load="YES" + + + El módulo &man.mac.ifoff.4; existe solamente + para deshabilitar interfaces de red al vuelo y evitar que + interfaces de red sean levantadas durante el arranque + inicial del sistema. No requiere activar ninguna etiqueta + en el sistema, ni tiene dependencias de otros + módulos MAC. + + La mayoría del control es hecho + a través de los sintonizables de sysctl + listados abajo. + + + + security.mac.ifoff.lo_enabled + habilitará/deshabilitará todo el tráfico + en la interfaz loopback (&man.lo.4;). + + + + security.mac.ifoff.bpfrecv_enabled + habilitará/deshabilitará todo el tráfico + en la interfaz del filtro de paquetes de Berkeley + (&man.bpf.4;) + + + + security.mac.ifoff.other_enabled + habilitará/deshabilitará todo el tráfico + en todas las demás interfacez. + + + + Uno de los usos más comunes de &man.mac.ifoff.4; es + el monitoreo de red en un ambiente donde el tráfico de + red no debe ser permitido durante la secuencia de arranque. + Otro uso sugerido puede ser escribir un script el cual + utilice + security/aide para bloquear + el tráfico de red automaticamente si encuentra archivos + nuevos o alterados en directorios protegidos. + + + + El módulo MAC portacl + + + MAC Port Access Control List Policy + + Nombre de módulo: mac_portacl.ko + + Línea de configuración de Kernel: + MAC_PORTACL + + Opción de arranque: + mac_portacl_load="YES" + + El módulo &man.mac.portacl.4; es utilizado para + limitar el amarre a puertos locales TCP y + UDP usando una variedad de variables + sysctl. En esencia &man.mac.portacl.4; hace + posible permitir a usuarios que no son root + amarrarse a puertos privilegiados específicos, por + ejemplo, puertos menores a 1024. + + Una vez cargado, este módulo habilitará + la política MAC en todos los + sockets, Los siguientes sintonizables están + disponibles: + + + + security.mac.portacl.enabled + habilitará/deshabilitará la política + completamente.Debido a un error, la variable + de sysctl + security.mac.portacl.enabled no + funcionará en &os; 5.2.1 o releases + anteriores. + + + + security.mac.portacl.port_high + especificará el número de puerto más + elevado para el que &man.mac.portacl.4; habilitará + protección. + + + + security.mac.portacl.suser_exempt + exentará cuando esté a un valor diferente + de cero, al usuario root de esta + política. + + + + security.mac.portacl.rules + especificará la política actual mac_portacl; + ver abajo. + + + + La política actual mac_portacl, + como se especifica en la variable de sysctl + security.mac.portacl.rules + es un texto de cadena de la forma: + rule[,rule,...] con tantas reglas + como se necesiten. Cada regla es de la forma: + idtype:id:protocol:port. El + parámetro + idtype puede ser + uid o gid e interpreta + el parámetro id ya sea como + id de usuario o id de grupo, respectivamente. + El parámetro + protocol es usado para determinar + si la regla debe aplicar a TCP o + UDP configurando el parámetro a + tcp o udp. + El parámetro final port es el + número de puerto al que se le permitirá + amarrarse al usuario o grupo especificado. + + + Ya que las reglas son interpretadas directamente por + el kernel, solo valores numéricos pueden utilizarse + para los parámetros ID de usuario, ID de grupo y puerto. + Ejemplo, nombres de usuario, grupo y servicios de puerto + no pueden ser usados. + + + Por omisión, en sistemas tipo &unix;, puertos + menores que 1024 solo pueden ser usados o amarrados a + procesos privilegiados, ejemplo, aquellos que corren + como root. Para que + &man.mac.portacl.4; permita que procesos no privilegiados + se amarren a puertos debajo de 1024 esta restricción + estándar de &unix; debe ser deshabilitada. Esto puede + lograrse activando a cero las variables de &man.sysctl.8; + net.inet.ip.portrange.reservedlow y + net.inet.ip.portrange.reservedhigh. + + Vea los ejemplos abajo o revise la página de + manual &man.mac.portacl.4; para mayor información. + + + Ejemplos + + Los siguientes ejemplos deben iluminar la discusión + de arriba un poco mejor: + + &prompt.root; sysctl security.mac.portacl.port_high=1023 +&prompt.root; sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0 + + Primero configuramos &man.mac.portacl.4; para cubrir + los puertos privilegiados estándar y deshabilitar + las restricciones de amarre normales &unix;. + + &prompt.root; sysctl security.mac.portacl.suser_exempt=1 + + El usuario root no debe ser invalidado + por esta política, así que ponga + security.mac.portacl.suser_exempt a un valor + diferente de cero. El módulo &man.mac.portacl.4; + ha sido ahora configurado para comportarse de la misma + manera en que lo hacen los sistemas tipo &unix; por + omisión. + + &prompt.root; sysctl security.mac.portacl.rules=uid:80:tcp:80 + + Permite al usuario con UID 80 + (normalmente el usuario www) amarrarse + al puerto 80. Esto puede usarse para permitir al usuario + www ejecutar un servidor web sin tener + siquiera privilegios de root. + + &prompt.root; sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995 + + Permite al usuario con UID de + 1001 amarrarse al puerto TCP 110 + (pop3) y 995 (pop3s). + Esto le permitirá a este usuario iniciar un + servidor que acepte conexiones en los puertos + 110 y 995. + + + + + Políticas MAC con propiedades de etiquetamiento + + Las siguientes secciones discutirán políticas + MAC que utilizan etiquetas. + + De aquí en adelante este capítulo se enfocará + en las propiedades de &man.mac.biba.4;, &man.mac.lomac.4;, + &man.mac.partition.4;, y &man.mac.mls.4;. + + + Este es solamente un ejemplo de configuración y + no debe ser considerado para una implementación en + producción. El objetivo es documentar y mostrar la + sintaxis así como los ejemplos para la + implementación y prueba. + + + Para que estas políticas funcionen correctamente + se deben hacer varias preparaciones. + + + Preparación para políticas de + etiquetamiento + + Los siguientes cambios son requeridos en + el archivo login.conf: + + + + Una clase insecure, u otra + clase de tipo similar, debe ser agregada. + La clase de login insecure + no es requerida y solo es utilizada aquícomo un ejemplo; + configuraciones diferentes pueden utilizar otro nombre + de clase. + + + La clase insecure debe tener + las siguientes propiedades y definiciones. Varias + de estas pueden ser alteradas pero la línea + que define la etiqueta por omisión es un + requerimiento y debe permanecer. + + insecure:\ + :copyright=/etc/COPYRIGHT:\ + :welcome=/etc/motd:\ + :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ + :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\ + :manpath=/usr/share/man /usr/local/man:\ + :nologin=/usr/sbin/nologin:\ + :cputime=1h30m:\ + :datasize=8M:\ + :vmemoryuse=100M:\ + :stacksize=2M:\ + :memorylocked=4M:\ + :memoryuse=8M:\ + :filesize=8M:\ + :coredumpsize=8M:\ + :openfiles=24:\ + :maxproc=32:\ + :priority=0:\ + :requirehome:\ + :passwordtime=91d:\ + :umask=022:\ + :ignoretime@:\ + :label=partition/13,mls/5,biba/low: + + El comando &man.cap.mkdb.1; necesita ser ejecutado + en &man.login.conf.5; antes de que cualquiera + de los usuarios puede ser cambiado a la nueva + clase. + + El usuario root debe también + ser colocado en un clase de login; de otra manera, casi + cualquier comando ejecutado por root + requerirá el uso de + setpmac. + + + La reconstrucción de la base de datos + de login.conf puede causar + algunos errores posteriores con la clase daemon. + Simplemente descomentando la cuenta daemon y + reconstruyendo la base de datos debería + aliviar estos síntomas. + + + + + Asegurarse que todas las particiones + en las que el etiquetamiento MAC + será implementado soporten + . + Debemos hacer esto porque muchos de los ejemplos + aquí mostrados contienen diferentes + etiquetas para propósitos de prueba. + Revise la salida del comando mount + como medida precautoria. + + + + Cambie cualquier usuario que tendrá los más + altos mecanismos de seguridad impuestos a la nueva clase + de usuario. Una ejecución rápida de + &man.pw.8; o &man.vipw.8; debe hacer el truco. + + + + + + + El módulo MAC partition + + + MAC Process Partition Policy + + Nombre de módulo: + mac_partition.ko + + Línea de configuración de Kernel: + options MAC_PARTITION + + Opción de arranque: + mac_partition_load="YES" + + La política &man.mac.partition.4; dejará + caer procesos en particiones específicas + basandose en su etiqueta MAC. Piense en + ello como un tipo especial de &man.jail.8;, aunque eso es + dificilmente una comparación meritoria. + + Este es un módulo que debe ser agregado al + archivo &man.loader.conf.5; para que cargue y + habilite la política durante el proceso + de arranque. + + La mayoría de configuraciones para esta + política son realizadas usando la utilidad + &man.setpmac.8; que será explicada abajo. + El siguiente sintonizable de sysctl + está disponible para esta política: + + + + security.mac.partition.enabled + habilitará la imposición de particiones + de procesos MAC. + + + + Cuando esta política está habilitada, los + usuarios solo tendán permitido ver sus procesos pero + no tendán permitida la posibilidad de trabajar con + ciertas utilidades. Por ejemplo, un usuario en la + clase insecure de arriba no tendá + permitido accesar el comando top así + como muchos otros comandos que necesitan engendrar un + proceso. + + Para activar o tirar utilidades dentro de una etiqueta + de partición, use la utilidad setpmac: + + &prompt.root; setpmac partition/13 top + + Esto agregará el comando top + a la etiqueta activada en usuarios en la clase + insecure. Note que todos los procesos + engendrados por usuarios en la clase insecure + permanecerán en la etiqueta partition/13. + + + + Ejemplos + + El siguiente comando le mostrará la etiqueta de + partición y la lista de procesos: + + &prompt.root; ps Zax + + El siguiente comando permitirá la visualización + de etiqueta de partición de procesos de otro usuario + y que usuario está ejecutando procesos actualmente: + + &prompt.root; ps -ZU trhodes + + + Los usuarios pueden ver procesos en la etiqueta de + root a menos que la política + &man.mac.seeotheruids.4; está cargada. + + + Una implementación realmente engañosa + podría tener todos los servicios deshabilitados + en /etc/rc.conf e iniciados por un + script que inicie con la configuración adecuada + de etiquetamiento. + + + Las siguientes políticas soportan configuraciones + de enteros en lugar de las tres etiquetas ofrecidas + por omisión. Estas opciones, incluyendo sus + limitaciones, son mejor explicadas en las páginas + de manual del módulo. + + + + + + El módulo de seguridad multinivel MAC + + + MAC Multi-Level Security Policy + + Nombre de módulo: mac_mls.ko + + Línea de configuración de Kernel: + options MAC_MLS + + Opción de arranque: + mac_mls_load="YES" + + La política &man.mac.mls.4; controla accesos entre sujetos + y objetos en el sistema imponiendo una política estricta de + flujo de información. + + En ambientes MLS, un nivel de + aclaramiento es activado en cada etiqueta de + objeto o sujeto, junto con compartimientos. Debido a que + este aclaramiento o niveles de sensibilidad pueden alcanzar + números mayores a seis mil; podría ser una tarea + intimidante para cualquier administrador de sistema configurar + cada objeto o sujeto. Afortunadamente, tres etiquetas + instantaneas esán ya incluidas en + esta política. + + Estas etiquetas son mls/low, + mls/equal y mls/high. + Ya que estas etiquetas son descritas en profundidad + en la página de manual, solo tendrán una + descripción breve aquí: + + + + La etiqueta mls/low contiene una + configuración baja que le permite ser dominada + por todos los otros objetos. Cualquier cosa etiquetada + con mls/low tendrá un nivel + de aclaramiento bajo y no tendrá permitido + accesar información de un nivel más alto. + Adicionalmente, esta etiqueta prevendrá a objetos + de un nivel de aclaramiento más elevado de + escribir o pasar información hacia ellos. + + + + La etiqueta mls/equal debe ser + colocada en objetos considerados exentos de la + política. + + + + La etiqueta mls/high es el nivel + más elevado de aclaramiento posible. Los objetos + que tienen asignada esta etiqueta mantendrán + dominación sobre todos los otros objetos en el + sistema; sin embargo, no permitirán el filtrado + de información a objetos de una clase menor. + + + + MLS brinda: + + + + Un nivel de seguridad jerárquico con un + conjunto de categorías no jerárquicas. + + + + Reglas fijas: no lecturas hacia arriba, no escrituras + hacia abajo (un sujeto puede tener acceso de lectura a + objetos en su propio nivel o inferior, pero no superior. + Similarmente, un sujeto puede tener acceso de escritura + a objetos en su propio nivel o superior pero no + inferior.). + + + + Secreto (previniendo exposición + inapropiada de datos). + + + + Bases para el diseño de sistemas que manejen + datos concurrentemente a niveles múltiples de + sensitividad (sin filtrar información entre + secreto y confidencial). + + + + Los siguientes sintonizables de sysctl + están disponibles para la configuración de + servicios especiales e interfaces: + + + + security.mac.mls.enabled es usado + para habilitar/deshabilitar la política + MLS. + + + + security.mac.mls.ptys_equal + etiquetará todos los dispositivos &man.pty.4; + como mls/equal durante su + creación. + + + + security.mac.mls.revocation_enabled es + utilizado para revocar accesos a objetos despues que su + etiqueta cambie a una etiqueta de un grado inferior. + + + + security.mac.mls.max_compartments es + utilizado para activar el número máximo de + niveles de compartimientos con objetos; basicamente el + número máximo de compartimientos permitidos + en un sistema. + + + + Para manipular las etiquetas MLS, + se ha provisto el comando &man.setfmac.8;. Para asignar + una etiqueta a un objeto, ejecute el siguiente comando: + + &prompt.root; setfmac mls/5 test + + Para obtener la etiqueta MLS para + el archivo test ponga el siguiente + comando: + + &prompt.root; getfmac test + + Este es un resumen de las propiedades de la política + MLS. Otro enfoque es crear un archivo de + políticas maestro en /etc + que especifique la información de la política + MLS y alimentar con ese archivo el comando + setfmac. Este método será + explicado despues de cubrir todas las políticas. + + Observaciones: un objeto con aclaramiento inferior es + incapaz de observar procesos con aclaramiento más + elevado. Una política básica podría + ser imponer mls/high en todo lo que + no va a ser leído, incluso si necesita escribirse. + Imponga mls/low en todo lo que + no va a ser escrito, incluso si necesita ser leído. + Y finalmente imponga + mls/equal en el resto. Todos los usuarios + marcados insecure deben configurarse + a mls/low. + + + + El módulo MAC Biba + + + MAC Biba Integrity Policy + + Nombre de módulo: mac_biba.ko + + Línea de configuración de Kernel: + options MAC_BIBA + + Opción de arranque: + mac_biba_load="YES" + + El módulo &man.mac.biba.4; carga la política + MAC Biba. Esta política funciona + muy parecido a la política MLS con + la excepción que las reglas para flujo de información + están ligeramente invertidas. Esto es dicho para prevenir + el flujo hacia abajo de información sensitiva mientras + que la política MLS previene el + flujo hacia arriba de información sensitiva; así + mucha de esta sección puede aplicar a ambas + políticas. + + En ambientes Biba, una etiqueta de integridad + es activada en cada objeto o sujeto. Estas etiquetas son hechas + de grados jerárquicos, y de componentes no jerárquicos. + Cuando el grado de un objeto o sujeto asciende también + lo hace su integridad. + + Las etiquetas soportadas son biba/low, + biba/equal, ybiba/high; + como se explica abajo: + + + + La etiqueta biba/low es considerada + la integridad más baja que un objeto o sujeto + puede tener. Activando esto es objetos o sujetos bloqueará + sus accesos de escritura a objetos o sujetos marcados + como high. Aunque aún tendrán acceso + de lectura. + + + + La etiqueta biba/equal solo debe + ser colocada en objetos considerados exentos de la + política. + + + + La etiqueta biba/high permitirá + la escritura a objetos puestos a una etiqueta de nivel + inferior, pero no permitirá leer ese objeto. + Se recomienda que esta etiqueta sea colocada en + objetos que afecten la integridad del sistema entero. + + + + Biba brinda: + + + + Nivel de integridad jerárquico con un + conjunto de categorías de integridad no + jerárquica. + + + + Reglas fijas: no escrituras hacia arriba, no + lecturas hacia abajo (lo opuesto a MLS). + Un sujeto puede tener acceso de escritura a objetos + en su propio nivel o inferior, pero no superior. + Similarmente, un sujeto puede tener acceso de lectura + a objetos en su propio nivel o superior, pero no + inferior. + + + + Integridad (previniendo modificaciones inapropiadas + de datos). + + + + Niveles de integridad (en lugar de niveles de + sensitividad MLS). + + + + Los siguientes sintonizables de sysctl + pueden utilizarse para manipular la política + Biba. + + + + security.mac.biba.enabled puede usarse + para habilitar/deshabilitar la imposición de la + política Biba en la máquina destino. + + + + security.mac.biba.ptys_equal puede + usarse para deshabilitar la política Biba en + dispositivos &man.pty.4;. + + + + security.mac.biba.revocation_enabled + forzará la revocación de acceso a objetos si + la etiqueta es cambiada a dominar el sujeto. + + + + Para accesar la configuración de la política + biba en objetos del sistema, use los comandos + setfmac y getfmac: + + &prompt.root; setfmac biba/low test +&prompt.root; getfmac test +test: biba/low + + Observaciones: un sujeto con integridad inferior es + incapaz de escribir a un sujeto con integridad más + elevada; un sujeto con integridad más elevada no + puede observar o leer a un objeto con integridad inferior. + + + + El módulo MAC LOMAC + + + MAC LOMAC + + Nombre de módulo: mac_lomac.ko + + Línea de configuración de Kernel: + options MAC_LOMAC + Opción de arranque: + mac_lomac_load="YES" + + A diferencia de la política MAC Biba, + la política &man.mac.lomac.4; permite acceso a + objetos con integridad inferior solamente despues de + decrementar el nivel de integridad para no romper + cualquier regla de integridad. + + La versión MAC de la política + de integridad de marca-inferior, no confundirla con la antigua + implementación &man.lomac.4;, funciona casi identicamente + a Biba, pero con la excepción de utilizar etiquetas + flotantes para soportar el descenso a través de un + compartimiento de grado auxiliar. Este compartimiento + secundario toma la forma de [auxgrade]. + Al asignar una política lomac con un grado + auxiliar, se debe ver un poco como: lomac/10[2] + donde el número dos (2)es el grado + auxiliar. + + La política MAC LOMAC se + basa en el etiquetamiento omnipresente en todos los + objetos del sistema con etiquetas de integridad, + premitiendo a sujetos leer de objetos con integridad + inferior y entonces desactualizar la etiqueta en el + sujeto para prevenir escrituras futuras a objetos + con integridas más alta. Esta es la opci6oacute;n + [auxgrade] discutida arriba, así + la política puede brindar una compatibilidad + mayor y requiere menos configuración inicial + que Biba. + + + Ejemplos + + Como en las políticas Biba y MLS; + las utilidades setfmac y setpmac + pueden usarse para colocar etiquetas en objetos del + sistema: + + &prompt.root; setfmac /usr/home/trhodes lomac/high[low] +&prompt.root; getfmac /usr/home/trhodes lomac/high[low] + + Note que el grado auxiliar aquí es low, + esta es una cualidad brindada solamente por la + política MAC LOMAC. + + + + + Implementando un ambiente seguro con MAC + + + MAC Example Implementation + + + La siguiente demostración implementará + un ambiente seguro utilizando varios módulos + MAC con políticas configuradas + correctamente. Esta solamente es una prueba y no debe + ser considerada una respuesta completa a las aflicciones + de seguridad de todos. Solamente implementar una + política e ignorarla nunca funciona y puede + ser desastroso en un ambiente en producción. + + Antes de iniciar este proceso, la opción + multilabel debe ser aplicada a cada + archivo del sistema como se declaró al principio + de este capítulo. No hacerlo resultará + en errores. + + + Crear una clase de usuario insegura + + Inicie el procedimiento agregando la siguiente clase + de usuario al archivo /etc/login.conf: + + insecure:\ +:copyright=/etc/COPYRIGHT:\ +:welcome=/etc/motd:\ +:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ +:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin +:manpath=/usr/share/man /usr/local/man:\ +:nologin=/usr/sbin/nologin:\ +:cputime=1h30m:\ +:datasize=8M:\ +:vmemoryuse=100M:\ +:stacksize=2M:\ +:memorylocked=4M:\ +:memoryuse=8M:\ +:filesize=8M:\ +:coredumpsize=8M:\ +:openfiles=24:\ +:maxproc=32:\ +:priority=0:\ +:requirehome:\ +:passwordtime=91d:\ +:umask=022:\ +:ignoretime@:\ +:label=partition/13,mls/5: + + Y añadiendo la siguiente línea a la + clase de usuario por omisión: + + :label=mls/equal,biba/equal,partition/15: + + Una vez que esto se ha completado, el siguiente + comando debe ejecutarse para reconstruir la base + de datos: + + &prompt.root; cap_mkdb /etc/login.conf + + + + Arrancar con los módulos correctos + + Agregue las siguientes líneas al archivo + /boot/loader.conf para que los + módulos requeridos sean cargados durante la + inicialización del sistema: + + mac_biba_load="YES" +mac_mls_load="YES" +mac_seeotheruids_load="YES" +mac_partition_load="YES" + + + + Configure todos los usuarios a inseguro + + Todas la cuentas de usuarios que no sean root + o usuarios de sistema ahora requerirán una clase + de login. Esta clase de login es requerida o de otra + manera a los usuarios se les negará acceso a + comandos comunes como &man.vi.1;. + El siguiente script de sh debe + hacer el truco: + + &prompt.root; for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \ + /etc/passwd`; do pw usermod $x -L insecure; done; + + El comando cap_mkdb necesitará + ser ejecutado en /etc/master.passwd despues + de este cambio. + + + + Complete la configuración + + Un archivo de contexto debe ser creado ahora; el + siguiente ejemplo fué tomado del ejemplo de + política de Robert Watson y debe ser colocado en + /etc/policy.contexts. + + # Esta es la política BIBA/MLS por omisión para este sistema. + +.* biba/high,mls/high +/sbin/dhclient biba/high(low),mls/high(low) +/dev(/.*)? biba/equal,mls/equal +# This is not an exhaustive list of all "privileged" devices. +/dev/mdctl biba/high,mls/high +/dev/pci biba/high,mls/high +/dev/k?mem biba/high,mls/high +/dev/io biba/high,mls/high +/dev/agp.* biba/high,mls/high +(/var)?/tmp(/.*)? biba/equal,mls/equal +/tmp/\.X11-unix biba/high(equal),mls/high(equal) +/tmp/\.X11-unix/.* biba/equal,mls/equal +/proc(/.*)? biba/equal,mls/equal +/mnt.* biba/low,mls/low +(/usr)?/home biba/high(low),mls/high(low) +(/usr)?/home/.* biba/low,mls/low +/var/mail(/.*)? biba/low,mls/low +/var/spool/mqueue(/.*)? biba/low,mls/low +(/mnt)?/cdrom(/.*)? biba/high,mls/high +(/usr)?/home/(ftp|samba)(/.*)? biba/high,mls/high +/var/log/sendmail\.st biba/low,mls/low +/var/run/utmp biba/equal,mls/equal +/var/log/(lastlog|wtmp) biba/equal,mls/equal + + Esta política impondrá seguridad activando + restricciones tanto de bajada como de subida en el flujo + de información en relación a los directorios + y utilidades listadas en la izquierda. + + Esto puede ahora ser leído hacia nuestro + sistema ejecutando el siguiente comando: + + &prompt.root; setfsmac -ef /etc/policy.contexts / +&prompt.root; setfsmac -ef /etc/policy.contexts /usr + + + El esquema de sistema de archivos de arriba puede + ser diferente dependiendo del ambiente. + + + El archivo /etc/mac.conf requiere + las siguientes modificaciones en la secci6oacute;n + principal: + + default_labels file ?biba,?mls +default_labels ifnet ?biba,?mls +default_labels process ?biba,?mls,?partition +default_labels socket ?biba,?mls + + + + Probando la configuración + + + MAC Configuration Testing + + + Agregue un usuario con el comando adduser + y coloque a ese usuario en la clase insecure + para estas pruebas. + + Los ejemplos de abajo mostrarán una mezcla + de root y usuarios regulares de + prueba; utilice el prompt para distinguie entre + los dos. + + + Pruebas de etiquetamiento básico + + &prompt.user; getpmac +biba/15(15-15),mls/15(15-15),partition/15 +&prompt.root; setpmac partition/15,mls/equal top + + + El proceso top será asesinado antes + de iniciar otro proceso top. + + + + + Pruebas MAC Seeotheruids + + &prompt.user; ps Zax +biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.03 -su (bash) +biba/15(15-15),mls/15(15-15),partition/15 1101 #C: R+ 0:00.01 ps Zax + + No se debe permitir ver + procesos propiedad de otros usuarios. + + + + Prueba MAC Partition + + Deshabilitar la política MAC + seeotheruids para el resto de estas + pruebas: + + &prompt.root; sysctl security.mac.seeotheruids.enabled=0 +&prompt.user; ps Zax +LABEL PID TT STAT TIME COMMAND + biba/equal(low-high),mls/equal(low-high),partition/15 1122 #C: S+ 0:00.02 top + biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.05 -su (bash) + biba/15(15-15),mls/15(15-15),partition/15 1123 #C: R+ 0:00.01 ps Zax + + Todos los usuarios deben tener permitido ver todos + los procesos en su partición. + + + + Probando etiquetas Biba y MLS + + &prompt.root; setpmac partition/15,mls/equal,biba/high\(high-high\) top +&prompt.user; ps Zax +LABEL PID TT STAT TIME COMMAND + biba/high(high-high),mls/equal(low-high),partition/15 1251 #C: S+ 0:00.02 top + biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.06 -su (bash) + biba/15(15-15),mls/15(15-15),partition/15 1157 #C: R+ 0:00.00 ps Zax + + La política Biba nos permite leer objetos + etiquetados más alto. + + &prompt.root; setpmac partition/15,mls/equal,biba/low top +&prompt.user; ps Zax +LABEL PID TT STAT TIME COMMAND + biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.07 -su (bash) + biba/15(15-15),mls/15(15-15),partition/15 1226 #C: R+ 0:00.01 ps Zax + + La política Biba no permite que objetos + etiquetados como inferiores sean leídos; de + todas maneras, MLS si lo + permite. + + &prompt.user; ifconfig bge0 | grep maclabel +maclabel biba/low(low-low),mls/low(low-low) +&prompt.user; ping -c 1 192.0.34.166 +PING 192.0.34.166 (192.0.34.166): 56 data bytes +ping: sendto: Permission denied + + Los usuarios son incapaces + de dar un ping a + example.com, o cualquier + dominio. + + Para prevenir que ocurra este error, ejecute el + siguiente comando: + + &prompt.root; sysctl security.mac.biba.trust_all_interfaces=1 + + Esto configura la etiqueta por omisión de interfaces + a modo inseguro, con ello la política Biba por omisió + no será impuesta. + + &prompt.root; ifconfig bge0 maclabel biba/equal\(low-high\),mls/equal\(low-high\) +&prompt.user; ping -c 1 192.0.34.166 +PING 192.0.34.166 (192.0.34.166): 56 data bytes +64 bytes from 192.0.34.166: icmp_seq=0 ttl=50 time=204.455 ms +--- 192.0.34.166 ping statistics --- +1 packets transmitted, 1 packets received, 0% packet loss +round-trip min/avg/max/stddev = 204.455/204.455/204.455/0.000 ms + + Configurando una etiqueta más correcta, + podemos ejecutar peticiones de ping. + + Ahora para crear algunos archivos para procedimientos + de prueba de lectura y escritura: + + &prompt.root; touch test1 test2 test3 test4 test5 +&prompt.root; getfmac test1 +test1: biba/equal,mls/equal +&prompt.root; setfmac biba/low test1 test2; setfmac biba/high test4 test5; \ + setfmac mls/low test1 test3; setfmac mls/high test2 test4 +&prompt.root; setfmac mls/equal,biba/equal test3 && getfmac test? +test1: biba/low,mls/low +test2: biba/low,mls/high +test3: biba/equal,mls/equal +test4: biba/high,mls/high +test5: biba/high,mls/equal +&prompt.root; chown testuser:testuser test? + + Todos estos archivos deben ser ahora propiedad + de nuestro usuario testuser. + Y ahora para algunas pruebas de lectura: + + &prompt.user; ls +test1 test2 test3 test4 test5 +&prompt.user; ls test? +ls: test1: Permission denied +ls: test2: Permission denied +ls: test4: Permission denied +test3 test5 + + No deberíamos tener permitido observar + pares; ejemplo: + (biba/low,mls/low), + (biba/low,mls/high) y + (biba/high,mls/high). Y por supuesto, + el acceso de lectura debe estar denegado. Ahora para + algunas pruebas de escritura: + + &prompt.user; for i in `echo test*`; do echo 1 > $i; done +-su: test1: Permission denied +-su: test4: Permission denied +-su: test5: Permission denied + + Como con las pruebas de lectura, el acceso de + escritura no debe ser permitido para escribir pares; + ejemplo: + (biba/low,mls/high) y + (biba/equal,mls/equal). + + &prompt.user; cat test? +cat: test1: Permission denied +cat: test2: Permission denied +1 +cat: test4: Permission denied + + Y ahora como root: + + &prompt.root; cat test2 +1 + + + + + + Otro ejemplo: Utilizando MAC para confinar un servidor web + + Una locación separada para los datos de + web a los cuales los usuarios deben ser capaces de + accesar será seleccionada. Esto permitirá + a los procesos biba/high derechos + de acceso a los datos web. + + Inicie creando un directorio para guardar los + datos de web: + + &prompt.root; mkdir /usr/home/cvs + + Ahora inicialicelo con cvs: + + &prompt.root; cvs -d /usr/home/cvs init + + El primer objetivo es habilitar la política + biba, así + mac_biba_enable="YES" debe ser + colocado en + /boot/loader.conf. Se asume que + el soporte para MAC ha sido + habilitado en el kernel. + + De este punto en adelante todo en el sistema + debe configurarse a biba/high por + omisión. + + La siguiente modificación debe ser hecha + al archivo login.conf, bajo + la clase de usuario por omisión: + + :ignoretime@:\ + :umask=022:\ + :label=biba/high: + + Cada usuario debe ser ahora colocado en la clase por + omisión; un comando como: + + &prompt.root; for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \ + /etc/passwd`; do pw usermod $x -L default; done; + + logrará esta tarea en unos cuantos momentos. + + Ahora hay que crear otra clase, web, una copia de + la clase por omisión, con la configuración de + etiqueta biba/low. + + Agregue un usuario que será utilizado para + trabajar con los datos principales de web guardados + en un repositorio cvs. + Este usuario debe ser colocado en nuestra nueva clase + de login, web. + + Ya que en todos lados por omisión es + biba/high, el repositorio será + el mismo. Los datos de web también deben ser + lo mismo para usuarios que tienen acceso de lectura/escritura. + de todas maneras, ya que nuestro servidor de web + estará sirviendo datos que usuarios + biba/high deben accesar, necesitaremos + rebajar los datos como un todo. + + Las herramientas perfectas para esto son &man.sh.1; + y &man.cron.8; y ya están en &os;. El siguiente + script debe hacer todo lo que queremos: + + PATH=/bin:/usr/bin:/usr/local/bin; export PATH; +CVSROOT=/home/repo; export CVSROOT; +cd /home/web; +cvs -qR checkout -P htdocs; +exit; + + + En muchos casos los Id tags de cvs + deben ser colocados dentro de los archivos + de datos del sitio web. + + + Este script puede ahora ser colocado + en el directorio home de web + y la siguiente entrada agregada a &man.crontab.1;: + + # Descargar los datos de web como biba/low cada doce horas: +0 */12 * * * web /home/web/checkout.sh + + Esto descargará las fuentes HTML + cada doce horas en la máquina. + + El método de arranque por omisión para el + servidor de web debe ser modificado también para + iniciar los procesos como biba/low. + Esto puede realizarse haciendo la siguiente modificación + al script + /usr/local/etc/rc.d/apache.sh: + + command="setpmac biba/low /usr/local/sbin/httpd" + + La configuraci6oacute:n de Apache + debe ser alterada para trabajar con la política + biba/low. En este caso el software debe ser + configurado para agregar a los archivos de log en un directorio + configurado como biba/low o de lo contrario + errores de access denied serán + retornados. + + + Siguiendo este ejemplo requiere que la + directiva docroot sea + puesta a /home/web/htdocs; + de otra manera, Apache + fallará al tratar de localizar el + directorio desde donde servir documentos. + + + Otras variables de configuración deben ser + también alteradas, incluyendo el PID + de archivo, + Scoreboardfile, + DocumentRoot, sitio del archivo de log o + cualquier otra variable que requiera acceso de escritura. + Al utilizar biba, todos los accesos de + escritura serán negados al servidor en áreas + no puestas a + biba/low. + + + + + + + Determinando errores en la estructura MAC + + + MAC Troubleshooting + + + Durante la fase de desarrollo, algunos usuarios reportaron + problemas con la configuración normal. Algunos de + estos problemas están listados abajo: + + + La opción <option>multilabel</option> no puede ser + habilitada en <filename>/</filename> + + ¡La bandera no permanece + habilitada en mi partición raíz + (/)! + + Parece que uno de cada cincuenta usuarios tiene + este problema, de hecho, hemos tenido este problema + durante nuestra configuración inicial. + Mayor observación en este llamado bug + me ha llevado a creer que es el resultado de documentación + incorrecta o de interpretación errónea + de la documentación. Sin importar por qué + sucede, se pueden tomar los siguientes pasos para + resolverlo: + + + + Editar /etc/fstab y poner la + partición raíz a para + solo lectura. + + + + Reiniciar en modo mono usuario. + + + + Ejecutar tunefs + en /. + + + + Reiniciar el sistema a modo normal. + + + + Ejecutar mount + / y cambiar + de regreso a en + /etc/fstab y reiniciar el sistema de nuevo. + + + + + Revisar nuevamente la salida de + mount para asegurarse + que haya sido + activada correctamente el el sistema de + archivos raíz. + + + + + + No se puede iniciar un servidor X11 despues de + <acronym>MAC</acronym> + + Despues de establecer un ambiente seguro con + MAC, ¡ya no puedo iniciar + X! + + Esto puede ser causado por la política + MAC partition + o por un etiquetamiento erroneo en una de las + políticas de etiquetamiento MAC. + Para determinar el error trate lo siguiente: + + + + Revise el mensaje de error; si el usuario está + en la clase insecure, la política + partition puede ser la culpable. + Trate poner la clase del usuario de regreso a la + clase default y recostruya la base + de datos con el comando cap_mkdb. + Si esto no alivia el problema, vaya al paso dos. + + + + Revise doblemente las políticas de etiquetamiento. + Asegúrese que las políticas están + configuradas correctamente para el usuario en cuestión, + la aplicación X11 y las entradas + /dev. + + + + Si ninguno de estos resuelve el problema, envie el + mensaje de error y la descripción de su ambiente + a la lista de discusión TrustedBSD localizada en + el sitio web + TrustedBSD + o a la lista de correo &a.questions;. + + + + + + Error: &man..secure.path.3; cannot stat + <filename>.login_conf</filename> + + Cuando trato de cambiar de root a + otro usuario en el sistema, aparece el mensaje de error + _secure_path: unable to state .login_conf. + + + Este mensaje es usualmente desplegado cuando el usuario + tiene una etiqueta más alta que la del usuario al que + se está tratando de convertir. Por ejemplo, un usuario + en el sistema, joe, tiene una etiqueta + por omisión de + . El usuario root, + que tiene una etiqueta de , no + puede ver el directorio home de joe. + Esto sucederá sin importar que root + haya usado el comando su para convertirse + en joe, o no. En este escenario, el modelo + de integridad Biba no permitirá a root + ver objetos puestos a un nivel de integridad inferior. + + + + ¡El usuario <username>root</username> no funciona! + + En modo normal o incluso en modo monousuario, + root no es reconocido. El + comando whoami regresa 0 (cero) y + su regresa who are you?. + ¿Que es lo que puede estar pasando? + + Esto puede suceder si una política de etiquetamiento + ha sido deshabilitada, ya sea por &man.sysctl.8; o el + módulo de política ha sido removido. + Si la política ha sido deshabilitada o ha sido + temporalmente deshabilitada, entonces las capacidades de + la base de datos de login necesita ser reconfigurada con + la opción eliminada. + Revise doblemente el archivo login.conf + para asegurarse que todas las opciones + hayan sido eliminadas y reconstruya la base de datos con + el comando cap_mkdb. + + + + + +