361
Memoria del Proyecto  —– Servidor Linux para conexiones seguras de una LAN a Internet  —– Jose Antoni o Escart´ ın Vigo Junio de 2005

Manual de Usuario, Administracion e Instalacion de Servidores Linux - Debian Sarge 3.1 - (UPC) 04-05

Embed Size (px)

Citation preview

  • Memoria del Proyecto

    Servidor Linux

    para conexiones seguras de una LAN a Internet

    Jose Antonio Escartn Vigo

    Junio de 2005

  • Introduccion

    En las siguientes lneas trato de describir los motivos que me llevaron a escoger un proyecto de esteestilo y de donde surgio la idea de realizar un documento informativo para facilitar la tarea de muchosadministradores de sistemas noveles, como yo cuando comence este proyecto.

    En esta pequena introduccion tambien se especifican los objetivos que se pretenden conseguir y paraentrar en materia se comenta, muy por encima, la historia de Linux.

    Motivacion

    Me decid a realizar este proyecto por la inquetud personal que tena respecto al sistema operativoLinux. Conozco a mucha gente que lo maneja y que me hablaba muy bien, por pereza y falta de tiempo,nunca me haba puesto a experimentar a fondo con el. Si bien es cierto que lo tena instalado (una versionMandrake 9.0) lo utilizaba solamente para realizar las practicas de la universidad y poca cosa mas.

    Siempre me han atrado los sistemas operativos, bastante mas que la rama de programacion. Unaprueba de ello es que cuando llege a la FIB (vine del Ciclo formativo de grado superior: Desarrollo deaplicaciones informaticas; es decir, basicamente programacion) me cambie a la rama de sistemas.

    Actualmente me encuentro cursando el PFC de la Ingeniera tecnica en Informatica de Sistemas ytengo la intencion de solicitar plaza de admision en la Ingeniera superior de informatica, carrera a la queno pude acceder en primera instancia por restricciones legales, al acceder a la universidad por la va delos ciclos formativos de grado superior.

    A lo largo de la carrera, he cursado las siguientes asignaturas relacionadas con los sistemas operati-vos: ISO (Introduccion a los sistemas operativos), SO (Sistemas Operativos), ASO (Administracion desistemas operativos), CASO (Conceptos avanzados de sistemas operativos), SSI (Seguridad en sistemasinformaticos). Ademas hace unos anos, antes de comenzar la carrera, realizaba trabajos de administradorde sistemas en entornos Windows, para dos institutos (IES Piramide y IES Sierra de Guara) de mi ciudadnatal, Huesca.

    El PFC: Servidor Linux para conexiones seguras de una LAN a Internet me ha permitido desarrollaramplios conocimientos en el campo de los sistemas operativos, algo que realmente me interesa y supongoque me permitira encarrilar mi carrera hacia el trabajo que pretendo desarrollar como Administrador desistemas.

    Si en vez de elegir uno de los proyectos propuestos desde la universidad, hubiera pensado proponeruno, sin duda habra elegido hacer un proyecto igual al que propuso el profesor Llus Perez Vidal deldepartamente LSI de la UPC. Me siento bastante afortunado de haber realizado un PFC que realmenteme interesaba y motivaba.

  • vi Servidor Linux para conexiones seguras de una LAN a Internet

    Motivacion del proyecto

    Ante el problema de instalar un sistema operativo que controle los servicios de red y ademas sea establese nos plantean principalmente dos alternativas, Linux o Windows.

    Que ventajas tiene Linux sobre Windows?

    Es mas seguro.

    Ya que la gran mayora de los ataques de hackers son dirigidos a servidores Windows al igual quelos virus los cuales se enfocan principalmente a servidores con este sistema operativo. La plataformaLinux es mas robusta lo cual hace mas difcil que algun intruso pueda violar la seguridad del sistema.

    Es mas rapido.

    Al tener una plataforma mas estable, se favorece la utilizacion de aplicaciones de todo tipo deaplicaciones. La eficiencia de su codigo fuente hace que la velocidad de las aplicaciones Linux seansuperiores a las que corren sobre Windows.

    Es mas economico.

    Ya que requiere menor mantenimiento. Los servidores Windows son mas costosos debido a que esnecesaria una frecuente atencion y monitoreo contra ataques de virus, hackers y errores de codigo.El software Linux as como tambien un sin numero de aplicaciones, son de codigo abierto y estanprotegidas por la licencia GPL1, motivo por el que son distribuidas gratuitamente. No requierensupervision constante ni pagos de mantenimiento para obtener Service Packs, que no son mas queparches de seguridad para aplicaciones mal diseadas.

    Que ventajas tiene Windows sobre Linux?

    Es mas facil.

    Al ser de mayor facilidad de uso Windows en este momento continua siendo el sistema operativo mascomercial lo cual se refleja en la disponibilidad de aplicaciones, facilidad de mantenimiento as comosoporte en el desarrollo de nuevas aplicaciones.

    Las aplicaciones se desarrollan en menor tiempo.

    Fruto de la inversion realizada por Microsoft y aunado a una comunidad de programadores cada vezmas grande se ha logrado facilitar el desarrollo de aplicaciones y sistemas que corran sobre servidoresWindows lo cual se ve reflejado en tiempos de desarrollo menores. De la misma forma, la curva deaprendizaje en el sistema Windows es mucho menor.

    La alternativa mas sencilla y a la vez mas ineficiente es elegir un sistema operativo Windows. Lo quese busca es seguridad, integridad de datos y eficiencia del sistema, por tanto nos decantaremos por unadistribucion GNU/Linux.

    El proyecto surge ante la necesidad de escoger entre las distribuciones Linux actuales, la mas adecuadapara instalar un servidor e implementar las aplicaciones necesarias para dar servicios a clientes de sistemasoperativos Linux y Windows.

    Esto es algo no trivial y el proyecto trata de ser una ayuda, apoyo y consulta para facilitar la tarea deuna persona que trate de implementar un servidor.

    1GPL: Licencia publica GNU. Segun se cita en [Sha01] expecifica explcitamente que el software desarrollado es libre yque nadie puede coartar estas libertados. Se puede revender, incluso obteniendo beneficio; sin embargo, en esa reventa elvendedor debe de proveer el codigo fuente completo, incluyendo cualquier modificacion realizada. El paquete continua bajoGPL y puede ser distribuido de modo libre y revendido de nuevo obteniendo tambien beneficio. Es de una importanciaprimordial la clausula de responsabilidad: los programadores no son responsables de cualquier dano causado por su software.

    Jose Antonio Escartn Vigo, Junio 2005.

  • vii

    Objetivos

    Este documento esta elaborado para describir la implementacion de un servidor GNU/Linux, as comoespecificar y resolver los principales problemas que un administrador se encuentra al poner en funcio-namiento un servidor. Se aprendera a configurar un servidor GNU/Linux describiendo los principalesservicios utilizados para compartir archivos, paginas web, correo y otros que veremos mas adelante.

    La herramienta de configuracion Webmin, que se detalla en uno de los ultimos captulos es indepen-diente de la distribucion GNU/Linux que utilicemos y nos permitira administrar de forma transparentediferentes distribuciones, con la ventaja que eso supone si alguna vez cambiamos de distribucion.

    Cuadro 1: Objetivos del proyecto

    Estudiar el entorno de composicion de textos LATEX

    Analizar e instalar las distribuciones Linux mas importantes

    Estudiar la compilacion de kernels

    Analizar y configurar los servicios para usuarios Linux y Windows

    Establecer sistemas de proteccion

    Realizar pruebas de seguridad del servidor

    Documentar el proyecto

    Marco historico

    Como se especifica en [BB00], Linux hizo su aparicion en 1991 cuando el finlandes Linus Torvalds deci-dio publicar en Internet su proyecto de carrera, animando a la comunidad internacional de programadoresa mejorarlo. Nacio como una mejora de Minix, una version de Unix para ordenadores PC basados en elprocesador 8086 de Intel, Linux por su parte utilizaba el procesador 386SX de Intel.

    Posiblemente una de las explicaciones del exito de Linux es GNU1 que junto con la FSF2 (Free SoftwareFundation), tratan de promover el desarrollo de programas cuyo codigo sea publico y compartido. Una delas principales aportaciones GNU fue Linux, un sistema operativo de libre distribucion.

    A partir de 1994 emperzaron a aparecer las primeras distribuciones de CD-ROM, junto con el codigofuente del sistema operativo, se dispona de diversas utilidades y aplicaciones sin tener que descargarlas.Ese ano aparecieron los primeros grupos locales de usuarios de Linux y la primera revista on-line especia-lizada. Al ano siguiente se empezo a trabajar en las primeras versiones de Linux para plataforma no Intely los primeros desarrollos de instaladores parcialmente automaticos. A partir de 1996 Linux comienza adifundirse de forma mas general en Espana, ano en el que se inicia el proyecto de documentacion de Linuxen catellano (LUCAS) y se comienzan a organizar los primeros grupos de usuarios.

    El futuro es muy prometedor, cada vez es mayor el numero de fabricantes de software y hardware quehan mostrado un creciente interes.

    1GNU: GNU no es Unix. Definicion recursiva que representa el humor informatico en su maxima expresion2FSF: Fundacion para el software libre. Es el principal contribuidor del Proyecto GNU, depende de donaciones privadas y

    se dedica a preservar, proteger y promover los derechos de los usuarios y su libertad para usar, estudiar, copiar, modificar yredistribuir software. Apoya la libertad de expresion, prensa y asociacion en internet, el derecho a usar software criptograficoen comunicaciones privadas y el derecho a escribir software sin los impedimentos del monopolio.

    Jose Antonio Escartn Vigo, Junio 2005.

  • viii Servidor Linux para conexiones seguras de una LAN a Internet

    Requisitos mnimos Linux

    Probablemente la configuracion mnima sobre la que Linux sea capaz de funcionar sea un 386SX con 2Mb de memoria RAM y una disquetera de 1.44, aunque con estas caractersticas simplemente podremosarrancar el sistema y poco mas. Una configuracion mas realista debera incluir 4Mb de Ram si no vamosa utilizar el entorno grafico, 8Mb en caso contrario y un mnimo de 40MB de espacio en disco, aunqueen las distribuciones actuales el espacio debera ser mayor de unos 300Mb. Cantidades ridculas si lascomparamos con los dispositivos disponibles actualmente, pero que permiten reutilizar materiales masantiguos de los que se pueda disponer. Frente a estos requerimientos, se encuentran los sistemas Windows,con unos requerimientos1 desorbitados.

    Linux soporta cualquier CPU compatible con los procesadores x86 de Intel, pudiendose encontrarversiones que funcionan con procesadores 680x0 de Motorola utilizados en ordenadores Amiga y Atari.Tambien son compatibles con Linux muchos ordenadores basados en Alpha, ciertas maquinas Sparc, lasmaquinas basadas en PowerPC como por ejemplo los ordenadores Macintosh de Apple, as como ARM,MIPS y algunos tipos de agendas electronicas, telefonos y consolas de juegos.

    Notas Previas

    Se van a tomar varias la siguiente notacion para el documento:

    Cuando aparezcan frases que el usuario pueda introducir por teclado se hara notar por el tipo deletra mecanografica, Verbatim

    Al hacer referencia a un comando que deba de ser introducido por una cuenta con privilegios deroot, ira precedido por el caracter #

    Al hacer referencia a un comando que puede a ser ejecutado por un usuario cualquiera del sistema,si tiene privilegios para ello, ira precedido por el caracter $

    Cuando se muestran codigos el caracter # al inicio de la frase especifica que esa frase concreta esun comentario dentro del codigo.

    1WindowsXP: Procesador 233Mhz, 64Mb Ram y 1.5 Gb de disco; Windows2003 Server: Procesador 550Mhz, 256Mb Ramy 1.5 Gb de disco

    Jose Antonio Escartn Vigo, Junio 2005.

  • Indice general

    Introduccion IV

    I Tareas previas 1

    1. Planificacion 31.1. Fases del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2. Esquema temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    2. Seleccion de Herramientas 92.1. Seleccion de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.1.1. Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.2. Clientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.2. Seleccion de la distribucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.1. Distribuciones Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.2. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2.3. Distribucion elegida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    2.3. Seleccion del Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3.1. Planner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3.2. LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.3.3. Kile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3.4. Prosper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3.5. Programas graficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    II Instalacion base 19

    3. Instalacion de la distribucion 213.1. Proyecto Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    3.1.1. Unstable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.1.2. Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.1.3. Stable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.1.4. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    3.2. Debian Sarge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3. Debian Woody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.4. Actualizacion de Woody a Sarge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    4. Primeros pasos 254.1. Particionar el disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2. Gestores de arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.3. Usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    4.3.1. Anadir nuevos usuarios al sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.3.2. Anadir grupos al sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

  • x Servidor Linux para conexiones seguras de una LAN a Internet

    4.3.3. Bases de datos de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.4. Permisos de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    4.4.1. Tipos de archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.4.2. Modificar los permisos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.4.3. Permisos especiales: SUID, SGID y bit de persistencia . . . . . . . . . . . . . . . . 324.4.4. Cambiar un archivo de propietario o grupo . . . . . . . . . . . . . . . . . . . . . . 33

    4.5. Instalacion de aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.5.1. Compilacion de paquetes desde archivos fuente . . . . . . . . . . . . . . . . . . . . 334.5.2. Dpkg: Instalador de paquetes precompilados . . . . . . . . . . . . . . . . . . . . . . 364.5.3. Apt: Gestor de paquetes Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.5.4. Alien: Convertir paquetes .rpm a .deb (formato Debian) . . . . . . . . . . . . . . . 384.5.5. Encontrar paquetes y sus dependencias . . . . . . . . . . . . . . . . . . . . . . . . 384.5.6. Problemas al instalar paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    4.6. Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.6.1. Tipos de shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.6.2. Caractersticas de la shell Bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.6.3. Ejecucion de procesos en la shell Bash . . . . . . . . . . . . . . . . . . . . . . . . . 414.6.4. Variables de entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.6.5. Configuracion del entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.6.6. Redireccionamientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    4.7. Consolas virtuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    5. Kernel 455.1. Por que compilar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.2. Acerca de los modulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.3. Kernel-image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.4. Kernel-source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    5.4.1. Instalar un kernel-source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465.4.2. Crear un paquete .deb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    5.5. Compilar Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.5.1. Paquetes necesarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.5.2. Comprobar el hardware disponible . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.5.3. Metodo de compilacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.5.4. Parchear el kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.5.5. Consejos para la configuracion del kernel . . . . . . . . . . . . . . . . . . . . . . . . 49

    6. Interfaz grafico 516.1. X-Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    6.1.1. Configuracion X-Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.1.2. Arrancar X-Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    6.2. Gestores de ventanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566.3. Entornos de escritorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    6.3.1. Kde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576.3.2. Gnome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586.3.3. Otros entornos de escritorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    7. Infraestructura de redes 597.1. Arquitectura de redes (Modelo OSI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597.2. Direcciones IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    7.2.1. Datagramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637.2.2. Encaminamiento IP (router y gateway) . . . . . . . . . . . . . . . . . . . . . . . . 637.2.3. Mascaras de red y notacion de barra inclinada . . . . . . . . . . . . . . . . . . . . 647.2.4. Subneting (CIDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657.2.5. Enmascaramiento IP (NAT, Network Adress Translation) . . . . . . . . . . . . . . 66

    7.3. Resolucion de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    Jose Antonio Escartn Vigo, Junio 2005.

  • Indice general xi

    7.3.1. ARP (Adress Resolution Protocol) . . . . . . . . . . . . . . . . . . . . . . . . . . . 687.3.2. RARP (Reverse Address Resolution Protocol) . . . . . . . . . . . . . . . . . . . . . 68

    7.4. Protocolos de red, IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697.4.1. ICMP (Internet Control Message Protocol) . . . . . . . . . . . . . . . . . . . . . . 697.4.2. OSPF (Open Shortest Path First) . . . . . . . . . . . . . . . . . . . . . . . . . . . 697.4.3. Protocolo BGP (Border Gateway Protocol) . . . . . . . . . . . . . . . . . . . . . . 707.4.4. IGMP (Internet Group Management Protocol) . . . . . . . . . . . . . . . . . . . . 70

    7.5. Protocolos de transporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707.5.1. UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717.5.2. TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    7.6. Protocolos de aplicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747.6.1. NFS (Network File System) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747.6.2. SNMP (Simple network management protocol) . . . . . . . . . . . . . . . . . . . . 747.6.3. DNS (Domain Name Server) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747.6.4. SMTP (Simple Mail Transfer Protocol) . . . . . . . . . . . . . . . . . . . . . . . . 747.6.5. TELNET (Remote login) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757.6.6. FTP (File Transfer Protocol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757.6.7. HTTP (Hyper Text Transport Protocol) . . . . . . . . . . . . . . . . . . . . . . . . 75

    7.7. Protocolo TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    8. Configuracion de dispositivos de red 798.1. Etherconf: Configurador grafico de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798.2. Ifconfig: Configurador de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798.3. Route: Tablas de redireccionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818.4. Netstat: Estado de las conexiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838.5. Configuracion de interfaces usando DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . 838.6. Archivo /etc/network/interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    8.6.1. Direcciones IP estaticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848.6.2. Direcciones IP dinamicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848.6.3. Interfaz Wifi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858.6.4. Interfaz PPPoE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858.6.5. Puertas de enlace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858.6.6. Interfaces virtuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

    8.7. Reconfiguracion de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868.7.1. Configuracion de red durante el arranque . . . . . . . . . . . . . . . . . . . . . . . 878.7.2. Hotplug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878.7.3. Ifplugd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

    8.8. Resolvconf: Resolucion de nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888.9. Archivos de configuracion de Hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898.10. Iwconfig: Configuracion wireless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898.11. Resolucion de problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    III Instalacion de Servicios 91

    9. Servicios de red 939.1. Servidor DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    9.1.1. Asignacion de direcciones IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939.1.2. Parametros configurables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949.1.3. Implementaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949.1.4. Anatoma del protocolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949.1.5. Configuracion de un servidor DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . 959.1.6. Configuracion de un cliente DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . 989.1.7. Configuracion grafica de DHCP, interfaz Webmin . . . . . . . . . . . . . . . . . . . 99

    9.2. BIND: Servidor de nombres DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

    Jose Antonio Escartn Vigo, Junio 2005.

  • xii Servidor Linux para conexiones seguras de una LAN a Internet

    9.2.1. Para que necesitamos un DNS? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019.2.2. Servicios que activa un DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029.2.3. Configuracion del servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029.2.4. Traduccion de nombres a direcciones IP . . . . . . . . . . . . . . . . . . . . . . . . 1039.2.5. Configuracion grafica de DNS BIND, interfaz Webmin . . . . . . . . . . . . . . . . 1039.2.6. Seguridad en DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

    9.3. NIS: Servicio de informacion de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099.3.1. Funcionamiento basico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099.3.2. Servidores NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099.3.3. Configuracion del servidor NIS maestro . . . . . . . . . . . . . . . . . . . . . . . . 1109.3.4. Cliente NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139.3.5. Herramientas basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159.3.6. Problemas de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

    9.4. NFS: Sistema de archivos Linux en red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1179.4.1. Cliente NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1179.4.2. Montaje automatico de particiones NFS . . . . . . . . . . . . . . . . . . . . . . . . 1189.4.3. Propiedades de las particiones montadas . . . . . . . . . . . . . . . . . . . . . . . . 1189.4.4. Servidor de NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199.4.5. Configuracion grafica de NFS, interfaz Webmin . . . . . . . . . . . . . . . . . . . . 120

    9.5. Samba: Servicio de conexiones para sistemas Microsoft . . . . . . . . . . . . . . . . . . . . 1219.5.1. Comparticion de recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219.5.2. Que es Samba? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219.5.3. Configuracion grafica de Samba, interfaz SWAT . . . . . . . . . . . . . . . . . . . . 1239.5.4. Funcionamiento de CIFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249.5.5. Parametros globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1259.5.6. Impresoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1269.5.7. Comparticion de directorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1269.5.8. Limitar acceso de los usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1279.5.9. Integracion de Samba en un dominio NT . . . . . . . . . . . . . . . . . . . . . . . 1279.5.10. Configuracion de Samba como controlador de dominio . . . . . . . . . . . . . . . . 1289.5.11. Cliente Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1289.5.12. Configuracion grafica de Samba, interfaz Webmin . . . . . . . . . . . . . . . . . . . 129

    9.6. ProFTPD: Servidor FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1319.6.1. Servidor ProFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1319.6.2. Configuracion grafica de ProFTP, interfaz Webmin . . . . . . . . . . . . . . . . . . 1329.6.3. Clientes FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

    10.Servicios de usuario 13310.1. Cuotas de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

    10.1.1. Arrancar el sistema de cuotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13310.1.2. Asignar cuotas a los usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13410.1.3. Configuracion grafica de Quote, interfaz Webmin . . . . . . . . . . . . . . . . . . . 134

    10.2. Cups: Servidor de impresion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13610.2.1. Servidor Cups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13610.2.2. Servidor Cups para Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13910.2.3. Clientes Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14010.2.4. Clientes Microsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14010.2.5. Solucionar problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

    10.3. Servidor Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14110.3.1. Servidor Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14110.3.2. Apache-SSL: Conexiones seguras . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15010.3.3. Creacion de un servidor web seguro . . . . . . . . . . . . . . . . . . . . . . . . . . 15210.3.4. Apache 2.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15610.3.5. Ataques al servidor Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

    Jose Antonio Escartn Vigo, Junio 2005.

  • Indice general xiii

    10.4. Servidor de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15710.4.1. Exim: Correo corporativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15710.4.2. Fetchmail: Correo externo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15910.4.3. Horde: Webmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16110.4.4. Protocolo IMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16210.4.5. Filtrado de correo, eliminar virus y Spam con Procmail . . . . . . . . . . . . . . . 16310.4.6. ClamAV: Antivirus para correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16510.4.7. SpamAssassin: Filtro basado en reglas . . . . . . . . . . . . . . . . . . . . . . . . . 16710.4.8. Bogofilter: Filtro bayesiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

    10.5. Jabber: Mensajera instantanea para corporaciones . . . . . . . . . . . . . . . . . . . . . . 17210.5.1. Servidor Jabber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17310.5.2. Configuracion grafica de Jabber, interfaz Webmin . . . . . . . . . . . . . . . . . . . 17410.5.3. Clientes Jabber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

    11.Comunicaciones seguras 17711.1. Shell seguro: OpenSSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

    11.1.1. Cliente OpenSSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17711.1.2. Servidor OpenSSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

    11.2. Criptografa y cifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18111.2.1. Tipos de cifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18111.2.2. Estandares generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18211.2.3. Aplicaciones de la criptografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18311.2.4. Protocolos de cifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18411.2.5. OpenPGP: Aplicacion de cifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

    12.Herramientas de seguridad 19112.1. Herramientas basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

    12.1.1. Ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19112.1.2. Traceroute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19212.1.3. Whois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19312.1.4. Dig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19412.1.5. Finger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

    12.2. Firewall o cortafuegos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19612.2.1. Polticas de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19612.2.2. Modos de configuracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19612.2.3. IPTables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

    12.3. Squid: Proxy transparente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20412.4. Bastille Linux: Herramienta de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

    12.4.1. Ejecucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20612.4.2. Modos de funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

    12.5. Copias de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20712.5.1. Dispositivos de cinta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20712.5.2. Mt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20812.5.3. Dump y Restore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20812.5.4. Configuracion grafica de backups, interfaz Webmin . . . . . . . . . . . . . . . . . . 21012.5.5. K3B: Grabacion de CDs y DVDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

    13.Sistemas de deteccion de intrusiones 21313.1. Tipos de IDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

    13.1.1. NIDS (Network Intrusion Detection System) . . . . . . . . . . . . . . . . . . . . . 21313.1.2. IDS (Deteccion de actividades anomalas) . . . . . . . . . . . . . . . . . . . . . . . 21413.1.3. IPS (Intrusion Prevention System) . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

    13.2. Ubicacion del NIDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21413.3. El problema de los falsos positivos de NIDS . . . . . . . . . . . . . . . . . . . . . . . . . . 21513.4. Obtener lo maximo del IDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

    Jose Antonio Escartn Vigo, Junio 2005.

  • xiv Servidor Linux para conexiones seguras de una LAN a Internet

    13.4.1. Configuracion apropiada del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 21713.4.2. Ajuste del IDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21713.4.3. Herramientas de analisis IDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

    13.5. IDS Snort (NIDS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21813.5.1. Caractersticas basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21813.5.2. Instalacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21813.5.3. Modos de ejecucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21913.5.4. Modos de alerta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22113.5.5. Optimizar la configuracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22213.5.6. Clases de reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22313.5.7. Ejecutar como servicio del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 22613.5.8. Configuracion grafica de Snort, interfaz Webmin . . . . . . . . . . . . . . . . . . . 22613.5.9. Personalizar reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

    13.6. Deteccion de intrusiones en el host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22913.7. Integridad de archivos: IDS Tripwire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23113.8. ACIDlab: Analizar alertas IDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23513.9. Logcheck: Analizar logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23913.10.PortSentry: Detectar escaneos de puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . 24113.11.Detectores de sniffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

    13.11.1.Neped . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24713.11.2.Sentinel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

    13.12.Chkrootkit: Detector de rootkits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24813.13.HoneyPots: Entretener a los atacantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

    13.13.1.Como funcionan? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25113.13.2.Ventajas y desventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25113.13.3.Utilidades de honeypots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25213.13.4.Tipos de honeypots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25313.13.5.Otras caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25413.13.6.Honeynets: alta interaccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25513.13.7.Honeyd: baja interaccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

    14.Redes inalambricas 25714.1. Estandar 802.11 (Wifi) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25714.2. Peligros de las LAN inalambricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25914.3. El fenomeno del Wardriving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26014.4. Seguridad en redes inalambricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

    14.4.1. Clave WEP (Wired Equivalente Privacy) . . . . . . . . . . . . . . . . . . . . . . . 26214.4.2. Clave WPA (Wifi Protected Access) . . . . . . . . . . . . . . . . . . . . . . . . . . 26214.4.3. Clave WPA2 (Estandar 802.11i) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26614.4.4. Medidas preventivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

    14.5. Servidor Radius: FreeRadius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26714.5.1. Configurar FreeRadius con EAP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . 26714.5.2. Generar los certificados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26914.5.3. Comprobar el funcionamiento de FreeRadius . . . . . . . . . . . . . . . . . . . . . 27014.5.4. Configurar AP (Router 3Com) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27014.5.5. Clientes Linux: WPA-Supplicant . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27114.5.6. Clientes Windows: WindowsXP + SP2 . . . . . . . . . . . . . . . . . . . . . . . . . 272

    14.6. Herramientas de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27314.6.1. Descubrir redes ilegales e intrusos: Kismet Wireless . . . . . . . . . . . . . . . . . . 27314.6.2. Desencriptar claves inalambricas WEP: Airsnort . . . . . . . . . . . . . . . . . . . 275

    15.Servicio de administracion por Web: WebMin 27915.1. Usuarios de Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27915.2. Secciones Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27915.3. Modulos de Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

    Jose Antonio Escartn Vigo, Junio 2005.

  • Indice general xv

    16.Servicios de monitorizacion del sistema 28716.1. Monitor del sistema: Top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28716.2. Rendimiento del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

    16.2.1. CPU, dispositivos y particiones de E/S: iostat . . . . . . . . . . . . . . . . . . . . . 28816.2.2. Memoria: free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28916.2.3. Memoria virtual: vmstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28916.2.4. Disco: df, du . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29016.2.5. Usuarios y sus procesos: w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

    16.3. Gestionar procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29016.3.1. Visualizar procesos: ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29116.3.2. Enviar signals a procesos: kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29216.3.3. Modificar prioridades: nice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

    16.4. Terminal de root con prioridad maxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29316.5. Programacion de tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

    16.5.1. At . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29416.5.2. Cron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29416.5.3. Tareas periodicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29616.5.4. Anacron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

    IV Valoracion final 297

    17.Pruebas del sistema 29917.1. Nessus: Escaner de vulnerabilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

    17.1.1. Configurar el programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29917.1.2. Ejecucion de Nessus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30017.1.3. Otros interfaces de configuracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302

    17.2. Nmap: Escaner de red y puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30317.2.1. Caractersticas basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30317.2.2. Tipos de escaneado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30517.2.3. Opciones de descubrimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30517.2.4. Opciones de ajuste de frecuencia de Nmap . . . . . . . . . . . . . . . . . . . . . . . 30517.2.5. Otras opciones de Nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30617.2.6. Salida de Nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30717.2.7. Configuracion grafica de Nmap, interfaz Nmapfe . . . . . . . . . . . . . . . . . . . 307

    17.3. Pruebas de carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

    18.Estudio Economico 30918.1. Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30918.2. Costes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31018.3. Resumen economico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31018.4. Modificaciones a los costes economicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

    19.Conclusiones 311

    V Apendices 315

    A. Comandos basicos 317

    B. Debian en castellano 319

    C. Archivos de configuracion 321

    D. Por que Debian no tiene rc.local? 325

    Jose Antonio Escartn Vigo, Junio 2005.

  • xvi Servidor Linux para conexiones seguras de una LAN a Internet

    E. Puertos por defecto 327

    F. Manual del editor Vim (Vi mejorado) 329

    G. Gua rapida de IPTables 331

    Debian Sarge, nueva version estable 333

    Licencia CC - Reconocimiento-CompartirIgual 335

    Paginas Web 339

    Bibliografa 343

    Jose Antonio Escartn Vigo, Junio 2005.

  • Indice de figuras

    1.1. Planificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.1. Planner, distribucion de recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2. Planner, diagrama temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.3. Editor Kile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.4. Prosper, tipos de transparencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    7.1. IP, rango de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617.2. IP, direcciones reservadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627.3. IP, cabecera del datagrama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647.4. UDP, cabecera del datagrama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727.5. TCP, cabecera del datagrama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    9.1. DHCP, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009.4. DNS BIND, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1059.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079.10. NIS, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109.11. NFS, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209.12. Samba, interfaz grafica SWAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239.13. Samba, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309.14. ProFTPD, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

    10.1. Quota, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13510.2. Cups, interfaz grafica de configuracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13710.3. Cups, impresora HP815 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13910.4. Apache, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14210.5. Apache, parametros de configuracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14410.6. Apache, modulo HtAccess Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14510.7. Webalizer, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14710.8. Apache, servidores virtuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14810.9. Apache, comparticion de carpetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14810.10.Apache, modulos instalados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15010.11.Exim, monitor con la interfaz Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15910.12.Fetchmail, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

  • xviii Servidor Linux para conexiones seguras de una LAN a Internet

    10.13.Procmail, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16510.14.Procmail, crear acciones de forma grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . 16510.15.SpamAssassin, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16810.16.SpamAssassin, opciones de configuracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16910.17.Jabber, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17510.18.Kopete, cliente de mensajera instantanea . . . . . . . . . . . . . . . . . . . . . . . . . . . 17610.19.Gaim, cliente de mensajera instantanea . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

    11.1. SSHD, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

    12.1. Backups, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21112.2. K3B, grabacion de CDs y DVDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

    13.1. Snort, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22713.2. Acidlab, detalle de una alerta de Snort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23813.3. Logcheck, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24213.4. PortSentry, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

    14.1. Smbolos urbanos de redes wifi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26114.2. WEP-WPA, comparativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26314.3. WPA/EAP, funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26314.4. WPA, autenticacion servidor Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26414.5. Servidor Radius, sistema de autenticacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 26814.6. Servidor Radius, desvo en el router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27014.7. AirSnort, descifrado de claves WEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

    15.1. Webmin, pantalla de configuracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28015.2. Webmin, pantallas de la interfaz Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28515.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

    17.1. Nessus, configuracion de la aplicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30117.2. Nessus, vulnerabilidades del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302

    D.1. Runlevels, modulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

    G.1. Licencia Reconocimiento-CompartirIgual . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338

    Jose Antonio Escartn Vigo, Junio 2005.

  • Indice de cuadros

    1. Objetivos del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

    2.1. Distribuciones Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    4.1. Lilo, archivo de configuracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2. /etc/passwd, ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.3. /etc/passwd, descripcion de campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.4. /etc/shadow, ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.5. /etc/shadow, descripcion de campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.6. /etc/group, ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.7. /etc/group, descripcion de campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.8. Tipos de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.9. Chmod, Opciones basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.10. Chmod, opciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.11. Makefile, ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.12. Dpkg, opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.13. /etc/apt/sources.list, ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.14. Apt, opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.15. Variables habituales del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    5.1. Kernel, paquetes basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.2. Kernel 2.6, paquetes necesarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.3. Metodo de compilacion del kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    6.1. /etc/X11/XF86Config-4, ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    7.1. Modelo de referencia OSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597.2. Tipos de redes, n.o de hosts por red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627.3. Notacion de barra inclinada en IPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657.4. TCP/IP, ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767.5. TCP/IP, esquema de transmision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    8.1. Netstat, opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    9.1. /var/yp/Makefile, ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    10.1. Apache, archivos de configuracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

    11.1. SSH cliente, opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

    12.1. Ping, opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19212.2. Dig, opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19512.3. IPTables, especificaciones de reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19912.4. IPTables, comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20012.5. IPTables, ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

  • xx Servidor Linux para conexiones seguras de una LAN a Internet

    12.6. /etc/squid/squid.conf, ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20412.7. Mt, opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20812.8. Dump, opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20912.9. Restore, opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

    13.1. Snort, opciones de alerta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22113.2. Snort, archivos de reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22413.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22513.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22613.5. Snort, opciones de personalizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23013.6. Tripwire, mascaras de propiedad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23113.7. Tripwire, mascaras predefinidas en plantillas . . . . . . . . . . . . . . . . . . . . . . . . . . 23213.8. Acidlab, variables de configuracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23613.9. PortSentry, opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

    14.1. Estandares 802.11 inalambricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25814.2. Kismet, configuracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27414.3. Kismet, configuracion de la interfaz grafica . . . . . . . . . . . . . . . . . . . . . . . . . . 27414.4. Kismet, teclas de la interfaz grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

    15.1. Webmin, modulos disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

    16.1. Ps, opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

    17.1. Nmap, tipos de escaneo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30517.2. Nmap, opciones de descubrimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30517.3. Nmap, configuraciones de frecuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30617.4. Nmap, otras opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30617.5. Nmap, codificacion de color de la salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

    18.1. Recursos del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30918.2. Costes del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

    Jose Antonio Escartn Vigo, Junio 2005.

  • Parte I

    Tareas previas

  • Captulo 1

    Planificacion

    El numero de creditos asignados al proyecto es de 22,5 y decid que cada credito me supondra unacarga de 20 horas, por lo tanto, la planificacion ha sido realizada para un total de 450 horas.

    1.1. Fases del proyecto

    Planificacion temporal: 20 horas. Mediante la herramienta de gestion de proyectos Planner, se realizauna division temporal de las actividades a realizar.

    Trabajo preliminar: 40 horas. Se eligen una serie de herramientas y sistemas sobre los cuales sedesarrolla el proyecto.

    Instalacion base y configuracion: 80 horas. Implementacion y configuracion del entorno de trabajo.

    Configuracion de los servicios: 120 horas. Basandose en los servicios tpicos que implementan losservidores de red, se instalan una serie de servicios estandar para clientes de sistemas operativosLinux y Windows.

    Pruebas del sistema y conclusiones: 30 horas. Apoyandose en una serie de pruebas de carga se deter-mina la eficiencia real, de los servicios del servidor. As mismo se utilizan varias herramientas paradeterminar la seguridad del servidor y comprobar su resistencia a posibles intrusiones o agresionesexternas.

    Aprendizaje del entorno LATEX: 20 horas. A traves de varios libros, que detallo en la bibliografa, seaprende a utilizar el entorno de composicion de textos LATEX para elaborar la documentacion delproyecto.

    Documentacion del proyecto: 140 horas. A lo largo del desarrollo de las fases anteriores se realizanuna serie de informes parciales que son la base de la memoria del proyecto.

    1.2. Esquema temporal

    Pese a la planificacion inicial, en los siguientes esquemas se detallan la cronologa real que se siguio enla elaboracion del proyecto.

    1PFC: Proyecto fin de carrera

  • 4 Servidor Linux para conexiones seguras de una LAN a Internet

    Figura 1.1: Planificacion (I)

    Jose Antonio Escartn Vigo, Junio 2005.

  • Captulo 1. Planificacion 5

    Figura 1.2: Planificacion (II)

    Jose Antonio Escartn Vigo, Junio 2005.

  • 6 Servidor Linux para conexiones seguras de una LAN a Internet

    Figura 1.3: Planificacion (III)

    Jose Antonio Escartn Vigo, Junio 2005.

  • Captulo 1. Planificacion 7

    Figura 1.4: Planificacion (IV)

    Jose Antonio Escartn Vigo, Junio 2005.

  • Captulo 2

    Seleccion de Herramientas

    En este capitulo explicare cuales fueron las diferentes herramientas utilizadas para la elaboracion delproyecto.

    En una primera fase se determina el hardware donde se implementa el servidor y los diferentesclientes utilizados en las pruebas

    En la segunda fase se elige la distribucion utilizada y los motivos que me llevaron a su eleccion

    En la tercera fase se detalla que herramientas de apoyo se uso para desarrollar los trabajos.

    2.1. Seleccion de Hardware

    Pese a que el director del proyecto me ofrecio la utilizacion de material del departamento LSI de laUPC, por mi comodidad, el material escogido fue de mi propiedad. Comprando una parte de el paradesarrollar de forma mas eficiente las tareas.

    2.1.1. Servidor

    Como servidor me decid por la compra de un ordenador portatil, que permitiera desarrollar un servidorportable con mas utilidades habituales en los servidores fijos, ademas de la ventaja de poder portar elproyecto y trabajar en sitios diferentes. Con este sistema se permite a un grupo corporativo itinerante eldesarrollo de sus actividades en posibles reuniones fuera de su propio edificio. La conexion y seguridad delsistema queda garantizada gracias al sistema de validacion de clientes.

    El portatil elegido fue un Acer TravelMate 4002 WLMI con procesador Intel Centrino a 1,6 Ghz.con dos tarjetas de red integradas, una ethernet 10/100Mb y otra wifi 802.11g de 54Mb que permite sinproblemas establecer dos segmentos diferenciados de red. Uno para los usuarios de oficina, es decir losusuarios fijos, y otro para los clientes wifi, dotando al sistema de mayor seguridad.

    Se presentaron una serie de problemas directamente derivados de esta eleccion. El hardware era dema-siado nuevo y esto provoco una serie de incompatibilidades que se fueron solucionando con la instalacionde drivers y parches que no se encontraban en las instalaciones Linux estandar.

    El servidor realiza tambien la gestion de la conexion a internet. Esta conexion es suministrada, cuandose encuentra fijo, por un router 3com conectado al switch de la red y que solo responde a las peticionesdel servidor.

    2.1.2. Clientes

    Como clientes se utilizaran varios PCs de sobremesa, conectados mediante cable RJ45 a un switch.

    PC AMD-Duron a 1,3 Ghz., tambien de mi propiedad, donde estara situado el principal clienteLinux y Windows del sistema. En este ordenador se realizaron la mayoria de pruebas de conexion aservicios.

  • 10 Servidor Linux para conexiones seguras de una LAN a Internet

    PC AMD-Athlon a 1,2 Ghz. y PC AMD-Athlon a 2,4 Ghz. con clientes Windows, prestados.

    Portatil Pentium-IV Mobile, con sistema Linux y Windows, para la pruebas de conexion de clientesinalambricos.

    Los clientes se utilizaron simultaneamente para realizar las pruebas de carga una vez terminada laimplementacion del servidor, para comprobar la efectividad del mismo.

    2.2. Seleccion de la distribucion

    Completada la infraestructura hardware, comence a leer sobre distribuciones de GNU/Linux, buscandocuales eran las mas adecuadas para desplegar servidores.

    A continuacion detallo los tipos de distribuciones valoradas:

    Mepis y Ubuntu (basadas en Debian) son consideradas las mejores para aquellos usuarios nuevosen Linux que quieren empezar a ser productivos lo antes posible, sin tener que aprender todas suscomplejidades, son distribuciones orientadas a usuario de escritorio.

    En el lado opuesto tenemos a Gentoo, Debian y Slackware que son distribuciones mas avanzadasque requieren un completo aprendizaje antes de poder ser usadas eficientemente.

    A medio camino entre ellas se encuentran Mandrake, Fedora (basada en Red Hat) y SuSE, estas dosultimas son distribuciones comerciales.

    Knoppix y Mepis-LiveCD (basadas en Debian) son un caso a parte, permiten probar Linux sin tenerque hacer nada, ya que funciona directamente del CD, sin ninguna instalacion.

    2.2.1. Distribuciones Linux

    Cuadro 2.1: Distribuciones analizadas

    SimplyMepis 3.3 - Mepis-LiveCDUbuntu (Warty Warthog 4.10)Gentoo 2004.3 (FreeBSD)Debian Woody 3.r04 - Sarge 3.1)Debian Sarge 3.1)Slackware 10.1Mandrake 10.1Fedora Core 3 (Red Hat)SuSEKnoppix 3.7

    Mepis y Mepis-LiveCD

    Fue lanzada por Warren Woodford en julio de 2003. Mepis Linux es una fusion entre Debian Sidy Knoppix, una nueva clase de distribucion de Linux que se pueda utilizar como CD en vivo, y comodistribucion completa con un instalador grafico a disco duro. De esta manera, usuarios pueden probar elproducto simplemente booteando desde el CD de Mepis, e instalandolo luego a disco duro solamentesi les gusta. Muchas otras distribuciones copiaron esta idea mas adelante, pero fue Mepis quien inicio elconcepto de un CD vivo mas un instalador grafico completo partiendo de un CD.

    A que se debe el exito de Mepis? A diferencia de la mayora de las distribuciones principales de Linux,Mepis viene con muchos paquetes que no son de uso-libre, pero altamente utiles, preconfigurados todos y

    Jose Antonio Escartn Vigo, Junio 2005.

  • Captulo 2. Seleccion de Herramientas 11

    listos para utilizar. Estos incluyen el driver de video Nvidia, el plugin Flash de Macromedia, Java, varioscodecs de multimedia para manejar archivos populares de audio y video y otros usos. Con Mepis Linux, nohay necesidad de buscar el software para Java y despues tener que buscar la documentacion para descubrircomo permitir el uso de Java en sus navegadores. Todo esta disponible despues de la instalacion.

    Esta idea simple resulto ser enormemente popular, no solamente entre los usuarios nuevos de Linux,sino tambien entre los mas experimentados quienes encontraron muy conveniente el no tener que pasarhoras post-instalacion configurando y afinando el sistema. Aparte de las aplicaciones estandard de Debiany del software no-libre antes citado Mepis Linux tiene excelente auto-deteccion del hardware.

    Ubuntu (Warty Warthog)

    Ubuntu esta basada en Debian, pero el planteamiento esta inspirado en los principios de la corrienteubuntu, un movimiento humanista encabezado por el obispo Desmond Tutu, premio Nobel de la Paz en1984. Economicamente el proyecto se sostiene con aportaciones de la empresa Canonical del millonariosudafricano Mark Shuttleworth.

    El proyecto nacio por iniciativa de algunos programadores de los proyectos Debian, Gnome y Archque se encontraban decepcionados con la manera de operar del proyecto Debian. La version estable erautilizada solo por una minora debido a la poca o nula vigencia que posea en terminos de la tecnologaLinux actual.

    Tras varios meses de trabajo y un breve perodo de pruebas, la primera version de Ubuntu (WartyWarthog) fue lanzada en el mes de octubre de 2004.

    Los desarrolladores se esfuerzan en ofrecer una propuesta que corrija la problematica que advirtieronen Debian. Las versiones estables se liberan al menos dos veces al ano y se mantienen actualizadas.

    Contribuye al proyecto Debian de manera continua debido a que ambas distribuciones compartencolaboradores de manera oficial. El administrador de escritorio oficial es Gnome y el navegador oficial esMozilla Firefox. El sistema incluye funciones avanzadas de seguridad y entre sus polticas se encuentra elno activar procesos latentes por omision al momento de instalarse.

    Gentoo (FreeBSD)

    Gentoo Linux fue creada por Daniel Robbins, un conocido desarrollador de Stampede Linux y FreeBSD.La primera version estable de Gentoo fu anunciada en Marzo del 2002.

    Gentoo Linux es una distribucion basada en codigo fuente. Mientras que los sistemas de instalacionproveen de varios niveles de paquetes pre-compilados, para obtener un sistema Linux basico funcionando,el objetivo de Gentoo es compilar todos los paquetes de codigo en la maquina del usuario. La principalventaja de esto es que todo el software se encuentra altamente optimizado para la arquitectura de lacomputadora.

    Tambien, actualizar el software instalado a una nueva version es tan facil como teclear un comando,y los paquetes, mantenidos en un repositorio central, son actualizados a menudo. En la otra cara de lamoneda, instalar Gentoo y convertirla en una distribucion completa, con los ultimos entornos graficos,multimedia y de desarrollo es un trabajo largo y tedioso, puede durar varios das incluso en una maquinarapida.

    Debian (Woody - Sarge)

    Debian GNU/Linux inicio su andadura de la mano de Ian Murdock en 1993. Debian es un proyectototalmente no-comercial; posiblemente el mas puro de los ideales que iniciaron el movimiento del softwarelibre. Cientos de desarrolladores voluntarios de todo el mundo contribuyen al proyecto, que es bien dirigidoy estricto, asegurando la calidad de la distribucion. En cualquier momento del proceso de desarrollo existentres ramas en el directorio principal: estable, en pruebas e inestable (tambien conocida como sid,nombre que no vara). Actualmente la rama estable es Woody y la rama en pruebas es Sarge.

    Cuando aparece una nueva version de un paquete, se situa en la rama inestable para las primeraspruebas, si las pasa, el paquete se mueve a la rama de pruebas, donde se realiza un riguroso proceso quedura muchos meses. Esta rama solo es declarada estable tras una muy intensa fase de pruebas.

    Jose Antonio Escartn Vigo, Junio 2005.

  • 12 Servidor Linux para conexiones seguras de una LAN a Internet

    Como resultado de esto, la distribucion es posiblemente la mas estable y confiable, aunque no lamas actualizada. Mientras que la rama estable es perfecta para servidores con funciones crticas, muchosusuarios prefieren usar las ramas de pruebas o inestable, mas actualizadas, en sus ordenadores personales.Debian es tambien famosa por su reputacion de ser difcil de instalar, a menos que el usuario tengaun profundo conocimiento del hardware de la computadora. Compensando este fallo esta apt-get elinstalador de paquetes Debian. Muchos usuarios de Debian hacen bromas sobre que su instalador es tanmalo por que solo lo han de usar una vez, tan pronto como Debian esta en funcionamiento, todas lasactualizaciones, de cualquier tipo pueden realizarse mediante la herramienta apt-get.

    Slackware

    Creada por Patrick Volkerding en 1992, Slackware Linux es la distribucion mas antigua que sobrevivehoy en da. No ofrece extras vistosos, y se mantiene con un instalador basado en texto, y sin herramientasde configuracion grafica.

    Mientras otras distribuciones intentan desarrollar intarfaces faciles de usar para muchas utilidadescomunes, Slackware no ofrece nada amistoso, y toda la configuracion se realiza mediante los archivos deconfiguracion. Es por esto que Slackware solo se recomienda a aquellos usuarios nuevos que deseen perderel tiempo aprendiendo acerca de Linux.A pesar de todo, Slackware tiene una especie de aura magica paramuchos usuarios.

    Es extremadamente estable y segura, muy recomendada para servidores. Los administradores conexperiencia en Linux encuentran que es una distribucion con pocos fallos, ya que usa la mayora de paquetesen su forma original, sin demasiadas modificaciones propias de la distribucion, que son un riesgo potencialde anadir nuevos fallos. Es raro que se produzcan lanzamientos de nuevas versiones (aproximadamente unaal ano), aunque siempre se pueden encontrar paquetes actualizados para descargar despues del lanzamientooficial. Slackware es una buena distribucion para aquellos interesados en profundizar en el conocimientode las entranas de Linux.

    Posiblemente, la mejor caracterstica de esta distribucion es que si necesitas ayuda con tu sistemalinux, encuentra un usuario de Slackware. Es mas probable que resuelva el problema que otro usuariofamiliarizado con cualquier otra distribucion.

    Mandrake

    Creada por Gal Duval, Mandrake Linux es una distribucion que ha experimentado un enorme aumentode popularidad desde su primera version de julio de 1998. Los desarrolladores partieron de la distribucionde Red Hat, cambiaron el entorno de escritorio predeterminado por KDE, y anadieron un instalador facilde usar rompiendo el mito de que linux es difcil de instalar. Las herramientas de deteccion de hardwarede Mandrake y sus programas para el particionamiento de discos son consideradas por muchos como lasmejores de la industria, y muchos usuarios se encontraron usando Mandrake all donde otras distribucionesno haban conseguido entregar la usabilidad necesaria.Desde entonces Mandrake Linux ha madurado yse ha convertido en una distribucion popular entre los nuevos usuarios de linux y aquellos hogares quebuscan un sistema operativo alternativo.

    El desarrollo de Mandrake es completamente abierto y transparente, con paquetes nuevos que se anadenal directorio llamado cooker a diario. Cuando una nueva version entra en fase beta, la primera beta secrea a partir de los paquetes que se encuentran en cooker en ese momento. El proceso de pruebas dela beta sola ser corto e intensivo, pero desde la versin 9.0 ha pasado ha ser mas largo y exigente. Laslistas de correo sobre la version beta suelen estar saturadas, pero sigue siendo posible recibir una respuestarapida sobre cualquier fallo o duda que enves. Como resultado de este tipo de desarrollo se obtiene unadistribucion puntera y altamente actualizada. Como contrapartida, los usuarios pueden encontrarse conmas fallos que en otras distribuciones.

    Mucha gente encuentra este pero razonable para sus equipos, ellos obtienen las ultimas versiones desoftware y los cuelgues ocasionales de las aplicaciones es algo con lo que pueden vivir. Tan pronto comoel desarrollo se completa el software se pone a la libre disposicion de la gente desde replicas en todo elmundo.

    Jose Antonio Escartn Vigo, Junio 2005.

  • Captulo 2. Seleccion de Herramientas 13

    Fedora (Red Hat)

    Para muchos el nombre de Red Hat equivale a Linux, ya que probablemente se trata de la companade linux mas popular del mundo. Fundada en 1995 por Bob Young y Marc Ewing, Red Hat Inc. Solo hamostrado beneficios recientemente gracias a otros servicios en lugar de a la distribucion en si. Aun as,Red Hat es la primera eleccion para muchos profesionales y parece que seguira siendo un peso pesadodurante mucho tiempo.

    Afortunadamente se resistieron a realizar ningun plan de rapida expansion durante el boom de laspunto-com durante los anos 1998-1999, concentrandose en su negocio principal. Este tipo de gestionprudente si sigue as, es propensa a garantizar estabilidad y dependencia..

    Que hace a Red Hat Linux tan especial? Su curiosa mezcla de conservadurismo y paquetes punterosmezclados con muchas aplicaciones desarrolladas en casa. Los paquetes no son los mas actuales, una vez seanuncia una nueva version beta, las versiones de los paquetes se mantienen, excepto para actualizacionesde seguridad. Como resultado se obtiene una distribucion bien probada y estable. El programa de betasy las facilidades para enviar fallos estan abiertas al publico y hay un gran espritu en las listas de correopublicas.

    Red Hat Linux se ha convertido en la distribucion linux dominante en servidores en todo el mundo.Otra de las razones del exito de Red Hat es la gran variedad de servicios populares que ofrece la com-

    pana. Los paquetes de software son facilmente actualizables usando la Red Hat Network, un repositoriooficial de software e informacion. Una larga lista de servicios de soporte son accesibles en la companay, aunque no siempre baratos, tienes virtualmente asegurado un excelente soporte de personal altamentecualificado. La compana ha desarrollado incluso un programa de certificacion para popularizar su distribu-cion, el RHCE (Certificado de Ingeniera de Red Hat), academias y centros examinadores estan disponiblesen el casi todas las partes del mundo.

    Todos estos factores han contribuido a que Red Hat sea una marca reconocida en el mundo de laindustria de las TI.

    SuSE

    SuSE es otra compana orientada a los escritorios, aunque tiene variedad de otros productos paraempresas. La distribucion ha recibido buenas crticas por su instalador y la herramienta de configuracionYaST, desarrollada por los desarrolladores de la propia SuSE. La documentacion que viene con las versionescomerciales, ha sido repetidas veces evaluada como la mas completa, util y usable con diferencia a la desus competidores. SuSE Linux 7.3 recibio el premio Producto del ano 2001que entrega el Linux Journal.La distribucion tiene un gran porcentaje de mercado en Europa y America del norte, pero no se vende enAsia y otras partes del mundo.

    El desarrollo de SuSE se realiza completamente a puerta cerrada, y no se lanzan betas publicas paraprobar. Siguen la poltica de no permitir descargar el software hasta tiempo despues de que salgan a laventa las versiones comerciales. A pesar de todo, SuSE no entrega imagenes ISO de facil instalacion de sudistribucion, usando el software empaquetado para la gran mayora de su base de usuarios.

    Actualmente van por la version 9.3 y no la instale porque la unica forma de conseguirla era pagandoy uno puntos claves era que todo el software fuera libre y gratuito. SuSE no cumpla esos requisitos.

    Knoppix

    Knoppix es una distribucion CD vivo de Linux basada en Debian y que utiliza como gestor de escritorioKDE. Esta desarrollada por el consultor de GNU/Linux Klaus Knopper. Gnoppix es una variante peroincluye como entorno grafico Gnome en vez de KDE.

    A diferencia de la mayora de las distribuciones Linux, no requiere una instalacion en el disco duro;el sistema puede iniciarse desde un simple CD de 700 MB. Ademas, Knoppix reconoce automaticamentela mayora del hardware del ordenador cuando se inicia. Tambien puede ser instalado en el disco duroutilizando un script de instalacion. Y otra posibilidad de hacerlo mas persistente es guardar el directoriohome en una unidad removible, como un dispositivo de almacenamiento USB.

    Se puede usar de distintas formas como:

    Jose Antonio Escartn Vigo, Junio 2005.

  • 14 Servidor Linux para conexiones seguras de una LAN a Internet

    Para ensenar y demostrar de manera sencilla el sistema GNU/Linux, especialmente como sistemaoperativo.

    Probar rapidamente la compatibilidad de hardware bajo Linux antes de comprarlo o utilizarlo,especialmente para tarjetas de vdeo.

    Utilizar las herramientas incluidas para restaurar un sistema corrupto o sus datos perdidos.

    Existen versiones ntegramente en espanol y catalan.

    2.2.2. Pruebas

    Los CDs vivos arrancaron bien, sobre todo MEPIS con el que me lleve una grata sorpresa, muy simpley funciona casi todo.

    La distribucion Ubuntu estaba claramente orientada a usuario final y no servidor que era mi objetivo,de todas formas es una buena distribucion que permite estar siempre actualizado.

    Gentoo no la llege a probar debido a las dificultades de instalacion que representa la continua compi-lacion de paquetes, paso esencial en esta distribucion. Es muy complicado dejarla a punto.

    Debian y Slackware eran las distribuciones que mas se ajustaron a los propositos del proyecto; sobretodo Debian que cuenta con un gran grupo de soporte y recursos. Pese a ser las menos actualizadas,eso no presenta ninguna dificultad para poder actuar como un servidor, mas bien al contrario, son lasdistribuciones mas estables de todas las evaluadas.

    Mandrake no presentaba el entorno adecuado y Fedora y SuSE, al ser versiones comerciales, no cubranlos requisitos prefijados.

    2.2.3. Distribucion elegida

    Pese a la dificultad de instalacion y configuracion me decante por Sarge del proyecto Debian, debidoa su caracter al 100 % libre y la gran cantidad de aplicaciones que adjunta. Otro factor decisivo fue elsoporte que tiene dicha distribucion, mantenida por multitud de desarrolladores.

    Pese a ser una version en pruebas, se encuentra en la ultima fase. La rama de desarrollo Sarge, llevaabierta desde el 2002 y la liberacion de la version estable se plantea inminente.

    2.3. Seleccion del Software

    Las herramientas escogidas no lo han sido al azar, son consecuencia directa de la filosofa del proyecto,donde el uso exclusivo de software libre y gratuito era un objetivo prioritario.

    Paso a detallar el software que utilizo:

    2.3.1. Planner

    Programa de gestion de proyectos que permite crear planes para el proyecto y seguir su progreso,pudiendo colocar sellos temporales

    Lista de caractersticas

    Calendario

    Costes de proyecto

    Gestion de tareas

    Jose Antonio Escartn Vigo, Junio 2005.

  • Captulo 2. Seleccion de Herramientas 15

    Gestion de recursos

    Figura 2.1: Distribucion de recursos

    Diagramas de ghant

    Figura 2.2: Diagrama temporal de Ghant

    2.3.2. LATEX

    Como se menciona en [CSLSMR+03] LATEX es un conjunto de sentencias escritas en un lenguajede programacion llamado TEX. Este no es un lenguaje de programacion usual, sino uno orientado a laescritura de textos de excelente calidad. TEX no es un editor de la familia WYSIWYG, termino empleadopara denominar a los editores que solo trabajan sobre la pantalla del computador, dando un formatovisual al texto, y en los cuales lo que ves es lo que tienes. Muy al contrario, en TEX se escribe el textoacompanado de ordenes que el compilador, posteriormente, interpreta y ejecuta para proporcionar untexto perfectamente compuesto.

    A estas ventajas hay que anadir otra, es gratuito; Donald E. Knuth el creador de TEX, lo libero enOctubre de 1.990.

    El entorno LATEX desarrollado por Leslie Lamport, lo creo en 1982, con la intencion de simplificar latarea a aquellos que desean utilizar TEX. Anade a TEX una coleccion de comandos que simplifican elmecanografiado, permitiendo al usuario concentrarse en la estructura del texto, en vez de en los comandospara dar formato. Tal es la calidad de LATEX que muchas editoriales permiten a sus autores escribir librosen LATEX, dandoles un archivo base y unas directrices sobre la elaboracion de los textos.

    Una de las ventajas de LaTeX es que puede ser exportado muy facilmente a Portable Document Format(PDF) y PostScrip.

    Utilizare este entorno de composicion de textos para desarrollar la documentacion derivada del pro-yecto.

    Jose Antonio Escartn Vigo, Junio 2005.

  • 16 Servidor Linux para conexiones seguras de una LAN a Internet

    2.3.3. Kile

    Kile es un editor de textos para LATEX desarrollado por P. Brachet. Tiene una completa interfaz condiversas facilidades que ofrece a un usuario novel un entorno amigable.

    Figura 2.3: Imagen del editor Kile

    Sus principales caractersticas son las siguientes:

    Los comandos de LATEX estan disponibles a traves de menus, botones y combinaciones de teclas.

    La ayuda integrada en el programa nos permitira saber que macro usar ante una necesidad concreta.

    Para una edicion comoda de los ficheros de texto, contamos con resaltado de sintaxis, funciones debusqueda (incremental o no), reemplazo, deshacer, . . .

    Los mas de 370 smbolos matematicos posibles son accesibles mediante botones y menus.

    Corrector ortografico a traves de ispell

    Asistentes para la creacion de distintos tipos de documentos LATEX(cartas, artculos, etc).

    Manejo de bibliografas a traves de BibTEX.

    Navegacion mediante menus de la estructura de un documento o proyecto.

    Facilidades para compilar y depurar ficheros LATEX.

    Integracion con herramientas externas para la visualizacion e impresion de los documentos editadosen distintos formatos: DVI, Postscript o PDF.

    Interfaz con programas de dibujo como xfig o gnuplot.

    2.3.4. Prosper

    La herramienta Prosper, desarrollada por F. Goualard y P.M.Neergaard es una clase para LATEX quepermite crear presentaciones electronicas con una excelente calidad.

    Con ella se pueden producir documentos en formato PDF para realizar exposiciones con un monitor ocon un sistema de proyeccion de vdeo. Tambien se puede producir documentos PostScript para imprimirla presentacion sobre transparencias para exposiciones con retroproyector.

    Dispone de multitud de estilos de presentacion y la posibilidad de conseguir efectos de animacion enpantalla haciendo que el contenido de la misma aparezca o desaparezca en distintas etapas (de formaincremental).

    Jose Antonio Escartn Vigo, Junio 2005.

  • Captulo 2. Seleccion de Herramientas 17

    Figura 2.4: Varios estilos de transparencias

    2.3.5. Programas graficos

    Las imagenes y videos que he utilizado en la documentacion y en las transparencias se han generadocon los siguientes programas:

    KSnapshot: Para capturar pantallas, es mucho mejor que la tpica tecla Impr-pant gracias a susmultiples opciones, entre las que se encuentran un temporizador y poder elegir que parte de lapantalla se va a capturar; pudiendo seleccionar entre toda la pantalla, la ventana activa o una regionconcreta. En resumen, una herramienta muy util para la redaccion de tutoriales.

    The Gimp: Es el programa estrella de GNU para la creacion y el retoque fotografico de imagenes,comparable al famoso programa comercial Adobe Photoshop.

    Xvidcap y Mencoder: Permite capturar una secuencia de imagenes de una parte de la pantalla, ya seauna ventana o una region. De esta manera, obtendremos una coleccion de imagenes del area capturadaseparadas temporalmente un numero de fps1 que se puede especificar. El programa Mencoder formaparte de Mplayer, que es un conjunto de aplicaciones para la grabacion y reproduccion de vdeos,dvds y otros. Una vez obtenida la coleccion de imagenes que conformaran los frames del vdeo seutilizara el programa Mencoder para componerlo.

    1fps: frames por segundo

    Jose Antonio Escartn Vigo, Junio 2005.

  • Parte II

    Instalacion base

  • Captulo 3

    Instalacion de la distribucion

    Existen varias formas de realizar la instalacion de la distribucion:

    Desde CD-ROM: con las imagenes oficiales

    Desde disquetes: carga un nucleo y permite hacer una instalacion base por internet si la tarjeta dered es soportada.

    Desde dispositivo USB: crea un mini sistema base

    Desde el disco duro: a partir de unos ficheros locales.

    Desde red: Se realiza a traves de TFTP desde una maquina a la que se tiene acceso, si la tarjeta dered es soporta.

    La manera mas sencilla, con mucho, de instalar Debian GNU/Linux, es usar un juego oficial de CDs oDVDs de Debian, las imagenes pueden ser descargadas desde el servidor Debian (www.debian.org/distrib/ )o desde una replica del mismo.

    Si el sistema no permite arrancar desde el CD, se puede utilizar una estrategia alternativa (disquete odisco duro) para hacer el arranque inicial del instalador del sistema, los ficheros para arrancar medianteotros medios tambien se encuentran en el CD. Una vez arranque el instalador, se pueden obtener el restode ficheros desde el CD.

    Se puede obtener mas informacion respecto a la instalacion de Debian en [PRG+02] y [eidD04].

    3.1. Proyecto Debian

    El proyecto Debian GNU/Linux posee tres ramas: stable, testing y unstable. En los siguientesapartados se detallan las diferencias entre ellas.

    3.1.1. Unstable

    Se llama Sid y como su nombre indica es la distribucion mas inestable porque contiene paquetesmuy nuevos. La utilizan los desarrolladores de Debian para depuracion. Debian Sid contie