|-----------------------------------------------------------------------------------------------|
|                                        Linux Security                                         |
|-----------------------------------------------------------------------------------------------|
| 20-12-2002 |                                                                          | Kania |
|-----------------------------------------------------------------------------------------------|
|                            _____ ___ _   _   _____     _                                      |
|                           |  ___|_ _| | | | | ____|___(_)_ __   ___                           |
|                           | |_   | || |_| | |  _| |_  / | '_ \ / _ \                          |
|                           |  _|  | ||  _  | | |___ / /| | | | |  __/                          |
|                           |_|   |___|_| |_| |_____/___|_|_| |_|\___|                          |
|                                      kania@evilgirls.net                                      |
|                                                                                               |
|-----------------------------------------------------------------------------------------------|


   Como dice ese viejo dicho de la net... el ordenador ms seguro es
   aquel que esta desconectado, metido en una caja fuerte, encerrado en
   un bloque de cemento y arrojado en el fondo del mar a dos mil metros.
   La seguridad sera completa, pero el rendimiento sera psimo. Y esto
   seria la regla de oro, es decir, no existe un sistema completamente
   seguro. Eso s, podemos complicar el acceso a nuestro sistema por
   llamarlo de alguna manera "casero" con cuatro cosas prcticas, que no
   requieren mucha complicacin. Ahora cuando hablamos de redes como las
   que manejan los bancos, compaas de telecomunicaciones y similares,
   entonces, si, se necesita extremar la cautela en cuanto a la seguridad
   del sistema utilizado.

   Una de las principales razones que me decidi a instalar linux como
   sistema operativo, aparte de su licencia, fue sin duda su seguridad.
   Con las caractersticas comunes de todos los sistemas tipo Unix.
   Aunque para obtener un mnimo de seguridad hay que conocer las
   debilidades y formas de ataque, para poder frenarlos, y volviendo a
   los dichos, la mejor cura, la prevencin. As pues digamos que un
   sistema operativo es seguro en relacin a la eficacia del
   administrador que lo dirige.

   Las polticas de seguridad empleadas por los diversos administradores
   son muchas, me remito a un ejemplo, donde pregunt a diversos usuarios
   de linux, todos ellos administradores de servidores sobre que sistemas
   de seguridad usaban....

             Canal #escomposlinux del Irc de la Jerarquia ECOL.

     <kania> que sistemas de seguridad usas para tu mquina y en que OS
                                 trabajas?
                               <VrZ> iptables
                              <kania> por qu?
                         <VrZ> para chapar puertos
                              <kania> por qu?
                        <VrZ> i para hacer de router
                               <VrZ> poco mas
    <kania> usas iptables como medida de seguridad en tu sistema es as?
                   <VrZ> para mi red para ser mas exactos
                <kania> tienes una red y solo usas iptables?
                <kania> no tienes ms mtodos de seguridad?
                   <VrZ> si, es una red pequea y casera

                        <VrZ> tambin uso tcpwrapper

       <kania> GonzoTBA tu que usas para la seguridad de tu mquina?

      <GonzoTBA> kania: Vamos a acabar rpido: iptables y algn backup
                            cuando me acuerdo...
          <GonzoTBA> kania: Y el telfono de NoP siempre cerca...
                      Canal #evilgirls del Irc de EG.

                         <kania> por cierto foobar

      <kania> tu como linuxero de pro que sistemas de seguridad usas?

   <foobar> lo tpico, firewall con iptables, logcheck para revisar logs,
   aide para comprobar que no me han metido nada raro, y chkrootkit. ippl
   para vigilar conexiones, y snort, aunque este ltimo no me rula bien.

   Sirva como muestra de que cada bofh tiene sus manias y formas de
   mantener la seguridad de su mquina.

        (bofh = Bastard Operator From Hell usease: Sysadmin joputa)


   Veamos dos definiciones bsicas...

   Iptables: es una herramienta para filtrar paquetes del kernel (2.4.XX)
   Para poder usarlo es necesario tener instalado en el kernel el
   netfilter y cargados una serie de mdulos, dependiendo para que usemos
   iptables, necesitaremos mas o menos. Y hasta aqui la definicin, pues
   el HOWTO es muy espeso y en castellano por si alguno se anima:

   [1]http://www.hacknet.tk/kp/iptables/iptables-HOWTO.html

   Exploit: podria ser un script o programa que aprovecha las
   vulnerabilidades en el sistema, para optener acceso al mismo, ya sea
   mediante una shell con privilegios de root o como root directamente.

   Hay otros fctores que definen la seguridad, como la eleccin de
   contraseas complicadas, actualizacion de sistema para mejorar los
   programas con exploit, "logear", y revisar los logs asiduamente, son
   muestras de una administracin ms dedicada. Constatemente salen bugs
   en los programas, para muestra unos cuantos botones:

            [2]http://cybercultura.coolfata.com/noticias/linux/

    Esta circulando por internet un gusano bastante poderoso, que ataca
    una vulnerabilidad del apache que tiene instalado el modulo ssl, la
      cual permite a un atacante enviar codigo malicioso provocando la
    apertura de una terminal en la cual ejecuta un gusano llamado cinik
                         que posee tres variantes:
                                      
      Variante A: .bugtraq - Variante B: .unlock - Variante C: .cinik
                                      
   Estos son ejecutables del worm que se alojan en el directorio /tmp de
    las mquinas atacadas, provocando que el atacante tome el control de
       la maquina infectada, enviando informacin valiosa a un email
                      predeterminado por el atacante.

     La grave vulnerabilidad que afecta a la librera de compresin de
   archivos, zlib, y a cualquier programa que la utilice, permitira que
     un usuario malicioso ejecute cdigo arbitrario. En el caso de una
   aplicacin de red que se ejecuta con permisos de sper usuario y esta
   enlazada con zlib, un usuario malicioso podra ganar permisos de sper
                          usuario en forma remota.
                                      
       La vulnerabilidad de zlib se corrigi en Debian en la versin
    1.1.3-5.1. Existen aplicaciones que estn enlazadas dinmicamente o
   incluyen una copia privada de zlib. Estos deben ser actualizados para
                    eliminar la vulnerabilidad de zlib.
    Vulnerabilidad en rsync (herramienta para sincronizar archivos entre
    ordenadores) contiene una vulnerabilidad que puede ser utilizada por
      usuarios remotos maliciosos para ejecutar cdigo. Se recomienda
           actualizar inmediatamente rsync a la versin 2.3.2-1.3
    Desbordamiento de buffer en glibc. Se encontr un desbordamiento de
   buffer en el codigo de glibc. Este se corrigi en la versin 2.1.3-20
                y recomiendan su actualizacin de inmediato.


   A medida se van descubriendo, se van corrigiendo. De ah la
   importancia de tener un sistema actualizado como medida imprescindible
   de seguridad.

   La comprobacin de los registros, logs, nos avisa de las anomalas
   habidas en nuestro sistema, hay quien apunta a que es conveniente
   logear en otro HD, pero en caso de intrusin, si se bloquea el logeo,
   no nos dariamos cuenta hasta pasado un rato de la inactividad, dejando
   un tiempo muerto suficiente para la perdida del dominio de nuestra
   mquina.

   Lo mismo ocurre en cuanto a los sistemas de seguridad fsicos que
   impiden que al abandonar nuestra mquina otro pueda acceder
   "relativamente", pues esto lo que hace es que activa un
   salvapantallas, y al intentar entrar, se activa una ventana que
   solicita login. Esto haciendo Ctrl + Alt + F1, F2 o F3 y te pasas a la
   consola y all con Ctrl + C, matas el proceso de las X y tienes una
   Shell. Solucin: ejecutar siempre las X con el comando exec startX,
   con esto se consigue que pida login, y no pueda acceder el intruso.

   Otro factor a tener en cuenta son las copias de seguridad, tan
   importantes como la seguridad en si, la seguridad no solamente esta en
   evitar que entren intrusos en el sistema, sino la posibilidad de no
   perder los datos, ante una caida, bajada de tensin u otro percance
   que pueda dejarnos momentaneamente sin datos. Osea hacer copias
   frecuentemente como costumbre, es un mtodo de seguridad infalible.

   Desglosemos un poco la seguridad en Linux... El COMO en la seguridad
   en linux nos ofrece estos factoresa los que me retiro literalmente, no
   sin antes haber pedido autorizacin para ello:

   Seguridad Fsica

   El primer escaln de seguridad que se necesita tener en cuenta es la
   seguridad fsica de tus sistemas de ordenadores. Quin tiene acceso
   fsico directo a tu equipo? Debe tenerlo? Puedes proteger tu equipo
   de su entrometimiento? Debes hacerlo?

   Cunta seguridad fsica necesitas en tu sistema depende mucho de tu
   situacin y/o presupuesto.

   Si eres un usuario domstico, probablemente no necesites mucha (aunque
   podras necesitar proteger tu equipo de la intromisin de nios o
   parientes fastidiosos). Si ests en un laboratorio, necesitas
   considerablemente ms, pero los usuarios an necesitan poder obtener
   el trabajo hecho con las mquinas. Muchas de las siguientes secciones
   te ayudarn con esto. Si ests en una oficina, puedes o no necesitar
   asegurar tu mquina algunas horas o mientras ests fuera. En algunas
   empresas, dejar tu consola sin asegurar es causa de despido.

   Los mtodos obvios de seguridad fsica tales como cierres de puertas,
   cables, cabinas cerradas y vigilancia por vdeo son todas buenas
   ideas, pero estn ms all del alcance de este documento. :)

   Cierre del ordenador
   Muchas carcasas de los modernos PCs incluyen una opcin de "cierre".
   Normalmente ser una cerradura en el frente de la carcasa que te
   permite girar la llave que trae a una posicin abierta o cerrada. El
   cierre de la carcasa puede ayudar a impedir que alguien te robe tu PC,
   o que abra la carcasa y manipule/robe directamente tu hardware. A
   veces tambin impide que alguien reinicie tu ordenador con su propio
   diskette u otro hardware.

   Estos cierres de carcasa hacen cosas diferentes segn el soporte en la
   placa base y de cmo est construda la carcasa. En muchos PCs lo
   hacen de modo que hay que romper la carcasa para abrirla. En otros, lo
   hacen de modo que no te permite enchufar en ella nuevos teclados y
   ratones. Comprueba tu placa base o las instrucciones de la carcasa
   para ms informacin. A veces esta puede ser una caracterstica muy
   til, an cuando los cierres normalmente son de muy baja calidad y
   pueden ser vencidos fcilmente por atacantes con conocimientos de
   cerrajera.

   Algunas carcasas (ms notablemente las de SPARC y mac) tienen una
   mochila por detrs que, si pones un cable alrededor, los atacantes
   tendrn que cortar el cable o romper la caja para entrar. El mero
   hecho de poner una cerradura o un cierre de combinacin, puede ser un
   buen elemento disuasorio para alguien que intente robar tu equipo.

   Seguridad del BIOS
   El BIOS es el nivel ms bajo de software que configura o manipula tu
   hardware para x86. LILO y otros mtodos de inicio de Linux acceden al
   BIOS para determinar cmo iniciar tu equipo Linux. Otro hardware que
   se ejecuta en Linux tiene un software similar (OpenFirmware en Macs y
   los nuevos Suns, el inicio de Sun PROM, etc...). Puedes usar tu BIOS
   para impedir que los atacantes reinicien tu equipo y manipulen tu
   sistema Linux.

   Muchos BIOS de PC permiten poner una contrasea de inicio. Esto no
   proporciona mucha seguridad (el BIOS se puede reconfigurar, o
   quitarse, si alguien entra en la caja), pero podra ser un buen
   elemento disuasorio (esto es, lleva tiempo y deja huellas de la
   intrusin). De modo similar, en S/Linux (Linux para las mquinas
   procesadoras SPARC(mr)), tu EEPROM puede configurarse para pedir una
   contrasea de inicio. Esto podra tumbar a los atacantes torpes.

   Muchos BIOS de x86 tambin permiten especificar otras diversas
   configuraciones de seguridad buenas. Comprueba tu manual de BIOS o
   mralas la prxima vez que inicies. Por ejemplo, algunos BIOS no
   permiten iniciar desde unidades de discos floppy y algunos requieren
   contraseas para acceder a algunas caractersticas del BIOS.

   Nota: Si tienes un equipo servidor y estableces una contrasea de
   inicio, tu equipo no se iniciar sin atencin. Recuerda que
   necesitars venir y entrar la contrasea en el caso de un fallo de
   energa. ;(

   Seguridad del cargador de Inicio
   Los distintos cargadores de inicio de Linux pueden tener tambin un
   juego de contrasea de inicio. LILO, por ejemplo, tiene password y
   restricted; password requiere siempre la contrasea en el momento del
   inicio, mientras que restricted requiere una contrasea para inicio
   slo si se especifican algunas opciones (tales como single) en el
   indicador de LILO .

   Ten presente cuando establezcas todas estas contraseas que
   necesitars recordarlas. :) Recuerda tambin que estas contraseas
   meramente retrasarn al atacante resuelto. No impedirn a alguien
   iniciar desde un floppy y montar tu particin de root. Si vas a usar
   seguridad junto con el cargador de inicio, podras tambin desactivar
   el inicio desde un floppy en el BIOS de tu ordenador y proteger el
   BIOS con contrasea.

   Si alguien tiene informacin relacionada con la seguridad desde un
   cargador de inicio diferente, nos encantara oirla. (grub, silo, milo,
   linload, etc).

   Nota: Si tienes un equipo servidor y estableces una contrasea de
   inicio, tu equipo no se iniciar sin atencin. Recuerda que
   necesitaras venir y poner la contrasea en el caso de un fallo de
   corriente. ;(

   xlock y vlock
   Si te alejas de tu mquina de vez en cuando, es bueno poder "cerrar"
   tu consola para que nadie la asalte o mire tu trabajo. Dos programas
   que hacen esto son: xlock y vlock.

   xlock es un cierre X de presentacin en pantalla. Debe estar incluido
   en todas las distribuciones de Linux que soporten X. Comprueba la
   pgina correspondiente del manual para ms opciones, pero en general
   puedes ejecutar xlock desde cualquier terminal x de tu consola y se
   cerrar la pantalla, que requerir tu contrasea para abrirse.

   vlock es un programita simple que te permite cerrar algunas o todas
   las consolas virtuales en tu sistema Linux. Puedes cerrar slo aquella
   en la que ests trabajando o todas. Si slo cierras una, otros pueden
   entrar y usar la consola; no podrn usar tu consola virtual hasta que
   la abras. vlock viene con Linux Redhat, pero tus resultados pueden ser
   diferentes.

   Cerrar la consola impedir a alguien entrometerse en tu trabajo, pero
   desde luego no le impedir reiniciar tu equipo o estropear de otro
   modo tu trabajo. Tampoco le impedir acceder a tu equipo desde otra
   equipo en la red y causar problemas.

   Ms importante, no impide a alguien desconectar completamente el
   Sistema X Window, ir al indicador de conexin de una consola virtual
   normal, o al VC desde el cual se arranc el X11, suspenderlo y as
   obtener tus privilegios. Por esta razn, deberas considerar usarlo
   slo bajo control de xdm.

   Detectar Compromisos de Seguridad Fsica
   La primera cosa a comprobar siempre es cundo fue reiniciado tu
   equipo. Dado que Linux es un sistema operativo (SO) robusto y estable,
   las nicas veces que tu equipo debe reiniciarse es cuando t lo
   desmontas para mejoras en el SO, recambios de hardware o cosas as. Si
   tu equipo ha sido reiniciado sin t hacerlo, eso puede ser un signo de
   que un intruso lo ha puesto en peligro. Muchos de los modos en que tu
   equipo puede verse comprometido requieren que el intruso reinicie o
   apague el equipo.

   Comprueba los signos de intrusin en la carcasa y el rea del
   ordenador. Aunque muchos intrusos limpian las huellas de su presencia
   de los logs, es una buena idea comprobarlos todos y anotar cualquier
   discrepancia.

   Tambin es una buena idea almacenar los datos de log en un lugar
   seguro, tal como un servidor dedicado a log dentro de tu red bien
   protegida. Una vez que un equipo ha estado comprometido, los datos de
   log sern de poca utilidad porque lo ms probable es que tambin hayan
   sido modificados por el intruso.

   El demonio syslog puede ser configurado para enviar automticamente
   datos de log a un servidor central de syslog, pero normalmente se
   envan datos en texto plano, permitiendo a un intruso ver los datos
   cuando estn siendo transferidos. Esto puede revelar informacin sobre
   tu red que no quieres que sea pblica. Hay disponibles demonios syslog
   que encriptan los datos cuando se estn enviando.

   S consciente tambin de que falsificar mensajes de syslog es fcil -
   con un programa de exploit que haya sido publicado. Syslog incluso
   acepta entradas de log de red que dicen venir del host local sin
   indicar su origen verdadero.

   Algunas cosas a comprobar en tus logs: 

                         Logs cortos o incompletos.
              Logs que contengan registros de fecha extraos.
               Logs con permisos o propietarios incorrectos.
            Registros de reinicios o de recomienzo de servicios.
                               Logs perdidos.
                Entradas su o logins desde sitios extraos.


   Seguridad Local

   La siguiente cosa a mirar es la seguridad de tu sistema contra los
   ataques procedentes de usuarios locales. Dijimos usuarios locales?
   S!

   Una de las primeras cosas que intentan los intrusos de un sistema como
   va para explotar la cuenta de root es obtener acceso a una cuenta de
   usuario local. Con una seguridad local laxa, pueden entonces "mejorar"
   su acceso de usuario normal a acceso de root usando diversos bugs y
   servicios locales pobremente configurados. Si te aseguras de que tu
   seguridad local es adecuada, entonces el intruso tendr que superar
   otro obstculo.

   Los usuarios locales tambin pueden ocasionar un montn de estragos en
   tu sistema, incluso (especialmente) si son realmente quienes dicen que
   son. Proporcionar cuentas a gente que no conoces o de la que no tienes
   informacin de contacto es una idea muy mala.

   Crear Nuevas Cuentas
   Asegrate de que provees cuentas de usuario slo con los
   requerimientos minimos para la tarea que necesiten hacer. Si
   proporcionas a tu hijo (10 aos) una cuenta, podras querer que l
   slo tenga acceso a un procesador de textos o un programa de dibujo,
   pero que le sea imposible borrar datos que no son suyos.

   Algunas buenas reglas empricas sobre permitir a otra gente acceso
   legtimo a tu mquina Linux:

   Darles la cantidad mnima de privilegios que necesiten.
   Ser consciente de desde cundo/dnde se conectan o se deberan estar
   conectando.
   Asegrate de remover las cuentas inactivas.
   El uso del mismo ID de usuario en todos los ordenadores y redes es
   aconsejable para facilitar el mantenimiento del recuento, as como
   para permitir un anlisis ms fcil de los datos de log.
   La creacin de ID de usuario de grupo debera estar absolutamente
   prohibida. Las cuentas de usuario tambin proporcionan transparencia y
   esto no es posible con cuentas de grupo.
   Muchas cuentas de usuario local que se usan en los compromisos de
   seguridad son las que no han sido usadas durante meses o aos. Dado
   que nadie est usndolas, proporcionan el vehculo ideal de ataque.

   Seguridad del Root
   La cuenta ms buscada en tu equipo es la cuenta de root
   (superusuario). Esta cuenta tiene autoridad sobre toda el equipo, lo
   cual puede incluir tambin autoridad sobre otros equipos en la red.
   Recuerda que slo debes usar la cuenta de root para tareas muy cortas
   y especficas y que mayormente debes ejecutar programas como un
   usuario normal. Incluso los pequeos errores que cometas mientras
   ests conectado como root pueden causar problemas. Mientras menos
   tiempo ests conectado con privilegios de root, ms seguro estars.

   Varios trucos para evitar echar a perder como root tu propio equipo:

   Al realizar algn comando complejo, intenta ejecutarlo primero en modo
   no destructivo... especialmente los comandos que usen comodines: p.e.,
   si quieres hacer "rm foo*.bak", primero haz "ls foo*.bak" y asegrate
   que vas a borrar los archivos que piensas que vas a borrar. Usar echo
   en lugar de comandos destructivos tambin funciona a veces.
   Proporciona a tus usuarios un alias por defecto para que el comando rm
   les pida confirmacin para el borrado de archivos.
   Convirtete en root slo para hacer tareas simples y especficas. Si
   ests intentando planificar cmo hacer algo, vuelve al shell de
   usuario normal hasta que ests seguro de lo que necesita ser hecho por
   el root.
   El comando path es muy importante para el usuario root. El comando
   path (esto es, la variable de entorno PATH) especifica los directorios
   en los que el shell busca los programas. Procura limitar el comando
   path para el usuario root tanto como sea posible y nunca incluyas .
   (que significa "el directorio actual") en tu PATH. Adems, nunca
   tengas directorios escribibles en tu path de bsqueda, dado que esto
   puede permitir a los atacantes modificar o poner nuevos binarios en tu
   path de bqueda, permitindoles ejecutar como root la prxima vez que
   ejecutes ese comando.
   Nunca uses como root el conjunto de herramientas rlogin/rsh/rexec (las
   llamadas utilidades-r). Estn sujetas a muchos tipos de ataques y es
   absolutamente peligroso ejecutarlas como root. Nunca crees un archivo
   .rhosts para el root.
   El archivo /etc/securetty contiene una lista de terminales desde los
   que puede conectarse el root. Por defecto (con Linux Red Hat) esto se
   pone slo para las consolas virtuales locales (vtys). Ten mucho
   cuidado al aadir cualquier otra cosa a este archivo. Tendras que ser
   capaz de conectar remotamente como tu cuenta de usuario regular y
   entonces hacer su si lo necesitas (esperemos que sobre ssh u otro
   canal encriptado), as que no hay necesidad de conectar direcamente
   como root.
   Acta despacio y de forma meditada cuando ejecutes programas como
   root. Tus acciones podran afectar a un montn de cosas. Piensa antes
   de teclear!
   Si irremediablemente necesitas permitir que alguien (mejor de mucha
   confianza) tenga acceso como root a tu mquina, hay algunas
   herramientas que te pueden ayudar. sudo permite a los usuarios usar su
   contrasea para acceder como root a un conjunto restringido de
   comandos. Esto te posibilitara, por ejemplo, permitir que un usuario
   pueda extraer y montar medios removibles en tu sistema Linux, pero no
   tener otros privilegios de root. sudo tambin mantiene un log de todos
   los intentos sudo exitosos y fracasados, permitindote rastrear quin
   us qu comando para hacer qu. Por esta razn sudo funciona bien
   incluso en lugares donde muchas personas tienen acceso de root, porque
   te ayuda a mantener un registro de los cambios realizados.

   Aunque sudo puede usarse para dar a usuarios especficos privilegios
   especficos para tareas especficas, tiene varios defectos. Debe
   usarse slo para un conjunto limitado de tareas, como reiniciar un
   servidor o aadir nuevos usuarios. Cualquier programa que ofrece una
   salida al shell dar acceso de root a un usuario que lo pida va sudo.
   Esto incluye a la mayora de los editores, por ejemplo. Tambin un
   programa tan inocuo como /bin/cat puede usarse para sobreescribir
   archivos, lo que podra permitir que el root fuese explotado.
   Considera sudo como un medio de contabilidad y no esperes que
   sustituya al usuario root y que encima sea seguro.

   Seguridad de Ficheros y Sistemas de Ficheros

   Algunos minutos de preparacin y planificacin antes de poner tus
   sistemas online puede ayudar a protegerlos a ellos y a los datos
   almacenados en ellos.

   Nunca debe haber una excusa para que los usuarios ejecuten programas
   SUID/SGID desde sus directorios home. Usa la opcin nosuid en
   /etc/fstab para particiones que sean escribibles por otros que no sean
   root. Tambin puedes querer usar nodev y noexec sobre particiones home
   de usuarios, as como /var, prohibiendo de este modo la ejecucin de
   programas y la creacin de dispositivos de carcter o de bloque, que
   de todos modos nunca seran necesarios.
   Si ests exportando sistemas de ficheros usando NFS, asegrate de
   configurar /etc/exports con el acceso ms restrictivo posible. Esto
   significa no usar comodines, no permitir acceso de escritura de root y
   exportar ficheros de slo-lectura siempre que sea posible.
   Configura tu umask de creacin de archivos de usuarios para que sean
   tan restrictivos como sea posible. Ver configuraciones de umask.
   Si ests montando sistemas de ficheros usando un sistema de ficheros
   de red tal como NFS, asegrate de configurar /etc/exports con
   restricciones adecuadas. Normalmente, es deseable usar `nodev',
   `nosuid' y, quizs, `noexec'.
   Poner lmites al sistema de ficheros en vez de dejarlo ilimitado como
   viene por defecto. Puedes controlar los lmites por usuario usando el
   mdulo PAM de lmites de recursos y /etc/pam.d/limits.conf. Por
   ejemplo, los lmites para el grupo usuarios podran parecerse a esto:

   @users hard core 0
   @users hard nproc 50
   @users hard rss 5000

   Esto significa prohibir la creacin de ficheros core, restringir el
   nmero de procesos a 50 y restringir el uso de memoria por usuario a
   5M.

   Los ficheros /var/log/wtmp y /var/run/utmp contienen los registros de
   conexin de todos los usuarios en tu sistema. Debe mantenerse su
   integridad porque pueden usarse para determinar cundo y desde dnde
   ha entrado un usuario (o un intruso potencial) en tu sistema. Estos
   ficheros tambin deben tener permisos 644 sin afectar a la operacin
   normal del sistema.

   El bit inmutable puede usarse para impedir borrar o sobreescribir
   accidentalmente un fichero que debe ser protegido. Tambin impide que
   alguien cree un enlace simblico al fichero (tales enlaces simblicos
   han sido la fuente de ataques incluyendo borrar /etc/passwd o
   /etc/shadow). Ver la pgina para chattr(1) del manual para informacin
   sobre el bit inmutable.

   Los ficheros SUID y SGID de tu sistema son un riesgo potencial de
   seguridad y deben ser manejados cuidadosamente. Dado que estos
   programas conceden privilegios especiales al usuario que est
   ejecutndolos, es necesario asegurarse de que no se instalen programas
   inseguros. Un truco favorito de los crackers es explotar programas
   SUID de root y dejar un programa SUID como puerta trasera para entrar
   la prxima vez, incluso si el agujero original es tapado.
   Encuentra todos los programas SUID/SGID en tu sistema y mantn un
   registro de lo que son, para que seas consciente de cualesquiera
   cambios que te podran indicar que hay un intruso potencial. Usa el
   comando siguiente para encontrar todos los programas SUID/SGID en tu
   sistema:

          root# find / -type f \( -perm -04000 -o -perm -02000 \)

   La distribucin Debian ejecuta cada noche la tarea de determinar qu
   ficheros SUID existen. Luego compara esto a lo de las noches previas.
   Puedes verlo en /var/log/suid* para este log.

   Puedes quitar los permisos SUID o SGID a un programa sospechoso con
   chmod, despus cambialo de nuevo si crees que es absolutamente
   necesario.
   Los ficheros escribibles por todo el mundo, particularmente los
   ficheros de sistema, pueden ser un agujero de seguridad si un cracker
   logra acceso a tu sistema y los modifica. Adems, los directorios
   escribibles por todos son peligrosos, dado que permiten a un cracker
   aadir o borrar ficheros a su antojo. Para localizar todos los
   ficheros escribibles por todos en tu sistema, usa el siguiente
   comando:

                    root# find / -perm -2 ! -type l -ls

   y asegrate de que sabes por qu esos ficheros son escribibles. En el
   curso normal de la operacin, diversos ficheros sern escribibles por
   todos, incluyendo algunos desde /dev, y enlaces simblicos, as el !
   -type l que excluye a stos del comando previo find.
   Los ficheros sin propietario tambin pueden ser un indicio de que un
   intruso ha accedido a tu sistema. Puedes localizar en tu sistema los
   ficheros sin propietario, o que no pertenezcan a ningn grupo, con el
   comando:

                  root# find / -nouser -o -nogroup -print

   Encontrar ficheros .rhosts debera ser parte de tus deberes regulares
   de administracin del sistema, puesto que estos ficheros no deben
   estar permitidos en tu sistema. Recuerda: un cracker slo necesita una
   cuenta insegura para, potencialmente, lograr acceso a toda tu red.
   Puedes localizar todos los ficheros .rhosts en tu sistema con el
   siguiente comando:

                   root# find /home -name .rhosts -print

   Finalmente, antes de cambiar los permisos sobre cualesquiera ficheros
   de sistema, asegrate de que entiendes lo que ests haciendo. Nunca
   cambies los permisos sobre un fichero porque parezca el modo ms fcil
   de lograr que las cosas funcionen. Determina siempre por qu el
   fichero tiene ese permiso antes de cambiarlo.

   Configuraciones de Umask
   El comando umask puede usarse para determinar el modo por defecto de
   creacin de ficheros en tu sistema. Es el complemento octal del modo
   de fichero deseado. Si los ficheros se crean sin tomar en cuenta sus
   configuraciones de permisos, el usuario inadvertidamente podra dar
   permiso de lectura o escritura a alguien que no debera tener este
   permiso. Normalmente, las configuraciones de umask incluyen 022, 027 y
   077 (que es el ms restrictivo). Normalmente el umask se pone en
   /etc/profile, as se aplica a todos los usuarios en el sistema. La
   mscara de creacin de archivos puede calcularse restando el valor
   deseado de 777. En otras palabras, un umask de 777 supondra que los
   ficheros nuevos creados no contendran permiso de lectura, escritura o
   ejecucin para nadie. Una mscara de 666 causara que los ficheros
   nuevos creados tengan una mscara de 111. Por ejemplo, puedes tener
   una lnea que se parezca a sta:

   # Set the user's default umask
   umask 033

   Asegrate de poner el umask de root en 077, lo que discapacitar el
   permiso de lectura, escritura y ejecucin para otros usuarios, a menos
   que se cambie explicitamente usando chmod. En este caso, los
   directorios recin creados tendran permisos 744, obtenido restando
   033 de 777. Los ficheros nuevos creados usando el umask 033 tendran
   permisos de 644.
   Si ests usando Red Hat, y te sumas a su esquema de creacin de ID de
   usuario y de grupo (Grupos Privados de Usuario), slo es necesario
   usar 002 para un umask. Esto es debido al hecho de que la
   configuracin por defecto es de un usuario por grupo.

   Permisos de Fichero
   Es importante asegurar que tus ficheros de sistema no estn abiertos a
   la edicin casual por usuarios y grupos que no deberan estar
   realizando tal mantenimiento del sistema.

   Unix separa el control de acceso sobre ficheros y directorios conforme
   a tres caractersticas: propietario, grupo y otro. Siempre hay
   exactamente un dueo, cualquier nmero de miembros del grupo y todos
   los otros.

   Una rpida explicacin de los permisos de Unix:

   Dueo - Qu usuario(s) y grupo(s) mantiene(n) el control de las
   configuraciones de permisos del nodo y del padre del nodo.

   Permisos - Los bits que pueden ser establecidos o reestablecidos para
   permitir ciertos tipos de acceso. Los permisos para directorios pueden
   tener un significado diferente al del mismo conjunto de permisos para
   ficheros.

   Lectura:

               Ser capaz de ver los contenidos de un fichero
                      Ser capaz de leer un directorio

   Escritura:

                  Ser capaz de aadir o cambiar un fichero
           Ser capaz de borrar o mover ficheros en un directorio

   Ejecucin:

       Ser capaz de ejecutar un programa binario o un script de shell
   Ser capaz de buscar en un directorio, combinado con permiso de lectura


   Atributo de Salvar Texto: (Para directorios) 
   El "bit inmutable" tiene tambin un significado diferente cuando se
   aplica a directorios que cuando se aplica a ficheros. Si el bit
   inmutable se pone en un directorio, entonces el usuario slo puede
   borrar los ficheros de los que es dueo o para los que tiene concedido
   un permiso explcito de escritura, incluso cuando tiene acceso de
   escritura al directorio. Esto est diseado para directorios como
   /tmp, que son escribibles por todos, pero donde puede no ser deseable
   permitir a cualquier usuario borrar ficheros a su gusto. El bit
   inmutable se ve como t en un listado largo de directorio.

   Atributo SUID: (Para Ficheros)
   Esto describe el conjunto de permisos de identidad de usuario sobre el
   fichero. Cuando el modo de acceso al conjunto de identidad de usuario
   se configura como permisos de propietario, y el fichero es ejecutable,
   a los procesos que se ejecutan bajo l se les concede acceso a los
   recursos del sistema basndose en el usuario dueo del fichero, como
   opuesto al usuario que ha creado el proceso. Esto es la causa de
   muchos exploits por "desbordamiento de bfer" ("buffer overflow").

   Atribut SGID : (Para Ficheros) 
   Si se configura en los permisos de grupo, este bit controla la
   posicin del "paquete de identidad de grupo" de un fichero. Acta de
   la misma manera que el SUID, excepto en que es el grupo el afectado.
   El fichero debe ser ejecutable para que esto tenga algn efecto.

   Atributo SGID: (Para directorios)
   Si pones el bit SGID en un directorio (con chmod g+s directory), los
   ficheros creados en ese directorio tendrn su configuracin de grupo
   para el grupo del directorio.

   T - El dueo del fichero

   Grupo - El grupo al que perteneces

   Cualquiera - Cualquiera en el sistema que no es el propietario o un
   miembro del grupo

   Ejemplos de Fichero:

              -rw-r--r-- 1 kevin users 114 Aug 28 1997 .zlogin
                         1st bit - directorio? (no)
                 2nd bit - leer por dueo? (s, por kevin)
               3rd bit - escribir por dueo? (s, por kevin)
                     4th bit - ejecutar por dueo? (no)
                5th bit - leer por grupo? (s, por usuarios)
                     6th bit - escribir por grupo? (no)
                     7th bit - ejecutar por grupo? (no)
            8th bit - leer por cualquiera? (s, por cualquiera)
                   9th bit - escribir por cualquiera?(no)
                  10th bit - ejecutar por cualquiera?(no)

   Las siguientes lneas son ejemplos de los conjuntos mnimos de
   permisos que se requieren para realizar el acceso descrito. Si quieres
   puedes dar ms permisos de los que estn listados aqu, pues esto
   describe lo que hacen estos permisos mnimos sobre los ficheros:

   -r-------- Permite acceso de lectura al fichero por el dueo
   --w------- Permite al dueo modificar o borrar el fichero
   (Date cuenta que cualquiera con permiso de escritura en el directorio
   donde est el fichero puede sobreescribirlo y borrarlo)
   ---x------ El dueo puede ejecutar ese programa, pero no scripts de
   shell, que requieren an permiso de lectura
   ---s------ Se ejecutar con ID Usuario = dueo efectivo
   --------s- Se ejecutar con ID Grupo = grupo efectivo
   -rw------T No pone al da "ltima fecha modificada". Normalmente se
   usa para ficheros swap
   ---t------ Sin efecto. (anteriormente bit inmutable)

   Ejemplo de Directorio:

          drwxr-xr-x 3 kevin users 512 Sep 19 13:47 .public_html/
            1st bit - directorio? (s, contiene muchos ficheros)
                 2nd bit - leer por dueo? (s, por kevin)
               3rd bit - escribir por dueo? (s, por kevin)
               4th bit - ejecutar por dueo? (s, por kevin)
                5th bit - leer por grupo? (s, por usuarios)
                     6th bit - escribir por grupo? (no)
              7th bit - ejecutar por grupo? (s, por usuarios)
            8th bit - leer por cualquiera? (s, por cualquiera)
                   9th bit - escribir por cualquiera?(no)
            10th bit - ejecutar por cualquiera?(s, cualquiera)

   Las lneas que siguen son ejemplos de los conjuntos mnimos de
   permisos que se requieren para ejecutar el acceso descrito. Si
   quieres, puedes dar ms permisos de los aqu listados, pues esto
   describe lo que hacen estos permisos mnimos sobre directorios:

   dr-------- Los contenidos pueden listarse, pero los atributos del
   fichero no pueden ser ledos
   d--x------ Se puede entrar en el directorio, y usarse en paths de
   ejecucin completos
   dr-x------ Los atributos del fichero pueden leerse por el dueo
   d-wx------ Los ficheros pueden ser creados/borrados, incluso si el
   directorio no es el activo
   d------x-t Impide el borrado de ficheros por otros con acceso de
   escritura. Se usa en /tmp
   d---s--s-- Sin efecto

   Los ficheros de configuracin del sistema (normalmente en /etc) estn
   usualmente en modo 640 (-rw-r-----) y el dueo es el root. Dependiendo
   de los requisitos de seguridad de tu sitio, puedes ajustar esto. Nunca
   dejes los ficheros de sistema escribibles por un grupo o por
   cualquiera. Algunos ficheros de configuracin, incluyendo /etc/shadow,
   slo deben ser legibles por el root y los directorios en /etc al menos
   no deben ser accesibles a otros.

   Scripts de Shell SUID
   Los scripts de shell SUID son un riesgo importante de seguridad y por
   esta razn el ncleo no les hace honores. Con independencia de lo
   seguro que t consideres que es el script de shell, puede ser
   explotado para dar al cracker un shell de root.

   Comprobar la Integridad con Tripwire Tripwire
   Otra manera muy buena de detectar ataques locales sobre tu sistema (y
   tambin a la red) es correr un chequeador de integridad como Tripwire.
   Tripwire ejecuta varias comprobaciones tipo checksum en todos tus
   ficheros binarios y de configuracin importantes y los compara contra
   una base de datos previa de valores de referencia bien conocidos. De
   este modo, todos los cambios en los ficheros se notarn.

   Es una buena idea instalar Tripwire en un floppy y despus ponerle
   fsicamente la proteccin contra escritura en el floppy. De este modo,
   los intrusos no podrn entrometerse con el mismo Tripwire ni cambiar
   la base de datos. Una vez que tengas configurado Tripwire, es una
   buena idea ejecutarlo como parte de tus deberes normales de
   administracin de seguridad para ver si algo ha cambiado.

   Puedes incluso aadir una entrada crontab para ejecutar Tripwire desde
   tu floppy todas las noches y mandarte un "emilio" con los resultados
   por la maana. Algo como:

   # set mailto
   MAILTO=kevin
   # run Tripwire
   15 05 * * * root /usr/local/adm/tcheck/tripwire

   te enviar por correo-e un informe cada maana a las 5:15am.
   Tripwire puede ser una bendicin para detectar intrusos antes de que
   los notes de otro modo. Dado que cambian un montn de ficheros en el
   resultado del sistema, tienes que tener cuidado con lo que es la
   actividad del cracker y lo que es tu propia actividad.

   Encontrars grtis Tripwire en [3]http://www.tripwiresecurity.com/.
   Los manuales y el soporte pueden comprarse.

   Caballos Troyanos 
   Los "Caballos Troyanos" se denominan as por la artimaa que se cuenta
   en la "Iliada" de Homero. La idea es que un cracker distribuye un
   programa o binario que suena estupendo, y anima a otra gente a
   descargarlo y a ejecutarlo como root. Entonces el programa puede
   comprometer su sistema y ellos no se dan cuenta. Mientras piensan que
   el binario que acaban de bajarse hace una cosa (y muy bien podra
   hacerla), tambin compromete su seguridad.

   Debes tener cuidado con qu programas instalas en tu mquina. Redhat
   proporciona comrpobaciones checksum MD5 y firmas PGP en sus ficheros
   RPM para que puedas verificar que ests instalando la cosa real. Otras
   distribuciones tienen similares mtodos. Nunca debes ejecutar como
   root cualquier binario desconocido, para el cual no tienes la fuente!
   Pocos atacantes quieren liberar el cdigo fuente para escrutinio
   pblico.

   Aunque puede ser complejo, asegrate que obtienes la fuente de un
   programa desde su sitio de distribucin autntico. Si el programa se
   va a ejecutar como root, asegrate de que o bien t o bien alguien en
   quien confas ha mirado la fuente y la ha verificado.

   Seguridad de Contraseas y Encriptacin.

   Uno de los rasgos de seguridad ms importantes usados hoy son las
   contraseas. Tanto para t como para tus usuarios es importante tener
   contraseas seguras y no fcilmente averiguables. La mayora de las
   distribuciones de Linux ms recientes incluyen programas passwd que no
   te permiten poner una contrasea fcilmente averiguable. Asegrate de
   que tu programa passwd est actualizado y tiene esos atributos.

   Est ms all del alcance de este documento una discusin profunda
   sobre encriptacin, pero una introduccin viene bien. La encriptacin
   es muy til, posiblemente incluso necesaria en este momento y poca.
   Hay todo tipo de mtodos de encriptar datos, cada uno con su propio
   conjunto de caractersticas.

   La mayora de los Unices (y Linux no es una excepcin) usan
   principalmente un algoritmo de encriptacin de una sola va, llamado
   DES (Data Encryption Standard), para encriptar tus contraseas. Esta
   contrasea encriptada se almacena entonces (normalmente) en
   /etc/passwd o (menos comn) en /etc/shadow. Cuando intentas conectar,
   la contrasea que introduces se encripta de nuevo y se compara con la
   que se entr en el fichero que almacena tus contraseas. Si casan,
   debe ser la misma contrasea y se te permite el acceso. Aunque DES es
   un algoritmo de encriptacin de doble va (puedes codificar y luego
   descodificar un mensaje, dadas las claves correctas), la variante que
   la mayora de los Unices usan es de una va. Esto quiere decir que no
   es posible revertir la encriptacin para obtener la contrasea a
   partir de los contenidos de /etc/passwd (o /etc/shadow).

   Los ataques de fuerza bruta, tales como "Crack" o "John the Ripper"
   (ver la Seccin crack ) a menudo pueden averiguar las contraseas, a
   menos que tu contrasea sea lo suficientemente aleatoria. Los mdulos
   PAM (ver abajo) te permiten usar una rutina de encriptacin diferente
   con tus contraseas (MD5 o parecidos). Tambin puedes usar Crack en tu
   provecho. Considera el ejecutar peridicamente Crack contra tu base de
   datos de contraseas, para encontrar contraseas inseguras. Contacta
   entonces con el usuario afectado e instryelo para que cambie su
   contrasea.

   Puedes ir a [4]http://consult.cern.ch/writeup/security/security_3.html
   para ms informacin sobre cmo elegir una buena contrasea.

   Criptografa PGP y de Clave-Pblica

   La criptografa de clave pblica, tal como la que usa PGP, usa una
   clave para encriptacin y una clave para desencriptacin. La
   criptografa tradicional, sin embargo, usa la misma clave para
   encriptacin y desencriptacin; esta clave debe ser conocida por las
   dos partes y ser transferida de alguna forma desde una a la otra con
   seguridad.

   Para aliviar la necesidad de transmitir con seguridad la clave de
   encriptacin, la encriptacin de clave pblica usa dos claves
   separadas: una clave pblica y una clave privada. La clave pblica de
   cada persona est disponible para que cualquiera haga la encriptacin,
   mientras que, al mismo tiempo, cada persona mantiene su clave privada
   para descifrar los mensajes encriptados con la clave pblica correcta.

   Hay ventajas tanto en la criptografa de clave pblica y de clave
   privada y se puede leer sobre sus diferencias en el RSA Cryptography
   FAQ, listado al final de esta seccin.

   PGP (Pretty Good Privacy) est bien soportado en Linux. Las versiones
   2.6.2 y 5.0 se sabe que funcionan bien. Para una buena instruccin
   sobre PGP y cmo usarlo, echa un vistazo al FAQ de PGP:
   [5]http://www.pgp.com/service/export/faq/55faq.cgi

   Asegrate de usar la versin que es aplicable en tu pas. Debido a las
   restricciones a la exportacin por parte del Gobierno de los USA, est
   prohibido que la encriptacin fuerte sea transferida de forma
   electrnica fuera del pas.

   Los controles de USA sobre la exportacin se rigen ahora por EAR
   (Export Administration Regulations). Ya no se gobiernan por ITAR.

   Hay tambin una gua paso a paso para configurar PGP en Linux
   disponible en
   [6]http://mercury.chem.pitt.edu/~angel/LinuxFocus/English/November1997
   /article7.html. Fue escrita para la versin internacional de PGP, pero
   es adaptable fcilmente a la versin de los Estados Unidos. Tambin
   puedes necesitar un patch para algunas de las ltimas versiones de
   Linux; el patch est disponible en
   [7]ftp://metalab.unc.edu/pub/Linux/apps/crypto.

   Hay funcionando un proyecto sobre una re-implementacin libre de pgp
   con fuente abierta. GnuPG es un sustituto completo y grtis de PGP.
   Porque no usa IDEA ni RSA puede usarse sin restricciones. GnuPG est
   casi de acuerdo con RFC2440 (OpenPGP). Ver la pgina web GNU Privacy
   Guard para ms informacin: [8]http://www.gpg.org/.

   Ms informacin sobre criptografa puede encontrarse en el FAQ de
   criptografa de RSA, disponible en
   [9]http://www.rsa.com/rsalabs/newfaq/. Aqu encontrars informacin
   sobre trminos tales como "Diffie-Hellman", "criptografa de clave
   pblica", "certificados digitales", etc.

   SSL, S-HTTP, HTTPS y S/MIME
   Con frecuencia los usuarios preguntan sobre las diferencias entre los
   diversos protocolos de seguridad y encriptacin y sobre cmo usarlos.
   Aunque ste no es un documento sobre encriptacin, es una buena idea
   explicar brevemente lo que es cada protocolo y dnde encontrar ms
   informacin.

   SSL: - SSL, o Secure Sockets Layer, es un mtodo de encriptacin
   desarrollado por Netscape para proveer de seguridad en Internet.
   Soporta diversos protocolos de encriptacin diferentes y proporciona
   autentificacin de cliente y servidor. SSL opera en el nivel de
   transporte, crea un canal seguro de datos encriptados, y as puede
   encriptar sin costuras datos de muchos tipos. Esto se ve ms
   fcilmente cuando se va a un sitio seguro para ver un documento online
   seguro con Communicator, y sirve de base para comunicaciones seguras
   con Communicator, as como para muchas otras Comunicaciones de
   Netscape con encriptacin de datos. Ms informacin puede encontrarse
   en [10]http://www.consensus.com/security/ssl-talk-faq.html. Hay
   informacin sobre otras implementaciones de seguridad de Netscape, y
   un buen punto de partida para estos protocolos, disponible en
   [11]http://home.netscape.com/info/security-doc.html.
   S-HTTP: - S-HTTP es otro protocolo que proporciona servicios de
   seguridad en Internet. Fue diseado para proporcionar
   confidencialidad, autentificacin, integridad y no repudiabilidad no
   puede confundirse con ningn otro], al tiempo que para soportar
   mecanismos de gestin de claves mltiples y algoritmos criptogrficos
   mediante la negociacin opcional entre las partes implicadas en cada
   transaccin. S-HTTP est limitado al software especfico que lo
   implementa, y encripta cada mensaje individualmente. [Del FAQ de
   Criptografa de RSA, pgina 138].
   S/MIME: - S/MIME, o Secure Multipurpose Internet Mail Extension, es un
   estndar de encriptacin usado para encriptar correo electrnico y
   otros tipos de mensajes en Internet. Es un estndar abierto
   desarrollado por RSA, as que es probable que lo veamos en Linux un
   da de estos. Ms informacin sobre S/MIME puede encontrarse en
   [12]http://home.netscape.com/assist/security/smime/overview.html.

   Implementaciones IPSEC para Linux
   Junto a CIPE y otras formas de encriptacin de datos, hay tambin
   diversas otras implementaciones de IPSEC para Linux. IPSEC es un
   esfuerzo de la IETF para crear comunicaciones criptogrficamente
   seguras a nivel de red IP y para proporcionar autentificacin,
   integridad, control de acceso y confidencialidad. Informacin sobre
   IPSEC e Internet puede encontrarse en
   [13]http://www.ietf.org/html.charters/ipsec-charter.html. Tambin
   puedes encontrar enlaces a otros protocolos que implican gestin de
   claves, una lista de correo sobre IPSEC y ficheros.

   La implementacin del x-kernel de Linux, que se est desarrollando en
   la Universidad de Arizona, usa un entorno basado en el objeto para
   implementar protocolos de red llamados x-kernel y puede encontrarse en
   [14]http://www.cs.arizona.edu/xkernel/hpcc-blue/linux.html. Dicho ms
   sencillo, el x-kernel es un mtodo de pasar mensajes a nivel de
   ncleo, lo que contribuye a una implementacin ms fcil.

   Otra implementacin IPSEC de libre disposicin es el FreeS/WAN IPSEC
   de Linux. Su pgina web afirma,

   "Estos servicios te permiten construir tneles seguros a travs de
   redes inseguras. Todo lo que pasa a travs de la red insegura es
   encriptado por la mquina pasarela IPSEC y desencriptado por la
   pasarela en el otro extremo. El resultado es la Red Privada Virtual
   (Virtual Private Network) o VPN. Esta es una red que es efectivamente
   privada, an cuando incluye equipos en diversos sitios diferentes
   conectados mediante la insegura Internet."
   Est disponible para descargar en [15]http://www.xs4all.nl/~freeswan/
   y ha alcanzado ya la 1.0 en el momento de escribir esto.

   Al igual que otras formas de criptografa, no se distribuye por
   defecto con el ncleo debido a restrictiones a la exportacin.

   ssh (Shell Seguro) y stelnet
   ssh y stelnet son programas que te permiten conectarte a sistemas
   remotos y tener una conexin encriptada.

   ssh es un paquete de programas usados como un sustituto seguro para
   rlogin, rsh y rcp. Usa la criptografa de clave pblica para encriptar
   comunicaciones entre dos hosts, asi como para autentificar usuarios.
   Puede usarse para conectar de forma segura a un host remoto o copiar
   datos entre hosts, al tiempo que se impiden los ataques
   hombre-en-medio (sesin hijacking) y el engao de DNS. Realizar una
   compresin de datos en tus conexiones y comunicaciones X11 seguras
   entre hosts. La pgina principal de ssh puede encontrarse en
   [16]http://www.cs.hut.fi/ssh/ 

   Tambin puedes usar ssh desde tu estacin de trabajo Windows a tu
   servidor Linux ssh. Hay varias implementaciones de cliente de Windows
   libremente disponibles, incluyendo la que est en
   [17]http://guardian.htu.tuwien.ac.at/therapy/ssh/ as como la
   implementacin comercial de DataFellows, en
   [18]http://www.datafellows.com/. Hay tambin un proyecto de fuente
   abierta para re-implementar ssh llamado "psst...". Para ms
   informacin ver: [19]http://www.net.lut.ac.uk/psst/ 

   SSLeay es una implementacin libre del protocolo Secure Sockets Layer
   de Netscape, desarrollado por Eric Young. Incluye diversas
   aplicaciones, tales como Secure para telnet, un mdulo para Apache,
   diversas bases de datos y diversos algoritmos incluyendo DES, IDEA y
   Blowfish.

   Usando esta librera se crea una sustitucin segura de telnet que
   realiza la encriptacin sobre una conexin telnet. A diferencia de
   SSH, stelnet usa SSL, el protocolo Secure Sockets Layer desarrollado
   por Netscape. Puedes encontrar Telnet Seguro y FTP Seguro, comenzando
   por el FAQ SSLeay, disponible en
   [20]http://www.psy.uq.oz.au/~ftp/Crypto/.

   SRP es otra implementacin segura de telnet/ftp. De su pgina web:

   "El proyecto SRP est desarrollando software de Internet seguro para
   uso libre en todo el mundo. Comenzando con una distribucin de Telnet
   y FTP completamente segura, esperamos reemplazar los dbiles sistemas
   de autentification en redes con sustitutos fuertes que no sacrifican
   la seguridad por la amigabilidad hacia el usuario. La seguridad debe
   estar por defecto, no ser una opcin!"
   Para ms informacin, ir a [21]http://srp.stanford.edu/srp.

   PAM - Mdulos de Autentificacin Enfuchables
   Las versiones ms recientes de la distribucin Red Hat de Linux vienen
   con un esquema unificado de autentificacin llamado "PAM". PAM te
   permite cambiar tus mtodos y requisitos de autentificacin al vuelo y
   encapsular todos los mtodos de autentificacin local sin recompilar
   ninguno de tus binarios. La configuracin de PAM est ms all del
   alcance de este documento, pero no dejes de echar una ojeada al sitio
   web de PAM para ms informacin.
   [22]http://www.kernel.org/pub/linux/libs/pam/index.html.

   Slo unas pocas de las cosas que puedes hacer con PAM:

   Usar otra encriptacin distinta a DES para tus contraseas.
   (Hacindolas ms difciles a la decodificacin por fuerza bruta)
   Establecer lmites de recursos sobre todos tus usuarios para que no
   puedan realizar ataques de negacin-de-servicio (nmero de procesos,
   cantidad de memoria, etc)
   Activar contraseas sombra (ver debajo) al vuelo
   Permitir a usuarios especficos conectar slo en momentos especficos
   desde sitios especficos
   Dedicar unas pocas horas a instalar y configurar tu sistema, puede
   impedir muchos ataques incluso antes de que ocurran. Por ejemplo, usa
   PAM para desactivar el uso por todo el sistema de ficheros .rhosts en
   los directorios home del usuario, aadiendo estas lneas a
   /etc/pam.d/rlogin:

                                     #
                    # Disable rsh/rlogin/rexec for users
                                     #
              login auth required pam_rhosts_auth.so no_rhosts

   Encapsulacin IP Criptogrfica (CIPE)
   El objetivo primero de este software es proporcionar una facilidad
   para la interconexin segura de subredes (contra indiscreciones,
   incluyendo el anlisis de trfico y la inyeccin de mensaje
   falsificado) a lo largo de una red insegura de paquetes tal como es
   Internet.

   CIPE encripta los datos a nivel de red. Los paquetes que viajan entre
   hosts por la red estn encriptados. El motor de encriptacin se sita
   cerca del controlador que enva y recibe los paquetes.

   Esto es distinto a SSH, que encripta los datos mediante conexin, al
   nivel de socket. Se encripta una conexin lgica entre programas que
   se ejecutan en diferentes hosts.

   CIPE puede usarse para hacer tneles, con el fin de crear una Red
   Privada Virtual (VPN). La encriptacin de nivel bajo tiene la ventaja
   de que puede hacerse funcionar de forma transparente entre las dos
   redes conectadas en la VPN, sin ningn cambio en el software de
   aplicacin.

   Resumido de la documentacin de CIPE:
   Los estndares IPSEC definen un conjunto de protocolos que pueden ser
   usados (entre otras cosas) para construir VPNs encriptadas. Sin
   embargo, IPSEC es ms bien un conjunto de protocolos de peso pesado y
   complicado con un montn de opciones, las implementaciones del
   conjunto completo de protocolos se usan an raramente y algunos
   problemas (tales como gestin de claves) no estn todava
   completamente resueltos. CIPE usa un enfoque ms simple, en el cual
   muchas cosas que pueden ser parametrizadas (tal como la eleccin del
   algoritmo de encriptacin real usado) son una eleccin que se fija en
   el momento de la instalacin. Esto limita la flexibilidad, pero
   permite una implementacin simple (y por tanto eficiente, fcil de
   depurar...).
   Ms informacin puede encontrarse en
   [23]http://www.inka.de/~bigred/devel/cipe.html

   Al igual que otras formas de criptografa, no es distribuda con el
   ncleo por defecto debido a restricciones a la exportacin.

   Kerberos
   Kerberos es un sistema de autentificacin desarrollado por el Proyecto
   Athena en el MIT. Cuando un usuario se conecta, Kerberos autentifica a
   este usuario (usando una contrasea) y proporciona al usuario una
   forma de probar su identidad a otros servidores y hosts esparcidos por
   toda de la red.

   Despus, esta autentificacin se usa por programas como rlogin para
   permitir al usuario conectar con otros hosts sin una contrasea (en
   lugar del fichero .rhosts). Este mtodo de autentificacin tambin
   puede usarse por el sistema de correo para garantizar que el correo se
   entrega a la persona correcta, as como para garantizar que el
   remitente es quien dice ser.

   Kerberos y los otros programas que vienen con l, impide a los
   usuarios "engaar" al sistema hacindole creer que son otros
   distintos. Desafortunadamente, instalar Kerberos es muy intrusivo, al
   requerir la modificacin o sustitucin de numerosos programas
   estndar.

   Puedes encontrar ms informacin sobre kerberos mirando en el kerberos
   FAQ y el cdigo puede encontrarse en
   [24]http://nii.isi.edu/info/kerberos/.

   [De: Stein, Jennifer G., Clifford Neuman, y Jeffrey L. Schiller.
   "Kerberos: An Authentication Service for Open Network Systems." USENIX
   Conference Proceedings, Dallas, Texas, Winter 1998.]

   Kerberos no debera ser tu primer paso para mejorar la seguridad de tu
   host. Es bastante embrollado y no se usa tan ampliamente como,
   digamos, SSH.

   Contraseas Sombra.
   Las contraseas sombra son un medio de mantener secreta, para los
   usuarios normales, la informacin de tu contrasea cifrada.
   Normalmente, estas contraseas encriptadas se almacenan en el fichero
   /etc/passwd de lectura para todos. Cualquiera puede ejecutar sobre
   ellas programas que averiguan contraseas e intentar determinar lo que
   son. Las contraseas sombra, por el contrario, se archivan en
   /etc/shadow, que slo pueden leer los usuarios privilegiados. Para
   usar contraseas sombra, necesitas asegurarte de que todas tus
   utilidades que necesiten acceso a la informacin de la contrasea sean
   recompiladas para soportarlas. PAM (ver ms arriba) tambin te permite
   slo enchufar un mdulo de sombra; no requiere la re-compilacin de
   los ejecutables. Puedes acudir al Contrasea-Sombra COMO para
   informacin adicional si es necesario. Est disponible en
   [25]http://metalab.unc.edu/LDP/HOWTO/Shadow-Password-HOWTO.html Su
   fecha es ms bien reciente y no se necesita en las distribuciones que
   soporten PAM.

   "Crack" y "John the Ripper"
   Si por alguna razn tu programa passwd no impone contraseas difciles
   de averiguar, podras querer ejecutar un programa rompedor de
   contraseas y asegurarte de que las contraseas de tus usuarios son
   seguras.

   Los programas rompedores de contraseas operan sobre una idea simple:
   prueban cada palabra del diccionario, y despus las variaciones de
   estas palabras, encriptando cada una y comprobndola frente a tu
   contrasea encriptada. Si obtienen una que case, saben cul es tu
   contrasea.

   Hay muchos programas por ah... los dos ms notables son "Crack" y
   "John the Ripper" [26]http://www.false.com/security/john/index.html.
   Te llevarn un montn de tiempo de cpu, pero solo sabrs si un
   atacante podra lograr usarlas si las ejecutas t mismo primero y
   notificas a los usuarios con contraseas dbiles. Ten en cuenta que un
   atacante tendra que usar primero algn otro agujero para leer tu
   fichero /etc/passwd, pero tales agujeros son ms comnes de lo que
   podras pensar.

   Dado que la seguridad es slo tan fuerte como el host ms inseguro,
   vale la pena mencionar que si tienes algunos equipos Windows en tu
   red, deberas probar L0phtCrack, un programa de Crack para Windows.
   Est disponible en [27]http://www.l0pht.com/ 

   CFS - Sistema de Fichero Criptogrfico y TCFS - Sistema de Fichero
   Criptogrfico Transparente
   CFS es una forma de encriptar rboles de directorios completos y
   permitir a los usuarios almacenar en ellos ficheros encriptados. Usa
   un servidor NFS que se ejecuta sobre una mquina local. Los RPMS estn
   disponibles en [28]http://www.replay.com/redhat/ y ms informacin
   sobre cmo funcionan est en [29]ftp://ftp.research.att.com/dist/mab/.

   TCFS mejora a CFS aadiendo ms integracin con el sistema de
   ficheros, de modo que el sistema de ficheros que est encriptado es
   transparente para los usuarios. Ms informacin en:
   [30]http://edu-gw.dia.unisa.it/tcfs/.

   Tampoco necesita usarse con sistemas de achivos completos. Funciona en
   rboles de directorios tambin.

   X11, SVGA y seguridad de pantalla
   Es importante que asegures tu pantalla grfica para impedir que los
   atacantes se apropien de tus contraseas cuando las escribas, puedan
   leer los documentos o la informacin que ests leyendo en pantalla o,
   incluso, usar un agujero para lograr acceso de root. Ejecutar las
   aplicaciones X remotas sobre una red tambin puede ser peligroso,
   permitiendo a los reastreadores ver toda tu interaccin con el sistema
   remoto.

   X tiene varios mecanismos de control de acceso. El ms simple de ellos
   est basado en el host: usas xhost para especificar a qu hosts se les
   permite acceder a tu pantalla. Esto no es seguro en absoluto, porque
   si alguien tiene acceso a tu mquina, puede hacer xhost + su mquina y
   obtenerlo fcilmente. Igualmente, si tienes que conceder acceso desde
   una mquina que no es de confianza, desde ah cualquiera puede
   comprometer tu pantalla.

   Cuando se usa xdm (Gestor X de Pantalla) para conectar, se obtiene un
   mtodo de acceso mucho mejor: MIT-MAGIC-COOKIE-1. Se genera una
   "cookie" de 128-bit y se almacena en tu fichero .Xauthority. Si
   necesitas conceder acceso a tu pantalla a una mquina remota, puedes
   usar el comando xauth y la informacin en tu fichero .Xauthority para
   proporcionar acceso slo a esa conexin. Ver el mini-cmo de
   Remote-X-Apps, disponible en
   [31]http://metalab.unc.edu/LDP/HOWTO/mini/Remote-X-Apps.html.

   Puedes usar tambin ssh (ver ssh , arriba) para permitir conexiones X
   seguras. Esto tiene la ventaja de que tambin es transparente para el
   usuario final y significa que ningn dato no encriptado fluye a lo
   largo de la red.

   Echa un vistazo a la pgina Xsecurity del manual para ms informacin
   sobre seguridad X. La apuesta ms segura es usar xdm para conectar tu
   consola y luego usar ssh para ir a sitios remotos sobre los que puedes
   ejecutar programas X.

   SVGA
   Los programas SVGAlib normalmente son SUID-root para acceder a todo el
   hardware de vdeo de tu Linux. Esto los hace muy peligrosos. Si
   fallan, lo normal es que necesites reiniciar tu equipo para tener de
   nuevo una consola usable. Asegrate de que cualesquiera programas SVGA
   que ejecutes sean autnticos y pueda al menos haber algo de confianza.
   An mejor, no ejecutes ninguno para nada.

   GGI (Proyecto de Interface Grfico Genrico)
   El proyecto GGI de Linux est intentando solucionar diversos problemas
   con los interfaces de vdeo en Linux. GGI cambiar una pequea parte
   del cdigo de vdeo en el ncleo de Linux y as controlar el acceso
   al sistema de vdeo. Esto significa que GGI ser capaz en cualquier
   momento de restaurar en tu consola un estado deseable conocido.
   Tambin permitir una clave de atencin segura, para que puedas estar
   seguro de que no hay ningn programa troyano de login ejecutndose en
   tu consola. [32]http://synergy.caltech.edu/~ggi/


   Seguridad del ncleo. 

   Se hace una descripcin de las opciones de configuracin del ncleo
   que se relacionan con la seguridad y una explicacin de lo que hacen y
   de cmo usarlas.

   Dado que el ncleo controla el funcionamiento en red de tu ordenadora,
   es importante que sea muy seguro y no se vea comprometido. Para
   impedir alguno de los ms recientes ataques de redes, debes procurar
   mantener actualizada la versin de tu ncleo. Puedes encontrar nuevos
   ncleos en [33]ftp://ftp.kernel.org/ o a travs de tu vendedor de
   distribuciones.

   Hay tambin un grupo internacional que proporciona un nico crypto
   parche unificado para el ncleo de linux ms extendido. Este parche da
   soporte para una gran cantidad de subsistemas criptogrficos y otras
   cosas que no pueden incluirse en el ncleo principal debido a las
   restricciones de exportacin. Para ms informacin, visita su pgina
   web en: [34]http://www.kerneli.org/

   Opciones para Compilar el Ncleo 2.0 
   Para los ncleos 2.0.x, se aplican las opciones que siguen. Debes ver
   estas opciones durante el proceso de configuracin del ncleo. Muchos
   de los comentarios que se hacen estn tomados de
   ./linux/Documentation/Configure.help, que es el mismo documento al que
   se hace referencia cuando se usa la facilidad de Ayuda durante la
   etapa de make config de compilacin del ncleo.

   Cortafuegos de Red (CONFIG_FIREWALL)
   Esta opcin debe estar encendida (on) si quieres ejecutar cualquier
   cortafuegos o enmascaramiento en tu equipo linux. Si slo vas a ser
   una mquina cliente regular, es ms seguro decir no.

   IP: reenviar/pasarelas (CONFIG_IP_FORWARD) 
   Si activas el reenvo de IP, tu equipo Linux esencialmente se
   convierte en un enrutador. Si tu mquina est en una red, podras
   estar reenviando datos desde una red a otra, y quizs subvirtiendo un
   cortafuegos que se puso ah para impedir que esto sucediera. Los
   usuarios telefnicos normales debern desactivar esto y los otros
   usuarios deberan meditar sobre las implicaciones de seguridad que
   tiene hacer esto. Los equipos cortafuegos debern tenerlo activado y
   usarlo en conjuncin con software de cortafuegos.

   Puedes activar el reenvio de IP de una forma dinmica usando el
   siguiente comando:

                root# echo 1 > /proc/sys/net/ipv4/ip_forward

   y desactivarlo con el comando:

                root# echo 0 > /proc/sys/net/ipv4/ip_forward

   Recuerda que los ficheros, y sus tamaos, no reflejan sus tamaos
   reales y que a pesar de ser de longitud cero, pueden serlo o no.

   IP: syn cookies (CONFIG_SYN_COOKIES) 
   Un "Ataque SYN" es un ataque de negacin de servicio (DoS) que consume
   todos los recursos de tu equipo, obligndote a reiniciarlo. No se nos
   ocurre ni una sola razn por la que, normalmente, no querras activar
   esto. En la serie de ncleo 2.1 esta opcin config solamente permite
   las syn cookies, pero no las activa. Para activarlas, tienes que
   hacer:

              root# echo 1 > /proc/sys/net/ipv4/tcp_syncookies

   IP: Cortafuegos (CONFIG_IP_FIREWALL)
   Esta opcin es necesaria si vas a configurar tu equipo como
   cortafuegos, vas a hacer enmascaramiento o si deseas proteger a tu
   equipo de conexin telefnica de que alguien entre por la va de tu
   interfaz de marcado PPP.

   IP: registro de paquetes del cortafuegos (CONFIG_IP_FIREWALL_VERBOSE) 
   Esta opcin te da informacin sobre los paquetes que ha recibido tu
   cortafuegos, como remitente, receptor, puerto, etc.

   IP: Suprimir sistema de enrutado de origen (CONFIG_IP_NOSR) 
   Esta opcin debe estar activada. Los sistemas de enrutado de origen
   contienen dentro del paquete el camino completo hasta su destino. Esto
   quiere decir que los enrutadores a travs de los cuales va el paquete
   no necesitan inspeccionarlo, sino slo reenviarlo. Esto podra
   conducir a que entren datos en tu sistema que pueden ser un exploit
   potencial.

   IP: Enmascaramiento (CONFIG_IP_MASQUERADE)

   Si uno de los ordenadores de tu red local, para el cual tu equipo
   Linux acta como cortafuegos, quiere enviar algo al exterior, tu
   equipo puede "enmascararse" como este host, esto es, reenva el
   trfico al destino solicitado, pero hace que parezca como si viniera
   del equipo cortafuegos mismo. Ver [35]http://www.indyramp.com/masq
   para ms informacin.

   IP: enmascaramiento ICMP (CONFIG_IP_MASQUERADE_ICMP) Esta opcin aade
   enmascaramiento ICMP a la opcin previa de slo enmascaramiento de
   trfico TCP o UDP.

   IP: soporte proxy transparente (CONFIG_IP_TRANSPARENT_PROXY) Esto
   capacita a tu cortafuegos Linux para redirigir de forma transparente
   cualquier trfico de red, con origen en la red local y destinado a un
   host remoto, a un servidor local, llamado "servidor proxy
   transparente". Esto hace que los ordenadores locales piensen que estn
   hablando con el extremo remoto, cuando de hecho estn conectados a un
   proxy local. Ver el COMO IP-Masquerading y
   [36]http://www.indyramp.com/masq para ms informacin.

   IP: desfragmentar siempre (CONFIG_IP_ALWAYS_DEFRAG)
   Generalmente esta opcin est desactivada, pero si ests construyendo
   un cortafuegos, o un host de enmascaramiento, querrs activarla.
   Cuando se envan datos de un host a otro, no siempre se logra
   enviarlos como un nico paquete de datos, sino ms bien se fragmentan
   en diversas piezas. El problema con esto es que los nmeros de puerto
   slo se almacenan en el primer fragmento. Esto significa que
   cualquiera puede insertar en los restantes paquetes informacin que no
   se sabe que est ah. Podra tambin impedir un ataque lgrima
   (teardrop) contra un host interno que todava no est parcheado contra
   l.

   Firmas de Paquetes (CONFIG_NCPFS_PACKET_SIGNING) 
   Esta es una opcin disponible en la serie 2.1 del ncleo que firmar
   los paquetes NCP para mayor seguridad. Normalmente puedes dejarlo
   desactivado, pero est ah por si lo necesitas.

   IP: Dispositivo de enlace en red de paquetes de cortafuegos
   (CONFIG_IP_FIREWALL_NETLINK) 
   Esta es una opcin realmente esmerada que te permite analizar los
   primeros 128 bytes de los paquetes de un programa de espacio de
   usuario, para determinar si te gustara aceptar o rechazar el paquete,
   basndote en su validez.

   Para los ncleos 2.2.x, muchas de las opciones son las mismas, pero se
   han desarrollado unas pocas nuevas. Muchos de los comentarios que se
   hacen aqu se han tomado de ./linux/Documentation/Configure.help, que
   es el mismo documento al que se hace referencia cuando se usa la
   facilidad Ayuda durante la etapa make config de compilacin del
   ncleo. Slo se listan debajo las opciones aadidas recientemente.
   Consulta la descripcin del 2.0 para ver una lista de otras opciones
   necesarias. El cambio ms importante en la serie 2.2 del ncleo es el
   cdigo IP de cortafuegos. Para instalar el IP del cortafuegos ahora se
   usa el programa ipchains, en vez del ipfwadm que se usa en el ncleo
   2.0.

   Filtrado de Socket (CONFIG_FILTER) 
   Para la mayora de la gente, lo seguro es decir no a esta opcin. Esta
   opcin te permite conectar en espacio de usuario un filtro a cualquier
   socket y determinar si los paquetes deben aceptarse o rechazarse. A
   menos que tengas una necesidad muy especfica y seas capaz de
   programar tal filtro, debes decir no. Tambin ten en cuenta que segn
   este escrito, todos los protocolos fueron admitidos excepto TCP.

   Reenvo de Puerto 
   El reenvo de puerto es un aadido al Enmascaramiento de IP que
   permite algn reenvo de paquetes desde el exterior al interior de un
   cortafuegos por unos puertos dados. Esto podra ser til si, por
   ejemplo, quieres ejecutar un servidor de web detrs del cortafuegos o
   enmascarar el host y que el servidor de web fuese accesible desde el
   mundo exterior. Un cliente externo enva una peticin al puerto 80 del
   cortafuegos, el cortafuegos reenva esta peticin al servidor de web,
   el servidor de web tramita la peticin y los resultados se envan a
   travs del cortafuegos al cliente original. El cliente piensa que la
   misma mquina cortafuegos est ejecutando el servidor web. Esto
   tambin puede usarse para equilibrar cargas si tienes un grupo de
   servidores web idnticos detrs del cortafuegos. Informacin sobre
   esta caracterstica est disponible en
   [37]http://www.monmouth.demon.co.uk/ipsubs/portforwarding.html (para
   leer el WWW, necesitas tener acceso a un equipo en Internet que tenga
   un programa como lynx o netscape). Para informacin general, ver por
   favor [38]ftp://ftp.compsoc.net/users/steve/ipportfw/linux21/

   Filtrado de Socket (CONFIG_FILTER)
   Usando esta opcin, los programas de espacio de usuario pueden
   adjuntar un filtro para cualquier socket y por ello decirle al ncleo
   que debe permitir o no permitir a ciertos tipos de datos pasar a
   travs del socket. El filtro de socket de Linux funciona con todos los
   tipos de socket, excepto el TCP por ahora. Ver el fichero de texto
   ./linux/Documentation/networking/filter.txt para ms informacin.

   IP: Enmascaramiento 
   El enmascaramiento del ncleo 2.2 ha sido mejorado. Proporciona
   soporte adicional para protocolos especiales para enmascaramiento,
   etc. No dejes de leer el Cadenas IP COMO para ms informacin.

   Dispositivos de Ncleo 
   Hay unos pocos dispositivos de bloque y de carcter disponibles en
   Linux que te ayudarn tambin con la seguridad.

   Los dos dispositivos /dev/random y /dev/urandom se proveen por el
   ncleo para proporcionar datos aleatorios en todo momento.

   Ambos, /dev/random y /dev/urandom, deberan ser bastante seguros de
   usar al generar claves PGP, desafos ssh y otras aplicaciones para las
   que los nmeros aleatorios sean un requisito. Dada cualquier secuencia
   inicial de nmeros, los atacantes sern incapaces de predecir el
   nmero siguiente a partir de esas fuentes. Hay gran cantidad de
   esfuerzo puesto en asegurar que los nmeros que se obtienen de esas
   fuentes son aleatorios en cualquier sentido de la palabra.

   La nica diferencia es que a /dev/random se le agotan los bytes
   aleatorios y te hace esperar hasta que sean acumulados ms. Ten en
   cuenta que algunos sistemas pueden bloquearse durante mucho tiempo de
   espera hasta que una entrada generada por un nuevo usuario sea
   introducida en el sistema. Tienes que tener cuidado antes de usar
   /dev/random. (Quizs lo mejor que puede hacerse es usarlo cuando ests
   generando informacin en clave sensible y decirle al usuario que
   aporree el teclado repetidamente hasta que t imprimas "OK,
   suficiente".)

   /dev/random es entropa de alta calidad, generada al medir los tiempos
   entre interrupciones, etc. Se bloquea hasta que estn disponibles
   suficientes bits de datos aleatorios.

   /dev/urandom es similar, pero cuando el almacn de entropa se ejecuta
   bajo, devolver un embrollo criptogrficamente potente de lo que hay.
   Esto no es seguro, pero es suficiente para la mayora de las
   aplicaciones.

   Puedes leer desde los dispositivos usando algo como:

                  root# head -c 6 /dev/urandom | mmencode

   Esto imprimir seis caracteres aleatoriamente en la consola, adecuados
   para la generacin de contraseas. Puedes encontrar mmencode en el
   paquete metamail.
   Ver /usr/src/linux/drivers/char/random.c para una descripcin del
   algoritmo.

   Gracias a Theodore Y. Ts'o, Jon Lewis y otros de Linux-kernel por
   ayudarme (a Dave) con esto.


   Seguridad de la red.

   La seguridad de la red est llegando a ser cada vez ms importante en
   la medida en que la gente pasa cada vez ms tiempo conectada.
   Comprometer la seguridad de la red es, con frecuencia, mucho ms fcil
   que comprometer la seguridad fsica o la local y es mucho ms comn.

   Hay un conjunto de buenas herramientas para ayudar con la seguridad de
   la red y muchsimas de ellas vienen en las distribuciones de Linux.

   Husmeadores de Paquetes
   Una de las maneras ms comunes por la que los intrusos logran acceder
   a ms sistemas en tu red es empleando un husmeador de paquetes sobre
   un host ya comprometido. Este "husmeador" slo escucha sobre el puerto
   Ethernet cosas como passwd y login y su que van en la corriente de
   paquetes y entonces registra el trfico despus de esto. De esta
   forma, los atacantes logran contraseas para sistemas que an no han
   intentado abordar. Las contraseas de texto-claro son muy vulnerables
   a este ataque.

   Ejemplo: El host A ha sido comprometido. El atacante instala un
   husmeador. El husmeador recoge las conexiones de administrador en el
   Host B desde el Host C. Logra la contrasea personal del administrador
   cuando conecta a B. Entonces, el administrador hace un su para
   arreglar el problema. Ahora ellos tienen la contrasea de root para el
   Host B. Ms tarde el administrador deja a alguien hacer telnet desde
   su cuenta al Host Z en otro sitio. Ahora el atacante tiene una
   contrasea/conexin en el Host Z.

   En este momento el atacante siquiera necesita comprometer un sistema
   para hacer esto: podra tambin meter un porttil o un pc en un
   edificio y pinchar en tu red.

   Usar ssh u otros mtodos de contrasea encriptada frustra este ataque.
   Cosas como APOP para cuentas POP tambin previenen este ataque. (Los
   logins POP normales son muy vulnerables a esto, como todo lo que enve
   contraseas en texto-claro por la red.)

   8.2 Servicios de Sistema y Grapadores de tcp
   Antes de poner tu sistema Linux en CUALQUIER red lo primero que tienes
   que mirar es qu servicios necesitas ofrecer. Los servicios que no
   necesites ofrecer deben ser desactivados para que tengas una cosa
   menos de la que preocuparte y los atacantes tengan un lugar menos en
   el que buscar un agujero.

   Hay un montn de formas de desactivar servicios bajo Linux. Puedes
   mirar en tu fichero /etc/inetd.conf y ver qu servicios se estn
   ofreciendo en tu inetd. Desactiva cualquiera que no necesites
   descomentndolos (# al principio de la lnea), y luego envia tu
   proceso inetd a SIGHUP.

   Tambin puedes quitar (o descomentar) servicios en tu fichero
   /etc/services. Esto implicar que los clientes locales tambin sern
   incapaces de encontrar el servicio (p.e., si quitas ftp y tratas de
   hacer ftp a un sitio remoto desde esa mquina, fallar y te dar un
   mensaje de "servicio desconocido"). Normalmente no merece la pena
   quitar servicios, dado que no proporciona seguridad adicional. Si una
   persona local quiere usar ftp, incluso aunque t lo hayas
   descomentado, hara que su propio cliente use el puerto comn FTP y
   an funcionara mejor.

   Algunos de los servicios que querras dejar habilitados son:

   ftp
   telnet (o ssh)
   mail, tal como pop-3 o imap
   identd
   Si sabes que no vas a usar algn paquete en particular, puedes
   borrarlo por completo. En la distribucin Red Hat, rpm -e
   nombrepaquete borra el paquete entero. En la Debian dpkg --remove hace
   lo mismo.

   Adems, realmente deberas desactivar las utilidades rsh/rlogin/rcp,
   incluyendo login (usado por rlogin), shell (usado por rcp) y exec
   (usado por rsh) para que no se inicien en /etc/inetd.conf. Estos
   protocolos son extremadamente inseguros y han sido la causa de
   exploits en el pasado.

   Debes comprobar tu /etc/rc.d/rcN.d, (donde N es el nivel de ejecucin
   de tus sistemas) y ver si alguno de los servidores arrancados en ese
   directorio no se necesita. Los ficheros en /etc/rc.d/rcN.d son
   realmente enlaces simblicos al directorio /etc/rc.d/init.d. Renombrar
   los ficheros en el directorio init.d tiene el efecto de inhabilitar
   todos los enlaces simblicos en /etc/rc.d/rcN.d. Si slo quieres
   deshabilitar un servicio para un nivel de ejecucin particular,
   renombra el fichero apropiado sustituyendo la S mayscula por una s
   minscula, como esto:

   root# cd /etc/rc6.d
   root# mv S45dhcpd s45dhcpd

   Si tienes ficheros estilo BSD rc, tienes que probar /etc/rc* para los
   programas que no necesites.

   La mayora de las distribuciones de Linux vienen con grapadores de tcp
   "grapando" todos tus servicios TCP. Un grapador de tcp (tcpd) se pide
   desde inetd en lugar del servidor real. Entonces tcpd chequea el host
   que est requiriendo el servicio y, o bien ejecuta el servidor real, o
   niega el acceso desde este host. tcpd te permite restringir el acceso
   a tus servicios TCP. Debes hacer un /etc/hosts.allow y aadir slo
   aquellos hosts que necesiten tener acceso a los servicios de tu
   equipo.

   Si eres un usuario telefnico domstico, te sugerimos que niegues
   TODOS. tcpd tambin registra los intentos fallidos de acceder a
   servicios, as que esto te puede dar la alerta si te estn atacando.
   Si aades nuevos servicios, debes asegurarte de configurarlos para
   usar grapadores de tcp si estn basados en TCP. Por ejemplo, un
   usuario telefnico normal puede impedir a los extraos la conexin a
   su mquina, sin perder la capacidad de recuperar correo y hacer
   conexiones de red a Internet. Para hacer esto, debes aadir lo
   siguiente a tu /etc/hosts.allow:

   ALL: 127.

   Y por supuesto /etc/hosts.deny contendra:

                                  ALL: ALL

   que impedir conexiones externas a tu mquina, pero permitindote
   desde el interior conectar a los servidores en Internet.

   Ten en cuenta que los grapadores de tcp slo protegen servicios
   ejecutados desde inetd y unos pocos otros selectos. Muy bien podra
   haber otros servicios ejecutndose en tu mquina. Puedes usar netstat
   -ta para encontrar una lista de todos los servicios que est
   ofreciendo tu mquina.

   Verifica tu Informacin DNS 
   Mantener al da la informacin DNS sobre todos los hosts en tu red
   puede ayudar a incrementar la seguridad. Si un host no autorizado
   llega a conectarse a tu red, puedes reconocerlo por su carencia de una
   entrada DNS. Muchos servicios pueden estar configurados para no
   aceptar conexiones de hosts que no tienen entradas DNS vlidas.

   identd
   identd es un pequeo programa que normalmente se ejecuta fuera de tu
   servidor inetd. Mantiene un registro de qu usuario est ejecutando
   qu servicio TCP, y luego informa de esto a quien se lo pregunta.

   Mucha gente no entiende la utilidad de identd y por eso lo desactiva o
   bloquea todas las peticiones de sitios. identd no est para ayudar a
   sitios remotos. No hay modo de saber si el dato que obtienes del
   identd remoto es correcto o no. No hay autentificacin en las
   peticiones de identd.

   Por qu habras de ejecutarlo entonces? Porque te ayuda, y es otro
   punto de datos para el seguimiento. Si tu identd no est comprometido,
   entonces sabes que est diciendo el nombre de usuario o uid de sitios
   remotos que usan los servicios TCP. Si el administrador de un sitio
   remoto te responde y te dice que el usuario tal-y-tal estaba tratando
   de hacer hack en su sitio, puedes fcilmente emprender una accin en
   contra de este usuario. Si no ests ejecutando identd, tendrs que
   mirar en montones y montones de registros de log, calcular quin
   estaba conectado en ese momento y, en general, gastar mucho ms tiempo
   en rastrear al usuario.

   El identd que viene con la mayora de las distribuciones es ms
   configurable de lo que mucha gente piensa. Puedes deshabilitarlo para
   usuarios especficos (ellos pueden hacer un fichero .noident), puedes
   registrar todas las solicitudes de identd (lo recomendamos), adems
   puedes poner identd para que devuelva un uid en vez de un nombre de
   usuario o incluso NO-USER.

   SATAN, ISS y Otros Exploradores de Red
   Hay un conjunto de paquetes de software diferentes que hacen de puerto
   y dan servicio basados en la exploracin de equipos o redes. SATAN,
   ISS, SAINT y Nessus son algunos de los ms conocidos. Este software se
   conecta al equipo destino (o a todos los equipos destino en una red)
   en todos los puertos que puede, e intenta determinar qu servicio est
   ejecutndose ah. Basado en esta informacin, puede decir si el equipo
   es vulnerable a un exploit especfico en este servidor.

   SATAN (Security Administrator's Tool for Analyzing Networks)
   (Herramienta de Administrador de Seguridad para Analizar Redes) es un
   explorador de puerto con una interfaz de web. Puede ser configurado
   para hacer comprobaciones ligeras, medias o fuertes en un equipo o una
   red de equipos. Es una buena idea instalar SATAN y explorar tu equipo
   o red y arreglar los problemas que encuentres. Asegrate de que la
   copia de SATAN la obtienes de metalab o de un FTP o sitio web con
   buena reputacin. Hubo una copia troyana de SATAN que fue distribuda
   en la red. [39]http://www.trouble.org/~zen/satan/satan.html. Ten en
   cuenta que SATAN no ha sido actualizado desde hace bastante tiempo y
   algunas de las otras herramientas de ms abajo podran funcionar
   mejor.

   ISS (Internet Security Scanner) (Explorador de Seguridad de Internet)
   es otro explorador basado en el puerto. Es ms rpido que Satan y por
   eso podra ser mejor para redes grandes. Sin embargo, SATAN tiende a
   proporcionar ms informacin.

   Abacus es un conjunto de herramientas para proveer seguridad y
   deteccin de intrusin basadas en el host. Mira su pgina inicial en
   la web para ms informacin. [40]http://www.psionic.com/abacus

   SAINT es una versin actualizada de SATAN. Est basada en el web y
   tiene tests mucho ms actualizados que SATAN. Puedes averiguar ms
   sobre esto en: http://www.wwdsi.com/saint

   Nessus es un explorador de seguridad gratuito. Tiene un interfaz
   grfico GTK para facilitar el uso. Tambin est diseado con una
   configuracin de enchufado muy agradable para hacer tests de
   exploracin de nuevos puertos. Para ms informacin, echa un vistazo
   a: [41]http://www.nessus.org/

   Detectar Exploraciones de Puerto
   Hay algunas herramientas diseadas para alertarte sobre sondeos
   mediante SATAN e ISS y otro software de exploracin. Sin embargo, con
   el uso frecuente de los grapadores de tcp, y asegurndote de mirar en
   tus ficheros de log con regularidad, deberas ser capaz de notar tales
   sondeos. Incluso en la configuracin ms baja, SATAN an deja huellas
   en los logs de un sistema Red Hat.

   Hay tambin exploradores de puerto "clandestinos". Un paquete con el
   bit TCP ACK activado (como se hace con las conexiones establecidas)
   probablemente entrar a travs de un cortafuegos de filtrado de
   paquetes. El paquete RST devuelto desde un puerto que _no haya
   establecido una sesin_ puede considerarse como prueba de que hay vida
   en ese puerto. Yo creo que los grapadores de TCP no detectarn esto.

   sendmail, qmail y MTA
   Uno de los servicios ms importantes que puedes proporcionar es un
   servidor de correo. Desafortunadamente, tambin es uno de los ms
   vulnerables a los ataques, simplemente debido a la cantidad de tareas
   que debe realizar y los privilegios que normalmente necesita.

   Si ests usando sendmail es muy importante mantener las versiones
   actualizadas. sendmail tiene una historia muy larga de exploits de
   seguridad. Asegrate de que siempre ests ejecutando la versin ms
   reciente en [42]http://www.sendmail.org/.

   Recuerda que sendmail no tiene que estar ejecutndose para que puedas
   enviar correo. Si eres un usuario domstico, puedes desactivar
   completamente sendmail y simplemente usar tu cliente de correo para
   enviar correo. Puedes tambin optar por remover el indicador "-bd" del
   fichero de inicio de sendmail, desactivando as las entradas de
   peticiones de correo. En otras palabras, puedes ejecutar sendmail
   desde el script de inicio usando lo siguiente:

                         # /usr/lib/sendmail -q15m

   Esto har que sendmail limpie cada quince minutos la cola del correo
   con todos los mensajes que no pudieron entregarse con xito al primer
   intento.
   Muchos administradores optan por no usar sendmail y en su lugar eligen
   uno de los otros agentes de transporte de correo. Deberas considerar
   cambiarte a qmail. qmail fue diseado desde los cimientos pensando en
   la seguridad. Es rpido, estable y seguro. Qmail puede encontrarse en
   [43]http://www.qmail.org/

   En competicin directa con qmail est "postfix", escrito por Wietse
   Venema, el autor de tcp_wrappers y otras herramientas de seguridad.
   Anteriormente llamado vmailer, y patrocinado por IBM, ste es tambin
   un agente de transporte de correo escrito desde la base con la
   seguridad en mente. Puedes encontrar ms informacin sobre vmailer en
   [44]http://gulic.org/www.vmailer.org

   Ataques de Negacin de Servicio 
   Un ataque de "Negacin de Servicio" ("Denial of Service") (DoS) es
   aquel en el que el atacante trata de mantener demasiado ocupado algn
   recurso para que no pueda responder a las peticiones legtimas o para
   denegar a los usuarios legtimos el acceso a tu equipo.

   Los ataques DoS se han incrementado en los ltimos aos. Algunos de
   los ms populares y recientes se listan debajo. Ten en cuenta que
   aparecen otros nuevos constantemente, de tal modo que estos slo son
   unos pocos ejemplos. Lee las listas de seguridad de Linux y la lista y
   archivos de bugtraq para tener informacin ms actual.

   Inundacin de SYN - La inundacin de SYN es un ataque de denegacin de
   servicio de red. Saca provecho de una "escapatoria" en el modo en que
   se crearon las conexiones TCP. Los ncleos ms nuevos de Linux (2.0.30
   en adelante) tienen diversas opciones configurables para impedir que
   los ataques de inundacin de SYN denieguen a la gente el acceso a tu
   mquina o servicios. Ver Seguridad del ncleo para las opciones ms
   adecuadas de proteccin de ncleo.

   Fallo "F00F" de Pentium - Se descubri recientemente que una serie de
   cdigos de ensamble enviados a un procesador Pentium Intel genuno
   reiniciaba el equipo. Esto afecta a todas las mquinas con procesador
   Pentium (no a los clones, ni a los Pentium Pro o PII), sin importar
   qu sistema operativo est ejecutando. Los ncleos de Linux 2.0.32 y
   superiores contienen un trabajo acerca de este fallo, impidiendo que
   cierre tu mquina. El ncleo 2.0.33 tiene una versin mejorada del
   ncleo fix y se recomienda sobre el 2.0.32. Si ests funcionando sobre
   un Pentium, debes ponerte al da ya!

   Inundacin de Ping - La inundacin de Ping es un ataque simple de
   denegacin de servicio por la fuerza bruta. El atacante enva una
   "riada" de paquetes ICMP a tu mquina. Si hace esto desde un host con
   mayor ancho de banda que el tuyo, tu equipo ser incapaz de enviar
   nada a la red. Una variante de este ataque, llamado "smurfing", enva
   paquetes ICMP a un host con el retorno de IP de tu equipo,
   posibilitando que te inunden de forma menos detectable. Puedes
   encontrar ms informacin sobre el ataque de "smurf" en
   http://www.quadrunner.com/~chuegen/smurf.txt
   Si ests bajo un ataque de inundacin de ping, usa una herramienta
   como tcpdump para determinar de dnde vienen los paquetes (o parece
   que vienen) y contacta luego con tu proveedor con esta informacin.
   Las inundaciones de ping pueden detenerse ms fcilmente a nivel de
   enrutador o usando un cortafuegos.

   Ping de la Muerte - El ataque Ping de la Muerte enva paquetes ICMP
   ECHO REQUEST que son demasiado grandes para encajar en las estructuras
   de datos del ncleo diseadas para almacenarlos. Dado que enviar un
   slo paquete "ping" grande (65,510 bytes) para muchos sistemas ser
   causa de que se cuelguen o incluso se rompan, este problema fue
   rpidamente bautizado como el "Ping de la Muerte". Hace tiempo que ha
   sido arreglado y ya no es algo de lo que preocuparse.

   Lgrima / Nuevo Lgrima - Uno de los ms recientes exploits consiste
   en un fallo presente en el cdigo de fragmentacin IP en plataformas
   Linux y Windows. Se arregla en la versin 2.0.33 del ncleo y no
   requiere seleccionar alguna de las opciones de tiempo de compilacin
   de ncleo para utilizar el arreglo. Linux aparentemente no es
   vulnerable al exploit "nueva lgrima".

   Puedes econtrar un cdigo para la mayora de los exploits y una
   descripcin ms detallada de cmo funcionan en
   http://www.rootshell.com/ usando su motor de bsqueda.

   Seguridad de NFS (Network File System). 
   NFS es un protocolo de comparticin de ficheros muy ampliamente usado.
   Permite a los servidores ejecutar nfsd y mountd para "exportar"
   sistemas de ficheros completos a otras mquinas usando el soporte de
   sistema de ficheros NFS construdo para sus ncleos (o usando algn
   otro soporte de cliente si no son mquinas Linux). mountd mantiene
   registro de los sistemas de ficheros montados en /etc/mtab y puede
   mostrarlos con showmount.

   Muchos sitios usan NFS para servir directorios home a los usuarios,
   as que no importa a qu mquina del cluster se conecten, tendrn
   todos sus ficheros home.

   Hay una pequea cantidad de seguridad posible al exportar sistemas de
   archivos. Puedes hacer que tu nfsd haga un mapa del usuario de root
   remoto (uid=0) para el usuario nobody, denegndoles totalmente el
   acceso a los ficheros exportados. Sin embargo, dado que los usuarios
   individuales tienen acceso a sus propios ficheros (o al menos el mismo
   uid), el usuario root remoto puede registrar o hacer su a su cuenta y
   tener total acceso a sus ficheros. Esto es slo un pequeo obstculo
   para un atacante que tenga acceso a montar tus sistemas de archivo
   remoto.

   Si tienes que usar NFS, asegrate de que exportas slo a aquellos
   equipos a los que realmente necesitas hacerlo. Nunca exportes tu
   directorio de root completo; exporta slo los directorios que
   necesites exportar.

   Ver el NFS COMO para ms informacin sobre NFS, disponible en
   http://metalab.unc.edu/mdw/HOWTO/NFS-HOWTO.html

   NIS (Network Information Service) (anteriormente YP). 
   El servicio de informacin de red (antes YP) es un medio de distribuir
   informacin a un grupo de equipos. El administrador de NIS mntiene las
   tablas de informacin y las convierte en archivos de mapas NIS.
   Despus, estos mapas se sirven a la red, permitiendo a los equipos
   clientes del NIS obtener informacin sobre conexin, contrasea,
   directorio home y shell (toda la informacin en un fichero /etc/passwd
   estndar). Esto permite a los usuarios cambiar su contrasea una vez y
   que tenga efecto sobre todas los equipos en el dominio NIS.

   NIS no es seguro en absoluto. Nunca se pretendi que lo fuese. Se
   pens para que fuese manejable y til. Cualquiera puede averiguar el
   nombre de tu dominio NIS (cualquiera en la red), puede obtener una
   copia de tu fichero passwd y usar "crack" y "John the Ripper" contra
   las contraseas de tus usuarios. Tambin, es posible engaar a NIS y
   hacer todo tipo de trucos sucios. Si tienes que usar NIS, asegrate de
   que eres consciente de los peligros.

   Hay un sustituto mucho ms seguro para NIS, llamado NIS+. Mira en el
   NIS COMO para ms informacin:
   [45]http://metalab.unc.edu/mdw/HOWTO/NIS-HOWTO.html

   Cortafuegos
   Los cortafuegos son un medio de controlar a qu informacin se le
   permite entrar y salir de tu red local. Normalmente, el host
   cortafuegos est conectado a Internet y a tu LAN local, y el nico
   acceso desde tu LAN a Internet es a travs del cortafuegos. De este
   modo, el cortafuegos puede controlar lo que pasa en una u otra
   direccin entre Internet y tu LAN.

   Hay muchos tipos de cortafuegos y de mtodos de configurarlos. Los
   equipos Linux son muy buenos cortafuegos. El cdigo del cortafuego
   puede construirse en los ncleos 2.0 y superiores. Las herramientas de
   modo usuario ipfwadm para ncleos 2.0, o ipchains para ncleos 2.2, te
   permiten cambiar, al vuelo, los tipos de trfico de red que permites.
   Tambin puedes registrar tipos particulares de trfico de red.

   Los cortafuegos son una tcnica muy til e importante para asegurar tu
   red. Sin embargo, no pienses que porque tienes un cortafuegos, no
   necesitas asegurar los equipos que estn detrs de l. Esto es un
   error fatal. Mira el excelente Cortafuegos COMO en tu fichero metalab
   ms reciente para ms informacin sobre cortafuegos y Linux.
   [46]http://metalab.unc.edu/mdw/HOWTO/Firewall-HOWTO.html 

   Ms informacin tambin puede encontrarse en el Mini-cmo del
   Enmascaramiento de IP:
   [47]http://metalab.unc.edu/mdw/HOWTO/mini/IP-Masquerade.html

   Ms informacin en ipfwadm. La herramienta que te permite cambiar las
   configuraciones de tu cortafuegos, puede encontrarse en su pgina
   home: [48]http://www.xos.nl/linux/ipfwadm/

   Si no tienes experiencia con cortafuegos, y piensas instalar uno no
   slo por una mera poltica de seguridad, es de obligatoria lectura el
   libro 'Firewalls' de O'Reilly y Associados u otro documento online
   sobre cortafuegos. Mira en [49]http://www.ora.com/ para ms
   informacin. El National Institute of Standards and Technology ha
   recopilado un documento excelente sobre cortafuegos. Aunque data de
   1995, es an bastante bueno. Puedes encontrarlo en
   [50]http://csrc.nist.gov/nistpubs/800-10/main.html. Tambin de inters
   son:

   El Proyecto Freefire -- una lista de las herramientas de cortafuegos
   disponibles gratuitamente, que est en
   [51]http://sites.inka.de/sites/lina/freefire-l/index_en.html
   Diseo de Cortafuegos SunWorld -- escrito por los autores del libro de
   O'Reilly, proporciona una introduccin tosca a los diferentes tipos de
   cortafuegos. Est disponible en
   [52]http://www.sunworld.com/swol-01-1996/swol-01-firewall.html

   Cadenas IP - Cortafuegos Linux para el Ncleo 2.2.x
   Las Cadenas Cortafuegos IP de Linux es una actualizacin del cdigo de
   cortafuegos de Linux 2.0 para el ncleo 2.2. Tiene una gran cantidad
   de caractersticas ms que las implementaciones previas, incluyendo:

   Manipulaciones ms flexibles de paquetes.
   Conteo ms complejo.
   Posibilidad de hacer cambios simples de poltica atmicamente.
   Los fragmentos pueden ser explcitamente bloqueados, denegados, etc.
   Registra paquetes sospechosos.
   Puede manejar otros protocolos distintos a ICMP/TCP/UDP.
   Si actualmente ests usando ipfwadm en el ncleo 2.0, hay scripts
   disponibles para convertir el formato del comando ipfwadm al formato
   que usa ipchains.

   No dejes de leer el Cadenas IP COMO para ms informacin. Est
   disponible en [53]http://www.rustcorp.com/linux/ipchains/HOWTO.html 

   VPNs - Redes Privadas Virtuales 
   Las VPNs son una forma de establecer una red "virtual" por encima de
   una red ya existente. Esta red virtual a menudo est encriptada y el
   trfico pasa slo hacia y desde algunas entidades conocidas que se han
   unido a la red. Las VPNs se usan con frecuencia para conectar a
   alguien que trabaja en casa con la internet pblica a la red interna
   de una compaa usando una red encriptada virtual.

   Si ests ejecutando un cortafuegos de enmascaramiento de Linux y
   necesitas pasar paquetes de MS PPTP (producto punto a punto VPN de
   Microsoft), hay un parche del ncleo de linux para hacer esto. Ver:
   ip-masq-vpn.

   Hay diversas soluciones VPN de Linux disponibles:

   vpnd. Ver el
   [54]http://www.crosswinds.net/nuremberg/~anstein/unix/vpnd.html.
   Free S/Wan, disponible en [55]http://www.xs4all.nl/~freeswan/
   ssh puede usarse para construir una VPN. Ver el Mini-cmo de VPN para
   ms informacin.
   vps (servidor privado virtual) en [56]http://www.strongcrypto.com/.
   Ver tambin la seccin sobre IPSEC para enlaces y ms informacin.

   Preparacin para la Seguridad.

   Vale, has probado tu sistema, has determinado que es tan seguro como
   factible y ests preparado para ponerlo online. Hay unas pocas cosas
   que deberas hacer ahora para prepararte para una intrusin, de forma
   que rpidamente puedas desactivar al intruso, obtener copias de
   seguridad y funcionar.

   Hacer una Copia de Seguridad Completa de tu Equipo
   La discusin de los mtodos de respaldo y almacenaje est ms all del
   alcance de este documento, pero aqu van unas pocas palabras relativas
   a copias de respaldo y seguridad:

   Si tienes menos de 650 Mb de datos para almacenar sobre una particin,
   una copia en CD-R de tus datos es un buen modo de proceder (es difcil
   de estropear despus y si se almacena adecuadamente puede durar mucho
   tiempo). Las cintas y otros medios re-escribibles deben protegerse
   contra escritura en cuanto la copia de seguridad est completa y
   despus ser verificadas para impedir falsificacin. Asegrate de que
   almacenas tus copias de seguridad en un rea segura desconectada de la
   lnea. Una buena copia de seguridad te asegura un punto bien conocido
   desde el cual restaurar tu sistema.

   Elegir un Buen Calendario de Copias de Seguridad
   Un ciclo de seis cintas es fcil de mantener. Esto incluye cuatro
   cintas para la semana, una cinta para los viernes y una cinta para
   viernes impares. Realiza una copia de seguridad incremental cada da y
   una copia de seguridad completa en la cinta propia de los viernes. Si
   haces cambios particularmente importantes o aades datos importantes
   al sistema, sera adecuado una copia de seguridad completa.

   Copia de Seguridad de tu RPM o Debian File Database
   En el caso de una intrusin, puedes usar tu base de datos RPM como
   usaras tripwire, pero slo si puedes asegurar tambin que no ha sido
   modificada. Debes copiar la base de datos RPM a un floppy, y mantener
   esta copia fuera de conexin en todo momento. La distribucin Debian
   probablemente tiene algo similar.

   Los ficheros /var/lib/rpm/fileindex.rpm y /var/lib/rpm/packages.rpm
   probablemente no quepan en un slo floppy. Pero si se comprimen, cada
   uno por separado debera caber en un floppy.

   Ahora, cuando tu sistema est comprometido, puedes usar el comando:

                               root# rpm -Va

   para verificar cada fichero del sistema. Ver la pgina rpm del manual,
   donde hay unas cuantas opciones que pueden incluirse para hacerlo
   menos verboso. No olvides que tambin debes estar seguro de que tu
   binario RPM no ha sido comprometido.
   Esto significa que cada vez que se aade un nuevo RPM al sistema, la
   base de datos RPM necesitar ser rearchivada. Tendrs que decidir las
   ventajas frente a los inconvenientes.

   LLevar Registro de los Datos de Contabilidad del Sistema
   Es muy importante que la informacin que viene de syslog no haya sido
   comprometida. Un buen comienzo es hacer legibles y escribibles los
   ficheros en /var/log slo para un nmero limitado de usuarios.

   Asegrate de echar un vistazo a lo que se obtiene escrito ah,
   especialmente bajo la facilidad auth. Mltiples fallos de conexin,
   por ejemplo, pueden indicar un intento de asalto.

   Dnde buscar tu fichero de log depender de tu distribucin. En un
   sistema Linux que se conforma al "Linux Filesystem Standard", tal como
   Red Hat, habr de buscarse en /var/log y comprobar messages, mail.log
   y otros.

   Puedes averiguar hacia dnde est conectando tu distribucin mirando
   en tu fichero /etc/syslog.conf. ste es el fichero que le dice a
   syslogd (el demonio de conexin de sistema) dnde registrar los
   diversos mensajes.

   Puedes tambin desear configurar tu script o demonio de rotacin de
   registro para mantener los registros durante ms tiempo, hasta que
   tengas tiempo de examinarlos. Echa un vistazo al paquete logrotate en
   las distribuciones recientes de Red Hat. Otras distribuciones
   probablemente tengan un procedimiento similar.

   Si tus ficheros de log han sido estropeados, mira a ver si puedes
   determinar cundo empez el estropicio y que tipo de cosas parecen
   estar estropeadas. Hay grandes perodos de tiempo de los que no
   puedes responder? Una buena idea es comprobar las cintas de seguridad
   (si tienes alguna) por si tienes ficheros de log no estropeados.

   Los ficheros de log normalmente son modificados por el intruso para
   tapar sus huellas, pero an as deben ser comprobados en busca de
   acontecimientos extraos. Puedes tener noticia de los intentos del
   intruso para lograr entrar, o de explotar un programa para obtener la
   cuenta del root. Podras ver tambin registros de entradas antes de
   que el intruso tenga tiempo de modificarlas.

   Debes asegurarte de separar la facilidad auth de otros datos de log,
   incluyendo los intentos de cambio de usuarios usando su, los intentos
   de conexin y otra informacin de contabilidad del usuario .

   Si es posible, configura syslog para enviar una copia de los datos ms
   importantes a un sistema seguro. Esto impedir que un intruso encubra
   sus huellas borrando sus intentos de login/su/ftp/etc. Ver la pgina
   syslog.conf del manual y las referidas a la opcin @.

   Hay diversos programas syslogd ms avanzados por ah. Echa un vistazo
   a [57]http://www.core-sdi.com/ssyslog/ para Secure Syslog. Secure
   Syslog te permite encriptar tus entradas syslog y asgurarte de que
   nadie las ha estropeado.

   Otro syslogd con ms caractersticas es syslog-ng. Te permite mucha
   ms flexibilidad en tu logging y tambin puede tener tus flujos de
   syslog remoto para impedir las falsificaciones.

   Finalmente, los ficheros de log son mucho menos tiles cuando nadie
   los lee. Tmate algn tiempo de vez en cuando para mirar tus ficheros
   de log y hazte una idea de qu pinta tienen en un da normal. Saber
   esto puede ayudar a notar las cosas inusuales.

   Solicita todas las Nuevas Actualizaciones de Sistema.
   La mayora de los usuarios instalan Linux desde un CD-ROM. Debido a la
   naturaleza rpidamente cambiante de las mejoras de seguridad, siempre
   se estn distribuyendo nuevos programas (mejorados). Antes de conectar
   tu mquina a la red, sera una buena idea revisar el sitio FTP de tu
   distribucin y obtener todos los paquetes actualizados desde que
   recibiste el CD-ROM de tu distribucin. Muchas veces estos paquetes
   contienen importantes mejoras de seguridad, por lo que es bueno
   tenerlos instalados.

   Recursos bsicos de seguridad.

   Has seguido algunos de los consejos dados aqu (o en otro sitio) y has
   detectado una ruptura? Lo primero que hay que hacer es mantener la
   calma. Las acciones precipitadas pueden causar ms dao que el que
   hara el atacante.

   Compromiso de Seguridad en marcha.
   Descubrir un compromiso de seguridad que est en marcha puede ser una
   aventura tensa. La forma en la que reacciones puede tener grandes
   consecuencias.

   Si el compromiso que ests viendo es fsico, lo ms probable es que
   hayas descubierto que alguien ha entrado en tu casa, oficina o
   laboratorio. Debes dar parte a las autoridades locales. En un
   laboratorio, podras haber sorprendido a alguien intentando abrir una
   carcasa o reiniciar una mquina. Dependiendo de tu autoridad y
   procedimientos, podras pedirle que parara o contactar con la gente de
   seguridad de tu local.

   Si has detectado a un usuario local intentando comprometer tu
   seguridad, la primera cosa a hacer es confirmar que de hecho son
   quienes t crees que son. Comprueba el sitio desde el cual se estn
   conectando. Es el sitio desde dnde normalmente se conectan? No?
   Entonces usa un medio no-electrnico de darles un toque. Por ejemplo,
   llmalos por telfono o dte una vuelta por su oficina/casa y habla
   con ellos. Si confirman que estn conectados, puedes pedirles que te
   expliquen qu estaban haciendo o pedirles que dejen de hacerlo. Si no
   estn conectados, y no tienen ni idea de lo qu les ests diciendo, lo
   ms probable es que este incidente requiera posterior investigacin.
   Revisa tales incidentes y recoge un montn de informacin antes de
   hacer acusaciones.

   Si has detectado un compromiso en la red, lo primero que hay que hacer
   (si eres capaz) es desconectar tu red. Si ellos estn conectados va
   modem, desenchufa el cable del modem; si estn conectados va
   ethernet, desenchufa el cable de Ethernet. Esto les impedir hacer ms
   dao y probablemente lo vean como un problema de la red y no como una
   deteccin.

   Si eres incapaz de desconectar la red (si tienes un sitio ocupado o no
   tienes control fsico de tus mquinas), el siguiente mejor paso es
   usar algo como tcp_wrappers o ipfwadm pare denegar el acceso desde el
   sitio del intruso.

   Si no puedes denegar el acceso a toda la gente procedente del mismo
   sitio que el intruso, tendrs que cerrar la cuenta del usuario. Ten en
   cuenta que cerrar una cuenta no es cosa fcil. Tienes que tener en
   cuenta los ficheros .rhosts, el acceso de FTP y un montn de posibles
   puertas traseras.

   Despus de que hayas hecho algo de lo anterior (desconectado la red,
   denegado el acceso desde el sitio y/o desactivar su cuenta), necesitas
   cargarte todos sus procesos de usuario y desactivarlos.

   Debes controlar bien tu sitio en los siguientes minutos, dado que el
   atacante intentar volver a entrar. Quizs usando una cuenta diferente
   y/o desde una direccin de red diferente.

   El Compromiso de Seguridad ya ha ocurrido
   Vale, o has detectado un compromiso que ya ha ocurrido o lo has
   detectado y (esperemos) has echado al atacante ofensivo fuera de tu
   sistema. Ahora qu?

   Cerrar el Agujero
   Si eres capaz de determinar qu medios us el atacante para entrar en
   tu sistema, debes intentar cerrar ese agujero. Por ejemplo, quizs t
   ves varias entradas de FTP justo antes de que el usuario se conecte.
   Desactiva el servicio FTP y prubalo y mira si hay una versin
   actualizada o si alguien de las listas sabe de una mejora.

   Comprueba todos tus ficheros de log, haz una visita a tus listas y
   pginas de seguridad y mira si hay nuevos exploits comunes que puedas
   arreglar. Puedes encontrar las mejoras de seguridad de Caldera en
   [58]http://www.caldera.com/tech-ref/security/. Red Hat no tiene
   todava separadas sus mejoras de seguridad de sus mejoras de fallos,
   pero las erratas de la distribucin estn disponibles en
   [59]http://www.redhat.com/errata

   Ahora Debian tiene una lista de correo y una pgina web de seguridad.
   Ver: [60]http://www.debian.com/security/ para ms informacin.

   Es muy probable que si un vendedor ha repartido una actualizacin de
   seguridad, la mayora de los otros vendedores de Linux la tenga
   tambin.

   Ahora hay un nuevo proyecto de auditar la seguridad de Linux. De forma
   metdica van pasando por todas las utilidades de espacio de usuario
   buscando posibles exploits y desbordamientos de seguridad. Dicen en su
   anuncio:

   "Estamos intentando hacer una auditora sistemtica de las fuentes de
   Linux con vistas a que sea tan seguro como OpenBSD. Ya hemos
   descubierto (y mejorado) algunos problemas, pero ms ayuda ser
   bienvenida. La lista no est moderada y es tambin un recurso til
   para discusiones generales de seguridad. La direccin de la lista es:
   security-audit@ferret.lmh.ox.ac.uk Para suscribirte, enva un correo-e
   a: security-audit-subscribe@ferret.lmh.ox.ac.uk"
   Si no echas fuera al atacante, probablemente volver. No slo volver
   a tu equipo, sino que volver a cualquiera en tu red. Si estuviera
   ejecutando un husmeador de paquetes, hay muchas probabilidades de que
   tenga acceso a otras mquinas locales.

   Evaluar el Dao
   Lo primero es evaluar el dao. Qu ha estado comprometido? Si ests
   ejecutando un Chequeo de Integridad como Tripwire, puedes usarlo para
   realizar una comprobacin de integridad y te ser de ayuda lo que te
   diga. Si no, tendrs que rebuscar en todos tus datos importantes.

   Dado que los sistemas Linux estn siendo cada vez ms fciles de
   instalar, podras considerar salvar tus ficheros de configuracin y
   luego limpiar tu(s) disco(s) y reinstalar, restaurando entonces tus
   ficheros de usuario y tus ficheros de configuracin desde las copias
   de seguridad. Esto asegurar que tienes un sistema nuevo y limpio. Si
   tienes que hacer las copias de seguridad a partir del sistema
   comprometido, tienes que ser especialmente cuidadoso con todos los
   binarios que restaures, dado que pueden ser caballos troyanos puestos
   ah por el intruso.

   La re-instalacin debe considerarse obligatoria cuando el intruso ha
   obtenido acceso de root. Adems, querrs mantener cualquier evidencia
   que haya, por lo que puede tener sentido tener un disco libre en sitio
   seguro.

   Luego tienes que preocuparte de cunto tiempo hace que sucedi el
   compromiso y si las copias de seguridad mantienen algn trabajo
   daado. Ms sobre copias de seguridad en seguida.

   Copias, Copias y Copias!
   Tener regularmente copias de seguridad es una bendicin en asuntos de
   seguridad. Si tu sistema est comprometido, puedes restaurar los datos
   que necesites a partir de las copias de seguridad. Por supuesto, algn
   dato es valioso tambin para el atacante y no lo destruir, sino que
   lo robar y tendr sus propias copias; pero al menos t an tienes los
   datos.

   Debes comprobar las diversas copias de seguridad realizadas
   anteriormente antes de restaurar un fichero que ha sido estropeado.
   El intruso podra haber comprometido tus ficheros hace mucho tiempo
   y puedes haber hecho con xito muchas copias de seguridad de un
   fichero comprometido!!!

   Desde luego, tambin las copias de respaldo conciernen a un montn de
   seguridad. Asegrate de que las almacenas en un lugar seguro. Controla
   quin tiene acceso a ellas. (Si un atacante puede obtener tus copias
   de seguridad, puede tener acceso a todos tus datos sin que t te
   enteres.)

   Rastrear al Intruso.
   Vale, has echado al intruso y recubierto tu sistema, pero an no est
   todo hecho. Aunque es improbable que la mayora de los intrusos sean
   atrapados, debes dar parte del ataque.

   Debes informar del ataque al contacto de administracin del sitio
   desde donde el atacante atac tu sistema. Puedes mirar este contacto
   con whois o en la base de datos de Internic. Deberas enviarles un
   correo electrnico con todas las entradas de log aplicables y fechas y
   horas. Si descubriste cualquier otra cosa distintiva sobre el intruso,
   tambin deberas mencionar esto. Despus de enviar el correo
   electrnico, podras continuar (si as te parece) con una llamada
   telefnica. Si ese administrador a su vez descubre a tu atacante,
   podra hablar con el administrador del sitio desde donde viene y as
   sucesivamente.

   Los buenos crackers a menudo usan muchos sistemas intermedios, algunos
   (o muchos) de los cuales incluso pueden no saber que han sido
   comprometidos. Tratar de rastrear a un cracker hasta su sistema home
   puede ser difcil. Ser amable con los administradores con los que
   hablas, puede ayudarte mucho para lograr ayuda por parte de ellos.

   Debes tambin notificar a todas las organizaciones de seguridad a las
   que pertenezcas ( CERT o similares), as como al vendedor de tu
   sistema Linux.

   En definitiva no existen sistemas inseguros, sino malos
   administradores.

   Pginas de inters y consultadas:

   [61]http://www.geocities.com/galinux2000/numero1uxcomo.htm

   [62]http://www.algonet.se/~peterpet/portal/seguridad.html

   [63]http://losinvisibles.net/como/comoIptables.html

   [64]http://lacarcel.iespana.es/lacarcel/Seg_linx_2.htm

                                                                 by kania

                                                          Para e-zine FIH

                                                      kania@evilgirls.net

                                                 [65]http://evilgirls.net

References

   1. http://www.hacknet.tk/kp/iptables/iptables-HOWTO.html
   2. http://cybercultura.coolfata.com/noticias/linux/
   3. http://www.tripwiresecurity.com/
   4. http://consult.cern.ch/writeup/security/security_3.html
   5. http://www.pgp.com/service/export/faq/55faq.cgi
   6. http://mercury.chem.pitt.edu/%7Eangel/LinuxFocus/English/November1997/article7.html
   7. ftp://metalab.unc.edu/pub/Linux/apps/crypto
   8. http://www.gpg.org/
   9. http://www.rsa.com/rsalabs/newfaq/
  10. http://www.consensus.com/security/ssl-talk-faq.html
  11. http://home.netscape.com/info/security-doc.html
  12. http://home.netscape.com/assist/security/smime/overview.html
  13. http://home.netscape.com/assist/security/smime/overview.html
  14. http://www.cs.arizona.edu/xkernel/hpcc-blue/linux.html
  15. http://www.xs4all.nl/%7Efreeswan/
  16. http://www.cs.hut.fi/ssh/%20
  17. http://guardian.htu.tuwien.ac.at/therapy/ssh/%20
  18. http://www.datafellows.com/
  19. http://www.net.lut.ac.uk/psst/%20
  20. http://www.psy.uq.oz.au/%7Eftp/Crypto/
  21. http://srp.stanford.edu/srp
  22. http://www.kernel.org/pub/linux/libs/pam/index.html
  23. http://www.inka.de/%7Ebigred/devel/cipe.html
  24. http://nii.isi.edu/info/kerberos/
  25. http://metalab.unc.edu/LDP/HOWTO/Shadow-Password-HOWTO.html
  26. http://www.false.com/security/john/index.html
  27. http://www.l0pht.com/%20
  28. http://www.replay.com/redhat/
  29. ftp://ftp.research.att.com/dist/mab/
  30. http://edu-gw.dia.unisa.it/tcfs/
  31. http://metalab.unc.edu/LDP/HOWTO/mini/Remote-X-Apps.html
  32. http://synergy.caltech.edu/%7Eggi/
  33. ftp://ftp.kernel.org/
  34. http://www.kerneli.org/
  35. http://www.indyramp.com/masq
  36. http://www.indyramp.com/masq
  37. http://www.monmouth.demon.co.uk/ipsubs/portforwarding.html
  38. ftp://ftp.compsoc.net/users/steve/ipportfw/linux21/
  39. http://www.trouble.org/%7Ezen/satan/satan.html
  40. http://www.psionic.com/abacus
  41. http://www.nessus.org/
  42. http://www.sendmail.org/
  43. http://www.qmail.org/
  44. http://gulic.org/www.vmailer.org
  45. http://metalab.unc.edu/mdw/HOWTO/NIS-HOWTO.html
  46. http://metalab.unc.edu/mdw/HOWTO/Firewall-HOWTO.html%20
  47. http://metalab.unc.edu/mdw/HOWTO/mini/IP-Masquerade.html
  48. http://www.xos.nl/linux/ipfwadm/
  49. http://www.ora.com/
  50. http://csrc.nist.gov/nistpubs/800-10/main.html
  51. http://sites.inka.de/sites/lina/freefire-l/index_en.html
  52. http://www.sunworld.com/swol-01-1996/swol-01-firewall.html
  53. http://www.rustcorp.com/linux/ipchains/HOWTO.htm
  54. http://www.crosswinds.net/nuremberg/%7Eanstein/unix/vpnd.html
  55. http://www.xs4all.nl/%7Efreeswan/
  56. http://www.strongcrypto.com/
  57. http://www.core-sdi.com/ssyslog/%20
  58. http://www.caldera.com/tech-ref/security/
  59. http://www.redhat.com/errata
  60. http://www.debian.com/security/
  61. http://www.geocities.com/galinux2000/numero1uxcomo.htm
  62. http://www.algonet.se/%7Epeterpet/portal/seguridad.html
  63. http://losinvisibles.net/como/comoIptables.html
  64. http://lacarcel.iespana.es/lacarcel/Seg_linx_2.htm%20
  65. http://evilgirls.net/
