             FreeBSD: Una alternativa de codigo abierto a Linux(R)

  Dru Lavigne

   <dru@isecom.org>

   Revision: 43126

   Copyright (c) 2005 Dru Lavigne

   FreeBSD is a registered trademark of the FreeBSD Foundation.

   Linux is a registered trademark of Linus Torvalds.

   UNIX is a registered trademarks of The Open Group in the United States and
   other countries.

   Many of the designations used by manufacturers and sellers to distinguish
   their products are claimed as trademarks. Where those designations appear
   in this document, and the FreeBSD Project was aware of the trademark
   claim, the designations have been followed by the "(TM)" or the "(R)"
   symbol.

   La redistribucion y uso en fuente (SGML DocBook) y formatos "compilados"
   (SGML, HTML, PDF, PostScript, RTF y cualquier otro) con o sin
   modificacion, esta permitida siempre y cuando se cumplan las siguientes
   condiciones:

    1. La redistribucion del codigo fuente (SGML DocBook) debe contener esta
       informacion de copyright, esta lista de condiciones y el siguiente
       texto como las primeras lineas del fichero sin modificar.

    2. La redistribucion en formatos compilados (transformado a otros DTDs,
       convertidos a PDF, PostScript, RTF y otros formatos) debe reproducir
       el siguiente texto de copyright, esta lista de condiciones y el
       siguiente texto en la documentacion y/u otros materiales entregados
       con la distribucion.

  Importante:

   THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS
   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION
   PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

   2013-11-07 por gabor.
   Resumen

   El proposito de este articulo es explicar algunas de las caracteristicas y
   ventajas de elegir FreeBSD; cuando es posible hacerlo se comparan dichas
   caracteristicas con las de Linux(R). Este articulo deberia ser un punto de
   partida para quienes deberia ser un punto de partida para quienes tengan
   interes tengan interes en alternativas a Linux(R) en el abito del codigo
   abierto.

   Traduccion de Gabor Ko:vesdan <gabor@FreeBSD.org>.

     ----------------------------------------------------------------------

   Tabla de contenidos

   1. Introduccion

   2. Caracteristicas de FreeBSD

   3. Seguridad

   4. Soporte

   5. Ventajas de elegir FreeBSD

   6. Conclusion

   7. Addenda

1. Introduccion

   FreeBSD es un sistema operativo de tipo UNIX(R) derivado de Berkeley
   Software Distribution. Aunque FreeBSD y Linux(R) parecen con frecuencia
   muy similares existen notables diferencias:

    1. Linux(R) es solamente un kernel. Las distribuciones (p.ej. Red Hat,
       Debian, Suse, etc) disponen de instalador y de utilidades de usuario.
       En http://www.linux.org/dist se muestran mas de 300 distribuciones
       distintas. Aunque por una parte tanta variedad proporcione la maxima
       flexibilidad posible, la existencia de tantas distribuciones pone
       trabas a los usuarios cuando tiene que aplicar su experiencia con una
       distribucion al usar otra diferente. Las distribuciones no solamente
       se diferencian en la facilidad de instalacion o los programas que
       incluyen; tambien hay diferencias en la estructura de directorios, las
       shells y gestores de ventanas que ofrecen y el procedimiento de
       instalacion o parcheo de software.

       FreeBSD es un sistema operativo completo (kernel y utilidades) en el
       que se respeta la herencia del desarrollo original de UNIX(R).[1] Dado
       que es el mismo grupo de ingenieria de releases el que controla tanto
       el kernel como las utilidades, la probabilidad de incompatibilidades
       entre bibliotecas es menor. El equipo de seguridad gestiona de un modo
       mas rapido las vulnerabilidades de seguridad. Si quiere conocer las
       nuevas utilidades que se van anadiendo al kernel solo debe seguir un
       fichero, las "Release Notes", que estan en la pagina principal de
       FreeBSD.

    2. FreeBSD tiene un grupo de desarrollo grande y bien organizado, lo que
       asegura que los cambios se implementen de una forma rapida pero
       controlada. Hay varios miles de programadores que aportan codigo
       regularmente, pero solo unos 300 de ellos tienen lo que se denomina
       "commit bit", con el que pueden aplicar cambios directamente en el
       kernel, las utilidades y la documentacion. El grupo de ingenieria de
       "releases" se encarga del control de calidad de las "releases",
       mientras que el equipo de seguridad se responsabiliza de los problemas
       de seguridad. Ademas de estos grupos hay otro denominado "Core Team",
       compuesto por ocho desarrolladores veteranos que supervisan las
       directrices de desarrollo del proyecto como un todo.

       Los cambios que se hacen en el kernel de Linux(R), en cambio, han de
       esperar hasta que el responsable del codigo del kernel, Linus
       Torvalds, los apruebe. En cada una de las distribuciones hay un modo
       distinto de trabajar para que esos cambios se lleven a cabo
       dependiendo del tamanno del grupo de programadores de que disponga y
       como se organicen.

    3. Tanto FreeBSD como Linux(R) usan una licencia de codigo abierto, pero
       las licencias son diferentes. El kernel de Linux(R) usa la licencia
       GPL, mientras que FreeBSD usa la licencia BSD. Tiene mas informacion
       sobre estas y otras licencias de codigo abierto en el sitio web de
       Open Source Initiative.

       La filosofia que hay tras la GPL busca asegurarse de que el codigo
       permanezca abierto, cosa que hace imponiendo restricciones en la
       distribucion de codigo GPL. La licencia BSD, en cambio, no impone
       ninguna restriccion, de forma que es posible dejarlo abierto o
       cerrarlo para hacer productos comerciales propietarios (tambien
       conocidos como "privativos")[2]. La existencia de codigo estable y
       confiable bajo una licencia tan interesante como la BSD ha hecho que
       un sistema operativo como Apple OS X este basado en codigo de FreeBSD.
       Todo esto significa que si decide usted utilizar codigo BSD en sus
       proyectos puede hacerlo sin preocuparse de que en un futuro tal
       decision pueda acarrearle problemas legales.

2. Caracteristicas de FreeBSD

  2.1. Plataformas soportadas

   FreeBSD goza de una merecida reputacion de sistema operativo seguro y
   estable sobre plataformas Intel(R) (i386(TM)). Tambien es posible
   utilizarlo en las siguientes arquitecturas:

     * alpha
     * amd64
     * ia64
     * i386(TM)
     * pc98
     * Sparc64(R)

   Ademas en este momento se esta trabajando en portar FreeBSD a las
   siguientes arquitecturas:

     * ARM(R)
     * MIPS(R)
     * PowerPC(R)

   Existen unas listas actualizadas de hardware para cada arquitectura donde
   puede verificarse rapidamente si su hardware esta soportado por FreeBSD.
   En el campo de los servidores FreeBSD dispone de un soporte excelente de
   RAID por hardware y para adaptadores de red.

   FreeBSD tambien funciona muy bien en una estacion de trabajo o un
   portatil. FreeBSD soporta X Window System, el mismo que ofrecen las
   distribuciones de Linux(R) para interfaces de usuario de escritorio.
   FreeBSD ofrece ademas mas de 17000 aplicaciones externas muy faciles de
   instalar; entre ellas estan KDE, Gnome y OpenOffice.

   Hay varios proyectos que tienen como meta una instalacion de FreeBSD mas
   facil. Los mas importantes son:

     * DesktopBSD, que tiene como fin ofrecer un sistema operativo estable y
       poderoso para usar como escritorio.

     * FreeSBIE, que ofrece un LiveCD de FreeBSD.

     * PC-BSD, que dispone de un sencillo instalador grafico sobre FreeBSD
       dirigido al usuario de escritorio.

  2.2. "Framework" integrados

   Hay diversos "frameworks" que le permitiran adaptar su entorno FreeBSD a
   sus necesidades concretas. Veamos algunos de ellos:

   Netgraph

           Netgraph es un subsistema de modulos que se puede usar para
           ampliar la infraestructura de red disponible en el kernel gracias
           a la posibilidad que se ofrece a los desarrolladores de usar sus
           propios modulos. De este modo ha sido posible crear nuevos
           prototipos y productos en el area de los sistemas de red avanzados
           de un modo mas sencillo y limpio. Algunos de estos modulos ya
           estan incluidos en FreeBSD:

              * PPPoE

              * ATM

              * ISDN

              * Bluetooth

              * HDLC

              * EtherChannel

              * Frame Relay

              * y L2TP, solo por enumerar unos cuantos.

   GEOM

           GEOM es un "framework" modular que permite gestionar las
           peticiones de lectura/escritura en disco. Al ser un dispositivo de
           almacenamiento que se puede enchufar permite que puedan
           desarrollarse nuevos servicios de almacenamiento de forma rapida y
           limpia dentro del subsistema de almacenamiento de FreeBSD.

              * Uso de RAID.

              * Proteccion criptografica de los datos almacenados.

           Las versiones mas recientes de FreeBSD disponen de diversas
           aplicaciones administrativas para facilitar el uso de los modulos
           de GEOM existentes. Es posible, por ejemplo, crear un disco espejo
           mediante gmirror(8); gstripe(8) permite crear un "stripe", asi
           como gracias a gshsec(8) puede crearse un dispositivo secreto
           compartido.

   GBDE

           GBDE (de GEOM Based Disk Encryption) ofrece una proteccion
           criptografica fuerte que puede utilizarse en sistemas de ficheros
           y unidades swap entre otros tipos de unidades de almacenamiento.
           Ademas GBDE cifra de forma transparente el sistema de ficheros en
           su totalidad, no solamente ficheros individuales. De este modo el
           texto legible no llega siquiera a tocar el disco duro.

   MAC

           MAC (Mandatory Access Control) ofrece un control de acceso a
           ficheros muy configurable; su proposito es aumentar las
           posibilidades del control de acceso a ficheros de los que ha
           gozado hasta ahora el sistema operativo. Puesto que MAC se
           implementa como un "framework" modular cualquier sistema FreeBSD
           puede configurarse para que alcance cualquier rango de exigencia,
           desde el cumplimiento del estandar HIPAA hasta los sistemas de
           seguridad de grado militar.

           FreeBSD incluye modulos que permiten implementar las normas que se
           listan a continuacion, aunque no hay que olvidar que el
           "framework" permite desarrollar e implementar cualquier otra que
           se necesite:

              * Modelo Biba de integridad

              * ACL para ports

              * MLS (norma de confidencialidad Multi-Level Security)

              * LOMAC (norma de integridad de datos Low-watermark Mandatory
                Access Control)

              * Normas de particion de procesos

   PAM

           Igual que Linux(R), FreeBSD ofrece soporte para PAM (Pluggable
           Authentication Modules). Con PAM el administrador puede reforzar
           el modelo tradicional de autentificacion usuario/contrasena.
           FreeBSD dispone de modulos para integrar PAM en una amplia gama de
           mecanismos de autenticacion. Estos son algunos de ellos:

              * Kerberos 5

              * OPIE

              * RADIUS

              * TACACS+

           Tambien es posible configurar normas que se engarguen de problemas
           de control de autentificacion como la calidad de las contrasenas
           que los usuarios puedan elegir.

3. Seguridad

   La seguridad es extremadamente importante para el grupo de ingenieria de
   "releases" de FreeBSD. Esto se refleja en distintas areas:

     * Todos los problemas de seguridad y los parches que los corrigen pasan
       por el equipo de seguridad, que los publica y pone a disposicion de
       los usuarios en lo que se conoce como "Advisories". El equipo de
       seguridad tiene una merecida reputacion de rapidez en la resolucion de
       problemas de seguridad. Si quiere informacion detallada sobre como se
       gestionan los problemas de seguridad en FreeBSD y donde encontrar
       informacion de seguridad consulte http://www.FreeBSD.org/security/.

     * Uno de los problemas que suelen asociarse al software de codigo
       abierto es la escasez de aplicaciones que pueden ejecutarse. Hay
       literalmente decenas de miles de proyectos desarrollando aplicaciones
       de codigo abierto, evidentemente no todas tienen el mismo rigor en
       cuestiones de seguridad. En FreeBSD se ataja este problema gracias a
       VuXML. Consiste en una base de datos donde se van almacenando
       problemas de seguridad que van apareciendo; esta base de datos se
       cruza con la informacion de los programas que incluye FreeBSD y las
       aplicaciones que este en la Coleccion de Ports. El administrador tiene
       a su disposicion portaudit(1), con el que puede determinar rapidamente
       si cualquier aplicacion que haya en un sistema FreeBSD es vulnerable.
       En el caso de que lo sea recibira una descripcion del problema con un
       enlace donde encontrara informacion mas detallada sobre el.

   FreeBSD ofrece tambien diversos mecanismos para que el administrador pueda
   hacer que su sistema operativo cumpla los requisitos de seguridad que
   necesite:

     * La utilidad jail(8) permite al administrador "enjaular" (de ahi su
       nombre) un proceso. Es ideal para aplicaciones que no pueden
       ejecutarse en un entorno "chroot".

     * La utilidad chflags(1) aumenta la seguridad que ofrece el sistema
       tradicional de permisos de UNIX(R). Puede por ejemplo prohibirse la
       modificacion de uno o mas ficheros dados; es posible incluso prohibir
       que el superusuario pueda modificarlos o borrarlos.

     * FreeBSD ofrece 3 "firewalls" empotrados y con soporte de NAT, gracias
       a lo cual puede elegirse el conjunto de reglas mas apropiado a las
       necesidades de seguridad de cada situacion.

     * El kernel de FreeBSD puede modificarse muy facilmente, lo que permite
       al administrador retirar de el caracteristicas que no necesite.
       FreeBSD tambien admite modulos dinamicos y dispone de herramientas
       para cargar, descargar y ver los modulos que estan en el kernel.

     * sysctl permite al administrador ver y configurar multitud de
       caracteristicas del kernel sin tener que reiniciar la maquina.

4. Soporte

   Del mismo modo que sucede en Linux(R), FreeBSD ofrece distintos tipos de
   soporte, tanto gratuito como comercial.

  4.1. Soporte gratuito

     * FreeBSD es uno de los sistemas operativos mejor documentados; dicha
       documentacion forma parte del sistema y tambien esta en Internet. Las
       paginas man son claras, concisas y contienen ejemplos utiles. El
       "Handbook" de FreeBSD dispone de informacion a fondo y ejemplos de
       configuracion para casi todas las tareas que deben acometerse en el
       uso de FreeBSD.

     * FreeBSD dispone de muchas listas de correo; el correo que pasa por
       estas listas se archiva y pueden hacerse busquedas en el. Si tiene
       alguna duda cuya solucion no aparezca en el "Handbook" es muy probable
       que haya aparecido ya resuelta en alguna lista de correo del proyecto.
       Hay listas de correo (e incluso versiones del "Handbook") en otros
       idiomas ademas del ingles. Puede encontrarlas en
       http://www.FreeBSD.org.

     * Hay muchos canales de IRC, foros y grupos de usuarios. Consulte una
       lista de de algunos de ellos en http://www.FreeBSD.org/support.html.

   Si busca un administrador, desarrollador o alguien que ofrezca soporte
   para FreeBSD, envie la descripcion del trabajo a
   <freebsd-jobs@FreeBSD.org>; no olvide incluir la ubicacion fisica.

  4.2. Soporte comercial

   Hay muchas empresas que ofrecen soporte comercial para FreeBSD. Si
   necesita alguna de estas empresas los siguientes enlaces le seran de mucha
   utilidad para buscar el que le resulta mas adecuado:

     * La pagina de distribuidores comerciales que hay en el sitio web de
       FreeBSD: http://www.FreeBSD.org/commercial/

     * FreeBSDMall, que vende contratos de soporte desde hace casi diez anos.
       http://www.freebsdmall.com

     * La base de datos de BSDTracker:
       http://www.nycbug.org/index.php?NAV=BSDTracker

   Hay una organizacion que ofrece certificados para administradores de
   sistemas BSD. http://www.bsdcertification.org.

   Si su proyecto necesita un certificado de Common Criteria, FreeBSD incluye
   el "framework" MAC de TrustedBSD que puede facilitar el proceso de obtener
   la certificacion.

5. Ventajas de elegir FreeBSD

   Integrar FreeBSD en su estructura IT tiene muchas ventajas:

     * FreeBSD esta bien documentado y cumple muchos estandares. Un
       administrador con conocimientos de nivel intermedio o avanzado puede
       utilizar en FreeBSD su experiencia con Linux(R) y UNIX(R) rapidamente.

     * Los desarrolladores oficiales tienen acceso completo al codigo[4] de
       todas las versiones de FreeBSD desde la primera "release". El codigo
       incluye toda la informacion que se incluye con cada cambio, asi que
       puede seguirse cada modificacion y correccion que se haya hecho en el
       codigo. Adem's, cualquier desarrollador puede obtener una "release"
       dada de un modo muy facil usando la etiqueta adecuada. Por el
       contrario, Linux(R) no utiliza este modelo, aunque recientemente haya
       adoptado un modelo de desarrollo mas avanzado[5].

     * Los desarrolladores oficiales tambien tiene acceso completo a la base
       de datos de fallos de FreeBSD, GNATS. Pueden buscar y gestionar los
       fallos existentes y enviar parches para que puedan probarse e
       integrarse en el codigo base de FreeBSD.
       http://www.FreeBSD.org/support.html#gnats

     * La licencia BSD le permite modificar el codigo de la forma que
       prefiera para que satisfaga su objetivos comerciales. A diferencia de
       la licencia GPL no hay restricciones en el modo en que deba
       distribuirse el software que desarrolle.

6. Conclusion

   FreeBSD es un sistema operativo maduro basado en UNIX(R) que incluye
   muchas de las caracteristicas que uno espera en un sistema UNIX(R)
   moderno. Para quien quiere incorporar soluciones de codigo abierto a su
   infraestructura FreeBSD es una alternativa a tener muy en cuenta.

7. Addenda

    1. Si quiere una breve historia de BSD consulte
       http://www.oreilly.com/catalog/opensources/book/kirkmck.html.

    2. Hay un resumen neutral de las ventajas de las licencias en
       http://en.wikipedia.org/wiki/BSD_and_GPL_licensing.

    3. Uso de la Coleccion de ports de FreeBSD: instalar software es tan
       facil como ejecutar pkg_add -r nombre_de_aplicacion.

    4. Ademas puede verse todo el codigo via web:
       http://www.FreeBSD.org/cgi/cvsweb.cgi/.

    5. Hay una interesanta vision general del modelo de desarrollo de
       Linux(R) en http://linuxdevices.com/articles/AT4155251624.html.
