P. 1
Manual de Usuario, Admin is Trac Ion e Instalacion de Servidores Linux - Debian Sarge 3.1 - (UPC) 04

Manual de Usuario, Admin is Trac Ion e Instalacion de Servidores Linux - Debian Sarge 3.1 - (UPC) 04

|Views: 136|Likes:

More info:

Published by: Heinner Eduardo Pastrana on May 18, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/18/2011

pdf

text

original

Sections

  • Tareas previas
  • 1.1. Fases del proyecto
  • 1.2. Esquema temporal
  • 2.1. Selecci´on de Hardware
  • 2.1.1. Servidor
  • 2.1.2. Clientes
  • 2.2. Selecci´on de la distribuci´on
  • 2.2.1. Distribuciones Linux
  • 2.2.2. Pruebas
  • 2.2.3. Distribuci´on elegida
  • 2.3. Selecci´on del Software
  • 2.3.1. Planner
  • 2.3.3. Kile
  • 2.3.4. Prosper
  • 2.3.5. Programas gr´aficos
  • Instalaci´on base
  • 3.1. Proyecto Debian
  • 3.1.1. Unstable
  • 3.1.2. Testing
  • 3.1.3. Stable
  • 3.1.4. Recomendaciones
  • 3.2. Debian Sarge
  • 3.3. Debian Woody
  • 3.4. Actualizaci´on de Woody a Sarge
  • 4.1. Particionar el disco
  • 4.2. Gestores de arranque
  • 4.3. Usuarios
  • 4.3.1. A˜nadir nuevos usuarios al sistemas
  • 4.3.2. A˜nadir grupos al sistema
  • 4.3.3. Bases de datos de usuarios
  • 4.4. Permisos de archivos
  • 4.4.1. Tipos de archivo
  • 4.4.2. Modificar los permisos
  • 4.4.3. Permisos especiales: SUID, SGID y bit de persistencia
  • 4.4.4. Cambiar un archivo de propietario o grupo
  • 4.5. Instalaci´on de aplicaciones
  • 4.5.1. Compilaci´on de paquetes desde archivos fuente
  • 4.5.2. Dpkg: Instalador de paquetes precompilados
  • 4.5.3. Apt: Gestor de paquetes Debian
  • 4.5.4. Alien: Convertir paquetes .rpm a .deb (formato Debian)
  • 4.5.5. Encontrar paquetes y sus dependencias
  • 4.5.6. Problemas al instalar paquetes
  • 4.6. Shells
  • 4.6.1. Tipos de shell
  • 4.6.2. Caracter´ısticas de la shell Bash
  • 4.6.3. Ejecuci´on de procesos en la shell Bash
  • 4.6.4. Variables de entorno
  • 4.6.5. Configuraci´on del entorno
  • 4.6.6. Redireccionamientos
  • 4.7. Consolas virtuales
  • 5.1. ¿Por qu´e compilar?
  • 5.2. Acerca de los m´odulos
  • 5.3. Kernel-image
  • 5.4. Kernel-source
  • 5.4.1. Instalar un kernel-source
  • 5.4.2. Crear un paquete .deb
  • 5.5. Compilar Kernel
  • 5.5.1. Paquetes necesarios
  • 5.5.2. Comprobar el hardware disponible
  • 5.5.3. M´etodo de compilaci´on
  • 5.5.4. Parchear el kernel
  • 5.5.5. Consejos para la configuraci´on del kernel
  • Interfaz gr´afico
  • 6.1. X-Window
  • 6.1.1. Configuraci´on X-Windows
  • 6.1.2. Arrancar X-Windows
  • 6.2. Gestores de ventanas
  • 6.3. Entornos de escritorio
  • 6.3.1. Kde
  • 6.3.2. Gnome
  • 6.3.3. Otros entornos de escritorio
  • Infraestructura de redes
  • 7.1. Arquitectura de redes (Modelo OSI)
  • 7.2. Direcciones IP
  • 7.2.1. Datagramas
  • 7.2.2. Encaminamiento IP (router y gateway)
  • 7.2.3. M´ascaras de red y notaci´on de barra inclinada
  • Cuadro 7.3: Notaci´on de barra inclinada en IPs
  • 7.2.4. Subneting (CIDR)
  • 7.2.5. Enmascaramiento IP (NAT, Network Adress Translation)
  • 7.3. Resoluci´on de direcciones
  • 7.3.1. ARP (Adress Resolution Protocol)
  • 7.3.2. RARP (Reverse Address Resolution Protocol)
  • 7.4. Protocolos de red, IP
  • 7.4.1. ICMP (Internet Control Message Protocol)
  • 7.4.2. OSPF (Open Shortest Path First)
  • 7.4.3. Protocolo BGP (Border Gateway Protocol)
  • 7.4.4. IGMP (Internet Group Management Protocol)
  • 7.5. Protocolos de transporte
  • 7.5.1. UDP
  • 7.5.2. TCP
  • 7.6. Protocolos de aplicaci´on
  • 7.6.1. NFS (Network File System)
  • 7.6.2. SNMP (Simple network management protocol)
  • 7.6.3. DNS (Domain Name Server)
  • 7.6.4. SMTP (Simple Mail Transfer Protocol)
  • 7.6.5. TELNET (Remote login)
  • 7.6.6. FTP (File Transfer Protocol)
  • 7.6.7. HTTP (Hyper Text Transport Protocol)
  • 7.7. Protocolo TCP/IP
  • Configuraci´on de dispositivos de red
  • 8.1. Etherconf: Configurador gr´afico de red
  • 8.2. Ifconfig: Configurador de red
  • 8.3. Route: Tablas de redireccionamiento
  • 8.4. Netstat: Estado de las conexiones
  • 8.5. Configuraci´on de interfaces usando DHCP
  • 8.6. Archivo /etc/network/interfaces
  • 8.6.1. Direcci´ones IP est´aticas
  • 8.6.2. Direcciones IP din´amicas
  • 8.6.3. Interfaz Wifi
  • 8.6.4. Interfaz PPPoE
  • 8.6.5. Puertas de enlace
  • 8.6.6. Interfaces virtuales
  • 8.7. Reconfiguraci´on de la red
  • 8.7.1. Configuraci´on de red durante el arranque
  • 8.7.2. Hotplug
  • 8.7.3. Ifplugd
  • 8.8. Resolvconf: Resoluci´on de nombres
  • 8.9. Archivos de configuraci´on de Hosts
  • 8.10. Iwconfig: Configuraci´on wireless
  • 8.11. Resoluci´on de problemas
  • Instalaci´on de Servicios
  • Servicios de red
  • 9.1. Servidor DHCP
  • 9.1.1. Asignaci´on de direcciones IP
  • 9.1.2. Par´ametros configurables
  • 9.1.3. Implementaciones
  • 9.1.4. Anatom´ıa del protocolo
  • 9.1.5. Configuraci´on de un servidor DHCP
  • 9.1.6. Configuraci´on de un cliente DHCP
  • 9.1.7. Configuraci´on gr´afica de DHCP, interfaz Webmin
  • 9.2. BIND: Servidor de nombres DNS
  • 9.2.1. ¿Para qu´e necesitamos un DNS?
  • 9.2.2. Servicios que activa un DNS
  • 9.2.3. Configuraci´on del servidor
  • 9.2.4. Traducci´on de nombres a direcciones IP
  • 9.2.5. Configuraci´on gr´afica de DNS BIND, interfaz Webmin
  • 9.2.6. Seguridad en DNS
  • 9.3. NIS: Servicio de informaci´on de red
  • 9.3.1. Funcionamiento b´asico
  • 9.3.2. Servidores NIS
  • 9.3.3. Configuraci´on del servidor NIS maestro
  • 9.3.4. Cliente NIS
  • 9.3.5. Herramientas b´asicas
  • 9.3.6. Problemas de seguridad
  • 9.4. NFS: Sistema de archivos Linux en red
  • 9.4.1. Cliente NFS
  • 9.4.2. Montaje autom´atico de particiones NFS
  • 9.4.3. Propiedades de las particiones montadas
  • 9.4.4. Servidor de NFS
  • 9.4.5. Configuraci´on gr´afica de NFS, interfaz Webmin
  • 9.5. Samba: Servicio de conexiones para sistemas Microsoft
  • 9.5.1. Compartici´on de recursos
  • 9.5.2. ¿Qu´e es Samba?
  • 9.5.3. Configuraci´on gr´afica de Samba, interfaz SWAT
  • 9.5.4. Funcionamiento de CIFS
  • 9.5.5. Par´ametros globales
  • 9.5.6. Impresoras
  • 9.5.7. Compartici´on de directorios
  • 9.5.8. Limitar acceso de los usuarios
  • 9.5.9. Integraci´on de Samba en un dominio NT
  • 9.5.10. Configuraci´on de Samba como controlador de dominio
  • 9.5.11. Cliente Samba
  • 9.5.12. Configuraci´on gr´afica de Samba, interfaz Webmin
  • 9.6. ProFTPD: Servidor FTP
  • 9.6.1. Servidor ProFTP
  • 9.6.2. Configuraci´on gr´afica de ProFTP, interfaz Webmin
  • 9.6.3. Clientes FTP
  • Servicios de usuario
  • 10.1. Cuotas de usuario
  • 10.1.1. Arrancar el sistema de cuotas
  • 10.1.2. Asignar cuotas a los usuarios
  • 10.1.3. Configuraci´on gr´afica de Quote, interfaz Webmin
  • 10.2. Cups: Servidor de impresi´on
  • 10.2.1. Servidor Cups
  • Figura 10.2: Interfaz gr´afica de configuraci´on para Cups
  • 10.2.2. Servidor Cups para Samba
  • 10.2.3. Clientes Linux
  • 10.2.4. Clientes Microsoft
  • 10.2.5. Solucionar problemas
  • 10.3. Servidor Web
  • 10.3.1. Servidor Apache
  • 10.3.2. Apache-SSL: Conexiones seguras
  • 10.3.3. Creaci´on de un servidor web seguro
  • 10.3.4. Apache 2.x
  • 10.3.5. Ataques al servidor Web
  • 10.4. Servidor de correo
  • 10.4.1. Exim: Correo corporativo
  • 10.4.2. Fetchmail: Correo externo
  • 10.4.3. Horde: Webmail
  • 10.4.4. Protocolo IMAP
  • 10.4.5. Filtrado de correo, eliminar virus y Spam con Procmail
  • 10.4.6. ClamAV: Antivirus para correo
  • 10.4.7. SpamAssassin: Filtro basado en reglas
  • Figura 10.16: Opciones de configuraci´on SpamAssassin
  • 10.4.8. Bogofilter: Filtro bayesiano
  • 10.5. Jabber: Mensajer´ıa instant´anea para corporaciones
  • 10.5.1. Servidor Jabber
  • 10.5.2. Configuraci´on gr´afica de Jabber, interfaz Webmin
  • 10.5.3. Clientes Jabber
  • Comunicaciones seguras
  • 11.1. Shell seguro: OpenSSH
  • 11.1.1. Cliente OpenSSH
  • 11.1.2. Servidor OpenSSH
  • 11.2. Criptograf´ıa y cifrado
  • 11.2.1. Tipos de cifrado
  • 11.2.2. Est´andares generales
  • 11.2.3. Aplicaciones de la criptograf´ıa
  • 11.2.4. Protocolos de cifrado
  • 11.2.5. OpenPGP: Aplicaci´on de cifrado
  • Herramientas de seguridad
  • 12.1. Herramientas b´asicas
  • 12.1.1. Ping
  • 12.1.2. Traceroute
  • 12.1.3. Whois
  • 12.1.4. Dig
  • 12.1.5. Finger
  • 12.2. Firewall o cortafuegos
  • 12.2.1. Pol´ıticas de seguridad
  • 12.2.2. Modos de configuraci´on
  • 12.2.3. IPTables
  • Cuadro 12.3: Especificaciones de reglas de IPTables
  • 12.3. Squid: Proxy transparente
  • 12.4. Bastille Linux: Herramienta de seguridad
  • 12.4.1. Ejecuci´on
  • 12.4.2. Modos de funcionamiento
  • 12.5. Copias de seguridad
  • 12.5.1. Dispositivos de cinta
  • 12.5.2. Mt
  • 12.5.3. Dump y Restore
  • 12.5.4. Configuraci´on gr´afica de backups, interfaz Webmin
  • 12.5.5. K3B: Grabaci´on de CDs y DVDs
  • Sistemas de detecci´on de intrusiones
  • 13.1. Tipos de IDS
  • 13.1.1. NIDS (Network Intrusion Detection System)
  • 13.1.2. IDS (Detecci´on de actividades an´omalas)
  • 13.1.3. IPS (Intrusion Prevention System)
  • 13.2. Ubicaci´on del NIDS
  • 13.3. El problema de los falsos positivos de NIDS
  • 13.4. Obtener lo m´aximo del IDS
  • 13.4.1. Configuraci´on apropiada del sistema
  • 13.4.2. Ajuste del IDS
  • 13.4.3. Herramientas de an´alisis IDS
  • 13.5. IDS Snort (NIDS)
  • 13.5.1. Caracter´ısticas b´asicas
  • 13.5.2. Instalaci´on
  • 13.5.3. Modos de ejecuci´on
  • 13.5.4. Modos de alerta
  • 13.5.5. Optimizar la configuraci´on
  • 13.5.6. Clases de reglas
  • 13.5.7. Ejecutar como servicio del sistema
  • 13.5.8. Configuraci´on gr´afica de Snort, interfaz Webmin
  • 13.5.9. Personalizar reglas
  • 13.6. Detecci´on de intrusiones en el host
  • 13.7. Integridad de archivos: IDS Tripwire
  • 13.8. ACIDlab: Analizar alertas IDS
  • 13.9. Logcheck: Analizar logs
  • 13.10. PortSentry: Detectar escaneos de puertos
  • 13.11. Detectores de sniffers
  • 13.11.1. Neped
  • 13.11.2. Sentinel
  • 13.12. Chkrootkit: Detector de rootkits
  • 13.13. HoneyPots: Entretener a los atacantes
  • 13.13.1. ¿C´omo funcionan?
  • 13.13.2. Ventajas y desventajas
  • 13.13.3. Utilidades de honeypots
  • 13.13.4. Tipos de honeypots
  • 13.13.5. Otras caracter´ısticas
  • 13.13.6. Honeynets: alta interacci´on
  • 13.13.7. Honeyd: baja interacci´on
  • Redes inal´ambricas
  • 14.1. Est´andar 802.11 (Wifi)
  • 14.2. Peligros de las LAN inal´ambricas
  • 14.3. El fen´omeno del “Wardriving”
  • Figura 14.1: S´ımbolos urbanos de redes wifi
  • 14.4. Seguridad en redes inal´ambricas
  • 14.4.1. Clave WEP (Wired Equivalente Privacy)
  • 14.4.2. Clave WPA (Wifi Protected Access)
  • 14.4.3. Clave WPA2 (Est´andar 802.11i)
  • 14.4.4. Medidas preventivas
  • 14.5. Servidor Radius: FreeRadius
  • 14.5.1. Configurar FreeRadius con EAP-TLS
  • 14.5.2. Generar los certificados
  • 14.5.3. Comprobar el funcionamiento de FreeRadius
  • 14.5.4. Configurar AP (Router 3Com)
  • 14.5.5. Clientes Linux: WPA-Supplicant
  • 14.5.6. Clientes Windows: WindowsXP + SP2
  • 14.6. Herramientas de seguridad
  • 14.6.1. Descubrir redes ilegales e intrusos: Kismet Wireless
  • 14.6.2. Desencriptar claves inal´ambricas WEP: Airsnort
  • Servicio de administraci´on por Web:
  • 15.1. Usuarios de Webmin
  • 15.2. Secciones Webmin
  • Figura 15.1: Webmin pantalla de configuraci´on
  • 15.3. M´odulos de Webmin
  • 16.1. Monitor del sistema: Top
  • 16.2. Rendimiento del sistema
  • 16.2.1. CPU, dispositivos y particiones de E/S: iostat
  • 16.2.2. Memoria: free
  • 16.2.3. Memoria virtual: vmstat
  • 16.2.4. Disco: df, du
  • 16.2.5. Usuarios y sus procesos: w
  • 16.3. Gestionar procesos
  • 16.3.1. Visualizar procesos: ps
  • 16.3.2. Enviar signals a procesos: kill
  • 16.3.3. Modificar prioridades: nice
  • 16.4. Terminal de root con prioridad m´axima
  • 16.5. Programaci´on de tareas
  • 16.5.1. At
  • 16.5.2. Cron
  • 16.5.3. Tareas peri´odicas
  • 16.5.4. Anacron
  • Valoraci´on final
  • Pruebas del sistema
  • 17.1. Nessus: Esc´aner de vulnerabilidades
  • 17.1.1. Configurar el programa
  • 17.1.2. Ejecuci´on de Nessus
  • Figura 17.1: Configuraci´on de la aplicaci´on Nessus
  • 17.1.3. Otros interfaces de configuraci´on
  • 17.2. Nmap: Esc´aner de red y puertos
  • 17.2.1. Caracter´ısticas b´asicas
  • 17.2.2. Tipos de escaneado
  • 17.2.3. Opciones de descubrimiento
  • 17.2.4. Opciones de ajuste de frecuencia de Nmap
  • 17.2.5. Otras opciones de Nmap
  • 17.2.6. Salida de Nmap
  • Cuadro 17.5: Codificaci´on de color de la salida de Nmap
  • 17.2.7. Configuraci´on gr´afica de Nmap, interfaz Nmapfe
  • 17.3. Pruebas de carga
  • Estudio Econ´omico
  • 18.1. Recursos
  • 18.2. Costes
  • 18.3. Resumen econ´omico
  • 18.4. Modificaciones a los costes econ´omicos
  • Ap´endices
  • Comandos b´asicos
  • Debian en castellano
  • Archivos de configuraci´on
  • ¿Por qu´e Debian no tiene rc.local?
  • Figura G.1: Licencia Reconocimiento-CompartirIgual

Memoria del Proyecto —– Servidor Linux para conexiones seguras de una LAN a Internet —–

Jose Antonio Escart´ Vigo ın Junio de 2005

Introducci´n o
En las siguientes l´ ıneas trato de describir los motivos que me llevaron a escoger un proyecto de este estilo y de donde surgi´ la idea de realizar un documento informativo para facilitar la tarea de muchos o administradores de sistemas “noveles”, como yo cuando comenc´ este proyecto. e En esta peque˜a introducci´n tambi´n se especifican los objetivos que se pretenden conseguir y para n o e entrar en materia se comenta, muy por encima, la historia de Linux.

Motivaci´n o
Me decid´ a realizar este proyecto por la inquetud personal que ten´ respecto al sistema operativo ı ıa Linux. Conozco a mucha gente que lo maneja y que me hablaba muy bien, por pereza y falta de tiempo, nunca me hab´ puesto a experimentar a fondo con ´l. Si bien es cierto que lo ten´ instalado (una versi´n ıa e ıa o Mandrake 9.0) lo utilizaba solamente para realizar las pr´cticas de la universidad y poca cosa m´s. a a Siempre me han atra´ los sistemas operativos, bastante m´s que la rama de programaci´n. Una ıdo a o prueba de ello es que cuando llege a la FIB (vine del Ciclo formativo de grado superior: Desarrollo de aplicaciones informaticas; es decir, b´sicamente programaci´n) me cambi´ a la rama de sistemas. a o e Actualmente me encuentro cursando el PFC de la Ingenier´ t´cnica en Inform´tica de Sistemas y ıa e a tengo la intenci´n de solicitar plaza de admisi´n en la Ingenier´ superior de inform´tica, carrera a la que o o ıa a no pude acceder en primera instancia por restricciones legales, al acceder a la universidad por la v´ de ıa los ciclos formativos de grado superior. A lo largo de la carrera, he cursado las siguientes asignaturas relacionadas con los sistemas operativos: ISO (Introducci´n a los sistemas operativos), SO (Sistemas Operativos), ASO (Administraci´n de o o sistemas operativos), CASO (Conceptos avanzados de sistemas operativos), SSI (Seguridad en sistemas inform´ticos). Adem´s hace unos a˜os, antes de comenzar la carrera, realizaba trabajos de administrador a a n de sistemas en entornos Windows, para dos institutos (IES Pir´mide y IES Sierra de Guara) de mi ciudad a natal, Huesca. El PFC: “Servidor Linux para conexiones seguras de una LAN a Internet” me ha permitido desarrollar amplios conocimientos en el campo de los sistemas operativos, algo que realmente me interesa y supongo que me permitir´ encarrilar mi carrera hacia el trabajo que pretendo desarrollar como Administrador de a sistemas. Si en vez de elegir uno de los proyectos propuestos desde la universidad, hubiera pensado proponer uno, sin duda habr´ elegido hacer un proyecto igual al que propuso el profesor Llu´ P´rez Vidal del ıa ıs e departamente LSI de la UPC. Me siento bastante afortunado de haber realizado un PFC que realmente me interesaba y motivaba.

vi

Servidor Linux para conexiones seguras de una LAN a Internet

Motivaci´n del proyecto o
Ante el problema de instalar un sistema operativo que controle los servicios de red y adem´s sea estable a se nos plantean principalmente dos alternativas, Linux o Windows. ¿Qu´ ventajas tiene Linux sobre Windows? e Es m´s seguro. a Ya que la gran mayor´ de los ataques de hackers son dirigidos a servidores Windows al igual que ıa los virus los cuales se enfocan principalmente a servidores con ´ste sistema operativo. La plataforma e Linux es m´s robusta lo cual hace m´s dif´ que alg´n intruso pueda violar la seguridad del sistema. a a ıcil u Es m´s r´pido. a a Al tener una plataforma m´s estable, se favorece la utilizaci´n de aplicaciones de todo tipo de a o aplicaciones. La eficiencia de su c´digo fuente hace que la velocidad de las aplicaciones Linux sean o superiores a las que corren sobre Windows. Es m´s econ´mico. a o Ya que requiere menor mantenimiento. Los servidores Windows son m´s costosos debido a que es a necesaria una frecuente atenci´n y monitoreo contra ataques de virus, hackers y errores de c´digo. o o El software Linux as´ como tambi´n un sin n´mero de aplicaciones, son de c´digo abierto y est´n ı e u o a protegidas por la licencia GPL1 , motivo por el que son distribuidas gratuitamente. No requieren supervisi´n constante ni pagos de mantenimiento para obtener Service Packs, que no son m´s que o a parches de seguridad para aplicaciones mal diseadas. ¿Qu´ ventajas tiene Windows sobre Linux? e Es m´s f´cil. a a Al ser de mayor facilidad de uso Windows en este momento contin´a siendo el sistema operativo m´s u a comercial lo cual se refleja en la disponibilidad de aplicaciones, facilidad de mantenimiento as´ como ı soporte en el desarrollo de nuevas aplicaciones. Las aplicaciones se desarrollan en menor tiempo. Fruto de la inversi´n realizada por Microsoft y aunado a una comunidad de programadores cada vez o m´s grande se ha logrado facilitar el desarrollo de aplicaciones y sistemas que corran sobre servidores a Windows lo cual se ve reflejado en tiempos de desarrollo menores. De la misma forma, la curva de aprendizaje en el sistema Windows es mucho menor. La alternativa m´s sencilla y a la vez m´s ineficiente es elegir un sistema operativo Windows. Lo que a a se busca es seguridad, integridad de datos y eficiencia del sistema, por tanto nos decantar´mos por una e distribuci´n GNU/Linux. o El proyecto surge ante la necesidad de escoger entre las distribuciones Linux actuales, la m´s adecuada a para instalar un servidor e implementar las aplicaciones necesarias para dar servicios a clientes de sistemas operativos Linux y Windows. Esto es algo no trivial y el proyecto trata de ser una ayuda, apoyo y consulta para facilitar la tarea de una persona que trate de implementar un servidor.

1 GPL: Licencia p´ blica GNU. Seg´ n se cita en [Sha01] expecifica expl´ u u ıcitamente que el software desarrollado es libre y que nadie puede coartar estas libertados. Se puede revender, incluso obteniendo beneficio; sin embargo, en esa reventa el vendedor debe de proveer el c´digo fuente completo, incluyendo cualquier modificaci´n realizada. El paquete continua bajo o o GPL y puede ser distribuido de modo libre y revendido de nuevo obteniendo tambi´n beneficio. Es de una importancia e primordial la cl´usula de responsabilidad: los programadores no son responsables de cualquier da˜ o causado por su software. a n

Jose Antonio Escart´ Vigo, Junio 2005. ın

vii

Objetivos
Este documento est´ elaborado para describir la implementaci´n de un servidor GNU/Linux, as´ como a o ı especificar y resolver los principales problemas que un administrador se encuentra al poner en funcionamiento un servidor. Se aprender´ a configurar un servidor GNU/Linux describiendo los principales a servicios utilizados para compartir archivos, p´ginas web, correo y otros que veremos m´s adelante. a a La herramienta de configuraci´n Webmin, que se detalla en uno de los ultimos cap´ o ´ ıtulos es independiente de la distribuci´n GNU/Linux que utilicemos y nos permitir´ administrar de forma transparente o a diferentes distribuciones, con la ventaja que eso supone si alguna vez cambiamos de distribuci´n. o

Cuadro 1: Objetivos del proyecto
A Estudiar el entorno de composici´n de textos L TEX o

Analizar e instalar las distribuciones Linux m´s importantes a Estudiar la compilaci´n de kernels o Analizar y configurar los servicios para usuarios Linux y Windows Establecer sistemas de protecci´n o Realizar pruebas de seguridad del servidor Documentar el proyecto

Marco hist´rico o
Como se especifica en [BB00], Linux hizo su aparici´n en 1991 cuando el finland´s Linus Torvalds decio e di´ publicar en Internet su proyecto de carrera, animando a la comunidad internacional de programadores o a mejorarlo. Naci´ como una mejora de Minix, una versi´n de Unix para ordenadores PC basados en el o o procesador 8086 de Intel, Linux por su parte utilizaba el procesador 386SX de Intel. Posiblemente una de las explicaciones del ´xito de Linux es GNU1 que junto con la FSF2 (Free Software e Fundation), tratan de promover el desarrollo de programas cuyo c´digo sea p´blico y compartido. Una de o u las principales aportaciones GNU fue Linux, un sistema operativo de libre distribuci´n. o A partir de 1994 emperzaron a aparecer las primeras distribuciones de CD-ROM, junto con el c´digo o fuente del sistema operativo, se dispon´ de diversas utilidades y aplicaciones sin tener que descargarlas. ıa Ese a˜o aparecieron los primeros grupos locales de usuarios de Linux y la primera revista on-line especian lizada. Al a˜o siguiente se empez´ a trabajar en las primeras versiones de Linux para plataforma no Intel n o y los primeros desarrollos de instaladores parcialmente autom´ticos. A partir de 1996 Linux comienza a a difundirse de forma m´s general en Espa˜a, a˜o en el que se inicia el proyecto de documentaci´n de Linux a n n o en catellano (LUCAS) y se comienzan a organizar los primeros grupos de usuarios. El futuro es muy prometedor, cada vez es mayor el n´mero de fabricantes de software y hardware que u han mostrado un creciente inter´s. e
GNU no es Unix. Definici´n recursiva que representa el humor inform´tico en su m´xima expresi´n o a a o Fundaci´n para el software libre. Es el principal contribuidor del Proyecto GNU, depende de donaciones privadas y o se dedica a preservar, proteger y promover los derechos de los usuarios y su libertad para usar, estudiar, copiar, modificar y redistribuir software. Apoya la libertad de expresi´n, prensa y asociaci´n en internet, el derecho a usar software criptogr´fico o o a en comunicaciones privadas y el derecho a escribir software sin los impedimentos del monopolio.
2 FSF:
Jose Antonio Escart´ Vigo, Junio 2005. ın

1 GNU:

viii

Servidor Linux para conexiones seguras de una LAN a Internet

Requisitos m´ ınimos Linux
Probablemente la configuraci´n m´ o ınima sobre la que Linux sea capaz de funcionar sea un 386SX con 2 Mb de memoria RAM y una disquetera de 1.44, aunque con estas caracter´ ısticas simplemente podremos arrancar el sistema y poco m´s. Una configuraci´n m´s realista deber´ incluir 4Mb de Ram si no vamos a o a ıa a utilizar el entorno gr´fico, 8Mb en caso contrario y un m´ a ınimo de 40MB de espacio en disco, aunque en las distribuciones actuales el espacio deber´ ser mayor de unos 300Mb. Cantidades rid´ ıa ıculas si las comparamos con los dispositivos disponibles actualmente, pero que permiten reutilizar materiales m´s a antiguos 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, pudi´ndose encontrar e versiones que funcionan con procesadores 680x0 de Motorola utilizados en ordenadores Amiga y Atari. Tambi´n son compatibles con Linux muchos ordenadores basados en Alpha, ciertas m´quinas Sparc, las e a m´quinas basadas en PowerPC como por ejemplo los ordenadores Macintosh de Apple, as´ como ARM, a ı MIPS y algunos tipos de agendas electr´nicas, tel´fonos y consolas de juegos. o e

Notas Previas
Se van a tomar varias la siguiente notaci´n para el documento: o Cuando aparezcan frases que el usuario pueda introducir por teclado se har´ notar por el tipo de a letra mecanogr´fica, Verbatim a Al hacer referencia a un comando que deba de ser introducido por una cuenta con privilegios de root, ir´ precedido por el car´cter “#” a a Al hacer referencia a un comando que puede a ser ejecutado por un usuario cualquiera del sistema, si tiene privilegios para ello, ir´ precedido por el car´cter “$” a a Cuando se muestran c´digos el car´cter “#” al inicio de la frase especifica que esa frase concreta es o a un comentario dentro del c´digo. o

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

Jose Antonio Escart´ Vigo, Junio 2005. ın

´ Indice general
Introducci´n o
IV

I

Tareas previas

1
3 3 3 9 9 9 9 10 10 14 14 14 14 15 16 16 17

1. Planificaci´n o 1.1. Fases del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Esquema temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Selecci´n de Herramientas o 2.1. Selecci´n de Hardware . . . o 2.1.1. Servidor . . . . . . . 2.1.2. Clientes . . . . . . . 2.2. Selecci´n de la distribuci´n o o 2.2.1. Distribuciones Linux 2.2.2. Pruebas . . . . . . . 2.2.3. Distribuci´n elegida o 2.3. Selecci´n del Software . . . o 2.3.1. Planner . . . . . . . A 2.3.2. L TEX . . . . . . . . 2.3.3. Kile . . . . . . . . . 2.3.4. Prosper . . . . . . . 2.3.5. Programas gr´ficos . a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

II

Instalaci´n base o
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19
21 21 21 21 22 22 22 23 24 25 25 26 27 27 27

3. Instalaci´n de la distribuci´n o o 3.1. Proyecto Debian . . . . . . . . . 3.1.1. Unstable . . . . . . . . . . 3.1.2. Testing . . . . . . . . . . 3.1.3. Stable . . . . . . . . . . . 3.1.4. Recomendaciones . . . . . 3.2. Debian Sarge . . . . . . . . . . . 3.3. Debian Woody . . . . . . . . . . 3.4. Actualizaci´n de Woody a Sarge o

4. Primeros pasos 4.1. Particionar el disco . . . . . . . . . . . . . 4.2. Gestores de arranque . . . . . . . . . . . . 4.3. Usuarios . . . . . . . . . . . . . . . . . . . 4.3.1. A˜adir nuevos usuarios al sistemas n 4.3.2. A˜adir grupos al sistema . . . . . n

. . . . . . . 4. . . 28 31 31 31 32 33 33 33 36 36 38 38 39 39 40 40 41 41 42 43 44 45 45 45 45 46 46 46 47 47 48 48 49 49 51 51 51 55 56 57 57 58 58 59 59 61 63 63 64 65 66 67 5. . . . . . . . . . . . . ın . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . Permisos especiales: SUID. .2. . Instalar un kernel-source . . . . . . . . . . .3. . Encontrar paquetes y sus dependencias . . . .6. . . . . . . . . . . .1. . . . . . . . . 4. . . . .5. . . . .6.5. . . . . .6. . . . . . . . . . . . . . . . . . . . 5. . . . Paquetes necesarios . . . . . . . . .1. 4. . . . . . . . Alien: Convertir paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . 5. . . . . . . 4. . . . Direcciones IP .6. . . . . . . . . . . . Permisos de archivos . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . Kernel 5. . . .2. . . . . . . . .1. . . . . .5.5. . . Resoluci´n de direcciones .1. . . . . . . . . . . . 7.5. .4. . . . . . . . . . .6. . . . . .3. .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . o 4. . . . . . Parchear el kernel . . . . . . . Crear un paquete . . . . . . .3. . Entornos de escritorio .6. . .4. . . . . . . . . . Cambiar un archivo de propietario o grupo . . . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . .deb (formato Debian) 4. . . . . . . . . . . 7. . . . . . . Dpkg: Instalador de paquetes precompilados . . . . . M´scaras de red y notaci´n de barra inclinada . . . . . . . . . . . . . . . . . . . Tipos de shell . . . . . . . Compilaci´n de paquetes desde archivos fuente . . . . . . . .2. . .5. 6. . . . . . . . . . . . . . . . . . . . . . . . Network Adress Translation) 7. .6. . 4. . . . . . . . . . . . . . . . . . 4. . . . . . . Caracter´ ısticas de la shell Bash . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compilar Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . .3. 6. . . . . . .rpm a . . . . . . . . . M´todo de compilaci´n . . Enmascaramiento IP (NAT. . . . . . . . . .5. . .6. .4. . . . . . . . . . . . . . . . . . . . . . . . . Arquitectura de redes (Modelo OSI) . . . . . . . . . o 6. . . . . .5. . . . . . . . . . . . . . . . . . . . . 6.5. . . . . . . . . . . . . . . . . o 4. . . . . .2. . . . . . . Gestores de ventanas . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . Consejos para la configuraci´n del kernel . . . . . . . . Configuraci´n X-Windows . . . . e 5. . . . . . . . . . . . Kde . . . . .2. . . . 4. 6. Redireccionamientos . .1. . . . . .3. . . . . . Subneting (CIDR) . . 6. . .1. . . . Datagramas . . . . . . . . . . Gnome . . . . Ejecuci´n de procesos en la shell Bash . .5. . . . . . . . . . . . . . . . . .1. 4. . . . . . . . . . . . . . . . . . 5. . . . . . . . . . Interfaz gr´fico a 6. . . . . . . . . . . . o 5. . .1. . . . . . . . . . . . . Arrancar X-Windows . . . . . . . . . . . . . o Jose Antonio Escart´ Vigo. . . . . . . . . . Modificar los permisos . . . . . . . ¿Por qu´ compilar? . . . .3. . .x Servidor Linux para conexiones seguras de una LAN a Internet 4. . . . . . . . . . . . . . . . . .4. . . . . . .4. . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . .5. . . 5. . . . . . . . . . . . . . . . 4. . . . . . . . 4. . . . . . 5. .4. . . . . . . . . . . . . . . . . . . . . . . . . . . .3.2. . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . . . . . . Instalaci´n de aplicaciones . . Kernel-image . . . . . . .5. Problemas al instalar paquetes . . . . . o 6. . . . . . . . 7. . . . . . Acerca de los m´dulos . . Apt: Gestor de paquetes Debian . . . . . . . . . . . . . X-Window .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . .7.2. 4. . . . . . . . . . . .4. . . . . . . Encaminamiento IP (router y gateway) . . . . . . . . . . . . . . . . . Shells . . . . . . . . . . . . . . . . . . .2. . . . 4. . . . . . .deb . . . . . . . . . . . . . . Variables de entorno . . . . . . . . . . . . Comprobar el hardware disponible . . . . .3. . . .2. . . . . . . . . . . . . a o 7. . . . . . . . . . . . . . . 6. . . . Configuraci´n del entorno . .4. . Bases de datos de usuarios . . . . . . . . . . . e o 5.5. . . . . o 4. . . . . . . .5. . . . . . . . . Kernel-source . . .4. . . . . . . .1. . . . . . . . . . . . .4. . . . . . . . . . . . .2. . . . . . . . . . . . . . .3. . . 7. . . . . . .2. . . Junio 2005. Tipos de archivo . . . . . . . . . . . . . . . . . . Otros entornos de escritorio . . . . . . . .2. . . . 5. . . . . 4. .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SGID y bit de persistencia . . . . Infraestructura de redes 7. .2. . . . . . . .1. . . . .5. . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . .2. . . . . . . . . . . . . . . . . . .2. . . .4. . . Consolas virtuales . . . . . . . . . . . . . . . . . . . 7. . . .3. . . . . . . o 4. . . .

. . . . . . . . . .6. . . . . . . .6. . . .7. . . xi 68 68 69 69 69 70 70 70 71 72 74 74 74 74 74 75 75 75 75 79 79 79 81 83 83 84 84 84 85 85 85 86 86 87 87 88 88 89 89 90 7.1. o 9. Jose Antonio Escart´ Vigo. . 91 93 93 93 94 94 94 95 98 99 101 9. . . . . . . . . . . .5.7. . . . . .6. .3. . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . Interfaz PPPoE . . . . . . . o 7. . . . . . . . . .4. . . . Junio 2005. . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . .4. . . . . . . . 7. . . . . . . . Archivos de configuraci´n de Hosts . . . . . . . . . . . 7. . . . . . Anatom´ del protocolo . . . . . . . . . 7. . . . .5. . . . o 9. . . . . . .1. . . . . . .4. . . .1. . . . . . . . Configuraci´n de un servidor DHCP . . . . . . 8. . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . .1. . . . .6. . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . Configuraci´n gr´fica de DHCP. . . . . . . . . . . . ın . . . . . . FTP (File Transfer Protocol) . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . .6. . . SNMP (Simple network management protocol) 7. . . . . . . . . . . . . . . . . . . DNS (Domain Name Server) . . . . . . . . . . . . . .6.5. . . . . o 8.7. . . . . . . . . . . . .4. . . interfaz o a 9. 7. . . .3. . . . . . . . . . . . . .6. . . . . . o 8. . . . . o 9. . . . ıa 9. . . . . . . 7. . . . . . . . . . . . . . Configuraci´n de interfaces usando DHCP . . . . . . . . . . . . Iwconfig: Configuraci´n wireless . . . . . .9. . . . . . . . ICMP (Internet Control Message Protocol) . . .3. .6. .5. . . Protocolo BGP (Border Gateway Protocol) . . . . . .3. . . . . . . . . . . 7. . . .1. . . . . . . . . Servidor DHCP . . . . . . .2. . . . . . . . . . . . . . . .6.6. . . . . . . . . 8. . Asignaci´n de direcciones IP . . . . . . .7. . . Configuraci´n de dispositivos de red o 8. . . . Etherconf: Configurador gr´fico de red . . . Interfaces virtuales . . . . . . . . . . . . . .7. . . . . . . . . . . . . . . . . . . . . . . . . . . . BIND: Servidor de nombres DNS . . . . . . . . . 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ifplugd . . . . . . . . . . . . . . . . . . . HTTP (Hyper Text Transport Protocol) . . . . . . . o a 8. . . Reconfiguraci´n de la red . . . . . . . . . . . . . . . . . . . . . . .´ Indice general 7. . . . . . . . . . . .4. . . . . . . . .5. . . . . .1. .1. . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Direcci´nes IP est´ticas . . Implementaciones . . . . . ARP (Adress Resolution Protocol) . . . . . . . . . . Archivo /etc/network/interfaces . . . . . . . . . Protocolos de aplicaci´n . . . 8. . . . . . . . . Resolvconf: Resoluci´n de nombres . . . . . . . . o 8. . . . . . . . . . . . . . . . . . . . . a 9. . . . 9. . . . . .2. . . . . . . . . . o 8. . . . . . . . . .4. . . . . . . . . . Configuraci´n de un cliente DHCP . . UDP . . . . . . . . . . . . . . . . Servicios de red 9. . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . .2. . . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . . . . 8. . . . . . . . . . . . . .3.6. . . . . .4. . . . . . . . . . . . . RARP (Reverse Address Resolution Protocol) . . . .1. Interfaz Wifi . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TELNET (Remote login) . . . . . . . . . . 8. . . 7. . . . . . . . . . .3. . . . . . . . . . . . . . . . .6. . . . 8. . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . SMTP (Simple Mail Transfer Protocol) . . . Configuraci´n de red durante el arranque o 8. .1. . . . . 7.3. . . . . . . . 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP . . . . Ifconfig: Configurador de red . . . . . . . . . . . . . . . . .6. . o 8. . . . . 7.6. . . . . 7. . . . . . . . . . . . . . . Hotplug . . Direcciones IP din´micas . Webmin . . . . 7. . . . . . . OSPF (Open Shortest Path First) . . . . .1. NFS (Network File System) . . .6. . .7. . . Resoluci´n de problemas . . . . . . . . . . . . . Protocolo TCP/IP . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . .10. . . . . . . . . . . . . . 7. . . . . . . . . . .5. . . .4. Protocolos de red. . . . .3. . . . . . . Par´metros configurables . . .2. . . . . . . . . . . . Puertas de enlace .11. . . . . . . . . . . . 8. . . IGMP (Internet Group Management Protocol) Protocolos de transporte . . . . . . . . .7. . . . . . . Netstat: Estado de las conexiones . . . . . . . . . . . . .2. 8. .4. . . . . . . .6. . .1. . . . . . . . . . . o III Instalaci´n de Servicios o . . IP . . . . . . . .6. . . . . . . . . . . . . . . . a 8. . . . . . . . . . . . . . .6. a 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. Route: Tablas de redireccionamiento . . 7. .1. . .

. . . . . . . . . . . . .6. .1. . o 9.1. . . . . . . . . . Configuraci´n gr´fica de DNS BIND. . . . . . . . . . . . . Solucionar problemas . . . . Configuraci´n gr´fica de Samba. . . . . . . . . . . . . . .3. . . . . . . 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.1. Montaje autom´tico de particiones NFS . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . .4. . . . Clientes FTP . . .10. . . . . . . . . NFS: Sistema de archivos Linux en red . . . . . . . . . . . .1. . o 9. . . . 9. . . . . . Arrancar el sistema de cuotas . . . . . 9. . . . . . 9. .1. . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . Propiedades de las particiones montadas . 9. Configuraci´n del servidor NIS maestro . . . . . . . . 10. . . . . . . . . . . . 101 102 102 103 103 108 109 109 109 110 113 115 116 117 117 118 118 119 120 121 121 121 123 124 125 126 126 127 127 128 128 129 131 131 132 132 133 133 133 134 134 136 136 139 140 140 140 141 141 150 152 156 156 9. . . . . . . . . .4. . .3. . . . . . . . . . . . . 10. . . . . . . . . . . . . . . . e 9. . . . . . . . . . . . . . . . . . . . . . . . . Compartici´n de recursos . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . .1. . . .6. . . .3. . . . . . . . . .1. . . . . . . . . . . . . .3. . . . . . . . 10. . . . . . . . . . . . o 9. . . . . . . . . . .1. . . . . . . .4. . . . . . . . . . . . . . . . . .1. . . . .3. . . . . . . . . . .3. .2. . . . . . . . . . . . . . . . . . . . . . . .3. Traducci´n de nombres a direcciones IP . . . . Cuotas de usuario . Configuraci´n gr´fica de Quote. . . . .5. . . . . . . . . . . . . . . . . . . . Servidor ProFTP . . . . . . . . . . . . . . . . . . Integraci´n de Samba en un dominio NT . . . . . . . . . . . . . . . . 9. . . o 9.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Servidores NIS . . . . . . . . . 9. . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . .2. . . . . . . o 10. . . . . . . . . . . . . . . . . . . . . . . . . Cliente Samba . . . . . . . . . . o 10. . . . . . .3. . . . . . .12. . . . . Configuraci´n gr´fica de Samba. . . .5. . . . . . . . . . . . . . . . . . . . . . . .2. o a Samba: Servicio de conexiones para sistemas Microsoft . . . . . . . . . .4. Servicios que activa un DNS . . . . . . . . . . interfaz Webmin o a 9. Configuraci´n gr´fica de ProFTP. 10. . a 9. . .5. . . . . . .5. . . . . . . . . . . . Clientes Linux . . 10. . . .2. . . . . . . . . . . Servidor de NFS . . . .5. . . .xii Servidor Linux para conexiones seguras de una LAN a Internet 9. . .5.2. . . .3. . . . Jose Antonio Escart´ Vigo. . interfaz Webmin o a 10. .3. . . . . . . . . . . . . . . . . . . o 9. . . . .6. . . . . .5. . . . .x . . . . . . . .5. . . . . . . . . . . . . . .2. . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . Configuraci´n de Samba como controlador de dominio o 9. . . . . . . . . . . . . . interfaz Webmin . . .5. Configuraci´n gr´fica de NFS. . . . . . . 10. . . . .4. . . . . . . . . . . . . . . . . . . . . interfaz Webmin . . . . . . . . o a ProFTPD: Servidor FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Par´metros globales . . . . .5. . . . . . . . . . . . . . . .3. . . . .7. . . . . . . . . .2. . . . . . . . . . . . .4. . . . interfaz Webmin . . . . . . . . .11. . . . . . . . . . . . . . . . 10. . . . . Asignar cuotas a los usuarios . . . Servidor Cups . . . o a 9. .3. . . . . . . ¿Para qu´ necesitamos un DNS? . . . . . . Funcionamiento de CIFS . . . . . a 9. . e 9. . . . . .3. .2. Seguridad en DNS . . . . . . . . . . . . . . . . . . . . . . 10. . . Problemas de seguridad . . . . .9. . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Servidor Web . . . . 9. . . .4. . . . . . o a 9. . . .3. . . Servidor Apache . . . . Servidor Cups para Samba . . . 9. . .3. . . Funcionamiento b´sico . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . Configuraci´n del servidor . Creaci´n de un servidor web seguro . . . . . . . . .6. . . . . . . . . .1. . . . . . . .4. . . . . Herramientas b´sicas . . .3.2. . . Compartici´n de directorios . . . . . . Ataques al servidor Web . . . a 9. . .6. . . . . . . . . . . . . . .6. . .2.5. . . . 9. . . . . . . .3.3. . . 9. . . . Cups: Servidor de impresi´n . . . . . Junio 2005. . . . . . . . . . .5. . . Apache 2. . . . . . . . . . . . .1. . . . . . .1. . . . 10. . Clientes Microsoft . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . Impresoras . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . .8.3. . . . . . . . . . . . 9. . . . .2. . . . . . . ¿Qu´ es Samba? . . . . . . . . . . . . . . . . . . . .2. Apache-SSL: Conexiones seguras . . . . . . . . . . . . . . . . . . . . . . . . . . . ın . . . . . . . . o 9. . . . . . 9. . . 9. . NIS: Servicio de informaci´n de red . . . . . . . . . 10.2. . . . . . . . . . . . . . . .2. . . . . . . . . . . o 9. . . 9. . a 9. . . . . . . . . . . . . interfaz SWAT .2. . . . . .Servicios de usuario 10. .6. . . . . . . . . 9. . .5. . . . . . . . . . .2. . . . . . . . . . . . . . . 10. . . . . . . . . .4. . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . 10. . . . . Limitar acceso de los usuarios . Cliente NFS . . . . . . . . . . . 9. . . . . . . Cliente NIS . .

. . . . . . . . . . . . . . . .2. . . . . .4. 12. . . . . . . . . . . . . . Whois . . Clientes Jabber . . . . Fetchmail: Correo externo . . . . . . . . . . . . . ıa 11. . Finger . .4. . . . . . . . . . . . . . . . . . . . . OpenPGP: Aplicaci´n de cifrado o . . . . . . . . . 12. . . . . . . . . . . . 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o a 10. . . . . . . 12. . . . . . .4. . . . Copias de seguridad . . . . . . . . . . . . . . . . . 13. . . . . . .4. . . . . . . . 10. . . . .1. . . . Criptograf´ y cifrado . . . . . . . . . . . . . . . . . . . . Est´ndares generales . . . . 11. . . . . 12. . . . . . . . . . . . . . . . . . . .2. . . . . . . . . 11. . . . . . . .4. . . . . . . . . . . . . . . 10. . . . . . . . . . . . . . . . . 10. . . . . . . . . . . .5. . . . .5. . . . . . . . . Ping . . . . . . . . . .1. .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuraci´n gr´fica de backups. . . . . . eliminar virus y Spam con Procmail 10. . . . . . . . . . .4. . . . . . . . . . . . . . . 13. . Aplicaciones de la criptograf´ .1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . 12. . . . . . . . . 12. . . . . . . . . Protocolo IMAP . . . . . .4.5. .5. . . . . . . . ıa a 10. . . . . . . . . . K3B: Grabaci´n de CDs y DVDs . . . . . . . . . . . . . .1. . . . .4. . . . . . . ClamAV: Antivirus para correo . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . Servidor OpenSSH . . . . o o 13. . . . . . . . . . . .3.Comunicaciones seguras 11. . . . . . . . . . . . . .2. . . . . . . . . Shell seguro: OpenSSH . Horde: Webmail . . . . . . . . . . . . . . Ejecuci´n . . .1. Dig . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . 12. . . . a 12. . . . . . . . . . . . .5. . . .2. . . . .1. a 11. . . . . ın . . . . Dispositivos de cinta . . . . . . . . . . . . . . . . . . . . . . . .2. . . 12. . . . . .1. . . . . . . . . Modos de configuraci´n . . . . . . . . . . . . . . . . . . Pol´ ıticas de seguridad . . Obtener lo m´ximo del IDS . . . .5. . Bogofilter: Filtro bayesiano . . . . . . . . . . . . . . . . interfaz Webmin .5. . . . . . . . . . . . . . . . . . IPS (Intrusion Prevention System) . . . . . . . . . . . . . . . . . . . . . .1. 11. . . . . . . . . . . . . . . . . . Filtrado de correo. . . . . . . . . . 12. . . . . . Exim: Correo corporativo . . . . . . . . . . . . . . Dump y Restore . . . . 12. . . . 12. . . . . . . . . . .1. . . . . . . . . . .2. .2. . . . . . . . . . . . . . . . . . Tipos de IDS . . . . . . . . . . . . . . . . . . . IPTables .2.4. . . . . . . . . . .3. .5. . . . . . . .1. . . . . . . . o 12. . . . . . . . . 12. . . . . . . . . 13. . . . . . . . . . Traceroute . . . IDS (Detecci´n de actividades an´malas) . . . . . . . . . .5. . . . . . 12. . . . . . .1. . Junio 2005. . . . 10. . .4. . . . . . . . . . . . . . . . . . .Herramientas de seguridad 12. . . . . . . . . . . . . . . . . . . . . . interfaz Webmin o a 12. . . . . . . . . . . . . Squid: Proxy transparente . . . . . . . . . . . Cliente OpenSSH . .1. . . . . . . Bastille Linux: Herramienta de seguridad . . . . . . . . . . . . . . . . . . . . . . . . Jose Antonio Escart´ Vigo. . . . .3. . . . . . . .´ Indice general 10. a . . . . . . . . . . . . . . . . . . . . . . . .3. . .5. . .2. . . . . . . . . . NIDS (Network Intrusion Detection System) 13. .2. Configuraci´n gr´fica de Jabber. . . . . . . . .Sistemas de detecci´n de intrusiones o 13. . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . Ubicaci´n del NIDS .2. . .4. . . . .2. . . . . .2. 10. . . . . . Mt .2. . . . . . . . 10. . . . o 12. . . . . . . . . . . 10. . . . . .4. . . . Jabber: Mensajer´ instant´nea para corporaciones . . . . . . . . . . . . . . . . . . . . . .7. . . . . . . . . . . . . . . . . . . . . . . . . . . Herramientas b´sicas . . Firewall o cortafuegos . . 10. .1. . . . . . . . .4. . . . . . . .4. . . . . . . . . 11. . . . . .1. . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . ıa 11. . .3. . . . . . . . . Tipos de cifrado . . . . .1. . . . . . . . . . . . . . .2. . . El problema de los falsos positivos de NIDS . . . . . . . . . . . . . . . . . .1. . . . . . . .1. . .4. . . . . . . . . . . .5. . Protocolos de cifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Servidor Jabber . . . . . . . . . . . . . . . . . . . 11. .6. . . .5. . . . . . . . . . . . . . . . . . . .1. . 10. . . . . . . . .2. . . . . . . . . . . .1. . . . . . . .4. . . o 13. . . . . . . . . . . . . . o 13. . . 12. . . . . . . . . . .2. . . . . . . . .2. .2. . . . . . . . . . . . . SpamAssassin: Filtro basado en reglas . . . . . . . . . . . . Servidor de correo . . . . . .3. . . . . . . . . . Modos de funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . xiii 157 157 159 161 162 163 165 167 169 172 173 174 174 177 177 177 178 181 181 182 183 184 185 191 191 191 192 193 194 195 196 196 196 197 204 206 206 207 207 207 208 208 210 211 213 213 213 214 214 214 215 217 12. . . . . . . . . 12.

. . . . . .7. . . . . . . . Descubrir redes ilegales e intrusos: Kismet Wireless 14. . . . . . . . .Honeyd: baja interacci´n . . interfaz Webmin o a 13. . . .3. . . . . . . . . . . . . . . . . . .Neped . . Integridad de archivos: IDS Tripwire . . . . . . a 14. . . 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . .2. . . . . . . Herramientas de seguridad . . . . . . o 13.7. . . . . . . . . . .5. .13. . . . . . . . . . . . . . . . . . . . . . . . . . 279 . . . .6. . . . . . Comprobar el funcionamiento de FreeRadius . . . . . . .11i) . . . Secciones Webmin . . . . a 14. . . . . . . . . . . . M´dulos de Webmin . Modos de alerta . . . . . . . . . . . . . . . . 13. . . . . . . . . . . . . . . . . . . . El fen´meno del “Wardriving” . . . .13. . . . . . . . . . Clases de reglas . . . . . . . . . .2. .11. .Ventajas y desventajas . . . .6. . . . . . . . . . . . Instalaci´n . . . . . . . .5. . . . . . . 14. . . . . . etectores de sniffers . . . . . . . . . . .5. . . . 279 . . . Configuraci´n gr´fica de Snort. . . . . . Peligros de las LAN inal´mbricas . . . . . . . .10. . . .6. . . Optimizar la configuraci´n . 14. ın . . . . . . . . . . .4. . . . . . .¿C´mo funcionan? . . . . . . . 13.4. . . . . . . . . . . . . . . . .2. . . . Configurar AP (Router 3Com) .4. . . . . . . . . . .2. . . . . . . . . . . . . . . . . 13. . . . . . . . . . . . . . . . . o 13. . . . . . . o 14.5. . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . .9. . . . 14. . . .5. . . . . . . . . . . . . 14. . . 13. C 13. . . . . Clave WEP (Wired Equivalente Privacy) . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . .13. .1. . . . . . . . . . . . . . . . . . . . . 13. . . . . . . . .Utilidades de honeypots . Servidor Radius: FreeRadius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clave WPA (Wifi Protected Access) . .2. . . . . 14. . . . . . . . . . . . . . . . 15. . . . . . . . . . . . . . . . . . 13. . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . 14. o 13. . . .3. .1. . . . . . . Desencriptar claves inal´mbricas WEP: Airsnort . . . . . . . . . . . . . . . . . . . . . . . Clientes Windows: WindowsXP + SP2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 217 217 218 218 218 219 221 222 223 226 226 228 229 231 235 239 241 245 247 247 248 250 251 251 252 253 254 255 255 257 257 259 260 262 262 262 266 266 267 267 269 270 270 271 272 273 273 275 13. . . . . . . .3. . . . . . . . . .8. . . . . . . . . . . . .xiv Servidor Linux para conexiones seguras de una LAN a Internet . . . . . . . 13. . . . . . .8.Sentinel . . . Usuarios de Webmin . . .Servicio de administraci´n por o 15. . . . Modos de ejecuci´n . . . . Junio 2005. . . .3. . . . . . . . . . . . . .Honeynets: alta interacci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 13. . . . . .11. . . . . .4. Medidas preventivas . . . . . . . . . . . . . . .3. .4. . . . . a 15. . .13. . . . . . . . . . . . . . . . . . . . . . . . . . . . o 14. . . . . . . . . oneyPots: Entretener a los atacantes . . . . . . .5. a 14. . 13. . . . . . . . . . . . . . . . . . . . 14. . . . . . . . . o 13. . .5. 13. . . . . . . . . o 13. . .13. .5. . . . . . . . . . . . . . . . . Configuraci´n apropiada del sistema . . . . . . . . . . . . . 14. . . .Otras caracter´ ısticas . . .3. . .11 (Wifi) . . . . . . . . . . . . . .13. . . H 13. . . . . . . . . . . . . . . . . . .13. . . . . . . . . . . . . . . . . . . . . . . Detecci´n de intrusiones en el host .5.Tipos de honeypots . . . . . . . . . .5. . .11. . . 13. . . . . D 13. . . . . 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Logcheck: Analizar logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13. . 14. . . . . . .6. . . . . . . o 13. . . . . . . . . . . . . . . . . .4. . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . 13. . . . . . . . Clave WPA2 (Est´ndar 802. . . .5. . . . . . . . . . . Clientes Linux: WPA-Supplicant . . . a 13. . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ACIDlab: Analizar alertas IDS . . Ajuste del IDS . . .4. 14. . . . . . Generar los certificados . .1.7. . . . . . .2. . . . . . Ejecutar como servicio del sistema . .5. . . . . . 14. . . . . ortSentry: Detectar escaneos de puertos . . . . . Herramientas de an´lisis IDS . . . . . . . . . . . hkrootkit: Detector de rootkits . . . . . . . . . . . . . . . . . . . . . . .5. . . . 283 Jose Antonio Escart´ Vigo. .1. . . . . . . . . . . . . .Redes inal´mbricas a 14. . . . . o Web: WebMin 279 . a 14. . . . .6. . . . . . .6. . . . . .5. 13.2. . . . . . . . . . . . . . . . . . . .5. . . . Configurar FreeRadius con EAP-TLS . . . . . . 13. . . . . . .12. . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . .5. . . . . . . Seguridad en redes inal´mbricas . . . . . . . . Caracter´ ısticas b´sicas . . . . . .9. . . . . . . . . . . . IDS Snort (NIDS) . . . . . .1. . . . . . . . . . . . . . . . . . .13. . . .5. . . . . .1. .5. . . . . . . . . . Est´ndar 802. . . . . . . . . . . Personalizar reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P 13. . . . . . . . . .5. . . . . . . . .1. . . . . . . . . . .6. . . . . . . . . . . . . a 13. . . .

17. . . . . . . . 16. . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . 16. . . . . . . . . . .4. . . . . . . . .1. . . . . . .1. . Configuraci´n gr´fica de Nmap. . Monitor del sistema: Top . . . . Junio 2005. . . . . . .5. . . . . . . .5. . . . . . . .1. . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . IV Valoraci´n final o . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . Rendimiento del sistema . . . .1. . . . . . . . . . . Otras opciones de Nmap . . . . . . . o 18. . . . . . . . 18. . . . . .Conclusiones . . Tipos de escaneado . 16. . . ¿Por qu´ Debian no tiene rc. . . . . . . . . . . . . .2. . Nessus: Esc´ner de vulnerabilidades . . . dispositivos y particiones de E/S: iostat . . . . .1. . . . . . . .2. . . . . . . . . . a 17. . . . . . .3. . . . . . . . . . . . . . . . . . . . . . .5. 16. . . . . . . Tareas peri´dicas . . . . Memoria: free . . . . . . . . . . . . .5. . . . . . . . . ın . Anacron . .2. . interfaz Nmapfe o a 17. . 16. . . .2. . . . . . . . . . .3. . . a 17. . . . . . . . a 16. . . . . . . . . . . . . . . . . Memoria virtual: vmstat . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . xv 287 287 288 288 289 289 290 290 290 291 292 293 293 293 294 294 296 296 . . . . . . . Debian en castellano C. . . . . Disco: df. . . . . Modificar prioridades: nice . . . . . . . .2. . . . . . . . . . . . .local ? e Jose Antonio Escart´ Vigo. . . . . . . . . . . . . . . . . .3. . . . . . . Ejecuci´n de Nessus . . . . . . . . . . . .2. . . . . . . . . . .3. . . . . . . . . . . .1. . . Programaci´n de tareas . . . . . . . . .2. . . . 17. . . . . . . . . . . . . . . . . . Comandos b´sicos a B. . . . . . . . . . . . . . 17. . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16. . . . . . . .5. . .2. . . . . .2. . . . . . . . . V Ap´ndices e 315 317 319 321 325 A. . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . .1. . . . . . du . . . . . . . . . . . . . . . Enviar signals a procesos: kill . . . . Modificaciones a los costes 19. . . . . . . . . . . . . . . . . . . . Otros interfaces de configuraci´n . . . .2. . . . . . . . . . . Opciones de descubrimiento . . . . . . . . . Terminal de root con prioridad m´xima . . . . . . . . . . . . . . . . . .´ Indice general 16. . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . o 16. . Costes . . . .7. . . . . . . . . .1. . . .5. . . . . . . . . . . . . . . .5. . . . . . . Archivos de configuraci´n o D. . . Salida de Nmap . . . . . . . . . . . . . . . o 17. . . . . . 16. . . . . . . 16.3. Caracter´ ısticas b´sicas . . . . . . . . . . . . . . . . . . . . .3. .Estudio Econ´mico o 18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . econ´micos o . . . . Resumen econ´mico . . . . . . . 16. Configurar el programa . . . . . . . . . . Recursos . . 17. . . . . . . . . . CPU. . . . . . . 16. . . Nmap: Esc´ner de red y puertos . . 297 299 299 299 300 302 303 303 305 305 305 306 307 307 308 309 309 310 310 310 311 17. . . . . .2. . . . . . . . . . . . . . . . . 16. . . . . . . . . . . . . . . . .2. . . . . . . . . .4. . . . . . . . . . . . . . .2. . At .2. . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . 18. . . . . a 17. . . . . . . . . . .3. . .Servicios de monitorizaci´n del sistema o 16. . . . . . . . . . Opciones de ajuste de frecuencia de Nmap . . . . . . . . Visualizar procesos: ps . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . .3. . . . Gestionar procesos . . . . . . . . . . . 18. o 17. . .6. . . . .1. 17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . Pruebas de carga . . . . 16. . . . . . . . . . . . . . . Cron . .Pruebas del sistema 17. . . . . . .3. . . . . . . . .2. . . . . . . . . 16. . . . . . . . . . . . . . . . . . . . .2. . . . . Usuarios y sus procesos: w . . . . . 17. . . . . . . . . . . . . . . o 16. .

xvi E. Puertos por defecto Servidor Linux para conexiones seguras de una LAN a Internet 327 329 331 333 335 339 343 F.Reconocimiento-CompartirIgual P´ginas Web a Bibliograf´ ıa Jose Antonio Escart´ Vigo. nueva versi´n estable o Licencia CC . Manual del editor Vim (Vi mejorado) G. ın . Junio 2005. Gu´ r´pida de IPTables ıa a Debian Sarge.

. . m´dulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Apache. . . . . . . . . . . . . . Planificaci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . 9. . . . . . . . . . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . o 10. . . . . . . . . . . . 7. . . . . . . .4. . . . . . . . . . . . . . . .8. . m´dulo Webmin . . 1. . . . o 10. . . . . . . . . . . . . . . . . . . . . . . . . interfaz gr´fica de configuraci´n a o 10. . . .3. m´dulo Webmin . . . . . . . . . . . . . . . . . . . . . .7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. etchmail. . . . . . . . . 9. . . . . . . . . . . . . . . . . . 2. . . . . . . Quota. . . . . . . . . . diagrama temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prosper. . 9. . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . o 9. . . . . . . 9. . . . .1. . . . . . . .9. . . . 7. . . o 10. . . . . . . . . . . . . .6. . . .2. . . . . . . . . . IP. .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. o 10. . . . . .8. . . . . . . . . . . . . . . . 7. . . . . . . . . .12. . . . . . . . . . . . . . . . . . . . . . . . . m´dulo HtAccess Webmin . . . . . . . . . . . . . . . . . . servidores virtuales . Samba. .5. . . . . . . . . . . . . . . . . . . . . 10. . . . . . . . . . . Apache. . . . . .4. o 9. . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 6 7 15 15 16 17 61 62 64 72 72 99 100 100 104 105 106 106 107 107 110 120 123 130 132 135 137 139 142 144 145 147 148 148 150 159 161 Planner. . . . . . . . . . . . . . . . . . . . . . . . . . o 10. . . Apache. . . . . . . . . . . . . . . . . . . . . . . . . . . . pache.2. . . . . . . . . . . . . . interfaz gr´fica SWAT a 9. . . . . . . . . . . . . . . .1. . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . direcciones reservadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13. . . . . . . . o 9. . . . . m´dulo Webmin . . . . . . . .10. . . . . . . . . . . . . . . . . . . . . . . . Cups. . . . . . . . DHCP. . . . ProFTPD. . . . . . . . . . . . . . . . . . . . . . . . . . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . parametros de configuraci´n . . . . . . . . DNS BIND. . . . . . . . . . . . .1. . . . . . . . m´dulo Webmin . . . . . . . . . . . . cabecera del datagrama . o 10. . .3. . Editor Kile . . 10. . . . . . . Cups. m´dulos instalados . . . . . . . . . . . . . . . . . tipos de transparencias IP. . m´dulo Webmin . . . . . . . . . . . . . . . . . . . . . 9. . . . .9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xim. 7. . . . . .11. . monitor con la interfaz Webmin E 10. UDP. . . . . . . 1. . . F o . . . . . . .7. . . . . . . . .4. . . Apache. . . o 9.12. cabecera del datagrama . A o 10. . . . . . . cabecera del datagrama TCP. . . . . . . . . . . . . . . . . . . . . . .´ Indice de figuras 1. . . . . . . . . . m´dulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . IP. . . . . . . . . . . . .2. . . .11. . . . . . . . . NIS. . . o 1. . . . 7. . . . . o 10. . . . . 9. . . . . . . . . . . . . . . impresora HP815 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . m´dulo Webmin . . . Apache. . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . .5. . . m´dulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . distribuci´n de recursos o Planner. . . . . . . . . rango de direcciones . . Webalizer. . . . . .14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . m´dulo Webmin o 9. . . . . . .10. . . . . . . . . . . . . . NFS. . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Samba. . . . . . . . . . . . . . . . . . . . 2. . . . . . . compartici´n de carpetas . . . . . . . 2. . . . . . . . . . . . . . . . . . .

. . . m´dulo Webmin . AirSnort. . . . . . . o 12. . . . 17. . . . . . . . . . . . . . m´dulo Webmin . funcionamiento . . . . Backups. . . . . . . . . . .1. . . . . . . . . . m´dulo Webmin . . . . . . . . . . . . m´dulo Webmin . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . SSHD. . . Servidor Radius. . . . . . . . comparativa . . . . . . . . . . . S´ ımbolos urbanos de redes wifi . . . . . . . . . .2. . . . . . o 13. . . . . . . . . . . . . . . 15. . . m´dulo Webmin . . . . . . . abber. . . . . . . . . . . .6. . . . . K3B. . . . . . . .1. . . . . . . . . . . . . . . .4. . . . . . . . . . . . Junio 2005. .1. . . . . . . . . . . . . . . . . . m´dulo Webmin . .19. . . . . .xviii Servidor Linux para conexiones seguras de una LAN a Internet . . . . PortSentry. . . . . . . . . . . . . . . . . . . . . . . . . . . m´dulo Webmin . . autenticaci´n servidor Radius . Servidor Radius. . . . . . . . . .4. . . . . . . . . Snort. . . . . . .15. . . . . . . . . . . . . . . . . rocmail. pamAssassin. grabaci´n de CDs y DVDs . . G ıa a 11. . . . . . . . . . . opciones de configuraci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14. . . o 12. . . . . . . . . . . . . . . . . . .1. . . opete. . . . . . . . . . . . . . . . . . . 14. . . . . . . . .3. aim. . . . . . . . . o 14. . . . . . . . .17. . . . . . . . . . . . . . . . . . . . pantallas de la interfaz Web . . . . . . . . . . o G. . . . . . . . . . . . . . . . . o . . . . . . . . rocmail. . . . . . .1. . . . . . . . . . . . . . . . . . .1. . . . . . . . pantalla de configuraci´n . cliente de mensajer´ instant´nea K ıa a 10. . . . . . . . . . Logcheck. . . . . . . .2. . . P o 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . 14. . . . . . . . . WPA. . . . . . WPA/EAP. . . . . . . . . . . . . . . . . . . . . . cliente de mensajer´ instant´nea . . . .3. . . . . . . o o 17. . . . . .7. . vulnerabilidades del sistema . . . desv´ en el router . . . . . ıo 14. . . . . sistema de autenticaci´n o 14. . . . . . . . . . . . . . . . . . . . . . . Jose Antonio Escart´ Vigo. . . . . . . . . . . . . . . . 15.18. . . . . . . m´dulo Webmin . detalle de una alerta de Snort 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S o 10. . . pamAssassin. . . . Webmin. . . . . . . D. . . . . . . o 15. . . . . J o 10. . . . . . . Webmin.2. . . . .1. . . . . . . . . . . . . . . o 13. . . . . . . . . WEP-WPA. . . . . . . . . 165 165 168 169 175 176 176 180 211 211 227 238 242 246 261 263 263 264 268 270 277 280 285 286 301 302 326 338 10. . . .16. .14. . . . . . . o 13. . . . . . . . 14. . . .5. . . . . . . . . . . . . . . . . . . . S o 10. . m´dulo Webmin . . . . . . . . . . . . . . .2. . . . . . . . . . . . . descifrado de claves WEP . . . . . . . . . . . . . . . . . . . Runlevels. . . . . . . . . . . . Nessus. . . . . . . Licencia Reconocimiento-CompartirIgual . . . . .1. . . . . . . . ın . . crear acciones de forma gr´fica P a 10. . . . . . configuraci´n de la aplicaci´n . . .13. . . . . . . . . . . . Acidlab. . . . . . . . . . . Nessus.

4. . . . . . . .1. . . . . . . . . . . .4. . . . . . . Opciones b´sicas . . . . . Modelo de referencia OSI . . . . . . . ejemplo . . . . . . . . . . . . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10. . . . . . . . . . . . . . . . . . . . . . . . /etc/passwd. . . . . . . 5. . . opciones . . . . . . . . . . . . 4. . Dpkg. . . . . .11. . . . 9. . . . . ejemplo . . . . . . . . . . . . .o de hosts por red Notaci´n de barra inclinada en IPs . . . . . . . . . . . . . . . . . . IPTables. . . .1.12. . . /etc/group. . . . . . . . . . . . .1. . . . . . . . . . . . . . . . 12. . esquema de transmisi´n . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . Kernel 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 4. a 5. . . 12. . . . . . . . . . . . 4. . . . .3. . . . . . . . . . . . . . . . . . . . . Chmod. . .5. . . . . . . . . . . . .5. . . . 4. . . . . o TCP/IP. . . . . . . Makefile. . . . . . . archivo de configuraci´n . . ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . 4. . . . . . . . . . . . . . . . . . . . . . .2. . . . o 11. . . . . . . . . . . . . Lilo. . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . .14. M´todo de compilaci´n del kernel . . opciones . . . . . . . . . Distribuciones Linux . . . . . . . . descripci´n de campos o 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ejemplo . . . . . . . . . . . .´ Indice de cuadros 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . paquetes necesarios . . . . . . . . . . . . . . . . . . . . . . . . . . Ping. . . .2. . . . . . . . . . . . . . . . . . . . . vii 10 26 28 28 29 29 30 30 31 32 32 35 36 36 37 42 47 48 49 54 59 62 65 76 77 83 112 143 178 192 195 199 200 202 2. . . . descripci´n de campos . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . 4. descripci´n de campos o 4. . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . o . . . . . SSH cliente. . . . . . . . . . . . . . . . . . . . . .5. . . /etc/X11/XF86Config-4. . . . . . . . . . . . . . . . . . . . . . . . Kernel. Dig. . . . . . . . . . . . .1. . . . . . comandos . . . . . ejemplo . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . e o 6. . . . . . n. . . . . . . . . . . . . . . Objetivos del proyecto . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10. ejemplo . . . .1. . . . . .15. . . . . . . . . . Tipos de redes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Apache. . . Apt. . . . . . a 4. . . . /etc/passwd. o 4. . . . . . . . . . .1.list. . . . . . . . . . . . . . . . . . . . . . . . . . ejemplo . . TCP/IP. . . ejemplo . . . opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables habituales del sistema . . . . . . . . 7. . . . paquetes b´sicos . . . . . . 12. . . opciones . . . 8. . . . . Chmod. opciones . . . . . . . . . . ejemplo . . 4.7. . 7. . . . . . . . . . archivos de configuraci´n . . . . . . . . . . . . . . . . opciones . . . . . . . . . opciones especiales . .1. /etc/shadow. IPTables.3. . . . . . . . . 7. . . . . . . .1. . . . . .3. . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . Tipos de archivos . . . . . . . . . . . . 7. IPTables. . . . . . . . . . . . Netstat. . . . .9. . . /var/yp/Makefile. /etc/group. . .6. . . . . . . . . . . . .8. . . especificaciones de reglas 12. . . .4. . . . . . . .13. . . . 4. . . . . . . . . . . . . . . . . . . . . . . /etc/apt/sources. . . . . /etc/shadow. . . . . . . . . 12.

. . .9. . . . . m´scaras predefinidas en plantillas a 13. . 18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xx 12. . . . . . . . . . . Nmap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . archivos de reglas . .7. . . Tripwire. . . . . . . 17. . . . . . . . . . .1. . opciones de alerta . . . .8. . . . . . . . . . . . . . . . . . . . . . . . . Recursos del proyecto . .11 inal´mbricos . . . . . . . . . . . Dump. . . . . . . . . . . . . . . . . . . . . . 13. . . . . . . . Restore. . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . Nmap. . . Acidlab. . . Webmin. . . . . . . 13. . . . . .1. . . . teclas de la interfaz gr´fica a . . . . . . . 17.9. .6. . . tipos de escaneo . o 13. . . . . Snort. . . . . . . Nmap. . . . . . . . . . . . . 18. . . . . . . . . . . . . 17. opciones . . . . . . . . . . . . . codificaci´n de color de la salida o . . . . . . . opciones . . . . . . . . . variables de configuraci´n . . . . . . o 14. . . . Est´ndares 802. .8. . . . . . . . . . . . . . . . . . . . . .conf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ps. Snort. . . . . . . . . . . .6. Kismet. . a a 14. . . . . . . . . . . opciones . . . . . . . . . . . . . . . configuraci´n de la interfaz o 14. . . . . . . . . .7. . 12. . . . . . .3. Servidor Linux para conexiones seguras de una LAN a Internet . . Jose Antonio Escart´ Vigo. . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . ejemplo 12. . . . Snort. . . . . opciones de descubrimiento . . . . . . . . . . . . . . . .1. . Nmap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . otras opciones . . . . . . . . . . . Kismet. . . . . /etc/squid/squid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.5. . . . opciones . . . . Mt. . . . .4. . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . .4. . . . . .5. . . . . . . . . o 16. . . . . . PortSentry. . . . . . . . . 204 208 209 210 221 224 225 226 230 231 232 236 244 258 274 274 275 284 291 305 305 306 306 307 309 310 13. . . opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . opciones de personalizaci´n . . . . . . . . . . m´scaras de propiedad . . . configuraciones de frecuencia . . . . Costes del proyecto . . . . . . . . . . . 12. . . . . . . . . gr´fica a . . . .1. . . . 13. . . . . . . configuraci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17. m´dulos disponibles . . .1. . . . . . . . . Nmap. . . . . . . . . . . Kismet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Junio 2005. . . . 15. . . . . . .1. . . . . a 13. . . . . . 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 13. 17. . . . . . . . . . . Tripwire. . . . . . . .2. .2. ın . . . . .2. . . . . . . .

Parte I Tareas previas .

.

o 1 PFC: Proyecto fin de carrera . la planificaci´n ha sido realizada para un total de 450 horas. Implementaci´n y configuraci´n del entorno de trabajo. o o o o Configuraci´n de los servicios: 120 horas. Fases del proyecto Planificaci´n temporal: 20 horas. Instalaci´n base y configuraci´n: 80 horas. Se eligen una serie de herramientas y sistemas sobre los cuales se desarrolla el proyecto. que detallo en la bibliograf´ se e ıa. en los siguientes esquemas se detallan la cronolog´ real que se sigui´ en o ıa o la elaboraci´n del proyecto.2.1. Documentaci´n del proyecto: 140 horas. de los servicios del servidor. 1. o Trabajo preliminar: 40 horas.5 y decid´ que cada cr´dito me supondr´ una u e ı e ıa carga de 20 horas. Esquema temporal Pese a la planificaci´n inicial.Cap´ ıtulo 1 Planificaci´n o El n´mero de cr´ditos asignados al proyecto es de 22. A aprende a utilizar el entorno de composici´n de textos L TEX para elaborar la documentaci´n del o o proyecto. Mediante la herramienta de gesti´n de proyectos Planner. Pruebas del sistema y conclusiones: 30 horas. A Aprendizaje del entorno L TEX: 20 horas. se instalan una serie de servicios est´ndar para clientes de sistemas operativos a Linux y Windows. Bas´ndose en los servicios t´ o a ıpicos que implementan los servidores de red. Apoy´ndose en una serie de pruebas de carga se detera mina la eficiencia real. As´ mismo se utilizan varias herramientas para ı determinar la seguridad del servidor y comprobar su resistencia a posibles intrusiones o agresiones externas. por lo tanto. A trav´s de varios libros. A lo largo del desarrollo de las fases anteriores se realizan o una serie de informes parciales que son la base de la memoria del proyecto. o 1. se realiza o o una divisi´n temporal de las actividades a realizar.

4 Servidor Linux para conexiones seguras de una LAN a Internet Figura 1. Junio 2005. ın .1: Planificaci´n (I) o Jose Antonio Escart´ Vigo.

Junio 2005. Planificaci´n o 5 Figura 1. ın .Cap´ ıtulo 1.2: Planificaci´n (II) o Jose Antonio Escart´ Vigo.

ın . Junio 2005.3: Planificaci´n (III) o Jose Antonio Escart´ Vigo.6 Servidor Linux para conexiones seguras de una LAN a Internet Figura 1.

Cap´ ıtulo 1.4: Planificaci´n (IV) o Jose Antonio Escart´ Vigo. ın . Junio 2005. Planificaci´n o 7 Figura 1.

.

adem´s de la ventaja de poder portar el a a proyecto y trabajar en sitios diferentes. Se presentaron una serie de problemas directamente derivados de esta elecci´n.3 Ghz. Clientes Como clientes se utilizar´n varios PC’s de sobremesa. que permitiera desarrollar un servidor ı a portable con m´s utilidades habituales en los servidores fijos. una ethernet 10/100Mb y otra wifi 802. En una primera fase se determina el hardware donde se implementa el servidor y los diferentes clientes utilizados en las pruebas En la segunda fase se elige la distribuci´n utilizada y los motivos que me llevaron a su elecci´n o o En la tercera fase se detalla qu´ herramientas de apoyo se us´ para desarrollar los trabajos. Selecci´n de Hardware o Pese a que el director del proyecto me ofreci´ la utilizaci´n de material del departamento LSI de la o o UPC. Esta conexi´n es suministrada.1. tambi´n de mi propiedad. e o 2. Comprando una parte de ´l para e desarrollar de forma m´s eficiente las tareas. por mi comodidad.6 Ghz. y otro para los clientes wifi. es decir los usuarios fijos. En este ordenador se realizar´n la mayoria de pruebas de conexi´n a o o servicios. el material escogido fue de mi propiedad. conectados mediante cable RJ45 a un switch. o El port´til elegido fue un Acer TravelMate 4002 WLMI con procesador Intel Centrino a 1. dotando al sistema de mayor seguridad.2.Cap´ ıtulo 2 Selecci´n de Herramientas o En este capitulo explicar´ cuales fueron las diferentes herramientas utilizadas para la elaboraci´n del e o proyecto. El hardware era demao siado nuevo y esto provoc´ una serie de incompatibilidades que se fueron solucionando con la instalaci´n o o de drivers y parches que no se encontraban en las instalaciones Linux est´ndar.1. .1. cuando e o o o se encuentra fijo. a 2. a PC AMD-Duron a 1. Servidor Como servidor me decid´ por la compra de un ordenador port´til. a con dos tarjetas de red integradas. donde estar´ situado el principal cliente e a Linux y Windows del sistema.11g de 54Mb que permite sin problemas establecer dos segmentos diferenciados de red. a El servidor realiza tambi´n la gesti´n de la conexi´n a internet. Con este sistema se permite a un grupo corporativo itinerante el desarrollo de sus actividades en posibles reuniones fuera de su propio edificio. Uno para los usuarios de oficina. 2. La conexi´n y seguridad del o sistema queda garantizada gracias al sistema de validaci´n de clientes.. por un router 3com conectado al switch de la red y que solo responde a las peticiones del servidor.1.

sin tener que aprender todas sus complejidades. estas dos ultimas son distribuciones comerciales.4 Ghz.r04 .7 Mepis y Mepis-LiveCD Fue lanzada por Warren Woodford en julio de 2003. son distribuciones orientadas a usuario de escritorio.2. buscando e cuales eran las m´s adecuadas para desplegar servidores. ya que funciona directamente del CD. o 2. En el lado opuesto tenemos a Gentoo.1) Debian Sarge 3.2. A medio camino entre ellas se encuentran Mandrake. comenc´ a leer sobre distribuciones de GNU/Linux. Junio 2005. Selecci´n de la distribuci´n o o Completada la infraestructura hardware.Mepis-LiveCD Ubuntu (Warty Warthog 4.3 .1. Distribuciones Linux Cuadro 2. a A continuaci´n detallo los tipos de distribuciones valoradas: o Mepis y Ubuntu (basadas en Debian) son consideradas las mejores para aquellos usuarios nuevos en Linux que quieren empezar a ser productivos lo antes posible. preconfigurados todos y ´ Jose Antonio Escart´ Vigo. e instal´ndolo luego a disco duro solamente a si les gusta. una nueva clase de distribuci´n de Linux que se pueda utilizar como CD en vivo. Muchas otras distribuciones copiaron esta idea m´s adelante. prestados.1: Distribuciones analizadas SimplyMepis 3. para comprobar la efectividad del mismo.2 Ghz. pero altamente utiles. De esta manera.3 (FreeBSD) Debian Woody 3. sin ninguna instalaci´n.10 Servidor Linux para conexiones seguras de una LAN a Internet PC AMD-Athlon a 1.1) Slackware 10. con sistema Linux y Windows. con clientes Windows. o 2. y PC AMD-Athlon a 2. permiten probar Linux sin tener que hacer nada.Sarge 3. usuarios pueden probar el o a producto simplemente “booteando” desde el CD de Mepis. Mepis Linux es una fusi´n entre Debian Sid o y Knoppix.1 Fedora Core 3 (Red Hat) SuSE Knoppix 3. a Los clientes se utilizaron simult´neamente para realizar las pruebas de carga una vez terminada la a implementaci´n del servidor. Portatil Pentium-IV Mobile.1 Mandrake 10. Debian y Slackware que son distribuciones m´s avanzadas a que requieren un completo aprendizaje antes de poder ser usadas eficientemente.10) Gentoo 2004. ´ Knoppix y Mepis-LiveCD (basadas en Debian) son un caso a parte. a a ¿A que se debe el ´xito de Mepis? A diferencia de la mayor´ de las distribuciones principales de Linux. para la pruebas de conexi´n de clientes o inal´mbricos. Fedora (basada en Red Hat) y SuSE. ın . y como o distribuci´n completa con un instalador gr´fico a disco duro. pero fue Mepis quien inici´ el a o concepto de un CD vivo m´s un instalador gr´fico completo partiendo de un CD. e ıa Mepis viene con muchos paquetes que no son de uso-libre.

Tras varios meses de trabajo y un breve per´ ıodo de pruebas. El proyecto naci´ por iniciativa de algunos programadores de los proyectos Debian. o a e o Esta idea simple result´ ser enormemente popular. instalar Gentoo y convertirla en una distribuci´n completa. premio Nobel de la Paz en 1984. La principal o a ventaja de esto es que todo el software se encuentra altamente optimizado para la arquitectura de la computadora. asegurando la calidad de la distribuci´n. o Ubuntu (Warty Warthog) Ubuntu est´ basada en Debian. un movimiento humanista encabezado por el obispo Desmond Tutu. a Debian (Woody . o Jose Antonio Escart´ Vigo. mantenidos en un repositorio central. ıa). Java. Debian es un proyecto o totalmente no-comercial. o sino tambi´n entre los m´s experimentados quienes encontraron muy conveniente el no tener que pasar e a horas post-instalaci´n configurando y afinando el sistema. puede durar varios d´ incluso en una m´quina ıas a r´pida. no solamente entre los usuarios nuevos de Linux. Con Mepis Linux. e o a y los paquetes. Estos incluyen el driver de video Nvidia. Junio 2005. un conocido desarrollador de Stampede Linux y FreeBSD. Cuando aparece una nueva versi´n de un paquete. donde se realiza un riguroso proceso que dura muchos meses. ın . el plugin Flash de Macromedia. El administrador de escritorio oficial es Gnome y el navegador oficial es Mozilla Firefox. actualizar el software instalado a una nueva versi´n es tan f´cil como teclear un comando. e nombre que no var´ Actualmente la rama “estable” es Woody y la rama en “pruebas” es Sarge.Sarge) Debian GNU/Linux inici´ su andadura de la mano de Ian Murdock en 1993. para obtener un sistema Linux b´sico funcionando. pero el planteamiento est´ inspirado en los principios de la corriente a a ubuntu. o Gentoo (FreeBSD) Gentoo Linux fue creada por Daniel Robbins. posiblemente el m´s puro de los ideales que iniciaron el movimiento del software a libre. que es bien dirigido y estricto. El sistema incluye funciones avanzadas de seguridad y entre sus pol´ ıticas se encuentra el no activar procesos latentes por omisi´n al momento de instalarse. Gnome y Arch o que se encontraban decepcionados con la manera de operar del proyecto Debian. En la otra cara de la moneda. Aparte de las aplicaciones est´ndard de Debian o a y del software no-libre antes citado Mepis Linux tiene excelente auto-detecci´n del hardware. Las versiones estables se liberan al menos dos veces al a˜o y se mantienen actualizadas. se sit´a en la rama inestable para las primeras o u pruebas. con los ultimos entornos gr´ficos. Cientos de desarrolladores voluntarios de todo el mundo contribuyen al proyecto. Tambi´n. En cualquier momento del proceso de desarrollo existen o tres ramas en el directorio principal: “estable”. Mientras que los sistemas de instalaci´n o o o proveen de varios niveles de paquetes pre-compilados. o ´ a multimedia y de desarrollo es un trabajo largo y tedioso. si las pasa. Esta rama s´lo es declarada estable tras una muy intensa fase de pruebas. o Gentoo Linux es una distribuci´n basada en c´digo fuente. a el objetivo de Gentoo es compilar todos los paquetes de c´digo en la m´quina del usuario. en “pruebas” e “inestable” (tambi´n conocida como “sid”. el paquete se mueve a la rama de pruebas. La primera versi´n estable de Gentoo fu anunciada en Marzo del 2002. Econ´micamente el proyecto se sostiene con aportaciones de la empresa Canonical del millonario o sudafricano Mark Shuttleworth. n Contribuye al proyecto Debian de manera continua debido a que ambas distribuciones comparten colaboradores de manera oficial. Selecci´n de Herramientas o 11 ´ listos para utilizar. varios codecs de multimedia para manejar archivos populares de audio y video y otros usos. no hay necesidad de buscar el software para Java y despu´s tener que buscar la documentaci´n para descubrir e o c´mo permitir el uso de Java en sus navegadores. son actualizados a menudo. Los desarrolladores se esfuerzan en ofrecer una propuesta que corrija la problem´tica que advirtieron a en Debian. la primera versi´n de Ubuntu (Warty o Warthog) fue lanzada en el mes de octubre de 2004. La versi´n estable era o utilizada s´lo por una minor´ debido a la poca o nula vigencia que pose´ en t´rminos de la tecnolog´ o ıa ıa e ıa Linux actual. Todo est´ disponible despu´s de la instalaci´n.Cap´ ıtulo 2.

a menos que el usuario tenga e o ıcil un profundo conocimiento del hardware de la computadora. Slackware Creada por Patrick Volkerding en 1992. de cualquier tipo pueden realizarse mediante la herramienta apt-get. y toda la configuraci´n se realiza mediante los archivos de o configuraci´n. Junio 2005. la primera beta se o crea a partir de los paquetes que se encuentran en ”cooker“ en ese momento. pero desde la versin 9. que son un riesgo potencial o de a˜adir nuevos fallos. Las ıa a listas de correo sobre la versi´n beta suelen estar saturadas. la mejor caracter´ ıstica de esta distribuci´n es que si necesitas ayuda con tu sistema o linux. m´s actualizadas. Slackware no ofrece nada amistoso. y se mantiene con un instalador basado en texto. Tan pronto como el desarrollo se completa el software se pone a la libre disposici´n de la gente desde r´plicas en todo el o e mundo. ellos obtienen las ultimas versiones de ´ software y los cuelgues ocasionales de las aplicaciones es algo con lo que pueden vivir. o a Mientras otras distribuciones intentan desarrollar intarfaces f´ciles de usar para muchas utilidades a comunes. Los desarrolladores partieron de la distribuci´n o o de Red Hat. y muchos usuarios se encontraron usando Mandrake all´ donde otras distribuciones ı no hab´ conseguido entregar la usabilidad necesaria. muchos usuarios prefieren usar las ramas de pruebas o inestable. Es por esto que Slackware solo se recomienda a aquellos usuarios nuevos que deseen perder o el tiempo aprendiendo acerca de Linux. y sin herramientas ıa. Mandrake Linux es una distribuci´n que ha experimentado un enorme aumento o de popularidad desde su primera versi´n de julio de 1998. a Debian es tambi´n famosa por su reputaci´n de ser dif´ de instalar. de configuraci´n gr´fica. Es extremadamente estable y segura. Como contrapartida. Slackware tiene una especie de aura m´gica para a muchos usuarios. los usuarios pueden encontrarse con o m´s fallos que en otras distribuciones. ın . o Mandrake Creada por Gal Duval. El desarrollo de Mandrake es completamente abierto y transparente. ya que usa la mayor´ de paquetes o ıa en su forma original. El proceso de pruebas de la beta sol´ ser corto e intensivo. Las herramientas de detecci´n de hardware ıcil o de Mandrake y sus programas para el particionamiento de discos son consideradas por muchos como las mejores de la industria. Muchos usuarios de Debian hacen bromas sobre que su instalador es tan malo por que solo lo han de usar una vez. con paquetes nuevos que se a˜aden n al directorio llamado ”cooker“ a diario. muy recomendada para servidores. encuentra un usuario de Slackware.Desde entonces Mandrake Linux ha madurado y ıan se ha convertido en una distribuci´n popular entre los nuevos usuarios de linux y aquellos hogares que o buscan un sistema operativo alternativo. cambiaron el entorno de escritorio predeterminado por KDE. Es m´s probable que resuelva el problema que otro usuario a familiarizado con cualquier otra distribuci´n. tan pronto como Debian est´ en funcionamiento. Los administradores con experiencia en Linux encuentran que es una distribuci´n con pocos fallos. aunque no la o a m´s actualizada.0 ha pasado ha ser m´s largo y exigente. sin demasiadas modificaciones propias de la distribuci´n. la distribuci´n es posiblemente la m´s estable y confiable. Es raro que se produzcan lanzamientos de nuevas versiones (aproximadamente una n al a˜o). Compensando este fallo est´ “apt-get” el a instalador de paquetes Debian. Jose Antonio Escart´ Vigo. todas las a actualizaciones.A pesar de todo. Slackware Linux es la distribuci´n m´s antigua que sobrevive o a hoy en d´ No ofrece extras vistosos. en sus ordenadores personales. y a˜adieron un instalador f´cil n a de usar rompiendo el mito de que linux es dif´ de instalar. Cuando una nueva versi´n entra en fase beta. distribuci´n puntera y altamente actualizada. n Posiblemente.12 Servidor Linux para conexiones seguras de una LAN a Internet Como resultado de esto. Mientras que la rama estable es perfecta para servidores con funciones cr´ a ıticas. aunque siempre se pueden encontrar paquetes actualizados para descargar despu´s del lanzamiento n e oficial. Slackware es una buena distribuci´n para aquellos interesados en profundizar en el conocimiento o de las entra˜as de Linux. a Mucha gente encuentra este ’pero’ razonable para sus equipos. pero sigue siendo posible recibir una respuesta o r´pida sobre cualquier fallo o duda que env´ Como resultado de este tipo de desarrollo se obtiene una a ıes.

Knoppix reconoce autom´ticamente a a la mayor´ del hardware del ordenador cuando se inicia. u Red Hat Linux se ha convertido en la distribuci´n linux dominante en servidores en todo el mundo. Tambi´n puede ser instalado en el disco duro ıa e utilizando un script de instalaci´n. Los paquetes no son los m´s actuales. Red Hat Inc. Est´ desarrollada por el consultor de GNU/Linux Klaus Knopper. aunque tiene variedad de otros productos para nıa empresas.Cap´ ıtulo 2. Adem´s. el RHCE (Certificado de Ingenier´ de Red Hat). Gnoppix es una variante pero a incluye como entorno gr´fico Gnome en vez de KDE.. ya que probablemente se trata de la compa˜´ nıa de linux m´s popular del mundo. SuSE no cumpl´ esos requisitos. a oficial de software e informaci´n. y no se lanzan betas p´blicas para u probar. El desarrollo de SuSE se realiza completamente a puerta cerrada. ıa o el sistema puede iniciarse desde un simple CD de 700 MB. a A diferencia de la mayor´ de las distribuciones Linux. Junio 2005. un repositorio nıa.3 y no la instale porque la unica forma de conseguirla era pagando ´ y uno puntos claves era que todo el software fuera libre y gratuito. Selecci´n de Herramientas o Fedora (Red Hat) 13 Para muchos el nombre de Red Hat equivale a Linux. ha sido repetidas veces evaluada como la m´s completa.3 recibi´ el premio ”Producto del a˜o 2001”que entrega el Linux Journal. Afortunadamente se resistieron a realizar ning´n plan de r´pida expansi´n durante el boom de las u a o punto-com durante los a˜os 1998-1999. excepto para actualizaciones o de seguridad. o Otra de las razones del ´xito de Red Hat es la gran variedad de servicios populares que ofrece la come pa˜´ Los paquetes de software son f´cilmente actualizables usando la Red Hat Network. A pesar de todo. desarrollada por los desarrolladores de la propia SuSE. SuSE SuSE es otra compa˜´ orientada a los escritorios. academias y centros examinadores est´n disponibles o ıa a en el casi todas las partes del mundo. ın . Y otra posibilidad de hacerlo m´s persistente es guardar el directorio o a home en una unidad removible. ¿Qu´ hace a Red Hat Linux tan especial? Su curiosa mezcla de conservadurismo y paquetes punteros e mezclados con muchas aplicaciones desarrolladas en casa. SuSE no entrega im´genes ISO de f´cil instalaci´n de su a a o distribuci´n. SuSE Linux 7. pero no se vende en o e Asia y otras partes del mundo. una vez se a anuncia una nueva versi´n beta. ıa Knoppix Knoppix es una distribuci´n CD vivo de Linux basada en Debian y que utiliza como gestor de escritorio o KDE. Siguen la pol´ ıtica de no permitir descargar el software hasta tiempo despu´s de que salgan a la e venta las versiones comerciales. Este tipo de gesti´n n a o prudente si sigue as´ es propensa a garantizar estabilidad y dependencia. tienes virtualmente asegurado un excelente soporte de personal altamente cualificado. Todos estos factores han contribuido a que Red Hat sea una marca reconocida en el mundo de la industria de las TI. S´lo ha a o mostrado beneficios recientemente gracias a otros servicios en lugar de a la distribuci´n en si. La distribuci´n ha recibido buenas cr´ o ıticas por su instalador y la herramienta de configuraci´n o YaST. El programa de betas o y las facilidades para enviar fallos est´n abiertas al p´blico y hay un gran esp´ a u ıritu en las listas de correo p´blicas. Como resultado se obtiene una distribuci´n bien probada y estable. La documentaci´n que viene con las versiones o comerciales. o n La distribuci´n tiene un gran porcentaje de mercado en Europa y Am´rica del norte. usando el software empaquetado para la gran mayor´ de su base de usuarios. util y usable con diferencia a la de a ´ sus competidores. Aun as´ o ı. no requiere una instalaci´n en el disco duro. concentr´ndose en su negocio principal. o ıa Actualmente van por la version 9. Fundada en 1995 por Bob Young y Marc Ewing. La compa˜´ ha desarrollado incluso un programa de certificaci´n para popularizar su distribunıa o ci´n. aunque no siempre baratos. Una larga lista de servicios de soporte son accesibles en la compa˜´ o nıa y. Red Hat es la primera elecci´n para muchos profesionales y parece que seguir´ siendo un peso pesado o a durante mucho tiempo. Se puede usar de distintas formas como: Jose Antonio Escart´ Vigo. como un dispositivo de almacenamiento USB. ı. las versiones de los paquetes se mantienen.

m´s bien al contrario.2. La rama de desarrollo Sarge.3. o de todas formas es una buena distribuci´n que permite estar siempre actualizado. Paso a detallar el software que utilizo: 2.1. especialmente como sistema n operativo. o Pese a ser una versi´n en “pruebas”. a Mandrake no presentaba el entorno adecuado y Fedora y SuSE. mantenida por multitud de desarrolladores. Planner Programa de gesti´n de proyectos que permite crear planes para el proyecto y seguir su progreso. son consecuencia directa de la filosof´ del proyecto. lleva o ´ abierta desde el 2002 y la liberaci´n de la versi´n “estable” se plantea inminente.2. Junio 2005. 2. paso esencial en esta distribuci´n. o Gentoo no la lleg´ a probar debido a las dificultades de instalaci´n que representa la continua compie o laci´n de paquetes. La distribuci´n Ubuntu estaba claramente orientada a usuario final y no servidor que era mi objetivo. Existen versiones ´ ıntegramente en espa˜ol y catal´n.3. son las a distribuciones m´s estables de todas las evaluadas. no cubr´ ıan los requisitos prefijados. Es muy complicado dejarla a punto.3. Pruebas Los CD’s vivos arrancaron bien. n a 2. Distribuci´n elegida o Pese a la dificultad de instalaci´n y configuraci´n me decant´ por Sarge del proyecto Debian. eso no presenta ninguna dificultad para poder actuar como un servidor. se encuentra en la ultima fase. Pese a ser las menos actualizadas. Probar r´pidamente la compatibilidad de hardware bajo Linux antes de comprarlo o utilizarlo. sobre a o todo Debian que cuenta con un gran grupo de soporte y recursos.2. sobre todo MEPIS con el que me llev´ una grata sorpresa. o o 2. muy simple e y funciona casi todo. ın . Selecci´n del Software o Las herramientas escogidas no lo han sido al azar. Otro factor decisivo fue el a soporte que tiene dicha distribuci´n. ıa donde el uso exclusivo de software libre y gratuito era un objetivo prioritario.14 Servidor Linux para conexiones seguras de una LAN a Internet Para ense˜ar y demostrar de manera sencilla el sistema GNU/Linux. a especialmente para tarjetas de v´ ıdeo. Utilizar las herramientas incluidas para restaurar un sistema corrupto o sus datos perdidos. o pudiendo colocar sellos temporales Lista de caracter´ ısticas Calendario Costes de proyecto Gesti´n de tareas o Jose Antonio Escart´ Vigo. al ser versiones comerciales. o o Debian y Slackware eran las distribuciones que m´s se ajustaron a los prop´sitos del proyecto. debido o o e a su car´cter al 100 % libre y la gran cantidad de aplicaciones que adjunta.

lo cre´ en 1982. a o Una de las ventajas de LaTeX es que puede ser exportado muy f´cilmente a Portable Document Format a (PDF) y PostScrip. Tal es la calidad de L TEX que muchas editoriales permiten a sus autores escribir libros A en L TEX. lo liber´ en n o Octubre de 1. y en los cuales “lo que ves es lo que tienes”. t´rmino empleado e para denominar a los editores que s´lo trabajan sobre la pantalla del computador.3. Knuth el creador de TEX. Este no es un lenguaje de programaci´n usual. A El entorno L TEX desarrollado por Leslie Lamport. en TEX se escribe el texto acompa˜ado de ´rdenes que el compilador.990.2. dando un formato o visual al texto. Jose Antonio Escart´ Vigo. Junio 2005. A L TEX A Como se menciona en [CSLSMR+ 03] L TEX es un conjunto de sentencias escritas en un lenguaje de programaci´n llamado TEX. es gratuito.2: Diagrama temporal de Ghant 2. con la intenci´n de simplificar la o o tarea a aquellos que desean utilizar TEX. A estas ventajas hay que a˜adir otra. A˜ade a TEX una colecci´n de comandos que simplifican el n o mecanografiado.1: Distribuci´n de recursos o Diagramas de ghant Figura 2. Donald E. Utilizar´ este entorno de composici´n de textos para desarrollar la documentaci´n derivada del proe o o yecto. ın . sino uno orientado a la o o escritura de textos de excelente calidad. Selecci´n de Herramientas o Gesti´n de recursos o 15 Figura 2. posteriormente.Cap´ ıtulo 2. interpreta y ejecuta para proporcionar un n o texto perfectamente compuesto. Muy al contrario. TEX no es un editor de la familia WYSIWYG. permitiendo al usuario concentrarse en la estructura del texto. d´ndoles un archivo base y unas directrices sobre la elaboraci´n de los textos. en vez de en los comandos A para dar formato.

a u Corrector ortogr´fico a trav´s de ispell a e A Asistentes para la creaci´n de distintos tipos de documentos L TEX(cartas. .3. deshacer. Postscript o PDF. etc). desarrollada por F. o Con ella se pueden producir documentos en formato PDF para realizar exposiciones con un monitor o con un sistema de proyecci´n de v´ o ıdeo. Prosper A La herramienta Prosper.M. o Dispone de multitud de estilos de presentaci´n y la posibilidad de conseguir efectos de animaci´n en o o pantalla haciendo que el contenido de la misma aparezca o desaparezca en distintas etapas (de forma incremental).4.3. Manejo de bibliograf´ a trav´s de BibTEX.3: Imagen del editor Kile Sus principales caracter´ ısticas son las siguientes: A Los comandos de L TEX est´n disponibles a trav´s de men´s. funciones de o o b´squeda (incremental o no). 2. Jose Antonio Escart´ Vigo. Goualard y P.16 Servidor Linux para conexiones seguras de una LAN a Internet 2. Interfaz con programas de dibujo como xfig o gnuplot.Neergaard es una clase para L TEX que permite crear presentaciones electr´nicas con una excelente calidad. a e Para una edici´n c´moda de los ficheros de texto. . Integraci´n con herramientas externas para la visualizaci´n e impresi´n de los documentos editados o o o en distintos formatos: DVI. a e u La ayuda integrada en el programa nos permitir´ saber qu´ macro usar ante una necesidad concreta. Brachet. ın . reemplazo. Kile A Kile es un editor de textos para L TEX desarrollado por P. .3. o u A Facilidades para compilar y depurar ficheros L TEX. ıas e Navegaci´n mediante men´s de la estructura de un documento o proyecto. Junio 2005. Tambi´n se puede producir documentos PostScript para imprimir e la presentaci´n sobre transparencias para exposiciones con retroproyector. u Los m´s de 370 s´ a ımbolos matem´ticos posibles son accesibles mediante botones y men´s. art´ o ıculos. contamos con resaltado de sintaxis. botones y combinaciones de teclas. Tiene una completa interfaz con diversas facilidades que ofrece a un usuario novel un entorno amigable. Figura 2.

Selecci´n de Herramientas o 17 Figura 2. Una vez obtenida la colecci´n de im´genes que conformaran los frames del v´ o a ıdeo se utilizar´ el programa Mencoder para componerlo. Xvidcap y Mencoder: Permite capturar una secuencia de im´genes de una parte de la pantalla.4: Varios estilos de transparencias 2. dvd’s y otros.Cap´ ıtulo 2. Junio 2005. a 1 fps: frames por segundo Jose Antonio Escart´ Vigo. es mucho mejor que la t´ ıpica tecla Impr-pant gracias a sus m´ltiples opciones. la ventana activa o una regi´n o concreta.3. El programa Mencoder forma u parte de Mplayer. ´ o The Gimp: Es el programa estrella de GNU para la creaci´n y el retoque fotogr´fico de im´genes.5. que es un conjunto de aplicaciones para la grabaci´n y reproducci´n de v´ o o ıdeos. ın . Programas gr´ficos a Las im´genes y videos que he utilizado en la documentaci´n y en las transparencias se han generado a o con los siguientes programas: KSnapshot: Para capturar pantallas. ya sea a una ventana o una regi´n. pudiendo seleccionar entre toda la pantalla. una herramienta muy util para la redacci´n de tutoriales. De esta manera. entre las que se encuentran un temporizador y poder elegir que parte de la u pantalla se va a capturar. En resumen. o a a comparable al famoso programa comercial Adobe Photoshop. obtendremos una colecci´n de im´genes del ´rea capturada o o a a separadas temporalmente un n´mero de fps1 que se puede especificar.

.

Parte II Instalaci´n base o .

.

Slackware. Unstable Se llama “Sid” y como su nombre indica es la distribuci´n m´s inestable porque contiene paquetes o a muy nuevos.1. Si el sistema no permite arrancar desde el CD.org/distrib/ ) a o desde una replica del mismo. 3. Se puede obtener m´s informaci´n respecto a la instalaci´n de Debian en [PRG+ 02] y [eidD04]. Una vez arranque el instalador.2. las im´genes pueden ser descargadas desde el servidor Debian (www. Testing Actualmente se llama “Sarge”. con mucho.debian.1. posee el software que ya pas´ un tiempo de prueba en inestable pero o que a´n debe pasar una fase de pruebas para consideralo estable. “testing” y “unstable”. Proyecto Debian El proyecto Debian GNU/Linux posee tres ramas: “stable”. los ficheros para arrancar mediante otros medios tambi´n se encuentran en el CD. . etc). 3. Debian Sid contiene software muy o reciente y puede traer problemas de estabilidad graves. Es el equivalente a la distribuci´n m´s actual de las dem´s o o o a a distribuciones (Mandrake. La manera m´s sencilla. se puede utilizar una estrategia alternativa (disquete o disco duro) para hacer el arranque inicial del instalador del sistema.1. Desde dispositivo USB: crea un mini sistema base Desde el disco duro: a partir de unos ficheros locales. si la tarjeta de e a red es soporta. Desde red: Se realiza a trav´s de TFTP desde una m´quina a la que se tiene acceso. de instalar Debian GNU/Linux.Cap´ ıtulo 3 Instalaci´n de la distribuci´n o o Existen varias formas de realizar la instalaci´n de la distribuci´n: o o Desde CD-ROM: con las im´genes oficiales a Desde disquetes: carga un n´cleo y permite hacer una instalaci´n base por internet si la tarjeta de u o red es soportada. es usar un juego oficial de CDs o a DVDs de Debian. En los siguientes apartados se detallan las diferencias entre ellas. Fedora. es la utilizada por aquellos que desean u disfrutar de las nuevas caracter´ ısticas de Debian y de las versiones de software m´s reciente sin esperar a a la liberaci´n oficial de una nueva versi´n. se pueden obtener el resto e de ficheros desde el CD. a o o 3.1. La utilizan los desarrolladores de Debian para depuraci´n.

al menos se a han de crear 2 particiones. ya que contiene versiones de software bastante recientes y ya probadas un tiempo en la rama inestable. 3. 10. Se puede escoger un particionado autom´tico o si se elige manual. 3. En el servidor se instal´ Debian Woody e o o o y se realiz´ una actualizaci´n debido a incompatibilidades de Hw. Configurar la BIOS para arrancar desde el DVD Iniciar el instalador boteando desde el DVD Arrancar el instalador con los m´todos y par´metros m´s adecuados al Hw disponible. 6.1. ya que su software contenido ya super´ varios meses de pruebas y correcciones. 2. Junio 2005. He elegido Sarge.3. o 1. se recomienda el uso de o Debian Woody. tambie´ llamada “Woody” y como su nombre indica es la m´s estable de o n a las distribuciones Debian.1. Stable Actualmente es la versi´n 3. 15. Recomendaciones En entornos de prueba y/o desarrollo se recomienda utilizar Debian Woody o Sarge. Configurar la red Particionar discos. una ra´ y otra de intercambio ız Formar particiones y realizar la instalaci´n base o Instalar el n´cleo u Instalar el gestor de arranque. 13.2. 4. Debian Sarge Este m´todo de instalaci´n se utiliz´ en el cliente de pruebas. a Elegir idioma Seleccionar pa´ ıs Confirmar mapa de teclado Detectar Hw y cargar componentes.0. se instala Grub como predeterminado. 7. Presionando e a a Enter se arranca con los par´metros por defecto que incluyen el kernel 2. 8. 12. 9. o o M´todo de instalaci´n e o Mediante el siguiente esquema detallo el sistema de instalaci´n. ın . Si se disponen de varios sistemas operativos se puede especificar un arranque m´ltiple u Retirar el DVD y reiniciar para continuar la instalaci´n o Arrancar y configurar el sistema base Configurar zona horaria Jose Antonio Escart´ Vigo.6 de GNU/Linux. 5. 14. 11. 3. Para PCs de escritorio se recomienda utilizar Debian Sarge.22 Servidor Linux para conexiones seguras de una LAN a Internet 3. donde no se toleran problemas de estabilidad.4. o En sistemas de producci´n. ya que esta rama de desarrollo lleva abierta desde el 2002 y la liberaci´n de la versi´n o o estable se plantea inminente.

ın . 5. Esta fue una de las partes m´s desesperantes del proyecto. 18. boteando desde el CD o Seleccionar la imagen de n´cleo deseada u Configurar teclado Crear y montar particiones para Debian en el disco duro. Incluye casi todos los a controladores soportados por Linux. Idepci: Un n´cleo que s´lo soporta dispositivos IDE y PCI (y unos pocos ISA). 8. a la elecci´n de cada usuario. o o a Configurar el gestor de arranque. una para el sistema base y otra de intercambio Seleccionar qu´ controladores de perif´ricos cargar e e Configurar la interfaz de red Iniciar la instalaci´n y configuraci´n autom´tica del sistema base. con un m´ ınimo de dos. Jose Antonio Escart´ Vigo. 6. en este caso Lilo. Junio 2005. 17. 4. tuve a que instalar un versi´n diferente de la planificada y al arrancar Debian Woody con cualquiera de los o kernels disponibles. e o Una vez terminada la instalaci´n est´ndar.20. controladoras IDE modernas. no cargaba el driver adecuado para la pantalla TFT. 2. es necesario instalar un kernel m´s avanzado (2.3. para que fuera soportado un mayor n´mero de dispositivos desde el e u inicio. instala el kernel 2. pero eliminando controladores de dispositivo que se usan con menos frecuencia. compilados como m´dulos. debido a incompatibilidades de Hw. 10. ıa parchearlo con los drivers del fabricante. Si se dispone de varios sistemas operativos se puede espedificar arranques multiples Arrancar el sistema reci´n instalado y hacer las configuraciones finales e Instalar tar´as y paquetes adicionales. Esto supuso tener que utilizar otra pantalla diferente. Configurar usuarios (root y usuarios corrientes) Configurar APT Instalar y configurar paquetes adicionales Configurar correo 23 Si durante la instalaci´n se producen errores o cuelgues se pueden especificar opciones restrictivas al o iniciar el instalador. 11. Se debe usar este u o n´cleo si los controladores SCSI producen cuelgues al arrancar. no consegu´ que ninguna opci´n instalara el sistema en el servidor.6 o superior) o a a que nos detecte todos los dispositivos de los que dispone nuestro sistema. Debian Woody En la instalaci´n se incluyen varias im´genes de n´cleos disponibles. Configurar la bios para arrancar desde CD Arrancar el sistema de instalaci´n. o El arranque que utilic´ fue Bf2.4 y da soporte a hardware nuevo ausente en las otras imagenes. hasta o poder actualizar el kernel a una versi´n 2.Cap´ ıtulo 3.4. Este es un peque˜o resumen de los pasos a seguir en la instalaci´n de Debian Woody: n o 1.2. 7. Soporta m´s a hardware USB. 9. En mi caso. Bf2. conectada a la salida VGA del portatil. 3.2. debido a conflictos de hardware o a u un compotamiento inadecuado de los controladores o placas de su sistema. la mayor´ basados en el kernel 2. 19. y los sistemas de ficheros Ext3 y Reiser.20: o a u ıa Vanilla: La imagen est´ndar de Debian Woody. o Compact: Igual que Vanilla. y si todav´ no los soporta.6. para realizar toda la instalaci´n. Instalaci´n de la distribuci´n o o 16. aunque el problema de la pantalla persist´ ıa. ı o 3.4: Usa el kernel 2.

La forma de hacerlo se detalla en el siguiente cap´ ıtulo. Junio 2005. a˜adiendo la direcci´n de una r´plica de los archivos de Debian Sarge al n o e archivo de fuentes de APT. Actualizaci´n de Woody a Sarge o Esto se realiza mediante la herramienta APT y se puede enfocar de dos formas. Una vez tenemos agregadas las fuentes de la nueva distribuci´n en el APT. Si disponemos de internet. ın . Si disponemos de los DVD’s o CD’s de Debian Sarge. a˜adi´ndolos al archivo de fuentes de APT n e (#apt-cdrom add). solamente tenemos que o introducir los siguientes comandos: #apt-get update #apt-get upgrade #apt-get dist-upgrade Jose Antonio Escart´ Vigo.4.24 Servidor Linux para conexiones seguras de una LAN a Internet 3.

Podemos conseguir esto situ´ndolo en una partici´n separada. necesitaremos asegurarnos de que ning´n usuario abuse y e u llene el disco completo. es importante situarlos en otra para tici´n para que nadie pueda realizar un ataque de Denegaci´n de servicio (DoS) generando tantas o o entradas que se llene todo el disco. el software de instalaci´n no diferencia una partici´n de otra.Cap´ ıtulo 4 Primeros pasos En los apartados que se presentan a continuaci´n establecen varias cosas que hay que tener en cuenta o para administrar un servidor Linux. a u Debido a que estamos configurando un servidor. a o swap. tenerlo en otra partici´n mejora el rendimiento del sistema. Esto da una idea de por qu´ un sistema trabaja mejor que el otro. Debido a que este directorio est´ dise˜ado para que u a n todos los usuarios puedan escribir en ´l. /tmp. debemos conocer que directorios es necesario tener en particiones separadas: /usr. S´lo hay que preocuparse de en o o o que directorio esta cada archivo. el destino final de los archivos log. u /home. Esto es util por si los usuarios consumen a ´ el disco entero y dejan a otras aplicaciones cr´ ıticas sin espacio (tales como los archivos log). o Se puede observar por qu´ es una buena idea crear varias particiones en un disco en lugar de una sola e partici´n grande al estilo de Microsoft. /var. as´ que las particiones montadas representan ı diferentes partes del ´rbol de directorios donde se sit´an normalmente los archivos. 4. o e . Debido a que estos pueden verse afectados por usuarios exteriores (por ejemplo personas que visiten una p´gina web). el proceso de instalaci´n distribuye autom´tio a camente sus archivos por todas las particiones montadas. donde se sit´an todos los archivos de programa. donde se sit´an los archivos temporales. aparecen como un ´rbol de directorios unificado en vez de unidades a separadas. Este es un sistema de archivos no accesible para el usuario. El directorio ra´ (/) ser´ la primera partici´n. El proceso de montaje hace disponible el o contenido de esa partici´n dentro del sistema. donde est´n los directorios de todos los usuarios. Es donde se almacena el archivo de memoria virtual. Particionar el disco En Linux cada partici´n se monta en tiempo de arranque. o ız a o Las particiones. Como consecuencia de ello. cuando se montan.1.

#/sbin/lilo Cuadro 4.2. a La primera secci´n contiene opciones globales. u Lilo Si hemos optado por utilizar Lilo. Posteriormente los par´metros pueden ser configurados desde a consola o mediante la herramienta de administraci´n gr´fica Webmin.conf y poso teriormente ejecutaremos el comando lilo para activar los cambios. ın .6. Junio 2005. era un gestor que ya conoc´ y con el que me sent´ c´modo. descompresi´n autom´tica. Paso ıa ıa o a detallar los dos gestores seg´n se explican en [BB00]. como se puede observar en el cuadro 4.img read-only root=/dev/hda3 #Windows other=/dev/hda1 optional label=WindowsXP Grub Es el gestor de arranque por defecto en Debian Sarge. La ultima secci´n especifica la partici´n desde donde deber´ ejecutarse los otros sistemas operativos ´ o o a que tengamos instalados en el ordenador. u El archivo est´ dividido en tres secciones. Jose Antonio Escart´ Vigo.18-3 label=Kernel-2_4 initrd=/boot/initrd-2.11-9 label=Kernel-2_6 read-only root=/dev/hda3 image=/boot/vmlinuz-2.1. Gestores de arranque El gestor de arranque indica al ordenador qu´ sistema operativo o kernel se iniciar´ y donde se ene a cuentran los archivos necesarios para ejecutarlo.4.18-3. ya que permite a interactuar en caso de arranque inv´lido. como son el sistema operativo por defecto o si queremos o que aparezca el men´ de selecci´n y el tiempo por defecto.4. al terminar el proceso de instalaci´n de Linux dispondremos de o un archivo de configuraci´n denominado /etc/lilo. Es un poco m´s flexible que Lilo. Si necesitamos realizar alguna modificaci´n simplemente editaremos el archivo /etc/lilo. o a En el servidor he mantenido Lilo. interfaz gr´fico de arranque.1: Archivo de configuracion /etc/lilo. Durante ese proceso se a˜adir´n autom´ticamente los diferentes sistemas operativos n a a que tengamos instalados en el sistema.26 Servidor Linux para conexiones seguras de una LAN a Internet 4. Dependiendo del tipo de distribuci´n escogida se instalar´ por defecto uno de estos dos gestores de o a arranque Lilo o Grub.b message=/boot/message lba 32 #Linux image=/boot/vmlinuz-2.conf # Global prompt timeout=70 default=Kernel-2_6 boot=/dev/hda map=/boot/map install=/boot/map install=/boot/boot.conf el cual podremos editar en cualquier momento o para ajustar el men´ o comportamiento de Lilo a nuestras necesidades. l´ u o a ınea de comandos. indic´ndose en o a a image y initrd el kernel y las opciones de arranque. u o En la segunda secci´n se especifican los par´metros necesarios para arrancar Linux. soporte para LBA y soporte para terminales entre otras muchas o a opciones. a Incluye otras funciones como el soporte de m´ltiples m´dulos.

. Con ella podemos modificar la contrase˜a de cualquier usuario si hemos iniciado una sesi´n de n o root.1. a #mkdir /home/josan Una vez creado el usuario le deberemos asignar una contrase˜a. Al utilizar este usuario se podr´ da˜ar el sistema en caso de cometer alg´n error. . se ha de almacenar informaci´n imprescindible de los usuarios. contrase˜a.3.o de grupo que se asignar´.o de tlf. Usuarios Es muy recomendable crearse un usuario de trabajo dentro del sistema. o nuestra propia contrase˜a en cualquier otro caso. Primeros pasos 27 4. . ıa n u M´s adelante se detalla como crear y administrar usuarios con la herramienta grafica Webmin. 4. . . directorio de trabajo y shell predeterminado. a˜adir usuario n #gpasswd -d [nombre_usuario] [nombre_grupo]. n Si el sistema esta bien administrado. a Para cambiar la informaci´n de una cuenta se usa el comando chfn.2. o #useradd josan Este mandato crea una nueva entrada en el archivo /etc/passwd.3. . y introducir la nueva contrase˜a. ın . para ello utilizaremos la instrucci´n n o passwd. . modificar o eliminar cualquier archivo del sistema operativo. A˜ adir grupos al sistema n Para a˜adir un nuevo grupo al sistema se utiliza el siguiente comando: n #groupadd -g [GID] [nombre_grupo]. . n #passwd josan. o como el n. ya que con el usuario root es posible crear. pero a ahora voy a explicar como se har´ desde la l´ ıa ınea de comandos. n Es necesario crear una carpeta /home/josan que ser´ el directorio del usuario. a Si tenemos usuarios ya creados y deseamos a˜adirlos o eliminarlos de un grupo utilizaremos: n #gpasswd -a [nombre_usuario] [nombre_grupo]. Esto es necesario por si se compromete la seguridad del sistema y necesitamos ponernos en contacto con el usuario a trav´s de v´ e ıas no inform´ticas. . A˜ adir nuevos usuarios al sistemas n La instrucci´n necesaria para crear un nuevo usuario es useradd. y el lugar donde encontrar f´ ısicamente a ese usuario. #finger josan 4.Cap´ ıtulo 4. . Junio 2005. donde GID es el n.3. . . eliminar usuario Jose Antonio Escart´ Vigo. o #chfn josan Y para visualizar esa informacion finger. Este archivo contiene informaci´n o como el nombre de usuario.

La descripci´n de cada uno de los campos aparece listada en la Tabla a o 4. Shell de trabajo del usuario. sino indicar el motivo por el que ha sido deshabilitada. Cuadro 4. aunque puede ı pertenecer a m´s de un grupo a Campo de comentarios Directorio /home del usuario.28 Servidor Linux para conexiones seguras de una LAN a Internet 4.3: Descripci´n de los campos del archivo /etc/passwd o Descripci´n o Nombre de usuario o identificador de inicio de sesi´n. Esta informaci´n es almacenada en tres archivos: o /etc/passwd: Informaci´n de los usuarios o /etc/shadow: Claves encriptadas de los usuarios /etc/group: Grupos del sistema Archivo /etc/passwd Es usado para establecer y configurar las cuentas.3. o ´ Contrase˜a encriptada de usuario. Una “x” min´scula indica que se usan contrase˜as ocultas n u n y que estas estar´n en el archivo /etc/shadow a Identificador de usuario (UID).3. ın . Bases de datos de usuarios Ahora vamos a especificar con m´s detalle como es almacenada la informaci´n de los usuarios dentro a o del sistema. Aqu´ solo aparece el grupo principal del usuario. a o n a Se pueden a˜adir nuevas cuentas de usuario editando directamente el archivo /etc/passwd. Es una buena a n pr´ctica no s´lo a˜adir el car´cter. Junio 2005. La informaci´n de cada usuario est´ dividida en seis campos delimio a tados por el car´cter dos puntos (:).3. Es un archivo de texto plano que puede ser consultado por todos los usuarios del sistema. Tiene que ser unico. pero para n crear las contrase˜as hay que usar la utilidad /usr/bin/passwd ya que esta es cifrada. Este n.2: Ejemplo de un archivo /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh postgres:x:31:32:postgres:/var/lib/postgres:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh operator:x:37:37:Operator:/var:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh josan:x:1000:1000:Jose Antonio Escartin Vigo:/home/josan:/bin/bash identd:x:100:65534::/var/run/identd:/bin/false sshd:x:101:65534::/var/run/sshd:/bin/false Cada l´ ınea representa un usuario. Habitualmente es la shell bash Campo 1 2 3 4 5 6 7 Un car´cter “*” en la contrase˜a indica que la cuenta esta deshabilitada temporalmente. n Jose Antonio Escart´ Vigo. Y su contenido podr´ ser algo parecido al siguiente: ıa Cuadro 4.o ha de ser unico ´ Identificador de grupo (GID).

Este archivo puede ser le´ por cualquier usuario del sistema. Esto representa un problema porque significa que cualquiera puede ver una contrase˜a n cifrada e intentar conseguir una clave que genere ese cifrado. el 1 de enero de 1970.4: Ejemplo de un archivo /etc/shadow root:$1$wzPAR6Nw$RTLX6R4qjZT6KGJI8efJL0:12890:0:99999:7::: daemon:*:12890:0:99999:7::: bin:*:12890:0:99999:7::: sys:*:12890:0:99999:7::: sync:*:12890:0:99999:7::: games:*:12890:0:99999:7::: man:*:12890:0:99999:7::: lp:*:12890:0:99999:7::: mail:*:12890:0:99999:7::: news:*:12890:0:99999:7::: uucp:*:12890:0:99999:7::: proxy:*:12890:0:99999:7::: postgres:*:12890:0:99999:7::: www-data:*:12890:0:99999:7::: backup:*:12890:0:99999:7::: operator:*:12890:0:99999:7::: list:*:12890:0:99999:7::: irc:*:12890:0:99999:7::: gnats:*:12890:0:99999:7::: nobody:*:12890:0:99999:7::: josan:$1$tUlRDVd7$6kPCHl4XyLIYnjBt4BpxF0:12890:0:99999:7::: identd:!:12890:0:99999:7::: sshd:!:12890:0:99999:7::: messagebus:!:12891:0:99999:7::: hal:!:12891:0:99999:7::: gdm:!:12893:0:99999:7::: saned:!:12905:0:99999:7::: Est´ formado por entradas de una l´ a ınea con campos delimitados por el car´cter dos puntos (:). se defini´ el concepto de contrase˜as ocultas. a Para realizar el cifrado de las contrase˜as es mejor usar MD5 que el antiguo m´todo DES. Jose Antonio Escart´ Vigo. o n Cuadro 4. Estos a u campos est´n referidos a la fecha de comienzo “de la era de la computaci´n”. ya que n e el primero permite contrase˜as m´s largas y si esta es buena implica un tiempo mucho mayor para n a descifrarlas. para modificar estos valores predeterminados. a o Cuadro 4. D´ transcurridos desde la era en que la cuenta se inhabilitar´ (con independecia de cambios ıas a de la contrase˜a) n Campo reservado Campo 1 2 3 4 5 6 7 8 9 Se utilizar´ change.Cap´ ıtulo 4. la utilidad de cambio de caducidad. Este archivo a˜ade un nivel de seguridad adicional. se almacenaba en el ıa ıan n n archivo /etc/passwd. Para combatir esta amenaza potencial. demasiado altos para ser correctos. ya que la n n encriptaci´n de la clave de usuario solo es visible por el root. Primeros pasos Archivo /etc/shadow 29 Es el archivo de contrase˜as ocultas. la contrase˜a. pero s´lo modificado ıdo o por el usuario root. Algunos a de estos campos contendr´n aparentemente n´meros raros. Junio 2005. ın . o Cuando todav´ no exist´ las contrase˜as ocultas.5: Descripci´n de los campos del archivo /etc/shadow o Descripci´n o Nombre de la cuenta de usuario Campo de contrase˜a cifrada n D´ transcurridos desde el comienzo de la era hasta la fecha en que la contrase˜a fue ıas n cambiada por ultima vez ´ N´mero de d´ tras que deben transcurrir hasta que la contrase˜a se pueda volver a cambiar u ıas n N´mero de d´ tras los cuales hay que cambiar la contrase˜a (-1 significa nunca) u ıas n D´ antes de la expiraci´n de la contrase˜a en que se avisar´ al usuario al inicio de la sesi´n ıas o n a o D´ despues de la expiraci´n de la contrase˜a en que la cuenta se inhabilita si la contrase˜a ıas o n n no se ha cambiado correctamente. aunque cifrada.

6: Ejemplo de un archivo /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7:lp mail:x:8: news:x:9: uucp:x:10: proxy:x:13: kmem:x:15: dialout:x:20: fax:x:21: voice:x:22: cdrom:x:24:hal floppy:x:25:hal tape:x:26: audio:x:29:josan dip:x:30: postgres:x:32: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40:josan gnats:x:41: shadow:x:42: utmp:x:43: video:x:44: staff:x:50: games:x:60: users:x:100: nogroup:x:65534: josan:x:1000: man:*:12: plugdev:*:46: ssh:x:101: crontab:x:102: messagebus:x:103: hal:x:104: lpadmin:x:105: gdm:x:106: camera:x:107: scanner:x:108: saned:x:109: Cada l´ ınea del archivo /etc/group indica un grupo. Los archivos de un grupo pueden ser compartidos entre los miembros de ese grupo. protegi´ndose contra el acceso de otros usuarios que no e deban acceder a esos recursos.30 Archivo /etc/group Servidor Linux para conexiones seguras de una LAN a Internet El objetivo de la existencia de un identificador de grupo (GID) es agrupar de forma l´gica recursos o o archivos para asignarlos a miembros de un grupo determinado. Junio 2005. Cada cuenta de usuario tiene que pertenecer como m´ ınimo a un grupo. Cuadro 4. no es necesario que aparezca en la lista. S´lo es para usuarios que su grupo inicial o no fuera este Campo 1 2 3 4 Jose Antonio Escart´ Vigo. No suele usarse n N´mero de identificaci´n de grupo u o Lista de usuarios asociadas a este grupo.7: Descripci´n de los campos del archivo /etc/group o Descripci´n o Nombre de grupo Contrase˜a de grupo. Se puede observar que muchos de los grupos predeterminados corresponden directamente a un servicio espec´ ıfico. ın . Cuadro 4. Si en el archivo /etc/passwd se ha especificado este grupo.

4.9 especifica las opciones del comando chmod. .1. Junio 2005. . Podemos encontrar los siguientes: a Cuadro 4.rwx rwx rwx root root 512 Jan 7 10:50 nom_archivo 4. Estos tres niveles pertenecen a las siguientes categor´ ıas: Usuario (el propietario) Grupo Otros Cada nivel o categor´ tiene los privilegios asociados de: ıa Lectura Escritura Ejecuci´n o Un archivo est´ identificado por el grupo al que pertenece y su propietario. quita permiso de lectura al grupo Jose Antonio Escart´ Vigo. Permisos de archivos En Linux hay tres niveles de permisos de archivos y directorios.4. da permiso de lectura al grupo #chmod g-w /home/josan/archivo. Es necesario especificar los tres elementos siguientes: Nivel se va a modificar (propietario. . Tipos de archivo El primer car´cter identifica el tipo de archivo. . ın . escritura o ejecuci´n) o Archivo o archivos que se van a modificar La tabla 4.Cap´ ıtulo 4.8: Tipos de archivos Car´cter a d l l l l p Tipo de archivo Archivo normal (generalmente un archivo binario o de texto ASCII) Directorio Enlace simb´lico o Dispositivo de car´cter a Dispositivo de bloque Socket (un proceso de escucha de red) Canalizaci´n o pipe con nombre o 4. grupo o otros) Permiso se va a modificar (lectura. Modificar los permisos Para modificar los permisos de acceso a un archivo se utiliza el comando chmod. .2. . Los permisos pueden ser especificados con letras: #chmod g+w /home/josan/archivo. Cuando realizamos un a listado de un archivo. Primeros pasos 31 4. encontramos los siguientes parametros: #ls -l <archivo> .4.

Cuadro 4. para que este usuario normal (sin privilegios) pueda cambiar su contrase˜a. Ejecuci´n a otros. Por ejemplo. escritura y ejecuci´n al propietario. Lectura y ejecuci´n al grupo. el usuario root es propietario de los ejecutables binarios con el bit SUID activo.32 Servidor Linux para conexiones seguras de una LAN a Internet Cuadro 4. o Normalmente. Permisos especiales: SUID. Esto es peligroso pero necesario para algunos programas. el ejecutable passwd debe ser SUID del usuario root. de forma que cualquiera que pueda ejecutar el programa lo ejecuta como usuario root. El bit SGID funciona del mismo modo n para los grupos. o o o 4. un usuario normal no puede leer o escribir en el archivo /etc/shadow.9: Opciones de chmod Opci´n o u g o a r x w 0 1 2 3 4 5 6 7 Descripci´n o Propietario Grupo Otros Todos Lectura Ejecuci´n o Escritura Sin privilegios Ejecuci´n o Escritura Escritura y ejecuci´n o Lectura Lectura y ejecuci´n o Lectura y escritura Lectura. escritura y ejecuci´n o O con n´meros: u #chmod 751 /home/josan/archivo Da lectura. activar el bit SUID de propietario obliga al archivo ejecutable binario a ejecutarse como si lo hubiera lanzado el usuario propietario del archivo y no realmente quien lo lanz´. Junio 2005. el SGID y el de persistencia Jose Antonio Escart´ Vigo. una “s” sustituye a la “x” que corresponde al bit de ejecuci´n o del usuario o grupo.4.3. SGID y bit de persistencia Con un archivo ejecutable. ın .10: Opciones especiales chmod Opci´n o s t 0 1 2 3 4 5 6 7 Descripci´n o SUID o SGID Bit de persistencia Sin permisos especiales (predeterminado) Activar el bit de persistencia (t) Activar el bit SGID de grupo (s) Activar el bit SGID de grupo y el de persistencia Activar el bit SUID de propietario Activar el bit SUID de propietario y el de persistencia Activar el bit SUID de propietario y el bit SGID de grupo Activar el bit SUID. Cuando un programa es SUID o SGID.

La mejor opci´n es que el software a utilizar est´ incluido en el proyecto Debian. no podr´ ıan hackear el sistema. . #chgrp proyecto /tmp/archivo 4. Si los scripts estuvieran modificados.bz2) y tar (.Cap´ ıtulo 4. .tar.bz2 Jose Antonio Escart´ Vigo. SGID y bit de persistencia con la tabla 4. as´ se eliminar´ la o e ı a posibilidad que un usuario malintencionado haya modificado deliberadamente el paquete. el comando es el siguiente: $tar zxvf archivo.tar.tar. los archivos que se almacenan en estos directorios adoptan el propietario o grupo del directorio.5.4. aunque otros pueden leerlo. o El bit de persistencia.5. Cambiar un archivo de propietario o grupo La utilidad chown modifica el indicador de propietario. Junio 2005. Compilaci´n de paquetes desde archivos fuente o Las aplicaciones suelen venir comprimidas en uno de estos dos formatos . 4. . .tar. #chown josan /tmp/archivo La utilidad chgrp modifica el indicador de grupo. sin privilegios. bzip (. o Si nos vemos en la obligaci´n de instalar un paquete de una fuente no segura. Si el archivo es . Instalaci´n de aplicaciones o En Debian GNU/Linux tenemos tres aplicaciones para manejar paquetes precompilados dpkg. Primeros pasos 33 Cuando los bits SUID o SGID se refieren a directorios. Este atributo en concreto hace que s´lo el propietario o del archivo pueda eliminarlo.bz2 Lo primero es descomprimir los fichero fuente. en vez de adoptar el del usuario que cre´ el archivo.gz .gz). ın . evitando o usar root a menos que sea imprescindible.1. mostrado como “t” en lugar del bit de ejecuci´n normal para el nivel “otros” se o usa normalmente en directorios tales como /tmp.tar. Se puede especificar los permisos especiales SUID.gz $tar jxvf archivo.tar. apt y alien. 4. Para asegurarnos es preciso leer atentamente la documentaci´n de los paquetes (INSTALL y README) y comprobar “a o mano” los script’s de instalaci´n.gz. Cuando disponemos de los archivos fuente de una aplicaci´n y los queremos instalar en nuestro sistema o hay que tener varias precauciones. para ello debemos disponer de tres aplicaciones: gunzip (. para descomprimir archivo. para descomprimir archivo.bz2. .gz.10 La forma de utilizarlo es a˜adir un n´mero m´s al chmod: n u a #chmod 2751 /home/josan/archivo Lo comentado anteriormente y el SGID activado. desconocida o sospechosa o es una buena conducta de actuaci´n instalar el paquete con un usuario con privilegios restringidos.4. .tar.tar).

c tstf. deber´ ejecutar o a la acci´n indicada para generarlo nuevamente. Makefiles En proyectos extensos.c gcc -c -o tst. An´logamente. la versi´n actual.o y tstf. que dada esta serie de interdependencias es capaz de generar el ejecutable con la m´ ınima cantidad de pasos necesarios. a o Jose Antonio Escart´ Vigo. La sintaxis b´sica de un a archivo Makefile es la siguiente: objetivo: dependencias acciones a ejecutar El objetivo es el archivo que se desea generar. al llegar a la primera l´ a ınea encuentra que tst depende de tst. el m´todo o e de instalaci´n y la informaci´n necesaria para modificar los archivos de configuraci´n. Las acciones son los comandos para generar el objetivo a partir de las dependencias. ın .o tstf. Tratar´ de explicar las nociones m´s b´sicas de los e a a mismos. o e Pueden llegar a ser archivos grandes y complejos.o tstf. los paquetes adicionales que debemos de tener instalados.o tstf.o: tst.c. o o o Para realizar la instalaci´n se utiliza el Makefile. y los flags qu´ se han de pasar al compilador.o gcc -o tst tst. o o e Existe un programa. con varios miles de l´ ıneas de programaci´n. si tst. Si tst no existe o tiene fecha de modificaci´n anterior a la de sus dependencias. un archivo que se pasa al comando make con una serie o de par´metros dependiendo de las opciones disponibles. Es frecuente por lo tanto dividir el proyecto en varios archivos con c´digo fuente. para poder leer los que vienen en las instalaciones de las aplicaciones. Junio 2005.o no existe o tiene fecha de modificaci´n o a o anterior a la de tst. Un Makefile es un archivo de configuraci´n donde se indicar´n que archivos debe compilar. En el pr´ximo p´rrafo se explica en que consiste a o a exactamente un archivo de este tipo.c El programa make leer´ el archivo Makefile.o: tstf. no resulta muy pr´ctico recompilar o a cada vez que se desea armar un nuevo ejecutable.o tst.o. las depeno a dencias de compilaci´n.34 Servidor Linux para conexiones seguras de una LAN a Internet Entramos en el directorio que se haya creado y all´ normalmente encontraremos algunos ficheros de ı documentaci´n especificos de cada paquete y los siguientes ficheros est´ndar: o a README INSTALL Es imprescindible leerlos. en ellos se especifica la documentaci´n del paquete. y recompilar s´lo los archivos qu´ registren cambios. Aqu´ encontraremos la o ı historia del paquete.o tst. Las dependencias son los archivos de los cuales el objetivo depende. ser´ necesario recompilar nuevamente su c´digo fuente.c gcc -c -o tstf. Para ilustrar esto veamos el siguiente ejemplo: tst: tst. La especificaci´n de las dependencias se da en un archivo llamado o Makefile y el programa que interpreta que lo interpreta y genera el ejecutable es Make.

entre las distintas fases de instalaci´n.11: Ejemplo de un archivo Makefile DEPTST=tst. las directivas: o $make check $make clean Por ultimo decir que dependiendo del tipo de paquete y los lugares del sistema donde deba escribir ´ puede ser necesario instalar el paquete mediante un usuario con m´s privilegios. Primeros pasos 35 En este tipo de archivos se suelen definir variables para ser utilizadas en las l´ ıneas de acciones.Cap´ ıtulo 4.o tst. en el interior de las acciones.o CFLAGS=-c -o Con estas modificaciones el archivo original quedar´ de la siguiente forma: ıa Cuadro 4. para ejecutar un objetivo concreto. Junio 2005.o tstf.c gcc $(CFLAGS) tstf. tambi´n es hau e bitual. Para ejecutar el Makefile: $make. . a Jose Antonio Escart´ Vigo.c gcc $(CFLAGS) tst. para ejecutar todos los objetivos. install.c Para abreviar tambi´n se pueden utilizar las construcciones especiales “$<” para referirse a las depene dencias y “$@” para referirse al objetivo. . y clean.o CFLAGS=-c -o tst: $(DEPTST) gcc -o tst $(DEPTST) tst. . Estas definiciones est´n al comienzo de los Makefiles y son del tipo: a DEPTST=tst. . . ın .o tstf. M´todo habitual de instalaci´n e o La mayor´ de los paquetes se instalan de la siguiente forma: ıa $.o: tst.o: tstf. $make <objetivo>./configure $make $make install Seg´n el archivo INSTALL podremos observar las necesidades concretas del paquete.c tstf.o tstf. Los objetivos habituales en los instaladores son: check. .

es/debian-non-US testing/non-US main contrib non-free #deb http://security.12: Opciones del comando dpkg Comando Descripci´n o #dpkg -i <paquete> Instala paquete #dpkg -r <paquete> Elimina paquete #dpkg --purge <paquete> Borra un paquete inclu´ ıdos los ficheros de configuraci´n o #dpkg -f <paquete> Muestra informaci´n de la versi´n del paquete o o #dpkg -c <paquete> Lista los ficheros contenidos #dpkg --contents <paquete> Lista los ficheros contenidos y sus directorios #dpkg --info <paquete> Informaci´n del paquete o #dpkg --unpak <paquete> Desempaqueta #dpkg --info <paquete> Informaci´n del paquete o #dpkg --force-help <paquete> Fuerza opciones #dpkg -L <paquetes> Lista el paquetes si est´ instalado a #dpkg -l Lista paquetes instalados #dpkg-reconfigure --all Reconfigura todos los paquetes #dpkg-reconfigure locales Reconfigura paquetes con la configuraci´n local. ftp y file (archivos locales).rediris.2.rediris. replica en Espa˜a de e n los paquetes Debian. a Cuadro 4. por ejemplo coloo ca paquetes en el idioma del sistema 4. Junio 2005.5.debian.rediris. a Cuadro 4.rediris.debian. ıa El archivo /etc/apt/sources. Apt: Gestor de paquetes Debian El programa APT (Advancd Packaging Tool) se encarga de manejar autom´ticamente las dependencias a de la paqueter´ del sistema. En la tabla 4.Official Snapshot i386 Binary-1 (20050225)]/ unstable contrib main main/debian-installer 3. APT sabe como interpretar l´ ıneas del tipo http. Jose Antonio Escart´ Vigo.es/debian testing main contrib non-free deb-src http://ftp. Para poder descargar los paquetes a trav´s de internet utilizamos ftp. Dpkg: Instalador de paquetes precompilados Si en vez de paquetes fuentes lo que tenemos es un paquete precompilado o binario utilizaremos el gestor de paquetes dpkg (Debian Package).es.0 r4 _Woody_ .org/ testing/updates main contrib non-free #Woody (stable) #deb http://ftp.Official i386 Binary-2 (20050102)]/ unstable contrib main non-US/contrib non-US/main non-US/non-free non-free 3.13: Ejemplo de /etc/apt/sources.es/debian unstable main contrib non-free #deb http://ftp.rediris.es/debian-non-US testing/non-US main contrib non-free deb-src http://ftp. En el siguiente cuadro podemos observar un archivo est´ndar del sources.es/debian-non-US unstable/non-US main contrib non-free El archivo puede contener varios tipos de l´ ıneas. ın .3.rediris.Official i386 Binary-1 (20050102)]/ unstable contrib main non-US/contrib non-US/main non-US/non-free non-free #Sarge (testing) deb http://ftp.5.list Como parte de su funcionamiento.rediris.0 r4 _Woody_ .12 se especifican las opciones m´s comunes.rediris.list deb deb deb deb cdrom:[Debian cdrom:[Debian cdrom:[Debian cdrom:[Debian GNU/Linux GNU/Linux GNU/Linux GNU/Linux testing _Sarge_ .36 Servidor Linux para conexiones seguras de una LAN a Internet 4.Official Snapshot i386 Binary-2 (20050225)]/ unstable contrib main main/debian-installer testing _Sarge_ .es/debian/ testing main non-free contrib deb http://ftp.org/ stable/updates main contrib non-free #Sid (unstable) #deb http://ftp.list.es/debian testing main contrib non-free #deb http://ftp. APT utiliza un archivo que contiene las “fuentes” en donde se encuentran los paquetes.es/debian-non-US testing/non-US main contrib non-free deb http://security.rediris.

que hay que instalarlo con dpkg) #apt-get build-dep <paquete> Descarga y compila las fuentes del paquete y descarga tambi´n los paquetes que dependen necesarios e para compilarlo. Primeros pasos La primera palabra de cada l´ ınea indica el tipo de archivo: deb.14 vamos a poder encontrar las opciones mas usuales que se pueden utilizar con el comando APT Cuadro 4. o a Si utilizamos la opci´n apt-cdrom solo tendr´ efecto si el CD-ROM esta bien configurado en /etc/fstab.Cap´ ıtulo 4.list n #apt-get update Actualiza la lista local de paqutes con el archivo /etc/apt/sources. indica un paquete pre-compilado (binario) deb-scr. indica c´digo original (fuentes) o Opciones ATP 37 En el cuadro 4. #apt-cache showscr <paquete> Muestra que paquetes son necesarios para compilar el paquete #apt-get -f install Reconfigura los paquetes mal instalados (puede ser necesario combinarlo con #dpkg --configure -a) La opci´n -u muestra la lista completa de los paquetes que se actualizar´n.14: Opciones del comando APT Comando Descripci´n o #apt-get install <paquete> Instala paquete # apt-get --reinstall install <paquete> Reinstala paquete o una nueva versi´n del mismo o #apt-get remove <paquete> Desinstala paquete #apt-get --purge remove <paquete> Desinstala paquete y borra sus archivos de configuraci´n o #apt-cdrom ident Identifica un CD #apt-cdrom add A˜ade un CD al /etc/apt/sources. Junio 2005. o a Jose Antonio Escart´ Vigo. ın .list #apt-get upgrade Actualiza a las ultimas versiones todos los paquetes del sistema #apt-get dist-upgrade Actualiza a la distribuci´n mas reciente o #apt-show-versions -u Muestra los paquetes del sistema que pueden ser actualizados #apt-cache search <nombre> Muestra los paquetes relacionados con nombre #apt-cache show <paquete> Muestra informaci´n de un paquete espec´ o ıfico #apt-cache showpkg <paquete> Muestra mucha m´s informaci´n del paquete a o #apt-cache depends <paquete> Muestra de qu´ paquetes depende e #apt-file search <archivo> Muestra a qu´ paquete pertenece el archivo e #apt-file list <paquete> Muestra los archivos del paquete #apt-file update Actualiza los paquetes de apt-file (como apt-get update) #apt-get source <paquete> Descarga las fuentes del paquete #apt-get -b source <paquete> Descarga y compila las fuentes del paquete (genera un .deb.

Buscar paquetes si tenemos una descripci´n o Si no conocemos el comando. cuando tenemos este tipo de paquetes es posible convertirlos a .org/testing/. $dpkg -S /usr/bin/nombre_comando Buscar paquetes padre de comandos no instalados En este caso hay que buscar en la p´gina de paquetes Debian.deb.pl? case=insensitive&arch=i386&version=testing&word=nombre_comando" Donde arch.38 Servidor Linux para conexiones seguras de una LAN a Internet 4. qu´ paquete/s tengo que instalar para que me funcione un comando. version y word se ajustan a las necesidades de nuestra b´squeda concreta.5.4.5. o $apt-cache search <paquete> Jose Antonio Escart´ Vigo. $dpkg -S <nombre_comando> Devuelve una lista de todos los paquetes que durante su instalaci´n crearon un archivo igual a nomo u bre comando. $dpkg -l "*cadena_caracteres*" Busca todos los paquetes que contienen la cadena cadena caracteres. Alien: Convertir paquetes . lo mejor es usar apt-cache search.rpm 4.deb (formato Debian) Existen muchas distribuciones basadas en Red Hat que utilizan el formato de paquetes .rpm a .org/cgi-bin/search_contents. a Tambi´n se puede utilizar el siguiente truco r´pido: e a $links -dump "http://packages. formato de Debian y instalable con dpkg.debian. Encontrar paquetes y sus dependencias En alg´n momento nos podemos encontrar que necesitamos saber de qu´ paquete proviene un archivo. se usa dpkg -S.5. Para ello utilizaremos la herramienta alien que convierte un tipo de paquete en otro. ın . pero sabemos su descripci´n. u e o lo m´s frecuente. u Buscar paquetes si sabemos su nombre parcial En este caso lo mejor es usar una de las opciones de dpkg -l. Si sabemos el directorio donde se encuentra podemos refinar la b´squeda. Junio 2005. a e Disponemos de apt-cache y dpkg para realizar estas tareas. Buscar paquetes padre de comandos instalados Si tenemos un comando instalado y no sabemos de que paquete proviene. #apt-get install alien $alien paquete. http://packages.rpm (Red Hat Package Manager).debian.

. En caso de no o encontrar el problema. Shells Un shell es un programa. . es recomendable probar a reinstalar el paquete: #apt-get remove <paquete> #apt-get install <paquete> Si esto tampoco funciona. . se puede forzar la reescritura de paquete con el comando: #dpkg -i --force-overwrite /var/cache/apt/archives/nombre_paquete . El shell predeterminado en la mayor´ de distribuciones Linux es bash (Bourne Again Shell). ejecutado por el usuario. Primeros pasos Buscar dependencias de un paquete Para conocer las dependencias e informaci´n de un paquete. Se puede probar a repetir varias veces estos dos comandos. corriendo el consiguiente riesgo. .6. ın . Problemas al instalar paquetes Cuando existe un problema de dependencias entre paquetes podemos utilizar los siguientes comandos para reconfigurarlos.5. y probar a reconfigurar los paquetes otra vez Estos comandos (dpkg --force-help) son utiles en determinadas ocasiones. completa y a conciencia de las salidas de los comandos anteriores se suele identificar el problema. . . .6. Por ultimo comentar el siguiente comando que tambi´n puede ser util en determinadas ocasiones: ´ e ´ # apt-get -s -t <rama_debian> install --reinstall <paquete> Donde -s simula la instalaci´n y -t unstable. para comprobar si tiene alguna incompatibilidad con nuestro sistema. o o 4. o #apt-get -f install. Comprueba problemas de configuraci´n. que le proporciona a este una interfaz interactiva con el sistema (una l´ ınea de comandos) para introducir datos o especificar programas que quiera ejecutar. pero hay que saber que ´ es lo que se quiere hacer de antemano y asumir las posibles consecuencias. . stable o testing especifica la distribuci´n Debian utilizada. Junio 2005. Reintenta la instalaci´n de paquetes que han dado problemas.Cap´ ıtulo 4. ıa Jose Antonio Escart´ Vigo. lo primero que hay que hacer es leer la documentaci´n que trae. o Realizando una lectura. Si existe un paquete que ha quedado mal instalado. o $apt-cache depends <paquete> La informaci´n que se nos mostrar´ es la siguiente: o a Depende: Paquetes que son necesarios para que funcione Sugiere: Paquetes recomendables Entra en conflicto: Paquetes incompatibles Reemplaza: Paquetes que quedar´n obsoletos a 39 4. #dpkg --configure -a. podemos usar el apt-cache depends.

la shell de Korn (implementada en casi todas las distribuciones como pdksh). o ´ Se pueden ejecutar varios comandos en la misma l´ ınea separ´ndolos por el caracter “. incluyen otro sucesor de Bourne. una shell parecida a bash pero de menor tama˜o. y zsh. Junio 2005.6.bash history. Algunas shells disponibles para sistemas Linux. Tiene un tama˜o n prefijado (normalmente 500 lineas) a partir del cual empieza a borrar las l´ ıneas antig¨as para u escribir las nuevas. Se puede recuperar un comando ya utilizado pulsando repetidas veces la flecha hacia arriba. que es tambi´n ideal para discos de arranque o rescate. y los scripts escritos para shells de la ıa familia Bourne. La shell bash. el shell rellena el resto de la ruta o nombre. encerr´ndolos entre comillas a invertidas (#kill ‘cat /var/run/named. Entre los sucesores de la shell C (csh) tenemos tsch. especialmente para aqu´llos que no est´n familiarizados con la sintaxis a ıcil e e C. Estas quedan descritas en los siguientes puntos: Escribiendo cd se va directamente al home del usuario. funciona entre ventanas de diferentes aplicaciones. Estaba dirigida a usuarios avanzados y a usuarios m´s familiarizados con la a e a sintaxis de la programaci´n en C. ın . y esa ruta o ese nombre son unicos entre ´ todas las opciones disponibles. e o Jose Antonio Escart´ Vigo.bash history. A menudo. en entorno X-Windows. ash.” a Permite incrustar comandos como parametros de otros comandos. En caso de que no sea unico emite un pitido de opci´n ambigua y si se pulsa por segunda vez la ´ o tecla TAB se muestra el rango de opciones disponibles. recomendada por encima de csh para aquellos que quieran usar este tipo de interfaz. La sintaxis para las variables de entorno var´ significativamente. normalmente no se pueden ejecutar en una shell C y viceversa. Cada una de ellas tiene ciertas caracter´ ısticas.1. Si se empieza a escribir una ruta o un nombre de archivo. cortando o y pegando en un script los comandos que funcionaron bien.pid‘) Existe un historial de comandos. El comando $history mostrar´ el contenido de . kiss. a Este hist´rico de comandos facilita la tarea de escribir scripts para la shell. con s´lo un car´cter m´s o a a tendremos una selecci´n unica otra vez. que se inscriben en la familia de shells Bourne.6. Tambi´n permite seleccionar textos usando el rat´n. La shell C proporciona una interfaz agradable. ideal n para disquetes de arranque. La shell C La shell C fue creada en principio para superar las limitaciones de la shell Bourne (como el soporte para c´lculos num´ricos). pero se considera que es o m´s dif´ hacer scripts para ella. Shell Bourne La shell Bourne es la m´s antigua de las shells modernas. Tipos de shell Existe varios shells para Linux. que queda almacenado en . 4. suele ser ejecutada por defecto a en todas las distribuciones Linux.2. si se pulsa la tecla TAB. ksh. Facilita la tarea de cortar y pegar.40 Servidor Linux para conexiones seguras de una LAN a Internet 4. Caracter´ ısticas de la shell Bash La shell bash contiene una serie de herramientas que facilitan la tarea del usuario. una shell muy parecida a la e shell de Korn. pero todas est´n clasia ficadas en dos ramas: la shell Bourne o la familia de shells C. otro int´rprete sencillo de shell (pero s´lo tiene comandos rudimentarios e o integrados). Sencillamente.

obtenida en [BB00] especifica las variables que encontraremos.Cap´ ıtulo 4.3. a en nuestro sistema. ın . y as´ seguir trabajando en esa consola: ı $comando & 4. as´ como sus valores utilizando los comandos: ı $printenv $env El comando printenv se diferencia de env por el hecho de que nos permite visualizar el valor de una variable en particular: $printenv <VARIABLE> Variables m´s comunes a La siguiente tabla.6. Si se utiliza el shell bash. o modificando los archivos de perfil. con la desventaja de que el valor s´lo ser´ v´lido en la sesi´n actual.4./<archivo_ejecutable> Desde una consola tambi´n podemos hacer que un proceso se ejecute en segundo plano a˜adi´ndole e n e un & al final.6. Variables de entorno Una variable de entorno es una cadena de caracteres con informaci´n de las diferentes opciones del o sistema asociada a un nombre simb´lico que pueda utilizar Linux. Ejecuci´n de procesos en la shell Bash o Para ejecutar un archivo que se encuentre en el directorio local. siendo que este directorio no se encuentra en el $PATH del sistema se emplea el siguiente m´todo: e $. m´s habitualmente. se puede encontrar m´s informaci´n sobre las variables de entorno que existen a o mediante el comando $man bash. Primeros pasos 41 4.profile se coloca la siguiente instrucci´n: o export VARIABLE_DE_ENTORNO=valor Jose Antonio Escart´ Vigo. Si utilizamos el shell bash el m´todo es el siguiente: e #VARIABLE_DE_ENTORNO=valor #export VARIABLE_DE_ENTORNO En caso de realizarlo mediante los archivos de perfil. o Visualizar contenido de variables Podemos visualizar las variables definidas. en el interior del /etc/profile o el ˜/. Asignar valores a variables de entorno Para definir una variable de entorno podemos hacerlo desde la l´ ınea de comandos. o a a o La forma de realizar esta asignaci´n desde la l´ o ınea de comandos depender´ del shell que estemos utia lizando. Junio 2005.

6.bash login y ˜/.bash logout del directorio del usuario.bashrc ubicado en el directorio del usuario. Junio 2005.profile ejecut´ndolos seg´n el orden indicado. LANGUAGE LC ALL. ın . cuando volvamos a cargar el entorno del usuario la variable tambi´n se cargar´. Al finalizar la ejecuci´n del shell se lee y ejecuta el archivo ˜/.profile: alias mv="mv -i" 1 En el caso de ejecutar un shell interactivo que no sea de entrada se lee y ejecuta el archivo ˜/.15: Variables habituales del sistema Descripci´n o Indica el editor por defecto utilizado por el sistema Es el n´mero de comandos que recuerda el shell. LC TYPE Cuadro 4. Si queremos que se ejecute algo al comienzo o final de cada sesi´n. Jose Antonio Escart´ Vigo.5.bash profile. a Resulta de gran utilidad realizar alguna modificaci´n a los comandos t´ o ıpicos para evitar da˜os no n deseados en el sistema o a˜adir las opciones que mas utilizamos.42 Servidor Linux para conexiones seguras de una LAN a Internet Variable EDITOR HISTSIZE HOME HOSTNAME HOSTTYPE LANG LOGNAME MAIL OSTYPE PATH SHELL PWD TERM USER PATH PS1 LANG. o o a u o ˜/. o a˜adir nuevas variables de sistema. Podemos acceder a los comanu dos utilizando los cursores arriba y abajo Determina el directorio de trabajo del usuario actual Indica el nombre del ordenador o host en el cual estamos trabajando Especifica el tipo o arquitectura del ordenador Esta variable se emplea para indicar el idioma utilizado Nombre del usuario actual Directorio en el cual se almacena el correo entrante Sistema operativo en uso Trayecto o ruta de b´squeda de los archivos ejecutables u Nombre del shell actualmente en uso Path de inicio Tipo de terminal utilizado en la sesi´n de trabajo actual o Nombre de usuario Conjunto de directorios donde se buscan los comandos Especifica el aspecto del s´ ımbolo de prompt del sistema Especifica el est´ndar de lenguaje que se utiliza en la m´quina a a Especifica el est´ndar de lenguaje para las configuraciones locales a Eliminar variables de entorno Para eliminar variables desde la l´ ınea de comando se ejecutar´ una instrucci´n diferente dependiendo a o del shell sobre el que trabajemos. Un ejemplo de esto ser´ colocar en el n ıa archivo ˜/. o e a 4. En el shell bash se realiza de la siguiente forma: #unset VARIABLE_DE_ENTORNO Tambi´n es posible utilizar el comando env con la -u: e #env -u VARIABLE_DE_ENTORNO Hay que tener en cuenta que si la variable se encontraba contenida en uno de los archivos de configuraci´n de perfil. o n elegiremos el archivo a modificar que m´s convenga a nuestros objetivos. Configuraci´n del entorno o Cuando se inicia una sesi´n de trabajo el int´rprete de comandos bash lee y ejecuta de forma autom´tio e a ca las ´rdenes del archivo /etc/profile. A continuaci´n1 busca los archivos del usuario ˜/.

a a $ls > listado 2>/dev/null. o $ls -l /bin >>listado De forma similar. De no indic´rseles un fichero. Redireccionamientos Para redireccionar a un archivo la salida normal de un script. para ello se utiliza la redirecci´n(<). o dispositivo de error est´ndar a Dispositivo /dev/null: Todo lo que se redirecciona a este dispositivo se pierde Estos dispositivos est´ndar tambi´n pueden ser redireccionados con: “>” y “<”. al menos que los modifiquemos a a mano: Dispositivo 0: stdin. . Junio 2005. o $cat < listado Canales est´ndar a En Linux existen una serie de canales est´ndar que nunca cambian. . la salida y el error se redireccionan a listado2. Filtros o pipes Los filtros o pipes son un mecanismo por el cual la salida de un programa se puede enviar como entrada a otro programa. paginan la entrada est´ndar. Los programas individuales se pueden encadenar juntos para convertirse en unas herramientas extremadamente potentes. Podemos ver esto con un ejemplo: $env | grep "SHELL".6.6. . . toma como entrada listado. de forma que m´s tarde se puedan ver a los resultados. Esto se puede observar a e en los siguientes ejemplos: $ls > listado 2>&1. . . a $cat < listado 2>&1 listado2. o $ls -l >listado Si se quiere a˜adir los resultados de la salida de un comando al final de un archivo.Cap´ ıtulo 4. se utiliza la redirecci´n (>). redirecciona la salida est´ndar al archivo listado y descarta errores. . . . ´ a a a 4. se utiliza la redin recci´n (>>). el comando env lista las variables y filtramos la variable “SHELL”. . o dispositivo de salida est´ndar a Dispositivo 2: stderr. se pude redireccionar la entrada. Se diferencian en las facilidades que a a Jose Antonio Escart´ Vigo. Los comandos more y less paginan (dividen en p´ginas) uno o varios ficheros y los muestran en la a terminal. ın . o dispositivo de entrada est´ndar a Dispositivo 1: stdout. pidiendo confirmaci´n por defecto y a o con el ultimo se crear´ un comando nuevo que llamar´ a ls pero con m´s opciones. . redirecciona la salida est´ndar y el error est´ndar al archivo listado. . Primeros pasos alias cp="cp -i" alias rm="rm -i" alias dir="ls -alF" 43 Con los tres primeros comandos se redefinir´ el comando base.

a Esto es muy util para tener una consola virtual de root con m´xima prioridad. Junio 2005. En cada consola virtual que se utiliza es necesario logearse como usuario del sistema. . . ALT-F6 En modo gr´fico: CTRL-ALT-F1 . Proveen una serie de comandos para moverse con facilidad dentro del texto paginado: q: permite interrumpir el proceso y salir /p: realiza b´squedas del patr´n p dentro del texto. . en varias consolas virtuales. y estos ser controlados por usuarios diferentes. ın . Tambi´n podemos finalizar alg´n proceso o e e u aplicaci´n que haya podido bloquear otra consola.7. n l´ a ıneas. se pueden ejecutar diversos procesos simult´neaa mente. o Jose Antonio Escart´ Vigo. no as´ less. Tambi´n more ´ a ı e muestra sucesivamente el porcentaje del fichero visto hasta el momento. evitando de esta forma tener que reiniciar el sistema. . si el sistema se ralen´ a tiza. Consolas virtuales Al ser Linux un sistema multiusuario y multitarea. Cuando se alcanza el final del ultimo fichero a paginar. n b: en more permite regresar n p´ginas (por defecto n es 1). podremos observar por qu´ esta pasando y remediarlo. Para cambiar de consola: En modo texto: ALT-F1 . CTRL-ALT-F6 para consolas de texto y CTRL-ALT-F7 para a volver al modo gr´fico. mientras que less a no limita este aspecto pues acepta el empleo de todas las teclas de movimiento tradicionales. Para repetir la b´squeda del mismo patr´n s´lo u o u o o es necesario escribir /. 4. Por ejemplo more es m´s restrictivo en cuanto al movimiento dentro del texto. a n f: en more se adelantan n p´ginas y en less.44 Servidor Linux para conexiones seguras de una LAN a Internet brindan. more termina autom´ticamente.

Se encarga de la administraci´n a o de la memoria. Para hacerlos m´s utilizables. Una vez a instalado s´lo es necesario actualizar el gestor de arranques y reiniciar. Proporciona todos los servicios u b´sicos requeridos por otras partes del sistema operativo y aplicaciones. o Son kernels bastante est´ndar y adaptados a distribuciones Debian. Como en cualquier aplicaci´n. Soporte a elementos de hardware no encontrado en kernels viejos. e a . de tal forma que s´lo se usan cuando se e o necesitan. siendo necesario insertarlos o a en ´l ya sea durante el proceso de arranque o posteriormente. estable y robusto a a 2. dando flexio o bilidad al sistema. desaprovecha los recursos del sistema. Recompilar el kernel de Linux no es m´s que personalizar el kernel. o o o 5.1. a o la personalizaci´n se hace para sacar un mayor provecho de las diferentes caracter´ o ısticas que ofrece el software. sin utilizar innecesariamente la memoria Ram del sistema. La actualizaci´n del kernel se divide en dos partes: compilaci´n e instalaci´n del nuevo kernel. Soporte a caracter´ ısticas especiales disponibles pero no habilitadas en kernels viejos. Los m´dulos no est´n enlazados directamente en el kernel.Cap´ ıtulo 5 Kernel El kernel o n´cleo es una de las partes esenciales de un sistema operativo. ¿Por qu´ compilar? e Hay diversas razones para recompilar el kernel de Linux. usando el mismo ordenador. El kernel 2. ıa Las distribuciones Linux vienen con kernels que necesitan ser instalados en una amplia variedad de escenarios de configuraciones de sistem´s y hardware.2. por lo tanto dan soporte a muchos dispositivos y a hardware que no necesitamos. los procesos y los discos. a Este m´todo es r´pido y sencillo pero es muy ineficiente. 3. 5. Recompilar el kernel es una buena idea y dar´ como resultado un kernel a m´s peque˜o y r´pido. Kernel-image La manera m´s sencilla de obtener un nuevo kernel es instalar un paquete kernel-image.deb.3. el o mismo kernel deber´ servir para otras distribuciones.6 es m´s r´pido que los kernels anteriores y tiene soporte para nuevos a n a a a dispositivos. a a incluyen soporte para todo tipo de hardware e idiom´s imaginados. Acerca de los m´dulos o Varias partes de c´digo del kernel pueden compilarse por separado en forma de m´dulos. Es util por qu´ trabajando con kernels nuevos ´ e generalmente se obtiene: 1. El kernel es independiente de la distribuci´n Linux utilizada. Un sistema m´s r´pido. 5.

6" 5.fecha es la fecha u o en la que se est´ compilando el kernel. #tar jxvf /usr/src/kernel-source-2. . Para evitar da˜ar el sistema con o n posibles errores se utilizar´ el paquete fakeroot que proporciona un entorno de root falso.6. En la p´gina del manual se describen las opciones del paquete fakeroot. adaptado a la distribuci´n Debian. Averiguar el nombre del kernel-source m´s actual. Crear un enlace simb´lico. Kernel-source Es un paquete de c´digo fuente del kernel oficial.2. a $links -dump "http://packages. hay que introducir los siguientes comandos: $fakeroot make-kpkg clean $fakeroot make-kpkg -version .4.org/cgi-bin/search_contents. o para el menu gr´fico.list) con nuestra distribuci´n.8 linux o 8.bz2 7.4.5).tar. Descargar la nueva versi´n del kernel-source (se descarga en el directorio /usr/src/). donde poder a compilar el kernel. o #apt-get install kernel-source-2. #apt-get install links 4. en la secuencia del usuario y . los binarios no suelen contener configurados correctamente todos a a los dispositivos del sistema. #apt-get update 3. #ln -s kernel-source-2. La documentaci´n se puede encontrar en /usr/share/doc/kernel-package/.deb. Descomprimir el kernel-source. Cargar las fuentes de Apt (/etc/apt/sources. Kernel-source es o o mucho m´s vers´til que kernel-image.fecha kernel_image Donde version es el n´mero de la versi´n del kernel. Instalar un kernel-source Para saber cual es la version m´s actual podemos utilizar la siguiente secuencia de comandos: a 1.4. Cargar el paquete links. pero al haber optado por las herramientas Debian la opci´n m´s o o a coherente es crear un paquete. o Jose Antonio Escart´ Vigo. .8 6. 5. o .13 del cap´ ıtulo anterior 2. Ejecutar el menu de configuraci´n para el menu texto.6. #usr/src/linux/make menuconfig. o compilar el kernel como si fueran las fuentes oficiales (Apartado 5.6. como se puede ver en o el ejemplo 4.46 Servidor Linux para conexiones seguras de una LAN a Internet 5. 5.deb Usaremos la herramienta make-kpkg de Debian para crear el paquete .deb con nuestro kernel. De esta forma tendremos claramente identificado la versi´n del a o kernel y la fecha de la compilaci´n. descrito en el apartado siguiente.debian. Esto queda a elecci´n del usuario. en el ejemplo a se muestra el m´todo m´s simple: e a Para crear el kernel-image.8. Crear un paquete .pl? case=insensitive&arch=i386&version=testing&word=kernel-sourse-2. ın .1. Junio 2005. #usr/src/linux/make xconfig a 9. Elegir las opciones que queramos implementar en el kernel Una vez completadas estas instrucciones podemos elegir entre dos alternativas: o crear un paquete . Actualizar el Apt con las nuevas fuentes.

6 Antes de realizar el proceso de compilaci´n de un kernel de la serie 2. Compilar Kernel Las fuentes oficiales del kernel m´s actual las podemos encontrar en http://www. Paquetes necesarios Para poder compilar el kernel necesitamos tener los siguientes paquetes instalados. El proceso o automatizado que comprueba las versiones se encuentra implementado en el scrip: /usr/src/linux/scripts/ver_linux Jose Antonio Escart´ Vigo.6 es necesario que actualizeo mos nuestro sistema con las ultim´s versiones de los paquetes que se detallan en el cuador 5. Para la seguridad y asegurarnos que no da˜amos involuntariamente el sistema se puede creer un usuan rio capaz de actuar con los archivos fuentes.2. Junio 2005.org.6. n a #gpasswd -a josan src 5.kernel. Kernel Para instalar el paquete: #dpkg -i kernel-image-2. Para eso se a˜adir´ al grupo src.5. Paquetes b´sicos a Cuadro 5.deb 47 Una vez terminado solo es necesario actualizar el gestor de arranque con el nuevo kenel y reiniciar (Como se puede observar en el apartado 4.5.1.Cap´ ıtulo 5. seg´n el formato e u del kernel descargado. Las desa cargamos al directorio /usr/src/ y las descomprimimos empleando el m´todo adecuado.050518_i386.1.2 del cap´ ıtulo anterior).0 libncurses5-dev fakeroot Paquetes kernel 2. es necesario realizar su instalaci´n mediante apt-get. ´ a Si alguno no lo tenemos instalado. 5.1: Paquetes b´sicos a gcc kernel-package libc6-dev tk8.8_Version. ın .

jfs -V #reiserfsck -V #xs_db -V #cardmgr -V #quota -V #pppd --version #isdnctrl 2>&1|grep version #showmount --version #ps --version #oprofiled --version 5. M´todo de compilaci´n e o En el cuadro 5.21 3.1pre1 1. . Junio 2005.5.6 Paquete Gnu C Gnu make binutils util-linux module-init-tools e2fsprogs jfsutils reiserfsprogs xfsprogs pcmcia-cs quota PPP isdn-utils nfs-utils procps oprofile Version necesaria 2.1. Se puede encontrar en la direcci´n: e o o http://www.3 Comando comprobar versi´n o #gcc --version #make --version #ld -v #fdformat --version #depmod -V #tune2fs #fsck.10 1. o El m´todo descrito es una gu´ est´ndar para compilar el kernel. en el que e me bas´ para realizar la compilaci´n del kernel. si o queremos comprobar que hace el Makefile lo podemos encontrar en. Suele ser a necesario descargar los drivers y parchear el kernel para que les de soporte.1.4.html Jose Antonio Escart´ Vigo. o 5.5 3. Al comenzar el usuario se encuentra abrumado ante tal cantidad de opciones. averiguar las correctas es cuesti´n de disponer de las especificaciones del hardware y paciencia.0 3.digitalhermit. Una vez tenemos descargadas las fuentes en /usr/src/.95.12 2.0 3.com/linux/Kernel-Build-HOWTO.3. Normalmente.5.09 2.29 1.2. /usr/src/linux/arch/i386/Makefile.2). instala una serie de utilidades para hw $/bin/lspci. los fabricantes de software incluyen manuales de instalaci´n que simplifican esta tarea. .3 3. . Esto se realiza mediante el paquete fakeroot.6. El m´todo descrito en este apartado es un resumen del documento Kernel-Build-HOWTO.48 Servidor Linux para conexiones seguras de una LAN a Internet Cuadro 5. para mayor seguridad. que da acceso a recursos pero no permite modificaciones del sistema.78 2.0. . como se ha explicado anteriormente (secci´n 5.1.5.3 3. Es un trabajo e e laborioso y que requiere bastante pr´ctica.4.10 0.13 0. . lista detalles sobre la CPU reconocida En caso de que no reconociera alguno. es necesario estudiar m´s a fondo el problema concreto. compilar en kernel en un entorno simulado. ın .3 se describe el m´todo que utilic´ para compilar el kenel del servidor. ya que cada hardware tiene sus propias caracter´ o ısticas. la elecci´n de los m´dulos a colocar e ıa a o o en el kernel se deja a elecci´n del usuario. .2: Paquetes necesarios para compilar kernel 2.3 2. Comprobar el hardware disponible Para comprobar que todos los dispositivos que tenemos son reconocidos vamos a ejecutar una serie de comandos: #apt-get install hardinfo. Es muy recomendable.1. informa sobre los dispositivos disponibles $cat /proc/cpuinfo. es necesario realizar varias recompilaciones para ajustar las a opciones del kernel.9.

conf #/sbin/lilo #/sbin/lilo -R <Nombre_del_arranque_en_lilo> 5.map /boot/System.map-VERSION_KERNEL #ln -s /boot/System.. ın .5.. raid. Consejos para la configuraci´n del kernel o Hay que tomarse todo el tiempo necesario con xconfig o menuconfig. es preciso asegurarse que los parches coinciden con la versi´n de nuestro kernel. Se recomienda usar los m´dulos siempre que sea posible.save #make mrproper #make menuconfig (menu texto) o #make xconfig (menu gr´fico) a #make #make #make #make #make dep clean bzImage modules modules_install #cp arch/i386/boot/bzImage /boot/bzImage-VERSION_KERNEL #rm /boot/System.map #vi /etc/lilo.).5. nic. Junio 2005.map Creamos el nuevo enlace a System. etc.tar.5. Kernel 49 Acci´n o Nos situamos en el directorio Si existe enlace /usr/src/linux Descomprimimos el kernel Creamos un enlace simbolico a las fuentes del nuevo kernel Entramos en el directorio de las fuentes Cambiar a usuario root Salvamos el archivo antiguo de configuraci´n del kernel o Borramos los mensajes de compilaciones anteriores Entramos en el men´ de configuu raci´n o Agregamos dependencias Borramos datos innecesarios Compilamos el kernel Compilamos los m´dulos o Instalamos los m´dulos en el kero nel Copiamos a /boot el kernel Borramos el antiguo enlace a System. Si no se est´ seguro de que elegir resulta de gran ayuda consultar la documentaci´n. es necesario ejecutar los parches con el siguiente comando: #/usr/src/linux/patch -p1 < [ruta_del_pache]/parche_a_aplicar Con esto conseguiremos aplicar los parches sobre las fuentes del kernel.map-VERION_KERNEL /boot/System. n a a a o Jose Antonio Escart´ Vigo.6. Aseg´rarse de incluir todo lo u imprescindible y quitar todo lo que no (m´dulos para dispositivos zip. en caso contrario no funcionar´n. tarjeta de o sonido.6.map Configuramos el gestor de arranque Cargamos el nuevo arranque Marcamos que reinicie con el nuevo kernel Cuadro 5.4.map #cp System.3: Compilaci´n del Kernel o Comando $cd /usr/src rm linux $tar zxvf linux-2.Cap´ ıtulo 5.11. video. o a 5.config config. Parchear el kernel Los parches del kernel son la forma de a˜adir caracter´ n ısticas especiales al kernel. soporte usb. Antes de lanzar #make menuconfig o #make xconfig.11 linux $cd linux $su root #cp .gz $ln -s linux-2.map Copiamos el archivo System. esto hace al kernel m´s o a peque˜o y m´s r´pido.

.

o Sin embargo. Tambi´n establece un conjunto de funciones de programaci´n a e o bien definidas que podr´n ser llamadas para realizar la manipulaci´n b´sica de las ventanas. suministra protocolos de red para realizar esta funci´n. pero se visualicen en otra distinta. Las “X” simplemente definen el m´todo por el cual se pueden comunicar e las aplicaciones con el hardware gr´fico. ıa El protocolo es abierto. La interfaz que se presenta al o a usuario es independiente del n´cleo del sistema operativo. En realidad X-Windows en su estado natural no tienen apariencia real. se tiene que volver a arrancar.1. se pude matar el proceso y reiniciarlo sin afectar al resto de servicios del sistema (tales como servicios de archivos. indepenediente del sistema o o a operativo llamado X-Windows.1. mediante e la incorporaci´n de la implementaci´n XFree86 del est´ndar X11 del sistema X-Window.1. lo cual significa que cualquiera puede escribir un cliente X o un servidor X. X-Window A mediados de 1980 se cre´ una fundaci´n para entornos de usuario gr´fico. lo m´s importante de esta decisi´n es la estabilidad que implica tener este programa a o independiente del n´cleo. a o 6. u El n´cleo de Linux (su kernel) est´ completamente desacoplado de la interfaz gr´fica. El o ıan control de la apariencia se delega en otro programa externo llamado gestor de ventanas. pero a cambio contaba con la desventaja de ofrecer un dise˜o n que parec´ como hecho “a trozos”. Una de las mejores caracter´ ısticas de X-Windows es que permite que las aplicaciones se ejecuten en una m´quina. en lugar de tener que seguir el dictado de alguien a o o de la potencialmente aleatoria “investigaci´n de mercado”. Bajo u Linux. 6. o de red). a o a La definici´n b´sica de c´mo se dibuja una ventana. 1 Interfaz 2 Instituto gr´fica de usuario a Tecnol´gico de Massachusetts o . creado por el o o a MIT2 . . Esto permite u a a seleccionar la interfaz con la que nos resulte m´s c´moda. un bot´n o un icono no incluye la definici´n de o a o o o c´mo estos se deber´ ver. Configuraci´n X-Windows o Linux ofrece la funcionalidad de poder ejecutar aplicaciones a trav´s de una red heterogenea. Con los entornos de programaci´n y las interfaces de usuario tan poco amigables X-Windows ten´ el o ıa potencial de convertirse en la interfaz final.Cap´ ıtulo 6 Interfaz gr´fico a En los sistemas Linux se tiene una visi´n diferente del entorno gr´fico. Si cae el GUI1 bajo Windows o MacOS.

Esto generar´ el archivo o a de configuraci´n /etc/X11/XF86Config-4. Junio 2005. . Al trabajar directamente con el hardware. con XFree86 v4. xf86Config Es el configurador de X-Windows para Debian. a o a Actualmente XFree86. Hay que asegurarse de que se dispone de hardware apropiado para ejecutar XFree86. Despu´s de leer los archivos /usr/X11/lib/doc. o Secci´n Modules o Se proporciona soporte para varios servicios mediante m´dulos de carga din´mica. No se debe utilizar este archivo copiado y sin revisar. para modo texto #xf86cfg. Es necesario inspeccionar el archivo en busca de valores err´neos. a que se ha adaptado a los sistemas basados en Intel. para modo gr´fico a A continuaci´n. y en los servicios que los usuarios eligen usar en realidad. en la mayor´ de las configuraciones est´ndar de hardware. se seleccionan las especificaciones de la tarjeta y el monitor. XFree86 ha sido una de las partes m´s complejas de Linux en lo referente a instalaci´n o a o y configuraci´n. se encuentra en el est´ndar X11R6. se podr´ da˜ar f´ ıa n ısicamente el ordenador. de otro sistema. otro ordenador o el ejemplo que se expone mas adelante. arrancar o el monitor con frecuencias no soportadas podr´ da˜ar el equipo. Ahora las o ıa a distribuciones m´s populares de Linux lo instalan y configuran autom´ticamente. o Si no arranca ha llegado el momento de adentrarse en el archivo XF86Config-4. el servidor X que usa Linux normalmente. . puede que sea necesario configurar manualmente XFree86. o Para probar la configuraci´n ejecutamos #startx. Archivo /etc/X11/XF86Config-4 Si se dispone de hardware poco frecuente. a a a algunas de las partes m´s complejas de la configuraci´n son gestionadas autom´ticamente. hay que e ejecutar uno de los siguientes comandos: #xf86config. Jose Antonio Escart´ Vigo. las definiciones de las fuentes y bibliotecas de m´dulos. si no fuera compatible.4. . ıa n El archivo de configuraci´n est´ dispuesto en secciones con el siguiente formato: o a Section "Nombre de la seccion" Comando1 "Opcion" Comando2 "Opcion" Subsection "Nombre de la subseccion" Comando3 "Opcion" EndSubSection EndSection A continuaci´n paso a detallar cada una de las secciones que contiene el archivo de configuraci´n: o o Secci´n Files o Est´ secci´n define los archivos y directorios importantes para XFree86. . se debe tener una tarjeta de v´ ıdeo que disponga de un chipset soportado y un monitor que permita la frecuencia escogida. Esto aumenta mucho o a la flexibilidad en el modo de suministro de servicios. .52 Servidor Linux para conexiones seguras de una LAN a Internet Hist´ricamente. Ya no es este el caso. Las rutas de acceso a la base a o de datos de color (RGB). ın . Adem´s. .

pero no implica que est´ usando en o e e realidad. . Tampoco asocia al monitor con una tarjeta de v´ ıdeo. o el n´mero de bits de color o e u por pixel. Junio 2005. como soporte e a TrueType. Dentro de esta secci´n se encuentran una o m´s subsecciones Display. ) tiene su propia secci´n InputDevice. La secci´n ServerLayout asociar´ este dispositivo con una presentaci´n en pantalla. . Interfaz gr´fico a 53 De este modo. teclado. Cada dispositio vo (rat´n. pero hacen que XFree86 sea enormemente flexible. o se usar´ la profundidad de color predeterminada. o Secci´n InputDevice o Es una de las muchas secciones que puede repetirse en el archivo de configuraci´n. s´lo que est´ disponible. La profundidad de color puede configuarse usando la opci´n de la a e o a o l´ ınea de comandos --depth. o a o Define simplemente un dispositivo de entrada disponible. Como con muchas de las otras secciones. Secci´n Monitor o Esta secci´n define un monitor que est´ disponible para su uso. o El comando Driver indica a XFree86 qu´ m´dulo cargable debe usar para este dispositivo. Secci´n Screen o Esta secci´n combina un Monitor y un Device. Estas subsecciones definen las o a combinaciones de profundidad de color/resoluci´n para esta pantalla. Los m´dulos pueden cargarse usando el comando Load o usando una SubSection. Despu´s de seleccionar una pantalla usando una o e presentaci´n o la opci´n de la l´ o o ınea de comandos --screen.Cap´ ıtulo 6. Esto se har´ en la secci´n Screen. para crear una o pantalla l´gica. El uso de una o SubSection activa las opciones que se quieren pasar al m´dulo. Al igual que que la mayor´ de las secciones. o a o Secci´n Device o Esta secci´n define una tarjeta de v´ o ıdeo. la e o a ıa secci´n Device usa un comando Identifier para nombrar a este dispositivo. Tambi´n suministran el tama˜o de o e n los espacios de visualizaci´n o de la pantalla virtual. tambi´n se proporciona un mecanismo m´s general para ofrecer servicios. a Secci´n ServerLayout o Esta secci´n define una presentaci´n de pantallas y de dispositivos de entrada. no implica que el dispositivo se est´ usando. o Todos estos rodeos pueden hacer parecer el sistema confuso. Cada a o secci´n Monitor tiene un comando Identifier para nombrarlo. Si se definen varias pantallas. es mucho m´s f´cil definir las a a configuraciones multipantalla. las opciones indicar´n a XFree86 d´nde se encuentra a a o f´ ısicamente una con relaci´n a la otra. definidos en las secciones anteriores. Se puden definir una o o o m´s pantallas. e o Los controladores de dispositivos suelen aceptar multitud de opciones. ın . Por ejemplo: o Section "ServerLayout" Identifier Screen Screen Screen EndSection "Main Layout" "Screen 1" 0 "Screen 2" 1 RighOf "Screen 1" "Screen 3" Relative "Screen 1" 2048 0 Jose Antonio Escart´ Vigo. que antes suministraban programas externos. No implica que este dispositivo de hecho se use. pantalla t´ctil. Al definir el monitor independiente de la tarjeta de v´ ıdeo. la profundidad de color de ese momento determinar´ qu´ visualizaci´n se usar´. Tambi´n define una profundidad de color predeterminada. .

moviendo las ventanas alrededor de ellos sin fragmentarlas. se pueden tratar varios monitores como si fuese un o unico espacio de trabajo. If you have edited this file but would like it to be automatically updated again. we can fall back on these FontPath "/usr/lib/X11/fonts/misc" FontPath "/usr/lib/X11/fonts/cyrillic" FontPath "/usr/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/lib/X11/fonts/Type1" FontPath "/usr/lib/X11/fonts/CID" FontPath "/usr/lib/X11/fonts/Speedo" FontPath "/usr/lib/X11/fonts/100dpi" FontPath "/usr/lib/X11/fonts/75dpi" EndSection Section "Module" Load "GLcore" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "record" Load "speedo" Load "type1" Load "vbe" EndSection Section "InputDevice" Identifier Driver Option Option Option Option EndSection "Generic Keyboard" "keyboard" "CoreKeyboard" "XkbRules" "xfree86" "XkbModel" "pc105" "XkbLayout" "es" Jose Antonio Escart´ Vigo.custom md5sum /etc/X11/XF86Config-4 >/var/lib/xfree86/XF86Config-4. no puede tener ventanas que est´n solapadas entre varios monitores. Xinerama ha de ser ´ soportado por el gestor de ventanas. o Ejemplo de un archivo /etc/X11/XF86Config-4 Cuadro 6. Edit this file with caution. Screen 2 se encuentra justo a la derecha de ı a Screen 1. los comentarios que se encuentran en el archivo de configuraci´n son bastante clarificadores.md5sum dpkg-reconfigure xserver-xfree86 Section "Files" FontPath "unix/:7100" # local font server # if the local font server has problems. and see the XF86Config-4 manual page.1: Archivo /etc/X11/XF86Config-4 # # # # # # # # # # # # # # # # # # XF86Config-4 (XFree86 X Window System server configuration file) This file was generated by dexconf. Si se necesita investigar estas opciones. Junio 2005.) This file is automatically updated on xserver-xfree86 package upgrades *only* if it has not been modified since the last upgrade of the xserver-xfree86 package. ın . using values from the debconf database. run the following commands as root: cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4. the Debian X Configuration tool. en mi caso que uso Enlightenment si se puede. e Al usar un nuevo m´dulo llamado Xinerama. Secci´n ServerFlags o Esta secci´n define varios indicadores de opci´n de Xfree86. Las configuraciones predeterminadas pao o ra estos indicadores son v´lidas en casi todas las situaciones y necesitar´n modificaciones en contadas a a ocasiones. y Screen 3 esta 2048 pixels a la derecha de Screen 1. Esto le permite distribuir sus ventanas en varios monitores y moverse entre ellos con facilidad. de manera predeterminada. Sin embargo. (Type "man XF86Config-4" at the shell prompt.54 Servidor Linux para conexiones seguras de una LAN a Internet Aqu´ se muestra que Screen 1 est´ arriba. a la izquierda.

Cap´ ıtulo 6. ın . . para editar el archivo. Junio 2005. Arrancar X-Windows Para entrar en el entorno X-Windows simplemente es necesario ejecutar: $startx Para poder elegir entre que sistema de ventanas queremos arrancar tenemos que modificar el archivo de configuraci´n de usuario ˜/. . A˜adir las siguientes l´ n ıneas para arrancar KDE: #!/bin/sh startkde Jose Antonio Escart´ Vigo.2. o $vi ~/. Interfaz gr´fico a 55 Section "InputDevice" Identifier Driver Option Option Option Option Option EndSection Section "InputDevice" Identifier Driver Option Option Option Option Option EndSection Section "Device" Identifier Driver Option EndSection Section "Monitor" Identifier HorizSync VertRefresh Option EndSection "Configured Mouse" "mouse" "CorePointer" "Device" "Protocol" "Emulate3Buttons" "ZAxisMapping" "/dev/psaux" "PS/2" "true" "4 5" "Generic Mouse" "mouse" "SendCoreEvents" "Device" "Protocol" "Emulate3Buttons" "ZAxisMapping" "true" "/dev/input/mice" "ImPS/2" "true" "4 5" "Generic Video Card" "vesa" "UseFBDev" "true" "Generic Monitor" 28-50 43-75 "DPMS" Section "Screen" Identifier "Default Screen" Device "Generic Video Card" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "1600x1200" "1280x1024" EndSubSection SubSection "Display" Depth 4 Modes "1600x1200" "1280x1024" EndSubSection SubSection "Display" Depth 8 Modes "1600x1200" "1280x1024" EndSubSection SubSection "Display" Depth 15 Modes "1600x1200" "1280x1024" EndSubSection SubSection "Display" Depth 16 Modes "1600x1200" "1280x1024" EndSubSection SubSection "Display" Depth 24 Modes "1600x1200" "1280x1024" EndSubSection EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" InputDevice "Generic Mouse" EndSection Section "DRI" Mode EndSection "1280x960" "1152x864" "1024x768" "800x600" "640x480" "1280x960" "1152x864" "1024x768" "800x600" "640x480" "1280x960" "1152x864" "1024x768" "800x600" "640x480" "1280x960" "1152x864" "1024x768" "800x600" "640x480" "1280x960" "1152x864" "1024x768" "800x600" "640x480" "1280x960" "1152x864" "1024x768" "800x600" "640x480" 0666 6.xinitrc.1. .xinitrc.

2. Jose Antonio Escart´ Vigo. redimensionadas o movidas. o 6. o bien en NeXTSTEP. Posiblemente es el m´s configurable de todos. aunque no todos est´n aqu´ existen muchos a a ı. Junio 2005. a a fvwm2: F Virtual Windows Manager. AfterSTEP: Emula la interfaz NeXT y est´ basado en fvwm2. blackbox: Tambi´n inspirado en NeXT. a lo largo de los a˜os han aparecido n muchos. Su prop´sito principal es controlar la forma en que las ventanas gr´ficas o a son posicionadas. pero puede ser usado sin ´l. Es muy grande. Es un muy ligero y r´pido. a wmaker: WindowMaker. pero muy atractivo a la vista. S´lo se requiere usar las llamadas est´ndares al subsistema X-Windows para dibujar o a sobre la pantalla.56 Servidor Linux para conexiones seguras de una LAN a Internet A˜adir las siguientes l´ n ıneas para arrancar GNOME: #!/bin/sh gnome-session Si el archivo no est´ vac´ probablemente la ultima l´ a ıo. ın . muy completo y altamente configurable. e a Enlightenment: Era el gestor predeterminado de GNOME. a Sawfish: Enormemente configurable. forman parte del entorno de escritorio o. el comportamiento del foco. ´ ınea sea un comando exec. Mua chos gestores estan basados bien en el Tab Window Manger. Es necesario cambiarlo por la opci´n que hayamos escogido. Se est´ convirtiendo e a r´pidamente en uno de los gestores con m´s aceptaci´n. un administrador de ventanas muy simple y que consume pocos recursos. gestor de ventanas minimalista que proporciona el conjunto de utilidades m´s b´sico de cualquier otro. Paso a describir las caracter´ ısticas de los m´s extendidos. blackbox y AfterStep. Controlan las barras de t´ ıtulos. que se sienten m´s a gusto con un interfaz de l´ a ınea de comandos. a a o Kwin: El gestor de ventanas KWin es el gestor por defecto para el entorno KDE. complet´ ısimo gestor de ventanas GNU diseado para emular el aspecto del entorno NeXT. Es uno de los mas extendidos. Gestores de ventanas El gestor de ventanas se preocupa de dibujar los bordes. Soporta temas personalizados. los v´ ınculos del bot´n del rat´n y teclas especificadas por el usuario. Esto o o significa que los programadores de aplicaciones tienen la flexibilidad adecuada para desarrollar la interfaz de usuario m´s intuitiva para la aplicaci´n en particular. El gestor de ventanas no dicta c´mo debe utilizar las ventanas la propia aplicaci´n. o o Los gestores de ventanas generalmente son m´s peque˜os que los escritorios y est´n m´s orientados a n a a hacia usuarios expertos. otros: twm: Tab Windows Manager. un derivado de twm que incorpora un aspecto visual en 3D y tiene menos requisitos de memoria. Window Maker. se ejecutan independientes de un escritorio. usar el color y hacer que el entorno sea agradable a la vista. Algunos de los m´s populares para Linux son fvwm2. en otros casos. a o Son programas clientes de las “X”. Como las “X” no especifican un gestor de ventanas en particular. pero mucho m´s ligero que Enlightenment es ahora el gestor a por defecto en el entorno de escritorio GNOME.

1. esto permite que los iconos que representan archivos sean arrastrados con el rat´n y soltados sobre un icono o que representa una aplicaci´n. La aplicaci´n se abrir´ entonces. los escritorios incluyen la posibilidad de colocar archivos y directorios directamente sobre el fondo del mismo. Esto es un gran cambio con respecto a n los primeros gestores de ventanas donde las aplicaciones eran independientes del gestor. Entornos de escritorio A diferencia de los gestores de ventanas. En lugar de describir c´mo se debe ver la interfaz. KDE ofrece unas bibliotecas que son mucho m´s sencillas de usar que el trabajo directo con la interfaz “X”. un usuario de escritorio puede efectuar todo su ´ trabajo sin invocar nunca a una l´ ınea de comandos. A menudo. Esta basado en las bibliotecas Qt3. lo podemos buscar con el comando which. o 6. los escritorios est´n orientados a los usuarios m´s novatos (aunque los usuarios avanzados a a tambi´n los encuentran incre´ e ıblemente utiles). ın . Si no sabemos el path. soporte de impresi´n o estandarizado.3. para la elaboraci´n o o del proyecto he utilizado GNOME como entorno de escritorio y las bibliotecas KDE para ejecutar la A aplicaci´n Kile.Cap´ ıtulo 6. Junio 2005. El punto negativo de este tipo de t´cnicas de gesti´n de ventanas es que una vez que una aplicaci´n e o o se dise˜a para ejecutarse con KDE. Tambi´n existe un paquete llamado wmanager que permite seleccionar el gestor de ventanas al arrancar e las “X”. 6. entorno de escritorio K. un editor de textos L TEX. Kde KDE1 es el entorno de escritorio que actualmente copa el mercado. GNOME o incluido. algo que s´lo a o est´ disponible con X-Windows. Se ofrece un conjunto a de herramientas orientadas a objetos est´ndar que permite construir otras herramientas. a a Al final. si se usan. En mi caso. Ello es debido a que han desarrollado un interfaz m´s vers´til y agradable a la vista. permiten a una aplicaci´n mejorar algunas caracter´ o ısticas especiales que no las ofrecen el resto. a 1K Desktop Environment. mediante el siguiente comando: $xinit -e <path-gestor-ventanas> Donde <path-gestor-ventanas> es el path del archivo binario del gestor de ventanas. Esto incluye cosas como soporte a pinchar y arrastrar. utilizando el archivo. etc. KDE proporciona un o conjunto de bibliotecas que. requiere KDE para trabajar. e En general. Jose Antonio Escart´ Vigo. Desde el punto de vista del programador. parece haber eclipsado al resto de entornos de escritorio.3. Es ligeramente diferente de los gestores de ventanas t´ ıpicos. Interfaz gr´fico a 57 Estos gestores pueden ejecutarse sin los entornos de escritorio para poder observar sus diferencias. la elecci´n del gestor de ventanas es solo cuestion de gustos. Incluyen la capacidad de arrastrar y soltar. Los escritorios o o a tambi´n pueden suministrar otras aplicaciones.3. Desde la aparici´n de KDE 3.

GNOME no es un gestor de ventanas en si mismo. es un est´ndar que establece una plataforma de desarrollo de sistemas a distribuidos facilitando la invocaci´n de m´todos remotos bajo un paradigma orientado a objetos. es distinta la licencia GPL y el estilo de licencias de Berkley usado por la mayor´ de los paquetes que usan las distribuciones Linux. a o A diferencia de KDE. o o Hace un tiempo se revis´ la licencia de KDE. Estaba prohibido el uso comercial de a KDE sin pagar derechos.3. El gestor de ventanas por defecto es Sawfish. o e 3 Common Desktop Environment. en la que KDE est´ basado. o o GNOME es muy interesante. que se encuentra en lo m´s alto de su estructura y muestra la apariencia gea neral del escritorio. es ahora m´s o a abierta y permite su uso comercial. y ofrece una interfaz similar a CDE. Desde el punto de vista del desarrollador. XFce: Esta basado en las bibliotecas GTK+2.2 Esta basado en las bibliotecas GTK+2 que permiten el desarrollo del entorno y las caracter´ ısticas de gesti´n de sesi´n. El proyecto GNOME1 comenz´ debido a esta resticci´n. al igual que GNOME. que nosotros como usuarios no vemos. ıa Tanto GNOME. pero no es libre ni gratuito. Lo que hace a GNOME diferente es c´mo alcanza sus objetivos. como KDE. peor tambi´n maneja sin dificultad aplicaciones KDE. Gnome Hasta hace pocos a˜os hab´ algunos problemas con las restricciones de licencias impuestas por los n ıa desarrolladores de la biblioteca Qt3. es ideal para maquinas con poca capacidad o aquellos que prefieran ahorrar recursos para sus aplicaciones. u 2 Common Jose Antonio Escart´ Vigo. A sido portado a a Linux. Necesita apoyarse en un gestor de ventanas externo. Sin embargo. Junio 2005. La licencia revisada.3. 6.3.58 Servidor Linux para conexiones seguras de una LAN a Internet 6.2. entorno de escritorio com´ n. ıa De esta manera. Trabaja especialmente bien con programas GNOME. es uno de los m´s primitivos. tambi´n podemos encontrar estos otros entornos de escritorio: e CDE3 : Desarrollado por algunos fabricantes de Unix. Object Request Broker Architecture. e de modelo de objeto de red GNU. Su ventaja es que es sencillo y utiliza pocos recursos. ın 1 Entorno . Otros entornos de escritorio No solo existen KDE o GNOME. ofrece un entorno de escritorio completo y un marco de aplicaciones para desarrollo tan bueno como de f´cil uso. conocida como QPL. pero contamos con multitud de opciones disponibles (Vease seccion 6. Define sus interfaces con el resto del mundo mediante tecnolog´ CORBA2 . cualquier sistema de desarrollo que pueda comunicarse usando CORBA puede utilizarse para desarrollar aplicaciones compiladas en GNOME.

o Cuadro 7. Unshielded Twisted Pair) y el cable de fibra a o ´ptica sirven para distintos prop´sitos: el cable coaxial se usa en instalaciones LAN antiguas as´ como en o ı servicios de Internet a trav´s de redes de TV por cable. cada una de las cuales controla una parte diferente n o de la tarea de comunicaci´n. Este dise˜o de siete capas se denomina Modelo de referencia OSI. IP.1. HTTP. UTP se usa normalmente en cableados dom´sticos.udg. c´mo son y c´mo est´n dise˜adas. Dicho o n modelo fue creado por la Organizaci´n internacional de est´ndares (ISO. e e mientras que la fibra ´ptica se suele usar para conexiones de distancias largas que requieren una capacidad o de carga alta. Esta secci´n se ha basado en la documentaci´n que se puede obtener en: o o http://eia. IPX. Por ejemplo. UTP o Capa F´ ısica Esta capa es el medio f´ ısico real que contiene los datos. RPC NetBIOS.o de capa OSI Capa 7 Capa 6 Capa 5 Capa 4 Capa 3 Capa 2 Capa 1 Nombre de la capa Aplicaci´n o Presentaci´n o Sesi´n o Transporte Red Enlace de datos F´ ısica Protocolos de ejemplo DNS. FTP. primero se tiene que conocer la arquitectura de redes. SMTP. el par trenzado (UTP.es/ ˜atm/tcp-ip/index. Arquitectura de redes (Modelo OSI) Antes de conocer realmente los servicios de red y la seguridad en redes. Fibra ´ptica. Los distintos tipos de medios siguen diferentes est´ndares.1: Estructura del modelo de referencia OSI N. primero debemos conocer una serie de conceptos y arquitecturas que se describen en las secciones siguientes del presente cap´ ıtulo. Telnet XDR Pipes con nombre. Token Ring Coaxial.html 7.Cap´ ıtulo 7 Infraestructura de redes Para podernos situar en el marco de las configuraciones de redes. International Standard Organio a zation) para proporcionar un modelo l´gico para la descripci´n de comunicaciones de red y ayuda a los o o suministradores a estandarizar los equipos y el software.1 muestra la composici´n del modelo. UDP ARP. o o a n Cada dise˜o de red se divide en siete partes l´gicas. . La tabla 7. el cable coaxial. TCP. OSPF Acrcnet. Ethernet.

ninguna otra m´quina en Internet puede tener dicha direcci´n. la mayor´ determinados por su suministrador de hardware. Estas se han reservado s´lo para su uso interno a o y no se enrutar´n por Internet.60 Servidor Linux para conexiones seguras de una LAN a Internet Capa de enlade datos Esta capa relaciona los distintos elementos del hardware de interfaz de red en la red. las direcciones MAC son el medio por o el que se puede encontrar a nuestro ordenador en la red. ıa Capa de sesi´n o La capa de sesi´n se encuentra implicada principalmente en la configuraci´n de una conexi´n y en o o o su cierre posterior. El protocolo de control de transmisi´n (TCP. ın . En algunos casos. Es u ´ a o el caso de las direcciones IP normales que se pueden enrutar p´blicamente. Junio 2005. En las LAN internas. Tambi´n efect´a a e u detecci´n de errores. Un ejemplo de una direcci´n de la capa de enlace de datos ı o es la direcci´n MAC de nuestra tarjeta de red. una retransmisi´n de segmentos perdidos y una reorganizaci´n de los paquetes y el tr´fico o o a desfragmentado. Tambi´n permite que los dispositivos se identifiquen entre e s´ cuando intentan comunicarse con otro nodo. Algunas formas de cifrado pueden considerarse como presentaci´n. La mayor´ de las empresas actuales utilizan Ethernet a ıa porque es el m´s extendido y econ´mico. se trata de una direcci´n IP. en general. Capa de transporte Este nivel lleva el paquete de datos desde el punto A hasta el punto B. a DEC utilizaba un est´ndar diferente y Apple otro. a ıa IBM utilizaba Token Ring para sus redes de PC y SNA para la mayor parte de su hardware m´s grande. como las solicitudes DNS. nunca tendr´n la misma direcci´n MAC. En una red Ethernet. Se utiliza principalmente en aplicaciones espec´ o ıficas. La capa de red permite las comunicaciones entre diferentes redes f´ ısicas utilizando una capa de identificaci´n o secundaria. Las empresas utilizaban muchos tipos diferentes de est´ndares de enlace entre 1970 y 1980. Aunque dos ordenadores pueden tener la misma direcci´n IP privada sobre ´ o diferentes redes internas. El protocolo de datagramas de usuario (UDP. Esta direcci´n o es un n´mero unico para identificar nuestro ordenador en una red basada en IP. Existen excepciones a esta regla pero. las u m´quinas normalmente utilizan bloques de direcciones IP. Capa de presentaci´n o Esta capa controla determinadas codificaciones y descodificaciones requeridas para presentar los datos en un formato legible para la parte receptora. Es la capa donde residen los protocolos TCP y UDP. Esta capa y la capa de red es donde operan la mayor´ de los cortafuegos. la tarjeta de interfaz de red (NIC. pero no proporciona ninguna facilidad para reorganizar los datos o asegurar la llegada o de datos. pero siguen siendo a u ´ unicos dentro de cada LAN. a o Capa de red Esta capa es la primera parte que podemos ver cuando interactuamos con sistemas de red TCP/IP. La distinci´n entre la capa de aplicaci´n y la de sesi´n es muy delicada y algunos afirman que o o o o la capa de presentaci´n y la de aplicaci´n son b´sicamente iguales. En los sistemas de red TCP/IP. este u ´ n´mero es unico para un ordenador. Tambi´n realiza autenticaciones para determinar qu´ partes pueden participar en una e e sesi´n. Network Interface Card) dentro del ´ ordenador. Estos n´meros pueden no ser unicos de una red a otra. ya que es un n´mero de serie asignado a o u por el fabricante. User Datagram Protocol) es un esquema m´s ligero a empleado para tr´fico multimedia y para transmisiones cortas. Ayuda a codificar los datos y a colocarlos en el medio f´ ısico. Esta direcci´n IP en nuestro o o ordenador nos ayuda a enrutar los datos de un lugar a otro de la red y sobre Internet. o o a Jose Antonio Escart´ Vigo. Permite una correcci´n de errores a ıan o nivel de bits. Transmission Control Protocol) b´sicamente asegura que o a los paquetes se env´ y se reciben con consistencia en el otro punto. la direcci´n MAC identificar´ de forma o a unica dicho ordenador o al menos.

o SMTP. ajustan las soluciones profesionales de seguridad.1: Rango de direcciones IP En el siguiente cuadro podemos observar el n´mero de redes y de ordenadores por red en cada una de u las tres clases primarias de direcciones IP.255.Cap´ ıtulo 7. que pueden ser FTP. Clase A: Pocas redes. 7. que ser´ utilizada en los campos direcci´n origen y direcci´n destino de a a o o la cabecera IP. etc. cada una con pocos ordenadores.2. ın . Podemos enviar un paquete IP a un grupo de m´quinas que por ejemplo pueden estar a cooperando de alguna manera mediante la utilizaci´n de una direcci´n de grupo o o Clase E : No se utiliza. 1 bit de selecci´n de clase A.255. 7 bits de red o y 24 bits de host (Por ejemplo ARPANET) Clase B : Un n´mero medio de redes. cada una con un n´mero medio de ordenadores. queda reservado para otros usos Figura 7. HTTP.0. 21 bits de o red y 8 bits de host (LANs). Infraestructura de redes 61 Capa de aplicaci´n o Este nivel final es donde el programa de la aplicaci´n obtiene los datos. cada una con muchos ordenadores. o a n Existen tres clases de redes que se pueden clasificar teniendo en cuenta la longitud del campo de red y del campo host. 14 bits de red y 16 bits de host.0. o Clase C : Muchas redes. 2 bits de u u selecci´n de clase B. Jose Antonio Escart´ Vigo. Esta direcci´n consta de un identificador de red y de un identificador de host. 3 bits de selecci´n de clase C. Direcciones IP Cada computador (host) y cada dispositivo de encaminamiento (router) tendr´ una direcci´n unica a o ´ cuya longitud ser´ de 32 bits. La clase a la que pertenece una direcci´n puede ser determinada por la posici´n del primer o o 0 en los cuatro primeros bits. Aqu´ algunos programas se encargan de controlar los datos reales dentro del paquete y se ı. La direcci´n IP m´s peque˜a es la 0. Clase D: Permite hacer multitransmisi´n (o multicasting) en la cual el datagrama se dirige a m´ltiples o u ordenadores.255. Las direcciones est´n codificadas para permitir una asignaci´n variable de a o bits para especificar la red y el host.0 y la mayor es 255. La direco ci´n est´ codificada para permitir una asignaci´n variable de los bits utilizados al especificar la red y el o a o computador. Junio 2005. ya que la mayor´ de los ataques se producen en esta ıa capa.

Esta ıen u caracter´ ıstica tambi´n se usa para la detecci´n de fallos en el software de red. De esta forma las m´quinas se a pueden referir a su propia red sin saber su n´mero. sin que vuelva a utilizarse posteriormente. Junio 2005.o de a hosts por red 16777216 65536 256 Normalmente las direcciones se suelen escribir en notaci´n decimal con puntos (calculando cada ocho o bits). e o Figura 7.0 significa esta red o este host y unicamente es usada por los ordenadores o ´ cuando son arrancados. ın .0. pero sin salir del host).206. pero la clase s ha de ser conocida para saber u cuantos ceros debe incluir.255.2: Direcciones IP reservadas Jose Antonio Escart´ Vigo. u Difusi´n de red local o limitada: La direcci´n 255. Esto permite que los paquetes se env´ a la red local sin que el transmisor conozca su n´mero. Por ejemplo.yy. Los o paquetes que tienen esta direcci´n no son enviados por la red sino que son procesados localmente y o se tratan como si fueran paquetes de entrada (pasan por la tarjeta de red.2: N.62 Servidor Linux para conexiones seguras de una LAN a Internet Cuadro 7. Un host de esta red : Poniendo el campo red todo a ceros (es necesario saber la clase de la red para decidir el n´mero de ceros).0.xx.255. o Difusi´n de una red distante o dirigida (broadcast): Tambi´n se puede hacer difusi´n a una red o e o distante poniendo la direcci´n de la red y rellenando el campo ordenador con 1s.o de Hosts por red Clase A B C Bits en el prefijo 7 14 21 M´ximo n.zz se reservan para pruebas de realimentaci´n (localhost). la direcci´n 82CE7C0D (1000 0010 1100 1110 0111 1100 0000 1101 que es de clase B) o se escribe como 130.2): Este host: La direcci´n 0.255 (todos 1s) se usa como direcci´n para o o o indicar todos los ordenadores de la red indicada y es utilizada para hacer difusi´n. 82 CE 7C 0D = = = = 8*16 + 2 = 128 + 2 = 130 C*16 + E = 12 * 16 + 14 = 192 + 14 = 206 7 * 16 + C = 112 + 12 = 124 D = 13 Algunas direcciones de red se utilizan como direcciones especiales (Vease figura 7.124.o de redes a 128 16384 2097152 Bits en el sufijo 24 16 8 M´ximo n. o Retrociclo: Las direcciones 127.13.

Esto puede resultar sorprendente para los usuarios.Cap´ ıtulo 7. En el primer caso puede contener rutas alternativas que a a ser´n utilizadas cuando alg´n dispositivo de encaminamiento no est´ disponible. ın . En la cabecera hay una parte fija de 20 bytes y una parte opcional de longitud variable. algunos equipos pueden resultar inalcazables. En la figura 7. tambi´n es usado para aumentar u a e el rendimiento de la red. Encaminamiento IP (router y gateway) Cuando un paquete llega a un dispositivo de encaminamiento. se debe determinar cu´l es la direcci´n a o del siguiente dispositivo de encaminamiento teniendo en cuenta la direcci´n IP destino que hay almaceo nada en el campo correspondiente del paquete y de la informaci´n que hay almacenada en las tablas de o encaminamiento. Como existe la facilidad de que una m´quina pueda estar conectada a dos redes y por lo tanto a tenga dos direcciones diferentes. el conocer una direcci´n IP puede resultar insuficiente para alcanzar la m´quina o a que utiliza esta direcci´n. Hay que tener en cuenta que es necesario realizar una conversi´n entre la direcci´n IP o o y la direcci´n MAC (cuando el enlace entre los dos dispositivos de encaminamiento sea una LAN) que se o efect´a de manera autom´tica mediante el protocolo ARP. no es posible asignarle a un ordenador una direcci´n IP permanente. La autoridad central s´lo es necesaria para asignar o la porci´n de la direcci´n correspondiente a la red. Las tablas din´micas son a u e a m´s flexibles cuando aparecen errores o congesti´n en la red. todas las direcciones de Internet son ´ asignadas por un autoridad central. el o comportamiento de los paquetes puede ser totalmente diferente dependiendo de la direcci´n que o estemos utilizando. La IANA (Internet Assigned Number Authority) tiene el control sobre los n´meros asignados. Junio 2005. estas unidades son reensambladas para volver a tener el datagrama original que a es entregado a la capa de transporte. Sin embargo. si una red falla el host a´n est´ conectado a internet utilizando la otra red.2. Que la direcci´n de la red est´ guardada en la direcci´n Internet tiene algunos inconvenientes: o e o Si la direcci´n IP identifica la red a la que se conecta el ordenador. 7. ´ Una m´quina puede estar conectada a varias redes y tener una direcci´n IP diferente en cada red.2. u a Esta tabla puede ser est´tica o din´mica. Estas tablas tambi´n pueden proporcionar a o e servicios de seguridad y de prioridad. si o movemos un ordenador de una red a otra su direcci´n IP debe cambiar. Por lo tanto. por el protocolo IP. puede o o o asignar un unico sufijo a cada ordenador sin contactar con la autoridad central. Este problema se da cuando. el encaminamiento se hace teniendo en cuenta la direcci´n IP. nos llevamos un ordenador port´til de un sitio a otro y queremos conectarlo a la red. cuando una organizaci´n ya tiene su prefijo. En a o este caso recibe el nombre de “multihomed”. Durante el camino puede ser fragmentado en e unidades m´s peque˜as. a Como el n´mero de ordenadores asignados a la clase C (255) puede resultar insuficiente en muchos u casos y que la transici´n a la clase B no es f´cil debido a que muchos programas no permiten que o a una red f´ ısica tenga m´ltiples direcciones. no al ordenador que tenemos o conectado. Jose Antonio Escart´ Vigo.2. o por ejemplo. 7. Datagramas Los datos proporcionados por la capa de transporte son divididos en datagramas y transmitidos a trav´s de la capa de red (capa internet). para asegurarse que a ciertos datos no se les permita pasar por determinadas redes.3 se puede observar el formato de la cabecera IP. En algunos casos. por ejemplo. Infraestructura de redes 63 Para estar seguros de que las direcciones Internet son unicas. a n n a n En la m´quina destino. Debido a la configuraci´n de la red y dependiendo de por donde se enruten o o los paquetes en nuestra red. pues permite enviar directamente el tr´fico a una red en concreto sin tener que a pasar por los dispositivos de encaminamiento. cuando una organizaci´n quiere una direcci´n debe obtenerla u o o de INTERNIC (Internet Network Information Center). Por otra parte. Esto se utiliza para aumentar la seguridad. no se pueden introducir nuevas direcciones poco a poco y u es necesario reconfigurar toda la red para la nueva clase. si deben atravesar una red o subred cuyo tama˜o de paquete sea m´s peque˜o.1.

un host puede determinar cu´l es su direcci´n de broadcast o de difusi´n de red (es a o o decir. 7.255. En este caso. Una direcci´n IPv4 est´ndar esta formada por 32 bits. Por tanto. ın . Normalmente tiene la siguiente apariencia: 255. o ıo a Normalmente nos referiremos a las redes IP como m´scaras de red o con una barra inclinada y un a n´mero. como ya comentamos e anteriormente. Junio 2005.248 u ı. la direcci´n IP que corresponde al env´ de un paquete a todas las m´quinas de la red local). normalmente se convierte de un conjunto de bits binarios. decirle al sistema qu´ bits de la direcci´n o a e o IP corresponden al componente de red y qu´ bits corresponden al componente host.255. Basados en estos dos e componentes de red.0 Una forma r´pida de calcular el tama˜o de una red representada por una m´scara de red es restar cada a n a octeto de 256 y multiplicar dichos n´meros entre s´ Por ejemplo. el ordenador origen incluye en la cabecera del paquete la direcci´n de los dispositivos de o encaminamiento que debe utilizar el paquete.1.64 Servidor Linux para conexiones seguras de una LAN a Internet Figura 7.255.168.2.3: Cabecera del datagrama IP Otra t´cnica de encaminamiento es el encaminamiento en la fuente. Normalmente o o a se representa en cuatro secciones. cuando vemos 192.1.255.255. el ordenador ve lo siguiente: 11000000 10101000 00000001 00000001 Una m´scara de red normalmente es un conjunto de cuatro n´meros que nos indica d´nde finalizan los a u o bits de red y donde comienzan los de hosts.255. a describe una red de 8 IPs porque: (256-255) * (256-255) * (256-255) * (256-248) = 8 Una m´scara de red de 255. Cada octeto. Ambas son formas de definir el tama˜o de la red. en primer lugar. con cuatro octetos de 8 bits cada una. la m´scara de red de 255.0 describe una red de 256 IPs ya que: a (256-255) * (256-255) * (256-255) * (256-0) = 256 Jose Antonio Escart´ Vigo. Para entenderlas tenemos que conocer un poco u n de la estructura de la direcci´n IP. M´scaras de red y notaci´n de barra inclinada a o El prop´sito de configurar una m´scara es. a un numero decimal para facilitar su lectura.3.

enrutamiento interdominio sin clases) debido a que o viola la descripci´n de las redes A.255. una t´cnica conocida como u o e subneting ´ CIDR (Classless Inter Domain Routing. subred.168. La mayor´ o o ıa de las veces. Por ejemplo la u o notaci´n 192.024 a o hosts por segmento. Aparte de resultar una pesadilla para administrar. ın . De esa forma.0. Un n´mero binario de bits de 11111111 convertido en decimal es 255. u o Jose Antonio Escart´ Vigo. un dispositivo de encaminamiento de la subred e e k sabe c´mo llegar a todas las subredes y a todos los hosts de la subred k.2. no es realista configurar la red como un gran grupo de m´quinas. ´sta subred.4.0 es la direcci´n de red y .255.2. Infraestructura de redes 65 Y por ultimo. 0). No necesita saber nada de los o hosts de otras subredes. estas redes enormes se dividen en subredes m´s peque˜as.255 la direcci´n de broadcast). un nivel a o o bastante razonable de agrupamiento de m´quinas. Cada encaminador lo que debe hacer es un AND booleano con la m´scara de la a subred para eliminar el n´mero de host y buscar la informaci´n resultante en sus tablas. 0) y (´sta red.536 La notaci´n de barra inclinada es algo m´s dif´ de entender. Esto se hace a n expandiendo el n´mero de bits usados para representar la direcci´n de red. Subneting (CIDR) Incluso si tenemos una clase de direcciones A o B. Si restamos de 32 dicho n´mero o a e o u obtenendremos el n´mero de bits que desciben la direcci´n de host dentro de la red local. Para resolver este problema. aunque utiliza el mismo concepto. el mismo tama˜o que el de arriba con una m´scara de red de 255.0. Ethernet s´lo permite configurar 1. sino que cada divisi´n de la organizaci´n se convierte en una subred.0 describe una red de 65. la elecci´n razonable es escoger una m´scara de 24 bits (255. resulta muy dif´ encontrar una red a ıcil capaz de tener tantas m´quinas agrupadas juntas.4).0.255.0/24 describe una red que empieza en 192. El o a ıcil n´mero que se encuentra detras de la barra inclinada indica la cantidad de bits que describen la direcci´n u o de red (para una explicaci´n con m´s detalle.168. B y C.536 direcciones IP porque: ´ a (256-255) * (256-255) * (256-0) * (256-0) = 65.0 que contiene 256 direcciones IP de o tama˜o (es decir. en las tablas de encaminamiento se agregan entradas de la forma (´sta e red.0).255. una m´scara de red de 255. Junio 2005. Por ejemplo.3: Notaci´n de barra inclinada en IPs o Notaci´n de barra inclinada o /24 /25 /26 /27 /28 /29 /30 /31 /32 Tama˜ o de la red n 256 direcciones IP 128 direcciones IP 64 direcciones IP 32 direcciones IP 16 direcciones IP 8 direcciones IP 4 direcciones IP 2 direcciones IP 1 direcci´n IP o 7.255. a Cuadro 7. n n a Los 32 bits en una direcci´n IP menos los 24 bits para el prefijo de red deja 8 bits activados (igual a 1) o para los hosts de la red local. Si las u matem´ticas binarias nos resultan complicadas.Cap´ ıtulo 7. v´ase la secci´n 7. La mayor´ de las organizaciones no tienen 16 ıa millones de computadoras. o Un lugar t´ ıpico para ver esto es en las redes IP privadas.0) para conseguir 254 o a m´quinas por red (recordamos que . podemos utilizaremos la siguiente tabla para recordarlo. a Cuando se utilizan subredes.

le dice que va a usar nat y quita las politicas actuales para nat (-F) #iptables -t nat -A POSTROUTING -s 192.1. Sin embargo.168. Cuando un paquete entra en la interfaz ppp0 desde Internet.5. IPTables esta equipado con los proxies m´s comunes: a FTP. simplemente. o o El enmascaramiento de IP resuelve este problema permitiendo a nuestro sistema Linux hacer dos trucos: actuar como un enrutador y realizar la traslaci´n de direcciones de red. ın . Junio 2005.168. Linux comprueba con el mecanismo de enmascaramiento si el paquete est´ realmente destinado para alguien de dentro de la red. podemos a˜adir a los scripts de arranque: n insmod ip_masq_ftp insmod ip_masq_irc Jose Antonio Escart´ Vigo. al mismo tiempo). en una configuraci´n o de firewall la interfaz de salida puede ser. Si ıe o el cliente est´ enmascarado. para redes peque˜as. a FTP es uno de los muchos protocolos que hacen cosas extra˜as. A fin de permitir el enmascaramiento de n estos protocolos. u a ıcil. Lo que queremos es que nuestro servidor enrute los paquetes entre las m´quinas de la LAN de forma a que cuando vayan a Internet. Todos los paquetes que salgan por enrutados desde la red a n Internet se enmascar´n a #echo 1 > /proc/sys/net/ipv4/ip_forward : Activamos el ip forward El mecanismo de enmascaramiento se ocupa de reescribir el paquete y dejarlo en Internet. o Despu´s instalaremos el siguiente paquete: e #apt-get install ipmasq Si nuestra red contiene la red 192.0. debemos colocar un proxy especial. Cuando un cliente FTP se conecta a un servidor FTP. e ıa Proxies: Problemas con el enmascaramiento Desafortunadamente. Configuraci´n de IPTables para NAT o Lo primero que necesitamos es asegurarnos de que tenemos cargado el m´dulo iptables nat en el kernel. Si es as´ el paquete se desenmascara a ı. NAT. el e servidor sabe que realmente el paquete va destinado a una m´quina de la red y se lo env´ a ıa. el rango 192. usa un rango de direcciones IP privadas.0/24 -d 0.0. Enmascaramiento IP (NAT. parezca que los origina ´l. Para realizar el enmascaramiento IP necesitamos utilizar el firewall IPTables. o Nuestra red LAN. entonces la m´quina probablemente rechace la conexi´n porque no tendr´ un a a o a programa escuchando en ese puerto y la transferencia se interrumpir´.168 n trabaja bien. Cuando vuelve un paquete como respuesta. FTP es un ejemplo perfecto de esto. y despu´s se env´ al emisor original de la LAN. una segunda tarjeta Ethernet que la une a la red corporativa. El a cliente pasa toda la informaci´n de usuario/contrase˜a a trav´s de este puerto. empieza conect´ndose al puerto 21 del servidor. ejecutamos las siguientes instrucciones #iptables -t nat -F : Configura el comportamiento de iptables.0. el servidor inicia una conexi´n nueva de vuelta al cliente. IRC y otros.0 y el servidor conectado a un interfaz ppp0 desde el que se recibe el acceso a internet. no todos los protocolos enmascaran bien. Network Adress Translation) Un escenario com´n para los usuarios familiares y de oficinas peque˜as es tener una cuenta de conexi´n u n o punto a punto para varias computadoras que quieran usarla (con frecuencia.66 Servidor Linux para conexiones seguras de una LAN a Internet 7. cuando el o n e cliente pide al servidor que le env´ un archivo. ´ Una interfaz de red ppp0 puede ser cualquier tipo de interfaz de red.0/0 -j MASQUERADE : A˜ade la regla de enmascaramiento. No se puede asumir como unica forma de funcionamiento el enmascaramiento de IP con un router. Por ejemplo.2. Para usar estos m´dulos simplemente hay que incluir la sentencia insmod en tiempo o de arranque. Por ejemplo. Para hacer esto a´n m´s dif´ s´lo tenemos una direcci´n IP.

3. En el siguiente ejemplo podemos observar la traducci´n entre direcci´n IP y direcci´n f´ o o o ısica. Esto se observa en el siguiente ejemplo: Enviamos el tr´fico que entra. Infraestructura de redes 67 Tambi´n lo podemos hacer con reglas. Como la direcci´n IP es virtual. Existen dos posibles dise˜os: n 1. Tiene el inconveniente de que estos servidores pueden ser un cuello de botella en una red grande. Cada entrada de la tabla contiene una direcci´n IP y una direcci´n f´ o o ısica. todos las direcciones IP tienen el mismo prefijo. o El tercero es el m´s interesante pues usa una computaci´n distribuida en la que los dos ordenadores a o intercambian mensajes din´micamente.31 Direcci´n Ethernet o 0F:13:26:36:F3:B4 A4:34:27:AE:B1:10 El segundo realiza la traducci´n mediante una funci´n matem´tica.13 130. gestionar y n a controlar. dirigido por eth0 al puerto 80 (web). a nuestro proxy squid (transparente) a por el puerto 3128 de nuestra m´quina: a #iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 7. algunas usan direccionamiento configurable.203.124. En el segundo dise˜o. Jose Antonio Escart´ Vigo. a o o Por lo tanto es necesario tener un mecanismo que nos proporcione la correspondencia entre la direcci´n o IP y la direcci´n f´ o ısica. el admia nistrador de la red elige tanto la direcci´n f´ o ısica como la direcci´n IP. el ordenador que conoce la direcci´n IP de otro a o ordenador pero desconoce su direcci´n f´ o ısica. se hace un broadcast de la petici´n (env´ a la direcci´n de difusi´n de red) n o ıo o o y todos los ordenadores participan en la resoluci´n de la direcci´n. es decir. En este caso.124. El propio protocolo se encarga de construir las tablas o en lugar de tener que hacerlo el administrador del sistema. en concreto responde el que o o tiene la direcci´n pedida. Como existe una tabla para cada red f´ ısica. Existen tres mecanismos para hacer la traslaci´n: o El primero utiliza un tabla en cada m´quina para almacenar para cada direcci´n IP la correspona o diente direcci´n f´ o ısica. a˜adiendo el redireccionamiento de los puertos que utilice el e n protocolo. los valores pueden o ser elegidos para que la traslaci´n sea trivial. Cuando enviamos un paquete IP entre estas dos m´quinas s´lo indicamos la direcci´n IP. una de las ventajas de este m´todo sobre tener unos n e archivos de configuraci´n es su sencillez. 2.206. La traslaci´n entre direcciones IP y direcciones f´ o ısicas es local a la red. Aunque muchas tecnolog´ o o a ıas utilizan direcciones f´ ısicas est´ticas. env´ un mensaje a la red con la direcci´n IP conocida ıa o y recibe de la red una respuesta con la direcci´n f´ o ısica. En el primero hay uno o m´s servidores que se encargan de enviar las respuestas. o n a Este dise˜o es el utilizado en el ARP. La principal ventaja de este dise˜o es que el c´lculo es distribuido. En este caso. Direcci´n IP o 130. La principal a ventaja de este dise˜o es que es centralizado y por lo tanto f´cil de configurar. Un ordenador s´lo puede obo tener la direcci´n f´ o ısica de otro si ambos se encuentran en la misma red f´ ısica. pues es mantenida por software. Resoluci´n de direcciones o Dos ordenadores de una red f´ ısica s´lo pueden comunicarse si cada uno de ellos conoce la direcci´n o o f´ ısica del otro. ın . y la relaci´n entre el sufijo de la direcci´n IP y el o o o o host. ning´n elemento hardware entiende o u la relaci´n: entre el prefijo de la direcci´n IP y la red.Cap´ ıtulo 7. Junio 2005.

Jose Antonio Escart´ Vigo. Este protocolo es el encargado de obtener la direcci´n f´ o ısica de una m´quina de la que conoce a la direcci´n IP. Cuando esta tabla est´ llena se ir´n e a borrando las m´s antiguas y las que lleven m´s tiempo sin ser utilizadas. Generalmente no la conoce. a a 7. ARP (Adress Resolution Protocol) En cada m´quina se tiene una tabla que identifica la correspondencia que hay entre la direcci´n f´ a o ısica y la direcci´n IP del resto de m´quinas. ın .1. la o m´quina que necesita conocer su direcci´n IP unicamente debe identificarse a si misma. El o a o problema es cr´ ıtico para aquellas estaciones de trabajo que almacenan todos sus ficheros en un servidor remoto ya que ellas deben utilizar los protocolos de transferencia de ficheros de TCP/IP para obtener su imagen de arranque inicial. Para conseguirlo debe acceder a recursos de bajo nivel. De alguna manera lo que hace la m´quina es enviar un mensaje diciendo: u a “ mi direcci´n f´ o ısica Ethernet es XX. o ¿C´mo puede la m´quina conocer la direcci´n del servidor?. Suponemos o a que el servidor tiene acceso a un disco que contiene una base de datos de direcciones IP. El protocolo para conseguir esto es el RARP que es una adaptaci´n del ARP visto o anteriormente y que usa el mismo formato de mensaje. para identificarse. En la petici´n. El emisor se e debe encargar de poner el valor correspodiente y el receptor de mirar el contenido de ese campo.68 Servidor Linux para conexiones seguras de una LAN a Internet 7.XX.XX. el receptor debe examinar el campo operaci´n ´ o del mensaje ARP para determinar si es el mensaje recibido es una petici´n o una respuesta. o Cuando no conocemos la direcci´n f´ o ısica de la m´quina a la que queremos enviar el mensaje es necesario a enviar tres mensajes. en cada m´quina tendremos una peque˜a memoria cache en la que a a a n guardaremos una tabla con las parejas de direcciones (f´ ısica. Como Ethernet asigna un unico valor para los dos mensajes ARP. u o Pero. Es importante o destacar. Tanto la m´quina que hace la petici´n o a o como el servidor que responde usan direcciones f´ ısicas durante su breve comunicaci´n. por ejemplo en una trama Ethernet. para que esto no se tenga que repetir para cada paquete que queremos enviar y adem´s se pueda reducir el tr´fico. ¿c´mo una m´quina que no disponga de disco duro puede determinar su direcci´n IP?. RARP (Reverse Address Resolution Protocol) Cada m´quina.2.XX. a a En realidad lo que queremos es encontrar la direcci´n IP de una m´quina de la que conocemos su o a direcci´n f´ o ısica. Junio 2005. o ´ Unicamente hay dos tipos de mensaje que tienen el mismo formato: petici´n ARP y respuesta ARP. adem´s de su direcci´n f´ a a o ısica que est´ en la tarjeta de red. La idea para encontrar la direcci´n IP es simple: una m´quina que necesita conocer su direcci´n env´ o a o ıa una petici´n a un servidor que hay en otra m´quina y espera hasta que recibe la respuesta.3. Como ocurre con los mensajes ARP. que este protocolo s´lo puede ser utilizado en aquellas redes en las cuales es posible hacer un o broadcast (difusi´n de red). la m´quina utiliza su direcci´n f´ a o ısica lo que tiene la ventaja de que siempre est´ disponible y de que es uniforme para todas las m´quinas de una red. o Los mensajes ARP van a ser encapsulados directamente en una trama Ethernet. IP). un mensaje RARP es enviado de una m´quina a otra encapsulado en la porci´n de datos de la trama f´ a o ısica. Cuando tenemos que enviar un paquete a una direcci´n IP de la o a o que se desconoce la direcci´n f´ o ısica entra el funcionamiento el protocolo ARP para actualizar los valores de la tabla.XX.XX Sabe alguien cual es mi direcci´n IP?” o Como podemos ver en esta pregunta.3. lo que hace o a o es hacer un broadcast (difusi´n de red) de su petici´n a todas las m´quina de la red local y esperar que o o a alg´n servidor responda. En el campo tipo de la cabecera de la trama Ethernet es necesario especificar qu´ contiene un mensaje ARP. y de esta manera a o ´ el servidor puede buscar su direcci´n IP y enviarle una respuesta. debe tener guardada en a alg´n dispositivo la direcci´n IP que le corresponde.

4. Cuando se dise˜´ se quiso que cumpliera los siguientes no requisitos: Ser abierto en el sentido de que no fuera propiedad de una compa˜´ nıa Que permitiera reconocer varias m´tricas. que se adaptar´ r´pida y autom´ticamente a los cambio de la topolog´ a a a a ıa Ser capaz de realizar en encaminamiento dependiendo del tipo de servicio Que pudiera equilibrar las cargas dividiendo la misma entre varias l´ ıneas Que reconociera sistemas jer´rquicos pues un unico ordenador no puede conocer la estructura coma ´ pleta de Internet Que implementara un m´ ınimo de seguridad Jose Antonio Escart´ Vigo. Cada mensaje se encapsula en un paquete IP y luego es enviado de la forma habitual. encontramos los siguientes: ICMP.4. Junio 2005. entre ellas. es decir. IP Entre los protocolos que utilizan IP ‘puro’. ICMP (Internet Control Message Protocol) Permite el intercambio de mensajes de control y de supervisi´n entre dos ordenadores.Cap´ ıtulo 7. Es un protocolo de control que utilizan los dispositivos de encaminamiento para notificar las incidencias que pueden haber en una red IP.4. es decir encapsulan sus mensajes sobre el protocolo IP. BGP y IGMP. Al utilizar IP no se garantiza que llegue a su destino. En el siguiente esquema podemos observar los diferentes tipos de mensajes ICMP: • ICMP(3): Detectar destinos inalcanzables • ICMP(11): Tiempo excedido • ICMP(12): Problema de par´metros a • ICMP(4): Petici´n de control de flujo o • ICMP(5): Redireccionando rutas • ICMP(0) y ICMP(8): Eco y respuesta a eco (para los pings) • ICMP(13) y ICMP(14): Marca de tiempo y la respuesta • ICMP(17) y ICMP(18): Petici´n de m´scara de direcci´n y la respuesta o a o • ICMP(15) y ICMP(16): Petici´n de informaci´n y la respuesta o o • ICMP(9) y ICMP(10): Petici´n de rutas y su publicaci´n o o 7. 7. o o Estos son los problemas que m´s frecuentemente se encarga de informar: a Un datagrama no puede alcanzar su destino El dispositivo de encaminamiento no tiene la capacidad de almacenar temporalmente el datagramapara poderlo reenviar El dispositivo de encaminamiento indica a un ordenador que env´ el tr´fico por una ruta m´s corta ıe a a (redireccionamiento de rutas). Proporciona informaci´n de realimentaci´n sobre los problemas.1. Infraestructura de redes 69 7. ın . Protocolos de red.2. OSPF. la distancia f´ e ısica y el retardo Ser din´mico. OSPF (Open Shortest Path First) El protocolo OSPF (abrir primero la trayectoria m´s corta) se usa muy frecuentemente como protocolo a de encaminamiento interior en redes TCP/IP. Toda anomal´ o ıa detectada por el protocolo IP provoca el intercambio de mensajes ICMP entre los nodos de la red.

los env´ de un punto a otro se le denomina unicast. La informaci´n de encaminamiento actualizada se o va propagando a trav´s de un conjunto de redes. Se encargan de o ıa ocultar a los niveles altos del sistema el tipo de tecnolog´ a la que se est´n conectando los ordenadores. como por ejemplo: “Una empresa no hace de red de tr´nsito para los mensajes de la competencia. Jose Antonio Escart´ Vigo. La esencia de BGP es el intercambio de informaci´n de o encaminamiento entre dispositivos de encaminamiento. Redes multiacceso1 con difusi´n de red (por ejemplo. que son: Obtener informaci´n del vecino o Detectar los vecinos alcanzables Detectar las redes alcanzables 7. 7. e Involucra tres procedimientos funcionales. la mayor´ de redes WAN de conmutaci´n de paquetes). Est´ informaci´n de los miembros del grupo multicast tambi´n a a o e es transmitida al emisor del multicast utilizando este protocolo.4. para informar a los dispositivos de encaminamiento que un miembro del grupo multicast 2 est´ en la red conectada al nodo.” ıses Los diferentes dispositivos de encaminamiento BGP se comunican entre s´ estableciendo conexiones ı TCP. ın .3.5.70 Servidor Linux para conexiones seguras de una LAN a Internet El protocolo OSPF reconoce tres tipos de conexiones y redes: L´ ıneas punto a punto entre dos dispositivos de encaminamiento. o ıa Redes multiacceso sin difusi´n (por ejemplo. Es fundamentalmente un protocolo de vector distancia en el que cada dispositivo de encaminamiento mantiene el coste a cada destino y la trayectoria seguida. Junio 2005. Cada dispositivo de encaminamiento tiene almacenada en una base de datos la topolog´ a ıa de la red de la que forma parte. El UDP es un ıa protocolo no orientado a la conexi´n mientras que el TCP es orientado a la conexi´n. Protocolo BGP (Border Gateway Protocol) El protocolo de ‘pasarela frontera’ se encarga de mover paquetes de una red a otra pero en algunos casos debe preocuparse de otras cuestiones que no tienen porqu´ estar relacionadas con el objetivo de mover e los paquetes de la forma m´s eficiente posible. 7. por ejemplo. ıa e En la jerarqu´ de TCP/IP se definen dos protocolos de transporte: el UDP y el TCP. Estos valores son dados peri´dicamente o a cada uno de los vecinos enviando mensajes.4. Es posible que se deban considerar algunas restricciones a relacionadas con cuestiones comerciales o pol´ ıticas.4. Protocolos de transporte Los protocolos de transporte tienen la funci´n de actuar de interficie entre los niveles orientados a la o aplicaci´n y los niveles orientados a la red dentro de la jerarqu´ de protocolos TCP/IP. a 2 Multicast es el env´ de la informaci´n a m´ ltiples destinos simult´neamente usando la estrategia m´s eficiente para el ıo o u a a env´ del mensajes sobre cada enlace de la red unicamente una vez y creando copias cuando los enlaces en los destinos se ıo ´ dividen. la mayor´ de redes LAN). y el env´ a todos los nodos o ıos ıo se le denomina broadcast. o o 1 Diremos que una red es multiacceso si tiene varios dispositivos de encaminamiento que se pueden comunicar con los dem´s.” a “Nuestros mensajes no deben pasar por pa´ enemigos. En comparaci´n con multicast. IGMP (Internet Group Management Protocol) Es usado. o ıa o La funci´n del OSPF es encontrar la trayectoria m´s corta de un dispositivo de encaminamiento a o a todos los dem´s.

o Los datos que se env´ durante la comunicaci´n son empaquetados por los protocolos del nivel de ıan o transporte. La cabecera consta de los siguientes campos: Los campos puerto origen y puerto destino son de 16 bits e identifican las aplicaciones en la m´quina a origen y en la m´quina destino. o Para establecer una comunicaci´n entre dos m´quinas se ha de utilizar uno de los protocolos de transo a porte (TCP o UDP) y es necesario conocer tanto el puerto que identifica la aplicaci´n destino como la o direcci´n IP que identifica el terminal o el servidor dentro del conjunto de redes. o o El cliente conoce su direcci´n IP (direcci´n origen). a El campo suma de comprobaci´n (checksum) es un campo opcional de 16 bits que. se utilizan los llamados puertos conocidos que consiste en un n´mero de puerto reservado o u para identificar una aplicaci´n determinada (V´ase ap´ndice E). a El campo longitud es de 16 bits e indica en bytes la longitud del datagrama UDP incluyendo la cabecera UDP. ın . o 7. Infraestructura de redes Se definen dos direcciones para relacionar el nivel de transporte con los niveles superior e inferior: La direcci´n IP es la direcci´n que identifica un dispositivo dentro de una red. la direcci´n del servidor (direcci´n destino) y el o o o o puerto que identifica su aplicaci´n cliente. a diferencia del o campo equivalente de la cabecera IP que solo proteg´ la cabecera. o e e El servidor responder´ a las peticiones de cualquier cliente. aunque si que utiliza mecanismos de detecci´n de errores. el cliente inicia o la comunicaci´n y para hacerlo necesita conocer la direcci´n IP asignada al ordenador servidor y el puerto o o de la aplicaci´n que identifica la aplicaci´n que se quiere utilizar. Los bytes que se transmiten en el TCP reciben el nombre de segmento TCP y los que se transmiten en el UDP el de datagrama UDP. la longitud m´xima de un datagrama UDP es de 65. un mismo protocolo de transporte puede llevar informaci´n de diferentes aplicaciones y estas son identificadas por el puerto. Las caracter´ ısticas del protocolo UDP son: No garantiza la fiabilidad. Es decir. El protocolo UDP es muy sencillo y tiene utilidad para las aplicaciones que requieren pocos retardos o para ser utilizado en sistemas sencillos que no pueden implementar el protocolo TCP.515 bytes.Cap´ ıtulo 7. o Este protocolo se ha definido teniendo en cuenta que el protocolo del nivel inferior (el protocolo IP) tambi´n es no orientado a la conexi´n y puede ser interesante tener un protocolo de transporte que explote e o estas caracter´ ısticas.1. el servidor conoce el puerto origen una vez ha recibido una petici´n. En este caso. llegan con retardo o llegan desordenados. Para establecer una comunicaci´n de utiliza el modelo cliente/servidor. En realidad es la longitud del datagrama IP menos el tama˜o de la cabecera IP. Como el cliente env´ en el datagrama a ıa UDP y en el segmento TCP tanto el puerto origen como el destino. Junio 2005. Cuando se detecta un o error en un datagrama en lugar de entregarlo a la aplicaci´n se descarta. Jose Antonio Escart´ Vigo. La utilidad de los puertos es que permite multiplexar aplicaciones o sobre protocolos del nivel de transporte. a No preserva la secuencia de la informaci´n que proporciona la aplicaci´n. o o 71 El puerto es un n´mero de 16 bits que se coloca en cada paquete y sirve para identificar la aplicaci´n u o que requiere la comunicaci´n. Para que pueda saber el puerto destino que identifica la aplio caci´n deseada.535 bytes y la cabecera est´ndar de IP es de a a 20 bytes. Cada datagrama UDP existe independientemente del resto de datagramas UDP. La informaci´n se puede o o o recibir desordenada (como ocurre en IP) y la aplicaci´n debe estar preparada por si se pierden o datagramas. y por lo tanto no proporciona ning´n tipo de control o u de errores ni de flujo. protege tanto la cabecera como ıa los datos.5. Un datagrama consta de una cabecera y de un cuerpo en el que se encapsulan los datos. No se puede asegurar que un datagrama UDP llegar´ al destino. n Como la longitud m´xima del datagrama IP es de 65. UDP Este protocolo es “no orientado a la conexi´n”.

f´cilmente el o a o a emisor se ver´ colapsado. Como la cabecera debe implementar todos los mecanismos del protocolo su tama˜o es bastante grande. como m´ n ınimo 20 bytes. Tambi´n es importante o o e tener en cuenta que si en una transmisi´n de este tipo los destinos enviar´n confirmaci´n.5: Cabecera del datagrama TCP A continuaci´n muestro una descripci´n de cada uno de los campos que forman la cabecera: o o Puerto origen (16 bits): Es el punto de acceso de la aplicaci´n en el origen. Junio 2005.5. pues por cada paquete que env´ recibir´ tantas confirmaciones como destinos ıa ıa ıa hayan recibido el paquete. Initial o u Sequence Number) y a continuaci´n los bytes son numerados consecutivamente. Al principio de la conexi´n se asigna un n´mero de secuencia inicial (ISN. En este protocolo no u se enumeran segmentos sino bytes.4: Cabecera del datagrama UDP Como el protocolo UDP no est´ orientado a la conexi´n y no env´ ning´n mensaje para confirmar a o ıa u que se han recibido los datagramas. o La direcci´n del puerto permite identificar aplicaciones gracias a la direcci´n del puerto. su utilizaci´n es adecuada cuando queremos transmitir informaci´n o o en modo multicast (a muchos destinos) o en modo broadcast (a todos los destinos) pues no tiene sentido esperar la confirmaci´n de todos los destinos para continuar con la transmisi´n. o N´mero de secuencia (32 bits): Identifica el primer byte del campo de datos. TCP La unidad de datos de este protocolo recibe el nombre de segmento TCP. o o 7. ın .2.72 Servidor Linux para conexiones seguras de una LAN a Internet Figura 7. o Puerto destino (16 bits): Es el punto de acceso de la aplicaci´n en el destino. Figura 7. por lo que este n´mero indica el primer byte de datos que hay u en el segmento. o Jose Antonio Escart´ Vigo. Lo que realmente proporciona UDP respecto a IP es la posibilidad de multiplexaci´n de aplicaciones.

o ıa a Suma de comprobaci´n (16 bits): Este campo se utiliza para detectar errores mediante el compleo mento a uno de la suma en m´dulo 216-1 de todas las palabras de 16 bits que hay en el segmento m´s o a una pseudo-cabecera. Indicadores o campo de control (6 bits): Cada uno de los bits recibe el nombre de indicador y cuando est´ a 1 indica una funci´n espec´ a o ıfica del protocolo. A diferencia de lo que ocurre en los protocolos del nivel de enlace. Cuando el bit ACK est´ activo. • ACK: Indica que tiene significado el n´mero que hay almacenado en el campo “n´mero de u u confirmaci´n”. rlogin y ftp.Cap´ ıtulo 7. Es decir. a Ventana (16 bits): Indica cuantos bytes tiene la ventana de transmisi´n del protocolo de control de o flujo utilizando el mecanismo de ventanas deslizantes. Normalmente el tama˜o de la cabecera es de 20 bytes por lo que en este campo se almacenar´ el n a n´mero 5. Jose Antonio Escart´ Vigo. este campo indica cual es el ultimo a ´ byte de datos que es urgente. De esta manera se consigue que los datos no esperen en la memoria receptora hasta completar un segmento de dimensi´n o m´xima. en el TCP la ventana es variable y cuenta bytes. el protocolo y un campo longitud del segmento. • Aumentar el tama˜o de la ventana. direcci´n internet destino. o ı o o Puntero urgente (16 bits): Cuando el indicador URG est´ activo. o • SYN: Sirve para sincronizar los n´meros de secuencia. Es una t´cnica de optimizaci´n que se usa cuando hay tr´fico ıa e o a de datos en ambos sentidos. As´ se reduce el n´ mero total de paquetes requeridos. n a 1 Un paquete puede llevar dentro no s´lo los datos que van en direcci´n A-B. en los que la ventana es constante y se cuentan las tramas. ın . Infraestructura de redes 73 N´mero de confirmaci´n (ACK) (32 bits): El protocolo TCP utiliza la t´cnica de piggybacking 1 para u o e reconocer los datos. No se debe confundir con el indicador URG que sirve para se˜alar que la aplicaci´n a n o ha determinado una parte del segmento como urgente. Como se ha comentado anteriormente con o esta funci´n se indica al receptor que debe pasar a la aplicaci´n todos los datos que tenga o o en la memoria intermedia sin esperar a que sean completados. a a Reservado (6 bits): Se ha reservado para su uso futuro y se inicializa con ceros. Contiene el n´mero de bytes de datos comenzando con el que se indica u en el campo de confirmaci´n y que el que env´ est´ dispuesto a aceptar. el n´mero ACK=1 indica el ultimo bit reconocido. Este campo es utilizado por algunas aplicaciones como telnet. Junio 2005. De esta manera el receptor puede saber cuantos datos urgentes llegan. n • Indicar el tama˜o m´ximo del segmento que el origen puede enviar. La pseudo-cabecera incluye los siguientes campos de la cabecera IP: direcci´n o internet origen. sino tambi´n un ACK (acuse de recibo) de o o e otros datos que llegaron anteriormente en direcci´n B-A. u ´ Longitud de la cabecera (4 bits): Indica el n´mero de palabras de 32 bits que hay en la cabecera. • URG: Hay datos urgentes y en el campo “puntero urgente” se indica el n´mero de datos urgentes u que hay en el segmento. TCP se protege a s´ mismo de una transmisi´n err´nea de IP. De u esta manera el TCP puede saber donde se acaba la cabecera y por lo tanto donde empieza los datos. este campo contiene el n´mero de secuencia del a u primer byte que espera recibir. Opciones (variable): Si est´ presente permite a˜adir una unica opci´n de entre las siguientes: a n ´ o • Tiemstamp: para marcar en que momento se transmiti´ el segmento y de esta manera monitoo rizar los retardos que experimentan los segmentos desde el origen hasta el destino. porque de o ı u otra manera el ACK tendr´ que ocupar un paquete completo. o • PSH: Sirve para invocar la funci´n de carga (push). Si el TCP utiliza todos los campos de opciones la cabecera puede tener una longitud u m´xima de 60 bytes almacen´ndose en este campo el valor 15. u • FIN: Sirve para indicar que el emisor no tiene m´s datos para enviar. Con la o inclusi´n de esta pseudo-cabecera. • RST: Sirve para hacer un reset de la conexi´n.

6. o o 7. o le envia paquetes UDP. El TCP es el encargado de intercomunicar m´dulos SMTP o a o de las m´quina implicadas. de a manera que cuando un programa intenta abrir.6. Tal como hemos comentado al explicar el protocolo IP. datos adicionales y naturalmente el cuerpo de los mensajes.6. Protocolos de aplicaci´n o Los protocolos de aplicaci´n se pueden dividir en dos grupos seg´n su protocolo de transporte: o u UDP : NFS. Junio 2005.6. Este protocolo se basa en el protocolo UDP.3. DNS (Domain Name Server) El servicio de nombres de dominio (DNS) se utiliza para relacionar los nombres de dominio de los nodos con sus direcciones IP. Este protocolo no especifica como los mensajes deben ser editados. a˜adiendo a la derecha del nombre del host una serie de identificadores que corresponden a n con la organizaci´n o empresa a la que pertenece el sistema. DNS TCP : SMTP. leer o escribir en un fichero remoto. FTP. El n´cleo del a u sistema operativo de la m´quina cliente es modificado con un nuevo tipo de sistema de fichero NFS. que son identificadores descriptivos que permiten hacer referencia al equipo y equivalen a su direcci´n IP.74 Servidor Linux para conexiones seguras de una LAN a Internet Como TCP ha sido dise˜ado para trabajar con IP. el sistema siempre convierte ese nombre en a una direcci´n IP antes de establecer la conexi´n. o 7. que busca el nombre y devuelve la direcci´n IP. TELNET. a e 7. El c´digo del o sistema de ficheros NFS usa el protocolo RPC de SUN para comunicar con el c´digo servidor NFS que se o ejecuta en la m´quina remota. Desde la m´quina que necesita saber la direcci´n IP. a Jose Antonio Escart´ Vigo. 7. el SMTP lo acepta y usa el protocolo TCP para o enviarlo a un m´dulo SMTP de otra m´quina. Para hacer m´s sencillo el acceso a los sistemas. el destinatario. el programa establece una conexi´n TCP con el destino. o Cuando en un comando entramos un nombre de m´quina. el c´digo NFS o es llamado en lugar del c´digo “normal” para acceder a los manejadores de los discos f´ o ısicos. HTTP 7. Por ejemplo: prioridad (campo de 3 e o bits). algunos par´metros de usuario se pasan a n a trav´s de TCP a IP para su inclusi´n en la cabecera IP.4. SMTP (Simple Mail Transfer Protocol) Este es el protocolo dedicado a la transmisi´n de mensajes electr´nicos sobre una conexi´n TCP. NFS (Network File System) Utiliza el protocolo UDP y est´ basado en el RPC (Remote Procedure Call de SUN). SNMP. Con la ıa o direcci´n IP. retardo-normal / retardo-bajo. SNMP (Simple network management protocol) Es un protocolo cliente/servidor que normalmente es usado para configurar y monitorizar remotamente los equipos de la red Internet. seguridad-normal / seguridad-alta y protecci´n (campo de 11 bits). Los nombres DNS tambi´n se asignan de o e forma jer´rquica. o o o El protocolo especifica el formato de los mensajes definiendo la estructura de la informaci´n sobre el o remitente. o o a o se env´ un paquete UDP a un servidor DNS. rendimiento-normal / rendimiento-alto. leyendo o escribiendo bloques de ficheros en ´l. cerrar. ın . la asignaci´n de o direcciones sigue una estructura jer´rquica. En terminolog´ SNMP es ıa descrito como un protocolo manager/agent.2. cada host a a puede tener asignados uno o varios nombres de dominio DNS.6.1. Es necesario tener un editor local o un aplicaci´n nativa o de correo electr´nico. Una vez el mensaje es creado.

mediante la emulaci´n de terminal sobre una conexi´n TCP.5. TELNET (Remote login) Este protocolo permite a los usuarios conectarse a ordenadores remotos y utilizarlos desde el sistema local. Infraestructura de redes 75 7. De hecho. Sin embargo. a primeros de 1990. Los caracteres que se teclean en un cliente local son a enviados por la red y procesados en el ordenador remoto.7. del servidor al cliente. una segunda conexi´n TCP se o establece. Aunque TCP/IP se convirti´ en algo com´n a lo largo de 1980. El m´dulo cliente relaciona el m´dulo de entrada y salida del terminal para o o o que pueda comunicarse con el terminal local. Cuando o o o se completa la transferencia. la conexi´n de control es usada para transmitir la se˜alizaci´n de que la o n o transferencia se ha completado y para aceptar nuevos comandos de transferencia. el FTP establece una conexi´n TCP para el intercambio de mensajes de control. Est´ soportado sobre los servicios de conexi´n TCP/IP. o 7.6. y cuando un usuario quiere realizar la transferencia de un fichero. Junio 2005. HTTP (Hyper Text Transport Protocol) Este es un sencillo protocolo cliente-servidor que articula los intercambios de informaci´n entre los o clientesWeb y los servidores HTTP. Convierte las caracter´ ısticas de los terminales reales con los standards de las redes y viceversa. Protocolo TCP/IP En su ´poca. el o o protocolo TCP se encarga de mantener la comunicaci´n y garantizar un intercambio de datos libre de o errores. El m´dulo servidor interact´a con una aplicaci´n. sin la utilizaci´n de ninguna cabecera o informaci´n de control en la capa de aplicaci´n. Se utiliza para o o transferir p´ginas de hipertexto.6. las LAN Novell utilizaban un protocolo denominado IPX/SPX y las LAN Windows utilizaban otro est´ndar denominado a NetBEUI. el protocolo de red TCP/IP era un protocolo oculto utilizado principalmente por inse tituciones gubernamentales y educativas.6. ın . Por todo lo anteriormente expuesto hizo que cayeran los precios del hardo ware en sistema de red IP. la comunicaci´n cesaba. As´ se cre´ la ı o primera red tolerante al fallo. o o Jose Antonio Escart´ Vigo. Una vez se ha aceptado la transferencia del fichero. y una vez se establece la conexi´n. utilizando la informaci´n que ese ordenador o contiene. El resultado de su ejecuci´n se muestra en la pantalla del ordenador local. 7. o u no fue hasta el surgimiento de Internet. u a como una guerra nuclear. hecho que facilit´ la interconexi´n entre redes. en el caso de que se produjese alguna cat´strofe. 7. derivado del NetBIOS de IBM. Un proceso a a o servidor espera las solicitudes de conexi´n de los clientes Web. la mayor´ de las empresas segu´ utilizando los protocolos de red proporcionados por ıa ıan los fabricantes de su hardware. Este protocolo fue propuesto atendiendo a las necesidades de un sistema global de distribuci´n de informaci´n multimedia como el World Wide Web. para la transferencia de datos. cuando empez´ a convertirse en el est´ndar o a para la comunicaci´n de datos. De esta o manera se puede enviar el nombre de usuario. de manera que los o u o terminales remotos sean vistos por la aplicaci´n como terminal local. lo invent´ la agencia de investigaci´n militar de los o o Estados Unidos (DARPA) para proporcionar un sistema de redes sin interrupciones. TCP/IP ofrec´ o o o ıa una forma de empaquetar los datos y dejar que “encontraran” su propio camino por la red.7. Interconecta el cliente local de una o o m´quina con el servidor con el que se comunica. Su objetivo era crear una red que pudiera soportar m´ltiples fallos de enlace. Las LAN IBM utilizaban normalmente NetBIOS o SNA. Hay un control de acceso de los usuarios. los nombre de los ficheros y las acciones que se quieren realizar. Las comunicaciones de datos tradicionales siempre se hab´ basado en una sola ıan conexi´n directa y si dicha conexi´n se degradaba o se saboteaba.Cap´ ıtulo 7.6. Se o n implementa en dos m´dulos. Este protocolo fue o uno de los primeros que se defini´ y ha sido dise˜ado para trabajar con terminales de modo texto. El fichero se transfiere sobre la conexi´n o de datos. FTP implementa un sistema estricto de restricciones basadas en propiedades y permisos sobre los ficheros. el password. FTP (File Transfer Protocol) Permite la transferencia de ficheros de texto o binarios desde un ordenador a otro sobre una conexi´n o TCP.

o carga util. ın . o iniciar. Esta responde con un FIN/ACK para cerrar esa sesi´n TCP/IP. que quita todos los envoltorios y utiliza los datos que est´n dentro. a a ıa la transmisi´n. se abre y se interpreta cada capa y los datos restantes se pasan seg´n dichas instrucciones. he recibido el paquete SYN y estoy a ıa preparada”. Por ultimo. la carta llega al receptor. se abrir´ y se tirar´ el sobre exterior. Cuando se han enviado todos los datos. una parte env´ un o ıa ´ paquete FIN a la otra parte del enlace. Piensa en una carta ıa a dentro de un sobre que se env´ a una empresa de mensajer´ para su distribuci´n. partes no se produce. El paquete SYN est´ b´sicamente diciendo “¿Est´ preparada para el env´ de datos?”. env´ un SYN/ACK. pero mostrando la siguiente analog´ se entender´ mejor. ´ Parece algo confuso. la transmisi´n se pueda volver a montar. Dentro de esta capa se encuentra la informaci´n de la red. Todo esto ilustra la naturaleza de m´ltiples capas de las comunicaciones de red. Esta comunicaci´n se denomina Acuerdo de conexi´n TCP de tres v´ Si una de las tres ıo o o ıas. o Cuadro 7. A continuaci´n est´ la capa de aplicaci´n. Cada paquete se graba con un n´mero de secuencia de 32 bits u para que. etiqueta o a a los paquetes de datos con un n´mero de secuencia y reconoce cualquier n´mero de secuencia anterior u u utilizado por el anfitri´n en el otro punto. o denominada direcci´n IP. aunque lleguen en el orden err´neo. por lo que pueden colocarla en un sobre de correo ´ ınter-oficinas y enviarla al sitio apropiado. que indica al explorador o a o Web c´mo debe formatear una p´gina. se entregan a la aplicaci´n los u o datos reales. existe una comunicaci´n de tres a o v´ entre las m´quinas que utilizan el protocolo TCP para establecer una sesi´n. Address Resolution a o Protocol) para buscar la direcci´n Ethernet correspondiente a la direcci´n IP con la que est´ intentando o o a comunicarse. que establece una conexi´n y la o o cierra. entra la carga de datos real del paquete (el contenido o a ´ de una p´gina Web). “Bien. Por ultimo. La empresa de menıa ıa o sajer´ utiliza su propio sobre para enrutar el paquete al edificio correcto.76 Servidor Linux para conexiones seguras de una LAN a Internet Una red TCP/IP permite que los nodos de comunicaci´n establezcan una conexi´n y despu´s verifiquen o o e cu´ndo se inician y se detienen las comunicaciones de datos. ıas a o Una m´quina que desea enviar datos a otra m´quina env´ un paquete SYN para sincronizar. que o identifica el paquete en la red Ethernet. Mientras la m´quina est´ enviando sus datos. Ahora que puede comunicarse con la m´quina utilizando IP. a denominadas paquetes y se encapsulan en una serie de “envolturas”. Los datos a transmitir se cortan en secciones. Esta carta puede estar destinada a otro buz´n de correo a a o interno. a u Existen varias fases durante una comunicaci´n entre dos nodos de red que utilizan TCP/IP. lo primero que sucede es que o la m´quina genera una solicitud de Protocolo de resoluci´n de direcciones (ARP. el exterior de nuestro “sobre” de datos tiene la direcci´n Ethernet. La ´ a tabla 7. Por ultimo. o a a a ıo La otra m´quina. inicio el ´ a ıa env´ de datos”. A medida que el o o paquete cruza diferentes partes de la red. Cuando se reciba el paquete en ıa este edificio. que es un encabezado HTTP. Suponiendo o que estamos utilizando direcciones IP y nombres que no son del anfitri´n. Cuando el paquete de datos llega a su destino. Junio 2005. que significa “De acuerdo. y dentro se encuentra la capa de transporte. conteniendo cada una informaci´n o espec´ ıfica para la siguiente capa de red. o Jose Antonio Escart´ Vigo. la m´quina emisora env´ un paquete ACK de respuesta diciendo.4 resume c´mo encapsulan datos algunos protocolos de red. la conexi´n no tiene lugar.4: Paquete de datos TCP/IP de ejemplo Protocolo Ethernet IP TCP HTTP Datos de aplicaci´n o Contenido Direcci´n MAC o Direcci´n IP o Encabezado TCP Encabezado HTTP P´gina Web a Capa OSI Enlace de datos Red Transporte Aplicaci´n o Aplicaci´n o Como se puede comprobar.

a m´quina) o a FIN/ACK: Conexi´n finalizada (2. como ICMP. esta disponible en las versiones de kernel 2. comprobar el encabezado TCP y determinar a su estado y. Se o u pueden configurar para evitar categor´ completas de tr´fico. No existe ninguna raz´n para que o o alguien externo a nuestra empresa pruebe nuestra red con un ping. pueden mirar a la aplicaci´n o al n´mero de puerto TCP/UDP. a o En Linux el cortafuegos IPTables integrado en el n´cleo. As´ las m´quinas internas pueden comunicarse fuera de la red e iniciar a ı. Esta puede ser evitar su paso. a conexiones con el exterior pero las m´quinas externas no pueden iniciar nunca la conexi´n. algo muy importante para los cortafuegos porque la forma a o m´s com´n de bloquear el tr´fico saliente con un cortafuegos es no admitir los paquetes SYN del exterior a u a en m´quinas internas de la red. disponen de una IP p´blica. Junio 2005. Esto significa que podemos saber qu´ parte del di´logo se e a est´ produciendo s´lo con mirar a los paquetes. Funciona mediante la interacci´n directa con el n´cleo del sistema y nos sirve para hacer el o u filtrado de paquetes TCP/IP. pasan a trav´s de una serie de filtros. a o o el tr´fico que necesitamos de una forma selectiva. Si coinciden con el filtro.4x u o superior.a m´quina) a Transmision: Comunicaci´n entre las dos m´quinas o a FIN: Finalizo conexi´n (1. e Jose Antonio Escart´ Vigo. a Los cortafuegos pueden filtrar paquetes en distintos niveles. el cortafuegos va a permitir las r´plicas de eco (respuestas de ping). como los ping. Pueden mirar una direcci´n IP y bloquear o el tr´fico proveniente de determinadas direcciones o redes IP.Cap´ ıtulo 7.a m´quina) o a Debido a la forma en que TCP/IP controla la iniciaci´n y finalizaci´n de una sesi´n. pasarlo o enmascararlo con una direcci´n IP privada interna. se lleva a cabo alguna e a e acci´n. la interfaz WAN se u a n conecta a Internet. en niveles superiores. Infraestructura de redes 77 Cuadro 7. Los paquetes externos de tipo ıas a ICMP. La o ´ o mejor pr´ctica para la configuraci´n del cortafuegos es denegarlo todo siempre y permitir. Si no lo rechazamos expresamente. En las redes m´s peque˜as.a m´quina) a ACK: Transmito (1. esta interfaz se denomina interfaz de confianza o privada.a m´quina) o a SYN/ACK: De acuerdo. Generalmente los cortafuegos tienen dos o m´s interfaces (tarjetas de red). Una interfaz se conecta a normalmente a la LAN interna. ın . e que normalmente es para los servidores que necesitan exponerse m´s a Internet de forma que los usuarios a externos pueden conectarse a ellos.5: Esquema de transmisi´n TCP/IP o 1 2 3 4 5 6 SYN: Inicio la conexi´n (1. Todos los paquetes que intentan pasar a u trav´s de la m´quina. Tambi´n puede existir una tercera interfaz denominada DMZ (Desmilitarized Zone). las comunicao o o ciones TCP/IP se dice que tienen un estado. a continuaci´n. listo para recibir (2. normalmente se rechazan en los cortafuegos porque dichos paquetes se utilizan a menudo en el descubrimiento de redes y denegaci´n de servicio (DoS). La otra interfaz es para la parte p´blica (WAN) de nuestro cortafuegos.

.

ya que no tiene interfaz gr´fica.1. en Debian la interfaz que podemos utilizar es etherconf. direcci´n es la direcci´n o o IP que se desea aplicar al dispositivo y opciones es una de las siguientes: . que arrancar´ debconf. o 8. a 8. .Cap´ ıtulo 8 Configuraci´n de dispositivos de red o En Debian el archivo de configuraci´n de los dispositivos de red es: o /etc/network/interfaces En su interior encontraremos el modo de funcionamiento de todos los dispositivos de red del sistema. Todas estas operaciones se realizan a trav´s de la l´ e ınea de comandos. a Y nos realizar´ unas preguntas. a Existen varias herramientas que se han escrito para cubrir la falta de interfaz gr´fica o de men´s del a u comando ifconfig. Ifconfig: Configurador de red El programa ifconfig es responsable de configurar las tarjetas de interfaz de red (NIC. .2. Etherconf: Configurador gr´fico de red a Es el configurador gr´fico para redes de Debian y se instala con el siguiente comando: a #apt-get install etherconf Para configurar las tarjetas de red autom´ticamente hay que ejecutar el comando: a #dpkg-reconfigure etherconf. eth0). El formato del comando ifconfig es el siguiente: #ifconfig dispositivo direccion opciones Donde dispositivo es el nombre del dispositivo ethernet (por ejemplo. En este cap´ ıtulo trataremos su configuraci´n mediante una serie de herramientas. Muchas de ellas vienen en las distribuciones de Linux. Network Interface Card). . para configurar nuestro sistema.

Junio 2005.0 b) TX bytes:0 (0. Si no se propora o ciona un valor. Esta opci´n es impl´ o ıcita Desactiva el dispositivo Activa este dispositivo para responder peticiones. .255.0 Configura la direcci´n de broadcast de la interfaz de direcci´n.0.168. necesitaremos o o determinar expl´ ıcitamente las direcciones de broadcast y de m´scara en la l´ a ınea de comandos: #ifconfig dispositivo ip netmask num_mascara broadcast num_broadcast Se pueden listar todos los dispositivos activos ejecutando: #ifconfig. una de clase B o a 255. a a a a Si la direcci´n IP que configuramos es una direcci´n de clase A o B dividida en subredes. . .11 Bcast:192.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2506 errors:0 dropped:0 overruns:0 frame:0 TX packets:5953 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2280653 (2.3.255 Mask:255. .0 y la clase C 255.8 MiB) TX bytes:29170217 (27.0.255. est´n activos o no.255.1 MiB) TX bytes:707464 (690. ifconfig calcula la direcci´n de broadcasta basada o en la clase de la direcci´n IP de manera parecida a la m´scara de red o a Configura la conexi´n punto a punto (PPP) donde la direcci´n remota es o o direcci´n o Un ejemplo de uso simple podr´ ser el siguiente: #ifconfig eth0 192.0. o a Bajo ethernet. .0.80 Servidor Linux para conexiones seguras de una LAN a Internet Opci´n o up down arp -arp mtu valor netmask direcci´n o broadcast direcci´n o pointtopoint direcci´n o Descripci´n o Activa el dispositivo.0.0. . Donde el dispoıa sitivo eth0 quedar´ configurado con la direcci´n IP 192.3.8 KiB) Interrupt:6 eth1 Link encap:Ethernet HWaddr 00:00:00:00:00:00 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:1 collisions:0 txqueuelen:1000 RX bytes:0 (0. Con la opci´n -a: #ifconfig -a.0.0.0. . por defecto Desactiva este dispositivo para responder a peticiones arp Configura la unidad de transmisi´n m´xima (MTU) del dispositivo a valor.0. para desactivar el dispositivo Para visualizar los dispositivos del sistema basta con ejecutar: #ifconfig Si estamos en un cliente habr´ que especificar toda la ruta: a $/sbin/ifconfig A continuaci´n podemos observar la salida del servidor que se utiliza en el proyecto: o $/sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:C0:9F:6E:1D:E0 inet addr:192.168.255.168. para activar el dispositivo #ifconfig dispositivo down. el valor por defecto es 1500 Configura la m´scara de red de esta interfaz a direcci´n. .0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:139967 errors:0 dropped:0 overruns:0 frame:0 TX packets:139967 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:29170217 (27.0 y el broadcast ser´ 192. .0.0 b) Interrupt:10 Link encap:Local Loopback inet addr:127. con el comando ifconfig podemos habilitar y deshabilitar los dispositos de red: o #ifconfig dispositivo up.0.255.255.1 Mask:255.255. Una direcci´n de clase A tiene una m´scara 255.0. .168. ifconfig calcula la m´scara basada en la clase de la direcci´n a o IP. se mostrar´n todos los dispositivos. Si no se o o proporciona un valor.8 MiB) lo Jose Antonio Escart´ Vigo. . asign´ndolos ifconfig por defecto. ın . o a e En tiempo de ejecuci´n. la a o o m´scara ser´ 255. . Como es una direcci´n de clase C.168.255.

0.0 dev ppp0 Jose Antonio Escart´ Vigo. muchas m´quinas no conocen el u a camino correcto al destino. este valor lo configurar´ el instalador. que a se sit´a entre redes. de forma que los paquetes destinados a las m´quinas de esa misma a red se env´ directamente a ellas. como a menudo pasa en los servidores. que idealmente sabe a d´nde deber´ ir el paquete o ıa o.3. Configurar una ruta por defecto en mi m´quina.168. Una m´quina t´ a ıpica Linux conoce al menos tres rutas: La primera es la ruta de bucle local que simplemente apunta a su dispositivo de loopback.3 netmask 255. se usa una a o ruta por defecto. Si configuramos la red en tiempo de instalaci´n.3 se env´ a trav´s del ıen e primer dispositivo PPP: #route add -host 192. Esta ruta se usa para paquetes que necesitan abandonar la LAN para comunicarse con otras redes.0. direcci´n o a o Valor -net o -host dependiendo si direcci´n representa una direcci´n de red o una o o direcci´n de un enrutador o La red destino que quiere ofrecer para enrutar Configura la m´scara de red de la direcci´n direcci´n a masc a o o Configura la la direcci´n de enrutador para direccion a gatew. Junio 2005. en estos momentos deshabilitada. Normalmente se usa o como ruta por defecto Env´ todos los paquetes destinados a direcci´n a trav´s de la red del dispositivo ıa o e destino seg´n se configura con ifconfig u Podemos ver el uso del comando con los siguientes ejemplos: 1. Este camino apunta a un enrutador.168. Este aparato. Si eliminamos n una ruta.1 dev eth0 2.255. La segunda es la ruta a la LAN.168.0.0.255. s´lo necesitamos otro par´metro. El comando route t´ ıpico se estructura de la siguiente forma: #route cmd tipo direccion netmask masc gw gatw dev destino Los parametros significan lo siguiente: Par´metro a cmd tipo direcci´n o netmask masc gw gatw dev destino Descripci´n o Valor add o del dependiendo de si a˜adimos o borramos una ruta.168. As´ que no suele o a ı ser necesario cambiarlo. As´ mismo. al menos. la cual tiene un dispositivo Ethernet y un enrutador a en 192. necesitamos un enrutador. Route: Tablas de redireccionamiento Si la m´quina se conecta a una red con varias subredes.Cap´ ıtulo 8. de loopback. en este caso eth0 es una tarjeta de red LAN y eth1 una tarjeta de red wifi. ıan La tercera es la ruta por defecto. Configurar un sistema para que todos los paquetes destinados a 192. o En el caso donde una m´quina ni siquiera tiene una pista sobre d´nde enviar el paquete. redirige paquetes a su destino real (normalmente. Suele ser necesario cuando tenemos varias tarjetas instaladas en un mismo equipo. enrutadores o cortafuegos.1: #route add -net default gw 192. tambi´n podemos observar el ı e dispositivo lo. s´lo conocen el propio destino). lo cual no quiere decir que no se pueda. sabe otra ruta que puede tomar. ın . 8. Configuraci´n de dispositivos de red o 81 Se puede observar que dispone de dos tarjetas de red.

normalmente medida en saltos (hops).168. Est´ aqu´ debido u a ı a que la propia herramienta route es de plataformas cruzadas.168. Esto es significativo para los sistemas que tienen varias rutas para llegar al destino. configurada por la opci´n dev de route).168. Por ejemplo. hay que u e usar la opci´n -F cuando invoquemos route o Metric Ref Use Jose Antonio Escart´ Vigo. Junio 2005.0 Para visualizar la tabla de enrutamiento utilizaremos: #route Route visualiza los nombres de m´quinas a cualquier direcci´n IP que podr´ buscar y resolver. donde cada letra tiene un significado: o U: la conexi´n est´ arriba o a H: el destino es una m´quina a G: el destino es la pasarela El “coste” es una ruta.0.0.1. presenta un problema cuando hay dificultades de red y no se consigue llegar a los servidores DNS o NIS.255. Aunque a o ıa es bueno leerlo. pero se prefiere una ruta sobre el resto. ı pues otros sistemas operativos lo usan El n´mero de bucles de cache de rutas utilizados con ´xito.82 Servidor Linux para conexiones seguras de una LAN a Internet 3.0 0. El comando route esperar´. necesitamos asegurarnos primero de que tenemos una ruta a la red 192.255.1. ın . Las otras entradas de la tabla tienen el significado o siguiente: Entrada Flags Descripci´n o Un sumario de estado de conexi´n.1. Esto no se usa en el kernel de Linux.3 Hay otra cosa a tener en cuenta. m´scara (referido como genmask) e iface a (interfaz. As´ se imprime este valor.168.3: ı #route del 192.0. tratando de resolver los nombres de m´quinas y esperando para a a ver si los servidores devuelven y los resuelven. pero s´ lo hacen algunos protocolos de enrutamiento avanzados.0 * default . Esta espera ser´ de varios minutos hasta que la petici´n a o devuelva un timeout. Genmask 255.0 Flags Metric Ref U 0 0 UG 0 0 Use Iface 0 eth0 0 eth0 Podemos observar varias columnas como destino. pasarela. El kernel de Linux no usa e esta informaci´n.0.168. Para evitar que route realice resoluci´n de nombres ejecutaremos: #route -n o Este ser´ un ejemplo de la salida de una m´quina con acceso a la LAN y a internet por una pasarela: ıa a # route Kernel IP routing table Destination Gateway 192. o ı El n´mero de referencias de la ruta. necesitamos asegurarnos de que existe una ruta a la pasarela antes de referenciarla como otra ruta. Para ver este valor. As´ se borra una ruta destino a 192. si la ruta por defecto usa la pasarela de 192. Un camino con m´trica baja es el preferido. si usamos una pasarela (gateway).0.

simplemente: #pump -i dispositivo. Internet Software Consortium) o dhcpcd (Yoichi Hariguchi y Sergei Viznyuk) pump (Red Hat) Pump es sencillo y ampliamente utilizado. Configuraci´n de interfaces usando DHCP o DHCP (Dynamic Host Configuration Protocol).Cap´ ıtulo 8. . Junio 2005. pero en n redes de un cierto tama˜o esta tarea puede convertirse en agotadora.5. ın . a o En redes peque˜as las direcciones IP pueden asignarse de forma manual. Para instalarlo: #apt-get install pump Y para utilizarlo. . como por ejemplo: #pump -i eth0 Dhcp3-client es complejo pero m´s configurable. . Netstat: Estado de las conexiones El programa netstat se utiliza para mostrar el estado de todas las conexiones de red de una m´quina. sino por la dificultad de mantener un registro con las IPs asignadas para evitar duplicados. .4. equipo por equipo. . Para instalarlo: a #apt-get install dhcp3-client Y para utilizarlo ejecutamos: #dhclient3 dispositivo. no s´lo por tener que editar cada n o uno de los hosts. en la siguiente tabla se muestran las m´s comunes: a Cuadro 8. como por ejempo: #dhclient3 eth0 Este comando tiene otras opciones que pueden ser consultadas con el manual del sistema: $man dhclient Jose Antonio Escart´ Vigo.1: Opciones de Netstat Opci´n o -a -i -c -r -n -t -u -v Descripci´n o Visualiza la informaci´n de todas las conexiones activas o Visualiza las estad´ ısticas de todos los dispositivos de red configurados Actualiza la informaci´n visualizada cada segundo o Muestra la tabla de enrutado Visualiza las direcciones locales y remotas en formato num´rico e Muestra tan s´lo la informaci´n de TCP o o Muestra tan s´lo la informaci´n de UDP o o Visualiza la versi´n de netstat o 8. Configuraci´n de dispositivos de red o 83 8. Para que esto funcione debemos instalar uno de los siguientes paquetes: dhcp3-client (versi´n 3. a La opciones de netstat son combinables. . es un protocolo de red empleado para asignar de forma autom´tica una direcci´n IP a los hosts que se conectan a ella.

1 es la direcci´n de la puerta de enlace de la LAN Internet.168. Direcciones IP din´micas a Para configurar una interfaz usando DHCP editamos el /etc/network/interfaces de manera que incluya un fragmento como el siguiente: iface eth0 inet dhcp Para que esto funcione debemos tener instalado un cliente DHCP (V´ase secci´n 8. Archivo /etc/network/interfaces El archivo especifica la configuraci´n de nuestros dispositivos de red y puede ser configurado a mano. 8.1. los argumentos de las opciones dns-search y dns-nameservers e quedan disponibles para resolvconf para su inclusi´n en resolv.168.conf. Direcci´nes IP est´ticas o a Supongamos que se desea configurar una interfaz ethernet que tiene una direcci´n IP fija 192.0 192.2.123 255.1 dns-search nicedomain.0. Editamos /etc/network/interfaces o de modo que incluya un fragmento como el siguiente: iface eth0 inet address netmask gateway static 192.6.0.2. Los argumentos 195. para m´s o o ıa a informaci´n cons´ltela. e o Jose Antonio Escart´ Vigo.0 por lo tanto debe estar en una LAN.0.22 Despu´s de que se activa la interfaz.0.238.238.168.6. ın . Otras opciones reconocidas en el archivo son dns-domain y dns-sortlist.conf.255.255.168.0 gateway 192.6.1 Si tenemos instalado el paquete resolvconf podemos a˜adir las siguientes l´ n ıneas para especificar la informaci´n relativa al DNS: o iface eth0 inet static address 192. Junio 2005.238.0.84 Servidor Linux para conexiones seguras de una LAN a Internet 8. Supongamos adem´s que o a 192.0.255. o u 8. o Esta direcci´n comienza con 192.org dns-nameservers 195.2.168.21 y 195. o Los comandos: #ifdown dispositivo y #ifup dispositivo.123 netmask 255.21 195.255. utilizan el archivo para habilidar y deshabilitar los dispositivos de red.238.22 de la opci´n dns-nameservers corresponde a los arguo mentos de las opciones nameserver en resolv. Esta secci´n esta basada en la configuraci´n de la red de la gu´ de referencia Debian.123.2. o El argumento nicedomain.168.org de la opci´n dns-search corresponde al argumento de la opcin search en o resolv.5).conf.168. En las siguientes secciones se especifica la forma de configurar el archivo /etc/network/interfaces.2.

3. Interfaz PPPoE Muchos Proveedores de Servicios de Internet (ISPs) de banda ancha utilizan PPP para negociar las conexiones incluso cuando las m´quinas de los clientes est´n conectadas mediante ethernet y/o redes ATM.6. A a a continuaci´n. Editamos /etc/network/interfaces de a o a modo que incluya un fragmento similar al siguiente: iface eth0 inet dhcp iface eth1 inet static address 192. para fijar el ESSID de eth1 a a miessid y la clave de cifrado en 123456789e antes de activar eth1 y usando DHCP. Junio 2005. La manera m´s f´cil de hacerlo consiste en instalar el paquete pppoeconf y ejecutar pppoeconf desde la consola. mediante una puerta de enlace.168. Puertas de enlace Supongamos que eth0 est´ conectada a internet con un direcci´n IP configurada con DHCP y eth1 a o est´ conectada a la LAN con una direcci´n IP est´tica 192.168. podemos compartir la conexi´n a o de internet con todas las m´quinas de la LAN. La configuraci´n se realiza usando el o programa iwconfig (v´ase secci´n 8.1. Configuraci´n de dispositivos de red o 85 8.1.6.5. Debemos observar que si el m´dem posee un router. Me han facilitado un usuario y contrase˜a que utilizo o n para validarme en su servidor y recibir el servicio. Primero configuramos PPP y PPPoE para mi isp. Hay que acudir al manual en estos casos. mi proveedor de servicios me ha instalado un ı o m´dem/router de este estilo y no me es necesario. si esto es as´ el m´dem/router maneja por s´ mismo o ı o ı la conexin PPPoE y aparece del lado de la LAN como una simple puerta de enlace Ethernet a Internet.11a/b/g) antes que se active la interfaz. a Jose Antonio Escart´ Vigo. a a Esto se logra mediante PPP sobre ethernet (PPPoE) que es una t´cnica para el encapsulamiento del flujo e PPP dentro de las tramas ethernet. e o Para cada par´metro del comando iwconfig podemos incluir una opci´n en /etc/network/interfaces a o con un nombre como el del par´metro con el prefijo “wireless-”.6.10).255. Por ejemplo. Interfaz Wifi El paquete wireless-tools incluye el script /etc/network/if-pre-up.Cap´ ıtulo 8. ın . editamos el archivo /etc/network/interfaces de modo que incluya un fragmento como el siguiente : iface eth1 inet dhcp wireless-essid miessid wireless-key 123456789e 8.255. 8.4.1 netmask 255.d/wireless-tools que permite configurar hardware Wifi (802. editamos /etc/network/interfaces de modo que incluya un fragmento como el siguiente: o iface eth0 inet ppp provider mi_isp A veces surgen problemas con PPPoE relativos a la Unidad de Transmisin Mxima (Maximum Transmit Unit o MTU) en l´ ıneas DSL (Digital Subscriber Line).1. En mi caso. As´ no hay que realizar la configuraci´n. Supongamos que el ISP se llama mi isp.0 Si activamos NAT en esta m´quina.

6. supongamos que la m´quina se encuentra en una red LAN a 192.1 netmask 255.0.255.0 broadcast 192. Las definiciones iface en /etc/network/interfaces son. Junio 2005. e a 8. La raz´n es que ifup utiliza el nombre de la interfaz f´ o ısica como el nombre de la interfaz l´gica eth0 predeterminada y. n o especificando: #ifup eth0=hogar Para reconfigurar eth0 en la red del trabajo.255.168.168. supongamos que nuestra m´quina es un equipo port´til que transportamos de casa al a a trabajo. necesitamos a n configurar eth0 adecuadamente.255. Y deseamos conectar la m´quina a Internet usando una direccin IP p´blica proporcionada a u con DHCP usando su tarjeta ethernet existente. ın . Interfaces virtuales Usando interfaces virtuales se puede configurar una unica tarjeta ethernet para que sea la inter´ faz de distintas subredes IP.0.0.255. ppp1. lo que hemos designado con eth0.6. en realidad. Al activarse tambi´n lo har´ su padre eth0. la interfaz f´ ısica eth0 se puede activar en la red hogare˜a con la configuraci´n apropiada.123 netmask 255. etc.1 De esta forma. Una interfaz l´gica es un conjunto de valores que pueden asignarse a los par´metros variables de una o a interfaz f´ ısica.201. en el archivo /etc/network/interfaces dos interfaces l´gicas: hogar y trabajo (en vez de eth0 como hicimos antes) que describen c´mo deber´ configurarse la o o ıa interfaz para la red hogare˜a y la del trabajo respectivamente.168. Vamos a definir. o Una interfaz f´ ısica es lo que hemos estado llamando “interfaz o dispositivo” de red.168.255 iface eth0:0 inet dhcp La interfaz eth0:0 es una interfaz virtual.168. en nuestro ejemplo no hay una interfaz l´gica definida. No obstante. ejecutamos los comandos: #ifdown eth0 #ifup eth0=trabajo Observamos que con el archivo interfaces escrito as´ ya no resultar´ posible activar eth0 haciendo ı a solamente ifup eth0. Cuando conectamos la m´quina a una red corporativa o a nuestra LAN hogare˜a.1.3. n iface hogar inet static address 192.123 netmask 255. Por ejemplo.0 gateway 192.168.0. Reconfiguraci´n de la red o Aqu´ es necesario diferenciar entre interfaz f´ ı ısica y interfaz l´gica. en realidad.0 network 192.0.1 iface trabajo inet static address 81.0. o o Jose Antonio Escart´ Vigo.0.255. definiciones de interfaces l´gicas no o de interfaces f´ ısicas.x/24.7. Editamos /etc/network/interfaces de modo que incluya un fragmento similar al siguiente: iface eth0 inet static address 192.0 gateway 81.86 Servidor Linux para conexiones seguras de una LAN a Internet 8.201.

a menudo resulta mejor manejar la configuraci´n de la red usando m´todos din´micos. Por lo tanto. Junio 2005. el script de init.7.1. supongamos que el servicio ‘loquesea’ controlado por el script de init /etc/init.d/loquesea stop 8. a Se puede observar que los servicios que dependen del hardware que se conecta en caliente s´lo deben o iniciarse despu´s de que el hardware haya sido insertado y deben detenerse cuando se hayan eliminado. en casi todos los casos uno desea por lo menos que la interfaz de retorno lo (loopback) se active en el arranque.2). Deber´ a ıamos actuar siguiendo este esquema: Primero eliminamos ‘loquesea’ del control del sistema init.2. Configuraci´n de dispositivos de red o 87 Una vez visto como se reconfiguran las interfaces. El arranque se puede considerar como un a a a simple evento hotplug (V´ase secci´n 8. ın . u 8. Configuraci´n de red durante el arranque o Al arrancar. Hotplug Para el soporte del arranque en caliente instalamos el paquete hotplug: #apt-get install hotplug El hardware de red se puede enchufar en caliente ya sea durante el arranque.d/S40networking se ejecuta el comando ifup -a. si descubre e alg´n dispositivo lo instala. El primer soporte se a˜adi´ para la inserci´n en caliente de tarjetas PCMCIA. nos aseguramos de que /etc/network/interfaces incluya las siguientes l´ ıneas: auto lo iface lo inet loopback Se puede listar los nombres de interfaces f´ ısicas adicionales en las secciones auto si desea que tambi´n e se activen durante el arranque.7. o despu´s de que una utilidad como discover a e se haya ejecutado y cargado los m´dulos necesarios. bajo el control de ifupdown.7. e Esto significa que dichos servicios deben liberarse del control del sistema init System V y ponerlos.Cap´ ıtulo 8. en cambio. por ejemplo). Por ejemplo. hay que precisar que la reconfiguraci´n necesita o realizarse en el momento apropiado. Actualmente existe una tendencia en GNU y Linux al soporte de hardware y entornos que cambian din´micamente.d/loquesea start down /etc/init. /etc/rcS. cardmgr se inicia durante el arranque despu´s de /etc/rcS. o e a Una vez configurados los mecanismos para el soporte de hardware que cambia en forma din´mica. o Jose Antonio Escart´ Vigo. e o No obstante. Nunca debemos de incluir las interfaces PCMCIA en las secciones auto. resulta a m´s sencillo tratar el hardware est´tico como si fuera din´mico. m´s a n o o a recientemente ha sido incorporado el mecanismo hotplug para que muchos m´s perif´ricos se puedan a e enchufar y desenchufar mientras la m´quina se encuentra funcionando. Actualmente.d/loquesea depende din´micamente de la interfaz de red reconfigurada eth0. tras haber insertado la tarjeta en la m´quina (una tarjeta PCMCIA.d/S??loquesea Luego pongamos ‘loquesea’ bajo el control de ifupdown a˜adiendo las opciones up y down en la n secci´n eth0 de /etc/network/interfaces que contiene las llamadas al script init loquesea: o iface eth0 inet dhcp up /etc/init. Esto incluye el hardware de red. Esto activa todas las interfaces f´ ısicas que aparecen en las secciones auto de /etc/network/interfaces. Si est´ ultilizando el sistema init sysv-rc a entonces hacemos lo siguiente: # rm /etc/rc?.d/S40networking. Para el PCMCIA.

Este comando est´ dise˜ado o a n para funcionar sin que sea necesaria ninguna configuraci´n manual.conf Si no hemos instalado el paquete resolvconf. utilizamos grep en vez de echo o como se muestra a continuaci´n: o mapping hotplug script grep map eth0 8. y las aplicaciones que necesitan dicha informaci´n.d/net/ifplugd.7. Al insertar una tarjeta.hotplug inicia una instancia de ifplugd para dicha interfaz.agent.conf. En Debian. En ´l e podemos especificar hasta tres servidores de nombres. El hardware de red reci´n conectado es configurado por el /etc/hotplug/net. ejecuta nuevamente hotplug a con par´metros diferentes. o Para la resoluci´n de nombres se utiliza el archivo de configuraci´n: o o /etc/resolv. Cuando ifplugd ve que el estado del enlace ha cambiado ejecuta un script que por defecto ejecuta ifup o ifdown para la interfaz. 8.agent hace lo siguiente: #ifup eth0=hotplug Para que una interfaz pueda ser configurada por hotplug debemos a˜adir la referencia a hotplug en en n /etc/network/interfaces. Cuando ifplugd detecta que la tarjeta es conectada a una red. Supongamos que e la tarjeta de red PCMCIA ha sido conectada lo que implica que la interfaz eth0 esta lista para usar. a˜adimos las siguientes l´ n ıneas: mapping hotplug script echo Si s´lo deseamos que eth0 se active en caliente y no otras interfaces. /etc/hotplug. Soluciona el antiguo problema de mantener las listas din´micas a de los nombres de los servidores para ser usadas por el sistema de resoluci´n y los cach´s DNS. La l´ ınea search se emplea para especificar que busque un dominio. podemos editar a mano el fichero /etc/resolv. Resolvconf: Resoluci´n de nombres o El paquete resolvconf proporciona un marco para la administraci´n din´mica de la informaci´n relativa o a o a los servidores de nombres disponibles. ifplugd funciona correctamente en combinaci´n con hotplug. ın .8.88 Servidor Linux para conexiones seguras de una LAN a Internet Cuando el kernel detecta nuevo hardware inicializa el controlador para el hardware y luego ejecuta el programa hotplug para configurarlo. siendo los dos ultimos utilizados en caso de que no ´ se encuentre disponible el primero. Jose Antonio Escart´ Vigo. Si m´s tarde se elimina el hardware.3. cuando se llama a hotplug ´ste ejecuta los scripts contenidos en a e /etc/hotplug/ y /etc/hotplug.d/. ejecuta ifup para esta interfaz. Ifplugd Ifplugd activa o desactiva una interfaz dependiendo si el hardware subyacente est´ o no conectado a la a red. Junio 2005. lo que significa que o la interfaz est lista para usar. La l´ ınea domain se emplea para definir el nombre de dominio por defecto que se a˜adir´ a los n a nombres de host que no contengan dominio. Para que este comando configure eth0. El programa puede detectar un cable conectado a una interfaz ethernet o un punto de acceso asociado a una interfaz wifi. Resolvconf o e es el intermediario entre los programas que controlan las interfaces de red y suministran informaci´n de o los servidores de nombres. /etc/hotplug/net.

El archivo /etc/hosts contiene un conjunto de nombres de hosts con sus correspondientes direcciones IP.conf # Dynamic resolv.168. .conf(5) file for glibc resolver(3) generated by resolvconf(8) domain example. En redes peque˜as y sin conexi´n a Internet este archivo puede utilizarse en lugar de un servidor n o DNS. donde se especifican los hosts que tienen acceso al sistema. Junio 2005. o Linux se encargar´ de buscar esta direcci´n dentro del archivo /etc/hosts a o Puede emplearse para proporcionar un conjunto m´ ınimo de nombres de hosts en caso de que el servidor de DNS se encuentre desactivado o durante el proceso de arranque de Linux.allow. intentar con NIS (Network Information Server).com nameserver 192. /etc/hosts. Ejecutando el comando: #iwconfig.6 89 8. es decir configurar la red.4 nameserver 194.52.52. ın . Para este prop´sito /etc/hostname o contiene el nombre de la m´quina. . . o a /etc/hosts. Archivos de configuraci´n de Hosts o Existen varios archivos que tienen que ver con los hosts de nuestro sistema: Un sistema Debian a veces necesita identificarse por su nombre. Este archivo unicamente deber´ contener el nombre de la m´quina a ´ a a y no el nombre de dominio completo.9. Configuraci´n de dispositivos de red o Esto podr´ ser un contenido t´ ıa ıpico: #cat /etc/resolv.224. De esta forma podremos hacer referencia a los mismos sin especificar su direcci´n.nis El significado de estos par´metros es que cualquier tipo de resoluci´n de nombres primeramente debe a o ser ejecutada en el archivo /etc/hosts.1 nameserver 194. . Jose Antonio Escart´ Vigo. sin parametros observaremos cuales son las interfaces wireless de nuestro sistema. si despu´s de consultar este o e servicio no es posible la resoluci´n.224. posteriormente se debe consultar a Bind y si a´n no se ha u logrado la resoluci´n. este archivo normalmente contiene a la siguiente l´ ınea: order hosts. donde se especifican los hosts a los que se proh´ el acceso al sistema ıbe 8.Cap´ ıtulo 8. el Resolver responder´ que no fue posible localizar el host. En ´l especificaremos los nombre de todos los equipos conectados a la red y su correspondientes e direcciones IP. pero en este caso la red wireless.0. Iwconfig: Configuraci´n wireless o Para poder configura la red inal´mbrica necesitamos instalar los siguientes paquetes: a #apt-get install wireless-tools wavemon El comando iwconfig tiene las mismas funciones que ifconfig.bind. . Contiene el orden o en el que ser´n ejecutadas las resoluciones que requiera el host. El archivo /etc/host.deny.conf dice al sistema c´mo resolver los nombres de los hosts. .10.

14).5). monitor del estilo de top para conexiones wireless. ser´ necesario instalar un cliente WPA (para esta o a configuraci´n dir´ o ıjase a la secci´n 14.11. a˜adiendo al principio “s:”: n #iwconfig eth1 key s:clave-secreta Este comando tiene multitud de opciones que pueden ser consultadas en el manual del sistema: $man 8 iwconfig. a 8. ın . Ve´moslo con unos ejemplos: a Asignar el nombre de “NodoEjemplo” a nuestra red: #iwconfig eth1 essid NodoEjemplo Asignar una clave WEP hexadecimal #iwconfig eth1 key 1234123412341234abcd Asignar una clave WEP ASCII. no wireless extensions. Para m´s informaci´n dir´ a o ıjase al cap´ ıtulo Redes inal´mbricas (cap.5. Resoluci´n de problemas o Si encontramos problemas en la instalaci´n de red podemos ejecutar los siguientes comandos y consultar o las salidas: #ifconfig #cat /proc/pci #cat /proc/interrupts #dmesg | more Jose Antonio Escart´ Vigo. Si utilizamos claves WPA.3. o Podemos tener un monitor de la conexi´n wireless con: o $wavemon. Junio 2005. . tanto en hexadecimal como en ASCII. .90 Servidor Linux para conexiones seguras de una LAN a Internet Por ejemplo la salida del servidor es la siguiente: # iwconfig lo eth0 eth1 no wireless extensions.6. y establecer la clave a WEP del sistema. . Para configuraciones m´s complejas es mejor que editemos el archivo /etc/network/interfaces como se a describe en la secci´n 8. unassociated ESSID:off/any Mode:Managed Channel=0 Access Point: 00:00:00:00:00:00 Bit Rate=0 kb/s Tx-Power=off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 Las opciones b´sicas de iwconfig sirven para determinar el nombre del ESSID.

Parte III Instalaci´n de Servicios o .

.

DHCP es un protocolo m´s avanzado. o a Asignaci´n autom´tica: Donde una direcci´n de IP libre obtenida de un rango determinado por el o a o administrador se le asigna permanentemente a la computadora que la requiere. o Este protocolo apareci´ como protocolo est´ndar en octubre de 1993 y existe un proyecto abierto para o a desarrollar DHCPv6.1.1. El DHCP o le permite al administrador supervisar y distribuir de forma centralizada las direcciones IP necesarias y. asignar y enviar una nueva IP si el ordenador es conectado en un lugar diferente de la red. o a El DHCP es una alternativa a otros protocolos de gesti´n de direcciones IP de red como el BOOTP o (Bootstrap Protocol). conectadas a la red (m´scara.wikipedia. La informaci´n de esta secci´n a sido obtenida de la enciclopedia libre: http://es. S´lo las computadoras con una o direcci´n MAC que figure en dicha tabla recibir´n la IP asignada en dicha tabla. respento a este. en redes IPv6. se debe de configurar otra direcci´n IP diferente. en la red. o a ´ e o a El administrador de la red determina un rango de direcciones IP y cada computadora conectada a la red est´ configurada para solicitar su direcci´n IP al servidor cuando la tarjeta de interfaz de red a o se inicializa. Asignaci´n de direcciones IP o Sin DHCP.1. Servidor DHCP El Protocolo de configuraci´n din´mica de servidores (DHCP. Asignaci´n din´mica: El unico m´todo que permite la reutilizaci´n din´mica de las direcciones IP. autom´ticamente. Dynamic Host Configuration Protocol). o a es un protocolo de red en el que un servidor provee los par´metros de configuraci´n a las computadoras a o que lo requieran. a El protocolo DHCP incluye tres m´todos de asignaci´n de direcciones IP: e o Asignaci´n manual : Donde la asignaci´n se basa en una tabla con direcciones MAC (pares de o o direcciones IP introducidas manualmente por el administrador).Cap´ ıtulo 9 Servicios de red 9. a . si el ordenador se o mueve a otro lugar en otra parte de la red. puerta de enlace y otros) y tambi´n incluye un mecanismo a e de asignaci´n de direcciones de IP. El procedimiento usa un concepto muy simple en un intervalo de tiempo controlable. cada direcci´n IP debe configurarse manualmente en cada ordenador y.org o o 9. Esto facilita la instalaci´n de nuevas m´quinas clientes.

n o Sun: a˜adi´ el soporte para DHCP. en julio de 2001. Se puede encontrar el software en: http://www. 68/udp: Para las computadoras cliente. a Servidores NIS (Servicio de Informaci´n de Red).0 en febrero de 1999. Implementaciones Microsoft introdujo DHCP en sus Servidores NT con la versi´n 3.94 Servidor Linux para conexiones seguras de una LAN a Internet 9. o El Consejo de Software de Internet (ISC: Internet Software Consortium) public´ distribuciones de o DHCP para Unix con la versi´n 1. a su sistema operativo Solaris.1.3. ın . Junio 2005. o Nombre DNS. n o Actualmente.255. la mayor´ de los routers incluyen soporte DHCP. o Dominios NIS.255 y requiere tambi´n su ultima e ´ direcci´n IP conocida. Otras implementaciones importantes incluyen: Cisco: a˜adi´ un servidor DHCP habilitado en Cisco IOS 12. Anatom´ del protocolo ıa DHCP usa los mismos puertos asignados por el IANA (Autoridad de N´meros Asignados en Internet u seg´n siglas en ingl´s) en BOOTP: u e 67/udp: Para las computadoras servidor. aunque esto no es necesario y puede llegar a ser ignorado por el servidor. Par´metros configurables a Un servidor DHCP puede proveer de una configuraci´n opcional a la computadora cliente.0) que o o se adaptaba mejor el 22 de junio de 1999. 9. o a pesar de que la llamaron una nueva funci´n no fue inventada por ellos. Nombre del servidor WINS. Servidor TFTP.2.5 de Windows NT a finales de 1994. El router puede ser configurado para redireccionar los paquetes DHCP a un servidor DHCP en una subred diferente. o Jose Antonio Escart´ Vigo. o La lista de opciones siguientes son configurables mediante DHCP: Direcci´n del servidor DNS.org/sw/dhcp/. Puerta de enlace de la direcci´n IP.1. a Tiempo m´ximo de espera del ARP (Protocolo de Resoluci´n de Direcciones). A continuaci´n muestro las actuaciones que puede tener el protocolo: o DHCP Discover : La computadora cliente emite peticiones masivamente en la subred local para encontrar un servidor disponible.1. o Direcci´n de difusi´n de red (Broadcast Address). Servidores NTP (Protocolo de Tiempo de Red).isc. ıa 9.0 del ISC DHCP Server el 6 de diciembre de 1997 y una versi´n (2.255. La implementaci´n cliente crea un paquete UDP o (Protocolo de Datagramas de Usuario) con destino 255. Servidor SMTP.4. o o M´scara de subred. a o MTU (Unidad de Transferencia M´xima) para la interfaz.

o El primer paso es comprobar que nuestro kernel esta configurado para que el sistema se pueda utilizar como servidor DHCP. Configuraci´n de un servidor DHCP o El fichero de configuraci´n de un servidor DHCP es /etc/dhcpd. 9. Servicios de red 95 DHCP Offer : El servidor determina la configuraci´n bas´ndose en la direcci´n del soporte f´ o a o ısico de la computadora cliente especificada en el registro CHADDR. En el ejemplo siguiente. Una o vez m´s.d/dhcp restart Subredes Debemos incluir una declaraci´n subnet para cada subred de la red.0 netmask 255. En la o mayor´ de sistemas no ser´ necesario.168.255. El servidor especifica la direcci´n IP o en el registro YIADDR.1.255.255.1. DHCP Request: El cliente selecciona la configuraci´n de los paquetes recibidos de DHCP Offer.255. hay opciones globales para cada cliente DHCP de la a subred y un rango de IPs declarado.10 192.168.com".254. # Eastern Standard Time range 192. proporcionan direcciones para los clientes o aplican un grupo de par´metros a un grupo de declaraciones.Cap´ ıtulo 9. el cliente solicita una direcci´n IP espec´ a o ıfica que indic´ el servidor.168.2 MiB) TX bytes:381723 (372.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1792 errors:0 dropped:0 overruns:0 frame:0 TX packets:3719 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1272847 (1.100. a Algunos par´metros deben empezar con la palabra clave option. -5. Para ello ejecutaremos: #ifconfig -a #ifconfig -a eth0 Link encap:Ethernet HWaddr 00:C0:9F:6E:1D:E0 inet addr:192. Junio 2005. o DHCP Acknowledge: El servidor confirma el pedido y lo publica masivamente en la subred.10 Bcast:192. Los par´metros definen valores no a a opcionales o que controlan el comportamiento del servidor DHCP. o bien o opciones para cada sistema cliente.1. ın . option subnet-mask 255.0.0. a los clientes se les asigna una direcci´n IP dentro de ese rango.168. o subnet 192.0 { option routers 192. El fichero de configuraci´n posee dos tipos de informaci´n: o o Par´metros: Establece c´mo se realiza una tarea.255.168. si debe llevarse a cabo una tarea o las opciones de a o configuraci´n de red que se enviar´n al cliente. } Jose Antonio Escart´ Vigo.7 KiB) Interrupt:6 Si no encontramos la opci´n MULTICAST deberemos reconfigurar el kernel para agregarlo.255.168.255 Mask:255. Se espera que el cliente configure su interface de red con las opciones que se le asignaron. 192. option domain-name option domain-name-servers option time-offset "example. ıa a a Para instalar el servicio DHCP realizamos un apt: #apt-get install dhcp El primer paso al configurar un servidor DHCP es crear el fichero de configuraci´n que almacena la o informaci´n de red de los clientes.5. funcionar´ por defecto.1. o a Declaraciones: Describen el tipo de red y los clientes. Si no lo hacemos. el servidor o DHCP no podr´ arrancarse. Se pueden declarar opciones globales para todos los clientes. Si cambiamos el fichero de configuraci´n.conf.0.1.168. para aplicar los cambios.1. reiniciaremos el demonio DHCP: o # /etc/init.1.

shared-network name { option domain-name "test. a host apex { option host-name "apex.4. ın . option domain-name "example.254. como.255.33 192. option subnet-mask 255.168.1 192.168.redhat.168. -5.168.168. # Eastern Standard Time host apex { option host-name "apex. Esto se puede ver en el ejemplo siguiente que asigna direcciones a los o clientes dentro de un rango: default-lease-time 600.0 { parameters for subnet range 192. por ejemplo.100. option routers 192.1.255. } host raleigh { option host-name "raleigh. 192. } } Grupos La declaraci´n group puede utilizarse para aplicar par´metros globales a un grupo de declaraciones. fixed-address 192.1. En el ejemplo siguiente. subredes.1.63.96 Redes compartidas Servidor Linux para conexiones seguras de una LAN a Internet Todas las subredes que comparten la misma red f´ ısica deben declararse dentro de una declaraci´n o shared-network.168.1.com".1.168.255.1.168.32 netmask 255. "example. } Asignaciones IP por MAC Para asignar una direcci´n IP a un cliente seg´n la direcci´n MAC de la tarjeta de interfaz de red.168.example.0 { parameters for subnet range 192. fixed-address 192. o u o usamos el par´metro hardware ethernet de una declaraci´n host.1. subnet 192.1. group { option routers option subnet-mask option domain-name option domain-name-servers option time-offset 192.168. option routers 192.0.redhat.0 { range 192.redhat.4.168.255.1. option broadcast-address 192. la declaraci´n a o o host apex especifica que la tarjeta de interfaz de red con la direcci´n MAC 00:A0:78:8E:9E:AA siempre o debe ejecutarse en lease con la direcci´n IP 192.1.168.168. 192.com.1.4.1.254.6.com".example. more parameters for EXAMPLE shared-network subnet 192. un tiempo de lease m´ximo y los valores de confia guraci´n de red para los clientes. que podemos o e usar el par´metro opcional host-name para asignar un nombre host al cliente.1. hardware ethernet 00:A0:78:8E:9E:AA.255. 255.com". fixed-address 192. hosts u otros grupos.168. Tambi´n hay que tener en cuenta.0 netmask 255.com". } } Tiempo de lease (asignaci´n de IP) o Para configurar un servidor DHCP que realiza un lease de la direcci´n IP din´mica dentro de una o a subred.com". option domain-name-servers 192.1.255. hardware ethernet 00:A0:78:8E:9E:AA. declararemos un tiempo de lease por defecto.2.168.168.1.1. ns2.0 netmask 255.31. } subnet 192.10 192. Los par´metros dentro de shared-network.1.168. test-lab para describir todas las subredes en un entorno de laboratorio de tests.com".168.1. } Jose Antonio Escart´ Vigo.255.com.255.1.254. option domain-name-servers ns1. o a Podemos agrupar redes compartidas.1.255. pero fuera de las declaraciones subnet se consia deran par´metros globales.1.0.example.168.1.255. hardware ethernet 00:A1:DD:74:C3:F2.168. max-lease-time 7200. Junio 2005.255. El nombre que le asignemos debe ser el t´ a ıtulo descriptivo de la red.

. no con la hora local. #/usr/sbin/dhcpd stop. como en el caso anterior. Servicios de red M´s opciones a 97 Para obtener una lista completa de sentencias de opciones e informaci´n relacionada. por defecto u a es el 67 y el servidor DHCP transmite las respuestas al cliente por el puerto 68. Todas las horas o de la base de datos lease se expresan seg´n GMT. Junio 2005.255.255. Nuestro sistema ser´ m´s seguro si especificamos la a a a tarjeta de red conectada a la red interna..168. utilizaremos: #/usr/sbin/dhcpd start.1. renew 4 2005/5/26 09:33:21. . parar el servidor. u En el cliente DHCP. Se puede configurar una tar´ a jeta de red como cliente DHCP para recuperar una direcci´n IP en Internet y la otra puede utilizarse como o servidor DHCP para la red interna. Para interactuar con el servicio DHCP. option domain-name "proyecto". los mensajes son guardados en el archivo /var/log/messages. este debe escuchar por el o mismo puerto. Para ello.0. Jose Antonio Escart´ Vigo. Si tenemos m´s de una interfaz de red conectada al sistema. fixed-address 192. option routers 192. .1. podemos modificar el script init para arrancar desde ese dispositivo.0. Este fichero no debe modificarse manualmente.168.leases para que no falle el arranque. rebind 0 2005/5/29 13:16:07. expire 1 2005/5/30 10:16:07.0.leases almacena la base de datos lease del cliente DHCP. } Arranque y parada del servidor Antes de arrancar por primera vez el servidor DHCP. pero s´lo deseamos que el servidor DHCP a o arranque en una de las interfaces.0.11. -d: Registra el demonio del servidor DCHP en el descriptor de errores est´ndar.0. option dhcp-lease-time 604800. detr´s del firewall. nos aseguraremos de que existe un fichero /var/lib/dhcp/dhcpd. las fechas iniciales y finales del o o lease. -f: Ejecuta el demonio como un proceso de en primer plano. Otras opciones que pueden ser especificadas incluyen: -p <portnum>: Especifica el n´mero de puerto UDP en el que DHCPD deber´ escuchar. y la direcci´n MAC de la tarjeta de interfaz de red utilizada para recuperar el lease.. ya que los usuarios no pueden conectarse al demonio por Internet. La informaci´n sobre lease de DHCP de cada o direcci´n IP asignada recientemente se almacena de modo autom´tico en la base de datos lease. el fichero /var/lib/dhcp/dhcpd. . el fichero /var/lib/dhcp/dhclient. option domain-name-servers 192. Se suele usar para a depurar errores. option subnet-mask 255. a˜adimos el nombre de la interfaz o interfaces en el archivo /etc/default/dhcpd : n INTERFACES="eth0" o INTERFACES="eth0 wlan0" Esto es util si disponemos de una m´quina firewall con dos tarjetas de red.Cap´ ıtulo 9. option dhcp-server-identifier 192.1. al que se ha asignado la direcci´n IP. option dhcp-message-type 5. Si especificamos un puerto en este momento y usamos el Agente de Transmisi´n DHCP.168. podemos consultar o la p´gina del manual de dhcp-options: $man dhcp-options a Base de datos lease En el servidor DHCP. El contenido de este archivo se puede ver en el ejemplo siguiente: lease { interface "eth0". ın .leases almacena la base de datos lease del servidor DHCP. La inforo a maci´n incluye la longitud del lease.168. arrancar el servidor.

. o Agente de transmisi´n DHCP o Si lo vamos a utilizar. es muy o importante que el mismo fichero sea usado cada vez que el servidor DHCP se inicia.1.conf. Cuando el servidor DHCP devuelve una respuesta. se configurar´n todas y se eliminar´n las interfaces sin multidifusi´n.6. Dhcp-relay se puede iniciar con las siguientes opciones: Opci´n o -i -p -d -q Descripci´n o Nombres de interfaces de red que deben configurarse. Junio 2005. Desactiva la impresi´n de configuraci´n de red. usamos el comando: #dhcrelay <servidor> Donde servidor es el nombre de al menos un servidor DHCP al que se le deben transmitir las peticiones. o o 9. Si ya existe . o Para configurar manualmente un cliente DHCP. la respuesta puede ser broadcast o unicast. . Para configurar las opciones de red debemos modificar el archivo /etc/network/options. -q: No imprime la versi´n del servidor DHCP cuando se inicia el demonio. a El agente de transmisi´n DHCP (dhcp-relay) permite transmitir las peticiones DHCP y BOOTP desde o una subred sin un servidor DHCP. el agente de transmisi´n DHCP reenv´ la petici´n a la o o ıa o lista de servidores DHCP especificada al iniciarlo. Por defecto se encuentra en /var/lib/dhcp/dhcpd. Configuraci´n de un cliente DHCP o El primer paso al configurar un cliente DHCP es asegurarse de que el kernel reconoce la tarjeta de la interfaz de red. dirigidos a uno o m´s servidores en otras subredes. . para instalarlo realizaremos el correspondiente apt: #apt-get install dhcp3-relay Nos crear´ un nuevo archivo de opciones: /etc/default/dhcp3-relay. . en la red que ha enviado la petici´n originaria. para ejecutar: #dhclient <dispositivo_red> #apt-get install dhcp3-client. o El agente de transmisi´n escuchar´ las peticiones de todas las interfaces a menos que el argumento -i o a se use para especificar solo una o varias interfaces donde escuchar. . para ejecutar: #dhclient3 <dispositivo_red> Jose Antonio Escart´ Vigo. Si no se especifica ninguna interfaz. probablemente tendremos que recompilar el kernel. -lf archivo: Especifica la localizaci´n del archivo de base de datos lease. . a Cuando un cliente DHCP pide informaci´n.leases. . Si instalamos una tarjeta despu´s de la instalao e ci´n. La mayor´ de las tarjetas se reconocen durante el proceso de instalaci´n y el sistema es ıa o configurado para utilizar el m´dulo correcto en el kernel. Transmite peticiones a los servidores en este a puerto y respuestas a los clientes en el puerto inmediatamente superior. por defecto se encuentra en o o /etc/dhcpd. cuando arranca dhcp-relay. . ın . Para iniciar el agente de transmisi´n o DHCP. . si se puede. Obliga a dhcp-relay a ejecutarse en primer plano. debemos modificar el archivo /etc/network/interfaces habilitando el uso de la red con los dispositivos adecuados. para ejecutar: #pump <dispositivo_red> #apt-get install dhcp-client-udeb.98 Servidor Linux para conexiones seguras de una LAN a Internet -cf archivo: Especifica la localizaci´n del archivo de configuraci´n. a a o Puerto en el que deber´ escuchar dhcp-crelay. Podemos instalar uno de los siguientes clientes dhcp: #apt-get install pump.

Cap´ ıtulo 9. Junio 2005.7. pero esta vez de forma gr´fica. Para ello realizaremos un apt: #apt-get install webmin-dhcpd En las siguientes pantallas podemos observar como realizar todos los pasos detallados en las secciones anteriores.1. ın . a Figura 9. Servicios de red 99 9. interfaz Webmin o a El m´dulo DHCP para nuestra interfaz web: Webmin. Configuraci´n gr´fica de DHCP.1: M´dulo Webmin para DHCPD o Jose Antonio Escart´ Vigo. nos facilitar´ mucho la tarea de administraci´n o a o del servidor.

100 Servidor Linux para conexiones seguras de una LAN a Internet Figura 9.2: M´dulo DHCPD WEBMIN: Subredes y redes compartidas o Figura 9. Junio 2005.3: M´dulo DHCPD WEBMIN: m´quinas y grupos de m´quinas o a a Jose Antonio Escart´ Vigo. ın .

). Cada registro es una sencilla l´ ınea consistente en un nombre (normalmente el nombre de un host). a fin de no tener que preguntar de nuevo durante un buen rato. los sitios necesitan el DNS. Un sistema muy grande puede dividir los dominios de DNS en subdominios y usar algunos servidores para cada subdominio. es lo que se conoce o o como traducci´n inversa. a ız m´s alto nivel (TLD. nuestro servidor de nombres guardar´ toda la informaci´n a o obtenida a lo largo del proceso. a e a EDU y NET. ın . podemos ejecutar un servidor o n ´ en uno de nuestros equipos o pedirle al ISP (Proveedor de servicios) que nos proporcione el servicio. Es un sistema cliente/servidor. empezando en “. cuyos ejemplos m´s representativos son ORG.1. Por una parte.Cap´ ıtulo 9. ıa Enrutamiento mejorado para el correo electr´nico. Un sitio de tama˜o medio con diversas subredes deber´ tener m´ltiples servidores de DNS para reducir la n ıa u latencia de las consultas y mejorar la productividad. . Cada sitio mantiene una o varias piezas de la base de datos distribuida que posibilita el servicio global del sistema DNS. Un traductor (resolver) o librer´ de rutinas que permite realizar consultas a esa base de datos. Su pieza de la base de datos consiste en dos o m´s ficheros de texto que contienen registros a para cada uno de los hosts. la consulta se ejecuta recursivamente en la jerarqu´ empezando por a ıa. Junio 2005. Top Level Domain). Por supuesto.uk. o DNS (Domain Name Service) es un sistema jer´rquico con estructura de ´rbol. Todos nuestros hosts deber´ ser clientes del DNS. a 9. a Una tabla de hosts implementada como una base de datos distribuida. si bien hay muchos m´s (como los dominios de paises. del ingl´s. . Bajo la ra´ se hallan los dominios de ız. Los servidores (de nombres) cargan los datos de sus ficheros de DNS en memoria y los usan para responder las consultas tanto de los clientes de la red interna como de los clientes y otros servidores en Internet. Jose Antonio Escart´ Vigo. El inicio se escribe “. traducir una direcci´n IP en una o varias direcciones can´nicas. o Para ser aut´nticos ciudadanos de Internet. Un protocolo para intercambiar informaci´n de nombres. ı nombre de dominio por referencia. o Un mecanismo para encontrar los servicios en una red.” son los nombres a de los nodos particulares en el ´rbol. ¿Para qu´ necesitamos un DNS? e El DNS define: Un espacio de nombres jer´rquico para los hosts y las direcciones IP. BIND: Servidor de nombres DNS Los objetivos de un servidor de nombres de dominio son dos: 1. Si nuestra organizaci´n es peque˜a (unos pocos hosts en una unica red). . Por otra parte.” en el nombre es un salto a otra rama. COM. Del mismo modo que a un ´rbol. Servicios de red 101 9. En el a ´rbol an´logo. un tipo de registro y diversos valores o datos. pero relativamente ıan pocos necesitan ser servidores de DNS. traducir una direcci´n can´nica en una direcci´n IP. Y cada parte entre los “.” a a y se denomina ra´ al igual que en las estructuras de datos en ´rbol. cada “.2.es. o o o 2. tiene una ra´ y ramas que de ella crecen. .” encontramos los sucesivos servidores de nombres para cada nivel en el ız.2. la ra´ As´ pues. Mantener un fichero local e /etc/hosts con un mapeado de todos los hosts que los usuarios puedan querer contactar no es factible. a ız Cuando se busca una m´quina. .

upc es a el dominio de segundo nivel y . Un FQDN siempre comienza con el a nombre del host y contin´a subiendo directo al dominio de m´s alto nivel. podemos utilizar un servidor de nombres completo: como named. DNS es uno de los ıan puntos m´s fr´giles y puede ser atacado en cualquier momento. Por ejemplo.es es un FQDN. ya que soluciona problemas de seguridad que ten´ las versiones anteriores. www es el host. 9. Transferencia segura de zonas entre servidores primarios y secundarios (y puertos). a a a Para instalar bind9. Logs a medida. Para nuevas instalaciones se recomienda bind9. incluyendo el de m´s alto nivel. son los siguientes: Resoluci´n de nombres a direcciones IP.es es el dominio de de m´s alto nivel.102 Servidor Linux para conexiones seguras de una LAN a Internet 9. borrando nuestras m´quinas de la red. Configuraci´n del servidor o Un FQDN (Nombre de Dominio Totalmente Cualificado) est´ formado por un host y un nombre de a dominio. o Listas de control de acceso.2. Junio 2005. ın .2. se necesitan los siguientes paquetes: bind9 bind9-doc dnsutils Para instalarlos simplemente realizamos un apt: #apt-get install bind9 bind9-doc dnsutils Aunque puede que tambi´n queramos instalar estos paquetes de utilidades: e bind9-host dns-browse dnscvsutil nslint bind9-doc libbind-dev libnet-dns-perl dhcp-dns Jose Antonio Escart´ Vigo. Servicios que activa un DNS Servicios de los que se puede disponer con un servidor DNS. que viene con el paquete bind o bind9.3. Localizaci´n de servicios. www. Servidores secundarios.upc. o Resoluci´n inversa (de direcciones IP a nombres). o o Uso de la herramienta rndc. u a Si necesitamos proveer un servicio de nombres para un dominio.2. o Respuestas parametrizadas en funci´n del origen de la petici´n (vistas).

Junio 2005.conf.0. y que se han definido en cualquiera de los archivos de configuraci´n de named se almacenar´n en /var/cache/bind/.2. /etc/bind/named.conf.4.2.options tambi´n es procesado por resolvconf para producir: e /var/run/bind/named. o a 9. n /etc/bind/db.local : Para definir las zonas locales. n El archivo /etc/bind/named.52.0.conf de modo que incluya: /var/run/bind/named.5.Cap´ ıtulo 9. Entre las opciones tambi´n se encuentra ocultar la versi´n de Bind. o Para la instalaci´n del m´dulo correspondiente. donde cambiaremos algunos de los valores por defecto y a˜adiremos todo lo necesario para que nuestro dominio sea accesible desde el exterior. // }. se nos habr´n proporcionado una o m´s a a direcciones IP de servidores de nombres estables. cambiamos la l´ ınea include del /etc/bind/named. Configuraci´n gr´fica de DNS BIND. para una mayor seguridad del e o sistema: "DNS server". Para ello deberemos descomentar el bloque al principio del fichero: // forwarders { // 0.0 : Para a˜adir el DNS inverso de una LAN. Jose Antonio Escart´ Vigo. 9. excepto que la especificaci´n forwarders es una lista de los o servidores de nombres no locales.lan: Para a˜adir los equipos de una LAN.224.conf : Para definir las zonas DNS b´sicas.conf. }. 194.224. que seguramente querremos usar como redireccionadores (forwarders). ın . actualmente disponibles.0.4.options Los archivos de base de datos sin una ruta explicita. Traducci´n de nombres a direcciones IP o El primer paso es editar el fichero /etc/bind/named.192.options 103 Este archivo es el mismo que el original.options. /etc/bind/db. Servicios de red Los archivos de configuraci´n que intervendr´n ser´n los siguientes: o a a /etc/bind/named. Y dejarlo en algo como esto: forwarders { 194. utilizamos el siguiente apt: o o #apt-get install webmin-bind En los apartados siguientes ir´ comentando las opciones a las que se puede acceder desde el m´dulo e o web.conf. Para hacer uso de ello.6.52. n A menos que seamos un proveedor de servicios de internet. interfaz Webmin o a Para facilitarnos la compleja tarea de configuraci´n de DNS BIND es posible utilizar la herramienta o de administraci´n web: Webmin.168. a /etc/bind/named.options: Para configurar opciones.

Crear un servidor DNS de cache. Crear un servidor DNS primario. Figura 9. pulsamos sobre la pesta˜a “Servidores” y despu´s sobre el icono “Sern e vidor de DNS BIND”. aparecer´ el men´ de configuraci´n. Junio 2005. o a o Pasemos a ver cada una de las secciones a las que podemos acceder. Crear un servidor DNS de reenv´ ıo. se realiza pulsando el bot´n “Aplicar Cambios” en la p´gina de configuraci´n principal del servidor DNS. Jose Antonio Escart´ Vigo. a u o En este men´ podemos realizar las siguientes opciones: u Configurar el resto de opciones globales del servidor. como se observa en la figura 9.4: Interfaz gr´fica Webmin para el servidor DNS BIND a Para que todos los cambios sean tenidos en cuenta. Crear un servidor DNS secundario.104 Pantalla principal Servidor Linux para conexiones seguras de una LAN a Internet Para acceder al servidor BIND.4. es necesario reiniciar el servidor DNS BIND. ın .

Junio 2005.5.Cap´ ıtulo 9. Servicios de red Opciones generales 105 Como se puede observar en la figura 9.5: Webmin BIND: Opciones generales Jose Antonio Escart´ Vigo.conf. Figura 9. desde estas secciones podemos modificar los valores contenidos en el archivo /etc/bind/named. ın .

a Jose Antonio Escart´ Vigo. o o La actualizaci´n de esta copia de Archivo de Zona es conocida como “Zone Transfer” y ocurre depeno diendo de los par´metros que hayan sido definidos. es el o mismo valor que cualquier otro servidor DNS primario. o a Figura 9. a A pesar del nombre servidor “secundario”. por motivos de redundancia.106 Crear zona maestra Servidor Linux para conexiones seguras de una LAN a Internet En esta secci´n podemos crear un servidor DNS primario o editar sus par´metros una vez configurado. o a Figura 9. es que el secundario obtiene su ´ informaci´n copiando el Archivo de Zona del primario que se le ha indicado en el archivo de configuraci´n.7: Webmin BIND: Servidor secundario Los servidores DNS son dos (o m´s) para evitar que el fallo de uno impida el acceso a los servicios a asociados al dominio. La unica diferencia que existe entre un primario y un secundario en DNS. Si bien es posible utilizar un unico servidor ´ DNS no es una pr´ctica recomendable. la raz´n principal por la que se configura un servidor o secundario es para ofrecer un nivel de respaldo y reducir la carga de los servidores DNS principales. Junio 2005. ın .6: Webmin BIND: Servidor primario Crear zona subordinada En esta secci´n podemos crear y modificar todos los par´metros de un servidor DNS secundario. pero sobre todo para reducir la carga administrativa en el caso de necesitar varios servidores. esto es. la informaci´n que contienen estos servidores DNS.

9: Webmin BIND: Crear zona de reenv´ ıo Si los clientes de la red tienen que poder resolver nombres DNS externos. Servicios de red Crear zona de s´lo cache o En esta secci´n podemos crear y modificar todos los par´metros de un servidor DNS de cache. lo unico que se evita en este tipo de ´ servidores DNS es mantener Archivos de Zona. aprovechando la informaci´n local para buscar resoluciones a o de nombres.8: Webmin BIND: Crear zona de s´lo cache o Este tipo de servidor DNS mantiene copias de las resoluciones (“cache”) que ya han sido buscadas en otros servidores DNS primarios o secundarios. o a 107 Figura 9. esto no implica que los servidores DNS primarios y secundarios no mantengan copias de sus resoluciones “caches”. es cuando se utiliza una conexi´n lenta. esto evita la necesidad de requerir resoluciones que ya fueron resueltas en una ocasi´n.Cap´ ıtulo 9. Figura 9. Crear zona de reenv´ ıo En esta secci´n podemos crear y modificar todos los par´metros de un servidor DNS que reenvie las o a peticiones a otro servidor. ın . toda resoluci´n que realice un servidor “cache” debe ser o consultada con un servidor que primario o secundario. Junio 2005. Una de las principales razones por las cuales se configura un servidor “cache” . ıo Jose Antonio Escart´ Vigo. y o o por lo tanto evitan un cierto nivel de tr´fico. puede que necesitemos configurar y utilizar servidores de reenv´ en los servidores DNS de nuestra red.

el servidor DNS primario. Incluso aunque tengamos conectividad IP con el mundo. permitiendo a casi todos los administradores acceder de dentro a fuera sin filtros. Son varios los sistemas operativos Unix/Linux que instalan un servidor DNS por defecto. Las versiones 9. ellos necesitan desactivar o actualizar este software.x.8 y 8. ız.2. Seguridad en DNS Los servidores que controlan y mantienen los nombres de dominio de nuestra red. se puede interrumpir la o a propia operaci´n del servidor BIND. un atacante puede simplemente enviar un DoS (denegaci´n de o servicio) contra nuestro servicio DNS. ya que en ese caso. aunque en forma indirecta. Jose Antonio Escart´ Vigo. ofrecen a los atacantes un objetivo tentador.2. DNS es un programa antiguo y su estructura deja brechas potenciales (un a binario monol´ ıtico en lugar de una arquitectura m´s modular). ıan ¿Como usuario domestico. ın . ha estado constantemente en la lista de los diez servicios m´s atacados. Aunque el web. o peor a´n. Adem´s DNS. y obtener otro tipo de informaci´n. En lugar de introducirse en nuestros e servidores o atravesar nuestro cortafuegos. Todas permiten a un atacante ejecutar cualquier c´digo con los mismos privilegios que el servidor DNS. el correo electr´nico y otros servicios tienen m´s visibilidad y captan m´s la atenci´n o a a o del administrador. nadie podr´ llegar a nuestro servidor web y no se producir´ ning´n flujo de ıa ıa u correo. podr´ afectar otros servicios si estas vulnerabilidades son explotadas. quitando del aire a nuestra empresa de una forma efectiva. frecuentemente se ejecuta a a como ra´ lo que hace que sea m´s peligroso. es decir. la este c´digo puede lanzarse con los mismos privilegios. a ´ 9. Adem´s. ¿Cu´les son los sistemas son afectados? a Est´n afectados todos los servidores de nombres de dominio (DNS). se suele configurar y asegurar mal. que ejecutan las versiones de a BIND 4. que llevar´ a explotar otras o o ıa vulnerabilidades diferentes en el sistema.6. que es el que nos proporciona el servicio DNS. se ha citado DNS como el punto m´s d´bil en toda la infraestructura de Internet y a e un objetivo potencial para los ataques del terrorismo cibern´tico. Como usualmente BIND se ejecuta en una cueno ta de root. Como el funcionamiento normal de la mayor´ de los servicios de Internet depende del funcionamiento apropiado ıa de los servidores de DNS.108 Servidor Linux para conexiones seguras de una LAN a Internet Para utilizar reenviadores que administren el tr´fico DNS entre nuestra red e Internet. los exploradores web enlazados a u nuestro sitio ser´n redireccionados al sitio que le apetezca al atacante. ıan expl´ ıcitamente. a Se conocen al menos cuatro vulnerabilidades BIND. deber´ a ıan verificar si poseen una version vulnerable de BIND instalada. Es el ISP. Junio 2005. Cuando hayamos configurado o los dem´s servidores DNS de nuestra red para reenviar a ese servidor DNS consultas que no puedan a resolver localmente. tambi´n estamos afectados por este problema. De hecho. El servicio de denominaci´n de nombres de Internet de Berkley (BIND. configuramos el a firewall para permitir que s´lo un servidor DNS se comunique con Internet. a As´ mismo. las brechas DNS ofrecen la forma m´s r´pida y f´cil de dejar a nuestra empresa fuera a a a del mapa de Internet. Gee neralmente contamos con un proveedor de servicios de Internet (ISP). Las ı ıcil configuraciones de cortafuegos para DNS no se implementan correctamente. utilizando un tipo de ataque denominado veneno de cache DNS. Sin embargo. quien debe proteger sus sistemas. los usuarios de Linux o con otras variantes de Unix instaladas en sus m´quinas.3 (y todas las anteriores). ya se encuentran corregidas. ese servidor funcionar´ como nuestro unico reenviador.9. As´ algunos usuarios podr´ estar ejecutando este servicio. sin haberlo configurado ı. como DNS es dif´ de configurar y se conoce poco. Berkley o Internet Naming domain). sin un servicio DNS v´lido a para nuestros dominios. nos debemos preocupar por este problema? Los usuarios comunes.

Si NIS tiene entrada. El beneficio principal que se alcanza mediante el uso de NIS es que puede mantener una copia central de los datos. a A los usuarios. podemos necesitar distribuir la carga entre m´s de una m´quina. archivos tales como /etc/passwd e a y /etc/group. n Jose Antonio Escart´ Vigo. Junio 2005.2. Los servidores NIS secundarios reciben actualizaciones si el servidor NIS primario se actualiza. Este servidor autorizado se llama servidor NIS maestro. Lo mismo es cierto si el mapa NIS devuelve la respuesta de que la entrada de contrase˜a del usuario no existe. El programa deber´ recibir la informaci´n n ıa o sin que sepa qu´ ha ocurrido entre medias. Normalmente.3. as´ que ı los maestros y esclavos permanecen sincronizados. Hay que se˜alar que un servidor puede ser a la misma vez servidor y cliente. Consta de una serie de tablas independientes. que idealmente deber´ permanecer sin cambios entre todas las m´quinas. Cada tabla se origina como un archivo de texto. El proceso de mantener la sincronizaci´n del los secuno darios con el primario se llama server push. la devolver´ cliente y al programa que pidi´ la informaci´n. como el /etc/passwd. Funcionamiento b´sico a Es. 9.Cap´ ıtulo 9. el archivo /etc/passwd.3. Network Informati´n Service) hace posible la compartici´n o o o de archivos cr´ ıticos a trav´s de una red de ´rea local. simplemente. por ejemplo. Normalmente esto ocurre cuando un cliente se configura para que busque en un mapa NIS cuando no encuentra una entrada en su base de datos local. Una vez recibidos los archivos. Si nuestra organizaci´n o es grande. e Esto se aplica a todos los archivos que se comparten por NIS. El NIS maestro no se considera completamente actualizado hasta que se actualizan todos sus secundarios. como parte de sus scripts de actualizaci´n. autom´ticamente se propagan a todos los usuarios de la red. a e a que todas sus herramientas y archivos estar´n all´ a ı). NIS accede a esas tabla ´ por nombre y permite b´squedas de dos formas: u Listado de la tabla entera Presentaci´n de una entrada espec´ o ıfica basada en una b´squeda por una clave dada u Una vez establecidas las bases de datos en el servidor. cada m´quina de red que tiene su cliente NIS correspondiente puede leer los a datos contenidos en esos archivos compartidos y usar las versiones de red de los archivos como extensiones de sus versiones locales. los servidores a a secundarios tambi´n proporcionan un mecanismo de manejo de fallos de servidores. Otros archivos comunes compartidos incluyen a /etc/group y /etc/hosts. los servidores secundarios actualizan tambi´n e sus bases de datos. De esta forma. el cliente comprueba su archivo passwd local y si el usuario no o n existe all´ entonces el cliente hace la petici´n a su servidor NIS para buscar la entrada correspondiente en ı. Esto lo podemos hacer a a configurando uno o m´s servidores NIS secundarios. Una m´quina puede tener s´lo a o las entradas que necesite para que el sistema trabaje en modo usuario unico (cuando no hay conectividad ´ por red). NIS: Servicio de informaci´n de red o El servicio de informaci´n de red (NIS. ya que puede continuar e contestando peticiones incluso mientras el maestro u otros secundarios est´n ca´ a ıdos. una base de datos que los clientes pueden consultar. Adem´s de ayudar a distribuir la carga.3. tambi´n pone una copia de sus archivos o e de mapas en los secundarios. 9. el cual tiene una naturaleza tabular y tiene al menos una columna que es unica por cada archivo. o la tabla de contrase˜as. n a o o El propio programa no se da cuenta de que se ha usado NIS. El NIS maestro. se comparten ıan a mediante NIS.1. Servidores NIS NIS puede tener un unico servidor autorizado donde permanecen los archivos de datos originales (en ´ esto es similar a DNS). los clientes pueden buscar en el servidor las entradas de la base de datos. NIS da la apariencia de un sistema m´s uniforme (no importa con qu´ m´quina trabaje. y aunque los datos se actualicen. ın . Cuando un programa hace una petici´n de b´squeda de la o u informaci´n de contrase˜a de un usuario. Servicios de red 109 9.

Configuraci´n del servidor NIS maestro o La primera cosa que hemos de tener presente es que no podemos montar dos servidores NIS diferentes para un mismo dominio de una red. Nos ser´ mucho m´s f´cil explicar los dominios a a a de nuestra red a otros administradores identificando el dominio NIS al que nos referimos. El proceso de autenticaci´n de usuarios se deja a cada m´quina indiıa o o a vidual. a Deberemos dar nombre a los dominios NIS. no realiza autenticaci´n. Es posible facilitar la configuraci´n mediante un m´dulo para la herramienta de administraci´n web o o o Webmin. Unicamente proporciona una lista de usuarios centralizada. Sun renombr´ el paquete a Servicio o de informaci´n de red. Junio 2005. en los a˜os ochenta. ocurri´ un conflicto: el t´rmino “p´ginas amarillas” o e a era una marca registrada de British Telecom y para evitar un pleito. o Jose Antonio Escart´ Vigo. Para la instalaci´n se utiliza el siguiente apt: o #apt-get install webmin-nis Figura 9.3. se le llam´ “p´ginas amarillas” (Yelow Pages. Cuando Sun Microsystems. y es una buena pr´ctica (aunque no obligatoria) usar a nombres distintos de nuestros nombres de dominios DNS. ın . el servidor NIS s´lo a o env´ datos. Cuando NIS se desarroll´. Adem´s. YP o n o a para abreviar). empezaron a vender sus sistemas en el Reino Unido. Si ya existe un dominio en nuestra red deberemos configurar un cliente. despu´s otros vendedores de Unix le siguieron.110 Servidor Linux para conexiones seguras de una LAN a Internet Los servidores NIS primarios establecen dominios que son similares a los dominios de un PDC (Controlador Primario de Dominio). ya que todos los clientes son miembros del mismo dominio administrativo y est´n gestionados por los mismos administradores de sistemas. Por alguna raz´n los nombres de archivo no se cambiaron con el nombre oficial de paquete. Una diferencia significativa es que el dominio NIS no requiere que el administrador del servidores NIS permita expl´ ıcitamente unirse a un cliente.10: Interfaz gr´fica Webmin para el servidor NIS a 9.3. o e Por eso hoy encontraremos que todas las herramientas NIS vienen con el prefijo yp en lugar de nis. los desarrolladores del sistemas operativo SunOS (Solaris).

Jose Antonio Escart´ Vigo. . .securenets Una vez configurados el archivo: #ypserv start. . . para actualizar los mapas de archivos y configurar el servidor NIS como primario simplemente ejecutamos: #ypinit -m. Para elegir e e el runlevel del archivo donde realizar el cambio de nombre tenemos que tener en cuenta que hay que cambiarlo antes de que se arranquen los servidores NIS. . a La mayor´ de las entradas comienzan con: $(YPWDIR) y $(YPSRCDIR).conf /etc/nsswitch. la instalaci´n nos pedir´ que especifiquemos el nombre de dominio o a 111 Para obtener m´s informaci´n se instala en el sistema el HowTo de NIS. ın .debian.debian. Este archivo lista los archivos que se compartir´n mediante NIS. documento muy clarificador: a o /usr/share/doc/nis/nis. para construir los mapas y ponerlos en los servidores secundarios que se le a indiquen en /var/yp/yp-servers. Servicios de red Para instalar el servidor NIS realizaremos un apt: #apt-get install nis. Editamos el Makefile y retocamos las ı a o o opciones como se detalla en esta y posteriores secciones. la opci´n -m le dice que un servidor primario o Ypinit ejecutar´ el make. .howto. Junio 2005. n Una vez configurado el Makefile. .d (V´ase ap´ndice D).conf /etc/ypserv. Este listado simplemente establece los nombres de archivos que se coma partir´n una vez compilemos el Makefile. . arranca el servidor NIS #ypserv stop.com Naturalmente. . que se listen aqu´ no significa que ı se compartan autom´ticamente.. . . el valor por defecto es /etc. Sin embargo. Archivos compartidos en NIS Para compartir los archivos en NIS. . ı a as´ como algunos par´metros adici´nales sobre c´mo compartirlos.gz Disponemos de varios archivos de configuraci´n: o /etc/yp. para el servidor NIS Despu´s de la instalaci´n podemos cambiar el nombre del dominio con el comando: e o #domainname <dominio>. como por ejemplo: #domainname proyecto. necesitamos situarnos en el directorio: /var/yp All´ encontraremos un Makefile. . son variables que se configuran ıa al inicio del Makefile.conf /etc/ypserv. a fin de que se establezca cada vez que volvamos a arrancar el sistema. es necesario situar el comando domainname en uno de los archivos de inicio rc#. y se˜alan la ruta donde encontrar los archivos.Cap´ ıtulo 9. .

ın .home AUTO_LOCAL = $(YPSRCDIR)/auto. Please make sure that the hostnames of all NIS servers in your domain are listed in /var/yp/ypservers.. NOPUSH=true . MINUID=1000 MINGID=1000 .. Cuadro 9. # We do not put password entries with lower UIDs (the root and system # entries) in the NIS password database.. this shadow entry is # ignored. # YPSRCDIR = /etc YPPWDDIR = /etc YPBINDIR = /usr/lib/yp YPSBINDIR = /usr/sbin YPDIR = /var/yp YPMAPDIR = $(YPDIR)/$(DOMAIN) # These are the files from which the NIS databases are built.1 puede observar un listado t´ ıpico del archivo /var/yp/Makefile. # GROUP = $(YPPWDDIR)/group PASSWD = $(YPPWDDIR)/passwd SHADOW = $(YPPWDDIR)/shadow GSHADOW = $(YPPWDDIR)/gshadow ADJUNCT = $(YPPWDDIR)/passwd. group and shadow is defined by YPPWDDIR.home AUTO_MASTER = $(YPSRCDIR)/auto.master AUTO_HOME = $(YPSRCDIR)/auto...112 Servidor Linux para conexiones seguras de una LAN a Internet En el cuadro 9. .local TIMEZONE = $(YPSRCDIR)/timezone LOCALE = $(YPSRCDIR)/locale NETMASKS = $(YPSRCDIR)/netmasks YPSERVERS = $(YPDIR)/ypservers # List of all NIS servers for a domain . # These are the source directories for the NIS files. change this # to "NOPUSH=false" and put all hostnames of your slave servers in the file # /var/yp/ypservers.. All updated maps will be pushed to all NIS slave servers listed in the /var/yp/ypservers file. for security. the UserID for a shadow entry is taken from # the passwd file. Jose Antonio Escart´ Vigo.. Junio 2005.1: Listado del archivo NIS /var/yp/Makefile # # # # # # # # Makefile for the NIS databases This Makefile should only be run on the NIS master server of a domain. The directory # for passwd. normally # that is /etc but you may want to move the source for the password # and group files to (for example) /var/yp/ypfiles. If no entry is found. You may edit # these to taste in the event that you wish to keep your NIS source files # seperate from your NIS server’s actual configurati\’on files. MINUID is the # lowest uid that will be included in the password maps. we don’t have to push the maps to the # slave servers (NOPUSH=true). If you # create shadow maps.adjunct ALIASES = $(YPSRCDIR)/aliases ETHERS = $(YPSRCDIR)/ethers # ethernet addresses (for rarpd) BOOTPARAMS = $(YPSRCDIR)/bootparams # for booting Sun boxes (bootparamd) HOSTS = $(YPSRCDIR)/hosts NETWORKS = $(YPSRCDIR)/networks PRINTCAP = $(YPSRCDIR)/printcap PROTOCOLS = $(YPSRCDIR)/protocols PUBLICKEYS = $(YPSRCDIR)/publickey RPC = $(YPSRCDIR)/rpc SERVICES = $(YPSRCDIR)/services NETGROUP = $(YPSRCDIR)/netgroup NETID = $(YPSRCDIR)/netid AMD_HOME = $(YPSRCDIR)/amd.. # MINGID is the lowest gid that will be included in the group maps. # If we have only one server... This Makefile can be modified to support more NIS maps if desired. If you have slave servers. the rest is # taken from YPSRCDIR. # Should we merge the passwd file with the shadow file ? # MERGE_PASSWD=true|false MERGE_PASSWD=false # Should we merge the group file with the gshadow file ? # MERGE_GROUP=true|false MERGE_GROUP=false ..

ıa Hay que seguir tres pasos para configurar el servidor NIS secundario: Configurar el nombre de dominio (domainname) Configurar el maestro NIS al que se va a unir el esclavo Ejecutar: #ypinit -s <nis_maestro>. no queremos compartir la entrada de root mediante NIS. Servicios de red Configuraci´n de un NIS maestro para poner esclavos o Esto requiere dos tareas: 113 Editar el archivo /var/yp/yp-servers para colocar todos los servidores NIS secundarios a los que el servidor maestro deber´ mandar sus mapas. si se trata de un ordenador port´til. tomando el campo encriptado del archivo /etc/shadow y mezcl´ndolo con la copia compartida a a de /etc/passwd en NIS. a e Los servidores no requieren mantenimiento adicional una vez configurados. dejaremos la variable MERGE PASSWD=true. configuraremos la opci´n MERGE GROUP=false.Cap´ ıtulo 9. ypbind. Por cada nombre de host que listemos en este archivo tenemos que colocar su entrada correspondiente en el archivo /etc/hosts. n El archivo /etc/group permite tener contrase˜as de grupo aplicadas en el sistema. entonces el m´ ınimo deber´ ser mayor que cero.conf vac´ sin especificar el dominio a emplear. cu´l es el dominio al que se va a a conectar. Si usamos contrase˜as shadow. a Para lanzar el cliente NIS. NIS autom´ticamente lo n n a manejar´. necesitaremos permitir que las entradas de contrase˜a encriptadas se compartan. siendo el comportamiento por defecto de ypbind interrogar al servidor de la red local a la que est´ conectado. ´ Esta opci´n se encuentra en el archivo /var/yp/Makefile. Junio 2005. a De esta forma. en una l´ a ınea diferente. . ın . Estas variables del /var/yp/Makefile son: ıa MINUID=<numero> MINGID=<numero> Configuraci´n de un servidor NIS secundario o Cuando crece nuestra red. A menos que tengamos una raz´n espec´ o o ıfica para no compartir las contrase˜as. Cliente NIS El primer paso que deberemos realizar es indicar al cliente NIS. de esta forma el ıo ypbind realizar´ la consulta por defecto en la red local en donde se esta conectando. algunos sistemas ofrecen soporte a archivos shadow de grupos. los nombres de hosts de cada servidor secundario. debido a que el servidor NIS maestro les env´ las actualizaciones si se recontruyen los mapas. . para iniciar el servidor esclavo Autenticar usuarios mediante NIS Como NIS se puede usar con otros sistemas para autenticar usuarios.3. indudablemente encontraremos que necesitamos distribuir la carga de nuestro servicio NIS entre varias m´quinas. Esto se consigue introduciendo. el cual deber´ conectarse a diferentes redes podea a mos optar por dejar el archivo /etc/yp. . ejecutaremos el siguiente comando: #ypbind Jose Antonio Escart´ Vigo. Asegurarnos de que el /var/yp/Makefile tiene la l´ ınea NOPUSH=false Establecer UID y GID m´ ınimos. Obviamente. A menos que dispongamos y usemos. o 9.4. Esto es soportado a trav´s del uso de servidores NIS secundarios. el archivo /etc/gshadow. Puesto que necesita n ser de lectura para todo el mundo.

For the "ypserver". De esta forma el cliente NIS selecci´nar´ el servidor adecuado: o a #domainname proyecto Si no supi´ramos el nombre o IP del servidor en un determinado dominio se podr´ modificar el archivo e ıa de configuraci´n de la siguiente forma: o #yp. This file is only interpreted once. Jose Antonio Escart´ Vigo. ya sea utilizando DNS o especificando el nombre e IP en el archivo /etc/hosts. . as´ nora ı malmente se consultar´ en primer lugar el archivo local y posteriormente el ofrecido por NIS.conf de la siguiente forma: e u #yp. es necesario especificar qu´ archivos de configuo e raci´n importaremos. Name Service Switch El orden correcto de los servicios depender´ del tipo de datos que cada uno de ellos ofrezca. si nos conectamos al dominio trabajo.conf # domain proyecto server debian domain casa server debian-home Al arrancar el ordenador podemos emplear el comando domainname para especificar el dominio al que nos estamos conectando. una de las principales utilidades de NIS es mantener sincronizados en la red los archivos empleados para la administraci´n de usuarios. Tambi´n podemos especificar m´ltiples dominios en el archivo /etc/yp. . and if DNS isn’t reachable yet the ypserver cannot be resolved and ypbind won’t ever bind to the server. Evidentemente el ordenador debe saber como resolver el nombre del servidor. el archivo de hosts. . use IP addresses.conf o Si hubiera m´s de un dominio en la red especificaremos el servidor NIS de la siguiente forma: a # yp. or make sure that the host is in /etc/hosts. Esto se realiza mediante el archivo: /etc/nsswitch. ın . evitando o u o de esta forma tener que realizar manualmente esta tarea en cada ordenador de la red. Seleccionar los archivos de configuraci´n del servidor o Una vez establecida la conexi´n con el servidor NIS. o Normalmente los archivos de configuraci´n ser´n los correspondientes a la configuraci´n de usuarios. debe utilizar el o servidor que encuentre en la red local.com Donde ypserver. o a o grupos y en el caso de redes que no utilicen DNS. de tal forma que podamos tener un control o total sobre los usuarios que pueden acceder a los diferentes ordenadores de la red sin necesidad de editar manualmente cada uno de los hosts.network. Pudiendo importar cualquier archivo de configuraci´n com´n a todos los ordenadores de la red y que sufra modificaciones peri´dicas.com es el nombre del servidor NIS al que nos conectaremos. Junio 2005. You can define NIS servers manually here if they can’t be found by broadcasting on the local net (which is the default).conf # domain proyecto server debian domain casa server debian-home domain trabajo broadcast La opci´n broadcast indica al cliente NIS que.114 Servidor Linux para conexiones seguras de una LAN a Internet Configuraci´n local de NIS: /etc/yp.conf # # # # # # IMPORTANT: # # # Configurati\’on file for the ypbind process. ypserver ypserver. a Como antes he comentado. See the manual page of ypbind for the syntax of this file.network.

Cap´ ıtulo 9. Se pueden listar varios servicios. o ypmatch: Es muy parecido a ypcat. si NIS parece no funcionar correctamente.conf. escribimos: #ypcat passwd Vuelca el archivo passwd (mapa del archivo) en pantalla (si es que lo estamos compartiendo por NIS). Junio 2005. debemos asegurarnos de que el n´mero o ID de los usuarios locales coinciden con el de los contenidos en el servidor.conf : passwd: nis files group: nis files El formato del archivo /etc/nsswitch. le proporcionamos un valor clave y solo aparecer´ la entrada correspondiente a esa clave. vuelca los contenidos de un mapa NIS (archivo NIS). por ejemplo. Tambi´n es una buena e herramienta de diagn´stico. a ´ para el passwd: #ypmatch josan passwd Jose Antonio Escart´ Vigo.3.conf Y tengamos en funcionamiento el demonio de cliente ypbind. o ypwhich: Devuelve el nombre del servidor NIS que responde a las peticiones.conf /etc/nsswitch. 9. Si no vemos el archivo.conf es el siguiente: nombre-archivo: nombre-servicio Donde nombre-archivo es el nombre del archivo que necesita referenciarse y nombre-servicio es el nombre del servicio que se utiliza para encontrar el archivo. separados por espacios. en lugar de mostrar el mapa entero. necesitamos hacer una comprobaci´n de las configuraciones del servidor y el cliente o cliente. Esto es util. Sin embargo. Herramientas b´sicas a Para trabajar con NIS disponemos de algunas herramientas que extraen informaci´n de la base de o datos mediante la l´ ınea de comandos: ypcat: Comentada en la secci´n anterior. no es suficiente. Servicios de red 115 No obstante. podemos usar el comando ypcat para volcar un archivo de nuestro servidor NIS en pantalla. ın .5. con activar este servicio en /etc/nsswitch. Para ello. y probar de nuevo. u Una vez realizada esta comprobaci´n podremos activar este servicio NIS a˜adiendo el siguiente c´digo o n o al archivo /etc/nsswitch. Estos son los servicios v´lidos: a Servicio files yp nis dns [NOTFOUND=return] nis+ Descripci´n o Usa el archivo de la propia m´quina a Usa NIS para realizar la b´squeda u Usa NIS para realizar la b´squeda (nis es un alias de yp) u Usa DNS para realizar la b´squeda (se aplica s´lo al archivo hosts) u o Detiene la b´squeda u Usa NIS+ Prueba de configuraci´n del cliente NIS o Una vez hayamos configurado los archivos: /etc/yp.

En estos momentos NIS+ es bastante experimental e inestable.116 Servidor Linux para conexiones seguras de una LAN a Internet 9. Desde el punto de vista del cliente. Incluso en una red local. la seguridad es bastante pobre. Cualquier m´quina puede “escuchar” los n a intercambios entre un cliente NIS y el servidor. por eso me he centrado en NIS. En NIS tambi´n se han buscado algunas soluciones al problema de la seguridad. simplemente ten´ que enviar una consulta al mapa passwd y recibir al instante todas ıa las contrase˜as encriptadas del sistema. desde el punto de vista del servidor.deny. La ultima versi´n de ypserv implementa esta caracter´ a o ´ o ıstica de dos formas. averiguar unas cuantas contrase˜as de usuario no ten´ ning´n problema. ın . el paquete con la respuesta falsa debe llegar al cliente e antes de que responda el servidor. esto a a supon´ un gran n´mero de posibles intrusos. cualquier m´quina de la red puede enviar una respuesta falsa. Simplemente restringe el acceso a su servidor NIS a ciertos o nodos. Y como no utiliza auu tenticaci´n a nivel de RPC. e o para ello es preciso que la m´quina que lleva a cabo el ataque est´ situada en el camino de comunicaa e ci´n entre servidor y cliente. Si un intruso sab´ nuestro dominio NIS y la direcci´n de ıa u ıa o nuestro servidor. puesto que utiliza RPCs seguros. si se configuran de forma adecuada.allow y /etc/hosts. Un o a intruso podr´ acceder al cliente NIS a trav´s de los comandos de acceso remoto. dejaba su archivo de contrasen˜s legible por pr´cticamente cualquier persona en todo Internet. Se puede crear f´cilmente un mapa NIS para sustituir al del servidor. Sol´ tener un defecto e ıa grave. y un buen n a n diccionario. y pasar por el o a servidor de NIS. Junio 2005. a e la direcci´n de la m´quina que lleva a cabo la intrusi´n. La soluci´n de estos problemas de seguridad pasa por utilizar autenticaci´n en el protocolo RPC. puesto que no modifica los mapas directamente y los archivos pueden ser le´ ıdos por todo el mundo. Problemas de seguridad NIS se considera seguro. hay que saber que las contrase˜as circulan sin encriptar sobre la red. n ıa u De todo esto trata la opci´n securenets. Utilizando un archivo de configuraci´n especial: /etc/ypserv. Elimina la mayor parte de problemas de seguridad que NIS planteaba.6. NIS+ o o trata de solucionar ese problema. o Utilizando convenientemente los archivos /etc/hosts. Para que el ataque tenga ´xito. Jose Antonio Escart´ Vigo. Por defecto no se utiliza ning´n algoritmo de cifrado en estas comunicaciones. Con un programa r´pido para crackear contrase˜as. bas´ndose en la direcci´n IP.allow.3. cambiando en el mapa. mediante soporte para el cifrado. Tambi´n debe ser capaz de observar la petici´n y generar la respuesta. por otra m´quina que se encuentre en el archivo o a o a /etc/hosts.securenets.

ıas Pero como indica su nombre ha sido ideado para ser usado de forma transparente a trav´s de la red. NFS para GNU/Linux o ıa n es intr´ ınsecamente inseguro y peligroso si se administra mal. a y se integra en la jerarqu´ de archivos existente en la m´quina.4. Jose Antonio Escart´ Vigo. Esto puede resultar o molesto si estamos montando /usr pero tiene sentido si estamos montando particiones de datos. diferentes y se han descrito pocos problemas de compatibilidad. esta todav´ en pa˜ales. Internet convierte este principio en algo absurdo y este es sin duda o uno de los mayores problemas de NFS.Cap´ ıtulo 9. confiando ıa ıan en la informaci´n que intercambian. enlaces. opera las modificaciones sobre el sistema local. En esas fechas los problemas de seguridad eran menores. El nombre de la partici´n a la que se desea acceder. ın . hay que asegurarse de que el kernel de Linux que estamos usando tiene compilado el soporte para NFS. La opci´n -o noexec es todav´ m´s radical. o o n Por desgracia. se monta con mount. 9. Cuando NFS recibe una petici´n v´ red. NFS: Sistema de archivos Linux en red NFS es un protocolo que data de los a˜os 80.4. tuber´ con nombre . . Si tenemos usuarios que escriben scripts esta opci´n puede ser muy o o molesta.1. Junio 2005. se trata de un sistema de archivos cl´sico. Servicios de red 117 9. ya que imposibilita la ejecuci´n de programas desde o ıa a o la partici´n montada por NFS. Todas las ordenes de entrada/salida son ıa a enviadas al servidor que se encarga de procesarlas. o Mejora en la seguridad: • Listas de ACL (Listas de control de acceso) que permiten definir acceso a los recursos por UID y archivo a archivo. Para montar una partici´n hay que conocer algunos par´metros: o a El nombre del servidor. e Desde el punto de vista del cliente. Cliente NFS Montaje de las partici´nes o Para poner en servicio un cliente de NFS. Podr´ ıamos usar algunas opciones de montaje para dotar de mayor seguridad al sistema. controlar acceso concurrente a archivos. NFS es una interfaz entre el sistema de archivos f´ ısico y un sistema remoto. etc. • Implementaci´n de un sistema de autenticaci´n basado en contrase˜a. . o ıa Dispone de todo lo que podemos esperar de un sistema de archivos tipo Unix: gesti´n de permisos. La opci´n -o nosuid quita el bit SUID sobre los ejecutables montados por NFS. o El nombre del directorio donde vamos a montar la partici´n NFS. n Todav´ pod´ construirse protocolos basados en la confianza. La segunda versi´n del protocolo es la primera versi´n publicada o o y sigue la siendo la m´s extendida en nuestros d´ Existen implementaciones sobre varias plataformas a ıas. tanto el servidor como el cliente. o propiedades avanzadas. la tercera versi´n de NFS para Linux. La tercera versi´n del protocolo data de 1992 y presenta varias mejoras: o Mejora del rendimiento debido a la reescritura del c´digo de red y uso de paquetes de datos mayores. o La sintaxis del comando mount es la siguiente: #mount -t nfs maquina:particion_a_montar punto_de_montaje Se puede facilitar el montaje de una partici´n si la incluimos en el /etc/fstab para que se monte al o iniciarse el sistema.

4. entre otros. Se trata de uno de los inconvenientes ligado a NFS. e Podemos tambi´n compartir una partici´n que contenga ejecutables. Pero las utilidades de cliente son a menudo muy utiles. estos archivos no son compartidos por NFS. siendo la m´s evidente el uso de servidores NIS para tener un control a de usuarios uniforme.user 0 0 La primera opci´n permite montar la partici´n autom´ticamente en el arranque. ın . pero no en el arranque. Montaje autom´tico de particiones NFS a Utilizaremos a este proposito el /etc/fstab como para cualquier otro sistema de archivos. ya que la gesti´n de concurrencia de NFS no es muy fiable y exportar /var/spool/mail por ejemplo. Llegando al extremo podr´ a ıamos tener ordenadores sin disco duro trabajando directamente sobre particiones NFS. puede producir o p´rdidas de mensajes. maquina:partition_distante punto_montaje nfs defaults 0 0 maquina:partition_distante punto_montaje nfs noauto. Esto es un problema porque ahora a Pepe puede acceder a los documentos de Paco. Lo primero es o que los propietarios de los archivos sobre el servidor y sobre la m´quina local no concuerdan. Esta es una mala idea.118 Ejemplos de uso Servidor Linux para conexiones seguras de una LAN a Internet Los ejemplos de uso de una partici´n NFS son numerosos. pero Paco no puede acceder ni a sus propios documentos. podemos constatar una serie de cosas. GID). nos permite ver la lista ´ de particiones NFS montadas por otras m´quinas dentro de la red. Propiedades de las particiones montadas Los derechos de propiedad (permisos de acceso) Cuando navegamos por una partici´n montada. Podemos imaginar. La segunda opci´n o o a o permite que cualquier usuario monte la partici´n con mount. o 9.4. como /usr/bin para ganar algo e o de espacio en disco sobre las m´quinas locales. Es que Linux a no usa los nombres de usuario y grupos sino que utiliza los c´digos de usuario y de grupo (UID. As´ cada usuario puede trabajar sobre cualquier m´quina de la red ı a encontrando siempre sus archivos personales sin esfuerzo. Los accesos concurrentes Las diferentes versiones del protocolo NFS dejan en manos del implementador la soluci´n de los proo blemas derivados de la concurrencia. Showmount en este caso. Jose Antonio Escart´ Vigo.2. a 9. Las o equivalencias aparecen en /etc/passwd y /etc/groups respectivamente. Junio 2005. Esto implica problemas de perdida de datos. Varias soluciones son posibles. Las herramientas del cliente: showmount Estrictamente hablando solo es necesario el programa mount para hacer funcionar un cliente de NFS. Ahora imaginemos lo siguiente: el usuario Paco dispone de una cuenta en el servidor donde tiene asignado el UID 542 y all´ tiene algunos archivos de su posesi´n.3. Su partici´n de trabajo es importada ı o o sobre otra m´quina donde el UID 542 corresponde al usuario Pepe. una partici´n o o de lectura/escritura sobre /home. Es frecuente que se exporten los buzones de correo de los usuarios. Uno de los problemas m´s habituales en una red lenta o subestimada a es que las particiones pueden ser desmontadas de forma “violenta” cuando los tiempos de respuestas son excesivamente lentos.

10(rw) La mayor´ de implementaciones de NFS no autorizan la exportaci´n de un subdirectorio de un diıa o rectorio previamente exportado. Servidor de NFS Existen dos servidores NFS en Linux. Restricci´n de los permisos de los clientes o Cuando el administrador de una m´quina monta una partici´n NFS. como sobre cualquier otra partici´n del disco local. direcciones IP. /usr pepe(ro) 192. o Jose Antonio Escart´ Vigo. pero los montajes existentes no son desactivados. Entre las opciones m´s corrientes. Se puede usar tambi´n la opci´n all squash que otorga a todos los usuarios los privilegios de “nobody” e o (usuario an´nimo). See exports(5).168. Si estamos utilizando NIS podemos tambi´n precisar el nombre del grupo de NIS. y ofrece mejores resultados en t´rminos de rapidez ´ e pero le falta estabilidad. Junio 2005. . En el marco de una exportaci´n de /home impedir´ que el usuario root de una m´quina o ıa a cualquiera accediera a los directorios personales de todos los miembros de la red NFS. vuelve a cargar la configuraci´n de /etc/exports o Este comando permite sincronizar la lista de montajes posibles. Para anular la exportaci´n de directorios (prohibici´n de montaje): o o #exportfs -u <directorio> Este comando nos permite interrumpir moment´neamente la exportaci´n de uno o varios directorios. conservada en /var/lib/nfs/xtab y basada en el archivo /etc/exports.. Este ultimo es frecuentemente llamado knfsd. /directorio maquina1(option) maquina2(option) . . e Modificar din´micamente las particiones exportadas no es posible. Estos cambios hay que activarlos usando el comando exportfs: #exportfs -r.4. . a o Este comando no modifica el contenido de /etc/exports y la modificaci´n no es definitiva. en m´quinas distintas se sugiere el uso de la opci´n: root squash en el archivo de /etc/exports. El servidor de NFS del kernel si que permite esta opci´n y esto puede o favorecer ciertas configuraciones. el servidor NFS no actualiza los a cambios realizados en el archivo /etc/exports. clases de direcciones IP o doa minios enteros.0. Por defecto los directorios son exportados en modo rw (lectura/escritura).. lo que asegura la integridad o o de la misma. Para realizar la instalaci´n haremos un apt: o #apt-get install nfs-kernel-server nfs-user-server El archivo /etc/exports Contiene la lista de las m´quinas y de los repertorios que deben ser exportados. Los nombres de las m´quinas pueden ser nombres DNS.Cap´ ıtulo 9. podemos citar las opciones de seguridad que veremos m´s adelante a a y las opciones de montaje tales como rw o ro que permiten la exportaci´n en modo lectura/escritura o o solo lectura respectivamente.4. Permite prohibir o todo nivel de montaje. uno funciona como un servidor tradicional y el otro integrado en el kernel. dispone de permisos de acceso de a o escritura. Servicios de red 119 9. a o Esta opci´n elimina los privilegios de root sobre la partici´n montada. Su sintaxis es: a # /etc/exports: the access control list for filesystems which may be exported # to NFS clients. ın . Si la red es administrada por varios usuarios o root.

Las herramientas del servidor : mountd y nfsd Si estamos usando el NFS incluido en el kernel. Es posible esquivar el problema usando la opci´n all squash en el montaje. Esto. Hecho esto.120 El problema del UID Servidor Linux para conexiones seguras de una LAN a Internet El problema de propiedad de los archivos es particularmente sensible cuando tratamos con particiones de usuarios. Las opciones anonuid=UID y anongid=GID nos permiten reemplazar nobody por el UID y el GID del usuario en cuesti´n. disponemos de la herramienta web: o Webmin. Esta herramienta nos permitir´ una configuraci´n y administraci´n de forma simple y sencilla. ın . a 9. Junio 2005. usamos la opci´n all squash para que o todas las modificaciones remotas sean consideradas como realizadas por el usuario nobody. el trabajo lo lleva a cabo directamente el modulo nfsd.nfsd solo sirve para comunicar el portmapper con el kernel. es problem´tico en entornos multiusuario a (como los entornos NT).5. All´ podr´ usar los archivos de los que o ı a ´l es due˜o sin ning´n problema. sino que el a servidor debe exportarlas una a una sobre cada cliente. sin embargo. El programa rpc.o de Linux. El programa rpc. Cuando una m´quina cliente solicita la exportaci´n de una partici´n. para que tenga acceso a su directorio personal.11: M´dulo Webmin para NFS o Jose Antonio Escart´ Vigo. interfaz Webmin o a Para facilitarnos la tarea de la configuraci´n de archivos. o En primer lugar no montamos directamente /home en el conjunto de m´quinas cliente.4. Configuraci´n gr´fica de NFS. e n u La autenticaci´n por m´quina funciona relativamente bien si los recursos personales son montados desde o a clientes Windows donde solo hay un usuario. mountd verifica si dicha m´quina cliente a o o a est´ autorizada. en Debian.mountd es el programa responsable de la seguridad de los montajes con NFS. a o o Para instalar el m´dulo NFS de Webmin realizaremos un apt: o #apt-get install webmin-exports Figura 9.

que permite utilizarlo sobre servidores Unix/Linux.1. tiene implementaciones sobre un gran n´mero de plataformas. Servicios de red 121 9. pero es posible: a Proteger con una contrase˜a el acceso a un directorio compartido. o • Archivos de configuraci´n.5. n Proteger con una contrase˜a personificada para cada usuario. mostrando sus funcionalidades m´s habituales. El protocolo CIFS (Coma mon Internet FileSystem). y dotar de permisos de acceso indivin dualizados. es posible usar el protocolo NFS para compartir archivos. llamada SaMBa. Samba: Servicio de conexiones para sistemas Microsoft En esta secci´n configuraremos el servidor Samba. Junio 2005. u NFS. es m´s econ´mico (y lleva menos o a o trabajo) utilizar el protocolo empleado nativamente por las m´quinas Windows. o a Jose Antonio Escart´ Vigo. su uso cambia seg´n trabajemos con los entornos Linux o Windows.Cap´ ıtulo 9. Las herramientas necesarias Los paquetes relacionados con Samba son los siguientes: samba-common: Contiene los elementos que van a permitir el buen funcionamiento de los otros paquetes: • Herramientas de conversi´n de tablas de caracteres Windows. o a Basado en los articulos sobre Samba publicados en http://bulma. El acceso a las impresoras compartidas. Compartici´n de recursos o El servicio de FTP permite intercambiar archivos en red. Se trata de una buena a soluci´n puesto que permite conservar todas las funcionalidades del sistema de archivos Linux. de all´ el nombre de Samba) ı Este protocolo permite compartir varios recursos diferentes: El acceso a los directorios compartidos.5. ın . o 9. o • Documentaci´n b´sica de Samba. Adem´s Samba puede colaborar con un servidor NT existente.5. a Veremos m´s adelante como configurarlo en detalle. El paquete Samba incluye utilidades para controlar el acceso de los archivos con la misma soltura que un WindowsNT. o reemplazarlo del todo. ¿Qu´ es Samba? e Samba es una implementaci´n bajo Unix/Linux de los protocolos CIFS y NetBIOS (antiguamente o llamado SMB. o Es decir no es transparente al usuario. soluci´n limitada a m´quinas Linux o a Entre m´quinas Linux. Pero tiene o una serie de inconvenientes: NFS presenta problemas de seguridad No existe una buena implementaci´n libre de NFS para equipos Windows o Protocolo CIFS. Existiendo una u implementaci´n libre. una posible soluci´n o En lugar de usar una soluci´n costosa.2.net 9. en los equipos Windows. Pero presenta serios problemas de integraci´n.

• Herramientas de configuraci´n. Junio 2005. Para ello. que se trata de una interfaz que se comporta como un o servidor Web. El demonio nmbd se ocupa de publicitar los servicios. es decir: • Aplicaciones que permiten hacer accesible los recursos a los usuarios. a Estos paquetes se pueden instalar f´cilmente con apt: a #apt-get install samba samba-doc smbclient smbfs swat Los demonios de Samba Dos demonios se encargan de ofrecer los servicios del conjunto de aplicaciones Samba. Este demonio maneja tambi´n la e resoluci´n de nombres de NetBIOS. sean proporcionados por un servidor Windows o por un servidor Linux que ejecute Samba. o • Documentaci´n esencial de Samba. puede comunicarse con un servidor WINS (Windows o Internet Naming Service) que se encuentre presente en la red. swat: Es una aplicaci´n web que permite configurar el servidor Samba f´cilmente. o smbclient: Contiene los programas clientes. contamos con el paquete smbclient para conectarse con los servicios CIFS. Existen dos formas para realizar la configuraci´n: o Editar directamente los archivos de configuraci´n con un editor de texto. el manejo de a a ı Swat (Samba Web Administrati´n Tool). por defecto. samba-doc: Contiene toda la documentaci´n necesaria para configurar en detalle todos las funciones o del servidor Samba. Es decir. ın . se encarga de informar a las m´quia nas presentes en la red sobre cuales son los recursos disponibles. el funcionamiento para las m´quinas a Windows es totalmente transparente. cambiar la configuraci´n y realizar el resto de tareas administrativas despu´s de o o e habernos validado con un usuario y una contrase˜a. Jose Antonio Escart´ Vigo.122 Servidor Linux para conexiones seguras de una LAN a Internet samba: Contiene todos los programas del servidor. o Manejar una herramienta gr´fica que generar´ el mismo resultado. se ejecuta en el n puerto http://localhost:901. Es posible leer la a a documentaci´n. El servidor Swat. Aqu´ veremos. Pero para ello nos o a har´ falta: Apache y varios paquetes de dependencias. pero tambi´n del o e control del acceso a los mismos. Gestiona los permisos de los diferentes clientes una vez que estos han sido identificados. No hay que cambiar nada en este sentido. El demonio smbd es el demonio que se encarga de la compartici´n de recursos. que permiten acceder a los recursos compartidos. En Linux. smbfs: Configura el sistema de archivos Samba. conect´ndose a la m´quina por medio de un simple navegador. Herramientas del cliente Las herramientas para el cliente bajo Microsoft Windows son aquellas utilizadas habitualmente para trabajar con servidores NT.

Intenta de forma o a relativamente transparente proporcionar todas las funcionalidades de la configuraci´n en modo texto. sin sobrecargar la interfaz.Cap´ ıtulo 9. o Como la configuraci´n de Samba es sencilla. seguida de una lista de los usuarios Samba que les corresponden.conf. Jose Antonio Escart´ Vigo.conf de muestra. de forma cifrada. Configuraci´n gr´fica de Samba.3. /etc/smbusers: Contiene una lista de usuarios del sistema. a e Su formato es parecido al de /etc/hosts. ha sido posible agrupar todas las posibilidades en un o n´mero reducido de opciones.12: Interfaz gr´fica Swat para Samba a Presentaci´n de los archivos en modo texto o /etc/smbpasswd : Contiene los passwords de los usuarios de Samba. interfaz SWAT o a La herramienta SWAT es el ejemplo de una buena interfaz de administraci´n gr´fica. De esta forma es posible crear varios usuarios Samba sin tener que crear para cada uno de ellos un usuario del sistema. Servicios de red 123 9. Y a˜adir la siguiente l´ n ınea: swat stream tcp nowait. e o Si no lo realiza la instalaci´n en el sistema.400 root /usr/sbin/swat swat Figura 9. u Ofrece la posibilidad de generar un archivo /etc/samba/smb.5. ın . /etc/lmhosts: Es un interfaz entre los nombres de m´quinas NetBIOS y las direcciones IP num´ricas. para poder ejecutar SWAT hay que modificar el archivo o /etc/inetd. Junio 2005. con el que podremos estudiar la sintaxis del script por si tuvi´ramos que editarlo a mano en alguna ocasi´n.

Es posible configurar el servidor Samba para que sea el mismo Servidor de Anuncios o dejar esta tarea a una m´quina Windows. basado en contrase˜a. los archivos compartidos y los archivos abiertos actualmente. incluso las que SWAT no ha cambiado. m´s configurables que la herramienta a gr´fica. a El acceso a los recursos puede controlarse de dos formas: Escondiendo el recurso. PRINTERS : Es casi id´ntico al anterior. Es aconsejable a primero crear la partici´n compartida (o los directorios) y despu´s precisar para cada partici´n sus o e o propiedades particulares. es decir. e la configuraci´n para compartir los directorios /home por Samba. pero permite compartir impresoras en lugar de particiones e de disco o directorios. y por tanto. o n El anuncio de servicios esta limitado al “grupo de trabajo”. el Servidor de Anuncios (Master Browser) que se encarga de centralizar estas a notificaciones de presencia. no anunci´ndolo a ciertas m´quinas de la red. Junio 2005. varias m´quinas pueden poner recursos a disposici´n de otras. Es posible de este modo separar conjuntos de recursos compartidos. o Jose Antonio Escart´ Vigo.conf. a a Estableciendo un sistema de validaci´n para restringir el acceso. As´ mismo. Funcionamiento de CIFS Sobre una misma red. CIFS dispone de a o un sistema para anunciar servicios (browsing). WIZARD: Permite configurar de una forma r´pida los archivos de configuraci´n.4. SHARES : Contiene la lista de comparticiones de disco efectuadas por la m´quina. Desdeaqu´ tambi´n podemos cambiar ı. De un modo u otro toda esta documentaci´n es en el fondo muy descriptiva.124 Los men´ s de SWAT u Servidor Linux para conexiones seguras de una LAN a Internet Paso a detallar cada una de las secciones del archivo /etc/samba/smb. ın . o STATUS : Muestra el estado actual del servidor. Cada m´quina Windows puede ser miembro a de un solo grupo. Sirve tambi´n al administrador para a˜adir nuevos usuarios. VIEW : Nos permite ver el archivo smb. a o GLOBALS : Contiene variables generales que se aplican al total de los recursos puestos a disposici´n o del servidor Samba. las conexiones activas. creando distintos grupos de trabajo. que permite saber que recursos compartidos hay disponibles. Si lo que deseamos es tener m´quinas accediendo a los recursos de varios grupos distintos. PASSWORD: Permite al usuario cambiar su contrase˜a. Se trata a menudo de una ayuda relativa a las opciones de los archivos en modo texto. HOME : Permite acceder a la versi´n html de la documentaci´n Samba. Este archivo es parecido a los archivos . establecer el modo a o de funcionamiento del servidor y el servidor WINS de la red. nombre e identificador. Es posible ver tambi´n la totalidad de las opciones posibles. solo puede pertener a un conjunto de m´quinas que compartan los mismos a recursos. Faltan tal vez algunas o o opciones. habituales del entorno Windows. aqu´ podemos establecer ı ı los modos de funcionamiento de Samba.ini. es a necesario pasar por un sistema de autenticaci´n. Esta secci´n contiene tambi´n informaci´n de identificaci´n del servidor dentro o e o o de la red NetBIOS : grupo de trabajo. en particular la ayuda sobre el propio SWAT deja bastante que desear.conf tal cual ha sido redactado por SWAT. Se trata de un interfaz grafico para el n programa smbpasswd. pero que tienen e un valor por defecto. e n 9.5. el estado de los demonios Samba. Cada m´quina que desea anunciar sus recursos compartidos a las otras m´quinas contacta con una a a m´quina en particular.

Servicios de red Existen varias formas de autenticaci´n. Tambi´n disponemos de una serie de par´metros referidos al control de acceso: e a El campo security: Permite elegir el m´todo de autenticaci´n. n Este m´todo presenta la ventaja de que no son necesarias tantas cuentas de usuario como usuarios e haya. Los men´s hosts allow y host deny permiten controlar el acceso a los recursos de ciertas m´quinas. sino tantas como recursos se compartan. Junio 2005. que se encargara de la autene ticaci´n. ın . El campo server string: Permite elegir la descripci´n que acompa˜a al nombre del servidor en la o n lista de recursos anunciados. sino a como un nombre de resoluci´n de nombres propio del protocolo NetBIOS. podemos elegir uno de los vistos e o anteriormente. a o El control de acceso por comparticiones: Se trata de un m´todo m´s global: cada recurso compartido e a es protegido por un password propio. cada una con sus ventajas e inconvenientes: o 125 La autenticaci´n por usuario y contrase˜a: Se trata del m´todo por defecto. El campo netbios name: Permite definir el nombre de la m´quina. Para cada usuario es posible definir el acceso o no a o unos recursos. El campo interfaces: Permite identificar la o las tarjetas de red que enlazan el servidor con el grupo de trabajo. Representa la ventaja o n e de permitir una gesti´n fina de los permisos.%m max log size = 50 Jose Antonio Escart´ Vigo. para permitir la autenticaci´n.Cap´ ıtulo 9. o e e • El m´todo server : Consiste en consultar con otro servidor CIFS. no como un nombre de DNS. e 9. El campo workgroup: Permite elegir el grupo de trabajo del servidor Samba.conf. u a Las configuraciones hechas en esta secci´n se aplican a la totalidad de los recursos compartidos. o Las configuraciones realizadas por Swat se reflejan en el archivo de configuraci´n /etc/smb. o independientemente de la configuraci´n especifica. Es importante entender o que son dos cosas totalmente diferentes. Autenticaci´n contra otro servidor : Existen tambi´n dos m´todos indirectos de control de acceso.5. Para ello es necesario que varios usuarios conozcan el mismo password y que recuerden la contrase˜a adecuada para cada recurso compartido al que accedan. Si o editamos dicho archivo podremos ver algo de este estilo: [global] workgroup = nombre_del_grupo server string = Servidor Samba security = SHARE log file = /var/log/samba/log.5. Este m´todo presenta un inconveniente: cada usuario debe disponer de una cuenta en e la m´quina Unix. o • El m´todo domain: Consiste en validarse contra el servidor de dominio NT. Par´metros globales a Es necesario elegir algunos par´metros de funcionamiento del servidor y para identificarlo y conseguir a que se integre en la red.

Puede ser necesario usar restricciones por nombre de m´quina (archivos host allow y host deny) para una mayor a seguridad. Si en la red a no hay m´quinas windows95 o anteriores.5. o e o Esto impide a un usuario “malicioso” hacerse con los passwords que atraviesan la red camino al servidor en busca de la autenticaci´n. directorio a compartir). o Activando la opci´n read only. En general se adopta /var/spool/samba. El sistema usa un m´todo heuristico para e determinar el identificador de un usuario que se conecta. compartir las ı a o carpetas personales del usuario sin riesgo alguno. y por tanto ser visible para u todos los usuarios. Hay que tener mucho cuidado con esto. se realiza dentro del menu PRINTERS.6. El resultado es reenviado al n servidor. o o En el caso de la compartici´n de espacio en disco es posible tener un mejor control sobre el acceso. Si los dos resultados son id´nticos la autenticaci´n es correcta. a˜adiendo al archivo smb. dentro de [global] Estas contrase˜as son almacenadas dentro del archivo /etc/smbpasswd. Impresoras Samba permite compartir f´cilmente una impresora conectada f´ a ısicamente a una m´quina Linux. o Esta operaci´n de elegir impresora. Por ejemplo. Junio 2005. es permitir a cualquier usuario de una m´quina miembro del grupo de a trabajo.7.x y Windows95. Las m´quinas clientes contactan n a con el servidor y reciben una clave codificada usando la contrase˜a cifrada.126 Servidor Linux para conexiones seguras de una LAN a Internet 9. Este modo permite por ejemplo. de o los derechos correspondientes al directorio que es compartido. es posible a˜adirlas.conf la siguiente l´ n ınea: encrypt passwords = Yes. Compartici´n de directorios o Algunas opciones son id´nticas a la compartici´n de impresoras. Por culpa de esta compatibilidad perdemos seguridad y es necesario tocar el registro del sistema de Windows en m´quinas Win98 y posteriores para que todo funcione. 9. se podr´ ofrecer acceso de solo lectura a la totalidad del ıa grupo y luego afinar un acceso de escritura a ciertos usuarios en concreto. previa autenticaci´n. El men´ browseable indica que este recurso debe ser anunciado por nmbd. . o Jose Antonio Escart´ Vigo.5. a Una impresora de red que no soporte mecanismos de autenticaci´n puede ser puesta a disposici´n de o o los usuarios gracias a un servidor de impresi´n de Samba. la integraci´n en un grupo de trabajo no es un m´todo fiable de o e validaci´n. Por defecto. haa ciendo asi accesible a todas las m´quinas conectadas a la red. y la a autorizaci´n de un usuario invitado son identicas a las que hemos encontrado en la secci´n PRINTERS. introduciendo su nombre en el campo Create Printer y confirmando n la acci´n. elegir el camino de acceso al recurso (en este caso. Si la m´quina dispone de a otras impresoras. . que hace la misma operaci´n. ın . Este presenta una lista o de impresoras existentes. pero este m´todo es facilmente manipulable. Seleccionando una en la lista desplegable y usando el comando Choose Printer (elegir impresora) accederemos a su configuraci´n. De este modo podr´ introducirse u o ıa en un grupo con permisos de impresi´n un usuario al que en principio hab´ o ıamos dejado fuera. Cualquier usuario de una m´quina Windows puede cambiar su grupo de trabajo tantas veces o a como desee sin que ning´n mecanismo de autenticaci´n se lo impida. Esta elecci´n le permite interoperar con clientes n o de Windows 3. e As´ que m´s vale usar la autenticaci´n en modo usuario. lo que permite controlar el acceso. o El camino de acceso (PATH). autorizar solamente el acceso en modo lectura o definir sobre un mismo o directorio varios tipos de permisos. todos los usuarios disponen. Si la seguridad esta en modo compartido (share). o Por defecto Samba extrae la lista de impresoras disponibles de /etc/printcap. usar la impresora. Las opciones que permiten limitar el e o acceso a ciertas m´quinas. n Esto se hace. es muy recomendable configurar el servidor de Samba para que a use contrase˜as cifradas. en una impresora se trata de del camino hacia el directorio utilizado por Samba para conservar la cola de impresi´n. o Autorizar el acceso guest. . Samba no utiliza contrase˜as cifradas.

el cliente no tiene porque a volver a validarse dentro del dominio aunque decida acceder a otro recurso compartido diferente del inicial. Servicios de red 127 9. permite impedir a los usuarios que escriban en el directorio compartido. En una red NT. Integraci´n de Samba en un dominio NT o Los dominios NT son variantes de los grupos de trabajo. Esto se realiza en en /etc/smb. a Jose Antonio Escart´ Vigo. Una vez la m´quina cliente se ha autenticado con un controlador del dominio. se encuentra indicado en la secci´n password server = nombre del servidor ) para la o autenticaci´n. podemos a˜adir la l´ n ınea: valid users = usuario1. Si esta l´ ınea esta presente el acceso esta reservado unicamente a los usuarios mencionados. Igual que los grupos. tiene una ´ cuenta en la m´quina NT consiguiendo con esto que los permisos funcionen.9. la tarea de responder a se lleva a cabo la m´quina “mas activa” que tenga acceso a la base de datos de usuarios.5. ın . permiten anunciar los recursos a diferentes clientes. Limitar acceso de los usuarios Para cada recurso es posible restringir el acceso a ciertos usuarios. los servidores secundarios o BCDs pueden tomar el relevo.8. e Para ello tenemos dos posibilidades: Autorizar el acceso de escritura y bloquear ciertos usuarios con derecho de solo lectura. usuario2 En ausencia de valid. ´ La opci´n read only. para cada una de las l´ ıneas de recursos compartidos que deseamos limitar. hay que asegurarse de que cada usuario. para ello hay que seguir el siguiente m´todo: e Lo primero consiste en declarar Samba como un miembro del grupo de trabajo del servidor NT.5. o 9. el controlador del dominio principal. y se autentica contra la primera que responde. n Cuando un cliente miembro de un dominio intenta acceder a un recurso. colocando su nombre en la secci´n read list= del recurso compartido. o Despu´s hay que crear una cuenta para el servidor: e #smbpasswd -j nombre_del_dominio Por ultimo. Todos los o miembros de un dominio utilizan la misma base de datos de usuarios y contrase˜as.conf. Seleccionando en el Swat Security=SERVER. Junio 2005. le estamos pidiendo al servidor de Samba que contacte con un servidor NT. que el servidor NT va a autenticar. En su ausencia. Pudiendo o tambi´n limitar el acceso a unos usuarios concretos. Es posible configurar un servidor Samba para que se integre dentro de un dominio NT. o Autorizar el acceso en solo lectura y dar el privilegio de escritura a ciertos usuarios gracias a la secci´n write list= del recurso compartido. Se trata del a Primary Domain Controller (PCD). El servidor NT. el recurso es accesible por todos los usuarios del servidor Samba.Cap´ ıtulo 9. El controlador del dominio “memoriza” las autenticaciones satisfactorias. Evidentemente el servidor NT debe estar configurado para responder a las peticiones o de autenticaci´n del servidor de Samba. La principal diferencia se encuentra a nivel de autenticaci´n. env´ una petici´n a todas las ıa o m´quinas de la red.

con el comando: #smbpasswd -a -m maquina 9.11. Es por a tanto preciso autorizarlas para ello. seguido del car´cter $. Necesitamos que las m´quinas (y no los usuarios) dispongan de una a cuenta. Cliente Samba Acceder a los recursos compartidos: smbclient Este comando permite acceder. hay que realizar varias etapas: 1. es decir invertir el mecanismo de elecci´n habitual en las m´quinas NT o a para llevarlas a nuestra m´quina Samba.conf. Configuraci´n de Samba como controlador de dominio o Samba es capaz de comportarse como un PDC (Controlador de Dominio Primario). El identificador de una m´quina es su nombre NetBIOS. la secci´n [GLOBAL] debe contener los siguientes elementos: o domain logons = yes security = user os level = 34 local master = yes preferred master = yes domain master = yes Si queremos compartir permitiendo la autenticaci´n de usuarios.5. La interfaz es parecida a la del ftp. desde un cliente Linux. tendr´ como identificador iceberg$. La sintaxis es: #smbclient //maquina/recurso Jose Antonio Escart´ Vigo. Junio 2005. sin embargo permite la autenticaci´n de las o u o diferentes m´quinas. bien se trate de un servidor Samba o de un servidor basado en Windows. o 3. a los recursos disponibles a trav´s de servidores e CIFS. es de este modo posible transferir archivos sin esfuerzo. con su directorio.128 Servidor Linux para conexiones seguras de una LAN a Internet 9. no es necesario darles un usuario normal. como no van a conectarse al shell. creamos una compartici´n ficticia. a En el archivo /etc/samba/smb. Configurar la autenticaci´n usuario por usuario. ın . Para configurarlo. a a As´ por ejemplo la m´quina iceberg. o a 2. a Autorizar la conexi´n de las m´quinas NT o a Las m´quinas NT intentan conectarse directamente al servidor y no a un recurso en concreto. Declararse Master Browser. Autorizar las peticiones de autenticaci´n de otras m´quinas. o o siguiendo este patron: [netlogon] path = /export/samba/logon public = no writeable = no browsable = no Esta compartici´n no ofrece el acceso a ning´n recurso.5.10. Hecho lo cual hay que a˜adir ı a a n esta cuenta de usuario a la base de datos de los usuarios de Samba.

que resuelve nombres de IP contra los nombres de NetBIOS de la m´quina. se comporta de una forma similar a los montajes mediante NFS. tales como print archivo. que puede (y suele) ser diferente de su nombre a de DNS. El recurso compartido CIFS se monta en un punto de nuestra jerarqu´ de directorios y podemos movernos por el ıa usando los comandos Unix habituales. Servicios de red El recurso puede ser: Un directorio. interfaz Webmin o a Para facilitarnos la tarea de la configuraci´n de archivos en Debian.13 se puede observar una serie de pantallas de la interfaz. a -R wins: Permite lanzar la consulta a un servidor WINS para obtener dicha conversi´n.5. tambi´n disponemos de otra heo e rramienta web. Para desmontar un recurso compartido usamos el comando smbumount. disponemos de una interfaz de transferencia de archivos o id´ntica a la del FTP. Un disco compartido. ın . que no almacena nada m´s que los archivos que han o a sido modificados a partir de la fecha especificada. 9. La opci´n -R permite elegir el modo de resoluci´n del nombre de la m´quina: o o a -R lmhosts: Permite consultar el archivo /etc/lmhosts. Tambi´n podemos acceder a algunas opciones extra. Jose Antonio Escart´ Vigo. a La sintaxis es la siguiente: #smbtar -s servidor -x recurso -t lugar_de_almacenamiento Es necesario disponer de permisos de lectura del directorio que deseamos almacenar. Esta herramienta nos permitir´ una configuraci´n y a o administraci´n de forma simple y sencilla. Smbclient se encarga de gestionar las interacciones entre los archivos presentes en el servidor. Guardar datos de un recurso compartido: smbtar El comando smbtar es muy similar al comando tar. 129 El nombre de la m´quina es su nombre de NetBIOS.Cap´ ıtulo 9. Una impresora. Es tambi´n posible e crear copias incrementales con la opci´n -N fecha. Integrar un recursos compartido en nuestros directorios: smbmount y smbumount El comando smbmount nos permitir´ movernos de una manera m´s c´moda por los recursos coma a o partidos mediante CIFS. Permite realizar copias de seguridad de los archivos del servidor desde la m´quina cliente Samba. para e e imprimir un archivo local en el servidor.12. Configuraci´n gr´fica de Samba. o Para instalar el m´dulo Samba de Webmin realizaremos un apt: o #apt-get install webmin-samba En la figura 9. Junio 2005. o Una vez conectado al servicio en cuesti´n. esta vez para el entorno Webmin.

13: M´dulo Webmin para Samba o Jose Antonio Escart´ Vigo. Junio 2005. ın .130 Servidor Linux para conexiones seguras de una LAN a Internet Figura 9.

Junio 2005. 2.6. que se detallan en el archivo mediante comentarios. o 5. Servicios de red 131 9.conf. De esta forma el servidor no mostrar´ su a versi´n cuando se establece una conexi´n. a los que se les pero a mitir´ el uso del servicio FTP. u a Este valor lo tendremos que determinar en funci´n del n´mero de usuarios del servidor. la l´ e ınea ServerIdent off. como es el caso de Internet. Uno de los mejores servidores FTP que podemos o encontrar en Linux es ProFTPD. se suele utilizar: user:ftp y group:nogruop. a Podemos especificar m´ltiples opciones m´s. ın . o o Especificamos el User y el Group.conf editamos el archivo y a˜adimos # (comentario) al principio de la l´ n ınea: ftp stream tcp nowait root /usr/sbin/tcpd in.conf.conf o /etc/xinted. File Transfer Protocol) es empleado en redes IP. para la transmisi´n de archivos. Colocamos. Se dise˜o como un servidor a a n FTP especialmente orientado a sistemas de tipo Unix. 4. Servidor ProFTP La configuraci´n se encuentra almacenada en el archivo: /etc/proftpd. realizar los siguente cambios: a 1.1. ProFTPD: Servidor FTP El protocolo de transferencia de archivos (FTP. Cambiamos MaxClients por el n´mero m´ximo de conexiones simultaneas que deseamos permitir.Cap´ ıtulo 9.6. o 9. a Jose Antonio Escart´ Vigo. 3. tomando muchas de las ideas y conceptos propios de Apache. despu´s de ServerType. En ServerName. el ancho de o u banda disponible y los recursos de la m´quina. colocamos el nombre de nuestro servidor. o Ser´ necesario editar este archivo y al menos. Si utilizamos inetd. a cambio.ftpd -l -a y. Este servidor soporta la creaci´n de hosts virtuales permiti´ndonos diso e poner. o u a podemos instalar el paquete de documentaci´n y consultarlo all´ o ı: #apt-get install proftpd-doc El archivo de configuraci´n /etc/ftpusers contendr´ los nombres de los usuarios. si colocamos nobody nadie podr´ acceder al servidor. de esta forma. Para instalarlo desde nuestro sistema Debian realizaremos un apt: #apt-get install proftpd La instalaci´n da la opci´n de colocarlo en el inetd o utilizarlo como un servicio independiente. o o Una vez instalado en el servidor necesitaremos editar el archivo /etc/inetd. de “m´s de un servidor FTP” en una sola m´quina. agregamos la siguiente: ftp stream tcp nowait root /usr/sbin/proftpd proftpd Ahora que ya hemos instalado el servidor tendremos que modificar los archivos de configuraci´n. como la modularidad. Si queremos a colocar un usuario an´nimo. colocamos el tipo de servidor (standalone o inetd ) en funci´n de lo que hayamos o especificado al instalar. En ServerType.

a a Desde nuestro entorno Debian se ponen a nuestra disposici´n: gFTP (GNU FTP ). Junio 2005.14: M´dulo Webmin para ProFTPD o Desde la ventana de ProFTP accederemos a las opciones de configuraci´n global del servidor y de los o diferentes servidores virtuales que tengamos definidos. o Desde las opciones de configuraci´n del servidor virtual tambi´n podremos establecer el directorio o e utilizado para guardar los archivos a disposici´n de los usuarios que se conecten a nuestro servidor de o forma an´nima. o 9. .6. Configuraci´n gr´fica de ProFTP.2. ın . o Para instalar el m´dulo de ProFTPD para webmin: o #apt-get install webmin-proftpd Figura 9. como por ejemplo las opciones de autenticaci´n de los usuarios y grupos en el o caso de que tengamos que establecer una configuraci´n de seguridad diferente en cada servidor virtual. . Clientes FTP En Internet es posible encontrar diversas aplicaciones que nos permiten trabajar con servidores FTP de una forma f´cil y r´pida. muy intuitivo y con entorno gr´fico.132 Servidor Linux para conexiones seguras de una LAN a Internet 9. .3. a Jose Antonio Escart´ Vigo. o Para instalarlo: #apt-get install gftp.6. Algunos de los par´metros m´s importantes a ajustar son el control de acceso y la autenticaci´n. para ejecutarlo: #gftp Es un cliente FTP. interfaz Webmin o a Estas misma tareas administrativas se pueden realizar c´modamente con la herramienta web: Webmin. a a o Cuando configuramos un servidor virtual podemos volver a ajustar algunos de los par´metros establecidos a en las opciones globales.

user Ambos archivos de registro. habilita las cuotas de grupo en la partici´n que corresponde a /usr.usrquota /dev/hda7 /tmp ext2 defaults.grpquota /dev/hda10 /home ext3 defaults.group #touch /home/quota.1. a Las cuotas se manejan en base al usuario o grupo y al sistema de archivos. deben pertenecer a root y s´lo el tendr´ permisos de lectura y escritura: o a . Primero deberemos de asegurarnos que la opci´n quota est´ activada dentro de nuestro kernel (opci´n o a o CONFIG QUOTA=yes). Arrancar el sistema de cuotas Tenemos que que cambiar nuestro /etc/fstab para indicarle que vamos a utilizar quotas. para manejar las cuotas de la partici´n /home: o #touch /home/quota. o a Ahora debemos de crear los siguientes archivos. tanto para nuestros usuarios Linux. Cuotas de usuario Las cuotas permiten especificar l´ ımites en dos aspectos del almacenamiento en disco: El numero de inodos que puede poseer un usuario o un grupo El numero de bloques de disco que puede ocupar un usuario o un grupo. como los usuarios Windows (Samba) necesitaremos instalar el programa: quote. quit´ndoles su habilidad de consumir espacio ilimitado en un sistema. Para ello realizaremos el siguiente apt: #apt-get install quota 10. para el manejo de cuotas. habilita las cuotas de usuario en la partici´n que corresponde a /home.Cap´ ıtulo 10 Servicios de usuario 10.grpquota 1 1 1 1 0 2 El par´metro grpquota.1. colocando los dos par´metros (en el ejemplo /tmp). La idea que se esconde detr´s de las cuotas es que se obliga a los usuarios a mantenerse debajo de su a limite de consumo de disco.1. Si el usuario espera crear archivos en m´s de un sistema de archivos. En una misma o partici´n pueden haber cuotas de usuario y grupo. ajustandolas al perfil de nuesto sistema: /dev/hda6 /usr ext2 defaults. Para habilitar las cuotas. las cuotas deben activarse en cada sistema de archivos por a separado. tenemos que insertar l´ ıneas como las siguientes. El par´mea o a tro usrquota.usrquota.

3. o Para realizar el mantenimiento de las cuotas. en caso contrario las cuotas no funcionar´n. Se utiliza para explorar el uso de disco en un sistema de archivos. a Para obtener m´s informaci´n podemos consultar el manual: a o $man quota $man -k quota 10. Configuraci´n gr´fica de Quote. especificado en /etc/fstab. y actualizar los archivos de registro de cuotas quota. Desactiva las cuotas. de forma gr´fica.134 #chmod 600 /home/quota. o o Para instalarlo. Es recomendable ejecutar quotacheck -avug para o obtener el uso de los sistemas de archivos lo m´s actualizado posible antes de editar cuotas. a Permitiendo modificar las cuotas del grupo. si ejecutamos el comando: #edquota -g <grupo> Se editar´n todos los dispositivos que permitan tener cuotas de grupo. especificado en /etc/fstab.1. Activa las cuotas. a Si ejecutamos el siguiente comando: #edquota -u <user> Se editar´n todos los dispositivos que permitan tener cuotas de usuario.1. para m´s informaci´n v´ase el ap´ndice D).user #chmod 600 /home/quota. Es preciso arrancar las cuotas siempre despu´s de a o e e e que los sistemas de archivos incluidos en /etc/fstab hallan sido montados. Los mismo ocurre en los grupos.group Servidor Linux para conexiones seguras de una LAN a Internet Los comandos que se muestran a continuaci´n nos permiten interactuar con el servicio de cuotas: o Comando #repquota -a #quotacheck -avug Descripci´n o Produce un resumen de la informaci´n de cuota de un sistema de archivos. ın . al estado mas reciente. podemos utilizar el m´dulo Webmin para cuotas. Se recomienda ejecutar quotacheck peri´dicamente al arrancar el sistema o mediante el o anacron cada cierto tiempo (por ejemplo cada semana). Jose Antonio Escart´ Vigo. #edquota -g <cuota> #quotaon -vaug #quotaoff -vaug Para arrancar el sistema de cuotas deberemos de colocar el servicio en uno de los archivos rc#. a Permitiendo modificar las cuotas del user.gruop. realizaremos un sencillo apt: #apt-get install webmin-quota Desde all´ podremos realizar. Junio 2005. Edita la cuota de el grupo.2.d (runlevels. Asignar cuotas a los usuarios Esta operaci´n se realiza con el comando edquota. interfaz Webmin o a Para facilitarnos la tarea de administraci´n de cuotas. los mismos pasos que desde la l´ ı a ınea de comandos.user y quota. 10.

1: Gesti´n de cuotas de disco. Junio 2005. ın .Cap´ ıtulo 10. en este caso /tmp o Jose Antonio Escart´ Vigo. Servicios de usuario 135 Figura 10.

Junio 2005. no tendremos m´s remedio que recompilar el a kernel. lo podremos o cargar con la herramienta: #modconf. . para una m´quina aislada con la impresora en a a local. para puerto paralelo o en mi caso para usb (necesitaremos hotplug).com ServerAdmin admin@host. sin problemas. color. . ).2. o Configuraci´n del servidor o Una vez tengamos instalados los archivos en el sistema vamos a configurar el servicio Cups. presentaciones. Si lo tenemos activado pero en el kernel lo dejamos como m´dulo. Para conseguirlo modificaremos las siguientes opciones: a ServerName host.1. Esto o o quiere decir que en una red debidamente configurada se puede encontrar las impresoras de todo el mundo que las tiene compartidas. este ultimo es un sistema bastante engorroso o e ´ en algunas configuraciones.0. . Si no necesitamos soporte a usuarios Microsoft igual nos estamos complicando la vida con Cups. es decir que est´n poco difundidas. necesitaremos instalar o varios paquete mediante el siguiente apt: #apt-get install cupsys cupsomatic-ppd cupsys-driver-gimpprint samba samba-common Debemos de asegurarnos de tener soporte en el kernel.dominio. 600x600. Cups: Servidor de impresi´n o Como servidor de impresi´n utilizar´ Cups frente a LPD. a n a Cada usuario puede tener su propia configuraci´n y no es necesario instalar varias impresoras cuando o cambiamos los par´metros de una impresora (econofast.136 Servidor Linux para conexiones seguras de una LAN a Internet 10. a Usa SLP e IPP para descubrimiento/publicaci´n del servicio e impresi´n. Para ello editaremos el archivo: /etc/cups/cupsd. e LPD es bastante m´s sencillo de hacer funcionar. o Pero no todo son alegr´ tambi´n existen una serie de desventajas respecto a lpd: ıas.Allow Deny From All Allow From 192. con las opciones adecuadas a nuestro sistema de impresi´n.com HostNameLookups On <Location /> Order Deny.* </Location> Jose Antonio Escart´ Vigo. Dispone de una interfaz de configuraci´n por web. Servidor Cups Para instalar el servidor de impresi´n y que se pueda compartir por Samba. 10. respectivamente. en caso contrario. que nos permitir´ realizar la configuraci´n de una ı a o forma mucho m´s visual y agradable.168. ın . Como ventajas de Cups respecto a LPD.conf Aqu´ estableceremos el acceso a la interfaz web. podemos citar las siguientes: Es m´s sencillo hacer funcionar impresoras extra˜as.2.

nnn.com host.* </Location> 137 En la opci´n de Allow From pondremos la IP.domain. ın .mmm.domain.nnn nnn.d/cupsys restart Configuraci´n gr´fica v´ web o a ıa Una vez hemos configurado los accesos.com nnn.nnn.nnn.nnn.nnn.Allow Deny From All Allow From 192.* nnn. o rango de IP desde las cuales accederemos al servidor o Cups.2 podemos observar la pantalla de presentaci´n. nos conectaremos al host donde se encuentre el servidor.nnn/mmm.nnn.nnn.* nnn. o Figura 10.nnn/mm nnn.168. Para ello.mmm @LOCAL @IF(name) Cuando hayamos terminado con la configuraci´n.nnn. probaremos a conectarnos al servicio de administraci´n v´ o ıa web.com:631 http://IP:631 http://localhost:631.nnn. En el ejemplo.* nnn. de diversas formas: # # # # # # # # # # # # # All None *. Servicios de usuario <Location /admin> AuthType Basic AuthClass System Order Deny.domain. Utilizaremos el navegador que m´s nos guste y el m´todo de acceso que resulte m´s adecuado a nuestro a e a sistema.* Como se detalla en los comentarios del archivo. Junio 2005.dominio.mmm. reiniciaremos el servidor Cups: o #/etc/init. se deniega el acceso a todo el mundo y despues se permite a las direcci´nes del rango o 192. si nos encontramos en local.0. En la figura 10. accediendo por el puerto 631 : http://host.com .0.2: Interfaz gr´fica de configuraci´n para Cups a o Jose Antonio Escart´ Vigo.168.Cap´ ıtulo 10. podemos especificar los host y los rangos de IPs.

e o Jose Antonio Escart´ Vigo. ın . o Despu´s s´lo queda elegir el fabricante y el modelo adecuados.138 Servidor Linux para conexiones seguras de una LAN a Internet Una vez situados en la web. para configurar la impresora debemos de seguir los siguientes pasos: Seguidamente iremos al men´ de Administraci´n y nos autenticaremos como usuario root. u o Ahora hacemos clic en A˜adir impresora. Junio 2005. En este men´ estableceremos un nombre a la impresora y n u estableceremos el tipo de conexi´n.

1 [HP815] #El nombre tiene que ser el mismo en Cups y Samba comment = HP Deskjet 815 browseable=yes writable=no printable=yes create mode = 0700 Una vez realizada la configuraci´n b´sica de Samba.%m max log size = 1000 printcap name = cups dns proxy = No panic action = /usr/share/samba/panic-action %d printing = cups security = share # Habilitaremos localhost y nuestra subred hosts allow = 192.Cap´ ıtulo 10. syslog = 0 log file = /var/log/samba/log. 127.0.2. . Despu´s todo deber´ funcionar.0. Ahora s´lo queda reiniciar los servicios Samba y Cups. o e ıa /etc/init. Servidor Cups para Samba Para configurar Cups rn Samba editaremos el archivo /etc/samba/smb. desde el men´ impresoras podemos impriu mir una p´gina de prueba y comprobar que la configuraci´n es correcta. volveremos a la configuraci´n Cups y realizaremos los siguientes cambios: o Editaremos el archivo /etc/cups/mime. a n Una vez realizado esto.d/samba restart /etc/init. En este caso la base de datos. . ın . nos pedir´ que le establezcamos una contrase˜a. .2. guest passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n .168. Lo realizaremos de la siguiente forma: #smbpasswd usuario. a o Figura 10.d/cupsys restart Jose Antonio Escart´ Vigo. para a˜adir lo siguiente: n [global] #Nombre del servidor Samba server string = Paquito obey pam restrictions = Yes #Tipo de autenticacion. Servicios de usuario 139 Una vez realizado esto tendremos la impresora configurada.3: Impresora HP815 configurada para usar Cups 10. deber´ o a ıamos a˜adir los usuarios Samba para que n se puedan autenticar contra el servidor.convs y descomentaremos las l´ ınea: application/octet-stream application/vnd.0.cups-raw Editaremos el archivo /etc/cups/mime.types y descomentaremos la l´ ınea: application/octet-stream.conf. tdbsam que viene por defecto passdb backend = tdbsam. Junio 2005.

140 Servidor Linux para conexiones seguras de una LAN a Internet 10. ın . Clientes Linux La configuraci´n del cliente.d/cupsys restart Y entraremos v´ web a nuestro host cliente (http://localhost:631 ) para configurar una nueva imıa presora.dominio.com>/<impresora> Una vez finalizada podemos imprimir una p´gina de prueba. con un apt: #apt-get install cupsys cupsomatic-ppd cupsys-driver-gimpprint Si no tenemos Ghostscript en el sistema. Solucionar problemas Si lo hemos configurado bien. seleccionamos el modelo de impresora que vamos a agregar (en mi caso. ı Si queremos aumentar el nivel de debug de los logs. a nivel debug.4. mediante los siguientes pasos: o Accedemos a Inicio -> Configuraci´n -> Panel de Control. especificamos la impresora como local y seleccionamos Crear un nuevo puerto -> Local Port Establecemos como nombre de puerto: \\host. de esta forma podremos encontrar el fallo. Y en el Device URI. ´ Una vez hecho esto la impresora deber´ estar configurada y lista para imprimir. o Seleccionamos Impresoras y faxes -> Agregar nueva impresora. La a˜adiremos de la misma forma que en el servidor.2.2. 10. Otra cosa primordial es consultar la documentaci´n Cups. HP 815).5. ıa 10. colocaremos: ıa smb://<usuario:password>@<host. pero no tenemos ni idea de porque no funciona podemos consultar los logs de Cups (/var/log/cups/error log) y buscar all´ el problema.conf. es muy similar a la instalaci´n del servidor Cups. o o Para ello seguiremos una serie de pasos: Agregamos al sistema los paquetes necesarios. tambi´n lo a˜adimos: e n #apt-get install ghostscript ghostscript-fonts Ahora iniciaremos el servicio Cups: #/etc/init. Clientes Microsoft Vamos a realizar la instalaci´n. a lo mejor nos encontramos con que el o m´delo concreto de impresora que tenemos no est´ soportado.com\<nombre_impresora> Por ultimo. tendremos que cambiar la opci´n “LogLevel” del o archivo /etc/cups/cupsd. En el asistente.2. en este caso asignaremos una impresora del tipo Windows Printer a o v´ Samba. Junio 2005.dominio. n La diferencia est´ en la conexi´n. para ver si todo est´ configurado correca a tamente. o a Jose Antonio Escart´ Vigo.3.

wikipedia. aunque pueden a˜adirse mas lenguajes mediante el uso de plugins. Las aplicaciones de servidor suelen ser la opci´n por la que se opta en la mayor´ de las ocasiones para o ıa realizar aplicaciones web. Este protocolo est´ dise˜ado para transferir lo que llamamos hipertextos. en ingl´s. bases de datos de autenticaci´n y negociado de contenido. cualquier cliente dotado de un navegador web b´sico puede utilizar. los colores y la disposici´n de los textos y objetos de la p´gina. Windows y otras. como s´ ocurre en el caso de querer ejecutar aplicaciones e ı javascript o java. o es decir.Cap´ ıtulo 10. e Normalmente. pero m´s tarde fue reescrito por completo. ın . Cuando comenz´ su desarrollo en 1995 se bas´ inicialmente en c´digo del popular NCSA o o o HTTPd 1. que implementa el protocolo HTTP/1. u 1 Definici´n o obtenida de Wikipedia. El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. al ejecutarse ´sta en el servidor y no en la m´quina del cliente. e Un servidor web se encarga de mantenerse a la espera de peticiones HTTP llevada a cabo por un cliente HTTP que solemos conocer como navegador. Hay que distinguir entre: Aplicaciones en el lado del cliente: El cliente web es el encargado de ejecutarlas en la m´quina a del usuario. El cliente es el encargado de interpretar el c´digo HTML. Son las aplicaciones tipo Java o Javascript. Es necesario. La raz´n es que. los navegadores permiten ejecutar aplicaciones escritas en lenguaje javascript y java. el servidor o a tan s´lo se limita a transferir el c´digo de la p´gina sin llevar a cabo ninguna interpretaci´n de la misma. Servidor Web Un servidor web1 es un programa que implementa el protocolo HTTP (hypertext transfer protocol). siendo el servidor HTTP del 68 % a de los sitios web en el mundo y creciendo a´n su cuota de mercado. p´ginas web o p´ginas HTML a n a a (hypertext markup language): textos complejos con enlaces. Estas son fragmentos de c´digo a o que se ejecutan cuando se realizan ciertas peticiones o respuestas HTTP. Su nombre se debe a que originalmente Apache a consist´ solamente en un conjunto de parches a aplicar al servidor de NCSA. por tanto. o o a o ´ Sobre el servicio web cl´sico podemos disponer de aplicaciones web.3. ı a 10. Sin embargo. el servidor toma este c´digo reci´n creado y lo env´ al cliente por medio del o o e ıa protocolo HTTP. el hecho de que HTTP y HTML est´n ´ e ıntimamente ligados no debe dar lugar a confundir ambos t´rminos. Una vez ejecutada. As´ pues. mediante el navegador. HTML es un formato de archivo y HTTP es un protocolo. etc. pero fue criticado por la falta de una interfaz gr´fica que ayude o a en su configuraci´n (en nuestro caso esto queda resuelto con Webmin).1. de mostrar las fuentes. botones y objetos incrustados como animaciones o reproductores de sonidos. genera o cierto c´digo HTML. que el cliente e disponga de un navegador con capacidad para ejecutar aplicaciones (tambi´n llamadas scripts). Servidor Apache El servidor HTTP Apache es un servidor HTTP de c´digo abierto para plataformas Unix (BSD. n Aplicaciones en el lado del servidor: El servidor web ejecuta la aplicaci´n. a patchy ıa e server (un servidor parcheado). o GNU/Linux. Servicios de usuario 141 10.1 (RFC 2616) y la noci´n de o sitio virtual. El navegador realiza una petici´n al servidor y ´ste le o e responde con el contenido que el cliente solicita. formularios. o En la actualidad (2005). figuras. el servidor proporciona el c´digo de las o aplicaciones al cliente y ´ste. Era. Apache presenta entre otras caracter´ ısticas mensajes de error altamente configurables. Apache es el servidor HTTP m´s usado. Junio 2005. o e a ´ste no necesita ninguna capacidad adicional.3.3. la enciclopedia libre: http://es.org Jose Antonio Escart´ Vigo.). las ejecuta.

. directorio base de los archivos de configuraci´n. . ın . . a Ejecutables de Apache: /usr/bin El directorio base de los archivos de configuraci´n del servidor web se especifica en el archivo httpd. o DocumentRoot: /var/www. .4 podemos observar la pantalla de presentaci´n del m´dulo Webmin y los par´metros o o a de configuraci´n que podemos modificar del mismo. .conf. Junio 2005.142 Configuraci´n de Apache o Servidor Linux para conexiones seguras de una LAN a Internet Para instalar el servidor web y realizar su configuraci´n de una forma c´moda y sencilla. utilizaremos o o unos m´dulos para la herramienta web Webmin. especifica el resto de archivos de configuraci´n (con la opci´n -f ). los directorios de configuraci´n se encuentran colocados en los siguieno o tes puntos del sistema: ServerRoot: /etc/apache.conf se especifica en la l´ ınea de comandos del servidor (httpd) y. directorio base de las p´ginas web del servidor. . o o Jose Antonio Escart´ Vigo. o Para instalarlos. o la ruta de acceso a httpd. Cuando el servidor web se inicia mediante los scripts de inicializaci´n. desde all´ se ı. o Figura 10.4: Interfaz Webmin para Apache Directorios y archivos de configuraci´n o En nuestra distribuci´n Debian. o utilizando la directiva ServerRoot. realizaremos el siguiente apt: #apt-get install apache apache-doc webmin-apache webmin-htaccess En la figura 10.

5. Servicios de usuario 143 Hay cuatro archivos de configuraci´n b´sicos en el directorio de configuraci´n. siendo ignoraa a das. Estos archivos. este archivo ya no se suele utilizar. Los par´metros a los que o a se puede acceder los podemos observar en la figura 10. srm. o Directrices del procesamiento de las peticiones. los archivos . dentro de los archivos de configuraci´n. Los cambios de configuraci´n de Apache m´s habituales o a se realizan en httpd.Cap´ ıtulo 10.conf. este archivo no se sigue utilizando. usando apachectl configtest o la opci´n -t de la l´ o ınea de comandos.1: Archivos de configuraci´n de Apache o Contenido Par´metros generales de configuraci´n del servidor.conf. Opciones de cada directorio: entre otras. Se puede usar “\” al final de una l´ ınea para indicar que una directiva continua en la pr´xima.conf access.conf. Cuadro 10.conf. Por lo general. Las l´ u ıneas que comiencen con el car´cter “#” ser´n consideradas comentarios.conf. se procesar´n en el orden a a siguiente: http.conf srm. Directivas relevantes en los archivos de configuraci´n: o Las directivas m´s habituales son las siguientes: a <Directory> <DirectoryMatch> <Files> <FilesMatch> <Location> <LocationMatch> <VirtualHost> Jose Antonio Escart´ Vigo. Con el fin de reducir la confusi´n. ıa Podemos hacer un chequeo de la sintaxis de sus archivos de configuraci´n sin tener que reiniciar el o servidor. no se hace distinci´n entre may´sculas y o o u min´sculas. y su o a o contenido habitual se describen en el cuadro 10. control de acceso y restricciones de seguridad.conf. Este archivo define el ´rbol o a de documentos (espacio de nombres) visible por todos los usuarios. Los archivos de configuraci´n adicionales (especialmente los o relacionados con la seguridad) deber´n estar presentes en el ´rbol de documentos real que el servidor a a procesa. adem´s de c´mo el a o servidor env´ informaci´n de ese ´rbol a clientes remotos. Sintaxis de los archivos de configuraci´n: o Los archivos de configuraci´n de Apache contienen una directiva por l´ o ınea. La estructura del ´rbol de ıa o a a documentos no tiene que coincidir necesariamente con la estructura del directorio de su sistema de archivos local. ın . Si existen los dem´s archivos .conf contienen los diferentes tipos de informaci´n. suprimiendo la necesidad de srm. Archivo httpd. entre otras: respuestas de error.1. despu´s de una directiva de configuraci´n. Junio 2005.conf y access. Apache se distribuye ahora con todas las a o opciones en el archivo principal httpd.conf y access. No se pueden incluir comentarios en una l´ ınea. Estos archivos pueden ser modificados desde el m´dulo Webmin de Apache. Este archivo tiende ahora a contener a o toda la configuraci´n. Los espacios e o y l´ ıneas en blanco antes de una directiva de configuraci´n se ignoran.types Hist´ricamente. No puede haber otros caracteres o o espacio en blanco entre el car´cter “\” y el fin de la l´ a ınea. Definiciones de tipos de archivo MIME para diferentes extensiones de archivos. Sin embargo. y el servidor web las interpretar´ correctamente. de manera que se puede dejar una o sangr´ en las directivas para mayor claridad.conf mime. opciones de indexaci´n del directorio y de procesamiento de scripts. En las directivas. todas o o las directrices del servidor web se pueden colocar en cualquiera de los tres archivos.

esto se llama Hospedaje Virtual. a Jose Antonio Escart´ Vigo.144 Servidor Linux para conexiones seguras de una LAN a Internet Figura 10. <Location>. <DirectoryMatch>. El dominio de aplicaci´n de las directivas tambi´n puede ser delimitado poni´ndolas dentro o e e de <VirtualHost>.5: Par´metros de configuraci´n de APACHE a o Las directivas que se pongan en los archivos principales de configuraci´n se aplicar´n a todo el servidor. Junio 2005. o e <FilesMatch>. y <LocationMatch>. ın . o a Si queremos cambiar unicamente la configuraci´n de una parte del servidor. Estas secciones pueden ser anidadas. para permitir un grado de selecci´n m´s fino. <Files>. de manera que solo tendr´n efecto para pedidos de un sitio web en particular. podemos cambiar el rango de ´ o acci´n de las directivas poni´ndolas dentro de las secciones <Directory>. o a Apache tiene la capacidad de servir varios sitios web diferentes al mismo tiempo. a locales particulares dentro del sistema de archivos o URLs particulares. Estas secciones limitan el dominio de aplicaci´n de las o directivas dentro de ellas.

Allow Allow from all </Directory> Archivos . y a todos sus subdirectorios. podemos consultar el contexto de cada directiva. Como los archivos o . Junio 2005. a trav´s de archivos colocados o o e dentro del ´rbol de p´ginas web. o Con se puede observar en la figura 10. en el m´dulo Webmin-htaccess. Por ejemplo. Si no se configura correctamente Apache es posible recorrer todo el sistema de archivos del servidor desde una p´gina web. Los archivos especiales se llaman normalmente . Para ver qu´ directivas se pueden colocar. Para dar acceso a un conjunto determinado de directorios a˜adiremos el siguiente c´digo: n o <Directory /home/*/public_html> Order Deny. revise el contexto de la directiva.Cap´ ıtulo 10. e Figura 10. Para evitarlo hemos de a˜adir las instrucciones siguientes a la configuraci´n del a n o servidor: <Directory /> Order Deny. Las directivas que se pongan dentro de los archivos . ın .htaccess.6. Allow Deny from all </Directory> De esta forma evitaremos el acceso impl´ ıcito al sistema de archivos. pero se puede a a especificar cualquier otro nombre en la directiva AccessFileName. las directivas que controlan la creaci´n o de procesos solo pueden ir en el contexto del servidor principal. los cambios en estos archivos comienzan a o a actuar inmediatamente.htaccess Apache permite una administraci´n descentralizada de la configuraci´n. Para descubrir qu´ directivas pueden estar e dentro de qu´ secciones. El admie nistrador del servidor pueden controlar a´n m´s qu´ directivas son permitidas configurando la directiva u a e AllowOverride en los archivos principales de configuraci´n.htaccess se aplicar´n unicamente al directorio donde est´ el archivo. a ´ e Siguen las mismas reglas de sintaxis que los archivos principales de configuraci´n. hay algunas directivas que pierden su sentido en algunos contextos.6: Interfaz Webmin para HtAccess de Apache Jose Antonio Escart´ Vigo. e Protecci´n impl´ o ıcita de archivos del servidor: Una de las caracter´ ısticas de Apache que puede causar problemas de seguridad por ser mal interpretada es el acceso impl´ ıcito.htaccess se leen cada vez que hay una petici´n de p´ginas. Servicios de usuario 145 A pesar de que la mayor parte de las directivas pueden ir dentro de estas secciones. podemos especificar los direco torios a los que se va a tener acceso a trav´s de Apache.

Esto facilita la automatizaci´n de estos procesos.13 Apache tiene una nueva funcionalidad en la que o si cualquiera de los archivos de configuraci´n es un directorio. en formato html. estos reportes quedar´n almacenados. entonces necesitaremos matar los procesos hijos. No debemos permitir que los usuarios puedan escribir en el directorio donde se guardan los logs sin tener presente las posibles consecuencias. Apache entrar´ en ese directorio y analio a zar´ cualquier archivo (y subdirectorio) que se encuentre all´ trat´ndolos como archivos de configuraci´n. sino o ı. Log de errores: El servidor registrar´ los mensajes de error en un archivo de log. Este nombre de archivo se puede cambiar con la directiva PidFile.7 se muestran diferentes pantallas del m´dulo Webmin. seguramente podr´ tambi´n acceder al c´digo de usuario (UID) con el que se ha arrancado el servidor. El nombre del archivo se puede alterar usando la directiva ErrorLog. pudi´ndose controlar por web mediante un m´dulo para Webmin. Tambi´n o a e es capaz de realizar estadisticas para el proxy Squid y los servidores FTP.empresa1. Fichero pid : Al arrancar Apache almacena el n´mero del proceso padre del httpd en el archivo u logs/httpd. situados en el directorio: /var/log/apache/. a o Un posible uso de esta funcionalidad consistir´ en a˜adir servidores virtuales (VirtualHosts). por defecto. lo primero que necesitaremos ser´ a˜adir los archivos de log de o a n Apache. podemos instalar el paquete Webalizer. ser´ logs/access log. en el directorio: /var/www/webalizer. creando ıa n peque˜os archivos de configuraci´n para cada servidor virtual. que normalmente a e o es el usuario root. El n´mero del u proceso es para el uso del administrador.com y www. cuando quiera terminar o reiniciar el demonio.3. se pueden usar diferentes logs de error para diferentes anfitriones virtuales. y coloc´ndolos en un directorio de confin o a guraci´n. El servidor web Apache fue uno de los primeros que incluy´ soporte de hosts virtuales basados en o IP y basados en nombre. e o Para realizaremos el siguiente apt: #apt-get install webalizer webmin-webalizer La instalaci´n nos pedir´ que indiquemos donde esta situado el archivo de logs de Apache. En determinadas a ı circunstancias puede suceder que una empresa que dispone de un servidor quiera tener m´s de un dominio a activo en el servidor. se generar´ el reporte de a estad´ ısticas. El archivo de configuraci´n de Webalizer es: /etc/webalizer.pid. As´ se puede insertar o eliminar servidores virtuales sin tener que editar ning´n archivo. ın . o Jose Antonio Escart´ Vigo.empresa2. u simplemente quitando o copiando archivos. a Si utilizamos el m´dulo para Webmin. se pueden usar diferentes archivos de transferencia para diferentes anfitriones virtuales.com. Estad´ ısticas Webalizer Para poder ver las estad´ ısticas de uso del apartado Web de nuestro sistema. A partir de la versi´n 1.conf o Si ejecutamos desde el programa desde la l´ ınea de comandos: #webalizer. por ejemplo: www. En la figura 10. o Hosts virtuales El t´rmino Host Virtual se utiliza para referirse a la pr´ctica de mantener m´s de un servidor web en e a a una sola m´quina. que ser´ por defecto a a logs/error log.146 Archivos de log Servidor Linux para conexiones seguras de una LAN a Internet Cualquier persona que pueda escribir en el directorio donde Apache escribe los logs. Junio 2005. Si el proceso muere (o es interrumpido anormalmente). as´ como para diferenciarlos por el nombre de servidor que presentan. El nombre del archivo se puede alterar usando la directiva a CustomLog. Log de transferencia: El servidor normalmente registrar´ cada pedido en un archivo de transferencia a que. a ı.

respectivamente. o o Los procedimientos y los par´metros necesarios para configurar el hospedaje virtual utilizando estos a m´todos diferentes se tratan en las secciones siguientes. Servicios de usuario 147 Figura 10. Junio 2005. sin embargo. Una de ellas a a consiste en ejecutar m´ltiples copias de un servidor web. puede resultar u imposible por lo que respecta a los recursos de la m´quina. cada vez es m´s frecuente u a encontrar una sola m´quina actuando como servidor para m´s de un sitio web. una para cada sitio web. Uno se basa en utilizar m´ltiples e u direcciones IP. Una variante menor del hospedaje virtual basado en IP es el hospedaje virtual basado en puertos.Cap´ ıtulo 10. He aqu´ unas cuantas preguntas que podemos e ı utilizar para seleccionar una de los m´todos de hospedaje virtual: e ¿Disponemos de m´s de una direcci´n IP? a o ¿Cuantos sitios web pensamos hospedar? ¿Necesitan todos los sitios utilizar el puerto HTTP predeterminado (80)? ¿Se han asignado m´ltiples nombres a la m´quina? u a ¿Deseamos separar estrictamente los sitios web? Jose Antonio Escart´ Vigo. hospedaje virtual basado en IP y basado o en nombres. donde s´lo el puerto que forma parte de la direcci´n diferencia los hosts virtuales. ın . y otro se basa en soportar m´ltiples nombres de host en (normalu mente) una sola direcci´n IP.7: M´dulo de Webmin para Webalizer o Con el boom de Internet y el consiguiente aumento del n´mero de sitios web. una para cada sitio. a a Existen unas cuantas formas de proporcionar m´s de un sitio web desde una m´quina. a Hay dos m´todos para soportar hosts virtuales como un solo servidor. Se denominan.

148 Servidor Linux para conexiones seguras de una LAN a Internet Para a˜adir un host virtual en Apache utilizaremos la directiva <VirtualHost>.aucad. Junio 2005.com TransferLog /usr/local/etc/httpd/vhosts/aucad/logs/access_log ErrorLog /usr/local/etc/httpd/vhosts/aucad/logs/error_log ScripAlias /cgi-bin/ /usr/local/etc/httpd/cgi-bin/ </VirtualHost> En la figura 10.com> ServerName www.com. podemos observar la configuraci´n gr´fica de Webmin para Servidores virtuales o a Figura 10.8. en la figura 10. ın .com DocumentRoot /usr/local/etc/httpd/vhost/aucad ServerAdmin webmaster@servidoc. o ıa <VirutalHost www.aucad.9 podemos observar como se configurar´. en cada servidor podemos colocar las carpetas web que queramos.aucad.9: Compartici´n de carpetas en Apache o Jose Antonio Escart´ Vigo.8: Servidores Virtuales en Apache Compartir carpetas en el servidor web Una vez tenemos montado el servidor virtual. a Figura 10.com aucad. n En el siguiente ejemplo podemos ver c´mo se definir´ un servidor virtual para el dominio www.

podr´ ser interesante o ıa utilizar alguno de los siguientes m´dulos Apache: o apache-utils libapache-mod-security apache-perl libapache-mod-perl apache-php libapache-mod-php4 libapache-mod-jk libapache-mod-auth-shadow Jose Antonio Escart´ Vigo. podemos utilizar el script llamando a apachectl que sirve para controlar el proceso demonio con comandos simples como: #apachectl start. . sin utilizar privilegios de root. Servicios de usuario Arrancar el servidor Apache 149 El proceso httpd. Para ver o e qu´ m´dulos han sido cargados en el servidor.Cap´ ıtulo 10. lo deberemos colocar en uno de los scripts runlevel a (v´ase ap´ndice D). Si queremos que Apache arranque autom´ticamente. de inicio del sistema. Otras funcionalidades se encuentran disponibles a trav´s de m´dulos que a a e o pueden ser cargados por Apache. en conjunto con el resto del sistema. podremos ver la p´gina de prueba ubicada en el directorio especificado a en DocumentRoot. se puede usar la opci´n de l´ e o o ınea de comandos -l. Es posible que Apache sea invocado por el demonio Internet. Es posible especificar la ruta del archivo en el momento de la ejecuci´n la opci´n -f en la l´ o o ınea de comandos de la forma: #httpd -f /etc/apache/httpd. Si nos da alg´n fallo al arrancar normalmente es debido a que ya hab´ otra instancia de Apache corrienu ıa do o a que estamos intentado arrancar el servidor por un puerto privilegiado. para arrancar el servidor #apachectl stop. . a Una vez que el servidor ha arrancado y completado las actividades preeliminares como la apertura de los archivos de registro. para detener el servidor Si el servidor Apache se ejecuta correctamente volver´ a aparecer el s´ a ımbolo del sistema y si ejecutamos en un navegador: http://localhost. durante la compilaci´n se incluye en el servidor un juego o de m´dulos base. aunque esto no se recomienda. Si hemos realizado un apt. . ya se habr´ colocado all´ e e a ı. ejecutar´ los procesos hijo que realizan el trabajo de escuchar y responder las a peticiones de los clientes. a La primera tarea que realiza httpd cuando es invocado es localizar y leer el archivo de configuraci´n o httpd. o En el caso de que el puerto especificado en el archivo de configuraci´n sea el puerto por defecto. se ejecuta como un demonio en segundo plano para atender las peticiones que se realicen. Junio 2005. Para poder realizar las configuraci´n. poni´ndolas dentro de un bloque <IfModule>.conf En lugar de ejecutar http directamente. Por defecto. . 80 o (o cualquiera por debajo de 1024). Las directivas de configuraci´n pueden ser incluidas en forma condicional depeno diendo de la presencia de un m´dulo particular. El proceso principal httpd continuar´ ejecut´ndose como root. ser´ necesario tener privilegios de root para poder iniciar Apache.conf. . pero los procesos a a hijo se lanzar´n con un usuario con menos privilegios. ın . M´dulos Apache o Apache es un servidor modular. . inetd o xinetd. cada vez que se realice una conexi´n al servicio HTTP usando la directiva ServerType. Esto implica que en el servidor b´sico se incluyen unicamente las a ´ funcionalidades m´s b´sicas. Los m´dulos van por separado y pueden ser incluidos en cualquier momento usando la o o directiva LoadModule.

esta actividad requiere con frecuencia la transferencia de informaci´n personal y confidencial. de esta manera.3.. ın . supone un ine teresante dilema para los gobiernos que desean controlar los sistemas de codificaci´n con el fin de impedir o que caiga en las manos de entidades extranjeras a las que espiar. Despu´s de garantizar. o o En esta secci´n nos ocuparemos de otro aspecto de la seguridad: hacer privadas las comunicaciones o mantenidas entre los clientes y su servidor web. la seguridad de una sesi´n de e o comunicaci´n. Junio 2005. las dos m´quinas pueden intercambiar informaci´n privada o confidencial sin preocuparse o a o de que alguien pueda escuchar y utilizar la informaci´n.10. como n´meros de tarjetas de cr´dito o c´digos de o u e o cuentas bancarias.150 libapache-mod-auth-radius libapache-mod-ldap Servidor Linux para conexiones seguras de una LAN a Internet libapache-mod-auth-mysql libapache-mod-acct-mysql libapache-mod-repository . por Netscape Communications Corporation con el fin de posibilitar que dos m´quinas que se comunicasen a trav´s de TCP/IP. La seguridad es una caracter´ o ıstica fundamental para los servidores web utilizados para el comercio en Internet.10: M´dulos instalados en APACHE o 10. podemos observar que m´dulos se encuentran instalados en el o sistema y habilitar o deshabilitar su uso. Como se muestra en la figura 10. inicialmente. Jose Antonio Escart´ Vigo. e El hecho de que el protocolo SSL est´ disponible para utilizarlo con los servidores web. SSL es un protocolo que fue definido.. Figura 10. realizaremos el siguiente apt: #apt-get install apache-ssl libapache-mod-ssl libapache-mod-ssl-doc La informaci´n de esta secci´n a sido obtenida de [BN00]. lo cual se consigue codificando dichas comunicaciones a trav´s del protocolo SSL (Secure Sockets Layer ). Apache-SSL: Conexiones seguras Para instalar Apache con SSL.2. codificasen la informaci´n a e o que se enviaran la una a la otra.

lo que se denomina un certificado. e Jose Antonio Escart´ Vigo. De esta forma se soluciona el problema de la a seguridad de la distribuci´n de claves. firman el certificado. o La codificaci´n se realiza introduciendo una modificaci´n en la informaci´n localizada en una ubicaci´n. las m´quinas deben entender una codificaa a ci´n de algoritmos com´n. a es no utilizar el tipo de protocolo correcto (https) en las URL que remiten al sitio web seguro. los sistemas de clave privada presentan un problema porque e la clave se debe transmitir. Esto puede desconcertar al usuario final. el cliente utiliza un protocolo diferente. y una de ellas (la clave p´blica) se puede hacer disponible para cualquiera sin que se vea afectada o u la seguridad de las comunicaciones entre dos m´quinas. Si deseamos ejecutar un sitio web seguro para uso p´blico. es similar al HTTP. que el servidor est´ siendo ejecutado por la organizaci´n que el usuario espera). entonces. se agota el tiempo de espera. Es a esto a lo que se llama sistema o de clave privada. o En un sistema de claves como ´ste. SSL utiliza una forma u o especial de codificaci´n denominada infraestructura de clave p´blica (PKI). o Certificados: Verificaci´n de qui´n est´ al otro lado de una sesi´n segura o e a o Otro asunto relacionado con las comunicaciones seguras es si debemos confiar en el servidor web con el que nos estamos comunicando. Se transmite. el cliente puede proporcionar un n´mero de tarjeta de cr´dito a un servidor o u e falso ejecutado por estafadores).example. Junio 2005. Las partes de la informaci´n de seguridad utilizadas para codificar y descodificar la o informaci´n se llaman claves. en lugar de HTTP. es posible que el servidor est´ hablando con el servidor o e web err´neo (por ejemplo. como indico a continuaci´n: o https://www. pero con seguridad a˜adida. En un sistema sencillo. Aunque un servidor web puede enviar a un cliente una clave para realizar una comunicaci´n segura con el mismo. donde se utiliza una clave para o o restaurar la informaci´n a su forma original (descodificarla). Cuando un navegador intenta acceder a un servidor seguro en un puerto equivocado. de forma segura a la nueva ubicaci´n. despu´s. Servicios de usuario Sistemas de clave p´ blica-privada u 151 Para codificar los paquetes que viajan entre dos m´quinas. a o Cuando instalemos un servidor web. de modo debemos prestar especial atenci´n a la comprobaci´n o o de todas las URL que creemos y que est´n vinculadas al sitio seguro. Cuando se utiliza un sistema de clave p´blica-privada. Mientras el puerto predeterminado TCP para el protolo HTTP es el puerto 80. Los navegadores clientes poseen una lista de e agencias de confianza que utilizan para verificar que se est´ comunicando con el servidor con el que el a usuario desea (es decir. Como se deduce del nombre. o o o o mediante una clave. de alg´n modo. como parte del sistema global o u que utiliza para proporcionar sesiones de comunicaci´n segura. la informaci´n a otra ubicaci´n. la clave utilizada para o codificar la informaci´n es la misma que se utiliza para descodificarla. Utilizaci´n del HTTP seguro: HTTPS o En las comunicaciones a trav´s de un servidor web seguro. el puerto predeterminado para HTTPS es 443. Para acceder a un servidor web seguro. inherente a los sistemas de claves. un usuario debe especificar n la URL con el identificador de protocolo HTTPS. donde se describa al servidor web y o a la organizaci´n que hay detr´s del mismo. Existen varias o agencias que investigan a la organizaci´n que est´ ejecutando el sitio web y la informaci´n recopilada en o e o el certificado y. o a Este certificado puede estar “firmada” electr´nicamente por una agencia de confianza. debemos u hacer que una de estas agencias de confianza firme el certificado. porque el contenido de la clave se debe mantener en secreto para que la informaci´n se o mantenga tambi´n en secreto. finalmente. Sin embargo. se utilizan dos claves para el proceso de codificaci´n y descodificae o ci´n.Cap´ ıtulo 10.com/cgi-bin/proceso de tarjetas de credito Uno de los errores m´s comunes que cometen los nuevos administradores de servidores de web seguros. por un precio. ın . tambi´n es posible u e transmitir informaci´n adicional. parece que el navegador se boquea y. e denominado HTTPS (o HTTP seguro). debemos crear una pareja de claves p´blicas-privadas y un certiu ficado para utilizarlos con el servidor. y deben intercambiar informaci´n que permita a una m´quina descodificar lo o u o a que la otra codifica.

o Una petici´n de firma del certificado: Este archivo contiene informaci´n del certificado. Junio 2005.3. Linux se distribuye en todo el mundo y el gobierno de EEUU no permite la venta fuera de sus fronteras de determinadas formas de codificaci´n. Todos estos archivos son creado durante el proceso de instalaci´n de Apache-SSL. Por u este motivo. la mayor´ de las o ıa distribuciones no proporcionan directamente la funcionalidad de servidor de web seguro. que hay que ingeni´rselas para conseguir. Lo que significa.conf del servidor o para especificar el archivo de claves que ha de usarse para que las operaciones sean seguras. o a A partir de ahora nuestro httpd. se encontrar´ situado en: /etc/apache-ssl/httpd. utilizadas u por el servidor para codificar y descodificar operaciones. se denomina mod ssl. aunque sea de la competencia. de manera predeterminada. es muy peligroso dejar sin codificar la clave privada en el disco. Si es una agencia de confianza quien firma este certificado. la que se describe a continuaci´n. Consiste en un conjunto de parches y un m´dulo especial para o utilizarlos con el c´digo fuente de Apache y utiliza una biblioteca de criptograf´ llamada OpenSSL. u Los archivos siguientes se utilizan para la seguridad del servidor: Un archivo de claves del servidor : Este archivo contiene una clave p´blica y una privada. o a generar e instalar la funcionalidad del servidor web seguro para Apache.152 Servidor Linux para conexiones seguras de una LAN a Internet 10. Un archivo de certificado. El hecho de que un paquete pueda constituir la base para otro. sin protegerla con una frase de contrase˜a. Este archivo indica que la clave y el sitio web son gestionados por una determinada organizaci´n. Creaci´n de un servidor web seguro o Debido a las restricciones gubernamentales impuestas en los EEUU a la exportaci´n. o Preparaci´n de los archivos especiales necesarios para la seguridad o El servidor necesita varios archivos especiales para operar de modo seguro. El certificado del servidor El archivo de certificado del servidor contiene informaci´n sobre la organizaci´n que ejecuta el sitio o o ´ web.3. desafortunadamente. n Aunque pueda resultar molesto. Existen dos opci´n para agregar el protocolo SSL a Apache. Apache-SSL. Una vez que el archivo est´ codificado. Se debe enviar a la agencia de confianza (llamada autoridad de certificaci´n) o o para que sea firmado. proporciona las funciones de SSL. que o ıa. Alguno de ellos requieren un procesamiento especial llevado a cabo por una agencia de confianza (una autoridad de certificaci´n) o para que el p´blico en general utilice correctamente el sitio web. o La clave privada de la pareja de claves p´blica-privada debe ser protegida en todo momento. n Hay que utilizar la directiva SSLCertificateKeyFile del archivo de configuraci´n httpd. As´ como los nuevos o ı archivos de configuraci´n que quedar´n alojados en: /etc/apache-ssl/. as´ como ino o ı formaci´n sobre la clave. y a mod ssl se basa en el paquete que utilizamos.key. el usuario o puede confiar en que es ciertamente esa organizaci´n la que ejecuta el sitio web. es uno de los mejores valores de la filosof´ Open Sopurce ıa (de c´digo fuente abierto). y el cliente lo utiliza para verificar o Jose Antonio Escart´ Vigo. se nos pedir´ que introduzcamos una frase de contrase˜a o a n para codificar el archivo que contiene la clave. u Este archivo contiene las claves que utiliza el servidor para realizar la codificaci´n. Este es transmitido al cliente cuando se establece una sesi´n segura.conf a Pareja de claves p´ blica-privada: u La pareja de claves p´blica-privada se guarda en el archivo server. durante la creaci´n de la clave. y que o o se recomienda usar. OpenSSL se basa en una biblioteca m´s antigua llamada SSLeay.conf. ın . se nos pedir´ que e a introduzcamos la frase de contrase˜a cada vez que el servidor se inicie para que pueda acceder al archivo.

Petici´n de firma del o certificado) y env´ ıarla a la autoridad con la documentaci´n y el dinero. podemos eliminar el mensaje de error que aparece en el cliente. pero los usuarios lo pueden o a aceptar manualmente en los navegadores cuando aparezca el mensaje de error.Cap´ ıtulo 10.509 porque ´se es el nombre del est´ndar que define el e a formato utilizado para este archivo. o En la siguiente lista se pueden observar algunas autoridades de certificaci´n: o CatCert: http://www. suele proporcionar al usuario la informaci´n sobre dicha autoridad y el certificado pregunt´ndole si debe continuar. el archivo se cifra o o a autom´ticamente en un formato especial. Junio 2005. Podemos encontrar informaci´n detallada sobre los precios y a o las instrucciones para la creaci´n de la CSR. Cada uno de los principales navegadores que soportan el protocolo SSL o posee una lista de las autoridades de certificaci´n de confianza cuyas firmas acepta. en los sitios web de cada compa˜´ o nıa. ın . El precio de este servicio se cobra por el o coste derivado de investigar la informaci´n que contiene el CSR y por asumir la responsabilidad de la o certificaci´n de nuestro sitio web.com/site Todas estas compa˜´ aceptan las peticiones de firma de certificados generadas por el paquete mod ssl. deberemos de crear un CSR (Certificate Signing Request. o Cuando hayamos recibido un certificado firmado por una autoridad de certificaci´n real.com.iks-jena. Cuando creemos nuestro archivo de claves de servidor y el certificado. lo que implica verificar la inu o formaci´n recopilada en el certificado y firmarlo digitalmente. Para nuestro uso interno. como o a una de las que las autoridades de certificaci´n contemplan como v´lidas. debe ser firmado digitalmente por una CA (Certificate Authority.com VeriSign: http://www. Cuando un navegador o se encuentra ante un certificado firmado por una CA que no conoce. A veces se le llama archivo X. De modo que depender´ del o a a usuario si conf´ o no en que el sitio al que est´ conectado sea v´lido. mediante la directiva SSLCertificateFile La petici´n de firma del certificado o Si deseamos que los clientes conf´ en nuestro sitio. Los navegadores que se conecten a nuestro servidor no reconocer´n nuestra firma. A esto se le denomina o autocertificaci´n. se crear´ tambi´n la petici´n de firma del certificado.catcert.verisign. agregando un archivo de autoridad de certificaci´n al navegador del cliente.de/produkte/ca Thawte: http://www.thawte. Adem´s. nıas para su uso con Apache y mod ssl.net CertiSing: http://certisign. Servicios de usuario 153 que el sitio es legal. ıa a a El archivo de certificados que se ha de utilizar aparece especificado en el archivo de configuraci´n del o servidor. o Existen varias agencias que act´an como autoridades de certificaci´n. Para que una autoridad de certificaci´n o o nos firme el certificado. POdemos actuar como nuestra propia autoridad de certificaci´n y firmar nuestro certificado para o comprobar nuestro servidor o para ejecutarlo internamente en nuestra organizaci´n. Para que el cliente acepte el certificado. Autoridad de certificaci´n). deberemos poseer un certificado firmado por una ıen agencia de confianza que funcione como autoridad de certificaci´n. as´ como la documentaci´n solicitada por la autoridad de o ı o certificaci´n.br/servidores Entrust: http://www. La informaci´n solicitada para esta petici´n debe a e o o o coincidir exactamente con el nombre de la compa˜´ nombre registrado del dominio y otro datos que nıa. sustituiremos o el certificado autofirmado copiando el nuevo sobre el archivo antiguo. la autoridad de certificaci´n solicita para que puedan procesar la petici´n. Jose Antonio Escart´ Vigo. o modificando el valor de la directiva SSLCertificateFile.net IKS GmbH : http://www.entrust.

example.key # Si se requiere que los usuarios tengan un certificado. para conseguir que ejecute las extensiones SSL con nuestros certifio cados. puesto que est´ creado por la persona que lo firma.pem SSLVerifyClient none </VirtualHost> Con estas modificaciones ya deber´ ıamos poder acceptar peticiones por el puerto seguro. Si quieres generar un certificado. por defecto solo escucha en el 80 Listen 443 # Si utilizamos mas de un sitio seguro en una IP necesitaremos: NameVirtualHost 10. lo acortaremos para realizar pruebas valueSSLSessionCacheTimeout 300 Ahora crearemos un host virtual con SSL habilitado: <VirtualHost www. se puede hacer: #openssl genrsa -des3 > httpsd.com ServerAdmin example@example. Para probarlo podemos ejecutar la siguiente l´ ınea en un navegador: https://localhost:443 Jose Antonio Escart´ Vigo.1. sin esto el servidor se caera SSLCacheServerPath /usr/bin/gcache # Puerto en el que se ejecuta el servidor SSLCacheServerPort 12345 # timeout del SSL cache. SSLCertificateKeyFile /usr/conf/httpsd. configuraremos Apache para que utilize estos certificados.conf : o # Hay que decirle al Apache que escuche en el puerto 443. Si se necesita crear un certificado de prueba. pero para asegurarnos a realizamos el siguiente apt: #apt-get openssl install ssl-cert ca-certificates Esta es la parte f´cil.csr Ahora. y una petici´n de certificado para enviar a alguien como o CatCert o Verisign. entonces hay que hacer: #openssl genrsa -des3 > httpsd. se necesitaran un monton de certificados raiz.example.log # Habilitar SSL para este host virtual SSLEnable # Esto prohibe el acceso excepto cuando se utiliza el SSL. ın . para uso interno. Muy comodo para defenderse contra errores de configuracion que # ponen al descubierto elementos que deberian estar protegidos SSLRequireSSL SSLCertificateFile /usr/conf/httpsd. despu´s vamos al directorio donde tengamos los archivos de configuraci´n de apache-ssl (/etc/apachee o ssl/conf.com:443> DocumentRoot /www/secure/ ServerName www.154 Servidor Linux para conexiones seguras de una LAN a Internet Ejemplo de la creaci´n de certificados para un servidor o Deberemos de tener instalado el SSL.key #openssl req -new -key httpsd.log TransferLog logs/https_access.key #openssl req -new -x509 -key httpsd. Junio 2005. ya se habr´ instalado con apache-ssl.com ErrorLog logs/https_error. y despu´s configurar el httpd.crt Los navegadores se quejar´n sobre este certificado. 300 es un buen valor. utilizamos esta directiva para apuntar al archivo de la llave. Busca d´nde est´ instalado el OpenSSL y nos aseguraremos de que est´ en el o a a $PATH.crt # Si la llave no esta combinada con el certificado.d/ ). a a y no son fiables.key > httpsd. para que se puedan # verificar sus certificados personales SSLCACertificateFile /etc/ssl/ca-cert-bundle. Tambi´n ser´ preciso a˜adir algunas configuraciones globales. e a n Pasemos a ver las modificaciones de la configuraci´n de /etc/apache-ssl/httpd.conf a e para utilizarlo correctamente.key > httpsd. Se necesitan a˜adir varias cosas al n archivo de configuraci´n de Apache. el siguiente paso es crear el conjunto de llaves.1:443 # Es una buena idea deshabilitar el SSL globalmente y habilitarlo basado en hosts SSLDisable # SSL cache server.1.

debemos asegurarnos de atenernos o o ıa a ellas. si tenemos c´digo espec´ o o ıficamente de RSA. Hasta hace muy poco tiempo. ya no puede ser exportado desde o EEUU. Comprobaci´n de la legalidad o En su infinita sabidur´ las comisiones del gobierno de los EEUU han creado leyes que convierten ıa. todav´ nos encontraremos ıa ligados por el contrato de licencia. pensamos distribuir el servidor web o o una m´quina que lo contenga al extranjero.Cap´ ıtulo 10. como en sus leyes. y debido a que las peticiones de los clientes pueden ser servidas por m´ltiples procesos o u servidores hijos. el uso de una cache de sesi´n para compartir la informaci´n entre los procesos hijo o o puede acelerar las cosas considerablemente. Aparentemente. cu´l va o o ı a a ser el nombre del archivo). o o Debemos utilizar las directivas SSLLog y SSLLogLevel para crear registros donde almacenar la informaci´n espec´ o ıfica de SSL. seguido de la ruta del archivo que se va a utilizar para la cache de sesi´n. hacen la circulaci´n de la criptograf´ m´s f´cil. Debemos utilizar el valor none (ninguna) para desactivar la cache de la sesi´n o dbm. Debemos utilizar la directiva SSLSessionCache para indicar si deseamos soportar una cache para comunicar la informaci´n entre los procesos que intervengan de la sesi´n SSL (y. es necesario consultar con un abogado para conocer cuales a son las leyes de exportaci´n e importaci´n de criptograf´ en el lugar. El software de codificaci´n que EEUU importa. deber´ ıamos dejar estas configuraciones tal y como se encuentran. Si simplemente pensamos utilizar Apache con mod ssl como un servidor web seguro dentro de nuestra organizaci´n seguramente no tendremos problemas. sin embargo. Con el tiempo se ver´ hacia donde nos o ıa a a a lleva esta tendencia. merece la pena destacar aqu´ unas cuantas directrices de seguridad para dar una visi´n general sobre su ı o utilizaci´n. Sin embargo.509 pueden ser utilizados tambi´n por el servidor para la aue tenticaci´n de los clientes utilizando los certificados: SSLCACertificatePath. es que la mayor´ de o ıa los programas buenos de codificaci´n se desarrollan en otros pa´ y es EEUU el pa´ que los importa. ı). Si. ın . la compa˜´ RSA Data Security. o u La patente del algoritmo de RSA expir´ en el 2000. los cambios que se han producido recientemente tanto en el gobierno norteamericano. se ha ıs o tomado esta medida para impedir que una herramienta de codificaci´n muy potente caiga en manos de o terroristas y gobiernos no simpatizantes. o Debemos utilizar la directiva SSLCipherSuite para controlar qu´ algoritmos se permiten para las e sesiones de seguridad. en o ıses ıs lugar de ser al contrario. Finalmente. en un delito exportar desde este pa´ ciertos programas potentes de codificaci´n. o SSLVerifyClient. Servicios de usuario Directrices de seguridad especiales 155 Se a˜aden las directrices de seguridad para el control de mod ssl a la documentaci´n de Apache que n o se instala cuando genera el servidor web seguro (podemos estudiarlas en profundidad all´ Sin embargo. SSLCACertificateFile. Junio 2005. si as´ fuera. ni al propio autor original. El resultado de esta situaci´n. pose´ una patente norteamericana nıa ıa sobre determinados algoritmos de codificaci´n de claves p´blicas-privadas utilizados en el protocolo SSL. los certificados SSL y X. Debido a que las sesiones seguras requieren un trabajo importante de configuraci´n. de modo que ya no existen restricciones en la mayor o parte del c´digo. Inc. SSLVerifyDepth y SSLRequire. Por suerte. por el contrario. Jose Antonio Escart´ Vigo. A menos que seamos expertos en seguridad.

a o Configuraci´n simplificada: Algunas directivas confusas han sido simplificadas. a o ıan a a Pero ahora que los servidores tienen que interpretar ASP.3. Filtrado: Los m´dulos de Apache ahora pueden actuar como filtros analizando el contenido que es o servido. • mod_dav: Es un m´dulo nuevo que implementa DAV (Distributed Authoring and Versioning) o para HTTP. o a Algunos servidores web son m´s seguros que otros. Uno de los inconvenientes de estas modificaciones es la incompatibilidad con los m´dulos o o existentes para Apache 1.3. Nueva API : La versi´n 2. La idea intr´ ınseca de un servidor web (un usuario puede extraer archivos del servidor sin ninguna autenticaci´n) establece las brechas de seguridad. con el tiempo estos problemas a s´lo se incrementar´n. sin embargo.x. Apache 2. era mucho m´s f´cil controlarlo todo. PHP y otro tipo de tr´fico que contiene c´digo a o ejecutable.x de Apache incorporar´ una gran cantidad de mejoras y nuevas opciones entre las que o a cabe citar las siguientes: Soporte de multi-threads: De esta forma Apache puede ejecutarse utilizando m´ltiples procesos como u suced´ con la versi´n 1. o • mod_proxy: Este m´dulo ha sido completamente reescrito para aprovechar las nuevas caraco ter´ ısticas de filtrado e implementar de una forma m´s eficiente HTTP/1.x La versi´n 2. Ahora que las aplicaciones web son cada vez m´s complejas. Jose Antonio Escart´ Vigo. Soporte para IPv6 : Apache permite trabajar con el protocolo IPv6.5. Este o gran n´mero se debe al aumento creciente de tipos de protocolos y comandos con los que los servidores u tienen que tratar. los servidores web se sabe que tienen defectos y brechas de seguridad. Soporte para multiple protocolos: Apache incluye la infraestructura necesaria para servir m´ltiples u protocolos. con m´ltiples hebras de un unico proceso o en una forma h´ ıa o u ´ ıbrida. Errores multilenguaje: Los mensajes de error devueltos al navegador pueden proporcionarse de forma autom´tica en funci´n del idioma del navegador. algo bastante com´n en nuestros d´ u ıas.3.x incorpor´ m´ltiples cambios en la API (Aplication Programming Intero a u face) mejor´ndola y a˜adiendo nuevas funciones que permiten incorporar nuevas capacidades a los a n m´dulos. ın .156 Servidor Linux para conexiones seguras de una LAN a Internet 10. Tambi´n han sufrido o e mejoras algunos de los m´dulos que se incluyen por defecto en la instalaci´n b´sica de Apache. DAV es una especificaci´n para publicar y mantener el contenido de una web.3.4. Cuando las p´ginas web s´lo consist´ en HTML. Ataques al servidor Web Actualmente casi todas las empresas tienen que ejecutar un servidor web. pero todos tienen sus problemas. o o a Algunos de estos m´dulos son: o • mod_ssl: Este nuevo m´dulo proporciona una interfaz a los protocolos de encriptaci´n SSL/TLS o o proporcionados por OpenSSL. Y un servidor a web pirateado puede significar m´s que la verg¨enza de una p´gina web deformada si el servidor tambi´n a u a e tiene acceso a bases de datos y otros sistemas internos. proporcionando de esta forma una mejor escalabilidad.1 a Para instalarlo deberemos ejecutar el siguiente apt: #apt-get install apache2 apache2-doc 10. Junio 2005.

para consultar el correo por IMAP desde Internet. a • Apache. Si no sabemos que contestar. Mail Transfer Agent). 2. Para hacer funcionar Horde. es decir.Cap´ ıtulo 10. Como posteriormente queremos enviar nosotros mismos los e-mails.template Adem´s se nos pedir´ que contestemos a una serie de preguntas para configurar el servidor: a a 1. En las siguientes secciones detallo la configuraci´n del sistema. . 4. en este caso no lo vamos a utilizar. El sistema es un poco complejo pero consigue tener correo interno y externo. Procmail: Procesador de correo. o Servidores virtuales de correo. Servidor de correo Para montar el servidor de correo. Para instalarlo ejecutamos el siguiente apt: #apt-get install exim4 Durante la configuraci´n especificaremos el uso de un unico archivo de configuraci´n global: o ´ o /etc/exim4/exim4. basado en reglas. o Basado en art´ ıculos publicados en http://bulma. Horde: Webmail.net 10. • Para autenticar usuarios: LDAP o MySQL.4.conf. o Jose Antonio Escart´ Vigo. Junio 2005. • SpamAssassin: Filtro de Spam. o Si tenemos otro nombre para el correo entrante. Hacer de “relay” para otros dominios. tampoco se aplica en nuestra situaci´n. deberemos ejecutar adem´s los siguientes servicios. Servicios de usuario 157 10. ın 3. 5. Tipo de uso que vamos a dar a Exim. presionamos intro para dejar la opci´n por defecto.4. consiguiendo a a que este libre de virus y Spam. Courier-imap: Servidor de IMAP para dar acceso desde internet. • PHP. o Nombre visible de nuestro sistema. Fetchmail: Servidor de correo externo. • Bogofilter: Filtro de Spam. para uso local. seleccionaremos la primera opci´n. despu´s lo podemos modificar desde e el archivo de configuraci´n. lo primero que necesitaremos es disponer de programa que haga las veces de servidor de correo local (MTA. basado en el teorema de Bayes. en nuestro caso elegiremos el servidor Exim4. Es utilizado para filtrar los correos a trav´s de los siguientes proe gramas • ClamAv: Antivirus de correo. Adem´s podr´ ser consultado desde el exterior mediante el Portal Web Horde. centralizado en el servidor corporativo. Exim: Correo corporativo Para instalar un servidor de correo corporativo. el siguiente conjunto de programas: Exim4: Servidor de correo corporativo (MTA). para importar cuentas ajenas. colocamos cualquier cosa.1. el “mail name” o nombre de dominio en la direcci´n de o correo.

conf. podremos visualizar las siguientes informaciones: Los Logs del servidor La cola de correo del servidor Estadistas de mensajes Jose Antonio Escart´ Vigo. agreg´ndole un # delante. siendo usuario cualquier usuario del sistema y Maildir una carpeta que hemos creado para guardar el correo. Al reiniciar Exim: /etc/init. concaten´ndose uno detras de otro. .158 Servidor Linux para conexiones seguras de una LAN a Internet 6. Podemos colocar la que queramos. Quien recibir´ los mensajes del “postmaster” o “root”. por defecto los enviar´ al archivo: /var/mail/<usuario>. a La parte que tenemos que cambiar es la que hace referencia al reparto local de los e-mails. Junio 2005. esto es precisamente lo a a que queremos evitar. en esta carpeta se guardara el correo del usuario en formato maildir. ´ a Por si lo necesitamos m´s adelante. debajo de esa l´ ınea a˜adiremos lo siguiente: n driver = appendfile maildir_format = true directory = /home/${local_part}/Maildir create_directory = true group = mail mode = 0600 check_string = "" escape_string = "" prefix = "" suffix = "" Con esas l´ ıneas conseguiremos que el reparto se realice en el directorio de correo de cada usuario: /home/<usuario>/<Maildir>. encontramos reunidos todos los par´metros de confia guraci´n. Una vez all´ comentaremos la siguiente l´ o ı ınea: file = /var/spool/mail/${local_part}.d/exim restart. . . a Y a cambio. interfaz Webmin Podemos monitorizar el servidor de correo Exim si instalamos el siguiente m´dulo para Webmin: o #apt-get install webmin-exim Como se aprecia en la figura 10. 7. /etc/exim4/exim4. es mejor guardar la configuraci´n anterior. para que reparta el correo local en el formato Maildir. a e a Colocamos un usuario del sistema que habilitemos para esta tarea. consiguiendo o que sea compatible con “courier-imap” (lo utilizaremos m´s adelante para el Webmail). Monitor de Exim. Por ultimo preguntar´ si queremos guardar nuestro archivo de aliases o sobrescribir el ya existente. ya tedremos el correo en formato Maildir. ın . . .template. es decir. qui´n recibir´ los logs de error. Nos situamos en la secci´n: 30 exim4-config mail spool. .11. Editaremos este archivo. a o En el archivo.

Para instalarlo simplemente ejecutaremos el siguiente apt: #apt-get install fetchmail fetchmail-ssl El archivo de configuraci´n general del sistema se sit´a en /etc/fetchmail y desde aqu´ se puede o u ı redireccionar el correo a cada usuario.2.4.Cap´ ıtulo 10. Se puede ejecutar en modo daemon para comprobar peri´dicamente el correo entrante. o Puede recuperar correo de m´ltiples carpetas y reenviarlos. IMAP. Junio 2005. reenv´ y “aliasing” ıo funcionen correctamente. ETRN y ODMR. Servicios de usuario 159 Figura 10. Puede reenviar correo utilizando SMTP lo que permite que las reglas de filtrado. en funci´n de la configuraci´n establecida. KPOP. Fetchmail: Correo externo Fetchmail es un cliente de IMAP y POP que permite a los usuarios descargar autom´ticamente el a correo de cuentas remotas en servidores IMAP y POP y almacenarlos en carpetas de correo locales. APOP. Como caracter´ ısticas m´s habituales podemos citar: a Soporte de POP3. ın . u o o a varios usuarios locales.11: Monitor para Exim a trav´s del m´dulo para Webmin e o 10. Una vez en local. Este podr´ ser un listado t´ ıa ıpico: Jose Antonio Escart´ Vigo. se puede acceder a los correos de una forma m´s sencilla y utilizando multitud de programas a cliente.

log" # establecemos el tiempo en segundos entre el que se estar\’a # intentando recuperar el correo de los distintos servidores. o Si lo ejecutamos en modo daemon. o Para instalarlo realizamos el siguiente apt: #apt-get install fetchmailconf Este podr´ ser el archivo tipico de usuario ˜/.es pepe3@terra.com . a˜adiremos al archivo /var/spool/cron/crontabs/<usuario>.es poll pop3. le indicaremos cada cuantos segundos se ejecutara Fetchmail. Para lanzar el demonio de forma autom´tica tenemos que ejecutarlo. del archivo de configuraci´n.fechmailrc: ıa set postmaster "pepe" set bouncemail set no spambounce set properties "" # set daemon 90 # Cuentas de correo de ono: pepe1@ono.com poll pop3. Junio 2005. # # poll servidorcorreo. Si preferimos lanzarlo manualmente. Para ello descomentamos la l´ ınea: set daemon.160 Servidor Linux para conexiones seguras de una LAN a Internet set logfile "/home/josan/. fetchmail).com with proto POP3 user ’wgates’ there with password ’Hasecorp’ is ’pepe’ here Automatizar la descarga de correo externo Para ejecutar Fetchmail autom´ticamente tenemos las siguientes opciones: a Ponerlo en el cron Ejecutarlo como demonio del sistema.-) poll microsoft. Despu´s s´lo tenemos que crear un archivo por usuario para que cuando ese usuario ejecute Fetchmail e o lea las opciones del archivo de configuraci´n y se descargue el correo.es user ’pepe2’ there with password ’ElPasswordDePepe2’ is ’pepe’ here user ’pepe3’ there with password ’ElPasswordDePepe3’ is ’pepe’ here user ’pepe4’ there with password ’ElPasswordDePepe4’ is ’pepe’ here # # Cuentas de correo de Microsoft: wgates@microsoft. que recibira el correo Creamos este archivo y lo modificamos con los par´metros de las cuentas POP3 de los usuarios.com y pepe2@ono.dominio.com #Colocamos el servidor de correo externo proto pop3 #En este caso POP3 user usuario #Usuario del correo externo pass "mi_password" #Password del correo externo to josan #Usuarios local.bashrc (incluiremos la instrucci´n.com with proto POP3 user ’pepe1’ there with password ’ElPasswordDePepe1’ is ’pepe’ here user ’pepe2’ there with password ’ElPasswordDePepe2’ is ’pepe’ here # # Cuentas de correo terra: pepe2@terra. en n nuestro caso pepe: */3 * * * * /usr/bin/fetchmail -s Esto indicar´ que se ejecute fetchmail cada tres minutos.fetchmail. ejecutamos o desde la l´ ınea de comandos: #fetchmail Si lo queremos ejecutar en el cron.com y lo # depositamos en el buzon de correo local de josan. ın . Ese archivo se llamara: ˜/.es y pepe4@terra.profile o .ono. en alguno de los archivos de perfil. como a . a Jose Antonio Escart´ Vigo.terra. el a bloque cuenta-usuario lo podemos repetir tantas veces como sea necesario.fetchmailrc o Podriamos simplificar la configuraci´n de los archivos de usuario mediante el paquete fetchmailconf. set daemon 120 # # Recuperamos el correo de buzon@dominio.

. Espa˜ol. Horde es un programa gestor de correo IMAP para ser usado con un navegador y que est´ disponible a para todas las cuentas de correo de los servidores locales. Alem´n. por medio a o de una pagina web. u n e a u Polaco. Configuraci´n en l´ o ımite del tama˜o para archivos adjuntos en salida. Para instalar el m´dulo realizaremos el siguiente apt: o #apt-get install webmin-fetchmail Figura 10. Horde cuenta con las siguientes caracter´ ısticas: Enviar y Recibir mensajes con m´ltiples archivos adjuntos. Jose Antonio Escart´ Vigo. Horde: Webmail Un Webmail no es m´s que una interfaz para leer el correo electr´nico del servidor de correo. Italiano. interfaz Webmin o a 161 Para simplificar el proceso de configuraci´n podemos utilizar nuestra herramienta de configuraci´n por o o web: Webmin. e M´ltiples carpetas. . Una vez configurada la cuenta IMAP. ın .12: M´dulo Webmin para Fetchmail o 10. incluyendo Ingles. u Cada usuario tiene su propias libreta de direcciones. Noruego. Soporte para m´ltiples mensajes. la papelera y soporta algunas creadas u o por los usuarios.3.Cap´ ıtulo 10. firma y estilo. n Preferencias de usuarios. podemos espeo cificar las carpetas que deseamos mostrar y las que deseamos ocultar. Ruso.4. Mediante IMAP se puede tener acceso al correo electr´nico desde o o cualquier equipo que tenga una conexi´n a Internet. H´ngaro. El protocolo IMAP (Internet Message Access Protocol). Portugu´s. por defecto cuenta con la opci´n enviar. Junio 2005. u Despliegue en l´ ınea de archivos adjuntos de imagenes Interfaz de usuario amigable y atractiva basada en iconos. Franc´s. es un protocolo de red de acceso a mensajes electr´nicos almacenados en el servidor. Servicios de usuario Configuraci´n gr´fica de Fetchmail. . incluyendo n´mero de mensajes en pantalla. esta caracter´ ıstica lo hace diferente del protocolo POP3. lenguaje.

Protocolo IMAP El protocolo IMAP nos servir´ para consultar el correo v´ web con cualquier navegador. En cambio eso no pasa o con POP3. HowTo sobre como instalar el servidor IMAP a trav´s e de Horde. puerto seguro Para poder utilizar Horde tenemos dos opciones: Validar los usuario mediante directorio LDAP Utilizar una base de datos de usuarios MySQL Es mejor decantarse por la opci´n MySQL. pudiendo a ıa realizar las conexiones desde un lugar ajeno a la empresa o mediante un cliente IMAP. Junio 2005. Para utilizarlo. deberemos usar las direcciones: http://dominio.html. necesitaremos tener el servidor de correo Exim para enviar los correos y tambi´n Fetche mail para obtener los correos externos.glo. y no por Internet.mx/imp-mini-como. Configuraci´n de Courier-imap o Para instalarlo es muy simple: #apt-get install courier-imap courier-imap-ssl Ahora.4. Es decir. . En Debian para poder realizar la tarea de servidor IMAP tenemos dos paquetes: Corier-imap y Maildrop. o Jose Antonio Escart´ Vigo. Es decir.tld:2096/horde/. El servidor IMAP. . Para instalar el Webmail Horde. La necesidad surge ya que el protocolo POP3 es poco flexible y accediendo desde otros correos nos puede descargarnos los e-mails al host local. lo que hace es recoger el correo que se encuentra en el $HOME de un usuario y servirlo al cliente IMAP interactivamente. editaremos el archivo de configuraci´n de courier-imap: /etc/courier/imapd. En este punto supondremos que tenemos instalado y funcionando en el sistema: Exim4 y Fetchmail. podemos obtener toda la informaci´n detallada en la siguiente o direcci´n de Internet: o http://patux. si es que as´ esta configurado en ese cliente.4. 10.162 Servidor Linux para conexiones seguras de una LAN a Internet La ventaja de usar la web es que lo podemos hacer desde cualquier ordenador y siempre tendremos la misma configuraci´n.org. . ın . para poder utilizar Horde necesitamos tener instalados los: Apache PHP MySQL Si vamos a instalar el Webmeil Horde. ya que Jabber tambi´n lo utiliza y nos ser´ util m´s o e a ´ a funciones. los mensajes siempre est´n en el servidor y s´lo bajan a o al cliente si son seleccionados para lectura en local. ya que nos bajamos los mensajes y los tenemos que organizar en nuestro disco local.tld:2095/horde/ https://dominio. los mensajes quedan en el servidor organizados en carpetas. con la consiguiente ı perdida de los e-mails del usuario que se encontraban almacenados en el servidor. simplemente deberemos ejecutar el siguiente apt: #apt-get install horde3 Para acceder de forma directa a este gestor de correo.

Las posibilidades son pr´cticamente ilimitadas y dependen de nuestra imaginaci´n y de nuestras haa o bilidades. etc. Despu´s s´lo es necesario configurar un cliente de correo para que lea a e o del servidor de correo Imap. que comprende a la perfecci´n el o correo en formato Maildir. mediante Fetchmail. podemos configurar Mutt.5. deberemos colocar como nombre de servidor localhost y como usuario/contrase˜a. A la hora de acceder al correo. configurar courier-imap sobre SSL. etc. por motivos de seguridad. eliminar virus y Spam con Procmail Ahora que ya tenemos todas nuestras cuentas de correo centralizadas en nuestra m´quina.0. Configuraci´n Maildrop o Para que el servidor solo sea accesible desde nuestra m´quina.maildroplog" Finalmente.Cap´ ıtulo 10. justo antes de que se deje el correo en el Maildir de cada usuario. reenviarlo autom´ticamente. o El contenido del archivo debe de ser el siguiente: DEFAULT="$HOME/Maildir" logfile "$DEFAULT/. creamos la carpeta Maildir.4. simplemente ejecutaremos el siguiente apt: #apt-get install procmail Procmail es una herramienta muy potente que permite repartir el correo. seg´n el asunto.mailfilter. de forma que los todos correos que cumplan unas determinadas condiciones.1. Por ejemplo. a Jose Antonio Escart´ Vigo. Deberemos instalar un filtro de e-mails. pero b´sicamente el proceso consiste en dos pasos: a Identificar el correo Procesar el correo Para identificar el correo. Esta tarea la lleva a cabo Procmail. el que tengamos asignado en el sistema. Junio 2005. Para instalar Procmail. Estas opciones son cono a figurables desde el archivo de configuraci´n: ˜/.0. localhost 163 Es recomendable. Nosotros lo utilizaremos para pasar el antivirus ClamAv y los a filtros de Spam: SpamAssassin y Bogofilter. ı u La configuraci´n b´sica es que nos deje todos los emails en el directorio Maildir. vamos a a procesar el correo. Para instalarlo es muy simple: #apt-get install maildrop courier-maildrop Nos permite filtrar los e-mails para as´ colocarlos en subcarpetas. ın . descargar´ el correo en la carpeta. pasar´n a realizar el proceso que queramos. Cada cierto tiempo el usuario. Filtrado de correo. el remitente. usaremos las expresiones regulares. con el comando maildirmake: #maildirmake Maildir Ahora solo falta comprobar su funcionamiento. filtrarlo. a para que nos coloque el correo en nuestra carpeta Maildir. Servicios de usuario All´ cambiaremos la siguiente l´ ı ınea: ADDRESS = 0 por ADDRESS = 127. n 10. organizarlo en carpetas. Si lo hacemos no debemos olvidar configurar la cuenta cliente como SSL. o como la hayamos llamado.

164 Redireccionamiento de correo Servidor Linux para conexiones seguras de una LAN a Internet Si queremos redireccionar el correo desde Fetchmail. cada vez que nos llegue un correo (. MAILDIR=$HOME/Maildir DEFAULT=$MAILDIR/ :0fw: spamassassin. necesitamos editar o crear el archivo de configuraci´n Fetchmail del usuario: ˜/. para borrar los correos que cumplan una ıa ıa n determinada regla: :0 * ^X-Regla: Yes /dev/null Jose Antonio Escart´ Vigo.newmail.lock 2>/dev/null then trap "rm -f .lock fi exit 0 Configuraci´n de Procmail y reglas de filtrado o Los archivos de configuraci´n de Procmail. son los siguientes: o /etc/procmailrc: Archivo de configuraci´n del servidor Procmail.procmailrc t´ ıa ıpico: PATH=/usr/bin:/bin:/usr/local/bin:. a a Otra opci´n interesante es procesar directamente un archivo de correo (*. Junio 2005. como el siguiente: #!/bin/sh ORGMAIL=/var/mail/$LOGNAME if cd $HOME && test -s $ORGMAIL && lockfile -r0 -l1024 . por lo que por lo menos al principio.lock * < 256000 | spamassassin # Algunas versiones de Spamassassin eliminan la letra "F" # de la cabecera "From" :0 * ^^rom[ ] { LOG="*** Dropped F off From_ header! Fixing up. o En el agregaremos las siguientes l´ ıneas: $ cat $HOME/.newmail && cat /dev/null >$ORGMAIL lockfile -mu formail -s procmail <.mbox En este caso es recomendable utilizar un script para Procmail. se ejecutar´ Procmail de forma autom´tica. por cada usuario.newmail.newmail rm -f .forward | procmail Con esto.procmailrc: e a $formail -s procmail < INBOX. es mejor revisarlos antes de borrarlos. o ˜/. ın . a o ´l se aplicar´n los filtros indicados en el ˜/.fetchmailrc.newmail && rm -f . Este ser´ el formato.mbox) de forma manual. o Este ser´ un archivo ˜/.forward). pero los filtros no son infalibles.lock" 1 2 3 13 15 umask 077 lockfile -l1024 -ml cat $ORGMAIL >>.newmail.procmailrc: Archivo de configuraci´n Procmail. " :0 fhw | sed -e ’1s/^/F/’ } Opcionalmente podr´ ıamos mandar los correos de Virus y Spam a /dev/null.procmailrc. que habr´ que a˜adir al ˜/.

6.14: Crear acciones gr´ficamente en Procmail a 10. e ClamAv tiene licencia GPL. adem´s de editar manualmente el archivo de configuraci´n /etc/procmail. ın . Para instalar el programa. interfaz Webmin o a 165 Para simplificar el proceso de configuraci´n podemos utilizar nuestra herramienta de configuraci´n por o o web: Webmin.Cap´ ıtulo 10. simplemente ejecutaremos el siguiente apt: #apt-get install clamav clamav-daemon Jose Antonio Escart´ Vigo. ClamAV: Antivirus para correo Mediante ClamAv podemos escanear.13: M´dulo Webmin para Procmail o Desde este m´dulo.4. a Figura 10. como o a o podemos observar en la figura 10. es el filtro antivirus que pasaremos a trav´s de Procmail. Junio 2005. los mensajes recibidos. podemos especificar las acciones que ejecutar´ el filtro. Servicios de usuario Configuraci´n gr´fica de Procmail. Para instalar el m´dulo realizaremos el siguiente apt: o #apt-get install webmin-procmail Figura 10.14. funciona bastante bien y se actualiza a menudo.

o encontraremos la siguiente l´ ınea: X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* Es un test. preo guntar´ por qu´ interfaz estamos conectados a Internet y un servidor (se apuntan varios por defecto) desde a e donde bajarse las actualizaciones. e en estos casos no se ejecutar´ el c´digo entre comillas simples.txt. ClamAv deber´ detectarlo como virus. Para que Procmail ejecute ClamAv a˜adiremos al archivo: /etc/procmailrc.166 Servidor Linux para conexiones seguras de una LAN a Internet Durante el proceso de instalaci´n clamav-freshclam (el actualizador de bases de datos de virus). t´ a ıpicamente en: /var/mail/<usuario>. . a e En la segunda regla de filtrado. o Situados en este punto. ScanArchive.fi‘ :0fw | formail -i "X-Virus: $VIRUS" :0fw * ^X-Virus: Yes | formail -i "Virus: $AV_REPORT" -i "Subject: MENSAJE CON VIRUS: $AV_REPORT" Vamos a observar cada una de las l´ ıneas detenidamente: La l´ ınea de SHELL=/bin/sh es necesaria porqu´ se pueden tener usuarios en /etc/passwd sin shell.com. . a Una vez configurado este sistema. si nos la mandamos por e-mail. para que escanee correo. Este ejecutar´ las reglas de filtrado de /etc/procmailrc (y despu´s las de: ˜/. o Para probar que el sistema funciona. si no tiene virus o el nombre de ese virus en caso contrario. else echo No. Adem´s. Junio 2005. Jose Antonio Escart´ Vigo. Tambi´n podemos establecer el modo de ejecuci´n de clamav-freshclam. tambi´n nos sirve para saber que el correo ha sido escaneado). en lugar de modificar el Subject lo podr´ o ıamos eliminar directamente. para cada usuario) y lo dejar´. En la primera regla de filtrado. a˜adimos la cabecera X-Virus con “Yes” o “No” (as´ el usuario final n ı lo puede filtrar f´cilmente. en la direcci´n: http://www. El archivo de configuraci´n del demonio ClamAv es: /etc/clamav/clamd. e o se recomienda ejecutar como demonio del sistema.eicar. Para que esta configuraci´n funcione necesitamos tener lanzado el demonio: clamav-daemon. A la variable VIRUS se le asigna “Yes” si contiene virus y “No” en caso contrario. suponemos que nuestro servidor de correo entrega los correos locales correctamente a Procmail.org/download/eicar. Como funci´n adicional. para que escanee c´digo HTML. s´lo tendremos que fijarnos que todos los correos nuevos que lleguen o a los usuarios contengan la nueva cabecera de X-Virus. ıa o En AV REPORT se almacena “OK”. para que escanee archivos.proca e mailrc. las siguientes l´ n ıneas: SHELL=/bin/sh AV_REPORT=‘clamdscan --stdout --disable-summary .conf o En ese archivo podemos encontrar las siguientes opciones: ScanMail.. ScanHTML.| cut -d: -f 2‘ VIRUS=‘if [ "$AV_REPORT" != " OK" ]. then echo Yes. si el correo contiene virus. le agregamos una cabecera llamada “Virus” que contiene el reporte de ClamAv. ın . modificamos el Subject y en su lugar ponemos a el nombre del virus.

si supera determinado valor (5. s´lo hay que hacer que el spamc filtre todos los meno sajes para detectar spam.org/tag/ for more details. A los correos.5 points) BODY: Asks you to click below CALL_FREE (0. email address. La mejor manera de hacerlo funcionar es arrancar el demonio spamd y comunicarse con ´l a trav´s del e e spamc. a˜adiremos la siguiente regla: o n :0fw | spamc -f -s 100000 -u $LOGNAME Una vez instalados ambos y arrancado el spamd.MSG_ID_ADDED_BY_MTA. instala el cliente para comunicarse con el demonio de SpamAssassin. Para identificar el correo spam. Para poder usar SpamAssasin como demonio es necesario retocar el archivo: /etc/default/spamassassin y cambiar ENABLED a 1. Servicios de usuario 167 10.0 por defecto) es considerado un spam. Junio 2005. en base a unas reglas bastantes complejas.Start SpamAssassin results ---------------------This mail is probably spam. your] [name] DATE_IN_FUTURE_06_12 (2. 5 required) NO_REAL_NAME (-1.8 points) BODY: Tells you to click on a URL MAILTO_LINK (0. hits=11. usaremos expresiones regulares. que ser´ ejecutado por Procmail. a de forma que los todos correos que cumplan unas determinadas condiciones.1 points) BODY: A word in all caps repeated on the line CLICK_BELOW (1. list please.0 tests=NO_REAL_NAME.MAILTO_LINK. you wish.End of SpamAssassin results --------------------- Jose Antonio Escart´ Vigo.5 hits. please click.pm. The original message has been altered so you can recognise or block similar unwanted mail in future.30 (devel $Id: SpamAssassin.MAILTO_TO_REMOVE.8 points) BODY: Includes a URL link to send an email FREQ_SPAM_PHRASE (2. this] [message.2 points) URI: URL of page called "remove" MAILTO_WITH_SUBJ (1.BIG_FONT.4 points) Invalid Date: header (timezone does not exist) FAKED_UNDISC_RECIPS (3. hits: click here. El paquete spamc. ın .3 points) URI: Uses a dotted-decimal IP address in URL REMOVE_PAGE (2.4 points) Date: is 6 to 12 hours after Received: date FORGED_YAHOO_RCVD (1. instala el demonio SMTP/LMTP demonio proxy de SpamAssassin.94 2002/06/14 23:17:15 hughescr Exp $) Adem´s.5 points) ’From’ yahoo. En el archivo de configuraci´n de procmail. pasaran a realizar el proceso asignado en Procmail. your email. les son asignados una serie de puntos.Cap´ ıtulo 10. El spamd agrega las siguientes cabeceras para indicar los resultados: X-Spam-Prev-Content-Type: text/html. FROM_AND_TO_SAME version=2.1 points) From: does not include a real name INVALID_DATE_TZ_ABSURD (4.30 X-Spam-Flag: YES X-Spam-Level: *********** X-Spam-Checker-Version: SpamAssassin 2. Para instalarlo nada m´s f´cil que realizar el siguiente apt: a a #apt-get install spamassassin spamc spampd El paquete spampd.4 points) Contains phrases frequently found in spam [score: 14.] [enter your.com does not match ’Received’ headers -------------------. charset="us-ascii" X-Spam-Prev-Content-Transfer-Encoding: 7bit X-Spam-Status: Yes.7. Content analysis details: (25. See http://spamassassin. UPPERCASE_25_50.v 1. si el mensajes es spam. STAINED Teeth! Y las siguientes l´ ıneas en el texto para describir las reglas aplicadas: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: SPAM: -------------------. MAILTO_WITH_SUBJ_REMOVE.SUBJ_REMOVE.7 points) BODY: Contains a tollfree number NORMAL_HTTP_TO_IP (3.7 required=5.5 points) Faked To "Undisclosed-Recipients" PLING (0. SpamAssassin: Filtro basado en reglas El SpamAssassin es un filtro basado en scripts en Perl que procesan los mensajes y detectan.INVALID_MSGID.MAILTO_WITH_SUBJ.4. agrega la siguiente cabecera al Subject del mensaje: a Subject: *****SPAM***** Say Goodbye to YELLOW.1 points) Subject has an exclamation mark DOUBLE_CAPSWORD (1.9 points) URI: Includes a link to send a mail with a subject CLICK_HERE_LINK (0.

Jose Antonio Escart´ Vigo. envi´ndolos a /dev/null u a a Configuraci´n gr´fica de SpamAssassin.168 Servidor Linux para conexiones seguras de una LAN a Internet Configuraci´n del Procmail. Para instalar el m´dulo realizaremos el siguiente apt: o #apt-get install webmin-spamassassin Figura 10. podemos eliminarlos. con SpamAssassin o Se pueden aplicar filtros en el Procmail del usuario. borrar o modificar un mensaje de terceros sin su aprobaci´n puede ser un delito) o o o en el propio cliente (MUA) de correo electr´nico. Editaremos el archivo y a˜adiremos las siguientes l´ n ıneas: DROPPRIVS=yes :0fw | /usr/bin/spamc -f Despu´s en el ˜/. que es la opci´n m´s recomendable. interfaz Webmin o a Para simplificar el proceso de configuraci´n podemos utilizar nuestra herramienta de configuraci´n por o o web: Webmin.15: M´dulo Webmin para SpamAssassin o Como opci´n adicional se pueden especificar las opciones de configuraci´n de Procmail para que proo o cese el correo con SpamAssassin. o o a En este apartado lanzaremos el cliente (spamc) desde: /etc/procmailrc y ejecutarlo de forma global. pero si nuestras reglas est´n lo suficientemente a probadas y no nos importa perder alg´n e-mail v´lido. ın . en busca de falsos positivos: :0: * ^X-Spam-Status: Yes mail/spams Los Spams son enviados al directorio: ˜/mail/spams. en el gen´rico para todo el sistema (Hay que usar e con cuidado esta opci´n. Junio 2005.procmailrc filtramos los spams a una carpeta especial para separarla del correo v´lido e a y poder revisar.

ya que son de dominio p´blico y com´n para todas las u u instalaciones. a u Y no acaba aqu´ en problema. que son mensajes que ı. Adem´s hay que elaborar reglas para cada lenguaje. Este m´todo se denomina “bayesiano” y o e Jose Antonio Escart´ Vigo. lo que obliga a estar continuamente actualizando y agregando nuevas reglas para adaptarse a los cambios del spam. a no son spams pero son considerados como tal por el filtro. Esta base de datos sirve para calcular las probabilidades combinadas de que un mensaje sea o no spam. a Figura 10.8. ın . El SpamAssasin al poco tiempo muestra sus problemas. es muy f´cil para los spammers encontrar a los trucos para saltarse las reglas de filtrados. Junio 2005. Esto es lo peor que le puede pasar. llegan spam que haya pasado el e filtro (falso negativo). lo que es el m´s grave.4. podemos perder o dejar de leer mensajes importantes. Servicios de usuario 169 En las siguientes figuras (10. pero en este caso no pasa nada realmente grave.16: Opciones de configuraci´n SpamAssassin o 10. puede dar falsos positivos. La soluci´n pasa por usar m´todos que “aprendan” de los mensajes que recibe el usuario y generan o e una base de datos propia. a Esto produce que el proceso de an´lisis de cada mensaje sea a´n m´s lento de lo que ya es actualmente.Cap´ ıtulo 10. a u a entre otras cosas porque est´ implementado en Perl y el n´mero de reglas es muy grande. Tambi´n de vez en cuando. Bogofilter: Filtro bayesiano El problema fundamental con el SpamAssassin es que est´ basado en el reconocimiento de patrones a de texto usando reglas.16) podremos observar la multitud de opciones que podemos configurables gr´ficamente. en funci´n de las palabras que contiene.

o e ı Configuraci´n de Bogofilter o Para instalarlo realizaremos el siguiente apt: #apt-get install bogofilter Bogofilter mantiene un par de bases de datos en el directorio: ˜/. Si s´lo le ense˜amos cuales son mensajes v´lidos.000 mensajes.bogofilter : goodlist. a Una implementaci´n mejorada de este m´todo es Bogofilter. tenemos que proporcionarle al menos tres mensajes buenos. se usan aquellas m´s alejadas de la media para a combinarlas usando el Teorema de Bayes de probabilidades combinadas. Para que el filtro aprenda. ın . caso contrario retorna 0.9. bogofilter retorna 1. Se aconsejan al menos 1. m´s filtros bayesianos como o a por ejemplo. no podr´ detectar a o n a a los spams. caso contrario puede generar falsos positivos. el aprendizaje inicial es important´ ısimo. spamprobe. el sistema Debian pone a nuestra disposici´n.170 Servidor Linux para conexiones seguras de una LAN a Internet esta basado en el “Teorema de Bayes” sobre probabilidad. basta con hacer lo siguiente: #bogofilter -n < archivo_mbox Jose Antonio Escart´ Vigo. ya clasifiı. Una vez que se han calculado las probabilidades. considerar´ a muchos mensajes v´lidos como spams o n a a (falsos positivos . y nos ahorrar´ mucho trabajo de a mantenimiento de la base de datos. Configurar ˜/. Junio 2005. y se adapta autom´ticamente al idioma y a los a tipos de mensajes que recibe cada usuario. Entrenarlo con mensajes v´lidos a Este paso es muy importante. Si queremos probar otros. mientras m´s contenga y mayor sea la cantidad de apariciones de cada palabra en un mensaje v´lido a a o spam.db spamlist. Si tenemos los mensajes almacenados en formato mbox. El problema fundamental de ´sta aproximaci´n es que hay que entrenar inicialmente al programa con e o un conjunto relativamente grande de mensajes spams y otros v´lidos para que arme su base de datos. ıas. La fiabilidad del bogofilter depende exclusivamente de la cantidad de palabras que tenga en su base de datos. si s´lo le “ense˜amos” spams. . por cada mensaje spam en la base de datos. ). el filtro bayesiano que aqu´ propongo. mejores ser´n sus resultados. a Entrenarlo con un conjunto grande de spams. Lo mejor en estos casos es entrenarlo con los mensajes que tengamos almacenados en nuestro cliente de correo. Esos n´meros son usados para calcular la a u probabilidad de que el mensaje sea un spam. Al contrario. . Para configurarlo realizaremos los siguientes pasos: Entrenarlo con un conjunto grande de mensajes v´lidos que tengamos almacenados. A a partir de all´ el programa puede aplicar los m´todos bayesianos y usar esos mismos mensajes.procmailrc Seguimiento y mantenimiento los primeros d´ para evitar falsos positivos. e cados como spam o no. Si no hacemos esto dar´ muchos falsos positivos. O sea.db Cada una de ellas mantiene una lista de “tokens” (palabras) junto con la cantidad de veces que esa palabra ha aparecido en mensajes v´lidos y mensajes spams. Si la probabilidad combinada es mayor que 0. para realimentar la base de datos.

4.net/ gallir/BULMA/spams. Despu´s de este paso se habr´ creado la base de datos: ~/. a El c´digo que incluiremos en el ˜/. realimentamos la base de datos validos | bogofilter -n Jose Antonio Escart´ Vigo. en la direcci´n: a o http://bulma. ya que este filtro depender´ de sus e-mails y no tendr´ sentido aplicarlo a toda a ıa la organizaci´n (en el /etc/procmailrc).5 a o hemos realizado un filtro que recompon´ esa l´ ıa ınea de “From”. Esto se puede realizar f´cilmente con el siguiente a script: for f in directorio_maildir/* do bogofilter -n < $f done Si hemos seguido los pasos descritos en este capitulo. no ser´ necesario ya que en la secci´n 10. por lo que hay que llamarlo por cada mensaje almacenado. realimentamos la base de datos de spam :0HBc | bogofilter -S # lo movemos al archivo $HOME/mail/spams :0 mail/spams } :0EHBc # Es un mensaje valido. modificaremos la configuraci´n de Procmail para o que mueva los mensajes a otro archivo: ˜/mail/spams.db e a Entrenarlo con spams El siguiente paso ser´ entrenarlo con spams. Servicios de usuario 171 Si por el contrario lo tenemos en formato Maildir. por lo que el sistema a ir´ aprendiendo con el tiempo. Para entrenar el filtro con estos a mensajes usaremos la instrucci´n: o #zcat spams. en pocas semanas ya no necesita casi mantenimiento.bogofilter/goodlist. Adem´s de ello.procmailrc es el siguiente: o :0HB * ? bogofilter { # Es un spam.proco mailrc de cada usuario.txt. Para ello modificaremos el archivo de configuraci´n: ˜/.gz Se puede encontrar una lista de m´s de 700 mensajes de spams. Junio 2005. o Una vez el mensaje ha sido clasificado como spam.db e a Configuraci´n de Procmail o El siguiente paso es configurar Procmail.txt. el Bogofilter no es capaz de separar y contar los mensajes. y debido a que el est´ndar de ´ste formato quita a e las l´ ıneas de “From” de inicio de mensaje. realimentaremos la base de datos con cada mensaje que llega.bogofilter/spamlist. ın .Cap´ ıtulo 10.gz | bogofilter -s Despu´s de este paso se habr´ creado la base de datos: ~/.

resituando ıas los falsos positivos como mensajes v´lidos. Para marcar como spam un mensaje no detectado: #bogofilter -S < mensaje.172 Servidor Linux para conexiones seguras de una LAN a Internet Podemos realizar la actualizaci´n autom´tica mediante la opci´n -u que indica al Bogofilter que aco a o tualice directamente la base de datos de acuerdo a la clasificaci´n que se haga del mensaje. . . Junio 2005. ser´ una de las piezas claves del desarrollo y evoluci´n de la futura Internet. . . . . . a ıa a Jabber a diferencia de otros sistemas de mensajer´ instant´neos. Telnet. ın . o Existen multitud de clientes que lo utilizan Utiliza pasarelas para interactuar con otros servicios (MSN. como a o lo son y han sido los protocolos IP. a Jose Antonio Escart´ Vigo.txt. los primeros d´ deberemos de verificar los mensajes. 10. -S si es un spam y -N si es un falso positivo. Es multiplataforma. ya ser´ suficiente: ıa :0HB * ? bogofilter -u mail/spams Seguimiento y mantenimiento Aunque con el entrenamiento oficial y usando un conjunto de mensajes grande. . ıas Est´ basado en una arquitectura cliente/servidor. ARP. es algo m´s que un sencillo programa ıas a a para enviar y recibir mensajes de texto entre usuarios a trav´s de Internet. ). o Basado en estandares abiertos y libres.txt Para marcar como v´lido un falso positivo: a #bogofilter -N < mensaje. n a Existen disponibles. Yahoo. Su c´digo esta liberado a la comunidad. pero enfocado a la cada vez m´s utilizada mensajer´ instant´nea. DNS. para lo cual cuenta con una serie de interesantes caracter´ ısticas: Buena documentaci´n. insertada en ˜/. FTP.5. . Jabber: Mensajer´ instant´nea para corporaciones ıa a El protocolo Jabber. ICMP. lo que permite a˜adir mejoras f´cilmente. En ambos casos lo que tenemos que hacer es grabar el mensaje en un archivo de texto y ejecutar con la opci´n que o corresponda. a Para recolocar las modificaciones realizadas. es suficiente para que el Bogofilter casi no de falsos positivos. esta situado en el archivo mbox: ˜/mail/spams. NNTP. . ICQ. es un protocolo de Internet que e aspira a convertirse en parte fundamental de la misma. IRC. Utiliza XML.procmailrc. tenemos las versiones incrementales -N y -S. o Es decir la siguiente regla. Es modulable y escalable. librer´ Jabber en varios lenguajes.

Servicios de usuario 173 Esta formado por un servidor y clientes. programas. Podemos a˜adirle tambi´n otras funcionalidades extras: n e Si queremos que nuestro servidor Jabber soporte conferencia. Jabber es ideal para instalarlo en empresas. ejecutaremos: #jabberd Configuraci´n Jabber o La configuraci´n se encuentra centralizada en un unico archivo: /etc/jabber/jabber. para lo cual utilizaremos algunos de los m´ltiples clientes existentes para Jabber. de una forma muy sencilla sin tener que utilizar sistemas m´s complejos como ftp o correo interno. para manejar el servidor Jabber o en el sistema. el nombre de la a misma ha de estar en formato FQDN. es decir m´s de dos usuarios simultaa neos. a en Java. o o a e incluso para realizar pruebas en la propia m´quina podemos poner localhost. Si observamos los archivos de a configuraci´n de usuarios (/etc/passwd ) se ha creado un usuario jabber. como complemento a la propia Intranet. Junio 2005. en el inetd. textos.1. por ejemplo. para ello realizaremos el siguiente apt: #apt-get install jabber-muc Jose Antonio Escart´ Vigo. a mano. para que desde cualquier m´quina de nuestra red pueda acceder a a los servicios proporcionados por Jabber.xml o ´ Lo primero que tendremos que hacer es especificar en que m´quina esta el servidor. . Servidor Jabber Para poder instalar el servidor Jabber necesitamos realizar un apt: #apt-get install jabber Con esto. Otra opci´n es poner directamente la direcci´n IP de la m´quina. . De forma o a o que permite. (v´ase secci´n 10.5. r´pida y muy econ´mica.18). . tendremos que verificar si realmente todo funciona bien. o a 10. datos. a Cambiaremos la l´ ınea: <host><jabberd:cmdline flag="h">localhost</jabberd:cmdline></host> Por una de las siguientes opciones: <host>localhost</host> <host>FQDN_servidor_jabber<host> <host>IP_servidor_jabber<host> Una vez arrancado el servidor. consiguiendo a comunicaci´n instant´nea y directa. Desde el cliente u e o necesitamos crear un usuario y registrarlo en el servidor local. que son los programas que utilizan los usuarios para enviar y recibir mensajes entre s´ Existen clientes para pr´cticamente todas las plataformas (incluso varios escritos ı. se guardaran en nuestro sistema todos los archivos b´sicos. a Para arrancar el servidor de jabber. intercambiar documentos. Adem´s el servicio ha quedado agregado al arranque del sistema. puesto que permite la comunicaci´n de los trabajadores de una forma eficiente. con la consiguiente portabilidad). es decir. ın .Cap´ ıtulo 10. necesitamos jabber-muc (Jabber Multi user chat).

jabber. 10.5. .2.org/.jabber. como pueden ser quien puede tener acceso al servidor jabber o tambi´n nos da acceso al archivo de cofiguraci´n e o /etc/jabber/jabber. podemos acceder a las opciones generales. Yahoo.17. MSN. AIM. Existe muchos clientes para jabber. es decir poder buscar en el archivo de usuarios del sistema.org a 10. necesitamos jabber-jud (Jabber User Directory). . si utilizamos nuestra herramienta a o web: Webmin. ). en la direcci´n: u a ıa a o http://download. interfaz Webmin o a Podemos hacer m´s sencilla la configuraci´n de nuestro servidor.3. . personalmente utilizo kopete basado en el entorno de escritorio KDE.5.xml. Para instalarlo realizaremos un apt: #apt-get install kopete Desde el cliente nos conectaremos con una cuenta al servidor Jabber local y si no tenemos cuenta. ıa a Existen otros Clientes multiprotocolo. Para instalarlo: #apt-get install gaim Al final todo es cuesti´n de probar y quedarnos con el cliente que m´s nos guste. como Gaim (v´ase figura 10. o a Jose Antonio Escart´ Vigo. Junio 2005. situando nuestra cuenta podemos interactuar con multitud de servicios de mensajer´ adem´s de Jabber. Configuraci´n gr´fica de Jabber.19). Para instalar el m´dulo de Jabber realizaremos el siguiente apt: o #apt-get install webmin-jabber Pomo se puede observar en la figura 10. necesitamos tener instalado un cliente. es un cliente muy versatil.18.174 Servidor Linux para conexiones seguras de una LAN a Internet Si queremos que nuestro servidor Jabber soporte la busqueda de usuarios. ın . podemos recurrir al manual: #man jabberd a o O bien consultar la p´gina oficial: http://www. tambi´n podemos registrarla. que tambi´n funcionan muy e e bien. a Para conseguir m´s informaci´n sobre las opciones. encontraremos m´s utilidades. ICQ. tenemos disponibles pasarelas a esos protocolos: • #apt-get install jabber-irc • #apt-get install jabber-msn • #apt-get install jabber-jit • #apt-get install jabber-aim : IRC : MSN Messenger : ICQ : AIM messenger • #apt-get install jabber-yahoo: Yahoo messenger Pero si a´n necesitamos m´s potencia para nuestro servidor de mensajer´ instant´nea. para ello realizaremos el siguiente apt: #apt-get install jabber-jud Si queremos que nuestro servidor se comunique con otros protocolos propietarios como (IRC. Clientes Jabber Para poder interactuar con el servidor Jabber. e Como podemos observar en la figura 10.

17: M´dulo Webmin para Jabber o Jose Antonio Escart´ Vigo. Servicios de usuario 175 Figura 10. Junio 2005. ın .Cap´ ıtulo 10.

ın .176 Servidor Linux para conexiones seguras de una LAN a Internet Figura 10.19: Cliente de mensajer´ instantanea Gaim ıa Jose Antonio Escart´ Vigo.18: Cliente de mensajer´ instantanea Kopete ıa Figura 10. Junio 2005.

los ladrones pueden robar nuestras credenciales de registro con un sniffer de red (escucha clandestina de paquetes de red). 11. No hay que confundir SSH con SSL. todo el que est´ escuchando su conexi´n o o e o obtiene un sonido aleatorio. que impide la suplantaci´n de identidad. Telnet. es necesario proteger nuestras conexiones y las de nuestros usuarios para que no sean escuchadas por usuarios no autorizados o si esto no lo podemos asegurar.1. al menos que les sean incomprensibles.1. m´s a a seguros estaremos. pero cuanto m´s lo hagamos. y SFTP un e reemplazo seguro para FTP.Cap´ ıtulo 11 Comunicaciones seguras En el interior y exterior de las redes de nuestro sistema pueden existir m´ltiples peligros acechandonos u detras de cada switch o router. como HTTP y SMTP. SSH no s´lo proporciona confidencialidad para nuestros datos utilizando el o cifrado sino que adem´s proporciona una s´lida autenticaci´n. SSH tambi´n incluye SCP. poco a a a poco se est´ haciendo m´s popular. Cisco est´ instalando SSH en sus enrutadores. De hecho. 11. a Eliminar el uso de Telnet y FTP en nuestra red puede ser dif´ ıcil. Debemos asegurarnos de estar utilizando una versi´n 3. Shell seguro: OpenSSH SSH es una herramienta de acceso remoto que nos permite iniciar la sesi´n en un sistema remoto de o una forma segura. El tal´n de Aquiles de la mayor´ de las redes es el hecho de que normalmente las o ıa comunicaciones entre sistemas se pasan sobre una red en texto plano. mientras que SSL est´ dise˜ado principalmente para las o a n comunicaciones Web. Por lo tanto. Aunque SSH no est´ tan difundido como Telnet. aunque todav´ deja a a a ıa activado el servidor Telnet de forma predeterminada. SSH tambi´n puede utilizarse para crear un t´nel con otros protocolos entre e u m´quinas. algunas versiones anteriores o a ten´ fallos en su implantaci´n de protocolos criptogr´ficos y son susceptibles de ataques. un reemplazo seguro para RPC. sufre esta deficiencia. Despu´s pueden iniciar una sesi´n sin ning´n problema. necesitamos un cliente SSH en nuestro lado y tiene que existir un servidor SSH ejecut´ndose en el lado remoto. SSH funciona con cualquier protocolo. pero si iniciamos una sesi´n en ellas remotamente con un a o programa de terminal inseguro. nos aseguramos de que no se est´n leyendo nuestras comunicaciones remotas con los servidores. Al utilizar esta familia de programas en lugar de sus hom´logos m´s a o a antiguos. la herramienta de copia remota. e o u Una de las herramientas de acceso remoto m´s populares. De este modo. podemos fortalecer las m´quinas individuales todo lo que deseemos. es est´ndar de cifrado Web. mientras que SSH es opcional.1. a o o o esto lo hace utilizando certificados digitales para autenticar a los usuarios. Cliente OpenSSH Para acceder al sistema remoto con SSH. ıan o a . a SSH soluciona el problema utilizando tanto la criptograf´ sim´trica como la clave p´blica para cifrar ıa e u la sesi´n desde la primera pulsaci´n de tecla. Aunque ambos realizan la misma a funci´n.6 o m´s actual.

a e Jose Antonio Escart´ Vigo. o o 11. El cliente se encuentra integrado en la mayor´ de los sistemas operativos a ıa Linux actuales.example. ın . lo a que normalmente significa un n´mero por encima de 1024.example. Si no se est´ ejecutando. Los clientes FTP y Telnet normales no se a conectar´n a un servidor SSH. o a ´ como las telef´nicas. Tambi´n se puede utilizar: e $ssh login@hostname Por lo tanto y a modo de ejemplo. Esto puede ser util si tenemos u ´ un cortafuegos que imposibilita las comunicaciones en n´meros de puertos inferiores. Se puede utilizar para crear un t´nel para cualquier servicio a trav´s de un canal cifrado u e entre servidores.com Tambi´n podemos utilizar.2. o a Opci´n o -c protocol -p port# -P port# -v -q: -C: Si queremos personalizar nuestras conexiones.178 Servidor Linux para conexiones seguras de una LAN a Internet es recomendable asegurarse de tener la utima versi´n disponible. o En la tabla 11. tendr´ o ıamos que escribir: $ssh josan@web. PUde ser util para conexiones demasiado lentas. escribimos $ps y comprobamos si se a est´ ejecutando el proceso sshd. tendremos que instalar el servidor para permitir a a las conexiones de su m´quina a trav´s de SSH. en el directorio /etc/ssh encontraremos los archivos de configuraci´n del servicio SSH. pero es mejor tener un procesaro m´s potente para realizar la como a presi´n o ralentizar´ mucho el rendimiento. $ssh -l josan web. Para determinar si ya est´ instalado.1 podemos encontrar el resto de opciones de SSH: Cuadro 11.com para iniciar la sesi´n. a SSH tiene un n´mero de usos realmente interesantes distintos a asegurar un inicio de sesi´n en un u o sistema remoto.com.1: Opciones del cliente SSH Descripci´n o Utiliza un protocolo criptogr´fico espec´ a ıfico (tiene que ser soportado por la versi´n que o utilizamos de SSH) Se conoceta a un n´mero de puerto espec´ u ıfico en lugar de la puerto SSH predeterminado (puerto 22) Usa un puierto espec´ ıfico que no forma parte de la lista est´ndar de puertos propietarios. Util para la depuraci´n o Informa en modo silencioso.1. El servidor o SSH es normalmente opcional.example. Junio 2005. el servidor supondr´ que el nombre del usuario es igual que el del a inicio de sesi´n del sistema. ya que el c´digo se est´ mejorando ´ o o a constantemente y los algoritmos se est´n ajustando. El archivo de configuraci´n del cliente es /etc/ssh/ssh config. para registrarse en el servidor Web denominado web. aunque puede que tengamos que seleccionar esta opci´n al instalar el sistema. Si simplemente e o escribirmos $ssh web.example. cdontrario del modo largo Utiliza compresi´n del tr´fico cifrado. Para instalarlo en nuestro sistema hay que realizar un apt-get: #apt-get install openssh-client-udeb La sintaxis SSH b´sica para iniciar una sesi´n remotamente es: a o $ssh -l login hotname Donde login es su nombre de usuario en el sistema remoto y hotname es el anfitri´n al que est´ inteno a tando conectar con SSH.com utilizando el nombre de inicio de sesi´n de josan. u ´ Muestra la salida larga. Servidor OpenSSH Para utilizar SSH debemos tener un cliente SSH ejecut´ndose en la m´quina que deseamos conectar y a a un servidor SSH en la m´quina a la que deseamos conectarnos.

Hostkey: Claves para aceptar conexiones de clientes. u Protocols: Le indican al servidor los protocolos SSH que debe aceptar. elegido para realizar la nueva conexi´n cifrada u o local host: Por la m´quina local a remote port: Por el puerto del servicio con el que deseamos abrir un t´nel en el extremo remoto u Jose Antonio Escart´ Vigo. Comunicaciones seguras Pasemos a describir el proceso de instalaci´n del servidor de SSH. A continuaci´n detallo los campos que hay que revisar dentro de este archivo: o Port: Es el puerto que escucha SSH para las conexiones entrantes. Para ello hay que escribir el siguiente comando: ´ #ssh make-host-key 4. Estas no son las mismas claves que las o claves del servidor generadas en la instalaci´n. o 1. las personas que intenten conectarse con su sistema tendr´n que cambiar a manualmente el n´mero de puerto en sus clientes SSH. Despu´s hay que revisar los archivos de configuraci´n que se encuentran en el directorio /etc/ssh e o para asegurarse de que coincide con los par´metros de nuestro sistema. Tambi´n es posible facilitar la configuraci´n mediante un m´dulo para la herramienta de administraci´n e o o o web Webmin.local de otras distribuciones (v´ase ap´ndice e e D para componer este tipo de archivos). o 3. El valor predeterminado es aceptar conexiones de tipo SSH1 y SSH2. Esto proporciona un identificador unico para las claves de servidor. Su valor predeterminado es 22. Si lo cambiamos. tambi´n e se puede utilizar para configurar un t´nel entre dos m´quinas para cualquier aplicaci´n. mayor de 1024. Lo primero es instalar el paquete si no lo tenemos en el sistema: #apt-get install openssh-server-udeb 179 2. Junio 2005. Podemos crear u a o una conexi´n segura entre dos servidores con la opci´n de puerto de env´ integrada en SSH. El archivo de configuraci´n a o para el servidor es /etc/ssh/sshd config. Si se desea ejecutar sshd autom´ticamente al inicio (opci´n muy recomendable). Antes de poder utilizar un servidor SSH tiene que generar sus distintas claves. hay que a o colocar dicha l´ ınea al final de un archivo al estilo de rc.Cap´ ıtulo 11. Para la instalaci´n se utiliza el siguiente apt: o #apt-get install webmin-sshd Puerto de env´ con OpenSSH ıo Aunque SSH se dise˜´ en principio para una interacci´n de l´ no o ınea de comandos tipo Telnet. a o Con la siguiente declaraci´n emitida en el extremo del cliente podemos realizar cualquier servicio sobre o cualquier puerto: #ssh -L local_port:local_host:remote_port remote_hostname -N & Donde debemos reemplazar: local port: Por un n´mero aleatorio. Ahora se puede iniciar el servidor SSH en la l´ ınea de comandos escribiendo: #sshd & As´ se ejecutara el demonio del servidor SSH en segundo plano y escuchar´ continuamente las coı a nexiones. Para realizar o o ıo esta tarea. proporciona la ubicaci´n de las claves o ´ utilizadas para generar la autenticaci´n de clientes. ın . debemos tener SSH ejecut´ndose en ambos extremos de la conexi´n.

1: Interfaz gr´fica Webmin para el servidor SSHD a remote hostname: Por la direcci´n IP o nombre del servidor en el otro extremo de la conexi´n o o La opci´n -L le indica a SSH que debe escuchar el local port en local host y enviar cualquier conexi´n o o a remote port en remote host. como es nuestro caso: e #ssh -L 5000:localhost:25 -L 5001:localhost:80 192.168.local como se especifica en la secci´n D.180 Servidor Linux para conexiones seguras de una LAN a Internet Figura 11.0.1 -N & Jose Antonio Escart´ Vigo. .0.1 -N &. a Si se desea que esta configuraci´n del sistema se mantenga en siguientes reinicios de la m´quina hay o a que a˜adirla a un archivo de rc.0. .1 -N &. . s´lo mantener la conexi´n abierta para o o o o el tr´fico enviado.168. donde la IP corresponde al servidor de correo de la red Si se necesita crear una conexi´n web segura con SSH en vez de SSL: o #ssh -L 5000:localhost:80 192. utilizando en el navegador localhost:5000 se realizaran env´ a trav´s de t´nel seguro con el puerto web(80) en la m´quina remota. Junio 2005. La opci´n -N le indica a SSH que no intente iniciar la sesi´n. .168. . . ın . ıos e u a Tambi´n podemos tener varios puertos al mismo servidor. n o Esto podr´ ser ejemplos de este tipo de usos: ıan Si se necesita cifrar una conexi´n de correo electr´nico: o o #ssh -L 5000:localhost:25 192.

utilizar algoritmos de cifrado m´s d´biles o longitudes de clave m´s cortas para a e a algunas cosas est´ bien. Criptograf´ y cifrado ıa Hoy en d´ la solidez del cifrado normalmente se mide por el tama˜o de su clave. ¿c´mo podr´ controlarlo una persona media? Quer´ llegar a crear o ıa ıa un sistema por el que las dos partes pudiesen mantener conversaciones protegidas y realizar transacciones seguras sin tener que intercambiarse una clave cada vez. Se han inventado todo tipo de sistemas para intentar solucionar esta fragilidad b´sica. Si nuestro enemigo intercepta la clave. Hellman y Merkle o fueron los primeros en publicarla en 1976). Independientemente ıa n de la solidez del algoritmo. Para la mayor´ ıa de los c´digos modernos con longitudes decentes. pero el hecho sigue a existiendo: tendremos que comunicar la clave secreta de alguna forma al destinatario pretendido antes de iniciar una comunicaci´n segura. Public Key Encription). La persona que se ıas encuentra en el otro extremo necesita la clave compartida para desbloquear los datos (el algoritmo de cifrado). pero finalmente consio n guieron crear un sistema denominado Cifrado de clave p´blica (PKE. a 11. Junio 2005.2. el tiempo para romper la clave a la fuerza se mide en o milenios. (En realidad. SSH funciona extraordinariamente bien para crear una conexi´n segura entre o dos m´quinas para casi cualquier protocolo. Tipos de cifrado Criptograf´ sim´trica ıa e El primer tipo de cifrado. Diffie se asoci´ con Martin Hellman y Ralph Merkle. denominado criptograf´ sim´trica. Esta forma de cifrado utiliza una clave secreta. Comunicaciones seguras 181 Como se puede observar. ıan problema del intercambio de clave. como las comunicaciones del campo de batalla o la informaci´n diaria sobre las acciones. se ha ıa e estado utilizando desde la ´poca de los antiguos egipcios. siempre que la utilidad de la informaci´n para un intruso expire en un breve a o periodo de tiempo. Una de ıa e a n las claves se hace p´blica y otra sigue siendo privada. un c´digo que proteja estos datos durante semanas o o o meses est´ bien. el cifrado se puede romper. Por lo tanto. los datos cifrados pueden estar sujetos a ataques por la fuerza en los que se prueban todas las combinaciones posibles de claves. 11. puede leer el mensaje. El problema que surge con este m´todo es que tenemos que comunicar la clave secreta de una fore ma segura al destinatario pretendido. Llevaba mucho tiempo pensando en ello porque Internet estaba naciendo en aqu´l momento e y el comercio electr´nico todav´ no exist´ Si los gobiernos ten´ muchos problemas tratando con el o ıa ıa.Cap´ ıtulo 11. Al final. para cifrar los datos en un galimat´ inteligible. Sin embargo. Martin Hellman y Ralph Merkle o inventaron la criptograf´ de calve p´blica. Sab´ que si resolv´ el problema del intercambio ıa ıa de claves. Estaban tratando de resolver el antiguo problema del intercambio de clave. ın . un fallo inadvertido en un algoritmo o el avance en la tecnolog´ inform´tica o en ıa a los m´todos matem´ticos pueden reducir este tiempo considerablemente. algo como n´mero de tarjeta de cr´dito o los secretos de seguridad nacional a u e tienen que mantenerse seguros durante un periodo de tiempo m´s prolongado y de forma eficaz para a siempre. Diffie se preguntaba c´mo o dos individuos que deseaban realizar una transacci´n financiera por una red electr´nica pod´ hacerlo con o o ıan seguridad. pero Diffie. Si el elemento es muy local. o cifrado de secreto compartido. o Criptograf´ asim´trica ıa e Una revoluci´n en el cifrado fue la iniciada cuando Whitfield Diffie. e denominada secreto compartido. e a Normalmente se cree que la longitud de la clave debe ajustarse para mantener seguros los datos durante una cantidad razonable de tiempo. tambi´n u e conocido como Criptograf´ asimetrica. ser´ un gran avance en la criptograf´ ıa ıa. Podemos cambiar la clave y los resultados del cifrado. Se denomina criptograf´ sim´trica porque ıa e se utiliza la misma clave para ambos extremos tanto para cifrar como para descifrar los datos.1. Sin embargo. El mensaje lo ciframos con la clave p´blica del u u Jose Antonio Escart´ Vigo. todav´ existe alg´n debate sobre si el brit´nico ıa u ıa u a James Ellis en realidad invent´ esta clave antes y la mantuvo en secreto. Tardaron algunos a˜os.2. ıa La criptograf´ asim´trica utiliza un cifrado que divide la clave en dos claves m´s peque˜as.

derivada a partir de nuestra clave u privada. se publican en repositorios u como si fueran una gu´ telef´nica). Utilizamos su clave p´blica. u o Ronald Rivest.182 Servidor Linux para conexiones seguras de una LAN a Internet ´ destinatario.2. protocolos y aplicaciones diferentes basadas en estos dos tipos principales de cifrado. una tarea muy dif´ de llevar a cabo al rev´s para determinar la clave privada. sabemos que s´lo esa ıa o u o persona puede descifrarlo utilizando su propia clave privada. Junio 2005. No se puede imaginar el efecto que tendr´ sobre el comercio de Internet si cada vez que dese´ramos comprar algo online tuvi´semos que ıa a e pensar en una clave secreta. que necesitan un tiempo o a o a exponencial para su resoluci´n). mientras que RSA puede realizar la autenticaci´n y el no reconocimiento. Adi Shamir y Leonard Adleman. o Afortunadamente. o Panorama actual Hoy en d´ el cifrado de clave p´blica se encuentra detr´s de cada servidor web que nos ofrece una ıa. Evidentemente. dar´ al traste con el mecanismo de cifrado de claves p´blicas o o ıa u actual. Una funci´n ıcil e o com´n de un s´lo sentido utilizada actualmente. En ıa e t´rminos matem´ticos. el aumento en potencia y el descenso en costo a n 1 Denominaci´n que se le da en inform´tica te´rica a los problemas m´s dificeles de calcular. ıa u Por lo general las aplicaciones. es la descomposici´n en factores de n´meros primos u o o u grandes. El resto es historia y ahora RSA es el algoritmo de cifrado de clave p´blica m´s utilizado. como los o c´lculos sobre curvas el´ a ıpticas o el c´lculo de logaritmos inversos sobre un campo finito. determinar cu´l de a u a las muchas posibilidades son los dos factores de un producto es uno de los problemas matem´ticos m´s a a complejos (su tiempo de computaci´n es NP-Completo1 ). Pensado originalmente o para se pr´cticamente inquebrantable en los a˜os setenta. Las siguientes secciones explican algunos de estos tipos. o 2 Esto no es algo descabellado. 11. Hellman y Merkle.2. o La velocidad de adopci´n era lenta y su empresa estuvo a punto de quebrar. o Si alguien inventase un m´todo para deducir f´cilmente factores de n´meros primos grandes2 en tieme a u po de computaci´n lineal o polin´mico. u a compra segura. Est´ndares generales a El est´ndar de cifrado de datos (DES. combinan los dos tipos de criptograf´ Utilizan primeramente criptoıa. o Jose Antonio Escart´ Vigo. ın . ´stas son funciones f´ciles de calcular en una direcci´n pero muy dif´ e a e a o ıciles de calcular a la inversa. u Normalmente la criptograf´ asim´trica se implanta mediante el uso de funciones de un sentido. Al utilizar la clave p´blica del destinatario.o tiene factores. Formaron una empresa que empez´ a regular su sistema. por sus nombres: o a ıa. hasta que lleg´ el momento o o de aprovechar el emergente campo comercial de Internet con una empresa. Y lo mismo pueden hacer o por nosotros. Data Encryption Standar) es el est´ndar original que el gobierno a a de los Estados Unidos empez´ a promover para su uso gubernamental y comercial. otro grupo de tres hombres desarroll´ una e o aplicaci´n pr´ctica de la teor´ Su sistema para el cifrado p´blico se denomin´ RSA. haciendo que cualquier tipo de comunicaci´n basada en este tipo de algoritmos resultase insegura. Este puede descifrarla a continuaci´n con su propia clave privada. graf´ de clave p´blica para acordar una clave sim´trica aleatoria. lo unico que conocemos es ese peque˜o s´ ´ n ımbolo de candado SSL que se muestra en nuestro explorador para sentirnos seguros. el comercio electr´nico no existir´ tal y como existe actualmente si no o ıa existiese la criptograf´ de clave p´blica. De esta forma podemos publicar nuestra clave p´blica. cifrar el mensaje y comunicar posteriormente de alguna forma dicha clave a la otra parte. Esta clave sim´trica es una clave de ıa u e e sesi´n y sirve para realizar m´s r´pidamente el cifrado y descifrado de la informaci´n que se mandan. a Poco despu´s del lanzamiento de Diffie. que no tiene que mantenerse segura (de hecho. Nuestra transacci´n se cifra sin tener que dar ni obtener una clave secreta y todo se o produce en segundo plano. Sin embargo. en tiempo de computaci´n polinomico. pero s´lo util para intercambios o a o ´ de clave. entonces peque˜a denominada n Netscape. Como usuarios. hace muy pocos a˜ os se ha conseguido desarrollar un algoritmo que resuelve el problema n de si un n. Es f´cil multiplicar dos n´meros primos y obtener un producto. Existen muchos algoritmos de cifrado. otras funciones de un solo sentido funcionan bien para este tipo de aplicaci´n. Diffie u a y Hellman finalmente lanzaron una aplicaci´n pr´ctica de su propiedad. ya o a a o que tiene un coste computacional mucho mas bajo. cifrando un mensaje con nuestra clave p´blica para poderlo descifrar con nuestra clave u privada. La diferencia es que nadie necesita la clave privada de nadie para enviar un mensaje seguro. Este sistema permite que dos entidades se comuniquen con seguridad sin ning´n intercambio anterior de claves.

como las tarjetas inteligentes y los dispositivos que no procesan un tama˜o de clave a n m´s largo. descifrado y cifrado de nuevo. En realidad no multiplica por tres la solidez de su c´digo (la primera clave de c´digo se utiliza dos veces para cifrar los o o resultados del proceso). a TripleDES Tambi´n llamado 3DES es la versi´n DES m´s moderna y actualizada. Hash Aplicaciones de la criptograf´ ıa Los hash son funciones especiales de sentido unico que proporcionan autenticaci´n y verificaci´n uti´ o o lizando el cifrado. Comunicaciones seguras 183 de la inform´tica hicieron que su funcionalidad de clave de 56 bits quedase obsoleta para informaci´n muy a o confidencial. Tambi´n se utiliza en productos que tienen procee sadores m´s lentos. Normalmente. su nombre implica lo que hace. algo m´s que suficiente para el futuro previsible. RC6. e o a Ejecuta DES tres veces en los datos en tres fases: cifrado. n Es muy recomendable establecer MD5 como predeterminado. Este hecho es n o importante porque se utiliz´ una competici´n abierta para decidir el est´ndar. Es muy poco probable que un u archivo con una estructura diferente produzca una huella id´ntica. 11. ın . Cuando se instala el sistema. la primera aplicaci´n gr´fica de criptograf´ p´blica. incluyendo RC6. RC5 y RC6 Este algoritmo de cifrado fue desarrollado por Ronald Rivest. n a n ´ lo que nos proporciona una forma segura de saber que el archivo no se ha alterado de ninguna manera. Junio 2005. n n AES Cuando el gobierno de los Estados Unidos se dio cuenta de que DES terminar´ llegando al final de ıa su vida util. bastante solidez para la mayor´ de usos. algo importante. La versi´n actual. mucho m´s peque˜o.3. Si ambos no coinciden. uno de los desarrolladores de RSA.2. Hubo muchos competidores. ıa RC4. Incluso si cambia uno de los caracteres. basado en un algoritmo denominado Rijindael dise˜ado por dos cript´grafos belgas. Blowfish del ´ o reconocido cript´grafo Bruce Schneier y otros algoritmos meritorios. Una funci´n hash recoge un archivo y lo coloca en una funci´n para que se produzca o o un archivo de tama˜o. e se cambia la huella digital significativamente. Ofrece una clave de hasta 256 bits.040 a o o bits de tama˜o y un tama˜o de bloque variable de hasta 128 bits. El algoritmo hash m´s conocido se a denomina MD5. especialmente con el software de libre distribuci´n que se a o puede descargar desde r´plicas de los servidores oficiales. Las posibilidades de que dos archivos diferentes produzcan el mismo hash son infinitesimales. permite una clave de 2. Al utilizar una funci´n hash para un archivo sospechoso y comparar su huella digital con la huella digital o correcta. se produce una huella digital unica. a AES se implanta en modo de 128 o 192 bits. AES se est´ convirtiendo r´pidamente en el nuevo est´ndar del o a a a cifrado. empez´ a buscar un sustituto. sabremos que se han producido cambios. Asimismo. Normalmente los hash se proporcionan en versiones descargadas de software para asegurarse de que est´ obteniendo el software real. Al hacerlo. pero sigue teniendo una longitud de clave efectiva de 168 bits. en conjunto. al seleccionar o o a un algoritmo de dos desarrolladores no norteamericanos sin intereses comerciales significativos ayudaba a legitimar esta selecci´n por todo el mundo. se pregunta al usuario que algoritmo hash quiere usar para las contrase˜as. Se han realizado mejoras a lo largo del tiempo para o a ıa u hacerla m´s s´lida y solucionar problemas menores. todav´ se sigue utilizando en muchos productos comerciales y se considera ıa aceptable para las aplicaciones de seguridad inferior. El concurso se resolvi´ a favor de o o AES. ya que actualmente se le considera uno de los mejores algoritmos de hash. El sitio web oficial normalmente incluye el hash e correcto de la ultima versi´n. Sin embargo. podremos saber si se ha producido alg´n cambio en el archivo. Jose Antonio Escart´ Vigo. posiblemente ´ o sin el permiso o el conocimiento de los desarrolladores del software.Cap´ ıtulo 11.

no emitir´n un certificado hasta que verifiquen la informaci´n incluida en ´l.4. Junio 2005. la empresa que adem´s se encarga del sistema de nombres de dominio en Internet. a pueden utilizar la criptograf´ de clave p´blica para descifrar el certificado y verificar nuestra identidad. Programas como SSH y Nessus pueden utilizar certificados para la autenticaci´n. Cuando han “certificado” que nuestra informaci´n es correcta. como un contrato corporativo en el ıa o o que se pide autenticaci´n en persona. n La versi´n 4 de IP (IPv4). Estas organizaciones a han sancionado a otras muchas empresas por ofrecer certificados de su parte. entre ellas VeriSign. En resumen.catcert. y adjunta un certificado. Para proporcionar a autenticaci´n y confidencialidad a trav´s del cifrado. se ha desarrollado un nuevo est´ndar IP denominado o e a IPv6. o Normalmente. por o a lo que el despliegue de IPv6 esta siendo bastante lento. Generalmente. En Catalu˜a esta entidad es la Agencia Catalana de certificaciones. n En su p´gina web podemos encontrar m´s informaci´n: http://www. ampl´ el espacio de direcci´n IP utilizando una direcci´n de 128 bits en lugar de 32 bits a ıa o o y mejora adem´s otros elementos. o creados y firmados localmente. Obtener un certificado de VeriSign o de una de las empresas autorizadas es como si respondieran por nosotros. Protocolos de cifrado Un hecho bien conocido es que el protocolo IP tal y como se dise˜o originalmente no era muy seguro. los certificados se unen a un dominio determinado. incluyendo los URL que vamos a utilizar para el certificado y la “firman” digitalmente o cifr´ndola con su clave privada. podremos suponer e a razonablemente que el sitio web pertenece a dicha organizaci´n. No es un algoritmo de cifrado espec´ ıfico.184 Certificados digitales Servidor Linux para conexiones seguras de una LAN a Internet Los certificados digitales son las “firmas” del mundo comercial en Internet. CATCERT. sino una estructura para cifrar y verificar paquetes dentro del protocolo IP. un servidor Web o cualquier programa podr´n utilizar este a e a certificado. como una p´gina web del servidor. Si podemos descifrar el certificado con su clave publica. no proporciona o o ning´n tipo de autenticaci´n ni confidencialidad. que no requer´ cambios importantes en el esquema del direccionamiento. Puede utilizar diversos algoritmos y puede implantarse total o parcialmente. n 11. Muchos a ataques de Internet se basan en esta inseguridad b´sica de la infraestructura de Internet. Los suministradores de ıa hardware se aferraron a ello. Un certificado contiene la clave p´blica de la organizaci´n cifrada con la clave privada o la clave u o p´blica de una autoridad de firmas. Adem´s. Las cargas utiles del paquete se env´ al descubierto y u o ´ ıan los encabezados del paquete se pueden modificar f´cilmente ya que no se verifican en el destino. un certificado es una “certificaci´n” expedida por una autoridad de la que nos o fiemos y que permite fiarnos de la veracidad de lo que nos esta contando el titular del certificado. o o Las VPN o las redes inal´mbricas tambi´n pueden utilizar certificados para la autenticaci´n en lugar de a e o contrase˜as. ın . Despu´s. El uso de una autoridad de certificados o firmas se considera el u m´todo m´s seguro de los dos. denominada o IPsec. Existen varias organizaciones de este tipo. sin regulaci´n de ningun o tipo. convirti´ndose IPsec poco a poco en un est´ndar de hecho para crear VPNs e a en Internet. cogen o o esta informaci´n. ıa u Se utilizan principalmente en los sitios de comercio electr´nico. utilizado por casi todo el mundo de la comunicaci´n con IP. bien a o e por v´ telef´nica o bien por otro medio de documentaci´n en papel. Mientras no se acabe de implantar existen una serie de protocolos que nos permiten tener una cierta seguridad.2.net a a o Cuando los usuarios externos reciben datos. Utilizan una combinaci´n de o tipos de cifrado para proporcionar autenticaci´n y comprueban que quien se est´ conectando es realmente o a quien dice ser. a La implantaci´n completa del est´ndar IPv6 requiere actualizaciones de hardware a amplia escala. Las entidades de certificaci´n descentralizan su misi´n en entidades de certificaci´n locales en las que o o o confian. Pueden ser emitidos por una entidad central. Para codificar el contenido del paquete se utiliza una combinaci´n de clave p´blica y privada y adem´s los hash a˜aden o u a n Jose Antonio Escart´ Vigo. pero tambi´n se utilizan en cualquier otra o e forma de comunicaci´n. IPsec Para solventar los problemas de IPv4 se desarrollo una implantaci´n de seguridad para IP.

Otra ventaja es que VPN puede controlarse y a administrarse desde pocos puntos centrales. Sin embargo.Cap´ ıtulo 11.2. lo que nos proporciona un alto nivel de a garant´ de que el paquete proviene de donde dice. ´ o a L2TP: Protocolo de t´ nel de dos capas u El protocolo L2TP (Layer Two Tunneling Protocol) es otro protocolo desarrollado para la industria y firmado por Microsoft y Cisco. autenticaci´n en ambos extremos e integridad de mensajes utilizando o certificados. en el que esta basado OpenPGP. Junio 2005. Comunicaciones seguras 185 tambi´n autenticaci´n. Podemos elegir descifrar la carga util pero no ejecutar ıa ´ un AH ya que puede ralentizar el procesamiento. ıa 11. En modo t´nel. Si no es comparable al enviado. o PPTP: Protocolo de t´ nel punto a punto u El protocolo PPTP (Point-to-Point Tunneling Protocol) es un est´ndar desarrollado por Microsoft. Aunque se utiliza frecuentemente en dispositivos de cifrado basados en hardware.5. un hash se crea a partir del encabezado IP y ´ste pasa adelante. El inconveniente es que requiere un hardware dedicado en ambos extremos para abrir el t´nel. parec´ o ıa una admisi´n t´cita que IPsec hab´ ganado como nuevo est´ndar de cifrado. su uso en software es relativamente limitado. se creo para proteger la informaci´n de los usuarios ante miradas indiscretas. Los extremos finales descifran los paquetes y despu´s los e env´ al IP correcto. Esta funci´n se denomina encabezado de autenticaci´n (AH. a 3Com y otras grandes empresas que proporcionan cifrado. PPTP sigue o a ıa a siendo un protocolo util y econ´mico para configurar VPN entre los PC m´s antiguos de Windows. u En modo de transporte s´lo se cifran las cargas utiles del paquete. sabr´ que a el encabezado se ha alterado de alguna manera durante el tr´nsito. todo el paquete (encabezados incluidos) se encapsula y se cifra. ın . Con AH. La mayor´ de las personas ni siquiera se dan o ıa cuenta de que SSL se est´ ejecutando en segundo plano. SSL se utiliza cuando se realiza una conexi´n a un servidor web para que sepa que la o informaci´n que enviamos se protege a lo largo del trayecto. Normalmente. Cuando Microsoft implemento IPsec en Windows 2000. Normalmente s´lo autentica un extremo. se crea un nuevo hash a partir de cada encabezado. se coloca en otro u paquete y se remite al procesador VPN central. Una de las ventajas de utilizar este m´todo es que los usuarios externos pueden ıan e saber incluso cu´l es el destino final del paquete cifrado. aunque puede utilizarse en cualquier tipo de comunicaci´n TCP. SSL: Capa segura de Sockets El protocolo SSL (Secure Socket Layer) se dise˜´ espec´ no ıficamente para su uso en la Web (ApacheSSL que explico en el proyecto lo contempla). ya que la mayor´ de usuarios finales no tienen certificados. los encabezados se env´ intactos. Podemos seguir ejecutando AH a cuando utilicemos el modo de transporte y verificar la direcci´n de origen de los paquetes. OpenPGP: Aplicaci´n de cifrado o El estandar PGP (Pretty Good Privacy o privacidad bastante buena). AH tambi´n puede estropearse en algunos entornos con e NAT o cortafuegos. Autentication Heae o o o der). Phil quer´ o o o ıa escribir alg´n software que ayudase a dichas personas a mantener su informaci´n privada y segura frente u o Jose Antonio Escart´ Vigo. o Originalmente lo dise˜o Netscape para que su explorador ayudase a la simulaci´n de comercio electr´nico. o Historia del PGP Phil Zimmerman es un programador muy implicado en los derechos humanos. n o o SSL proporciona cifrado de datos. En PPTP se han descubierto algunos fallos importantes que limitan su aceptaci´n. Existen otros dos modos de operaci´n diferentes en los que podemos ejecutar IPsec: en modo t´nel o o u en modo transporte. Cuando el paquete llega a e su destino. o ´ ıan lo que produce un despliegue m´s facil y requiere menos infraestructura. la parte a o del servidor. Le preocupaba que el uso creciente de los ordenadores y de las redes de comunicaci´n facilitase a las agencias de seguridad estatales o de reg´ ımenes represivos la interceptaci´n y recopilaci´n de informaci´n sobre los disidentes.

skr u Si se han de crear: 1. el formato de archivo suele ser pubring.pkr y secring. n Para comprobar la versi´n: o $gpg --version Si no lo tenemos instalado. por lo que no tiene los bonitos complementos que ofrece la versi´n comercial de PGP. a no ser que o e a˜adamos su propia interfaz (Gnome dispone de una).186 Servidor Linux para conexiones seguras de una LAN a Internet a los brutales regimenes que los controlaban. Generalmente no se desea que las claves expiren. Se pueden encontrar una lista de o todas estas implementaciones de PGP en http://www.024. que generalmente se n considera suficiente para una criptograf´ s´lida de clave p´blica. en caso de perderlas. El inconveniente es que se trata de una herramienta de l´ ınea de comandos. asi como ampliarla o o insertarla como queramos. cuando el gobierno inici´ su persecuci´n.048 para una seguridad mucho mas fuerte. Podemos aumentar el tama˜o ıa o u n hasta 2. ıa que vendiera su innovaci´n. Este software lo denomin´ Pretty Good Privacy (PGP). . 2. Atenci´n: Es muy importante conservar copias de seguridad del par de claves en un lugar o seguro. no lo ve´ ıses a n o ıa de esa forma. Escribimos: #gpg --gen-key y seguimos las instrucciones de pantalla GnuPG pide el tama˜o de bits de sus claves. GnuPG: GNU Privacy Guard En el servidor he utilizado GnuPG. . GnuPG probablemente no sea la mejor opci´n para usuarios no t´cnicos. 4. Posteriormente form´ una empresa para o vender las versiones comerciales del software pero existen implantaciones de libre distribuci´n de PGP o por todo Internet. Sin embargo. Tampoco cre´ que su propio gobierno no observara sus datos personales cuando se desplazaban ıa por redes interconectadas.cypherspace. interfaz Gnome para GnuPG Crear pares de claves Si ya las tiene creadas y quiere importarlas. algo as´ como una Privacidad bastante buena. Phil pretend´ buscar una empresa ıs. hay que ejecutar algunas sentencias apt: #apt-get instal gnupg. Algunas de ´stas son mas populares que otras y algunas son aplicaciones que tienen e funciones espec´ ıficas como el cifrado de mensajes de correo electr´nico. Si tiene separadas la clave p´blica y privada. pero si tiene un caso especial en el que s´lo o utilizar´ esta clave durante un tiempo limitado. la agencia de la informaci´n de los Estados Unidos. El predeterminado es 1. Deseaba proporcionar a las o personas una forma de proteger y garantizar su derecho constitucional a la privacidad. Este software pod´ salvar literalmente la vida de algunas ıa personas. a o Por ultimo se pide que se introduzca una contrase˜a que sirva de frase de paso. Sin embargo. ´ n 3. se puede establecer una fecha de finalizaci´n.org/openpgp/. Programa GnuPG #apt-get instal gpgp. . o ı ya que cre´ que hac´ una buena labor a la hora de proteger los datos ante los servicios de inteligencia de ıa ıa los pa´ m´s peque˜os. #gpg --import path/filename. No obstante hay o que tener cuidado. una de las implementaciones bajo licencia GPL basada en el estandar OpenPGP. . comercial o personal. los datos cifrados se no se podr´ recuperar. NSA. Junio 2005. ın . distribuy´ libremente o o o o el software por Internet para que se distribuyese por todas partes. Sab´ lo f´cil que pod´ ser para el gobierno crear sistemas para buscar cada ıa a ıa l´ ınea de los mensajes de correo electr´nico para determinadas palabras clave. . . ıan Jose Antonio Escart´ Vigo. Zimmerman fue investigado por infringir las leyes federales de exportaci´n de munici´n por o o permitir que su software se descargase fuera del pa´ Originalmente. La gran ventaja de la versi´n Gnu a la versi´n PGP comercial es que se encuentra bajo licencia GPL o o y por lo tanto podemos utilizarla para cualquier aplicaci´n.

. . tambi´n podr´ hacerse con el certificado de revocaci´n.net. Podemos seguir descifrando mensajes recibidos u utilizando la clave p´blica antigua (suponiendo que no la hayamos perdido) pero nadie podr´ descifrar u a ning´n mensaje con las claves p´blicas incorrectas. tambi´n podemos crear un certificado de revocaci´n que se utiliza si perdemos e o nuestras claves o si alguien obtiene acceso a nuestra clave privada.gnupg donde se almacenar´n los archivos. Para crear un certificado: u u $gpg --output revoke. asignada cuando generamos el par de claves. como por u ejemplo: pgp. ın . certserver. Comunicaciones seguras $gpg --list-keys. Para ello es necesario ejecutar el siguiente comando: $gpg --keyserver server --send-keys user Donde se debe reemplazar server con el nombre de un servidor de claves p´blicas y user con la direcci´n u o de correo electr´nico de la clave que desea publicar. En el home del usuario se crea un directorio oculto . nos dara la lista de claves instaladas en el sistema.Cap´ ıtulo 11.pgp. ya que si alguien se hace con ´l. Este certificado hay que eliminarlo del disco y guardarlo en lugar seguro. .com y usa. Jose Antonio Escart´ Vigo.asc --gen-revoke user Donde se debe reemplazar user con la frase secreta de dicho usuario. Despu´s podemos utilizar este certifie cado para revocar nuestra clave de los servidores p´blicos. Existen muchos servidores de claves p´blicas. Puede utilizar cualquier servidor de claves p´blicas o u PGP ya que todos se sincronizan con frecuencia.edu. e e ıa o Publicar la clave p´ blica u Se puede colocar la clave p´blica en un servidor de claves para que cualquiera pueda encontrarla f´cilu a mente y enviar mensajes. Junio 2005.keyserver.mit. a Crear un certificado de revocaci´n: o 187 Una vez creadas las claves.

doc --detached-sig file. otro uso de GnuPG y PGP es firmar documentos para verificar su integridad.gpg con el nombre de archivo resultante deseado.gpg con el archivo de salida deseado y file.doc el archivo a firmar.doc por el arcivo que se desea o o a ıo cifrar.gpg el archivo cifrado.gpg --symmetric file. ın .188 Cifrar archivos con GnuPG Servidor Linux para conexiones seguras de una LAN a Internet Para cifrar un archivo se utiliza el comando: $gpg --output file.doc el nombre de archivo de salida resultante deseado y unsigned. algo que podemos hacer con el siguiente comando: $gpg --output signed.com file.doc con el nombre del archivo que desea cifrar. para dejar almacenada la firma o mandarla por separado. Estos son los comandos para conseguirlo: $gpg --clearsign file. puede crear un archivo e de firma separado.doc --decrypt file. GnuPG tambi´n verificar´ el documento. Junio 2005. Este comando firma y cifra el documento y despu´s procesa el archivo de salida signed. u utilice el comando: $gpg --output file. friend@example.doc.gpg --encrypt --recipient friend@example.doc el archivo cifrado que desea verificar. Firmar archivos Tal y como he mencionado anteriormente. e a Para verificar el archivo se utiliza el comando: $gpg --verify signed. una vez introducida correctamente. utilizamos el siguiente comando: $gpg --output file. que puede utilizar e ıa e para sus archivos locales que desea proteger o para alguien del que no tiene su clave p´blica. GnuPG producir´ el a n a archivo descifrado.doc --sign unsigned. Tenga en cuenta que tiene que tener la clave p´blica del destinatario en su repositorio para poder u hacerlo.doc Crea un ap´ndice de texto al archivo con la firma. Tenemos que tener la clave p´blica del usuario para el que se ha realizado el cifrado en nuestro repositorio. Tambi´n se puede utilizar GnuPG para cifrar archivos con una criptograf´ sim´trica. con el comando: $gpg --output sig. u Un mensaje solicitar´ la frase de contrase˜a y.doc Jose Antonio Escart´ Vigo. Tambi´n podemos crear firmas separadas e ´ del archivo para poder acceder a usuarios sin GnuPG e incluir la firma. Cuando se e descifra. Para ello.doc Siendo signed.doc con el nombre del archivo resultante deseado y siendo file.doc Reemplazado file.gpg Reemplazando file.doc Reemplanzando file.doc Siendo signed. Descifrar archivos Para utilizar GnuPG para descifrar archivos recibidos.com con la direcci´n de correo electr´nico del usuario al que est´ realizando el env´ y file. Si no desea alterar el archivo.

m=Back to the main menu (Volver al menu principal). PGP y GnuPG utilizan una web de modelo de confianza. esto es realizado por el o SSH. escriba sign.org Donde friend@example. se crea una cadena de confianza. d=Please show me more information (Mostrar mas detalles). Sin embargo. Cuando se quiere asegurar de que se trata de la clave de una persona en concreto. Aseg´rese de que se trata de la clave de la persona en concreto compar´ndola con dicha persona u a por tel´fono o por cualquier otro medio de comunicaci´n. e ıa En este modo tambi´n puede editar los niveles de las diferentes claves en su repositorio. Al firmar las claves de las personas que conoce. 3=I trust marginally (Confio en ella un poco). en lugar de utilizar un sistema de confianza jer´rquia co como los certificados digitales y su autoridad de certificados central. pero la idea que se esconde detr´s del sistema es que se propaga org´nicamente y no a a requiere ninguna estructura. dicha clave se marcar´ como realizada por nosotros. firmamos y administramos claves de confianza entrando en el modo de edici´n de la clave o con el siguiente comando: gpg --edit-key friend@example. ¿y si desea cifrar todas las comunicaciones entre dos puntos? PGP no es en realidad viable para esta funci´n. 2=I do NOT trust (No confio en ella). 4=I trust fully (confio en ella plenamente). ın . Igual que las personas. Dentro de este modo escriba fpr para imprimir la huella dactilar de o a la clave. Esta es otra a forma de poderse comunicar con otros a cerca de los usuarios que tienen su nivel m´s alto de confianza y a cu´les son usuarios en los que conf´ poco. Este comando imprime una lista de otros firmantes de esta clave y puede ayudarla a decidir la validez de la misma. El modelo se basa en la idea de que “cualquier amigo suyo es un amigo m´ ıo”. ´ Al escoger uno de los elementos.org coincide con la direcci´n de correo electr´nico de la clave que desea firo o mar o administrar. Junio 2005. En realidad este modelo no funciona perfectamente. a ıa PGP y GnuPG son extraordinarios para cifrar archivos. puede verificar que sus claves son de confianza. tiene que ser una de la claves que tenemos en el repositorio. Este comando firma la clave de dicha persona para que cualquiera que la est´ buscando sepa que conf´ en ella. Este comando imprime informaci´n b´sica sobre la clave. Se introduce este e modo dentro del modo de edici´n de la clave escribiendo trust. Comunicaciones seguras Web de modelo de confianza de PGP/GnuPG 189 Tal y como hemos mencionado anteriormente. La a forma de establecer esta web de confianza es firmar las claves de las personas y dejar que ellos firmen la suya propia. en alg´n lugar en la parte inferior de la cadena podr´ haber una u ıa manzana podrida.Cap´ ıtulo 11. Debido a ello puede desmantelarse o formarse f´cilmente a gran escala. Tambi´n puede comprobar si alguien m´s ha e o e a firmado esta clave escribiendo check. explicado en la secci´n anterior. o As´ se muestra el siguiente men´: ı u 1=Don’t know (No la conozco). la huella dactilar de la clave es un identificador espec´ ıfico para dicha clave. Firmar claves y administrar claves de confianza En GnuPG. o Existen much´ ısimas m´s opciones que se pueden consultar con: $man gpg a Jose Antonio Escart´ Vigo. Y si firman las claves de otras personas que no conoce directamente.

.

la m´quina env´ una solicitud de eco a otra m´quina. o conocidos tambi´n como Solicitud de eco y Contestaci´n de eco respectivamente.1. Estos mensajes se utilizan para enviar informaci´n sobre redes. Ping Ping (Packet Internet Groper. que nos proporciona el e u nombre del anfitri´n de destino (si lo tiene). que a veces puede decirnos si esta m´quina es un servidor. Red inalcanzable Anfitri´n inalcanzable o Con un ping podemos saber algo m´s sobre un anfitri´n que si simplemente est´ activo o no. Tambie´n se puede utilizar para determinar la latencia.Cap´ ıtulo 12 Herramientas de seguridad 12. a o B´sicamente. o 12. las comunicaciones en un ping tienen la siguiente apariencia: a El sistema A env´ un ping al sistema B: solicitud de eco. Ping utiliza los tipos de mensaje ICMP 8 y 0. este proceso se repite varias veces para comprobar si la m´quina de destino a o la red est´n bajando paquetes. No son programas de seguridad completamente independientes. responder´ con una contestaci´n de eco. Los ping utilizan un protocolo de red denomia nado ICMP (Internet Control Message Protocol.1. identifica el sistema operativo que est´ ejecutando.1. sino utilidades del sistema operativo que se pueden utilizar para generar informaci´n de seguridad. Herramientas b´sicas a Existen varios comandos de sistema operativo que utilizaremos con frecuencia en nuestra labor de asegurar la seguridad. “¿Est´s ah´ ıa a ı?” El sistema B recibe la solicitud de eco y env´ una contestaci´n de eco: “Si. o a un enrutador o quiz´ una conexi´n telef´nica o conexi´n de ancho de banda. o rebota en un destino y vuelve. Podemos mandar un ping a a o o o una direcci´n IP o a un nombre de dominio. Muchos creen que el ping es como un radar submarino: un ping sale. normalmente. a a Tambi´n podemos utilizar ping para generar una solicitud de b´squeda DNS. Cuando utilizamos el coe o mando ping. el tiempo que a e tardan los paquetes entre dos puntos. o Protocolo de mensajes de control de Internet). Cada uno e tiene us propio significado. Aunque se trate de una buena analog´ general. Si se puede acceder a la m´quina que se a ıa a a encuentra en el otro extremo y se ejecuta una pila TCP conforme. estoy aqu´ ıa o ı” En una sesi´n ping t´ o ıpica. no describe exactamente ıa lo que sucede cuando incluimos un ping en una m´quina. Tambi´n podemos obtener estos otros tipos de mensajes ICMP cuando mandamos un ping. que se pude traducir como buscador de paquetes en Internet) es una herramienta de diagn´stico TCP/IP. La forma en a o a que una m´quina responde a un ping. o .

83.5/83.4 ms 12.upc.41.41.2. y as´ sucesivamente hasta llegar a nuestro objetivo. La salida puede indicarnos si se trata de un usuario dom´stico o e Jose Antonio Escart´ Vigo. Tambi´n es util para probar ´ e ´ c´mo responde una m´quina a un est´ o a ımulo ICMP inusual La tabla 12.83.83.www.1 incluye los modificadores y las opciones adicionales para el comando ping. 0% packet loss round-trip min/avg/max = 61. Env´ tantos paquetes como puede.41.41.8 ms ttl=241 time=61.41. por defecto es infinito u ´ Flujo de los ping. Se resuelve el nombre de cada anfitri´n encontrado a lo largo o del camino para que podamos ver c´mo cruza Internet el tr´fico.fib.7: icmp_seq=0 64 bytes from 147.es PING www.5 ms --. Hay que tener cuidado con esta opci´n porque puede producir la caida o de la red por DoS (denegaci´n de servicio) o No ejecuta DNS en la direcci´n IP.fib. Util ıa o una m´quina o un enrutador.4/130. por caminos impensables y lejanos.41.4 ms ttl=241 time=103.83.7): 56 64 bytes from 147. los paquetes grandes se utilizan en ataques a de denegaci´n de servicios para hacer caer una m´quina o desbordarla o a Env´ un patr´n espec´ ıa o ıfico en el paquete ICMP de carga util. establecen la configuraci´n TTL (tiempo de vida) del paquete en uno.es (147. los pings que rastrean rutas (tracerotue) son anfitriones. 6 packets received. Util para ıa a comprobar si un anfitri´n esta bajando paquetes porque mostrar´ gr´ficamente a cu´ntos o a a a ping responde. que pueden resultar utiles.7: icmp_seq=5 data bytes ttl=241 time=66.0 ms ttl=241 time=76. Podemos rastrear la ruta de la direcci´n IP y o saber varias cosas sobre dicha direcci´n. A continuaci´n el siguiente paquete se a o establece con un TTL de 2. Irregularmente.192 Servidor Linux para conexiones seguras de una LAN a Internet Opci´n o -c count -f -n -s size -p pattern Cuadro 12.fib.7: icmp_seq=4 64 bytes from 147.1: Opciones del comando ping Descripci´n o Establece un n´mero de pings deteminado.upc. tan r´pido como puede. Esta configuraci´n cono o trola la cantidad de puntos de conexi´n en el ordenador de la red que obtendr´ antes de morir por lo que o a el primer paquete s´lo ir´ al primer enrutador o m´quina m´s all´ de la nuestra en Internet y despu´s o a a a a e devolver´ un mensaje indicando que el paquete ha “expirado”.1. mostr´ndonos el trazado ı a virtual (la ruta) que siguen los paquetes.41. ´ Un ejemplo de este comando podr´ ser el siguiente: ıa # ping www.es ping statistics --6 packets transmitted. Puede ser muy interesante comprobar o a c´mo un paquete pasa por diferentes paises antes de llegar a su destino una fracci´n de segundo despu´s o o e y a veces.3 ms ttl=241 time=130. Puede aumentar la velocidad de una respuesta y o cancelar los problemas de DNS cuando existen problemas de diagn´stico de la red o ´ para probar c´mo manipula los paquetes grandes Env´ paquetes de longitud size. ın .7: icmp_seq=3 64 bytes from 147.8 ms ttl=241 time=62. pero cuando env´ fuera el primer ıan paquete. Traceroute Si no lo tenemos instalado basta con hacer: #apt-get install traceroute Este comando es similar a ping pero proporciona m´s informaci´n sobre el anfitri´n remoto.83. Esta herramienta es muy pr´ctica cuando estamos intentando localizar el origen o la ubicaci´n de un a o intruso que hemos encontrado en nuestro logs o alertas.83.83. B´sia o o a camente.7: icmp_seq=2 64 bytes from 147. Junio 2005.7: icmp_seq=1 64 bytes from 147.upc.

990 ms 129.0.452 ms 61. Si identificamos el ISP.net Referral URL: http://domainhelp.850 ms 4 tbvia1-tbest1-1. cu´l es su ISP (para poder enviarle una queja a sobre el abuso). 38 byte packets 1 (192. De cualquier modo.TR Registrar: TUCOWS INC.22) 48.COM.COM. 30 hops max. Herramientas de seguridad 193 o de un usuario que se encuentra dentro de una empresa.AU Registrar: MELBOURNE IT.0.459 ms 0.101 ms 7 upc-anella.com Server Name: WWW.408 ms 2 213.532 ms 51. Esta soluci´n no siempre es muy pr´ctica. Traceroute nos ofrece mucha informaci´n para el seguimiento de una IP.com >>> Last update of whois database: Wed.1) 0.com es el nombre del dominio sobre el que estamos buscando informaci´n.enom.480 ms 0. Este comando consulta los servidores de nombre de dominio principales y devuelve toda la informaci´n que tiene el registrador de nombres que le corresponda.099 ms 8 * * * Como se puede observar.BR Registrar: ENOM. si es el origen de una intrusi´n o o o un ataque. donde domain-name.0.es traceroute to www.fib.41. podemos averiguar qui´n es la persona responsable de dicha red y comunicarle e nuestro problema.22 (213.com and .252) 46. Con esto podemos averiguar qui´n o e es el propietario de un dominio.252 (213.184.344 ms 47.net (193. LTD.016 ms 116.GOOGLE.com. Whois Server: whois.833 ms 51. INC.242) 47.530 ms 66.net (213.tucows.enom.fib.0.GOOGLE.es (84. Tambi´n podemos utilizar el comando whois. o 12. INC. Los ISPs habitualmente finalizan su contrato de suministro con o el cliente malintencionado. Whois Server: whois.COM.392 ms 6 montseny-catnix.18. o a Su sintaxis es: $whois domain-name.net domains can now be registered with many different competing registrars.98.GOOGLE.7). pero por lo menos podemos probar.upc.COM. Junio 2005. pero con el tiempo se aprende a reconocer mejor el significado de las abreviaturas.0.net for detailed information.0. Go to http://www.es (147. Whois El comando whois es util para intentar localizar el contacto de alguien que est´ causando problemas ´ a en nuestra red.com Referral URL: http://www.com Whois Server version 1.242.254. Server Name: WWW.0.melbourneit.telefonica-data.opensrs. o Podemos observar esto en el siguiente ejemplo: $whois www.108 ms 45. .242 (213.google.168.com Referral URL: http://www.184.2) 61. qu´ tipo de servicio tiene y lo r´pido que es y d´nde se encuentra geogr´ficamente (a veces e a o a depende de la capacidad de descripci´n de los puntos intermedios).335 ms 52.upc.enom.enom.3 Domain names in the .18) 63.732 ms 47. Este comando es util para ataques que provienen tanto de dentro de las redes de empresas como de los ´ ISP.cesca.com Referral URL: http://www.com Server Name: WWW.83.146) 47.0.190.internic.3. D/B/A INTERNET NAMES WORLDWIDE Whois Server: whois.1. la lectura de traceroute es mas un arte que una ciencia.435 ms 64.MX Registrar: ENOM.190.catnix.986 ms 5 213.254.GOOGLE. . 25 May 2005 08:39:49 EDT <<< Jose Antonio Escart´ Vigo. ın .com Server Name: WWW. o Para ver como funciona podemos ejecutar el siguiente ejemplo: # traceroute www. .88.462 ms 3 213. Whois Server: whois. con el sitio web de la empresa podemos encontrar un n´mero de telefono u o una direcci´n de correo y quejarnos.248.nuria.melbourneit.Cap´ ıtulo 12. para buscar contactos t´cnicos e e espec´ ıficos para la empresa y organizaci´n.

direcciones de o correo postal y.isc.1) WHEN: Wed May 25 21:30:18 2005 MSG SIZE rcvd: 192 En la tabla 12.es Este TLD no dispone de servidor whois. . Podemos utilizarlo para o determinar los nombre de m´quinas utilizados en una red.org..228.sth1.isc.152. o o e 12.1. isc.. a Jose Antonio Escart´ Vigo.0.www. IN A 600 IN A 204.org.org.88 3599 3599 3599 3599 IN IN IN IN NS NS NS NS ns-ext. pero puede acceder a la informacion de whois en https://www..19 Query time: 696 msec SERVER: 192.nic.89. QUERY: 1.sth1. domain es el dominio sobre el que estamos preguntando y type es el tipo de informaci´n deseada.fib.org.. . Got answer: .isc.net y ´ o o . Junio 2005.184.isc.228. Tambien muestra a los servidores de nombre de dominio responsables de ese nombre de dominio.org . Solamente los dominios . El comando whois normalmente muestra una lista de direcciones de correo electr´nico. Se puede ampliar m´s esta informaci´n con el siguiente comando: dig..isc.org.isc. estamos proporcionando informaci´n que alguien del exterior puede aprovechar. ya sea para o o una labor social como para atacar nuestros sistemas.nrt1. isc.org...168.2 podemos encontrar las opciones m´s usuales del comando dig.org. Nos dice cu´ndo se cre´ el dominio y si se han hecho cambios u o a o recientes en sus listados whois. la unica soluci´n es buscar a mano en esa direcci´n. flags: qr rd ra.228.opcode: QUERY..isc.168... a o Si administra dominios propios. ADDITIONAL SECTION: ns-ext. .es/ingles/ Con lo que.19 192. ın .lga1.org. qu´ direcciones IP se unen a dichas m´quinas. . o Como ejemplo podemos poner una direcci´n que viene en el manual: o $dig www.isc..isc. .isc. dejando que los responsables reciban los mensajes enviados a esas direcciones de correo electr´nie o co y evitar proporcionar una informaci´n valiosa sobre la estructura de nuestra organizaci´n t´cnica. . a veces. ANSWER SECTION: www. ADDITIONAL: 3 . .4.org. ns-ext. status: NOERROR. <<>> DiG 9. a e a cu´l es su servidor de correo y otro tipo de informaci´n util.nrt1.org . 3599 3599 3599 IN IN IN A A A 192. Es mejor utilizar direcciones de correo electr´nico o gen´ricas.4 <<>> www. ns-ext. isc.upc.0.org.1#53(192. id: 25173 .. n´meros telef´nicos.194 Tambi´n nos puede pasar lo siguiente: e Servidor Linux para conexiones seguras de una LAN a Internet $whois www. ANSWER: 1. QUESTION SECTION: . global options: printcmd .90. AUTHORITY SECTION: isc.lga1.org. ns-ext. a o ´ La sintaxis general es: $dig @ server domain type Donde server es el servidor DNS al que deseamos consultar. debe asegurarse de que su listado whois est´ actualizado y es tan a gen´rico como pueda serlo. ns-ext. Al colocar direcciones de correo electr´nico y nombre reales en los campos de e o informaci´n. que ha quedado desfasado. .isc.2. AUTHORITY: 4.com.org.org. Dig El comando dig consulta en el servidor de nombres determinada informaci´n sobre un dominio.edu se encuentran incluidos en whois. ns-ext.91. ->>HEADER<<.19 192. Dig o es una versi´n actualizada del comando nslookup.

1. As´ se genera una lista de todos ı los usuarios conectados actualmente. ın . Actualmente algunos servidores se han configurado para no admitir transferencias de archivos de zona. Originalmente se dise˜´ cuando Internet era un lugar c´modo y los a no o usuarios permit´ que otras personas al otro lado del mundo conociesen sus datos. En este caso no hay demasiada informaci´n.Cap´ ıtulo 12.com Tambi´n podemos especificar una direcci´n IP como dominio. ıan La mayor´ de los administradores lo eliminan de sus sistemas porque es una fuente de brechas de ıa seguridad. pero otras veces podemos encontrar su correo electr´nico.0) Office Phone Y despu´s se puede utilizar para para averiguar m´s sobre un usuario: e a $finger josan Login: josan Name: Jose Antonio Escartin Vigo Directory: /home/josan Shell: /bin/bash On since Thu May 26 12:18 (CEST) on :0 (messages off) On since Thu May 26 12:34 (CEST) on pts/1 from :0.5. Adem´s a esto se une que muchos administradores se les olvida desinstalarlo o no saben c´mo hacerlo. a o El comando finger permite consultar. pero todav´ existen muchos enrutadores que lo incluyen y algunos Unix lo mantienen por deıa fecto. Devuelve cualquier registro “A”. al sistema remoto.example. Por ultimo presenta una lista de las a ´ estaciones y de donde provienen (si son locales o remotas). Los resultados del comando los podemos ver en el siguiente ejemplo: $finger Login josan josan Name Jose Antonio Escartin Jose Antonio Escartin Tty *:0 pts/1 Idle Login Time Office May 26 12:18 May 26 12:34 (:0. Es util para o ´ contactar con un administrador Devuelve cualquier anfitri´n CNAMED. o o su plan de trabajo e incluso proyectos en los que este trabajando actualmente. Algunas veces funciona o cuando falla AXFR 12. o a ıa Otro uso de finger es enviar el comando sin un nombre de usuario. El resultado del finger. podr´ ser usada e o ıa por una persona malintencionada para conseguir informaci´n m´s relevante mediante ingenier´ social. Los registros “A” son nombres de anfitri´n individuales o sobre la red Devuelve el nombre del anfitri´n de correo registrado para dicho dominio. Finger Finger es un antiguo comando Unix que ya no se utiliza pero que se sigue ejecutando en muchas m´quinas como servicio heredado. conocidos como alias o Devuelve cualquier informaci´n que puede generarse en el dominio. No Plan. La o sintaxis ser´ la siguiente: ıa $finger user@hotname.2: Opciones del comando dig Descripci´n o Intenta obtener todo el archivo del archivo del dominio o de la “zona”. por lo que puede que tengamos que preguntar por registros espec´ ıficos. un usuario malicioso puede intentar secuestrar una de esas sesiones inactivas. Con esto podemos saber qui´n est´ conectado y sus nombres reales e a e incluso podemos saber si est´n inactivos y durante cuanto tiempo. acerca de informaci´n de sus usuarios. Tambi´n podemos hacer consultas sobre todos los que esten conectados con la siguiente opci´n: e o $finger -l Jose Antonio Escart´ Vigo. Herramientas de seguridad 195 Opci´n o AXFR A MX CNAME ANY Cuadro 12. Junio 2005.0 No mail.

como la web y el correo electr´nico. Sin embargo.2. 12. s´lo ıa o o porque optemos por esta soluci´n no significa que nuestra red sea totalmente segura. Los ataques pueden o provenir a trav´s de cualquier brecha que hayamos creado. o Dise˜ar y utilizar un proceso como ´ste nos ayudar´ a garantizar que obtenemos mucho m´s de la n e a a implantaci´n de nuestro cortafuegos. o Desarrollar una pol´ ıtica sobre el uso de la red Trazar un mapa de los servicios internos y externos necesarios Convertir la pol´ ıtica sobre uso de la red y los servicios necesarios en reglas para el cortafuegos Implantar y probar la funcionalidad y la seguridad. Para la mayor´ de los sitios.196 Servidor Linux para conexiones seguras de una LAN a Internet 12. pueden u ser vulnerables a todos los ataques normales a nivel de sistema operativo. e o Jose Antonio Escart´ Vigo. Pol´ ıticas de seguridad En alg´n momento. Debemos de asegurarnos de que nuestros sistemas est´n vigilados y no depender del a cortafuegos para toda la seguridad de nuestra red. Se necesita mucha revisi´n y paciencia a la hora de ı o establecer las reglas. e o Los siguientes pasos perfilan un proceso para la implantaci´n y funcionamiento de un cortafuegos. Modos de configuraci´n o Existen dos formas de configurar un cortafuegos: Permitir todo y bloquear lo que no deseemos Denegar todo y a˜adir lo permitido n El m´todo habitual. Una l´ ınea de configuraci´n err´nea o o puede negar la protecci´n que ofrece un cortafuegos.2. pueden ser unos mecao nismos de defensa insuficientes si no se han configurado correctamente. Los cortafuegos. Por otra parte un cortafuegos solo nos protege de los ataques exteriores. Este plan o a ´ o o documenta los procesos y procedimientos subyacentes para asegurarnos de que obtenemos un beneficio. Autom´ticamente bloqueamos todo el tr´fico.2. se sit´an en la parte en la parte superior del sistema operativo y por lo tanto. usado por la gran mayor´ de administradores es empezar con “denegar todo” y e ıa despu´s a˜adir lo que deseamos permitir a los usuarios. Asegurar estas defensas de primera l´ ınea es cr´ ıtico y debe ser una de nuestras primeras prioridades. puede que no o a est´ ofreciendo a la organizaci´n la seguridad prometida. La instalaci´n de un cortafuegos est´ muy bien. o 12. Esto nos ser´ muy util para planificar la instalaci´n y configuraci´n. debido a la complejidad creciente y a la sofisticaci´n de los atacantes. a e n a a no ser que se admita en la configuraci´n espec´ o ıficamente.2. Un administrador muy ocupado que est´ intentando o e establecer el acceso para los empleados errar´ normalmente m´s en la parte de acceso en lugar de realizar a a ah´ un mejor esfuerzo para configurar la seguridad. ın . Revisar y probar las reglas del cortafuegos peri´dicamente. Junio 2005. Despu´s de esto podemos activar el cortafuegos e y sentarnos a esperar las quejas.1. pero sin instalar los procesos apropiados. Muchos cortafuegos utilizan un servidor web como interfaz con otros usuarios y as´ pueden aprovecharse tambi´n de las brechas en las ı e interfaces web. contra ataques interiores no tiene nada que hacer. preferiblemente antes de instalar el cortafuegos. debemos comentar por escrito u su proceso de actuaci´n. la soluci´n “denegar todo” es mucho mas seguro. Firewall o cortafuegos Forman la primera l´ ınea de defensa frente a los intrusos que quieren entrar en nuestra red corporativa. Sin embargo.

Junio 2005. tenemos a que recompilar el kernel. M´dulos b´sicos o a CONFIG NETFILTER CONFIG PACKET CONFIG IP NF CONNTRACK CONFIG IP NF FTP 2. el servicio lo proporciona el propio kernel. 1.3. es mejor utilizar una de las herramientas de configuraci´n autom´tica disponibles para crear la configuraci´n. Herramientas de seguridad 197 12. .4 o superior tendr´n integrado IPTables. . Estas herramientas utilizan IPTables para crear un cortafuegos utilizando nuestras entradas. ın .4 y posteriores. y normalmente se recomienda para usuarios que est´n e familiarizados con los cortafuegos y con el arte de configurarlos. Esta utilidad nos permite crear un cortafuegos empleando ıa comandos de nuestro sistema operativo. Si es nuestro primer cortafuegos. por lo que no ıa a es necesario instalar ning´n programa adicional. . ıa Si tenemos problemas lo m´s probable es que no tengamos habilitado IPTables en el kernel. Tabla filter (act´a como filtro) u CONFIG IP NF IPTABLES CONFIG IP NF FILTER CONFIG IP NF MATCH LIMIT CONFIG IP NF MATCH MAC CONFIG IP NF MATCH MARK CONFIG IP NF MATCH MULTIPORT CONFIG IP NF MATCH TOS CONFIG IP NF MATCH TCTPMSS CONFIG IP NF MATCH STATE CONFIG IP NF TARGET REJECT Jose Antonio Escart´ Vigo. deber´ mostrar una lista con el conjunto actual de reglas. depende para que usemos IPTables necesitaremos m´s o menos. IPTables Esta secci´n describe c´mo se configura un cortafuegos con IPTables. que es la utilidad integrada en la o o mayor´ de los sistema Linux 2. a Instalar IPTables La mayor´ de los sistemas Linux con kernel 2. M´dulos del kernel para IPTables o Para poder usar IPTables es necesario tener instalado en el kernel el netfilter y cargados una serie de m´dulos. es recomendable tener un conocimiento b´sico de lo que est´ sucediendo “bajo a a cubierta” con IPTables antes de empezar a configurar con una de las herramientas gr´ficas. u Para comprobar si lo tenemos instalado hay que ejecutar: $iptables -L. pero compleja.Cap´ ıtulo 12. al o a o menos al principio. o a Las opciones de IPTables se encuentran en: Networking-suport -> Networking-options -> Networkpacket-filtering. Sin embargo. Es una herramienta muy eficaz.2.

198 3.4 de los comandos IPTables. rule-specification y extensions son una o m´s opciones v´lidas. Tabla Nat (act´a como router) u CONFIG IP NF NAT Servidor Linux para conexiones seguras de una LAN a Internet CONFIG IP NF NAT NEEDED CONFIG IP NF NAT FTP CONFIG IP NF TARGET MASQUERADE CONFIG IP NF TARGET REDIRECT 4. Para obtener una lista completa e a de listados. estos canales se denominan tablas. La tabla 12. Las tablas b´sicas empleadas en IPTables son: a Input: Tr´fico que entra en la m´quina a a Forward: Tr´fico que pasa por la m´quina a a Prerouting: Enrutamiento previo Postrouting: Enrutamiento posterior Output: Trafico que sale de la m´quina a El formato que genera una declaraci´n IPTables es: o #iptables command rule-specification extensions Donde command. ın . consulte el manual de IPTables escribiendo: $man iptables Jose Antonio Escart´ Vigo.3 incluye a a un resumen de las especificaciones de reglas y la tabla 12. Tabla mangle (altera paquetes especiales) CONFIG IP NF MANGLE CONFIG IP NF TARGET TOS CONFIG IP NF TARGET MARK CONFIG IP NF TARGET LOG CONFIG IP NF TARGET TCPMSS 5. Junio 2005. Existen otros comandos y opciones pero ´stos son los m´s comunes. En o o IPTables. Compatibilidad con versiones anteriores CONFIG IP COMPAT IPCHAINS CONFIG IP COMPAT IPFWADM Utilizar IPTables La idea que se esconde detr´s de IPTables es crear canales de entradas y procesarlas de acuerdo con a un conjunto de reglas (la configuraci´n del cortafuegos) y enviarlas a continuaci´n a canales de salida.

que es el “conducto” principal para ı cualquier paquete que desea pasar por el cortafuegos.254. ın . Tambi´n se pude especificar un n´mero de puerto o un rango de e u n´meros de puerto coloc´ndolos despu´s de un signo de exclamaci´n de u a e o apertura --sport Puerto de origen --dport Puerto de destino --tcp-flags Flags permitidos y flags activos. Empieza eliminando cualquier regla existente con el comando Flush: iptables -F FORWARD As´ eliminamos cualquier regla para la cadena FORWARD. Herramientas de seguridad 199 Cuadro 12. b´sicamente “rebot´ndolas” de nuevo al origen a a SNAT NAT est´tica. Los flags son:SYN ACK FIN RST URG PSH ALL NONE (hay que especificarlos separados por comas) -f Especifica paquetes fragmentados -m <modulo> Especifica un m´dulo de opciones especiales o -m multiport Especifica que se usar´ el m´dulo de multipuertos a o -p protocol Especifica un determinado protocolo con el que se compara la regla. o o 1. Para desigo nar un rago de direcciones IP se usa la notaci´n est´ndar de barra oblicua.1 . Las opciones v´lidas para target son: a DROP Coloca el paquete sin ninguna acci´n posterior o REJECT Coloca el paquete y devuelve un paquete de error LOG Registra el paquete en un de error MARK Marca el paquete para una acci´n posterior o TOS Cambia el bit TOS (Tipo de servicio) MIRROR Invierte las direcciones de origen y de destino y las env´ ıa de nuevo. o a Tambi´n se pude especificar un n´mero de puerto o un rango de n´meros e u u de puerto coloc´ndolos despu´s de un signo de exclamaci´n de apertura a e o -d address/mask!port Especifica una determindada direcci´n de red destino a comparar.192.168.0. que situaremos dentro de un script ejecutable. Para o designar un rago de direcciones IP se usa la notaci´n est´ndar de barra o a oblicua. Similar a la anterior pero usando un rango a din´mico de direcciones IP a MASQ Enmascara la IP usando una IP p´blica u REDIRECT Redirecciona el paquete Regla -s address/mask!port Crear un cortafuegos IPTables La mejor forma de ver como funciona es mediante un ejemplo. Se toman las siguientes premisas: Se supone que la LAN local es 192.Cap´ ıtulo 12.0. Junio 2005. Los tipos de protocolo v´lidos son icmp. tcp. Jose Antonio Escart´ Vigo.3: Especificaciones de reglas de IPTables Descripci´n o Especifica una determindada direcci´n de red origen a comparar. que la interfaz eth1 es la conexi´n LAN local y que la interfaz eth0 es la conexi´n WAN o Internet. Convierte la direcci´n de origen en o otro valor est´tico a DNAT NAT din´mica. Network o o Address Translation). udp o todos (all) a -i interface Especifica una interfaz de entrada -o interface Especifica una interfaz de salida Indica lo que se tiene que hacer con el paqute si coincide -j target con las especificaciones.168. Esta opci´n se utiliza cuando se est´ realia o a zando una Traducci´n de direcci´n de red (NAT.

3.168. Existen dos tipos de ataques comunes que debemos bloquear en seguida. o Tambi´n se podr´ evitar las respuestas a pings externos mediante: e ıan iptables -A INPUT -p icmp --icmp-type echo-request -j DROP Jose Antonio Escart´ Vigo.0. Es recomendable su uso cuando iniciamos una o configuraci´n para asegurarnos de que ninguna regla existente entrar´ en cono a flicto con una regla nueva Pone a cero todas las cuentas de paquetes y bytes en la cadena denominada Crea una nueva cadena con el nombre de chain Elimina la cadena especificada.0/24 -i eth0 -j DROP iptables -A FORWARD -p icmp -i eth0 -d 192. Es util cuando deseamos que una o ´ regla reemplace a las anteriores Elimina la cadena indicada Reemplaza la regla en la ubicaci´n rulenum con la chain proporcionada o Lista todas las reglas en la cadena actual Purga todas las reglas en la cadena actual. tambi´n podiamos ı a e haber usado: iptables -F. El otro tipo de ataque se lleva a cabo enviando una gran cantidad de paquetes a las direcciones LAN para sobrecargar la red. es necesario que se escriba lo siguiente expl´ ıcitamente: iptables -A FORWARD -f -j ACCEPT 5.0. se eliminan todas las cadenas Establece la pol´ ıtica para la cadena especificada en policy 2. La segunda declaraci´n retira cualquier o o paquete del protocolo ICMP que provenga de la direcci´n exterior a la interior. iptables -A FORWARD -s 192.168.168. eliminando b´sicamente la configua raci´n de nuestro cortafuegos. LAN incluso aunque tengamos idrecciones IP privadas.0/24 -j DROP La primera declaraci´n rechaza cualquier paquete que provenga de la interfaz eth0 de Internet con la o direcci´n interna 192. Eliminamos las otras cadenas: iptables -F INPUT iptables -F OUTPUT As´ eliminamos cualquier regla en su m´quina local y en su cadena de salida. Para aceptar paquetes fragmentados en IPTables. Uno es el conocido como spooofing.0/24. Este tipo de ataque se denomina ataque smurf.0. Por definici´n. ning´n paquete deber´ provenir de una interfaz de o o u ıa no confianza con una direcci´n de fuente privada e interna.4: Comandos IPTables Descripci´n o A˜ade una o m´s reglas al final de la declaraci´n n a o Inserta una cadena en la ubicaci´n rulenum. ataca sobre el protocolo de transmisi´n de archivos. Inserta la declaraci´n “denegar todo” est´ndar justo al principio: o a iptables -P FORWARD DROP iptables -A INPUT -i eth0 -j DROP 4. afectando a todas las cadenas a la vez. Podemos bloquear o este tipo de ataques con dos sencillas declaraciones. Junio 2005. Si no se especifica ninguna cadena.200 Servidor Linux para conexiones seguras de una LAN a Internet Comando -A chain -I chain rulenum -D chain -R chain rulenum -L -F -Z chain -N chain -X chain -P chain policy Cuadro 12. As´ alguien puede enrutar hacia nuestra ı. que se produce cuando alguien falsifica los encabezados de los paquetes IP para que parezcan paquetes externos que tienen direcciones internas. ın .

UDP se usa para DNS y si lo bloqueamos.smtp --syn -j ACCEPT 9.0/24 --dports www. Necesitaremos permitir determinados paquetes UDP entrantes.0. Y el indicador --dports permite s´lo el tr´fico o a de correo SMTP.0 --dports www.0. Aqu´ podemos evitar que los usuarios usen FTP y otros programas no esenciales. Sin embargo.ACK ACK -j ACCEPT iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192.Cap´ ıtulo 12. Podemos permitir que los usuarios inicien conexiones de salida pero s´lo en los protocolos que o deseamos que usen. Para poder aceptar conexiones de entrada desde el exterior s´lo en determinados puertos.168.0 --sports domain -j ACCEPT Las dos primeras declaraciones permiten los datagramas UDP entrantes y las otras dos declaraciones permiten las conexiones salientes. si se ha producido la conexi´n TCP de tres v´ Las siguientes declaraciones permiten el o ıas.0.168. como un o mensaje correo electr´nico entrante en nuestro servidor de correo. Las declaraciones que debemos usar son: ´ iptables -A FORWARD -m multiport -p udp -i eth0 -d 192. tr´fico web basado en este criterio. alguien que explora una p´gina Web.0/24 --dports domain -j ACCEPT iptables -A FORWARD -m multiport -p udp -i eth0 -s 192.0. usamos este tipo de declaraci´n: o o iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192.0. como unico puerto admisible.168.0.ACK ACK -j ACCEPT La declaraci´n --dports indica que s´lo se permite el correo electr´nico y la Web y la declaraci´n o o o o de indicadores –tcp indica que s´lo deseamos paquetes con el campo ACK establecido o 7. lo o que significa que se deben iniciar las conexiones TCP. Siempre que la conexi´n est´ en curso y se haya a o e iniciado internamente. Jose Antonio Escart´ Vigo.smtp --tcp-flags SYN. a iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192.0.168. Generalmente aceptaremos el tr´fico entrante basado en conexiones iniciadas desde el interior. o es decir. Podemos saber si es una conexi´n existente comprobando si se ha establecido la parte ACK. Supongamos que s´lo deseamos permitir a los empleados el acceso a la Web y al correo o electr´nico. por lo que especificaremos: domain (una variable integrada para el puerto o 53). 8.0 --dports domain -j ACCEPT iptables -A FORWARD -m multiport -p udp -i eth1 -s 0. ı Las direcciones que contienen todo ceros son una abreviatura de “cualquier direcci´n”. podemos limitar el tipo de tr´fico a permitido.0. o iptables -A FORWARD -m multiport -p tcp -i eth0 -d 0. Junio 2005. por a ejemplo. Como no disponen de un estado como los a paquetes TCP. Podemos especificar los tipos de tr´fico para permitir s´lo el que est´ en una conexi´n ya o a o e o iniciada.smtp --tcp-flags SYN.0/24 --sports domain -j ACCEPT iptables -A FORWARD -m multiport -p udp -i eth1 -d 0. no podemos fiarnos de la revisi´n de los indicadores SYN o ACK. probablemente sea correcta.0. los usuarios no podr´n resolver direcciones. Herramientas de seguridad 201 6.0/24 --sports www.0. La declaraci´n -syn le indica que se permiten los paquetes SYN. ın .0/24 --dports smtp --syn -j ACCEPT El indicador de m´ltiples puertos -m indica a IPTables que vamos a emitir una declaraci´n de u o coincidencia para los puertos.168. Deseamos admitir o UDP s´lo en el puerto 53.0.

0.168. para tener una idea de los tipos de tr´fico que se han rechazado.ACK ACK -j ACCEPT iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192. para evitar el punto 10 # Punto 6 iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192.0/24 -i eth0 -j DROP #iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -p icmp --icmp-type echo-request -j DROP . Por ultimo.11 -j ACCEPT #iptables -A FORWARD -m multiport -p icmp -i eth1 -d 0.168.0.0/24 --sports 0. Junio 2005.11 -j ACCEPT iptables -A FORWARD -m multiport -p icmp -i eth1 -d 0.11 -j ACCEPT Es mas simple si lo controlamos a la entrada.5: Ejemplo de IPTables #! /bin/bash # Punto 1 iptables -F FORWARD # Punto 2 iptables -F INPUT iptables -F OUTPUT # Punto 3 iptables -P FORWARD DROP iptables -A INPUT -i eth0 -j DROP # Punto 4 iptables -A FORWARD -f -j ACCEPT # Punto 5 iptables -A FORWARD -s 192.168.0.0. Lo que pretendemos es permitir todo tipo e de ICMP interno hacia el exterior.3.0/24 --dports www.0/24 --dports 0.202 10. algo que podemos conseguir con las siguientes instrucciones: iptables -A FORWARD -m multiport -p icmp -i eth0 -d 192.smtp --tcp-flags SYN. 11.0/24 --dports smtp --syn -j ACCEPT # Punto 8 iptables -A FORWARD -m multiport -p tcp -i eth0 -d 0.0.0.0.0 --dports 8.3.0.3.0 --dports 8.168. pero s´lo determinados tipos como la contestaci´n de eco hacia o o el interior. haciendo un DROP de los ’echos de icmp’. incluso aunque no exista ning´n u problema.168.168.0.0/24 --dports 192. Si observa paquetes a rechazados repetidamente de la misma red o direcci´n. El siguiente c´digo es el ejemplo en un script.0.11 -j ACCEPT # Punto 11 iptables -A FORWARD -m tcp -p tcp -j LOG iptables -A FORWARD -m udp -p udp -j LOG iptables -A FORWARD -m icmp -p icmp -j LOG Es necesario darle permisos de ejecuci´n: #chmod 700 nombre_script o Jose Antonio Escart´ Vigo.smtp --syn -j ACCEPT # Punto 9 iptables -A iptables -A iptables -A iptables -A FORWARD FORWARD FORWARD FORWARD -m -m -m -m multiport multiport multiport multiport -p -p -p -p udp udp udp udp -i -i -i -i eth0 eth0 eth1 eth1 -d -s -d -s 192. vamos a establecer el inicio de sesi´n para poder ver en los registros lo que se ha ´ o rechazado.0.OMITIDO . Servidor Linux para conexiones seguras de una LAN a Internet Tambi´n podemos especificarlos para los paquetes ICMP. as´ estas ı dos instrucciones no son necesarias.smtp --tcp-flags SYN.0/24 --dports 0.0.OMITIDO #iptables -A FORWARD -m multiport -p icmp -i eth0 -d 192.0.3.0.0.0/24 --sports www.0 --dports www. Existe una o e declaraci´n para registrar cada tipo de tr´fico: o a iptables -A FORWARD -m tcp -p tcp -j LOG iptables -A FORWARD -m udp -p udp -j LOG iptables -A FORWARD -m icmp -p icmp -j LOG Con esto conseguir´ ıamos una protecci´n a nivel de cortafuegos ante los ataques m´s comunes de o a internet.ACK ACK -j ACCEPT # Punto 7 iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192. puede que est´ siendo atacado. ın .168.0.0.0 --sports domain domain -j ACCEPT domain -j ACCEPT -j ACCEPT -j ACCEPT # Punto 10 . o Cuadro 12. Es mejor revisar estos registros de vez en cuando.0 --dports domain 0.0.168.

0.172. es decir. Herramientas de seguridad El resultado de nuestro cortafuegos despu´s de ejecutar el script ser´ el siguiente: e ıa # iptables -L Chain INPUT (policy target prot opt DROP all -DROP icmp -ACCEPT) source anywhere anywhere destination anywhere anywhere 203 icmp echo-request Chain FORWARD (policy DROP) target prot opt source ACCEPT all -f anywhere DROP all -.anywhere ACCEPT udp -.255. el cortafuegos recuerda el IP interno al que se dirige y vuelve a dirigirlo para una entrega interna.0.0 .0.168. ın .192. A continuaci´n se env´ el paquete de datos a su destino con o ıa una direcci´n IP de origen de la interfaz p´blica del cortafuegos.0 anywhere anywhere anywhere anywhere multiport dports www.168.192. El encabezado IP interno se desprende en el cortafuegos y se reemplaza con un encabezado que muestra el cortafuegos como el IP de origen.ACK/SYN multiport dports www. a Podemos proporcionar esta capa adicional de protecci´n f´cilmente con IPTables utilizando el enmascao a rado IP. Podemos enviar determinados puertos a servidores internos para que no tengan una direcci´n IP p´blica.0/24 ACCEPT udp -.0.168. Muchas herramientas crean las declaraciones del cortafuegos utilizando una interfaz gr´fica. o u Cuando vuelve de nuevo.192. Los rangos de direcciones privadas son: 10.168.0/24 0. estamos protegiendo con efectividad nuestras m´quinas internas ante el acceso desde el exterior.0 . Junio 2005. se reservaron varios bloques de direcciones para su uso n en redes privadas.0 LOG tcp -.0/24 192.255.0.anywhere ACCEPT udp -. de forma autom´tica.ACK/ACK multiport dports smtp tcp flags:SYN.ACK/SYN multiport dports domain multiport sports domain multiport dports domain multiport sports domain tcp LOG level warning udp LOG level warning icmp any LOG level warning destination Enmascarar IP con IPTables Cuando se dise˜o Internet originalmente.0.0. ahora ya sabemos c´mo crear un cortafuegos b´sico.0/24 anywhere 0. Podemos colocar otra tarjeta de red en el servidor y o u convertirla en una interfaz DMZ para servidores con direcci´n p´blica.RST.smtp tcp flags:SYN.anywhere ACCEPT udp -.68.0.Cap´ ıtulo 12.0 192. Network e o o Address Translation).0/24 192.0.255 192.168.0. a a Para simplificar el m´todo utilizare el m´dulo Firewall para Webmin.anywhere LOG udp -.255 Al utilizar estas direcciones en nuestra LAN interna y tener una IP externa enrutable en nuestro cortafuegos. e o Jose Antonio Escart´ Vigo.168. Estas direcciones nos se van a enrutar a trav´s de Internet y se pueden utilizar sin e preocuparse de que vayan a tener conflictos con otras redes.anywhere ACCEPT tcp -.smtp tcp flags:SYN. Conclusiones Bueno.anywhere ACCEPT tcp -. o Existen otros m´todos mas simples y r´pidos de crear un cortafuegos.31.10.RST.0.smtp tcp flags:SYN.0.168.16.0.255.anywhere ACCEPT tcp -.0 .0. Existen libros completos sobre la o u configuraci´n avanzada de cortafuegos y muchas listas de correo.anywhere LOG icmp -.255. basado en IPTables.0.0/24 ACCEPT tcp -.255 172. Con las siguientes declaraciones podemos hacerlo en IPTables: iptables -t nat -P POSTROUTING DROP iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE El indicador MASQUERADE se puede abreviar como MASQ. Este proceso tambi´n se conoce como Traducci´n de direcci´n de red (NAT.0.anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination anywhere anywhere 192.0.ACK/ACK multiport sports www. sin introducir comandos y e a tener que recordar la sintaxis. Se trata de una configuraci´n bastante o a o sencilla y las posibles variaciones son infinitas.

0 • En #Only allow cachemgr access from localhost. para la conexi´n: o Cuadro 12.visolve.0 acl localhost src 127.0. Bueno. Veamos el proceso: Activamos el reenvi´ de paquetes: o echo 1 > /proc/sys/net/ipv4/ip_forward Hacemos que el NAT coja todas las peticiones que vayan a un puerto (por ejemplo el 80) y las redirija al puerto del proxy (por ejemplo 3128): iptables -t nat -A PREROUTING -s $NUESTRA_RED -p tcp --dport 80 -j REDIRECT --to-port 3128 Instalaci´n del proxy squid: o #apt-get install squid webmin-squid El fichero de configuraci´n del squid es: /etc/squid/squid.1/255.log cache_swap_log /var/log/squid/swap.6: Ejemplo del archivo /etc/squid/squid.log cache_store_log /var/log/squid/store. Squid: Proxy transparente Lo primero es tener el IPTables y el squid funcionando.0.0/0.1.168.0 Jose Antonio Escart´ Vigo.html #Los puertos por los que escuchara nuestro Squid. Para cargar el modulo realizaremos un apt: #apt-get install webmin-squid Ahora veamos un ejemplo del archivo /etc/squid/squid.0.log cache_access_log /var/log/squid/access.3.0.255 acl Safe_ports port 80 443 210 119 70 20 21 1025-65535 acl CONNECT method CONNECT acl all src 0. cache_dir ufs /cache 250 16 256 #Lugares en los que iran los archivos de bitacora de Squid.255. hay que poner antes de las denegaciones: http_access allow redInterna • Y en #HTTPD-ACCELERATOR OPTIONS : httpd_accel_host virtual httpd_accel_uses_host_header on httpd_accel_with_proxy on Tambi´n podemos configurar el proxy en modo gr´fico mediante la herramienta de administraci´n e a o Webmin.255.204 Servidor Linux para conexiones seguras de una LAN a Internet 12. cache_mem 16 MB #250 significa que Squid usara 250 megabytes de espacio en disco.conf #Sacado de http://debaser.255.com/squidman/Configuration%20Guide. http_port 8080 icp_port 3130 #los cgi-bin no se cachearan.0.conf donde se limita el ancho de banda. logfile_rotate 10 redirect_rewrites_host_header off cache_replacement_policy GDSF acl localnet src 192. ın . Lo configuramos para permitir el o acceso del proxy a nuestra red interna: • En #ACCESS CONTROLS : acl redInterna src 192.0/255. cache_log /var/log/squid/cache.0/255. #Acuda a la FAQ para m\’as informaci\’on.255.0. acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY #La memoria que usara Squid.1. Con las opciones NAT de netfilter en el kernel.log #Cuantas veces rotar los archivos de bitacora antes de borrarlos. Junio 2005.conf asi #como en http://www. Squid usara mucha mas que esa.168.conf.ath.cx/deal/manuales/Limitar-ancho-de-banda-COMO/html/install.255.255.html #Todas las opciones de este archivo se encuentran muy bien documentadas en el #propio squid.

#Segunda clase de retraso (2) de segundo tipo (2)..0 (X11. #Cuidado! con el acl de abajo sus descargas se interrumpiran #a las 23:59.1 #Esto resulta util cuando queremos usar el Cache Manager. en-US..icm. #Copie cachemgr.mpe .tar.168 #Queremos limitar la descarga de este tipo de archivos #Ponga todo esto en una unica linea acl magic_words2 url_regex -i ftp . delay_parameters 1 -1/-1 -1/-1 #magic_words1: 192..icm.zip .rpm . delay_pools 2 #Primer delay pool #No queremos retrasar nuestro trafico local #Hay tres cases de pools. Junio 2005.iso .org #No queremos limitar las descargas en nuestra red local.. #No es buena idea usar un mayor #cache_peer_domain w3cache.cgi cache_mgr your@email cachemgr_passwd secret_password all #Este es el nombre de usuario con el que trabajara nuestro Squid.rar . httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on #Todos los usuarios de nuestra LAN seran vistos por los servidores web #externos como si usasen Mozilla en Linux.ram . #Podra acceder a el una vez lo haya hecho introduciendo en un navegador #la direccion http://su-servidor-web/cgi-bin/cachemgr.vqf .net !192.gz . No olvide cambiar el servidor por uno mas rapido para usted.jpg y archivos similares porque por lo general #no consumen demasiado ancho de banda. cache_effective_user squid cache_effective_group squid log_icp_queries off buffered_logs on #####DELAY POOLS #Esta es la parte mas importante para configurar el trafico entrante con #Squid.gif.rm .mov #No bloqueamos .Cap´ ıtulo 12.6+) Gecko/20011122 #Para acelerar aun mas nuestra conexion ponemos dos lineas similares a las #de mas abajo. Para una descripcion detallada acuda al archivo squid. aqui solo hablaremos de la segunda. Asegurese de que los puerto http e icp son los correctos. traceroute y demas herramientas para comprobar la #velocidad.exe .avi .168.pl !. #Debemos recordar que Squid no tiene en cuenta los bits de inicio/parada #5000/150000 son valores para la red al completo #5000/120000 son valores para la IP independiente #una vez los archivos descargados exceden los 150000 bytes. #Si deja esto sin comentar no pasara nada peligroso. Lea la FAQ si quiere envitarlo. #Eso significa que por lo general no tendra que configurar todos los #navegadores de sus clientes.edu. delay_access 2 allow day delay_access 2 deny !day delay_access 2 allow magic_words2 #EOF Jose Antonio Escart´ Vigo. Linux i686.168 que ya hemos puesto antes delay_access 1 allow magic_words1 #Segundo delay pool. ın .conf o a la #documentacion de http://www.9.pl !7thguard. #Puede utilizar ping. rv:0.mpeg .cgi al cgi-bin de su servidor web. anonymize_headers deny User-Agent fake_user_agent Mozilla/5. acl day time 09:00-23:59 #Tenemos dos delay_pools diferentes #Acuda a la documentaci\’on de Squid para familiarizarse #con delay_pools y delay_class. #Queremos retrasar la descarga de los archivos mencionados en magic_words2. #cache_peer w3cache. .gz . Herramientas de seguridad 205 http_access allow localnet http_access allow localhost http_access deny !Safe_ports http_access deny CONNECT http_access deny all maximum_object_size 3000 KB store_avg_object_size 50 KB #Configure esto si quiere que su proxy funcione de manera transparente.pl parent 8080 3130 no-digest default #. . delay_class 1 2 #-1/-1 significa que no hay limites.mp3 . acl magic_words1 url_regex -i 192.1.wav .squid-cache. #Este es el proxy que va a usar para todas las conexiones. #Queremos limitar el ancho de banda durante el dia permitiendo #el ancho de banda completo durante la noche.edu. #Descomente las lineas que comienzan por "cache_peer" de ser necesario. delay_class 2 2 #Los numeros siguientes son valores en bytes.mpg . aunque tiene algunos inconvenientes.excepto para las direcciones e IPs que comiencen por "!".html. U.qt . Apuntaran a un servidor proxy [parent] que usara nuestro propio #Squid.raw . #(o el doble o el triple) #las descargas proseguiran a 5000 bytes/s delay_parameters 2 5000/150000 5000/120000 #Ya hemos configurado antes el dia de 09:00 a 23:59. #Primera clase de retraso (1) de segundo tipo (2).

Esta t´cnica es util para cerrar r´pidamente m´ltiples a e ´ a u m´quinas. Junio 2005. . minimizar las partes de la m´quina que est´n expuestas. Los detalles de este proceso ser´n diferentes a a a dependiendo del uso pretendido de la m´quina. . simplemente cargue a o Bastille en las m´quinas adicionales y copie el archivo de configuraci´n en dichas m´quinas (o deje que a o a accedan al archivo por la red).5 003 o superior Perl TK Module 8. en un entorno de pruebas. ı En este caso utilizar´ la herramienta Bastille Linux. a Simplifica extraordinariamente el proceso de fortalecimiento y lo reduce a responder a algunas preguntas.1. sino de un conjunto de secuencias de comandos que llevan a cabo determinadas configuraciones del sistema bas´ndose en nuestras indicaciones. a o a 12. en general. A pesar de lo e o que pueda parecer. Si necesitamos m´s informaci´n la podemos obtener en la p´gina web oficial: www. necesitamos fortalecerlo para utilizarlo como sistema de seguridad.06 o superior Para ejecutar Bastille linux: #/usr/sbin/bastille. se crea un archivo de configuraci´n. . para el modo texto (curses). Este modo ejecuta Base tille autom´ticamente. disponible en la distribuci´n Debian. . . restringir los permisos y. primeramente. podremos ejecutar la herramienta en nuestro entorno de trabajo. Este proceso implica cerrar los servicios innecesarios. Este tipo de programas pueden desconectar los servicios necesarios para el funcionamiento de alg´n servidores.4. en Linux. desde un archivo de configuraci´n preasignado.4.206 Servidor Linux para conexiones seguras de una LAN a Internet 12. ın . cada vez que a o ejecutamos Bastille. Ejecuci´n o Es muy recomendable instalar esta herramienta. o o Jose Antonio Escart´ Vigo.23 o superior Perl Curses Module 1. Bastille Linux: Herramienta de seguridad Una vez instalado nuestro sistema operativo. Cuando haya probado su efecto y verificado su o estabilidad. Sin embargo.bastille-linux. a #/usr/sbin/bastille -c. no se trata de un sistema operativo independiente. existen herramientas que realizar´n autom´ticamente a a un fortalecimiento del sistema. Para ejecutarlo escribimos: #bastille non-interactive config-file Donde config-file es el nombre y la ubicaci´n del archivo de configuraci´n que deseamos utilizar. Cuando disponga del archivo de configuraci´n con los elementos deseados. u produciendo cortes de servicio o detenci´n del mismo. Tambi´n podemos ejecutar Bastille en lo que se denomina modo no interactivo. Para instalar hay que ejecutar: #apt-get install bastille Para poder usar la aplicaci´n deben de estar instalados los siguientes paquetes: o Perl 5.00. sin hacer preguntas. As´ se puede ahorrar tiempo sin olvidarnos de nada. a Antes el fortalecimiento sol´ ser un proceso manual intensivo a medida que se probaban y testeaban ıa las posibles modificaciones. A continuaci´n podemos utilizarlo para ejecutar o o Bastille en otras m´quinas en modo no interactivo. . para el modo gr´fico.org.

Las unidades de cinta se numeran por su orden en la controladora SCSI. desconecta el servidor Samba. se ofrece una a a oportunidad final para terminar todas las configuraciones. Para ello. Bas´ndose en las respuestas. Nos pregunta cosas como “¿Desea utilizar esta m´quina como acceso a m´quinas Windows?”.5. Si realizamos las copias en el propio disco o en cintas de backup. 12. Probablemente tendremos en nuestro sistema un dispositivo de enlace simb´lico a la cinta: /dev/tape. /dev/nstX : Dispositivo de cinta SCSI sin rebobinado autom´tico. usan el siguiente esquema de nombres: /dev/stX : Dispositivo de cinta SCSI de rebobinado autom´tico. Tambi´n existe un bot´n de detalle con ı o e o informaci´n adicional. o a Cuanta m´s informaci´n tenga. Samba podr´ introducir algunas brechas de seguridad potenciales en nuestro a ıa sistema. es decir. x es el n´mero de la unidad de a u cinta. intentar´ establecerlos con privilegios a limitados o utilizando un chrooted jail. por lo que es recomendable desconectarlo si no lo necesitamos. que permite a nuestra m´quina interactuar con a las m´quinas Windows. Herramientas de seguridad 207 12. Junio 2005. Si no a o a est´ seguro. e A cada pregunta le acompa˜a una peque˜a explicaci´n de porqu´ esa configuraci´n es importante. Si tenemos que ejecutar algunos servidores (por ejemplo. o Bastille adopta la soluci´n de intentar educar al administrador mientras est´ cerrando el sistema. Utilizar DVDs de backups. Las unidades de cinta se numeran por su orden en la controladora SCSI.5. Bastille desconecta los o a a servicios innecesarios o restringe los privilegios de los usuarios y servicios. si un servidor tiene que ejecutarse con acceso a la ra´ del ız sistema. Utilizar cintas de backup. x es el n´mero de la unidad de a u cinta. Modos de funcionamiento Normalmente ejecutaremos Bastille en modo interactivo.1. n n o e o as´ podemos decidir si es apropiada para nuestra instalaci´n. 12. lo que suaviza los efectos de cualquier ataque con ´xito sobre dicho servicio.2. SSH). No hay que preocuparse. Si resa a pondemos negativamente. el proceso puede ser automatizado mediante el cron del sistema. En este modo responderemos a una serie de preguntas sobre c´mo vamos a utilizar la m´quina. tiene una capacidad limitada de afectar a otras partes del sistema. o Jose Antonio Escart´ Vigo. mejor armado estar´ para los deberes de seguridad de su red. Otra ventaja es que Bastille nos ofrece e o una lista de “cosas para hacer” al final de la sesi´n de fortalecimiento para cualquier elemento del que o Bastille no se haya ocupado. puede saltarse una pregunta y volver a ella m´s adelante. Copias de seguridad Para realizar las copias de seguridad necesarias en nuestro servidor y dependiendo de las necesitades de nuestra empresa.4. Dispositivos de cinta Las unidades de cinta SCSI. ın . necesitamos disponer de una medio seguro donde poder almacenarlas.Cap´ ıtulo 12. Tambi´n puede ejecutar Bastille posteriormente e despu´s de investigar sobre la respuesta y cambiar la configuraci´n. podemos aplicar una las siguientes soluciones: Almacenar las copias en el propio disco f´ ısico del servidor (no se recomienda).

para manipular cintas de backup Par´metros a Descripci´n o -f <dispositivo> Especifica el dispositivo de cinta. como el rebobinado. o Este archivo lista cada copia de seguridad de un sistema de archivos. o Podemos ver los siguientes ejemplos: #mt -f /ver/nst0 rewind. la descarga. La utilidad dump almacena toda la informaci´n sobre sus operaciones en el archivo /etc/dumpdates. Mueve la cabeza lectora. load Carga la cinta (aplicable a cambiadores de cinta). podemos determinar que copia debemos restaurar. . o unlock Desbloquea la puerta de la unidad (s´lo aplicable a ciertas unidades de cinta). ın . . En el contexto de las copias de seguridad. lock Bloquea la puerta de la unidad (s´lo aplicable a ciertas unidades de cinta). fsf 1 deber´ dejar la cabeza preparada para ıa leer el segundo archivo de la cinta. El primer dump es una copia completa.7: Opciones del comando mt.3. mt es muy util como mecanismo u ´ de rebobinado y b´squeda. El tercer dump tiene todos los cambios desde el primer dump. Para rebobinar la cinta en /dev/nst0. Para soportar backups incrementales. Cuadro 12. El cuadro 12. Mt El programa mt proporciona controles simples para la unidad de cinta. Por poner un ejemplo. status Da el estado de la cinta. Junio 2005. fsf <cuenta> Avanza un n´mero (cuenta) de archivos.7 muestra los par´metros a del comando. offline Deja la cinta inactiva y. El posicionamiento se hace primero con un rebobinado de la cinta y despu´s se avanza cuenta archivos. #mt -f /dev/nst0 asf 2. La cinta se coloca en el primer bloque u del archivo siguiente. si es aplicable. asf <cuenta> Posiciona la cinta al comienzo del archivo indicado por cuenta. La herramienta restore puede tomar esa copia y restaurarla.2.. e rewind Rebobina la cinta. . u Todas las acciones de mt se especifican en la l´ ınea de comandos. dump Dump y Restore Las herramientas que utilizaremos ser´n dos: a restore Para instalarlas ejecutaremos un apt: #apt-get install dump La herramienta dump trabaja haciendo una copia de un sistema de archivos entero. El segundo dump contiene todos los cambios hechos desde el primer dump. Cualquier nivel de dump superior a 0 es un incremento relativo a la ultima vez que se realiz´ un dump con un nivel de dump menor.5.5. erase Borra la cinta. o Jose Antonio Escart´ Vigo. . el segundo de nivel 1 y el tercero tambi´n e de nivel 1. cu´ndo se hizo y de qu´ nivel. Dada a e esta informaci´n.. dump usa el concepto de niveles de dump.208 Servidor Linux para conexiones seguras de una LAN a Internet 12. por ejemplo. expulsi´n o o la b´squeda de un archivo. si ´ o consideramos que tenemos tres dump: el primero de nivel 0. para leer el tercer archivo de la cinta. 12. Un nivel de dump de 0 significa una copia de seguridad completa.

comprimiendolo. a o a Si por ejemplo queremos hacer un backup de: /dev/hda1. Desafortunadamente. podemos hacer lo siguiente: #dump -O -f . u Configura el tama˜o del bloque de dump a tam bloque. necesitaremos ejecutar dump por cada sistema de archivos. nos dijo la siguiente frase. Junio 2005.Cap´ ıtulo 12./dev/hda3 | #dump -Ouf ./dev/hda6 | #mt -f /dev/nst0 rewind #mt -f /dev/nst0 eject gzip gzip gzip gzip --fast --fast --fast --fast -c -c -c -c > > > > /dev/st0 /dev/st0 /dev/st0 /dev/st0 Jose Antonio Escart´ Vigo. donde n es un n´mero entre 0 y 9. al mismo tiempo. Puesto que dump crea su salida como un gran archivo independiente. Uso de dump para hacer backup de un sistema entero La utilidad dump trabaja haciendo un archivo de un sistema de archivos. Si hay m´s datos sobre los que u a hacer dump. que espacio de cinta. Especifica una localizaci´n (archivo) para el archivo dump resultado. Lo mejor es realizar la poca atractiva tarea de verificar las copias de seguridad sobre una base normal. Es tedioso y nada divertido. dump muestra un s´ ımbolo del sistema pidiendo que se inserte una cinta nueva. Durante mis estudios en la FIB (Facultad de Inform´tica de Barcelona) coincid´ con varios profesores a ı que eran. podemos almacenar varios dumps en una sola cinta mediante el uso de un dispositivo de cinta sin rebobinado autom´tico. “La primera tarea de un administrador de sistemas es hacer copias de seguridad. /dev/hda5 y /dev/hda6. se considera peligroso hacer dump de sistema de archivos que est´n e en uso. el cual se mide en kilobytes. Herramientas de seguridad En el cuadro 12./dev/hda5 | #dump -Ouf . Alex Ramirez. Y grabarlo en /dev/nst0. muy buenos administradores de sistemas.8 se muestran los par´metros m´s usuales del comando dump: a a 209 Par´metro a -n -b <tam_bloque> -B <cuenta> -f <archivo> -u -d <densidad> -s <tam> Cuadro 12. ın . Actualiza el archivo /etc/dumpdates despu´s de un dump con ´xito. s´lo o se hechan de menos cuando nadie las ha hecho”. Para asegurarse de que no estan en uso. /dev/hda3. e est´ informaci´n est´ en el archivo /etc/fstab. hay que desmontar el sistema de archivos primero. otra soluci´n factible es el uso de a o DVDs grabables. El tama˜o (tam) de la cinta en pies. n Si hacemos copias de archivos muy grandes. Primero tenemos que decidir sobre qu´ sistemas de archivos vamos a hacer la copia./dev/hda1 | gzip --fast -c > /dev/st0 Hay que tener cuidado con dump./dev/hda1 | #dump -Ouf . La verificaci´n se hace comprobando que el programa restore puede leer o completamente la copia y extraer los archivos de ella. debemos ejecutar los siguientes comandos: #mt -f /dev/nst0 rewind #dump -Ouf . n Para colocar el backup sobre una cinta. muy poca gente se puede permitir el lujo de desmontar un sistema el tiempo necesario para hacer una copia de seguridad. al usar un tama˜o de bloque mayor n aumentar´ el rendimiento. Las copias de seguridad.8: Par´metros del comando dump a Descripci´n o El nivel de dump. nadie quiere hacerlas y por eso nos pagan a nosotros para que las hagamos. Si el sistema entero contiene varios sistemas de archivos. comprimiendo los archivos dump. e e La densidad de una cinta en bits por pulgada. Y uno de ellos. a Especifica el n´mero (cuenta) de registros por cinta. o podemos escribirlo en un dispositivo de cinta. pero muchos administradores de sistemas perdieron su trabajo despu´s de copias de seguridad err´neas (y no queremos ser uno e o de ellos). Podemos o hacer el archivo dump como un archivo normal que reside en otro sistema de archivos.

puede recrear un sistema de archivos vac´ y restaurar todos los archivos y directorios del archivo dump. Junio 2005. #mke2fs /dev/sda1 #mount /dev/sda1 /home #cd /home #restore -rf /dev/st0 12. Si no proporciona n esta informaci´n. Aunque restore es una herramienta de l´ ınea de comandos. o e Y para un restore completo desde la cinta /dev/st0. Por defecto es /tmp. ın . o a Lee un dump del archivo nom archivo. por un fallo de disco). o Para instalar el m´dulo de copias de seguridad ejecutaremos un apt: o #apt-get install webmin-fsdump Este m´dulo permite hacer backups de: o Sistemas EXT2 Sistemas EXT3 Archivos TAR Jose Antonio Escart´ Vigo.9 muestra las opciones de l´ ınea de comandos de la utilidad restore. Cuadro 12. podemos utilizar la herramienta a de configuraci´n por web: Webmin. o En el caso de un error. a e a Reconstruye un sistema de archivos. La utilidad leer´ el contenido del directorio a de la cinta y nos dar´ una interfaz parecida a la shell en la cual nos podemos mover a entre los directorios y se˜alar los archivos que queramos. ıo Configura el tama˜o del bloque de dump a tam bloque kilobytes. La opci´n verbal. reintenta autom´ticamente en lugar de preguntar al usuario a si quiere probar de nuevo. en el caso de que pierda todo un sistema de archivos (por ejemplo. interfaz Webmin o a Para realizar de una forma mucho m´s simple las copias de seguridad. sustituimos la unidad y lo recrear ayudandonos con mke2fs. Opci´n o -i -r -b tam_bloque -f nom_archivo -T directorio -v -y Un restore t´ ıpico podr´ ser el siguiente: ıa #restore -ivf /dev/st0 Donde tenemos el archivo dump en /dev/st0. Configuraci´n gr´fica de backups. Este modo es util para recuperar archivos individuales.5. Especifica el espacio de trabajo temporal (directorio) para el restore. si perdemos el sistema de la unidad SCSI /dev/sda1 que contiene /home.210 Uso de restore Servidor Linux para conexiones seguras de una LAN a Internet El programa restore lee los archivos dump y extrae archivos y directorios individuales de ellos. restore ir´ al dump y los n a restaurar´. especialmente a ´ si no est´mos seguro en qu´ directorio est´n. restore se la pedir´.4. visualizaremos cada paso que tome restore y entraremos en una sesi´n interactiva donde decidiremos qu´ archivos se restauran.9: Opciones del comando RESTORE Descripci´n o Activa el modo interactivo de restore. muestra cada paso del restore. e El cuadro 12. ofrece un modo interactivo muy intuitivo que le mueve a trav´s de la estructura de directorios de la cinta.

Lo podemos instalar con un apt: #apt-get install k3b Y para ejecutarlo introduciremos el comando: #k3b Figura 12.2: Programa K3B para grabar CDs y DVDs Jose Antonio Escart´ Vigo. Herramientas de seguridad 211 Figura 12. Junio 2005.Cap´ ıtulo 12. K3B: Grabaci´n de CDs y DVDs o Si queremos guardar las copias en CDs o DVDs.1: M´dulo Webmin para realizar Backups del sistema o 12. nos resultar´ muy util una interfaz gr´fica simple e a ´ a intuitiva. como la que nos ofrece el programa K3B basado en el entorno KDE.5.5. ın .

.

Configurado correctamente puede hacer una doble comprobaci´n de las o reglas de nuestro cortafuegos y proporcionarnos una protecci´n adicional para los servidores de aplicaci´n. los n´meros de puertos. a u Tambi´n existen otras tecnolog´ emergentes que combinan el concepto de detecci´n de intrusi´n y e ıas o o cortafuegos o realizan una acci´n posterior m´s all´ de la pura detecci´n. El cortafuegos nos proteger´ de muchos a ataques externos. cuando el atacante se encuentra en la red local puede hacer muy poco. basado en firmas IDS basado en actividad an´mala o IPS: IDS que responde a las alertas con acciones autom´ticas a En las siguientes secciones se explican en detalle. Intrusion Detection System) son b´sicamente sniffers o a modificados que pueden ver todo el tr´fico de la red e intentan detectar un tr´fico potencialmente da˜ino. permitiendo la introducci´n de tr´fico no deseado en nuestra red. o 13. Existe otra forma de realizar una detecci´n de intrusi´n en el nivel del sistema comprobando la inteo o gridad de los archivos clave y asegur´ndose de que no se ha realizado ning´n cambio en dichos archivos. sin embargo.1. 13. a La forma principal de conseguirlo es examinando el tr´fico de entrada e intent´ndolo comparar con a a una base de datos de actividades da˜inas conocidas denominadas firmas.1. a a n alert´ndonos de ello cuando aparezca. los cortafuegos normalmente dejan pasar alg´n tr´fico de aplicaci´n que puede u a o ser peligroso.Cap´ ıtulo 13 Sistemas de detecci´n de intrusiones o Los Sistemas de detecci´n de intrusiones (IDS. o o Aunque es util para protegernos contra ataques externos. se env´ a los a ıa servidores internos provocando un tr´fico potencialmente da˜ino. La mayor´ de los tipos de ataques tienen una apariencia muy distintiva a nivel TCP/IP. Un NIDS puede comprobar dicho tr´fico a n a y marcar los paquetes sospechosos. Un IDS puede ıa definir ataques bas´ndose en las direcciones IP. Lo que llega a los puertos del cortafuegos. una de las ventajas principales de un NIDS ´ es cazar los ataques y la actividad sospechosa de or´ ıgenes internos. y est´ permitido por las reglas. el contenido y cualquier n´mero a u u de criterios. .1. Los cortafuegos pueden e estar mal configurados. Esta utilizaci´n de las firmas es n o muy similar a la forma en que funcionan los programas antivirus. Network Intrusion Detection System) puede protegero o nos contra los ataques que entran a trav´s del cortafuegos hasta la LAN Interna. o a a o Esta secci´n esta basada en el libro [How05]. Tipos de IDS Existen tres tipos diferenciados de IDS: NIDS: IDS de red. NIDS (Network Intrusion Detection System) Un sistema detecci´n de intrusi´n de red (NIDS. Incluso cuando o a funcionan correctamente.

13. a u Adicionalmente. estos sistemas de nueva generaci´n registran los niveles normales para distintos tipos de o actividad en nuestra red. ´stos se producen cuando se dispara una e alerta aunque la actividad que est´ marcando es normal y permitida en nuestra LAN. Pueden ser desde a un administrador de sistemas contrariado.1. Esto puede realizarse trabajando con un cortafuegos o a con un enrutador. que s´lo pueden captar una actividad da˜ina cuando se define a o n expl´ ıcitamente. Si los piratas inform´ticos son suficientemente furtivos y h´biles utilizar´n protocolos a a a usados en nuestra LAN y no activar´n este tipo de sistemas. A medida que esta tecnolog´ madure y se haga m´s inteligente. o a Podemos pensar en los NIDS y en los cortafuegos como dispositivos de seguridad complementarios. Si observa una s´bita oleada de tr´fico FTP. Por mucho a que nos guste pensar que nuestros compa˜eros no van a hacer nada para da˜arnos.3. 13. Al principio. a a As´ mismo se tarda mucho en que un IDS de detecci´n de anomal´ desarrolle un modelo preciso de ı o ıas la red. una gran ventaja es que no tiene que actualizar firmas continuamente. nos avisar´. escribiendo reglas personalizadas en el momento que se detecta el problema. a Sin embargo. puede ser el “sistema de alarma” de nuestra red. Ubicaci´n del NIDS o Para elegir la ubicaci´n del NIDS hay que valorar el grado de interoperabilidad con el resto de nuestras o protecciones de red. todav´ est´ muy lejos de poder ıa o ıa a proporcionar el an´lisis y el juicio de una persona. Jose Antonio Escart´ Vigo. Intrusion Prevention o o System) se est´ publicitando como la soluci´n para la seguridad de las empresas. Las estad´ o a ısticas demuestran que un setenta por ciento de los incidentes en cr´ ımenes inform´ticos provienen de un origen interno. Con un NIDS. IPS (Intrusion Prevention System) Un nuevo tipo de NIDS denominado Sistema de prevenci´n de intrusi´n (IPS. un m´dulo gratuito para el NIDS o o Snort. estos tipos de sistemas de detecci´n de intrusi´n pueden ser enga˜ados por alguien que o o n conozca bien la red. a a u Un ejemplo de IPS de libre distribuci´n es Inline Snort de Jed Haile. ın . un m´dulo gratuito o o o para el NIDS Snort. Uno protege nuestro per´ ımetro y el otro nuestro interior. el sistema generar´ tantas alertas que es casi in´til. IDS (Detecci´n de actividades an´malas) o o En lugar de utilizar firmas est´ticas. El hecho es que cualquier sistema que dependa al cien a por cien de una m´quina y de su software. Existen varias posibilidades y cada una tiene distintas ventajas e inconvenientes. probablemente se convierta en una forma muy popular ıa a de detectar intrusiones. Junio 2005. un empleado descuidado o hasta la se˜ora de la limpieza. el cerrojo de la puerta principal y el sistema de seguridad de nuestra red. Un ejemplo de IDS basado en actividades an´malas y de libre distribuci´n es Spade.214 Servidor Linux para conexiones seguras de una LAN a Internet S´lo puede ver el tr´fico que lo atraviesa desde el exterior y son ciegos respecto a la actividad de la LAN. a veces no es el caso.2.2. Aunque esta nueva tecnolog´ se encuentra en una constante evoluci´n. tarde o temprano podr´ ser burlado por alg´n intruso. n n los intrusos internos no siempre son piratas inform´ticos que trabajan por la noche. ı Bien ajustado.1. 13. El problema con este u a a tipo de sistemas es que son muy propensos a los falsos positivos. Hay una buena raz´n para vigilar nuestro tr´fico interno de red. podemos captar este tipo de actividad as´ como otros problemas en cuanto se producen. Este tipo de sistemas a o responder´n a las alertas a medida que se generen. por ejemplo una a persona que est´ descargando un archivo particularmente grande activar´ la alarma. El n simple hecho de descargar un archivo o de abrir un archivo adjunto de un mensaje de correo electr´nico o puede cargar un troyano que crear´ toda una brecha en nuestro cortafuegos para todo tipo de fechor´ a ıas. bloqueando e interrogando la actividad de las direcciones IP sospechosas o incluso contraatacando al sistema ofensivo.

´ o o n Las causas m´s comunes de los falsos positivos se describen en los siguientes apartados.rules. Lo bueno es que capturar´ todos los ataques tanto a los servidores p´blicos como a a u la LAN interna. debido al tr´fico de ataque general subyacente. a como MySQL. Junio 2005. 13. As´ mismo. podemos detectar la actividad interna de otros usuarios (como la actividad entre estaciones de trabajo o el uso il´ ıcito de un programa). Sin embargo. al situarlo entre el sensor ISP y el u ı cortafuegos. La mayor´ de los sistemas de detecci´n de intrusi´n de red tienen ıa o o grandes bases de datos predeterminadas con miles de firmas de posibles actividades sospechosas. Tambi´n refuerza el cortafuegos.rules o reglas relacionadas con la administraci´n de conexiones. El problema de los falsos positivos de NIDS Uno de los problemas principales con los sistemas de detecci´n de intrusi´n es que suelen generar o o muchos falsos positivos. necesitaremos la capacidad de reflejar todos los puertos sobre un puerto monitor para poder permitir al IDS escuchar todo el tr´fico LAN. siempre que tengamos el hardware y el tiempo necesario para hacerlo. Una forma de hacerlo es e a a reduciendo el n´mero de firmas a un peque˜o n´mero que s´lo se activen si el host est´ realmente u n u o a comprometido. se pude utilizar un IDS para probar un cortafuegos y comprobar lo que permite pasar. a Todas las formas puede ser v´lidas para utilizar un IDS y no hay raz´n para que no podamos seguir a o las tres. Aunque todas ellas puedan ser alertas v´lidas. detectando una actividad sospechosa que de alguna manera ha e conseguido pasar los filtros del cortafuegos. As´ mismo. va a buscar todo lo que sea ligeramente inusual. cualquier IP p´blica es atacada de forma aleatoria todos los d´ a u ıas. web-iis. Al escuchar el cable local. por ejemplo. Lo malo es que no podr´mos ver ning´n tr´fico interno y el volumen general de las e u a alertas puede ser bastante alto. puede crear un cuello de botella y un punto de errores para nuestro tr´fico de red. ¿c´mo podemos saber qu´ alertas son s´lo gusanos que est´n atacando a nuestro o e o a servidor y qu´ alertas est´n realmente avis´ndonos de un intruso real?. es que las alertas de estos sistemas se ignoran a menudo debido a su o falta de eficacia. con poco esfuerzo y utilizando las t´cnicas descritas en este cap´ e ıtulo un IDS puede convertirse en una herramienta util. cuando establecemos un NIDS con sus configuraciones predeterminadas. Generalmente. reglas espec´ ıficas a las aplicaciones que se est´n ejecutando en el host. Un falso positivo se produce cuando el sistema genera una alerta bas´ndose a en lo que cree que es una actividad da˜ina o sospechosa pero en realidad es un tr´fico normal en esa n a LAN. Existen otras muchas fuentes de falsos positivos. En el segmento DMZ : Podemos colocar un sensor Snort en la DMZ para registrar la actividad que entra en los servidores p´blicos.Cap´ ıtulo 13. El problema de esta configuraci´n o es ordenar todas las alertas. Entre el ISP y el cortafuegos: Esta configuraci´n filtrar´ todo el tr´fico entrante y saliente de la o a a LAN y DMZ. Un NIDS con una instalaci´n predeterminada puede generar cientos de falsos o positivos en un solo d´ algo que puede conducir a un sensaci´n de desesperaci´n en el administrador ıa. detr´s del cortafuegos: Es el lugar m´s com´n. dependiendo de la configuraci´n de nuestra red y o de su nivel de actividad. si nos encontramos a ı en una LAN conmutada. a Jose Antonio Escart´ Vigo. a Igual que en el ejemplo anterior. o 3. De hecho. o o del sistema. por lo que a a debemos estar preparados para realizar muchos ajustes en este ´rea. Sistemas de detecci´n de intrusiones o 1. ın . Sin embargo. 215 En la red LAN local. ofrece la mejor protecci´n frente a a u o a las amenazas externas e internas. es buena idea supervisarlos con un IDS. Como esos servidores son los m´s expuestos y normalmente repreu a sentan recursos valiosos. se puede probar a reducir las alertas y dejar s´lo las que realmente o van a mostrar alg´n problema para este segmento. a 2. La reacci´n normal. Los suministradores de IDS no tienen forma de saber la apariencia de nuestro tr´fico de red. Reaccionar ante ello intentando localizar dichas alertas ser´ excesivo y contraproducente. por lo que lo a incluyen todo.3. en lugar de en la versi´n electr´nica de la ni˜a del exorcista. este sistema generar´ muchas alertas basadas en el tr´fico de red de Windows. con el nivel de ataque de a tr´fico general actual en Internet. ıa Por lo tanto.

a n Cadenas largas de autenticaci´n b´sica o a Este tipo de alerta busca las cadenas de registro web largas. bien por pol´ ıtica formal o simplemente sin imponer las pol´ ıticas existentes. sin embargo. sospechosa. Intentan ejecutar diversas actividades por la red. virus. a Actividad de usuario La mayor´ de los sistemas de detecci´n de intrusi´n de redes se configuran para marcar diversas ıa o o actividades de usuario peligrosas. o As´ la IP del esc´ner seguir´ protegida contra un ataque cuando no est´ escaneando y nuestra base de ı. Un NMS en una red grande puede generar a miles de alertas por hora. hoy en d´ muchas webs llenan este campo de informaci´n. Podr´ ıamos desactivar las alertas que reconocen esta actividad. La teor´ es que el uso de bases de datos no deber´ de tener demasiada actividad administrativa ıa ıa en curso y ello podr´ ser se˜al de que alguien est´n intentando sabotearla. mensajer´ instant´nea. o Una mejor manera de controlar esta situaci´n es apagar nuestro IDS durante los escaneados programados. Aunque. muchas bases ıa n a Jose Antonio Escart´ Vigo. Sin embargo. estas firmas tambi´n pueden ser activadas e por una actividad normal de nuestra red.216 Servidor Linux para conexiones seguras de una LAN a Internet Actividad del sistema de supervisi´n de red o Muchas empresas utilizan sistemas de supervisi´n de redes (NMS. Una vez m´s. Sin embargo. De hecho. incluyendo la infecci´n de nuevas m´quinas y el env´ en masa de mensajes de correo electr´nico. gusanos y troyanos viven para la red. como compartir archivos punto a punto. etc. deber´ ıamos comentar estas reglas para no rellenar los registros con alertas innecesarias. Junio 2005. puede viajar c´digo da˜ino por nuestra red y pasar inadvertido para el o n NIDS. aunque exista un tr´fico potencialmente da˜ino. pero pueden tambi´n u e utilizar pings y pruebas m´s intrusivas. a a e datos de alertas no se cargar´ con datos de nuestra actividad de escaneado. Actividad de autenticaci´n de base de datos o Algunos sistemas de detecci´n de intrusi´n de red buscan actividades administrativas sobre bases de o o datos. o a ıo o Estas actividades las puede detectar un NIDS. si se ha establecido en el IDS marcar este tipo de actividad. Network Monitorig System) como o HP OpenView o WhatsUp Gold para tener registros de la actividad de sus sistemas. Escaneado de vulnerabilidad y esc´neres de puertos de red a Si estamos realizando una prueba de vulnerabilidad de red o un escaneado de puertos utilizando programas como Nessus o Nmap. a ´ Este ser´ un buen momento para imponer o crear pol´ ıa ıticas contra su utilizaci´n ya que podemos o demostrar cu´nto ancho de banda y tiempo consumen. a Aunque si pretendemos seguir permitiendo esta actividad. si no consideramos estas alertas importantes. nuestro NIDS se volver´ loco cada vez que se ejecuten dichos programas. Tambi´n podemos eliminar e este tipo de alertas de la base de datos de nuestro NIDS. si desactivamos la ıa. o al menos. Estos programas generan mucha actividad de sondeo y descubrimiento en nuestra red. ıa a Sin embargo. Normalmente utilizan SNMP o alg´n protocolo similar para obtener el estado. Comportamientos parecidos a los troyanos o gusanos Normalmente. sin mencionar las implicaciones de seguridad. a n a probablemente exista una alerta para la mayor´ de los complementos del programa Nessus. la mayor´ de los sistemas de detecci´n a ıa o considerar´n hostil esta actividad. algunos ataques utilizan este m´todo para e conseguir un desbordamiento de memoria y obtener acceso al sistema. ıa a podemos deshabilitar el informe de la direcci´n IP de nuestro servidor Nessus o Nmap dentro del NIDS. o regla para evitar falsos positivos. ın . a Estos programas est´n dise˜ados para hacer exactamente lo que hacen los piratas inform´ticos. De forma predeterminada. si permitimos este tipo de actividad. Se puede evitar haciendo que nuestro NIDS ignore la actividad desde y hacia la IP del NMS. para evitar vernos agobiados por los falsos positivos. se mostrar´n como alertas en nuestro registros.

o Jose Antonio Escart´ Vigo. Tenemos que repasar los grupos de alertas con detalle. a Tambi´n nos proporcionar´ un conocimiento de c´mo est´ trabajando nuestra red y del tipo de tr´fico e a o a a que se est´ revisando. Si efectuamos desde una m´quina constantes e a sondeos SNMP por nuestra red o frecuentemente estamos iniciando sesi´n como administrador remoto.4. En algunos sistemas es relativamente f´cil marcar una alerta como falso positivo mientras que en otros podemos encontrarnos con a m´s dificultades. 13. 13. Junio 2005. La mayor´ de los sistemas de detecci´n agrupan las alertas en categor´ Es preciso examinar cada ıa o ıas. hay que ajustarlas al perfil de nuestra LAN. ´ 13. ın . aunque leg´ ıtima.3. a ´ Es preciso reservar un tiempo semanal para modificar las configuraciones IDS. pero existir´n algunas irrelevantes para nuestra red o que ıa a causen falsos positivos. generar´ muchas de estas alertas. es mejor desactivar esas alarmas. Configuraci´n apropiada del sistema o Si simplemente instalamos un IDS y lo activamos con una configuraci´n predeterminada. o Si vamos a ejecutar un IDS es mejor que nos tomemos el tiempo necesario para hacerlo funcionar correctamente. Tardar algunas horas a a en configurar nuestro sistema antes de activarlo puede ahorrarnos mucho tiempo y frustraci´n en el futuro. e o 13.Cap´ ıtulo 13. desearemos utilizar la mayor´ de las alertas basadas en Windows. al menos hasta que se estabilicen y tengan un uso normal. Algunos tienen alertas u que buscan la utilizaci´n de mensajer´ instant´nea o la utilizaci´n de software punto a punto. a Esta actividad. Tambi´n podemos excluir algunos hosts del examen. Obtener lo m´ximo del IDS a Para darnos cuenta del verdadero potencial de un sistema de detecci´n de intrusi´n necesitaremos o o seguir unas pautas antes y despu´s de la instalaci´n. incluso el IDS m´s meticulosamente configurado empezar´ a generar a a a alertas. a Si nuestras bases de datos est´n en constante desarrollo. pueden pasar d´ o semanas antes de descubrir los ıas intentos de intrusi´n. podemos desactivar con seguridad esas alertas. se tardan algunos meses antes de que un IDS est´ ajustado correctamente a e para enviar alertas utiles sobre una actividad procesable. Aunque reduzcamos el nivel de protecci´n proporcionado y podamos dejar sin protecci´n alguna m´quio o a na cr´ ıtica. grupo para comprobar si es relevante en nuestra red. las alertas pueden simplemente enviarse a un archivo de registro para una a a revisi´n posterior. Al principio. Ajuste del IDS Cuando ya se est´ ejecutando. r´pidamente o a nos inundar´n miles de alertas de falsos positivos. pero nos a e ahorraremos mucho tiempo y esfuerzo configur´ndolo cuidadosamente de antemano. podremos reducir r´pidamente el n´mero de falsos positivos a u que est´ produciendo el IDS. No debemos confora marnos con las configuraciones por defecto.4. esas las podemos desactivar. Sistemas de detecci´n de intrusiones o 217 de datos tienen trabajos en proceso y mucha actividad administrativa incluso si no se est´n consultando. Si no se supervisan diariamente. si nos tomamos el tiempo necesario para analizarlas y empezamos a desactivar las reglas que no nos importen en nuestra red. probablemente deberemos desactivar dichas a alertas. algo util para cualquier administrador de redes. podemos hacer el IDS m´s efectivo y merecer´ la pena asumir ese riesgo.1.2. Si hay un grupo de firmas basadas en Unix pero no tenemos ning´n sistema Unix.4. En su nivel m´s b´sico. algo que no es muy recomendable ya que requiere que el administrador revise o los registros. En general. Podemos ajustarlo despu´s de estar activo. Si ya o ıa a o tenemos sistemas que filtran estas actividades o las permitimos en nuestro sistema. Por ejemplo. o generaremos alertas que no merece la pena proteger. Herramientas de an´lisis IDS a Los sistemas de detecci´n normalmente ofrecen a los administradores varios m´todos de notificaci´n o e o de una alerta.4.

Junio 2005. sin contar con los que escriben reglas y otras partes del software. Existe mucha documentaci´n que puede ayudarnos a o aprender a hacer reglas (v´ase secci´n 13. e o Inline Snort que permite a Snort realizar acciones predeterminadas ante determinadas alertas.conf : Archivo de configuraci´n para un dispositivo de red concreto o /etc/snort/rules/* : Archivos de reglas Jose Antonio Escart´ Vigo. aunque con la adici´n del m´dulo Spade.8). ıble Snort personaliza reglas: Snort ofrece una forma f´cil para ampliar y personalizar el programa esa cribiendo nuestras propias reglas o firmas.conf : Archivo de configuraci´n por defecto o /etc/snort/snort. Existe una herramienta de libre distribuci´n para los sistemas de detecci´n a a o o de intrusiones denominada Analysis Console for Intrusion Database (ACIDlab.snort.1.<dispositivo>. puede ser molesto recibir correos varias veces al d´ As´ mismo.<host>. e o 13. a la persona apropiada o a siempre que se genere una alerta.2.org O consultar la informaci´n que podemos obtener en nuestro sistema Debian: o #apt-get install snort-doc 13. estos m´dulos o otros podemos consultar la web: a o o http://www. aunque ahora ya cuenta con 30 desarrolladores m´s en su equipo principal. lo o que permite poder analizar tr´fico en una red de 100 Mbps a una velocidad cercana al cable. las alertas de correo electr´nico no estar´n en ıa.5.5. incluso en un sistema bien ajustado. Instalaci´n o Para instalarlo simplemente realizaremos el apt del paquete: #apt-get install snort Los archivos importantes de snort son los siguientes: /etc/snort/snort.5. algo a bastante incre´ si pensamos lo que hace con cada paquete.conf: Archivo de configuraci´n para el host o /etc/snort/snort. para permitir un o an´lisis m´s profundo. e o 13. La mejor soluci´n para controlar las alertas IDS es insertarlas en una base de datos. Tambi´n existen versiones disponibles para Windows y otros sistemas operativos. e Ligero: Debido a que el c´digo se ejecuta de una forma eficiente. sin mencionar la cantidad de foros sobre el tema. Sin embargo. no requiere mucho hardware. Existen a muchos recursos disponibles para Snort y todos ellos son recursos gratuitos disponibles en Internet. IDS Snort (NIDS) Es una herramienta desarrollada por Martin Roesch. ı o a un formato en el que se puedan comparar con alertas pasadas o analizadas de otra forma. ın .9). Snort es principalmente un IDS basado en firmas. Caracter´ ısticas b´sicas a Libre distribuci´n: Snort es de libre distribuci´n y portable a casi cualquier sistema operativo o o Unix/Linux. v´ase secci´n 13. Para obtener m´s informaci´n sobre el programa. puede o o realizar una detecci´n de actividad de anomal´ Existen tambi´n otros m´dulos de complemento como o ıas.5.218 Servidor Linux para conexiones seguras de una LAN a Internet La otra alternativa es enviar un mensaje de correo electr´nico o una p´gina.

a Sin embargo..15:80 TCP TTL:64 TOS:0x0 ID:24732 IpLen:20 DgmLen:52 DF ***A**** Seq: 0x34B0D324 Ack: 0xB744B530 Win: 0x736 TcpLen: 32 TCP Options (3) => NOP NOP TS: 8837681 217975842 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 06/09-13:09:43... Jose Antonio Escart´ Vigo..149........ pero ıa ´ tambi´n hay usos para los dos primeros modos.....11:3516 -> 195..189.402225 195.. Evidenteu mente.............11:3516 TCP TTL:253 TOS:0x0 ID:0 IpLen:20 DgmLen:52 DF ***A**** Seq: 0xB744B530 Ack: 0x34B0D325 Win: 0x1974 TcpLen: 32 TCP Options (3) => NOP NOP TS: 217976284 8841673 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ ....0...168. Snort act´a como un sniffer..149. ın ...html (C) Copyright 1998-2004 Sourcefire Inc.0.. Sistemas de detecci´n de intrusiones o 219 13..0.......snort.. Modos de ejecuci´n o Snort se ejecuta desde la l´ ınea de comandos.......11:3516 TCP TTL:62 TOS:0x0 ID:47630 IpLen:20 DgmLen:52 DF ***A***F Seq: 0xB744B52F Ack: 0x34B0D324 Win: 0x1974 TcpLen: 32 TCP Options (3) => NOP NOP TS: 217975842 8827642 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 06/09-13:09:39......189.......3.........168....... 06/09-13:09:39.11:3516 -> 195.....15:80 -> 192...189. en tres modos diferentes: Sniffer de red Registro de paquetes IDS La mayor´ de los usuarios lo ejecutaran en este ultimo modo para obtener las ventajas de IDS. Si lo unico que necesitamos es un sniffer podr´ ´ ıamos utilizar Tcpdump o Ethereal (m´s completos). el modo sniffer de paquetes es bueno para asegurarse de que todo funciona correctamente y Snort esta viendo los paquetes.0.....3. es una conexi´n a una p´gina web desde el servidor: o a #snort -v Running in packet dump mode Initializing Network Interface eth0 --== Initializing Snort ==-Initializing Output Plugins! Decoding Ethernet on interface eth0 --== Initialization Complete ==-......5.....168......819445 195..........15:80 -> 192....433979 192...org/team. et al..... e Modo de sniffer de paquetes En este modo...... En este modo tenemos las siguientes opciones: Opci´n o -v -d -e Descripci´n o Imprime en la pantalla los encabezados de los paquetes TCP/IP en Ethernet Igual que la opci´n anterior pero adem´s imprime los datos de la capa de aplicaci´n o a o Igual que la opci´n anterior pero adem´s imprime la capa de enlace de datos o a Hay que incluir al menos el comando -v para utilizar el modo sniffer de paquetes.. mostrando el contenido sin filtrar en el cable. o La siguiente salida. ... Estos serian algunos ejemplos de su uso: #snort -v #snort -vde Pulsamos CTRL+C para salir y veremos un resumen de la sesi´n de escucha de la red..... Junio 2005...2 (Build 12) By Martin Roesch & The Snort Team: http://www.._ o" )~ ’’’’ -*> Snort! <*Version 2...Cap´ ıtulo 13.189...442220 192.168.....15:80 TCP TTL:64 TOS:0x0 ID:24734 IpLen:20 DgmLen:52 DF ***A***F Seq: 0x34B0D324 Ack: 0xB744B530 Win: 0x736 TcpLen: 32 TCP Options (3) => NOP NOP TS: 8841673 217975842 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 06/09-13:09:43.149..149......

se incluye un archivo predeo Jose Antonio Escart´ Vigo. Si tanto los anfitriones de a a destino como de origen son locales.000%) IPv6: 0 (0. ın . o Snort utiliza la direcci´n de origen como nombre del directorio en el que se colocar´n los datos de los o a paquetes. Esto hace que Snort coloque las direcciones bas´ndose en la direcci´n IP del paquete a o externo a la LAN. para poder ver con m´s facilidad el tr´fico ajeno a la red.168.0. Snort registra paquetes por direcci´n IP y a o crea un directorio independiente para cada IP registrada. a Podemos utilizar otra configuraci´n para indicarle a Snort que registre los paquetes de la LAN en la o que se encuentra con el comando: -h homenet. Si se realiza as´ el registro. e o apropiado para su lectura posterior con un sniffer de paquete (como Ethereal o Tcpdump).254. S´lo necesitamos un modificador adicional a la declaraci´n anterior para que Snort entre en este o o modo.000%) ========================================================================== Breakdown by protocol: TCP: 247 (93.0.0/24 Esta declaraci´n especifica una red interna en el rango comprendido entre 192. no es necesario especificar la red local al utilizar el modificador -b ya que registrar´ los ı a archivos secuencialmente en un gran archivo. Tambi´n facilita el an´lisis con herramientas a e a m´s complejas.521%) EAPOL: 0 (0. Este archivo determina la configuraci´n de Snort. Snort los coloca en el directorio con el n´mero de puerto superior.168.916%) UDP: 12 (4. Si estamos registrando tr´fico en una red local a grande con muchas direcciones.000%) ARP: 4 (1. El modificador: -c configfile.000%) ========================================================================== Action Stats: ALERTS: 0 LOGGED: 0 PASSED: 0 ========================================================================== Snort exiting Modo de registro de paquetes Este modo es similar al anterior pero nos permite registrar paquetes “olfateados” al disco para su utilizaci´n y an´lisis futuros. Junio 2005. a Por lo tanto. algo necesario si vamos a buscar sobre una gran cantidad de datos de red capturados. Por ejemplo: #snort -vde -l /var/log/snort Crear´ archivos de registro en el directorio /var/log/snort. cuando registramos alertas de intrusi´n es importante saber con facilidad de d´nde est´ provio o a niendo el tr´fico de alertas marcado.000%) DISCARD: 0 (0.220 Servidor Linux para conexiones seguras de una LAN a Internet ========================================================================== Snort received 263 packets Analyzed: 263(100. u aparentemente para recoger el host de conexi´n sobre el host servidor. simplemente lo o a ejecutamos con los mismos comandos que en el modo sniffer de paquetes. pero a˜adiendo un modificador n adicional: -l logpath. o Tambi´n podemos utilizar la opci´n: -b para registrar todos los datos en un solo archivo binario. el comando para el modo de registro de paquetes ser´: a #snort -vde -l /var/log/snort -h 192. le indica a Snort que utilice un archivo de configuraci´n para dirigir o los paquetes que registra.1 y 192.563%) ICMP: 0 (0.000%) OTHER: 0 (0. Para ejecutar Snort en el modo de registro de paquetes.168.000%) IPX: 0 (0. donde homenet es el rango de direcciones IP en la notaci´n o de barra inclinada. reemplazando logpath con la ruta de acceso en la que deseamos que Snort registre los paquetes (tiene que ser un directorio).0. a Modo de detecci´n de intrusi´n (IDS) o o Este modo lo utiliza Snort para registrar paquetes sospechosos o que merecen una consideraci´n eso pecial. esto puede escaparse r´pidamente a nuestro control.000%) Dropped: 0(0. Este m´todo es mucho m´s r´pido para registrar redes de e a a muchos registros o si Snort funciona en un m´quina lenta.

1: Opciones de alerta del comando Snort Descripci´n o Informaci´n completa de la alerta. Podemos especificar los formatos Syslog dentro del o archivo de configuraci´n y enviar ah´ las alertas incluyendo el modificador -s. Por lo tanto. Syslog. a El comando para ejecutar Snort en el modo IDS es: #snort -h 192. Registra s´lo la informaci´n de encabezado del paquete y el tipo de a o o alerta.0. si escribimos: #snort -de -l /var/log/snort -h 192. Este es un servicio. Cuando intentamos comparar todos los paquetes con las firmas.1 incluye una lista con las opciones que podemos usar desde la l´ ınea de comandos. o n o o SMB : Env´ las alertas al servicio de men´ emergente de Windows.0/24 -c /etc/snort/snort. obligar a Snort a escribir tambi´n las e alertas en la pantalla puede causar que algunos paquetes se omitan. Para esta opci´n hay que ıa u o descargar las fuentes y compilarlas con la opci´n enable-smbalerts. tendremos que decidir el detalle y el formato de la alerta. Tambi´n podemos utilizar el modificador -b si deseamos registrar un archivo binario para un e an´lisis posterior con un programa independiente. Sistemas de detecci´n de intrusiones o terminado. o Hay que tener en cuenta que no hemos utilizado el modificador -v para ejecutar Snort en modo IDS. dentro del o a archivo de configuraci´n y en tiempo de compilaci´n. a e Si omitimos el modificador -l.4. ın .0. PostgreSQL. Modos de alerta Ahora que ya estamos registrando los paquetes de alerta. a Modo r´pido. SMB y opciones de salida de bases de datos.168. para que refleje nuestro perfil de red.168. incluyendo datos de aplicaci´n. Es util para redes muy r´pidas pero si se necesita m´s informaci´n forense hay ´ a a o que utilizar el modificador full. Estas deben configurarse en el tiempo de a compilaci´n con modificadores a˜adidos a la declaraci´n de configuraci´n. Estas e opciones no utilizan el modificador -A desde la l´ ınea de comandos sino m´dulos de salida independientes o ´ que ofrecen una variedad m´s amplia de opciones de salida. Tambi´n podemos omitir el modificador -e si no necesitamos registrar las capas de enlace de datos.Cap´ ıtulo 13. o Para ejecutar Snort con esta configuraci´n: #snort -c /etc/snort/snort. lo que nos ayudar´ a consolidar registros de red en un lugar unico. ıan Syslog: Env´ alertas al servidor Syslog de Unix. pero debemos realizar cambios antes de ejecutarlo. Snort de forma predeterminada utilizar´ /var/log/snort como su directorio a de registro. o o Jose Antonio Escart´ Vigo.conf 221 Ejecutaremos Snort en modo IDS utilizando el archivo de configuraci´n snort.0/24 -c /etc/snort/snort. Es el modo predeo o terminado de alerta y se utilizar´ cuando no especifiquemos nada. o ı Snort admite directamente cuatro tipos de salida a base de datos: MySQL. utilizando el modificador -A. especialmente en redes con mucho tr´fico. Junio 2005.conf -M workstations o Donde workstations es el nombre del host Windows al que se env´ las alertas.conf 13. Reenv´ la alerta a un socket ıa Desactiva las alertas. Opci´n o -A full -A fast -A unsock -A none Tambi´n podemos utilizar las opciones. Oracle y unixODBC.5. El cuadro 13. Este servicio dificulta a ´ a un intruso borrar los rastros de la intrusi´n. El m´dulo de salida de base de datos requiere: par´metros y configuraciones. Cuadro 13. que captura y guardar archivos ıa de registro.conf predeterminado.

222

Servidor Linux para conexiones seguras de una LAN a Internet

13.5.5.

Optimizar la configuraci´n o

Ahora que ya sabemos c´mo funciona Snort y conocemos los comandos b´sicos, tendr´mos que editar o a e el archivo de configuraci´n para convertirlo en un IDS fiable y obtener los resultados deseados. Muchas o l´ ıneas del archivo contienen informaci´n util para aclarar cada una de las partes de la configuraci´n. o ´ o Para definir el archivo de configuraci´n seguiremos los siguientes pasos: o 1. Establecemos nuestra red local : Tendremos que indicarle a Snort las direcciones de nuestra red local para que pueda interpretar correctamente los ataques provenientes del exterior. Para ello utilizaremos la siguiente declaraci´n: o var HOME_NET addresses Donde debemos de reemplazar addresses con el espacio de direcciones de nuestra red local. Si existen m´ltiples redes, podemos introducirlas todas separ´ndolas por comas. Podemos incluso introducir u a un nombre de interfaz y utilizar la direcci´n IP y la m´scara de red asignada a dicha interfaz como o a nuestro HOME NET. El formato para hacerlo es: var HOME_NET $ interfacename Donde debemos reemplazar interfacename con la interfaz de red donde est´ escuchando Snort. a Tambi´n podemos definir nuestras redes externas con una declaraci´n similar a HOME NET, reeme o plaz´ndola por EXTERNAL NET. La entrada predeterminada para ambas variables es any. Es a recomendable definir la red interna pero dejar la red externa a any. 2. Configuramos los servidores internos: En el archivo de configuraci´n podemos definir nuestros sero vidores de red, incluyendo web, mail, dns, telnet, . . . As´ limitaremos los falsos positivos para los ı, servicios en esas m´quinas. a Tambi´n podemos especificar los n´meros de puertos para dichos servicios, entonces si nuestros e u usuarios usan ese puerto, no se registrar´ ninguna alerta. Todas estas opciones de configuraci´n a o pueden ayudarnos a reducir el n´mero de falsos positivos que obtenemos y alertarnos s´lo con u o informaci´n que tiene valor real. o 3. Configuramos los decodificadores y procesadores previos de Snort: Diversos modificadores y configuraciones controlan los decodificadores y procesadores previos de Snort en el archivo de configuraci´n. o Estas rutinas se ejecutan en el tr´fico antes de pasar por ning´n conjunto de reglas, normalmente a u para formatearlas correctamente o para tratar con un tipo determinado de tr´fico que sea m´s f´cil de a a a procesar directamente en lugar de utilizar los conjuntos de reglas. Un ejemplo de este tipo de tr´fico a ser´ los paquetes fragmentados-defragmentados. Muchos ataques intentan ocultar su verdadera ıan naturaleza fragmentando los paquetes, en esos casos, esta opci´n es muy valiosa. o Otro decodificador es para los paquetes de escaneado de puertos. Como ´stos suelen entrar en grupos e y con un gran volumen, es mejor procesarlos directamente en masa en lugar de intentar comparar cada paquete con una firma. Esto hace que el IDS sea m´s seguro ante una denegaci´n de servicio. a o Las configuraciones predeterminadas para estos subsistemas son muy generales, a medida que experimentemos con Snort, podremos ajustarlas para obtener un mejor rendimiento y resultados. 4. Configuramos los m´dulos de salida: Es un paso importante si deseamos utilizar una base de datos o para controlar las salidas de Snort. Como ya hemos visto anteriormente, existen varios m´dulos de o salida que podemos utilizar, dependiendo del formato en el que deseemos los datos: Syslog, Database y el nuevo m´dulo denominado Unified, que es un formato binario gen´rico para exportar datos a o e otros programas.

Jose Antonio Escart´ Vigo, Junio 2005. ın

Cap´ ıtulo 13. Sistemas de detecci´n de intrusiones o El formato general para configurar los m´dulos de salida es: o output module_name: configuration options

223

Siendo module name bien alert syslog, database o alert unified dependiendo del m´dulo que cargueo mos. Las opciones de configuraci´n para cada m´dulo de salida son las siguientes: o o Syslog: output alert_syslog: LOG_AUTH LOG_ALERT output alert_syslog: host= hostname:port, LOG_AUTH LOG_ALERT Donde hostaname y port son la direcci´n IP y el puerto de nuestro servidor Syslog. o Database: output database: log, database_type, user= user_name password= password dbname host= database_address Donde debemos reemplazar database type por una base de datos v´lida, user name por un a nombre de usuario v´lido en la base de datos y password por la contrase˜a asociada al usuario. a n La variable dbname identifica el nombre de la base de datos en la que se va a realizar el registro. Por ultimo, database address es la direcci´n IP del servidor que contiene la base de datos. ´ o No se recomienda intentar ejecutar Snort y la base de datos en el mismo servidor, suele provocar una bajada considerable del rendimiento del sistema. Unified : Es un formato binario b´sico para registrar los datos y usarlos en el futuro. a Los dos argumentos adminitidos son filename y limit: output alert_unified: filename snort.alert, limit 128 5. Personalizamos los conjuntos de reglas: El archivo snort.conf permite a˜adir o eliminar clases enteras n de reglas. En la parte final del archivo podremos ver todos los conjuntos de reglas de alertas. Podemos desactivar toda una categor´ de reglas comentando la l´ ıa ınea. Por ejemplo, podr´ ıamos desactivar todas las reglas icmp-info para reducir los falsos positivos del tr´fico ping o todas las a reglas NetBIOS si no tenemos m´quinas Windows en nuestra red. Tambi´n podemos encontrar a e disponibles conjuntos de reglas que se han ajustado para entornos espec´ ıficos.

13.5.6.

Clases de reglas

La forma m´s f´cil de limitar el tr´fico de las alertas es desactivar reglas que no se aplican en nuestro a a a sistema, esto lo podemos hacer entrando en la configuraci´n de Snort. El directorio /etc/snort/rules/ o contiene muchos archivos con la extensi´n .rules, cada uno de ellos contiene las reglas agrupadas por o categor´ ıa. Podemos deshabilitar toda una clase de reglas coment´ndola en el archivo de configuraci´n o podemos a o deshabilitar reglas individuales si queremos la protecci´n del resto de reglas de la clase. Para comentar o una regla concreta, la buscamos en los archivos .rules apropiados e insertamos un comentario delante de la l´ ınea de dicha regla. Hay que tener en cuenta que normalmente es mejor deshabilitar un sola regla que toda la clase, a no ser que ´sta no se aplique en nuestra configuraci´n. e o En el cuadro 13.2 podemos observar una lista con las clases de reglas m´s habituales en Snort y una a peque˜a descripci´n de las mismas. n o

Jose Antonio Escart´ Vigo, Junio 2005. ın

224

Servidor Linux para conexiones seguras de una LAN a Internet

Cuadro 13.2: Clases de reglas de Snort (I) Clase de reglas Descripci´n o attack-response.rules Son las alertas para paquetes de respuesta comunes despu´s de que un atae que haya tenido ´xito. Raramente se informan como falsos positivos y dee bemos dejarlas activadas en la mayor´ de los casos. ıa backdoor.rules Estas reglas son signos comunes de una puerta trasera o de un programa troyano en uso. Raramente son falsos positivos. bad-traffic.rules Estas reglas representan el tr´fico de red no est´ndar que normalmente no a a deber´ verse en la mayor´ de las redes. ıa ıa chat.rules Localizan transmisiones est´ndar para muchos programas conocidos de cona versaci´n. Si la conversaci´n se permite impl´ o o ıcitamente o expl´ ıcitamente estas alertas deben estar deshabilitadas. As´ mismo, hay que tener en cuenta ı que estas alertas no son una soluci´n milagrosa para las conversaciones y o no detectar´n todos los tipos de tr´fico de conversaciones. a a ddos.rules Busca tipos de ataques de denegaci´n de servicio distribuido est´ndares. En o a DMZ y WAN, estas alertas no sirven de mucho porque si se ha producido un ataque de este tipo probablemente lo sepamos en seguida. Sin embargo, pueden ser muy utiles dentro de una LAN para comprobar si tenemos una ´ m´quina zombi en otra red participando en un ataque de denegaci´n de a o servicio (DoS) sin saberlo. dns.rules Buscan algunos abusos est´ndar contra servidores DNS. Si no est´mos ejea a cutando un servidor DNS propio, podemos desactivarlas. dos.rules Similar al conjunto de reglas anterior. experimental.rules Est´n deshabilitadas de forma predeterminada. Generalmente se utilizan a s´lo para probar nuevas reglas hasta que se desplazan a otra categor´ o ıa. exploit.rules Estas reglas son para el tr´fico de abuso est´ndar, siempre habilitadas. a a finger.rules Estas reglas marcan el tr´fico que tiene que ver con los servidores finger. Si a no est´mos ejecutando ninguno de estos servidores, las podemos deshabilia tar. Sin embargo, este tipo de servidores normalmente se ejecutan ocultos al administrador del sistema, por lo que podemos dejarlas habilitadas, ya que no suelen generar falsos positivos. ftp.rules Igual que las reglas anteriores pero buscan abusos de FTP. Una vez m´s, a podemos dejarlas habilitadas aunque no tengamos servidores FTP ya que nos avisar´n de cualquier servidor FTP ilegal en el sistema. a icmp-info.rules Estas reglas registran el uso de los mensajes ICMP que cruzan la red, por ejemplo, los ping. A menudo producen falsos positivos, podemos desactivar toda la clase a no ser que deseemos estar pendientes del tr´fico ICMP a en nuestra red. Otra clase de tr´fico ICMP da˜ino conocido, icmp.rules, a n captura los escaneados de puertos y similares. icmp.rules Cubre el tr´fico ICMP sospechoso o da˜ino y es poco propenso a generar a n falsos positivos. Sin embargo, es posible que se activen en una red ocupada ejecutando muchos servicios de diagn´stico. o imap.rules Reglas correspondientes al uso del protocolo de acceso a mensajes desde internet (IMAP, Internet Message Access Protocol). info.rules Capturan mensajes de errores diversos: Web, FTP y otros servidores. local.rules En este archivo podemos a˜adir nuestras propias firmas o reglas personalin zadas para la red, el archivo est´ vac´ de forma predeterminada. a ıo misc.rules Reglas que no encajan en ninguna de las restantes categor´ ıas. multimedia.rules Registra el uso de software de v´ ıdeo. Si permitimos las aplicaciones de v´ ıdeo o utilizamos video-conferencia, debemos deshabilitar estas reglas.

Jose Antonio Escart´ Vigo, Junio 2005. ın

Cap´ ıtulo 13. Sistemas de detecci´n de intrusiones o

225

Clase de reglas mysql.rules

Netbios.rules

nntp.rules oracle.rules other-ids.rules

p2p.rules

policy.rules

pop3.rules porn.rules

rpc.rules

rservices.rules

scan.rules

shellcode.rules

smtp.rules

sql.rules

Cuadro 13.3: Clases de reglas de Snort (II) Descripci´n o Vigila el acceso del administrador y otros archivos importantes en una base de datos MySQL. Si no ejecutamos este tipo de base de datos, podemos deshabilitar estas alertas. As´ mismo, si nuestra base de datos MySQL est´ en ı a desarrollo, podr´ producirse muchos falsos positivos. ıan Esta clase de reglas nos alerta de diversa actividad NetBIOS en la LAN. Algunas de ellas son exploits evidentes. Sin embargo, otras, como las alertas de sesi´n NULL, pueden producirse normalmente en una LAN Windows. o Tendr´mos que jugar con esta secci´n para deducir cu´les son las reglas e o a apropiadas en nuestra LAN. Reglas relacionadas con el servidor de noticias. Si no ejecutamos noticias de red en los servidores, es mejor deshabilitar estas reglas. Reglas del servidor de base de datos Oracle. Si no tenemos un servidor de este tipo, las deshabilitamos. Estas reglas se relacionan con exploits en los IDS de otros fabricantes. Es muy probable que no tengamos ning´n otro NIDS en la LAN, pero si es u as´ hay que dejarlas habilitadas. ı Reglas que rigen el uso del software para compartir archivos punto a punto. Estas reglas crear´n alertas durante el uso normal de este software, si lo a permitimos, deberemos deshabilitarlas. Este archivo contiene diversas alertas relacionadas con toda la actividad permitida en la LAN, como Go-to-my-pc y otros programas. Debemos revisarlas y habilitar s´lo las que se aplican en nuestras pol´ o ıticas internas. Para servidores de correo, si tenemos un servidor de este tipo, hay que dejarlas habilitadas. Estas reglas son trampas rudimentarias para la exploraci´n web relacionada o con la pornograf´ No constituyen ni mucho menos un reemplazo para los ıa. buenos sistemas de filtrado de contenido. Esta clase controla las alertas de llamadas a procedimientos remotos (RPC). Aunque creamos no ejecutar ninguno de estos servicios, normalmente se activan como parte de otros programas, por lo que es importante tener cuidado con lo sucede en la LAN. RPC puede habilitar la ejecuci´n remota o de c´digo y normalmente se utiliza en los troyanos y exploits. o Registra el uso de diversos programas de servicios remotos, como rlogin y rsh. Estas reglas en general, son de servicios inseguros, pero si tenemos que utilizarlos, pueden examinarse con este conjunto de reglas. Alertas para utilizar programas de escaneado de puertos. Los escaneados de puertos son una indicaci´n extraordinaria de una actividad il´ o ıcita. Si utilizamos esc´neres de puertos, podemos desactivar Snort durante su ejecuci´n o a o deshabilitar esta regla en concreto para la IP donde se encuentra el esc´ner. a Esta clase busca paquetes que contienen c´digo de montaje, comandos de o bajo nivel tambi´n conocidos como c´digo shell. Estos comandos normale o mente forman parte integral de muchos exploits como los desbordamientos de memoria. Capturar al momento un c´digo shell es una buena indicaci´n o o de que se est´ produciendo un ataque. a Contienen las alertas para el uso del servidor de correo en la LAN. Esta secci´n necesitar´ alg´n ajuste ya que muchas actividades de servidor de o a u correo normales activar´n reglas de esta secci´n. a o Reglas para diversos programas de base de datos SQL. Si no ejecutamos ninguna base de datos, podemos deshabilitarlas, pero no es mala idea dejarlas por si existen bases de datos SQL ejecut´ndose sin que lo sepamos. a

Jose Antonio Escart´ Vigo, Junio 2005. ın

226

Servidor Linux para conexiones seguras de una LAN a Internet

Clase de reglas telnet.rules

tftp.rules

virus.rules

web-attacks.rules web-cgi.rules web-client.rules web-coldfusion.rules web-frontpage.rules web-iis.rules web-php.rules X11.rules

Cuadro 13.4: Clases de reglas de Snort (III) Descripci´n o Registra el uso de telnet sobre la red. Normalmente telnet se utiliza en enrutadores o en otros dispositivos de l´ ınea de comandos, por lo que es recomendable realizar el registro incluso si telnet no est´ en nuestros servia dores. TFTP (FTP trivial) es un servidor FTP alternativo que se ejecuta normalmente en enrutadores. Puede utilizarse para cargar nuevas configuraciones y por consiguiente es mejor que este conjunto de reglas est´ habilitado. e Contiene las firmas de algunos gusanos y virus conocidos. Esta lista no est´ completa y no se mantiene con regularidad. No es un reemplazo para a el software de escaneado de virus pero puede capturar algunos gusanos que se transmitan por la red. Todas estas clases se refieren a diversos tipos de actividad web sospechosa. Algunas son gen´ricas, como las clases web-attacks. Otras clases, como e web-iis y web-frontpage, son espec´ ıficas de una determinada plataforma de servidor web. Sin embargo, aunque creamos que no estamos ejecutando un servidor web Microsoft o PHP, es mejor dejarlas habilitadas para descubrir cualquier tipo de esta actividad en nuestra LAN de la que debamos preocuparnos. Tendremos que ajustar estos conjuntos de reglas, especialmente si los servidores web se encuentra en un desarrollo activo. Registra el uso del entorno gr´fico X11 en su red. a

13.5.7.

Ejecutar como servicio del sistema

Si vamos a ejecutar Snort en un servidor que se va a utilizar las 24 horas del d´ siete d´ a la semana, ıa, ıas tendremos que ejecutar Snort inmediatamente al inicio para que, en el caso en el servidor caiga, se pueda volver a cargar Snort y siga protegiendo nuestra LAN. Una forma de conseguirlo es tener una peque˜a n secuencia de comandos que ejecute Snort con los par´metros de l´ a ınea de comandos en las rutinas de inicio. Deberemos colocar el comando de arranque de Snort. Como por ejemplo: snort -h 192.168.0.0/24 -c /etc/snort/snort.conf & El signo de concatenaci´n & indica que se debe ejecutar Snort como un proceso en segundo plano. o

13.5.8.

Configuraci´n gr´fica de Snort, interfaz Webmin o a

Realizar toda la configuraci´n para Snort desde la l´ o ınea de comandos puede llegar a ser algo tedioso. Aunque todav´ no existe una interfaz gr´fica para Snort, existe un m´dulo para la conocida herramienıa a o ta de administraci´n web Webmin que nos permite realizar ajustes y configuraciones desde un servidor web. o Algunas de las ventajas de este sistema son: Acceso a los archivos de configuraci´n de Snort, basado en un formulario. o Niveles de acceso de usuario que permiten configurar diferentes usuarios con diferentes derechos. Capacidad para para habilitar y deshabilitar conjuntos de reglas mediante un simple clic. Indicador de estado para todas las reglas y conjuntos de reglas. Enlaces incrustados a bases de datos externas como archNIDS, CVE y Bugtraq. Registro de cambios. Diferentes idiomas.
Jose Antonio Escart´ Vigo, Junio 2005. ın

Cap´ ıtulo 13. Sistemas de detecci´n de intrusiones o Soporte para ejecutar Snort como servicio utilizando archivos rc.d. Administraci´n remota segura a trav´s de SSL (si esta habilitado). o e

227

El m´dulo de Snort requiere la versi´n 0.87 de Webmin o superior. Instalaremos el m´dulo con apt: o o o #apt-get install webmin-snort Para acceder al sistema, con SSL y si no hemos cambiado el puerto por defecto: https://localhost:10000 Una vez iniciada la sesi´n en la p´gina de Snort (v´ase figura 13.1), podremos ver las secciones prino a e cipales del archivo de configuraci´n, las configuraciones del procesado previo y las opciones de inicio de o sesi´n en la parte superior de la ventana. Haga clic en cualquiera de las opciones de configuraci´n para o o introducir su informaci´n personal para que Webmin realice los cambios apropiados en los archivos de o Snort.

Figura 13.1: M´dulo Webmin de Snort o Todos los conjuntos de reglas aparecen en una lista, podemos ver cu´les est´n habilitados y cuales no. a a Si queremos visualizar dicho conjunto de reglas o modificar una regla individual, hacemos clic en el texto subrayado de color azul para dirigirnos a la p´gina Edit RuleSet (editar conjunto de reglas). Aqu´ se a ı encuentran todas las reglas individuales dentro de dicho conjunto. Podemos ejecutar acciones en cada regla como deshabilitarla, habilitarla o eliminarla del conjunto. Si existen referencias a bases de datos externas dentro de la alerta, como los n´meros de Vulnerabilidad u o exploit com´nes (VCE, Common Vulnerability or Exploit), podemos hacer clic en un hiperv´ u ınculo para abrir m´s detalles sobre lo que hace la alerta. En esta interfaz se puede ajustar el conjunto de alertas m´s a a f´cilmente. a Con el m´dulo Webmin Snort tambi´n podemos configurar usuarios para que puedan acceder a deo e terminadas configuraciones. Esto se realiza mediante el control de usuarios de Webmin, en la secci´n o
Jose Antonio Escart´ Vigo, Junio 2005. ın

228

Servidor Linux para conexiones seguras de una LAN a Internet

correspondiente de acceso a Snort. Podemos controlar los archivos de configuraci´n a los que pueden aco ceder o simplemente dejar que visualicen los archivos sin poder editar ninguno de ellos. Como se puede comprobar, el m´dulo Webmin Snort nos proporciona un control de acceso granular para que podamos o delegar las tareas diarias en usuarios con privilegios de administraci´n, a la vez que seguimos conservando o el control de la configuraci´n y los cambios. o

13.5.9.

Personalizar reglas

Aunque los conjuntos de reglas est´ndar incluidos en Snort proporcionan una protecci´n adecuada a o contra firmas de ataques conocidas, podemos dise˜ar algunas reglas personalizadas espec´ n ıficas para que nuestra red obtenga el mejor rendimiento del IDS. Se pueden escribir reglas para: Registra el acceso hacia o desde determinados servidores. Buscar determinados tipos de nombres de archivos espec´ ıficos en nuestra organizaci´n. o Vigilar determinados tipos de tr´fico que no pertenecen a nuestra propia red. a La escritura de reglas de Snort es f´cil de aprender y nos permite a˜adir funcionalidades al programa, a n sin muchos conocimientos de programaci´n. Como hemos podido comprobar, las reglas de Snort son o simplemente declaraciones de texto dentro de un archivo de reglas. Si deseamos que Snort busque un comportamiento unico que deber´ ser sospechoso en nuestra red, ´ ıa podemos codificar r´pidamente una regla y probar el resultado. El formato de una regla de Snort es b´sia a camente una sola l´ ınea de texto que empieza con una acci´n (normalmente alert) seguida por diversos o argumentos. Se pueden a˜adir multiples l´ n ıneas simplemente a˜adiendo una barra inclinada (/) al final n de cada l´ ınea. Tambi´n se puede llamar a otros programas utilizando una declaraci´n de inclusi´n para e o o obtener una regla m´s compleja. a En su forma b´sica, una regla de Snort consta de dos partes: a Un encabezado de regla Las opciones de la regla Aqu´ tenemos un ejemplo: ı alert tcp any any 192.168.0.0/24 / (content:"|00 05 A4 6F 2E|";msg:"Test Alert";) El encabezado de la alerta es la parte anterior al par´ntesis de apertura. Esta declaraci´n contiene la e o acci´n (en este caso, alert), el protocolo y las direcciones de puertos de origen y destino. La acci´n es lo o o que va a hacer la regla, si esta es verdadera. Las opciones para las acciones son: alert log pass activate Dynamic Alerta del cumplimiento de la regla. S´lo registra el paquete. o Ignora el paquete, es la acci´n predeterminada en paquetes que no coino ciden con la regla. Alertar y a continuaci´n activar una regla din´mica. o a Permanecer inactiva hasta que se active, a partir de entonces act´a como u una regla normal registro.

Jose Antonio Escart´ Vigo, Junio 2005. ın

5 y 192. Sistemas de detecci´n de intrusiones o 229 Los protocolos puede ser tcp.192.0. existen o otras formas de encontrar intentos de intrusi´n. lisı o tada en la notaci´n de barra inclinada est´ndar para los rangos IP. pueden a˜adirse usuarios. como IPX). Los m´todos de detecci´n de intrusi´n basados en hosts tienen los siguientes inconvenientes: e o o Hay que cargar y administrar el software en cada host a proteger. ın . El cuadro 13. o Un m´todo alternativo es buscar signos de intrusi´n en el propio sistema. no necesitan actualizaciones constantes de firmas. Suponiendo que se tratan de nuestros servidores Web.168. estos archivos de sistema no deber´ cambiar mucho. Tambi´n podemos listar m´ltiples o a e u direcciones individuales y redes separ´ndolas con una coma.0. Muy pocas veces los IDS de host e e nos proporcionan un aviso previo.2. Los m´todos de detecci´n de intrusi´n basados en hosts tienen las siguientes ventajas: e o o Menos falsos positivos.0. o a o 13. Los puertos de origen y destino se explican por s´ mismos.5. Por ejemplo.192. Podemos buscar seg´n los campos del encabea a u zado TCP/IP o buscar simplemente la cargar util del paquete. Algo m´s complicado es el e a mantenimiento ya que tenemos que cargar el software en cada sistema que deseamos proteger. udp.10 en el puerto 80.2. produciendo menos falsos posie o o a tivos ya que no se activan a no ser que un sistema est´ realmente afectado. Se registran actividades en lugar de firmas. la sentencia buscar´ el tr´fico entrante con los datos hexadecimales de la secci´n de contenido.) Esta sentencia se centra en el tr´fico que proviene de cualquier direcci´n enlazada para las m´quinas a o a 192.10] 80 / (content:"|00 05 A4 6F 2E|". Aqu´ es donde podemos especificar ı m´s detalles sobre el tipo de tr´fico que estamos buscando. 192. Si se ha aprovechado un e o exploit en una m´quina.168. Podemos afirmar que merece la pena el tiempo y el esfuerzo empleados para detectar las intrusiones basadas en hosts y en redes con el fin de proteger los sistemas que ejecutan tareas cr´ ıticas.0. Podemos a˜adir m´ltiples opciones separ´ndolas con un punto y a n u a coma. Junio 2005.168. ıa a o La segunda parte de una alerta Snort son las opciones de la regla. Al buscar modificaciones podemos detectar una intrusi´n u otra actividad ıan o inusual. normalmente se alterar´n determinados archivos del sistema. icmp o ip. puede a a cambiar el archivo de contrase˜as.0. Necesitan menos ajustes.168. Detecci´n de intrusiones en el host o Hemos tratado con detalle la detecci´n de intrusiones basadas en redes (NIDS). La alerta tiene lugar despu´s de que un ataque haya tenido ´xito.Cap´ ıtulo 13.168. Este m´todo de detecci´n de intrusi´n puede ser mucho m´s preciso. Jose Antonio Escart´ Vigo. pueden modificarse archivos de configuraci´n n n o del sistema o se pueden alterar los permisos de algunos archivos. Despu´s de cada comando debemos incluir ´ e comillas y el valor que se est´ buscando. Sin embargo.6.msg:"Test Alert". Normalmente. lo que significa cualquier protocolo IP (puede que en un futuro se admitan protocolos no basados en IP. sin espacios y escribiendo la declaraci´n entre a o corchetes.168.0. por ejemplo: alert tcp any <> [192. La direcci´n de origen es la primera.5 contiene los comandos de opci´n v´lidos en la confecci´n de reglas.

o ´ Busca un conjunto de patrones en la carga util del paquete. Prueba el campo ID del fragmento del encabezado IP para un valor espec´ ıfico. ´ Modificador para la opci´n de contenido. Busca un patr´n en la parte URI del paquete. Evaluaci´n num´rica. Prueba los bits de fragmentaci´n del encabezado IP. o Registra el paquete para un nombre de archivo espec´ ıfico de un usuario en lugar de para el archivo de salida est´ndar. o Modificador para la opci´n de contenido. Prueba el valor del campo TOS del encabezado IP. e o Prueba num´rica del patr´n y ajuste de compensaci´n e o o Jose Antonio Escart´ Vigo. a Coincidencia de patr´n de caracteres comod´ o ın. bloquear determinados sitios web). Busca un patr´n en la carga util del paquete. a Prueba el valor del campo TTL del encabezado IP. Respuesta activa (por ejemplo. o Compara la cadena de contenido anterior sin tener en cuenta las may´sculas y las u min´sculas. cerrar todas las conexiones). Respuesta activa. Determina si la IP de origen es igual a la IP de destino. Prueba num´rica del patr´n. o e Obliga a que la coincidencia de patr´n relativa omita determinado n´mero de bytes en o u el paquete. Prueba el campo ICMP ECHO ID frente a un valor espec´ ıfico Prueba el n´mero de secuencia ICMP ECHO frente a un valor espec´ u ıfico. o Acciones de registro avanzadas para las reglas. o Identificador de severidad de regla. Prueba el campo de reconocimiento TCP para un valor espec´ ıfico. n ´ Prueba los indicadores TCP para determinados valores.230 Servidor Linux para conexiones seguras de una LAN a Internet Opci´n o msg logto ttl tos id ipoption fragbits dsize flags seq ack itype icode icmp id icmp seq content content-list offset depth nocase session rpc resp react referernce sid rev classtype priority uricontent tag ip proto sameip stateless regex byte test distance byte test byte jump Cuadro 13. Responde con un conjunto de comportamientos cifrados (por ejemplo. u o Identificador de clasificaci´n de regla. V´lido independientemente del estado del flujo. ın .5: Opciones de personalizaci´n en las reglas de Snort o Descripci´n o Proporciona la descripci´n del texto de una alerta. Establece la compensaci´n en el intento de o o coincidencia con el patr´n. Prueba el campo de n´mero de secuencia TCP para un valor espec´ u ıfico. Junio 2005. Vigila los campos de opci´n IP buscando c´digos espec´ o o ıficos. Valor de protocolo del encabezado IP. u Descarga la informaci´n de la capa de aplicaci´n para una determinada sesi´n o o o Vigila los servicios RPC en b´squeda de determinadas llamadas de aplicaciones o proceu dimientos. Establece la profundidad de b´squeda para un o u intento de coincidencia con el patr´n. ID de regla Snort. o Prueba el tama˜o de carga util del paquete frente a un valor. N´mero de revisi´n de regla. Prueba el campo de c´digo ICMP frente a un valor espec´ o ıfico. Prueba el campo de tipo ICMP frente a un valor espec´ ıfico. Los ID de referencia de ataques externos.

denominadas m´scaras o a de propiedad. es reemplaa zar los archivos binarios clave con versiones de su propia cosecha.6: M´scaras de propiedad de Tripwire a Letras de c´digo o a b c d g i l m n p s t u c h m s Atributos registrados ´ Ultimo acceso Bloques asignados Crear/modificar hora Dispositivo ID en el que reside el i-nodo ID de grupo del propietario del archivo N´mero de i-nodo u Si se permite crecer el archivo Modificaci´n de la fecha y hora impresa o N´mero de enlaces al i-nodo u Leer/escribir/ejecutar permisos en el archivo Tama˜o del archivo n Tama˜o del tipo n ID de usuario del propietario del archivo C´digo CRC32 o C´digo Haval o C´digo MD5 o C´digo SHA/SHS o Jose Antonio Escart´ Vigo. Estas directivas se representan mediante letras de c´digo o nombres de variable.2. o Cuadro 13. El archivo de pol´ ıticas es muy importante para el funcionamiento de Tripwire: le indica que archivos debe vigilar y a qu´ nivel de detalle debe e ´ introducirse. a El cuadro 13. Sin embargo. frente a los atributos b´sicos. Esta o versi´n libre se ha ido actualizando desde su lanzamiento (versi´n 2. o deber´ ıamos hacer una copia y eliminarlo. un listado de los diversos archivos y directorios que se chequearan. es como seguir las o o huellas digitales de una persona.1).7. a Uno de los trucos favoritos de los piratas inform´ticos. y representan las propiedades que est´ registrando Tripwire.txt.Cap´ ıtulo 13. Para obtener una mejor seguridad. una vez introducidos en un sistema. Junio 2005. o o Ambas versiones funcionan creando una base de datos de atributos b´sicos. archivos importantes que a deseamos registrar para comprobar los atributos reales. una vez establecidas y probadas sus pol´ ıticas. Con ello determinaremos si ha cambiado algo. Para instalar el programa hacemos un apt: #apt-get install tripwire Configurar Tripwire Antes de ejecutar Tripwire hay que establecer la pol´ ıtica. Tambi´n podemos utilizar o e Tripwire durante una investigaci´n forense para descubrir d´nde ha estado un intruso. Sistemas de detecci´n de intrusiones o 231 13. las directivas y las pol´ ıticas que les aplicaremos. Este no es el propio archivo de pol´ ıticas. Al final. en cualquier momento. Tripwire era de libre distribuci´n. sino una copia de la versi´n cifrada que el programa utiliza.6 recoge la lista de los elementos que se pueden registrar para cada archivo y sus letras de c´digo. ın . As´ cuando utilizamos comandos como ı ls o ps. El archivo principal de pol´ ıticas es: /etc/tripwire/twpol. no vemos sus archivos il´ ıcitos ni la ejecuci´n de determinados procesos. cogieron el c´digo base original y lo distribuyeron o con licencia GPL para que pudiera continuar su desarrollo en la comunidad de la libre distribuci´n. Este archivo contiene en su parte superior algunas variables. Integridad de archivos: IDS Tripwire Originalmente. los creadores fundaron una empresa para o venderlo y soportarlo comercialmente.

.. Por ejemplo.. Podemos configurar Tripwire para que registre o ignore diferentes propiedades de archivo. Para registrar propiedades utilizamos un signo m´s (+) y para ignorarlas un signo menos (-). Podemos utilizar $Growing para nuestros archivos de registro ya que est´n n a constantemente creciendo..........txt.. a El formato para la declaraci´n de un archivo de pol´ o ıticas es el siguiente: file/directory name -> property mask.. proporcion´ndonos a un establecimiento r´pido para las pol´ a ıticas de diversas clases de archivos..... a Cuadro 13.... # # File System Definitions # @@section FS # # First. = $(Dynamic) . Existen adem´s diversas m´scaras de propiedad predefinidas. Jose Antonio Escart´ Vigo.. En el cuadro 13....... cambiado en o o n el archivo /etc/secreto.. El siguiente c´digo muestra las variables contenidas en el archivo /etc/tripwire/twpol... ın .232 Servidor Linux para conexiones seguras de una LAN a Internet Las pol´ ıticas de Tripwire operan sobre el concepto de ignorar los indicadores.... some # SEC_CRIT SEC_BIN SEC_CONFIG variables to make configuration easier = $(IgnoreNone)-SHa ... # Directories that should never # change permission or ownership SIG_LOW = 33 .7: M´scaras de propiedad de plantillas a M´scara de propiedad a $Readonly $Dynamic $Growing $Device $IgnoreAll $IgnoreNone Efectos +pinugtsdbmCM-rlasSH +pinugtd-srlbamcCMSH +pinugtdl-srbamcCMSH +pugsdr-intlbamcCMSH -pinugtsdrlbamcCMSH +pinugtsdrlbamcCMSH Estas variables predefinidas encajan en el comportamiento de diferentes conjuntos de archivos... esta l´ ınea en el archivo de pol´ ıticas: /etc/secreto.. # Non-critical files that are of # minimal security impact SIG_MED = 66 . ya que sus fechas o de acceso estar´n continuamente cambiando cuando los programas los utilicen.. # Critical files that cannot change # Binaries that should not change # Config files that are changed # infrequently but accessed # often SEC_LOG = $(Growing) . but that # should never change ownership SEC_INVARIANT = +tpug . la ıa a ´ fecha de creaci´n o modificaci´n..... # Critical files that are # significant points of # vulnerability . pero no deseamos que el a contenido o el tama˜o cambien.. la propiedad o el tama˜o del tipo de archivo......txt: o @@section GLOBAL TWBIN = /usr/sbin. Producir´ que Tripwire nos notificase en cualquier momento. Junio 2005.........7 se incluyen dichas a a m´scaras plantilla y sus efectos. # Non-critical files that are of # significant security impact SIG_HI = 100 .... # Files that grow.. cu´ndo se produjo el ultimo acceso. los permisos. TWVAR = /var/lib/tripwire. El archivo de configuraci´n de pol´ o ıticas tambi´n define algunas variables que son combinaciones de las e configuraciones predeterminadadas anteriores con algunas adiciones o sustracciones..txt -> +amcpstu... TWETC = /etc/tripwire. Por ejemplo.... = $(ReadOnly) . podemos utilizar $Readonly para nuestros archivos de configuraci´n clave...

a Por ejemplo podr´ ıamos hacer algo as´ ı: # tripwire -m c /bin/* Integrity checking objects specified on command line. Inicializar la base de datos b´sica a El primer paso en la ejecuci´n de Tripwire es establecer la base de datos b´sica. en este caso i para inicializar. aunque Tripwire tiene algunas protecciones contra este tipo de acciones. Recordemos que debemos ejecutar Tripwire.twd Command line used: tripwire -m c /bin/arch /bin/bash /bin/cat /bin/chgrp /bin/chmod /bin/chown /bin/cp /bin/cpio /bin/csh /bin/date /bin/dd /bin/df /bin/dir /bin/dmesg /bin/dnsdomainname /bin/echo /bin/ed /bin/egrep /bin/false /bin/fgconsole /bin/fgrep /bin/fuser /bin/grep /bin/gunzip /bin/gzexe /bin/gzip /bin/hostname /bin/kill /bin/ln /bin/loadkeys /bin/login /bin/ls /bin/lsmod /bin/lsmod. Para establece la base de datos de archivo inicial utilizamos el siguiente comando: #tripwire -m i -v El modificador -m especifica el modo a ejecutar.txt Donde debemos reemplazar file. El formato es el siguiente: #tripwire -m c file. Comprobar la integridad del archivo Es el modo principal de ejecuci´n en Tripwire una vez se haya configurado. ın . Verificar´ los atributos de dicho archivo. n Para que Tripwire sea realmente seguro. CD o cinta).3. Junio 2005.modutils /bin/lspci /bin/mkdir /bin/mknod /bin/mktemp /bin/more /bin/mount /bin/mountpoint /bin/mt /bin/mt-gnu /bin/mv /bin/nano /bin/netstat /bin/pidof /bin/ping /bin/ps /bin/pwd /bin/rbash /bin/readlink /bin/rm /bin/rmdir /bin/run-parts /bin/sed /bin/setpci /bin/setserial /bin/sh /bin/sleep /bin/stty /bin/su /bin/sync /bin/tar /bin/tcsh /bin/tempfile /bin/touch /bin/true /bin/umount /bin/uname /bin/uncompress /bin/vdir /bin/zcat /bin/zcmp /bin/zdiff /bin/zegrep /bin/zfgrep /bin/zforce /bin/zgrep /bin/zless /bin/zmore /bin/znew Jose Antonio Escart´ Vigo. ya estaremos preparados para ejecutar Tripwire.. Si lo guardamos localmente siempre existe la posibilidad de que se pueda alterar el archivo. creando as´ la lista o a ı inicial de firmas frente a las que se deben utilizar las pol´ ıticas. Podemos empezar con el archivo de pol´ ıticas predeterminado y comprobar su funcionamiento. Tripwire audita todos los a archivos especificados en nuestro archivo de politicas. Compara los atributos o actuales de los archivos especificados con los de la base de datos de Tripwire.0 Integrity Check Report Report generated by: Report created on: Database last updated on: root vie 10 jun 2005 21:06:13 CEST Never =============================================================================== Report Summary: =============================================================================== Host name: debian Host IP address: Unknown IP Host ID: None Policy file used: /etc/tripwire/tw.pol Configuration file used: /etc/tripwire/tw. especificada anteriormente. Hay que tomarse tiempo para examinar a fondo el archivo y comprobar qu´ archivos se est´n registrando. seg´n las especificaciones del archivo de pol´ a u ıticas y devolver´ un informe con los cambios producidos. idealmente. Sistemas de detecci´n de intrusiones o 233 Debajo de las m´scaras de propiedad. debemos hacer una copia de su base de datos b´sica en alg´n a u medio seguro (disquete. Wrote report file: /var/lib/tripwire/report/debian-20050610-210613.twr Tripwire(R) 2. crea la datos en /var/lib/tripwire/ <hotsname>.twd y lo cifra utilizando la frase de contrase˜a de site. una vez instalado y configurado el sistema. El modificador -v le proporciona una salida por pantalla para que podamos ver lo que est´ sucediendo.cfg Database file used: /var/lib/tripwire/debian.Cap´ ıtulo 13. y despu´s cuando sospechemos que no funcionan e bien algunos archivos en nuestro sistema. e a Una vez hecho esto.txt con la ruta de acceso al archivo o a los directorios que deseamos comprobar. se establecen las pol´ a ıticas para los diversos archivos y directorios del sistema..

ın . a a a Tambi´n. algunos elementos como pueden ser los binarios e del sistema. Tripwire is a registered trademark of Tripwire. Jose Antonio Escart´ Vigo. This is free software which may be redistributed or modified only under certain conditions. Tripwire actualizar´ la firma para dicho archivo cuando salgamos de ´ste. Actualizar el archivo de pol´ ıticas Con el tiempo nos daremos cuenta que reglas no est´n generando alertas v´lidas y necesitaremos elia a minar o cambiar las m´scaras de propiedad. Si deja ah´ la X. see COPYING for details. La ejecuci´n de este comando nos mostrar´ todos los cambios que se han producido y las a o a reglas que los detectan. Inc. =============================================================================== Error Report: =============================================================================== No Errors ------------------------------------------------------------------------------*** End of report *** Tripwire 2. No se debe actualizar la base de datos si existe alguna posibilidad de que nuestro sistema haya sido comprometido. Severity Level -------------100 Added ----0 Removed ------0 Modified -------0 Actualizar la base de datos A medida que ajustamos las pol´ ıticas y realizamos cambios importantes en el sistema. As´ se invalidar´n las firmas y nos aseguraremos de que la base de datos Tripwire es util. This software comes with ABSOLUTELY NO WARRANTY. podemos especificar -c en el comando para salir realizando la vista previa y dejar que Tripwire e realice los cambios para los archivos que haya detectado. a Para actualizar la base de datos de Tripwire.234 Servidor Linux para conexiones seguras de una LAN a Internet =============================================================================== Rule Summary: =============================================================================== ------------------------------------------------------------------------------Section: Unix File System ------------------------------------------------------------------------------Rule Name --------Root file-system executables (/bin) Total objects scanned: 82 Total violations found: 0 =============================================================================== Object Summary: =============================================================================== ------------------------------------------------------------------------------# Section: Unix File System ------------------------------------------------------------------------------No violations. Es importante o a no s´lo que se a˜adan nuevos archivos y directorios a la base de datos sino tambi´n que se eliminen los o n e falsos positivos. Si elimina la X. Integrity check complete. Tendremos una X en los cuadros de los archivos en los que Tripwire haya detectado cambios. for details use --version. Junio 2005.3 Portions copyright 2000 Tripwire. Tripwire ı a e supondr´ que la firma original es la correcta y no la actualizar´. Para ello realizaremos los cambios necesarios en el archivo de a pol´ ıticas de Tripwire. Podemos ı a ´ actualizar los directorios seleccionados despu´s de todo. Tripwire ejecutar´ dichos cambios. utilizaremos el siguiente comando: #tripwire -m u -r path_reporte_anterior Tendremos que reemplazar path reporte anterior con el nombre y ruta de acceso del archivo de informe m´s reciente. Inc. All rights reserved. cambiar´n en contadas ocasiones. podremos actualizar la base de datos para que refleje con precisi´n el estado v´lido de los archivos. Al salir.

Snort. Tripwire nos pedir´ que a introduzcamos la contrase˜a local y de site antes de actualizar la pol´ n ıtica. por ejemplo MySQL. ACID s´lo funciona directamente con un IDS. admitiendo m´ltiples sensores para los u datos de entrada. Colocarlos en la misma a m´quina no s´lo es poco recomendable desde el punto de vista de la seguridad sino que adem´s inundar´ de a o a a alertas el sensor Snort hasta hacerlo inservible.text Donde debemos reemplazar politica. 13. necesitamos comunicar los dos programas a trav´s de e una base de datos. podremos crear una tarea que se ejecute diariamente (o con la frecuencia deseada) para revisar el sistema de archivos en busca de archivos modificados. Utiliza cualquier base de datos SQL y cualquier servidor web. a Es muy recomendable instalar ACID en una m´quina independiente de Snort. Sistemas de detecci´n de intrusiones o 235 Una vez guardados ejecutaremos el comando siguiente. Esta es su p´gina oficial: o a http://acidlab. Analysis Console for Ina o trusion Databases) es un programa dise˜ado para hacer un mejor uso de los dispositivos de detecci´n de n o intrusi´n. El host con ACID debe de ubicarse en un sitio donde no pueda acceder el sensor de Snort. que se encuentra disponible en la web de ACID. ın . Cuando hayamos ajustado suficientemente las pol´ ıticas de Tripwire. Instalaremos los siguientes paquetes: #apt-get install acidlab acidlab-doc acidlab-mysql Si queremos enlazar Snort a trav´s de una base de datos MySQL con ACID debemos instalar el paquete: e #apt-get install snort-mysql Sustituir´ el antiguo Snort por otro que produzca las salidas en una base de datos MySQL. un servidor web y el PHP. Actualmente. ACIDlab: Analizar alertas IDS La consola de an´lisis para bases de datos de alarmas de intrusi´n (ACID. Acepta alertas Snort y archivos de registro ajustados a los registros del sistema.sourceforge.8. Junio 2005. Necesitamos cumplir unos requisitos previos para que funcione correctamente: Debemos tener instalados una base de datos. para que Tripwire actualice el archivo de pol´ ıticas: #tripwire -m p politica. Configuraci´n de ACID o Este es el archivo de configuraci´n del sistema ACIDlab: o /etc/acidlab/acid_conf.text con el nuevo archivo de pol´ ıticas. Nos proporciona un panel de control basado en web para visualizar y manipular estos resultados.php En la siguiente tabla se puede observar la descripci´n de las variables contenidas en el archivo: o Jose Antonio Escart´ Vigo. Para instalarlo y hacerlo funcionar con Snort.Cap´ ıtulo 13.net/ La idea que se esconde detr´s de ACID es portar todos los datos de detecci´n de intrusi´n a una a o o base de datos donde se puedan ordenar y organizar por prioridades. pero podemos importar registros en o la base de datos de ACID desde cualquier dispositivo que produzca una salida en formato tipo archivo de registro utilizando una utilidad denominada Logsnorter.

Junio 2005. ser´ localhost. El formato predeterminado es png. Nombre de usuario de base de datos que va a utilizar ACID para registrar los datos. n Nombre de la base de datos de Snort. el valor suele ser el mismo que el de $alert_password. o Usuario de base de datos para registrar los datos de archivo.php Se muestra la p´gina de configuraci´n de ACID. a $alert_host $alert_port $alert_user $alert_password $archive_dbname $archive_host $archive_port $archive_user $archive_password $chartlib_path $chart_file_format Ejecuci´n de ACID o Una vez ajustado el archivo de configuraci´n nos debemos conectar a la direcci´n: o o http://localhost/acidlab/acid_main. Puerto sobre el que se accese a la base de datos. es a ıa recomendable ejecutar la base de datos en una m´quina distinta a la del a servidor web con PHP. Hay que asegurarse de que coincide con el nombre de usuario MySQL creado en la configuraci´n de la base de datos o La contrase˜a para el usuario de la base de datos. A partir de este momento podremos utilizar la interfaz a o web para terminar la configuraci´n de ACID. Ruta de acceso a los m´dulos de creaci´n de gr´ficos. o o a Formato de archivo de los gr´ficos. Si es local. Si se est´ ejecutando en la misma o a m´quina. Normalmente es el mismo valor que el de la variable anterior. Introducimos o “ ” si estamos iniciando la sesi´n localmente. Una vez hecho esto debemos dirigirnos a: http://localhost/acid La p´gina principal de ACID y para ver la base de datos de Snort.236 Servidor Linux para conexiones seguras de una LAN a Internet Cuadro 13. Una vez m´s. o Hacemos clic sobre el boton Create ACID AG para crear una base de datos para los datos Snort. Jose Antonio Escart´ Vigo. a Una vez hecho esto hemos terminado la configuraci´n de ACID y podemos empezar a utilizarlo para o administrar el sistema IDS. El valor predeterminado es mysql. El host en el que se va a guardar la base de datos de alerta. El nombre predeterminado de la base de datos es “snort”. a Puerto para iniciar la sesi´n en el servidor de base de datos. a no ser que estemos guardando m´ltiples bases de dau tos en esta m´quina y deseemos escribir nombres m´s descriptivos a a Host donde se va a ubicar la base de datos de archivo. a Otros formatos v´lidos son jpg y gif. Aca a tualmente solo adminte Snort (snort log). Contrase˜a para que el usuario de la base de datos registre los datos de n archivo. en el futuro admitir´ otros IDS. Puede ser una direcci´n IP o un nombre de host. e El IDS desde donde se est´n obteniendo las alarmas para ACID. hay que n a asegurarse de que coincide con la contrase˜a MySQL para dicho usuario. Como en el caso anterior. Si est´ en la a misma m´quina debe ser localhost. ın . s´lo debemos o introducir “ ” para este valor. pero tambi´n podemos establecer postgresql o mssql. Para una mejor seguridad y rendimiento. El valor predeterminado es snort archive.8: Variables de configuraci´n de ACID o Nombre de variable $DBtype $alert_dbname Descripci´n o Tipo de base de datos ACID que se va a utilizar. $alert_user. aunque se pude crear un usuario independiente para registrar los archivos.

a a ataque. ´ Si determinamos que es un ataque al sistema podemos intentar tomar medidas. u N´mero de las diferentes direcciones IP de destino asociadas con dicha alerta (<Dest. Al menos. Tambi´n se pueden e ejecutar otras acciones contra la direcci´n IP que aparece como IP de origen. o Si pulsamos Unique Alerts (Alertas unicas) se mostrar´n las alertas m´s recientes clasificadas por tipo ´ a a de alerta. ın . Tambi´n podemos mirar m´s abajo para o a e a comprobar la parte util del paquete (Se ve en hexadecimal y ASCII). o Cuando tengamos un n´mero suficiente en la base de datos (al menos unas miles de alertas). Junio 2005. todas las firmas de alerta se activar´n y nuestra base de datos empezar´ a rellenarse con actividad de a a las alertas. Sistemas de detecci´n de intrusiones o 237 Utilizar ACID para ajustar y administrar nuestro NIDS Antes de que el NIDS sea util debemos ajustarlo a nuestra red para eliminar alertas de falsos positivos. como una persecuci´n legal o o o una acci´n civil. o e o Al menos sabremos exactamente qu´ tipo de ataques se est´n produciendo en nuestra red y lo que e a est´n intentando hacer. Normalmente ser´n a gusanos automatizados. Cuando ajustamos por primera vez el NIDS. Hay que examinar las listas para averiguar si realmente es un problema de seguridad o un falso positivo: ¿Se puede apreciar alg´n tipo de patr´n? u o ¿Provienen todas las alertas de la misma direcci´n IP? o ¿Se dirigen todas las alertas a la misma direcci´n IP? o ¿Se producen a intervalos regulares o lo hacen de forma aleatoria? Si este an´lisis no nos conduce a ninguna conclusi´n. si se ha producido con ´xito la intrusi´n. Aun as´ es mejor estar pendiente de ı estas alertas para comprobar si la IP persiste.>). ataque que se produce docenas de veces al dia. u N´mero de sensores desde donde proviene la alerta (Sensor#). u N´mero de las diferentes direcciones IP de origen asociadas con dicha alerta (<Src. u Hora en la que se ha incluido la alerta (<Firt> y <Last>). podemos utilizar esta informaci´n para determinar si se trata de a o una direcci´n que normalmente est´ accediendo a nuestra red. Jose Antonio Escart´ Vigo. En est´ p´gina podemos clasificar y ordenar por los siguientes campos: a a Nombre de la firma (<Signature>). La mayor´ de estas ser´n falsos positivos. Clasificaci´n de la alerta (<Classification>). para que los datos de alerta sean importantes en ıa a nuestra red. se puede buscar con m´s detalle haciendo clic en a o a las alertas individuales. podemos asegurarnos de que la m´quina atacada a esta protegida contra ese tipo de ataque y enviar una queja al ISP del atacante. Addr. o N´mero total de este tipo de alertas en la base de datos (<Total#>). podemos u empezar a analizar datos y asi eliminar los tipos de alertas que no nos proporcionen informaci´n.>). As´ nuestra red estar´ m´s protegida y podremos reaccionar si se produce un a ı. ´ ACID puede ser una herramienta muy valiosa en esa tarea. tenemos que empezar a eliminar algunas de estas firmas para reducir la actividad err´nea y o proporcionar s´lo los datos procesables. Bas´ndose en la IP del emisor. Addr.Cap´ ıtulo 13.

238

Servidor Linux para conexiones seguras de una LAN a Internet

Figura 13.2: Detalle de una alerta ACID

Otras formas de analizar datos de alerta utlizando ACID
Ahora que disponemos de nuestra base de datos llena de alertas, podremos buscar las respuestas a algunas preguntas que se nos plantean a continuaci´n. o ¿Qui´n es el objetivo del ataque? Al utilizar ACID, buscamos las direcciones IP m´s comunes ya que e a muestran las direcciones IP que supuestamente son las m´s atacadas y, por consiguiente, habr´ m´quinas a a a sobre las que debemos centrar nuestros esfuerzos de protecci´n, algo que nos ayudar´ a diferenciar entre o a los falsos positivos y los positivos reales. Podremos localizar cualquier m´quina que est´ generando un a e gran n´mero de alertas desde una aplicaci´n que se est´ ejecutando. u o a Un incremento s´bito en las alertas hacia una direcci´n IP determinada puede apuntar que se esta u o iniciando un ataque sobre dicha m´quina. A continuaci´n, podemos ejecutar esc´neres de vulnerabilidad, a o a comprobar los niveles de seguridad, restringir direcciones de IP origen en el enrutador, etc. ¿Qui´n est´ atacando? Buscamos la direcci´n de origen IP que aparece con m´s frecuencia. Para ello e a o a nos debemos dirigir a la lista IP de origen; as´ podremos ver la IP y el nombre de dominio totalmente ı calificado (FQDN, Fully Qualified Domain Name) que indica de d´nde proviene el ataque. La ordenaci´n o o por el n´mero de alertas permite ver a los peores atacantes, seg´n la generaci´n de alertas. Si las direcciones u u o IP con la mayor´ de las alertas est´n en nuestra red, puede existir un culpable interno o una aplicaci´n ıa a o que est´ activando una alerta. e Utilizamos el proceso analizado anteriormente para llegar al detalle de la alerta. Si provienen de direcciones IP externas, tendremos que determinar si se trata de un enlace de tr´fico leg´ a ıtimo de nuestra red o son ataques reales. Buscamos en las alertas individuales para comprobar lo que esta pasando. Al hacer clic en la direcci´n se abre una p´gina con informaci´n adicional sobre la direcci´n y algunas opciones o a o o para analizarla con m´s detalle. a Analizando esas salidas podremos encontrar qu´ organizaci´n es propietaria de dichas IP. Y podremos e o registrar una queja en su centro de operaciones. As´ mismo, si comprobamos que determinadas direcciones ı aparecen una y otra vez, podremos filtrar estas direcciones IP en nuestro cortafuegos.
Jose Antonio Escart´ Vigo, Junio 2005. ın

Cap´ ıtulo 13. Sistemas de detecci´n de intrusiones o

239

¿Cu´l es el servicio m´s atacado? Al buscar los puertos m´s comunes en los que las alertas se est´n a a a a recibiendo podemos comprobar cu´les son los servicios m´s atacados. Si comprobamos que hay muchas a a alertas basadas en web, deberemos de tener m´s cuidado en el bloqueo de servidores web. a Si las alertas muestran mucha actividad NetBIOS de Windows, tendremos que mirar las pol´ ıticas de contrase˜as y permisos de Windows. As´ podremos saber cu´les son los servicios en los que debemos n ı a centrar primero nuestra atenci´n. o

Mantener la base de datos ACID
A medida que crece nuestra base de datos, tendremos que ejecutar alg´n tipo de tarea de manteniu miento peri´dico, para evitar que se haga demasiado grande. As´ mismo, nuestras estad´ o ı ısticas y gr´ficos a ser´n m´s precisos si archivamos nuestras primeras alertas, que van a contener muchos falsos positivos. a a As´ mismo, la limpieza de nuestra base de datos de vez en cuando agilizar´ el proceso de consultas. Para ı a archivar las alertas, utilizamos el control de consulta que se encuentra en la parte inferior de la pantalla principal. Podemos crear una consulta para las alertas que se desea archivar, por ejemplo, todas las alertas generadas el ultimo a˜o. Despu´s seleccionamos Archive Alerts (Archivar alertas) como acci´n para ´ n e o la consulta. Podemos archivar alertas seleccionando por dato, alerta u otros criterios. Tambi´n podemos e elegir simplemente copiar las alerta en un archivo o eliminarlas. Las alertas archivadas se situar´n en la a propia base de datos, con el nombre establecido en el archivo acid conf.php durante la configuraci´n. o Debemos archivar todas las alertas desde los primeros meses de funcionamiento cuando est´bamos a ajustando el sensor de Snort. A partir de ahora, los datos ser´n m´s importantes para los ataques reales a a frente a los falsos positivos. Es recomendable archivar al menos una vez al a˜o o quiz´ trimestralmente, n a dependiendo del volumen de alertas que se est´n registrando. Como regla general, no es recomendable e tener m´s de 100.000 alertas en la base de datos. a

13.9.

Logcheck: Analizar logs

Leer los logs, de nuestro sistemas es una tarea pesada y requiere bastante tiempo. Si tenemos bastante trabajo como administradores de sistemas, es probable que pasemos d´ o semanas sin mirarlos. Debido a ıas esto, no sabemos qu´ oscuras criaturas pueden estar penetrando nuestro sistema. Adem´s, cuando leemos e a logs la proporci´n de informaci´n util respecto a la in´til es alarmantemente baja . . . o o ´ u Se hace necesario disponer de una herramienta que analize autom´ticamente esa informaci´n y solo a o extraiga las partes interesantes de esos logs. Haci´ndolos mucho m´s f´ciles de consultar y, sobre todo, e a a leer. Logcheck revisa peri´dicamente los logs del sistema , analizando y clasificando cada l´ o ınea y seg´n difeu rentes niveles de alerta. Report´ndolo al administrador del sistema en un formato f´cil de leer, descartando a a las l´ ıneas que no tengan relevancia. Normalmente estos datos son enviados por correo. Logcheck chequear´ cada l´ a ınea frente a cuatro niveles de seguridad: Ignorar, actividad inusual, violaci´n de seguridad y ataque. o Para instalar el programa necesitaremos hacer un apt: #apt-get install logcheck Logcheck opera encontrando expresiones regulares. Itera sobre cada uno de los archivos de log tres veces (para localizar mensajes inusuales, violaciones de seguridad y alertas de ataque) utilizando egrep para buscar los patrones. Podemos consultar el manual de egrep para poder construir reglas m´s potentes. a

Archivos que utiliza Logcheck
Al instalar Logcheck nos encontramos en el sistema los siguientes archivos: logcheck.sh: Es el programa que se ejecutar´ cada vez que sea invocado logcheck. Es un script en a shell normal, e incluye la configuraci´n en un formato f´cil de comprender. o a
Jose Antonio Escart´ Vigo, Junio 2005. ın

240

Servidor Linux para conexiones seguras de una LAN a Internet logcheck.hacking: Tiene la lista de cadenas con las que una l´ ınea ser´ identificada como intento de a entrar al sistema o de conseguir informaci´n acerca de ´l, y por tanto ser´n reportadas como ataques o e a activos, llamando la atenci´n de manera especial al administrador. o logcheck.ignore: Tiene la lista de expresiones que son muy comunes y no vale la pena reportarlas al administrador. logcheck.violations: Tiene la lista de expresiones que pueden ser consideradas moderadamente peligrosas, y son etiquetadas como violaciones de seguridad. logcheck.violations.ignore: Permite ser m´s espec´ a ıfico: Si una l´ ınea concuerda con una de las expresiones de logcheck.violations pero tambi´n concuerda con una de ´ste archivo, la l´ e e ınea es ignorada. tmp: Es el directorio temporal utilizado por el programa para procesar los datos.

Adem´s de estos archivos, logcheck instala el programa logtail en /usr/local/bin. Este programa mana tiene la informaci´n de qu´ logs han sido analizados y hasta qu´ punto, para no perder ni repetir l´ o e e ıneas. Logcheck por defecto analizar´ los archivos /var/log/messages, /var/log/secure y /var/log/maillog. a

Opciones de logcheck.sh
En el archivo logcheck.sh encontraremos las siguientes opciones de configuraci´n: o PATH : Indica d´nde buscar´ el sistema los binarios. Debemos recordar que se ejecutara con una o a llamada desde cron, por lo que no hace da˜o definirlo, y tal vez limitarlo al m´ n ınimo necesario. SYSADMIN : Es la persona que recibir´ el reporte por correo. Si no lleva una direcci´n completa, a o asume que es una direcci´n local. o LOGTAIL: Indica el path completo para el programa logtail. TMPDIR: Especifica el directorio temporal que usar´ el programa. Este debe ser un directorio a seguro, que no tenga acceso de escritura m´s que para el usuario que ejecute Logcheck. a GREP : Indica el nombre del comando grep a ejecutar. En muchos sistemas Unix hay diferentes grep con diferentes caracter´ ısticas, sugerimos instalar el egrep de GNU. MAIL: Es el comando empleado para mandar un correo. T´ ıpicamente ser´ mail, aunque en algunos a sistemas puede ser mailx. HACKING FILE : Es el pathname y nombre completo del archivo logcheck.hacking VIOLATIONS FILE : Es el pathname y nombre del archivo logcheck.violations VIOLATIONS IGNORE FILE : Es el pathname y nombre del archivo logcheck.violations.ignore IGNORE FILE : Es el pathname y nombre completo del archivo logcheck.ignore

Ejecuci´n de logcheck.sh o
Logcheck no es un programa que funcione continuamente, sino que es llamado cada vez que el administrador lo cree adecuado. Como cada reporte ser´ enviado por correo, lo m´s com´n es hacerlo cada a a u hora. Para ello es necesario crear una entrada en el crontab de root o de alg´n usuario que tenga permiso u de leer los archivos localizados en /var/log. La l´ ınea a ser agregada en el crontab ser´ similar a la siguiente: a 0 * * * * /bin/sh /usr/local/etc/logcheck.sh

Jose Antonio Escart´ Vigo, Junio 2005. ın

Cap´ ıtulo 13. Sistemas de detecci´n de intrusiones o Con esto, cada hora el administrador recibir´ un mensaje similar al siguiente: a
From root@hostname.dominio.com Wed Sep 27 21:46:33 2000 Date: Wed, 27 Sep 2000 19:00:04 -0500 From: root <root@hostname.dominio.com> To: root@hostname.dominio.com Subject: hostname.dominio.com 09/27/00:19.00 system check Security Violations =-=-=-=-=-=-=-=-=-= Sep 27 18:23:07 hostname Sep 27 18:23:11 hostname Sep 27 18:23:11 hostname Sep 27 18:23:11 hostname Sep 27 18:23:43 hostname Unusual System Events =-=-=-=-=-=-=-=-=-=-= Sep 27 18:02:26 hostname Sep 27 18:14:40 hostname Sep 27 18:22:19 hostname Sep 27 18:23:07 hostname Sep 27 18:23:11 hostname Sep 27 18:23:11 hostname Sep 27 18:00:12 hostname

241

PAM_pwdb[14075]: authentication failure; (uid=0) -> root for ssh service PAM_pwdb[14075]: (ssh) session opened for user root by (uid=0) sshd[14075]: log: Password authentication for root accepted. sshd[14075]: log: ROOT LOGIN as ’root’ from hostname2.dominio.com PAM_pwdb[14075]: (ssh) session closed for user root

proftpd[13963]: hostname.dominio.com (lab1-15.dominio.com [192.168.1.16]) - FTP no transfer timeout, disconnected. proftpd[14030]: hostname.dominio.com (lab1-15.dominio.com [192.168.1.16]) - FTP no transfer timeout, disconnected. proftpd[13875]: hostname.dominio.com (lab2-21.dominio.com [192.168.2.21]) - FTP no transfer timeout, disconnected. PAM_pwdb[14075]: authentication failure; (uid=0) -> root for ssh service PAM_pwdb[14075]: (ssh) session opened for user root by (uid=0) sshd[14075]: log: ROOT LOGIN as ’root’ from dir-03.dominio.com sendmail[13610]: RAB13605: SAA13610: DSN: Host unknown (Name server: mail.internet.com: host not found)

En caso de haberse registrado alg´n evento que concuerde con alguna l´ u ınea de logcheck.hacking, para que el reporte sea visto m´s r´pidamente por el administrador cambiar´n los encabezados, quedando as´ a a a ı:
From root@hostname.dominio.com Wed Sep 27 21:52:58 2000 Date: Wed, 27 Sep 2000 21:00:05 -0500 From: root <root@hostname.dominio.com> To: root@hostname.dominio.com Subject: hostname.dominio.com 09/27/00:21.00 ACTIVE SYSTEM ATTACK!

Active System Attack Alerts =-=-=-=-=-=-=-=-=-=-=-=-=-= Sep 27 20:10:48 hostname portsentry[14722]: attackalert: SYN/Normal scan from host: ejemplo.dominio.com/192.168.0.111 to TCP port: 1019 Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Host 192.168.0.111 has been blocked via wrappers with string: "ALL: 192.168.0.111" Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Host 192.168.0.111 has been blocked via dropped route command: "/sbin/iptables -I input -s 192.168.0.111 -j DENY -l" (...) Security Violations =-=-=-=-=-=-=-=-=-= Sep 27 20:09:19 hostname PAM_pwdb[14589]: authentication failure; (uid=0) -> root for ssh service Sep 27 20:09:22 hostname PAM_pwdb[14589]: (ssh) session opened for user root by (uid=0) Sep 27 20:09:22 hostname sshd[14589]: log: Password authentication for root accepted. (...) Unusual System Events =-=-=-=-=-=-=-=-=-=-= Sep 27 20:10:47 hostname sshd[14624]: fatal: Did not receive ident string. Sep 27 20:19:43 hostname PAM_pwdb[14985]: authentication failure; (uid=0) -> llec for ssh service Sep 27 20:09:34 hostname in.telnetd[14610]: connect from 192.168.0.111 (...)

Interfaz web para Logchek
Podemos manejar graficamente este util programa desde nuestro Webmin. Para instalar: #apt-get install sentry El la figura se puede observar que la configuraci´n de la herramienta se vuelve un juego de ni˜os. o n

13.10.

PortSentry: Detectar escaneos de puertos

Cuando un atacante decide probar suerte en nuestro sistema, lo primero que necesita es recopilar cuanta informaci´n le sea posible acerca de ´l. Todo puede serle util: Sistema operativo, versi´n, servicios que o e ´ o ofrecemos, versi´n de los programas que tenemos... Cualquiera de estos datos puede ser suficiente para que o su ataque sea exitoso. Basta con que el atacante vea, por ejemplo, que tenemos una versi´n vieja de un o programa, aunque no tenga ´ste ninguna vulnerabilidad importante, para que se d´ cuenta que no somos e e administradores muy cuidadosos y probablemente tengamos otros servicios descuidados. La manera m´s com´n en que un atacante va a intentar obtener informaci´n acerca de nosotros es a u o el barrido de puertos: Intentar conectarse a cada uno de los puertos que tiene abiertos nuestro servidor, anotando qu´ es lo que tiene activo y analizando dicha informaci´n. Una de las herramientas m´s comunes e o a para realizar barridos de puertos es el Nmap (v´ase secci´n 17.2). e o
Jose Antonio Escart´ Vigo, Junio 2005. ın

242

Servidor Linux para conexiones seguras de una LAN a Internet

Figura 13.3: M´dulo Webmin para LogCheck o Tras haber hecho esta prueba, el atacante puede intentar entrar a cada uno de los puertos abiertos, revisando si encuentra alguna versi´n vieja o vulnerable. o Detectar un barrido de puertos es muy f´cil: Muchas conexiones casi simult´neas a una gran cantidad a a de puertos originadas desde la misma direcci´n. Si bien los programas barredores se han vuelto muy o sofisticados y cada vez es m´s dif´ detectarlos por diferentes estrategias que emplean (Nmap sabe hacer a ıcil desde una sencilla conexi´n TCP hasta un barrido silencioso con SYN, FIN, Xmas, Null, UDP, paquetes o fragmentados y barridos paralelos de diferentes tipos), el principio b´sico es el mismo. a Hay un excelente programa dedicado precisamente a encontrar ´ste patr´n y tomar la acci´n que le e o o indique el administrador del sistema: Portsentry. Para instalar el programa necesitaremos hacer un apt: #apt-get install portsentry Portsentry es un programa muy sencillo. Su misi´n es “sentarse y escuchar” en los puertos que le o indiquemos que deben permanecer siempre inactivos. En caso de llegar una conexi´n a uno de ellos puede o marcarlo en los logs del sistema, bloquear toda la comunicaci´n con la direcci´n identificada como agreo o sora, o ejecutar un comando externo. El archivo de configuraci´n de PortSentry es: o /etc/portsentry/portsentry.conf El programa tiene varios modos de operaci´n: o Modo cl´sico a Modo stealth Modo avanzado
Jose Antonio Escart´ Vigo, Junio 2005. ın

Cap´ ıtulo 13. Sistemas de detecci´n de intrusiones o

243

Modo cl´sico a
En este modo, le especificamos a Portsentry que escuche determinados puertos TCP y UDP, especificados con las opciones UDP PORTS y TCP PORTS y por los cuales no estamos dando ning´n servicio. u Por ejemplo, puede que nuestro servidor no est´ dando servicio de red SMB (Samba, red tipo Microsoft). e Sin embargo, es com´n que las computadoras windows manden mensajes broadcast buscando a un sistema u en espec´ ıfico, con lo que podr´ ıamos recibir una gran cantidad de alertas falsas. Vienen varios puertos predefinidos en el archivo de configuraci´n, y es recomendable utilizarlos inicialmente. o

Modo stealth
En este modo Portsentry abre sockets crudos, lo que le permite detectar una mayor cantidad de barridos y ataques: Ataques de conexi´n normal, SYN/half-open, FIN, NULL y XMAS. Este modo es un tanto o experimental, por lo cual no funcionar´ en todos los sistemas. a

Modo avanzado
Este modo es tambi´n considerado hasta cierto punto perteneciente a la categor´ stealth. En ´ste modo, e ıa e Portsentry no abre ning´n puerto, sino que le pide al kernel que le notifique si llega alguna petici´n a alg´n u o u puerto menor al especificado en las opciones ADVANCED PORTS TCP y ADVANCED PORTS UDP. Tendremos que excluir algunos puertos que sean particularmente ruidosos (como el comentado en la secci´n anterior, SMB) y para ello tenemos las opciones ADVANCED EXCLUDE TCP y ADVANo CED EXCLUDE UDP. El modo avanzado es mucho m´s sensible que el modo cl´sico, dado que escucha muchos m´s puertos, a a a por lo que puede efectivamente causar una negaci´n de servicio si no es configurado con cuidado. o

Otras opciones de configuraci´n o
Tras haber especificado los puertos que deseamos escuchar, hay algunos par´metros adicionales que a debemos especificar: IGNORE FILE : Es el nombre del archivo que incluye la lista de direcciones en las que confiamos y por tanto no queremos bloquear si intentan acceder a un puerto bloqueado. Por ejemplo, ser´ muy ıa molesto que quisi´ramos ejecutar Nmap contra uno de nuestros servidores para asegurarnos de que e no haya servicios abiertos que no requiramos y que nosotros mismos qued´ramos bloque´dos. a a HISTORY FILE : Contiene la lista de direcciones que Portsentry ha detectado intentando acceder a puertos monitoreados. BLOCKED FILE : Es equivalente a HISTORY FILE, pero relevante unicamente a la sesi´n actual ´ o de Portsentry. BLOCK TCP : Especifica qu´ hacer cuando un barrido de puertos TCP es detectado. Tiene tres poe sibles valores: 0 (s´lo registrar el intento), 1 (bloquear la direcci´n que intent´ acceder a la m´quina) o o o a y 2 (ejecutar un comando externo especificado en KILL RUN CMD). BLOCK UDP : Es equivalente a BLOCK TCP para barridos de puertos UDP. KILL ROUTE : Guarda el comando utilizado para descartar toda la comunicaci´n con una direcci´n. o o En un sistema que incluya un filtro de paquetes (por ejemplo, iptables en Linux o ipf en los *BSD) es muy preferible manejar una regla bloqueando la conexi´n. o KILL HOSTS DENY : Tiene la l´ ınea que deber´ ser agregada a /etc/hosts.deny para que la direcci´n a o atacante sea bloqueada por TCPwrappers. Es conveniente activarlo, pues a diferencia de las reglas e a manejadas por KILL ROUTE ´ste archivo sobrevivir´ a la baja del sistema. Pero, no hay que confiarse TCPwrappers s´lo maneja determinados servicios, y si s´lo nos protegemos con ´l, el sistema o o e podr´ seguir proporcionando informaci´n importante a nuestro atacante. a o
Jose Antonio Escart´ Vigo, Junio 2005. ın

244

Servidor Linux para conexiones seguras de una LAN a Internet KILL RUN CMD: Puede guardar un comando a ser ejecutado de ser detectada una intrusi´n. No o se recomienda utilizar esta opci´n, ya que puede f´cilmente llevar a una negaci´n de servicio. Hay o a o administradores que sugieren utilizar esta opci´n para lanzar un contraataque contra el atacante. o Nosotros categ´ricamente les indicamos que esto es una muy mala idea – La mejor defensa es tener o nuestro sistema seguro, no atacar al enemigo. Al atacar al enemigo, lo m´s probable es que centre a m´s su atenci´n en nosotros y, con el paso del tiempo, logre penetrar nuestra seguridad. Es mucho a o mejor aparentar que nada ocurri´ o simplemente tirar la conexi´n que atacarla. o o SCAN TRIGGER: Indica con cuantos intentos de conexi´n se deben realizar, para marcarla como o un ataque. Probablemente, si a la primera bloqueamos toda comunicaci´n con el presunto atacante, o dejaremos fuera a muchos usuarios leg´ ıtimos que por casualidad hicieron la conexi´n equivocada. Sin o embargo, si ponemos un n´mero muy alto nos exponemos a dar m´s informaci´n de la que hubi´ramos u a o e querido. Un valor de 1 o 2 es recomendado, aunque los muy paran´icos querr´n mantenerlo en 0. o a

Inicializaci´n autom´tica o a
Hay que incluir la ejecuci´n en uno de los archivos que se ejecutan al iniciar la m´quina. Las opciones o a que podemos establecer son las siguientes: Cuadro 13.9: Opciones de PortSentry Opci´n o -tcp -udp -stcp -sudp -atcp -audp Descripci´n o Iniciar en modo Iniciar en modo Iniciar en modo Iniciar en modo Iniciar en modo Iniciar en modo cl´sico, escuchar TCP a cl´sico, escuchar UDP a stealth, escuchar TCP stealth, escuchar UDP avanzado, escuchar TCP avanzado, escuchar UDP

T´ ıpicamente levantaremos dos copias del programa en el mismo modo general, una escuchando UDP y la otra TCP.

Almacenamiento en los logs del sistema
El simple hecho de que Portsentry evite ciertos ataques al sistema es de por s´ muy bueno y deseable. ı Sin embargo, para que ´sto nos sea realmente util, tenemos que analizar nuestros logs y llevar registros de e ´ qui´n y cu´ndo intent´ se intentaron escanear nuestros puertos. Adem´s, s´lo leyendo los logs sabremos e a o a o si estamos limitando de m´s, bloqueando el acceso de m´quinas leg´ a a ıtimas. Afortunadamente, Portsentry utiliza syslog para reportar toda la informaci´n que el administrador o debe saber, por lo cual todo lo que necesitamos estar´ t´ a ıpicamente en el archivo /var/log/messages, o donde se lo hayamos especificado en el syslogd.conf. La detecci´n de un barrido hecho por Nmap en un sistema Linux se ve as´ o ı:
Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: blocked via dropped route using command: "/sbin/iptables Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: (...) SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP Host 192.168.1.3 has been blocked via wrappers with string: "ALL: Host 192.168.1.3 has been -I input -s 192.168.1.3 -j DENY -l" SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP Host: ejemplo.dominio.com/192.168.1.3 is already blocked Ignoring SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP Host: ejemplo.dominio.com/192.168.1.3 is already blocked Ignoring SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP Host: ejemplo.dominio.com/192.168.1.3 is already blocked Ignoring SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP Host: ejemplo.dominio.com/192.168.1.3 is already blocked Ignoring SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP port: 1019 192.168.1.3"

port: 70 port: 934 port: 267 port: 202 port: 613

Jose Antonio Escart´ Vigo, Junio 2005. ın

Cap´ ıtulo 13. Sistemas de detecci´n de intrusiones o

245

Readmitiendo hosts marcados como atacantes
Cuando configuremos Portsentry es muy com´n que marquemos direcciones como atacantes por error. u Eliminarlos de la lista de bloqueo es afortunadamente muy sencillo. Si asumimos que queremos volver a permitir acceso a la direcci´n 192.168.1.3. Todo el proceso debeo remos realizarlo como root. Nuestro primer paso ser´ editar el archivo /etc/hosts.deny y buscar la direcci´n que queremos a o eliminar, en nuestro caso la tercera:
# # # # # # # # hosts.deny This file describes the names of the hosts which are *not* allowed to use the local INET services, as decided by the ’/usr/sbin/tcpd’ server. The portmap line is redundant, but it is left to remind you that the new secure portmap uses hosts.deny and hosts.allow. In particular you should know that NFS uses portmap! 216.98.66.42 210.124.182.137 192.168.1.3 200.36.163.106 202.111.97.171

ALL: ALL: ALL: ALL: ALL:

Consultamos la tabla de direcciones filtradas por iptables. El comando iptables-save es de gran utilidad para esa tarea, pues muestra las l´ ıneas con los comandos que ser´ necesarios para insertarlas. ıan
# /sbin/iptables-save :input ACCEPT :forward ACCEPT :output ACCEPT Saving ‘input’. -A input -s 216.98.66.42/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l -A input -s 210.124.182.137/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l -A input -s 192.168.1.3/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l -A input -s 200.36.163.106/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l -A input -s 202.111.97.171/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l

Una l´ ınea es insertada en iptables con -A, y es eliminada con -D, por lo cual basta con que hagamos: #iptables -D input -s 192.168.1.3/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l Con esto, el host con la direcci´n 192.168.1.3 ya tendr´ de nuevo acceso a nuestro sistema. o a

Interfaz web para Portsentry
Podemos manejar graficamente este util programa desde nuestro Webmin. Para instalar: #apt-get install sentry El la figura se puede observar que la configuraci´n de la herramienta se vuelve un juego de ni˜os. o n

13.11.

Detectores de sniffers

Un grave problema de nuestra red son las escuchas clandestinas, ¿como podemos estar seguros que no hay nadie escuchando nuestras conexiones? Disponemos de varias herramientas para la detecci´n de o tarjetas de red en modo promiscuo (sniffers), aqu´ mostraremos las siguientes: ı Neped Sentinel Estas herramientas, utilizan las siguientes t´cnicas para descubrir sniffers: e
Jose Antonio Escart´ Vigo, Junio 2005. ın

246

Servidor Linux para conexiones seguras de una LAN a Internet

Figura 13.4: M´dulo Webmin para Portsentry o

El test DNS En este m´todo, la herramienta de detecci´n en s´ misma est´ en modo promiscuo. Creamos numerosas e o ı a conexiones TCP falsas en nuestro segmento de red, esperando un sniffer pobremente escrito para atrapar estas conexiones y resolver la direcci´n IP de los inexistentes hosts. Algunos sniffers realizan b´squedas o u inversas DNS en los paquetes que capturan. Cuando se realiza una b´squeda inversa DNS, una utilidad u de detecci´n de sniffers “huele” la petici´n de las operaciones de b´squeda para ver si el objetivo es aquel o o u que realiza la petici´n del host inexistente. o

El Test ICMP Etherping Este m´todo conf´ en un problema en el n´cleo de la m´quina receptora. Podemos construir una petie ıa u a ci´n tipo “ICMP ECHO” con la direcci´n IP de la m´quina sospechosa de hospedar un sniffer. Enviamos o o a un un paquete “ICMP ECHO” al objetivo con la direcci´n IP correcta, pero con una direcci´n de MAC o o deliberadamente err´nea. La mayor´ de los sistemas desatender´n este paquete ya que su direcci´n MAC o ıa a o es incorrecta. Pero en algunos sistemas Linux, NetBSD y NT, puesto que el NIC est´ en modo promisa cuo, el sniffer identificara este paquete de la red como paquete leg´ ıtimo y responder´ por consiguiente. a Si el blanco en cuesti´n responde a nuestra petici´n, sabremos que est´ en modo promiscuo. Los sniffers o o a avanzados filtran tales paquetes para que parezca que el NIC no hubiera estado en modo promiscuo.

El Test ICMP de latencia Ping de Latencia. En ´ste m´todo, hacemos ping al blanco y anotamos el Round Trip Time (RTT, e e retardo de ida y vuelta o tiempo de latencia) Creamos centenares de falsas conexiones TCP en nuestro segmento de red en un per´ ıodo de tiempo muy corto. Esperamos que el sniffer est´ procesando estos e paquetes a raz´n de que el tiempo de latencia incremente. Entonces hacemos ping otra vez, y comparamos o el RTT esta vez con el de la primera vez. Despu´s de una serie de tests y medias, podemos concluir o no e si un sniffer est´ realmente funcionando en el objetivo. a
Jose Antonio Escart´ Vigo, Junio 2005. ın

Cap´ ıtulo 13. Sistemas de detecci´n de intrusiones o El test ARP

247

Podemos enviar una petici´n ARP a nuestro objetivo con toda la informaci´n r´pida excepto con una o o a direcci´n hardware de destino err´nea. Una m´quina que no est´ en modo promiscuo nunca ver´ este o o a e a paquete, puesto que no era destinado a ellos, por lo tanto no contestar´. Si una m´quina est´ en modo a a a promiscuo, la petici´n ARP ser´ considerada y el n´cleo la procesar´ y contestar´ La m´quina que o ıa u ıa ıa. a contesta est´ en modo promiscuo. a

13.11.1.

Neped

NePED es una herramienta imprescindible para cualquier administrador de redes. Al ejecutarlo, el programa nos informar´ de todos los equipos conectados a nuestra red local con la tarjeta ethernet en a modo promiscuo. Lo podemos descargar desde su p´gina web: a http://apostols.org/projectz/neped/ La forma de uso es muy sencilla: #neped <dispositivo> Esto ser´ un ejemplo de su funcionamiento: ıa
#neped eth0 ---------------------------------------------------------> My HW Addr: 00:00:F4:C2:0E:2A > My IP Addr: 192.168.0.2 > My NETMASK: 255.255.255.0 > My BROADCAST: 192.168.0.255 ---------------------------------------------------------> Scanning .... *> Host 192.168.0.3, 00:60:08:64:06:FF **** Promiscuous mode detected !!! > End.

La t´cnica empleada para la detecci´n es sumamente sencilla. Se trata de realizar una simple petici´n e o o ARP para cada una de las IPs de nuestra red, con la salvedad de que los paquetes no van destinados al broadcast (FF:FF:FF:FF:FF:FF), sino a una direcci´n arbitraria (cualquiera que no exista). Solo las o maquinas con la tarjeta ethernet en modo promiscuo son capaces de ver estos paquetes, y por lo tanto, solo ellas contestar´n a nuestras peticiones. a

13.11.2.

Sentinel

Lo podemos descargar desde su p´gina web: a http://www.packetfactory.net/Projects/sentinel/ Utiliza los m´todos de busqueda de snifers: e Test DNS, test ARP, test ICMP Etherping y test ICMP de latencia. La forma de uso es muy sencilla: #sentinel <metodo> [-t <ip>] <opciones> Como m´todo de uso podemos especificar uno o varios de los siguentes: e -a: test ARP -d: test DND -i: ICMP test ping de latencia -e: ICMP test etherpingt Las opciones m´s comunes se detallan a continuaci´n: a o
Jose Antonio Escart´ Vigo, Junio 2005. ın

248

Servidor Linux para conexiones seguras de una LAN a Internet -f <nombre>: Donde nombre representa, un fichero o una IP -c <x.x.x>: Clase C a monitorizar -n <n\’umero de paquetes a enviar> -I <dispositivo> Y estos ser´ algunos posibles ejemplos de uso de Sentinel: ıan Test ARP en el host 192.168.0.2 #sentinel -a -t 192.168.0.2 Test DNS en el host 192.168.0.2 #sentinel -d -f 1.1.1.1 -t 192.168.0.2 Escanear una red de Clase C (192.168.0) usando el test ARP, DNS y test etherping #sentinel -aed -c 192.168.0

13.12.

Chkrootkit: Detector de rootkits

Chkrootkit es un shell script que busca en nuestro sistema binarios modificados por RootKits, estos son usados por los piratas inform´ticos para comprometer sistemas. a Para instalarlo solo hay que realizar un apt: #apt-get install chkrootkit Los piratas informaticos, suelen camuflar o sustituir algunos ficheros binarios del sistema por sus propios ficheros, algunos de los ejemplos t´ ıpicos son: login, su, telnet, netstat, ifconfig, ls, find, du, df, libc, sync, asi como los binarios listados en /etc/inetd.conf. Este programa nos ayuda a verificar que tenemos la versi´n original de estos ficheros, en la ultima o ´ versi´n disponible detecta troyanos en los siguientes ficheros: o aliens, asp, bindshell, lkm, rexedcs, sniffer, wted, z2, amd, basename, biff, chfn, chsh, cron, date, du, dirname, echo, egrep, env, find, fingerd, gpm, grep, hdparm, su, ifconfig, inetd, inetdconf, identd, killall, login, ls, mail, mingetty, netstat, named, passwd, pidof, pop2, pop3, ps, pstree, rpcinfo, rlogind, rshd, slogin, sendmail, sshd, syslogd, tar, tcpd, top, telnetd, timed, traceroute, write. Tambi´n es capaz de detectar los siguientes RootKits: e Solaris rootkit, FreeBSD rootkit, lrk3, lrk4, lrk5, lrk6, t0rn (and t0rn v8), some lrk variants, Ambient’s Rootkit for Linux (ARK), Ramen Worm, rh[67]-shaper, RSHA, Romanian rootkit, RK17, Lion Worm, Adore Worm, LPD Worm, kenny-rk, LKM, ShitC Worm, Omega Worm, Wormkit Worm, dsc-rootkit. Al ser un shell scrip una vez compilados los programas (chkwtmp, chklastlog, chkproc, chkwtmp, ifpromisc) utilizar´n el chkrootkit para realizar parte de su trabajo. a En el sistema que he utilizado para el proyecto provoca la siguiente salida:
# chkrootkit ROOTDIR is ‘/’ Checking ‘amd’... not found Checking ‘basename’... not infected Checking ‘biff’... not infected Checking ‘chfn’... not infected Checking ‘chsh’... not infected Checking ‘cron’... not infected Checking ‘date’... not infected Checking ‘du’... not infected Checking ‘dirname’... not infected Checking ‘echo’... not infected

Jose Antonio Escart´ Vigo, Junio 2005. ın

Cap´ ıtulo 13. Sistemas de detecci´n de intrusiones o

249

Checking ‘egrep’... not infected Checking ‘env’... not infected Checking ‘find’... not infected Checking ‘fingerd’... not found Checking ‘gpm’... not found Checking ‘grep’... not infected Checking ‘hdparm’... not infected Checking ‘su’... not infected Checking ‘ifconfig’... not infected Checking ‘inetd’... not infected Checking ‘inetdconf’... not infected Checking ‘identd’... not found Checking ‘init’... not infected Checking ‘killall’... not infected Checking ‘ldsopreload’... not infected Checking ‘login’... not infected Checking ‘ls’... not infected Checking ‘lsof’... not infected Checking ‘mail’... not infected Checking ‘mingetty’... not found Checking ‘netstat’... not infected Checking ‘named’... not found Checking ‘passwd’... not infected Checking ‘pidof’... not infected Checking ‘pop2’... not found Checking ‘pop3’... not found Checking ‘ps’... not infected Checking ‘pstree’... not infected Checking ‘rpcinfo’... not infected Checking ‘rlogind’... not found Checking ‘rshd’... not found Checking ‘slogin’... not infected Checking ‘sendmail’... not infected Checking ‘sshd’... not infected Checking ‘syslogd’... not infected Checking ‘tar’... not infected Checking ‘tcpd’... not infected Checking ‘tcpdump’... not infected Checking ‘top’... not infected Checking ‘telnetd’... not found Checking ‘timed’... not found Checking ‘traceroute’... not infected Checking ‘vdir’... not infected Checking ‘w’... not infected Checking ‘write’... not infected Checking ‘aliens’... no suspect files Searching for sniffer’s logs, it may take a while... nothing found Searching for HiDrootkit’s default dir... nothing found Searching for t0rn’s default files and dirs... nothing found Searching for t0rn’s v8 defaults... nothing found Searching for Lion Worm default files and dirs... nothing found Searching for RSHA’s default files and dir... nothing found Searching for RH-Sharpe’s default files... nothing found Searching for Ambient’s rootkit (ark) default files and dirs... nothing found Searching for suspicious files and dirs, it may take a while... /usr/lib/mozilla-firefox/.autoreg /usr/lib/kaffe/.system Searching for LPD Worm files and dirs... nothing found Searching for Ramen Worm files and dirs... nothing found Searching for Maniac files and dirs... nothing found Searching for RK17 files and dirs... nothing found Searching for Ducoci rootkit... nothing found Searching for Adore Worm... nothing found Searching for ShitC Worm... nothing found Searching for Omega Worm... nothing found Searching for Sadmind/IIS Worm... nothing found Searching for MonKit... nothing found Searching for Showtee... nothing found Searching for OpticKit... nothing found Searching for T.R.K... nothing found Searching for Mithra... nothing found Searching for OBSD rk v1... nothing found Searching for LOC rootkit... nothing found Searching for Romanian rootkit... nothing found Searching for Suckit rootkit... nothing found Searching for Volc rootkit... nothing found Searching for Gold2 rootkit... nothing found Searching for TC2 Worm default files and dirs... nothing found Searching for Anonoying rootkit default files and dirs... nothing found Searching for ZK rootkit default files and dirs... nothing found Searching for ShKit rootkit default files and dirs... nothing found Searching for AjaKit rootkit default files and dirs... nothing found Searching for zaRwT rootkit default files and dirs... nothing found Searching for Madalin rootkit default files... nothing found Searching for anomalies in shell history files... nothing found Checking ‘asp’... not infected Checking ‘bindshell’... not infected Checking ‘lkm’... You have 2 process hidden for readdir command You have 2 process hidden for ps command Warning: Possible LKM Trojan installed Checking ‘rexedcs’... not found Checking ‘sniffer’... lo: not promisc and no packet sniffer sockets eth0: PACKET SNIFFER(/sbin/dhclient[3930], /usr/sbin/snort[4577]) Checking ‘w55808’... not infected Checking ‘wted’... nothing deleted Checking ‘scalper’... not infected Checking ‘slapper’... not infected Checking ‘z2’... nothing deleted

Vaya!, parece que ha detectado un archivo sospechoso, un posible troyano y que Snort est´ instalado. a
Jose Antonio Escart´ Vigo, Junio 2005. ın

hacer que sea dif´ ıcil. convirtiendose en la o poderosa herramienta de seguridad que es hoy en d´ En esta secci´n se detalla exactamente: qu´ son los ıa.sourceforge. as´ se abarca m´s informaı a ci´n para el estudio.250 Servidor Linux para conexiones seguras de una LAN a Internet 13. aunque no sean buenas o personas”. Honeypots para la producci´n: Son los que se utilizan para proteger a las organizaciones. pero no imposible penetrarlo y sentarse a esperar que aparezcan los intrusos.13. Presentan obst´culos a que poseen el nivel de complejidad suficiente para atraerlos. Hacen m´s fascinante el ataque al intruso. principalmente por los investigaa dores. o a u La funci´n principal a parte de la de estudiar las herramientas de ataque. especialmente por Cliff Stoll en el libro “The Cuckoo’s Egg” y el trabajo de Bill Cheswick a “An Evening with Berferd”. sin ´nimo de lucro que utiliza los honeypots para recolectar informaci´n sobre las a o amenazas del ciberespacio. es una organizaci´n para la investigaci´n sobre seguo o ridad voluntaria. existen dos tipos de honeypots: Honeypots para la investigaci´n: Gran parte de la atenci´n actual se centra en este tipo. es la de desviar la atenci´n del o o atacante de la red real del sistema y la de capturar nuevos virus o gusanos para su posterior analisis. con el claro objetivo de acceder a informaci´n sensible. sus ventajas y desventajas. Los honeynets (conjuntos de honeypots) dan a los crackers un gran espacio para recorrer. las plataformas configuradas de la misma forma. est´n adquiriendo una importancia cada vez mayor en la seguridad empresarial.net/trad/honeynet/ Jose Antonio Escart´ Vigo. y su importancia en la seguridad. con un enorme potencial para la comunidad ıa inform´tica.xombra. lo cual incrementa el n´mero de ataques. o Los honeypots son una emocionante tecnolog´ nueva. siento una combinaci´n de sentimientos con respecto a espiar a la gente. o e honeypots.com o El papel de la tecnolog´ del sistema de detecci´n de intrusos basado en se˜uelos (o “honeypots”) ıa o n est´ evolucionando. o bien. no solucionan ning´n problema de seguridad. u En general. al brindar detecci´n temprana de actividad no autorizada en las redes. Una de las m´ltiples aplicaciones que tiene es la de poder formar perfiles de atacantes y ataques. mientras el personal de seguridad observa con deleite cada movimiento que hacen. por ejemplo. han estado en una continua evoluci´n. o se les concede cada vez m´s importancia debido a las herramientas de detecci´n que pueden brindar a o y por la forma c´mo pueden complementar la protecci´n en la red y en los hosts. Son una herramienta muy util a la hora de conocer ´ de forma precisa los ataques que se realizan contra la plataforma de trabajo que hemos elegido. . Estos. HoneyPots: Entretener a los atacantes Informaci´n obtenida de la web: http://www. Desde entonces. Aqu´ se analiza el funcionamiento de ´ a ı los honeypots y su tecnolog´ que se est´ convirtiendo en el componente clave del sistema de capas de ıa. Los honeypots. los honeypots son ahora m´s o a utiles que nunca para los profesionales de la seguridad inform´tica. Dan Adams. compuestos por servicios reales. Los honeynets son conjuntos de Honeypots. a protecci´n contra intrusos. En efeca to. Francamente. Juegan con los archivos y conversan animadamente entre ellos sobre todos los fascinantes programas que encuentran. que se utilizan para recolectar informaci´n sobre las acciones de los o o intrusos. Junio 2005. u Son sistemas que deliberadamente se decide exponerlos a ser atacados o comprometidos. son una herramienta que nos sirve para conocer las estrategias u que se emplean a la hora de vulnerar un sistema. que alguna vez fueron utilizados. El proyecto Honeynet 1 . como una forma de atraer a los intrusos a un sistema de redes para estudiar sus movimientos y comportamiento. Los hoo o neypots para la investigaci´n. Sin embargo. Los primeros conceptos fueron introducidos primeramente por varios iconos en la seguridad a inform´tica. o As´ mismo nos permiten conocer nuevas vulnerabilidades y riesgos de los distintos sistemas operativos. los cuales a´n no se encuentren debidamente documentados. pero sin irse al extremo para no desalentarlos. ı entornos y programas. Los Honeypots (o tarros de miel) “Consisten en activar un servidor y llenarlo de archivos tentadores. o o 1 Proyecto Honeynet en castellano: http://his. . ın .

2. que los honeypots s´lo capturan actividad sospechosa ya que cualquier interacci´n con un honeypot o o es muy probablemente actividad no autorizada o una actividad maliciosa. o ıa. Pueden ser complejos de instalar. En lugar de logear 1 Gb por d´ logean s´lo 1 Mb de datos por n o ıa. Nuevas herramientas y t´cticas: Los honeypots son dise˜ados para capturar cualquier cosa que a n interact´a con ellos. pero de gran importancia: Los Honeypots recolectan n peque˜as cantidades de informaci´n. como los o ıa ıas sistemas IDS.13. los producidos o unicamente por “chicos malos”. No importa lo que los “chicos malos” lancen hacia el honeypot. si es que o o existen tecnolog´ que se le parezcan. Esto significa que es mucho m´s f´cil (y barato) de analizar los datos ´ a a que un honeypot recoge. Al ofrecerles a los atacantes sistemas reales para que interact´en.1. ıas Simplicidad: Finalmente. se puede aprender u mucho sobre su comportamiento.7) es un ejemplo de honeypot de baja interacci´n. no emulan nada. ni complejas tablas que mantener. los honeypots de alta interacci´n utilizan sistemas operativos reales y aplicaciones reao les. capaz de detectar atacantes de mayor calibre. incluyendo herramientas o t´cticas nunca vistas. los honeypots son conceptualmente simples. Adem´s. a a Informaci´n: Los honeypots pueden recoger informaci´n “en profundidad” como pocos. honeypots trabajan bien en entornos encriptados como IPv6. Ventajas y desventajas Los honeypots son un concepto incre´ ıblemente simple. los honeypots reducen el “ruido” recogiendo s´lo los datos indispensables y de gran valor.13. Podemos observar sus ventajas en los siguientes puntos: Obtienen un conjunto de datos peque˜os. cuya funci´n principal e o o o es monitorear el espacio de direcciones IP no utilizado.Cap´ ıtulo 13. No hay por qu´ desarrollar e algoritmos raros. Un sistema de baja interacci´n ofrece actividad limitada. Junio 2005. las cuales ofrecen una fortaleza muy poderosa. a Jose Antonio Escart´ Vigo. Cuando Honeyd detecta un intento de conectarse a un sistema que no existe. u a M´ ınimos recursos: Los honeypots requieren m´ ınimos recursos. ıa. Honeyd (v´ase secci´n 13. Sistemas de detecci´n de intrusiones o 251 13. intercepta la conexi´n. tambi´n implican un riesgo o a e m´ ınimo porque el atacante nunca tiene acceso a un sistema operativo real para perjudicar a otros sistemas. Las principales ventajas de los honeypots ıa de baja interacci´n es que son relativamente f´ciles de instalar y mantener. s´lo capturan actividad irregular. lo que permite conocer un comportamiento al que de otra manera no tendr´ acceso.000 alertas por d´ pueden generar s´lo 10 alertas por d´ Recordemos ıa. ¿C´mo funcionan? o Los honeypots tambi´n se pueden describir como de alta o baja interacci´n. interact´a con el atacante fingiendo ser la v´ o u ıctima para captar y registrar al ataque. ın . o d´ En vez de generar 10. Mientras m´s simple a sea la tecnolog´ menos posibilidades de errores o desconfiguraciones habr´.13. sin embargo. el honeypot lo detectar´ y lo capturar´. este tipo de honeypot proporciona un objetivo a m´s realista. Encriptaci´n en IPv6: A diferencia de la mayor´ de las tecnolog´ para la seguridad. Por el contrario. ıa. o la mayor´ de las veces emula los servicios y sistemas operativos. a requieren que se implementen tecnolog´ adicionales para evitar que los atacantes los utilicen para lanzar ıas ataques a otros sistemas. Los honeypots de alta interacci´n no imaginan como se comportar´ un o a atacante y proporcionan un ambiente que rastrea todas las actividades. Propiamente dicho. 13. distinci´n que se basa en e o o el nivel de actividad que permiten al atacante. ıan Los sistemas de alta interacci´n tambi´n son flexibles y los profesionales de la seguridad inform´tica o e a pueden implementarlos en la medida que quieran. o firmas que actualizar. Esto o significa que un viejo Pentium con 128 mb de RAM puede manejar f´cilmente una entera red de a clase B entera.

Tradicionalmente. No o o o importa cu´n segura sea nuestra organizaci´n. o Los honeypots pueden ayudar a prevenir ataques en varias formas. Utilidades de honeypots Cuando son utilizados con prop´sitos productivos. ın . hacerle n o perder el tiempo y recursos interactuando con honeypots.. o las fuerzas legales. la detecci´n ha sido extremadamente dificil de hacer. Detectando al atacante. los honeypots tienen el riesgo de que sean apoderados y controlados por los “chicos malos” y que lo utilicen para da˜ar otros sistemas. Tecnolog´ n o ıas como sensores IDS y sistemas de logueo han sido inefectivos por diversas razones: Generan muchos datos. o a o En este mundo se incluye.. equivalente a un fallo del sensor IDS. honeypots disuaden al atacante. los dos tipos de o o o honeypots pueden funcionar para ambos prop´sitos. Este concepto se conoce como enga˜o o disuaci´n. un honeypot de baja interacci´n. es el Deception Toolkit. Un ejemplo de un sticky o honeypot es: LaBrea Tarpit. mientras hoo o neypots de alta interacci´n son utilizados con prop´sitos de investigaci´n. El riesgo es variado para los diferentes honeypots. prevenci´n. Hacen esto utilizando una variedad de trucos TCP. detectaremos la actividad del atacante y tendr´mos tiempo para reaccionar y detener el ataque. Los Honeypots no podr´n capturar ataques a otros sistemas vecinos. La detecci´n es cr´ o o ıtica. Junio 2005. estas herramientas automatizadas atacar´n y tomar´n el sistema (con gusanos que se replican en la v´ a a ıctima). e Llamados “sticky honeypots” (Tarros de miel “pegajosos”). deteni´ndolos. como poniendo el “Window size” a ´ cero o poniendo al atacante en un estado de espera continua. la encriptaci´n tiene el riesgo de que los algoritmos sean rotos.13. Uno de las m´todos para protejer de tales ataques es bajando la velocidad de su escaneo y potencialmente detenerlos. Los Honeypots pueden tambi´n protejer nuestra organizaci´n de intrusos e o humanos. los sensores IDS tienen el o riesgo de que fallen al detectar ataques. Por lo tanto. al menos que a el atacante o la amenaza interact´e con el honeypot al mismo tiempo. e no reemplaza a la actual tecnolog´ sino que trabaja con las existentes. su prop´sito es la identificaci´n de fallos para para la prevenci´n. Esto es excelente para bajar la velocidad o para prevenir la diseminaci´n de gusanos que han penetrado en la red interna. Mientras tanto. Los firewalls tienen el riesgo de que sean ıas penetrados. Estos ataques son basados en herramientas que aleatoriamente escanean redes enteras buscando sistemas vulnerables. los honeypots est´n protegiendo la organizaci´n. Si un sistema vulnerable es encontrado. mientras que en otros honeypots puede que haya que enfrentarse a una situaci´n cr´ o ıtica. quiz´s tenga miedo de ser capturado por honeypots y decida a no atacarlo. tienen un riesgo tambi´n. Los “honeypots pegajosos” son m´s comunes encontrarlos entre soluciones de a baja interacci´n (hasta podr´ llam´rsele soluciones “no interactivas”. honeypots de baja interacci´n son utilizados con prop´sitos productivos. Un ejemplo de honeypot dise˜ado para hacer n esto. ya que reducen tanto la velocidad o ıa a que hacen “gatear” al atacante. La importancia de esta informaci´n depende seg´n las organizaciones. mientras otras estar´n interesadas en la a a predicci´n y prevenci´n anticipada. o o En general. como los gusanos. detecci´n y respuesta a un ataque. ıa. o La segunda forma por la cual honeypots pueden ayudar a protejer una organizaci´n es por medio de o la detecci´n. o o Cuando son utilizados con prop´sitos de investigaci´n. podr´n r´pidamente reaccionar ante ellos. e Espec´ ıficamente. los honeypots son utilizados para recolectar o o informaci´n. Jose Antonio Escart´ Vigo. siempre habr´n fallos si los hombres est´n involucrados en a o a a el proceso. Los Honeypots no son diferentes. o mitigando a a e el da˜o que hicieron. Visi´n Limitada: Los honeypots pueden s´lo rastrear y capturar actividad que interact´en directao o u mente con ellos. estas soluciones monitorean el espacio IP no utilizado. u Riesgo: Todas las tecnolog´ de seguridad tienen un riesgo. 13. estos honeypots interact´an con ´l y disminuyen la velou e cidad del ataque. Esto es debido a que ıa. El primero es contra ataques automatizados. Cuando los sistemas son escaneados. Algunas organizacioo o u nes querr´n estudiar la tendencia de las actividades intrusivas. Hasta se puede dar un paso m´s all´: si e a a un atacante sabe que nuestra organizaci´n est´ utilizando honeypots pero no sabe cuales son los sistemas o a honeypots y cuales son sistemas leg´ ıtimos.252 Servidor Linux para conexiones seguras de una LAN a Internet Como en cualquier otra tecnolog´ los honeypots tambi´n tienen su debilidad. n Dependiendo del tipo de honeypots puede haber un riesgo.3. Sin embargo. La idea es confundir al atacante.

Los honeypots reducen los falsos positivos. haciendo dif´ su comprensi´n. c´mo ingresaron. los honeypots a de alta interacci´n son la mejor soluci´n para la respuesta. . estos honeypots tienden a ser f´ciles de utilizar y mantener con un riesgo m´ a ınimo. sin importar ı. o o o La forma tercera y final por la cual honeypots nos pueden ayudar a protejer una organizaci´n es en la o respuesta. e o e 13. los servicios emulados mitigan el riesgo conteniendo la o e a actividad del intruso. La interacci´n define el nivel e o de actividad que un honeypot le permite tener un atacante. En general. sus fortalezas y debilidades. detectar su presencia. n excepto los atacantes. archivos escritos a bases de datos. etc.4. y qu´ herramientas utilizaron. que nunca tiene acceso al sistema operativo real donde puede atacar o da˜ar otros n sistemas. y trabajan en forma encriptada o en entornos IPv6. o Los honeypots de alta interacci´n son diferentes. Un intruso h´bil puede. Sistemas de detecci´n de intrusiones o 253 grandes porcentajes de falsos positivos. Esto merma la habilidad para analizar qu´ sucedi´. se necesita o o conocimientos en profundidad sobre qu´ hicieron. e incluso si el atacante accedi´ a otros sistemas de la e o a n o red. con el debido tiempo. solventando o muchos de los problemas de la detecci´n cl´sica. y dejar que el programa camine por s´ solo desde ah´ . Este proceso cercano al “plug and play” hace ı ı que la utilizaci´n de ´stos sea muy f´cil. Por lo general es instalar un software. Los Honeypots son excelentes en detecci´n. Hay por lo general poca informaci´n acerca de qui´n o e es el atacante. son tan cr´ o ıticos que aunque est´n compremetidos los administrae dores no pueden desconectarlos y hacer un an´lisis forense como corresponde. ıcil a ıa ıa e Los Honeypots pueden ayudar a solventar ambos problemas. Nada es emulado. Incluso. Para ayudarıcil o nos a entender mejor a los honeypots y a todos los diferentes tipos. como el o servidor de correo de una organizaci´n. . Las ventajas de un honeypot de baja interacci´n es su a u o simplicidad. ) que puede ser dif´ determinar cu´l es la actividad normal del d´ a d´ y qu´ es lo que hizo el atacante. . honeypots de o baja interacci´n son la mejor soluci´n para la detecci´n y tienen un riesgo limitado. Con poluci´n de datos me refiero que hay ıcil e o tanta actividad (logeo de usuarios. Hay dos problemas que afectan a la respuesta al incidente: el primero. En estas situaciones. Los honeypots de baja interacci´n tienen o una interacci´n limitada. inhabilidad de detectar nuevos ataques. dividiremos a dos categor´ generales: ıas honeypots de “baja interacci´n” y de “alta interacci´n”. capturan ataques desconocidos como nuevos exploits n o shellcodes polim´rficos. Las principales desventajas de los honeypots de baja interacci´n es que registran unicamente o ´ informaci´n limitada y son dise˜ados para capturar actividad prevista. cu´nto da˜o hizo el atacante. lecturas de cuentas de mail. ya que no las utilizan nadie (son se˜uelos).Cap´ ıtulo 13. ´ guardan los honeypots son las relacionadas con el atacante. y la inhabilidad de trabajar en forma encriptada o en entornos IPv6. Honeyd. normalmente trabajan unicamente emulando servicios y sistemas operativos. En general. a menudo los sistemas comprometidos no pueden ser desconectados de la red para ser analizados. Sistemas de producci´n. Para reaccionar ante un intruso. elegir el sistema operativo y el servicio a emular y monitorear. Ejemplos a o a de honeypots de baja interacci´n se incluyen: Specter. hay tanta poluci´n de datos que o es muy dif´ determinar qu´ es lo que hizo el “chico malo”. para responder r´pida y eficientemente a un incidente.13. El otro problema es que incluso en el caso de que este desconectado. Una vez que una organizaci´n detecta un fallo. ¿c´mo debe responder? Esto es a menudo uno o o de los grandes retos a los que nos debemos enfrentar. c´mo ingres´ al sistema o cu´nto da˜o hizo. Honeypots son un excelente herramienta de incidencias ya que pueden r´pidamente y f´cilmente ser sacados de la red para un an´lisis forense complea a a to. Junio 2005. La importancia de los honeypots aqu´ es la r´pida entrega de la informaci´n. La o ´ actividad del atacante se encuentra limitada al nivel de emulaci´n del honeypot. anaı a o lizada en profundidad. . sin el impacto en las operaciones empresariales de todos los d´ Recuerden que la unica actividad que ıas. ´stos generalmente son soluciones complejas ya que o e implica la utilizaci´n de sistemas operativos y aplicaciones reales. capturando o a peque˜as cantidades de datos de gran importancia. la informaci´n detallada o o a n o acerca a las actividades del atacante son cruciales. le damos a los ino Jose Antonio Escart´ Vigo. los servicios emulados s´lo pueden o n o llegar hasta ah´ Tambi´n es f´cil para un atacante detectar un honeypot de baja interacci´n. Est´n limitados a analizar a a el sistema encendido mientras sigue proveyendo sus servicios productivos. ın . Por ejemplo. un servicio o FTP emulado escuchando en el puerto 21 probablemente estar´ emulando un login FTP o probablemente a suportar´ alg´nos comandos FTP adicionales. Tipos de honeypots Los honeypots vienen con diversidad de colores y gustos. Estas categor´ nos ayudan a entender con o o ıas qu´ tipo de honeypots estamos trabajando. e a o cu´n buena sea la emulaci´n. y KFSensor.

ın . esto tambi´n incrementa el riesgo de los honeye pots ya que los atacantes pueden utilizar estos sistemas operativos reales para lanzar ataques a sistemas internos que no forman parte de los honeypots. Hay dos elementos en sistemas operativos emulados: El primero es el servicio emulado. muchos honeypots responder´n al nivel del IP Stack del SO real en donde est´ instalado a e el honeypot. Algunos honeypots ıa sofisticados llevan la emulaci´n un paso adelante (como lo hace el Honeyd): No s´lo emulan en el nivel de o o servicio. tendr´mos que construir un e verdadero sistema Linux y montar un verdadero servidor FTP. cualquier cosa o desde rootkits nuevos hasta sesiones internacionales de IRC. podremos aprender la completa extensi´n de sus actividades. Honeyd falsea la respuesta. Las ventajas de dicha soluci´n son dos: o Primero. no s´lo emulan servicios sino que tambi´n emulan el Sistema Opeo e rativo. acerca del posible comportamiento que tendr´ el atacante. No obstante. como Honeyd. entonces deber´ emular a el comportamiento de un IIS webserver. Esto permite a las soluciones de alta interacci´n conocer comportamientos no esperados. 13. un webserver WinXP o un servidor DNS Linux. ıa n honeypots de alta interacci´n pueden hacer todo lo que uno de baja interacci´n puede hacer y mucho o o m´s. En otras palabras. pero pueden ser m´s complejos de utilizar y mantener. Honeyd puede aparentar ser un router Cisco. o o Honeynets Symantec Decoy Server 2. en lugar de o a eso proveen un entorno abierto que captura todas las actividades realizadas. Un excelente ejemplo de esto es c´mo un o o honeypot captur´ comandos “back door” codificados en un protocolo IP no estandard (espec´ o ıficamente protocolo IP 11. Junio 2005. cuando un atacante se conecta a ese servicio. La segunda ventaja es que los honeypots de alta interacci´n no asumen nada. o Honeyd Specter KFSensor Deception Toolkit Jose Antonio Escart´ Vigo. se puede apuntar a atacantes espec´ ıficos provey´ndoles sistemas y e servicios sobre los que queremos aprender. Primero. Ejemplos de honeypots de alta interacci´n a a o son Symantec Decoy Server y los Honeynets.13. y para el caso de un Linux. Segundo. El nivel de emulaci´n y sofisticaci´n a o o depende de la tecnolog´ del honeypot que elijamos. se requiere la implementaci´n de una o tecnolog´ adicional que prevenga al atacante de da˜ar otros sistemas que no son honeypots. Existen varias ventajas al emular diferentes sistemas operativos. usted capturar´mos grandes cantidades de informaci´n d´ndoles a los intrusos algo sistemas a o a reales con la cual interactuar. Network Voice Protocol). emulando no s´lo el servicio sino emulando tambi´n el stack del o e IP. En consecuencia. suministra sistemas operativos y servicios reales. De alta interacci´n: No hay emulaci´n. este se comport´ como a si fuera legitimo y aparenta tener un sistema operativo determinado. Si queremos un honeypot Linux corriendo un servidor FTP. Por ejemplo. La mayor´ de los honeypots emulan el SO de esta manera. comport´ndose como si fuera realmente otro sistema operativo. ıa Esto es un resumen de algunos de los HoneyPots que podemos utilizar: 1. sino que en el nivel del stack del IP.5. deber´ emular el comportamiento ıa de un webserver Apache. si tiene un servicio emulando un webserver y quiere que su honeypot aparente ser un Win2000 servidor. Otras caracter´ ısticas Algunos honeypots. Si alguien realiza active fingerprinting para determinar el SO de su honeypot. si el honeypot tiene la misma apariencia y comportamiento que las computadoras productivas.254 Servidor Linux para conexiones seguras de una LAN a Internet trusos algo real. De baja interacci´n: Emula sistema operativos y servicios. el honeypot puede encajar mejor con la red existente. En general.

Ellos esperan un tipo espec´ ıfico de comportamiento. e Mientras los posibles atacantes se entretienen intentando acceder a servicios que no existen. La mayor´ de los servicios emulados trabajan de la o ıa misma manera. rompen estos sistemas en su propia iniciativa. Lo podemos encontrar en: /usr/share/doc/honeyd/examples/config. permiti´ndonos convertirnos en el SO que queramos. Desarrollado por Niels Provos. los comandos que introduce y quiz´s tambi´n descubrir lo que est´ buscando o su identidad. a e a Todo depende del nivel de emulaci´n del honeypot. sino que captura tambi´n toda la actividad del atacante o e con el servicio emulado. Esto le da al atacante la flexibilidad a ıas o de interactuar con las sistemas v´ ıctimas. Honeynets: alta interacci´n o Los Honeynets son un ejemplo ideal de honeypots de alta interacci´n. o no son una soluci´n software que se instala en una computadora. Este gateway permite el tr´fico de entrada a los “sistemas v´ a ıctima”. se pueden configurar los servicios emulados para que monitoreen puertos espec´ ıficos. Sistemas de detecci´n de intrusiones o 255 13. Una de sus grandes caracter´ ısticas es que podemos asignar a cada una de nuestros dispositivos virtuales el SO que queramos. En lugar de eso. Para instalarlo ejecutamos el siguiente apt: #apt-get install honeyd honeyd-common Tambi´n podemos encontrar un “kit de herramientas Honeyd para Linux” (Honeyd Linux Toolkit). pero controla el tr´fico de salida usando tecnolog´ de prevenci´n contra instrusos. a n Honeyd trabaja con el concepto del monitoreo del espacio IP no utilizado.7. Honeyd: baja interacci´n o Honeyd es un honeypot de baja interacci´n.13. pretendiendo ser la o o u v´ ıctima. Por defecto. ın . Honeyd es OpenSource o y est´ dise˜ado para correr principalmente en sistemas Unix/Linux (aunque fue portado a Windows).localhost con un mont´n de dispositivos cone o figurados. entonces no saben c´mo responder. o En nuestra instalaci´n Debian utilizaremos este paquete honeyd. una red entera de m´quinas dise˜ados para ser atacadas. y est´n programados para reaccionar a en una forma predeterminada. los Honeynets son una o arquitectura. Honeyd detecta y logea cualquier conexi´n a puertos UDP o TCP. En caso del servidor FTP emulado podemos potencialmente capturar el logins y passwords. monitoreando el puerto TCP 21. Cuando un atacante conecta el servicio emulado. intercepta la conexi´n e interact´a con el atacante. 13. desde sesiones encriptadas a SSH hasta correos y archivos subidos son capturados sin que lo noten. La idea es tener una arquitectura a n que sea una red altamente controlada. el honeypot no s´lo detecta y logea la actividad. Honeynets no son un producto. Toda su actividad. los IDS de nuestro sistema los detectar´n y podremos tomar acciones preventivas contra sus IP. computadoras reales corriendo aplicaciones reales. veremos de lo que es capaz. En esta red nosotros ponemos a nuestras victimas en forma intencionada. como un servidor FTP emulado. incluyendo o ıa o Honeyd. ellos no saben que est´n en un Honeynet. el Honeynet controla la actividad del atacante. simplemente generar´ un mensaje de error. Al mismo tiempo. Cuando hacen esto. hay un fichero que se llama config. Como si fuera o poco. pero previene al atacante de da˜ar otros sistemas que no forman n parte del Honeynet. ya que tiene licencia GPL y es grao tuito. Esto es realizado introduciento m´dulos en el kernel de los “sistemas v´ o ıctima” que capturan toda las acciones de los atacantes. Los Honeynets hacen esto mediante la utilizaci´n de o un gateway Honeywall. Cuando observa un intento de conexi´n a un IP no utilizado. como filtrarlas en a el firewall. Junio 2005.13. Despu´s de instalarlo. atacan.6. La mayor´ de los honeypots de baja interacci´n. Si ejecutamos la configuraci´n que viene como e o ejemplo.localhost Jose Antonio Escart´ Vigo. Los “chicos malos” encuentran. un lugar donde toda actividad sea controlada y capturada. Esta personalidad tambi´n se especifica con un fichero normal de firmas de SO de e Nmap.Cap´ ıtulo 13. La limitaci´n est´ en que si el atacante hace algo que la emulaci´n no tiene o a o previsto. Podemos ver cuales son los comandos que soporta el a servidor FTP emulado de Honeyd viendo el c´digo fuente.

10ALPHA4) scan initiated: nmap -v -sS -oN nmap4.0.1(24)" set routerone default tcp action reset add routerone tcp port 23 "router-telnet. resetear´ todas las conexiones TCP menos a a las que vayan al puerto 23.1(17) TCP Sequence Prediction: Class=random positive increments Difficulty=26314 (Worthy challenge) IPID Sequence Generation: Incremental # Nmap run completed -. Cisco 7206 (IOS 11..0.1(24).1 route 10. bind 10.256 Servidor Linux para conexiones seguras de una LAN a Internet Si observamos la definici´n del dispositivo 10..847 s Cuando recibimos los paquetes de Nmap. ın .1. create routerone set routerone personality "Cisco 7206 running IOS 11. veremos lo siguiente: o #cat /usr/share/doc/honeyd/examples/config.0.0. Junio 2005.0.0.1 IP address (1 host up) scanned in 178.0/24 .. route entry 10.1 link 10..1 de ejemplo.1 routerone . a Ahora ejecutemos Nmap para comprobar el SO que se ejecuta en el dispositivo virtual que acabamos de crear: # nmap (V. Jose Antonio Escart´ Vigo.pl" . honeyd responde con la personalidad que hemos escogido.0. ya que entonces el script router-telnet.0.localhost|more .0. Warning: OS detection will be MUCH less reliable because we did not find at least Interesting ports on 10.0..1: (The 1604 ports scanned but not shown below are in state: filtered) Port State Service 23/tcp open telnet Remote OS guesses: Cisco 7206 running IOS 11.pl (una emulaci´n del demonio telnet) o ser´ ejecutado.0.0.1(24). 3. que se o o comportar´ como un Cisco 7206 ejecutando una IOS 11..0... La explicaci´n a grandes rasgos es que tenemos un dispositivo cuya direcci´n IP es 10.0.

Los est´ndares inal´mbricos de 802. a Hasta hace muy poco los administradores de red s´lo ten´ que preocuparse de asegurar los bienes o ıan de la tecnolog´ de informaci´n f´ ıa o ısicos y fijos. los enrutadores y los cortafuegos: todo lo que configura sus redes de l´ ınea de cable.Cap´ ıtulo 14 Redes inal´mbricas a En el proyecto he habilitado una red wifi. ha tra´ acceso a sitios ıa ıdo a los que no se pod´ acceder antes y ha convertido el t´rmino “inform´tica m´vil” en una realidad. El amplio despliegue de la o tecnolog´ LAN inal´mbrica ha llegado definitivamente para quedarse y tarde o temprano tendremos que ıa a tratar con ella. incluyendo los servidores. nuestro per´ a ımetro de seguridad se convierte literalmente en el aire que nos rodea. por lo que no tendremos que pedir ninguna licencia para utilizarlas. pero es muy probable que las n circunstancias lo obliguen a implantar este tipo de tecnolog´ ıa. pero hoy los administradores de sistemas y conocen los peligros que esto entra˜a. Si estamos utilizando la tecnolog´ sin cables ıa para parte de nuestra red.11 (Wifi) a El protocolo m´s popular para la tecnolog´ LAN inal´mbrica es actualmente la serie 802. debemos auditar la red frecuentemente y asegurarnos que nadie a est´ ejecutando un punto de acceso ilegal. Access Point) y un par de tarjetas inal´mbricas a y utilizar Internet desde cualquier habitaci´n de nuestra casa (o fuera de ella). ıa e Ahora con una LAN inal´mbrica desplegada. Aunque no tengamos red inal´mbrica.1. El inconveniente es que otros dispositivos pueden utilizar tambi´n estas longitudes de onda. ıa e a o Ha cambiado dr´sticamente el per´ a ımetro de seguridad de redes de las empresas de todos los tama˜os. Pod´ ıan ıan colocar cortafuegos o otras defensas en esos puntos de contenci´n cruciales. n Tradicionalmente. con el advenimiento del equipamiento de redes inal´mbricas existe todo un espectro nuevo de problemas seguridad que tratar. Los atacantes sin cables pueden provenir de cualquier direcci´n. Utiliza las frecuencias o e de 2.11b y 802. es la raz´n por la que funciona tambi´n con las redes Ethernet con cables.4 GHz. a a a e Los fabricantes del equipamiento LAN inal´mbrico han reducido tanto los precios que ahora es una a alternativa muy viable para las redes dom´sticas. Antes de asegurar correctamente nuestra red inal´mbrica.11 son b´sicamente una extensi´n del protocolo u a a a o Ethernet.11. por lo que si e a . El interior de la red se trataba o como de confianza porque no hab´ forma de introducirse que no fuese a trav´s de los puntos protegidos. e Algunos tel´fonos inal´mbricos y microondas se encuentran en la banda de los 2. cualquiera con una tarjeta de unos 50e puede escuchar potencialmente el cable de nuestra red sin poner un pie en nuestro local. Est´ndar 802. En lugar de cablear nuestra casa para conectar nuestros e PCs a Ethernet. nuestras amenazas de seguridad crecen considerablemente.11a para se˜ales de transmisi´n de datos. Sin embargo. podemos comprar un punto de acceso (AP. tenemos que saber c´mo funcionan las redes a o del ´rea local inal´mbrica y cu´les son sus puntos d´biles.4 GHz para 802. los administradores de redes se pod´ concentrar en proteger estos puntos de acceso limitados. seran muy reacios a implantar este tipo de redes. a Esta nueva tecnolog´ ha ayudado a rebajar el coste del despliegue de redes.11g y 5 GHz para 802. conocido a ıa a com´nmente como wifi. As´ o ı. las redes corporativas se conectaban al mundo exterior en s´lo unos pocos lugares. Estas n o frecuencias son del espectro de uso general. 14. Si tenemos o desplegado un acceso sin cables.

e n Podemos configurar un nodo de red inal´mbrica instalando una tarjeta de interfaz de red (NIC. pero en el mismo espectro de 2. transmisiones de se˜ales luminosas act´an como un faro invitando a cualquier nodo sin cables del ´rea a n u a iniciar la sesi´n. Sus par´metros de dise˜o a n permiten aproximadamente unos 45. cortafuegos y enrutador para usuarios u dom´sticos y de peque˜os negocios.4 GHz que 11b. un espectro menos abao a rrotado y menos propenso a tener problemas de interferencias. lo que dificulta ocultar el hecho de que hay una red inal´mbrica. Una red inal´mbrica 802. Este nombre no o a es necesariamente unico a dicho punto de acceso.19 Km.11a 802. El punto de acceso env´ frecuena ıa temente transmisiones de “se˜ales luminosas” para que cualquier nodo sin cables sepa que est´ ah´ Las n a ı. Cada punto de acceso y tarjeta inal´mbricos a ´ tiene un n´mero asignado. Tambi´n es compatible hacia e atr´s con el hardware de 11b. conocida como punto de acceso o (AP. o a a Est´ndar a 802. Sin embargo. Algunas estaciones base tienen una funcionalidad adicional.11b que se adhiere al protocolo a o de cifrado para ser mucho m´s seguro.72 metros interiores y unos 244 metros exteriores en condiciones normales..11 en un modo de infraestructura tiene un punto de acceso que act´a como puente entre a u la LAN de Ethernet con cables y uno o m´s puntos extremo sin cables.4 GHz. podemos tener hasta un rango de 32. incluyendo enrutadores y servidores DHCP incorporados. ver las se˜ales luminosas si se encuentran dentro de un rango. Esta es u la direcci´n MAC para los clientes inal´mbricos que se asocian al nodo servidor. con una antena de alta potencia y alcance. es imposible desactivar completamente o n dichas se˜ales. etc. Neta work Interface Card) en un ordenador. al menos. un dispositivo USB. Esta es la configuraci´n m´s com´n en redes corporativas ya que permite al e o a u administrador controlar el acceso sin cables a un punto. Junio 2005. De hecho. ın . aunque las aplicaciones pr´cticas por debajo de las condiciones a ´ptimas trabajan a la mitad de dicha cantidad. Yo dispongo de un router 3Com ADSL 11g de este tipo. Una red wifi inal´mbrica puede operar en uno de estos dos modos: a Modo adhoc: Nos permite conectar directamente dos nodos juntos. a n aunque algunos receptores permiten limitar la cantidad de informaci´n que sale de dichas transmisiones.11 que han aparecido. una gran cantidad de ancho de banda. normalmente inclun o a a yendo su SSID. es el ID del nodo cliente (BSSID.11 inal´mbricos a a Descripci´n o Esta versi´n del est´ndar utiliza una logitud de onda de 5 GHz. como Bluetooth y otros dispositivos. una tarjeta PCMCIA. Proporciona hasta 54 Mps de ancho a a a de banda. El cuadro 14.11b 802.1: Est´ndares de 802. El IEEE acaba de aprobarlo y ya podemos encontrar a productos que lo implementan. y conectarla a nuestra LAN. Access Point). la mayor´ de los fabricantes asignan ´ ıa un SSID predeterminado a los AP para que puedan utilizarse inmediatamente. esto es todo lo que se a u o Jose Antonio Escart´ Vigo.11i Cuadro 14.258 Servidor Linux para conexiones seguras de una LAN a Internet tenemos este tipo de dispositivos u otras redes wifi en nuestro ´rea podemos encontrarnos con algunas a interferencias. Todos los nodos sin cables se conectan a la LAN ´ trav´s de este punto. algo atractivo para las comunicaciones de oficina a oficina dentro de una ciudad. Esta longitud de onda es perfecta para el corto rango deseado para wifi.1 incluye una descripci´n de los cuatro tipos de est´ndares inal´mbricos 802.11g 802. a Este nuevo protocolo es b´sicamente una extensi´n de 802. El potencial te´rico para o esta tecnolog´ es de 54 Mps. Basic Station System ID). pero la mayor´ de ıa ıa las aplicaciones en el sector no se acercan a esa cantidad. Este modo es util para conectar ´ algunos PCs juntos que necesiten acceso a una LAN o a Internet. Ofrece hasta 11 Mps de ancho de banda. Una NIC inal´mbrica puede ser de varios tipos: puede ser una a tarjeta que se introduce en la ranura del PC. El SSID del punto de acceso es necesario para conectarse a la red. Modo de infraestructura: Nos permite establecer una estaci´n base. o Estas se˜ales contienen informaci´n b´sica sobre el punto de acceso inal´mbrico. Existen incluso algunas unidades integradas que act´an como puntos de acceso sin cables. Utiliza una longitud de onda de 2. Cualquiera que tenga n a una tarjeta inal´mbrica puede. Si la red no est´ utilizando ning´n cifrado ni ninguna otra protecci´n. o Actualmente es el est´ndar inal´mbrico m´s conocido. Estas se˜ales forman parte del problema con wifi.

n Acceder a los PC sin cables: Un enlace inal´mbrico proporciona a un atacante potencial un vector en a una m´quina de nuestra red. Las LAN inal´mbricas no aseguradas ofrecen a los intrusos el a mejor acceso an´nimo que existe. a a o Alguien podr´ escuchar sobre nuestro enlace sin cables para buscar los registros de inicio de sesi´n. Sin embargo. no a la suya. otros problemas se deben al dise˜o general de n est´ndar. default. u Acceder a la LAN : Probablemente ´ste sea el mayor peligro que presentan las redes inal´mbricas. e a Si los intrusos pueden obtener el acceso a nuestra LAN a trav´s de un punto de acceso inal´mbrico. Lamentablemente. puede suponer que el administrador no ha perdido mucho tiempo en configurar y asegurar la red inal´mbrica. el SSID a normalmente se transmite al descubierto y los paquetes cifrados pueden ser escuchados clandestinamente en el aire y est´n sujetos a intentos de decodificaci´n.2. Si utilizan este modo de acceso pueden lanzar ataques contra una m´quina que probablemente no est´ protegida por el cortafuegos y puede que no se bloqueen a a como las defensas del per´ ımetro o los servidores p´blicos. las m´quinas con tarjetas inal´mbricas. Este identificador proporciona alg´n nivel de seguridad si se implanta correcu tamente. a o algo bastante caro y poco habitual. muchas personas no cambian el SSID predeterminado del fabricante.Cap´ ıtulo 14. ´ ´ Estos son algunos de los que tenemos que tener en cuenta al a˜adir una LAN inal´mbrica a nuestra n a infraestructura: Escuchas clandestinas: Lo m´s ´cil para un intruso en una red inal´mbrica es recopilar paquetes a a a utilizando un sniffer. A continuaci´n pueden ejecutar un esc´ner de vulnerabilidades (como Nesus) o un o a esc´ner de puertos como Nmap (Vease secci´n 17) para encontrar m´quinas de su inter´s y buscar a o a e brechas que puedan aprovechar. a SSID predeterminados: Cada estaci´n base wifi tiene un identificador espec´ o ıfico que debemos conocer para entrar en la red. Cualquier ataque o da˜o perpetrado desde esta conexi´n se rastrear´ hacia nuestra n o a red. Poco podemos hacer frente a ello. como linksys. un fallo fundamental en c´mo funcionan los algoritmos RC4 en los que esta basado hacen que los o datos se puedan descifrar. La mayor´ de las LAN ejecutan un servidor DHCP ıa sin restringir. tambi´n e introducen algunos retos y peligros unicos para el administrador de redes preocupado por la seguridad.11. a o 14. Wired Equivalente Privacy) para que los datos se pudieran cifrar. Este m´todo de pirater´ se e ıa har´ cada vez m´s comun a medida que los intrusos se den cuenta de lo dif´ que es rastrear a a ıcil los ataques que se originan de esta manera. incluso en una red inal´mbrica cifrada. pueden piratear nuestra red y hacer el da˜o que quieran sin que podamos e n seguirles la pista.11 : Adem´s de las inseguridades de las LAN inal´mbricas. Las autoridades pueden llamar a nuestra puerta. a a a a veces. ıa o las contrase˜as o cualquier otro dato. cualquier dato que viaje por una red inal´mbrica est´ potencialmente sujeto a su inspecci´n por personas ajenas a la red. se pueden ver desde el exterior. Los dise˜adores de las redes inal´mbricas n a pensaron sobre ello e introdujeron en el dise˜o un cifrado est´ndar denominado Privacidad equivalen n a al cable (WEP. Existen pocas posibilidades de capturar a alguien que proviene de una red inal´mbrica a no ser que tenga un equipo de triangulaci´n situado de antemano. Aparte de los puntos de acceso. Lamentablemente. o Vulnerabilidades espec´ ıficas de 802. e a normalmente tienen las llaves de nuestro reino. a Jose Antonio Escart´ Vigo. etc. pueden utilizar nuestro ancho de banda para otros usos. existen a a algunos problemas espec´ ıficos del est´ndar 802. Peligros de las LAN inal´mbricas a Aunque ofrecen la misma flexibilidad y funcionalidad que pueden ofrecer las LAN con cables. Acceso an´nimo a Internet: Aunque los intrusos no est´n interesados en lo que contienen nuestra o e LAN. ın . Junio 2005. Redes inal´mbricas a 259 requiere para que un intruso acceda a la red. incluso aunque se ejecute WEP. por lo que los intrusos pueden obtener una direcci´n IP v´lida y empezar a explorar o a nuestra red. Al iniciar la sesi´n en nuestra red y o acceder despu´s a Internet. Cuando un intruso lo encuentra. Por lo tanto. Algunos de ellos se deben a un mal dise˜o del a n fabricante o a las configuraciones predeterminadas.

Los que a realizan los paseos de batalla han llegado incluso a anunciar puntos de acceso sin cables en bases de datos Jose Antonio Escart´ Vigo. como oficinas en entornos a urbanos y ´reas del centro donde hay muchos edificios altos. ın . desde la comodidad de sus habitaciones en las a afueras de una ciudad. Desde el punto de vista de u a o la seguridad. En una zona del centro densa.3. Aproximadamente un 60 por ciento de las LAN inal´mbricas son completamente inseguras. Los que realizan el “wardring” pueden explorar Internet o la LAN local sobre el enlace sin cables. Junio 2005. n Comunicaciones sin cifrar de forma predeterminada: La mayor´ de los dispositivos LAN inal´mbriıa a cos de hoy en d´ ofrecen la opci´n de activar el cifrado WEP est´ndar . Una vez roto el cifrado. la se˜al sigue teniendo el riesgo e n de ser le´ ıda.11b a a tienen una distancia efectiva de un par de cientos de metros. es com´n encontrar varias LAN inal´mbricas sin protecci´n dentro de un edificio. n esa se˜al y. al menos. Punto d´bil de WEP : Incluso cuando se utiliza el cifrado incorporado. los piratas inform´ticos conducen un autom´vil con una tarjeta inal´mbrica y alg´n softa o a u ware buscando una se˜al de una red. u e o En general. Imaginemonos a los adolescentes y otros reci´n llegados e escaneando en busca de las LAN inal´mbricas disponibles. Existen algunos puntos d´biles fundamentales en la implantaci´n del algoritmo RC4 e o utilizado para el cifrado en WEP que permiten que se descifren una vez interceptada una cantidad de tr´fico. Incluso es peor los edificios altos a n que se encuentran junto a una zona residencial. lo que puede llegar a convertirse en una pesadilla si tenemos muchos usuarios conect´ndose sin a cables. Si una persona a o no t´cnica configura la red. El problema es que normalıa o a mente se tiene que hacer manualmente. Las empresas que utilizan LAN en entornos densos alrededor de sus oficinas o cerca de carreteras principales y autopistas son los entornos m´s propensos a este tipo de actividad. los edificios altos suelen ser uno de los peores lugares para ejecutar una LAN inal´mbrica. Esta pr´ctica se conoce como “wardrive” o “wardriving”. El fen´meno del “Wardriving” o La b´squeda de LANs inal´mbricas inseguras se ha convertido en un pasatiempo popular entre los u a piratas inform´ticos. WEP utiliza a e vectores de inicializaci´n d´biles con un porcentaje suficientemente alto como para que finalmente o e puedan descifrarse. Muchos fabricantes comercializan su equipamiento con esta opci´n desconectada de forma predeterminada. aunque WEP ofrece una a protecci´n b´sica frente a escuchas clandestinas casuales. Si hay otros n edificios cerca. 14. a el t´ ıpico edificio de cristal permite que las se˜ales de su LAN viajen a mucha distancia. Por lo tanto. El software puede registrar la ubicaci´n exacta de la red inal´mbrica n o a a trav´s del GPS as´ como otra gran cantidad de informaci´n como: si est´ cifrada o no y que tipos de e ı o a protecciones se encuentran activas. por lo que sigue existiendo una peque˜a ventana de vulnerabilidad. La estaci´n base debe emitir regularmente su existencia para que los emisores a o del usuario final puedan encontrar y negociar una sesi´n y como los dispositivos leg´ o ıtimos del usuario no se han autenticado todav´ esta se˜al debe transmitirse al descubierto. sea m´s dif´ de captar para las o a ıcil escuchas clandestinas de redes inal´mbricas. Estos puntos d´biles tienen que ver con la forma en que se programan las claves.260 Servidor Linux para conexiones seguras de una LAN a Internet Transmisi´n de se˜ales luminosas: La transmisi´n de se˜ales luminosas son un problema inherente a o n o n las redes inal´mbricas. funciona de la misma forma a a que el marcado telef´nico en masa o guerra del marcado telef´nico. es casi seguro que podr´n recoger algunas de sus se˜ales. Es f´cil crear un puede entre el espacio a comprendido entre dos edificios o varias plantas en un edificio alto. Muchos administradores tienen prisa por configurar o su red inal´mbrica y no tienen mucho tiempo para activar esta importante funci´n. o o a consiste en seleccionar de forma aleatoria bancos de n´meros de tel´fono para encontrar m´dems activos. No se requiere un alto nivel de conocimientos para hacerlo. Cualquiera puede capturar ıa. Muchos modelos nos permiten a desactivar la parte SSID de la transmisi´n para que. cualquier intruso serio tendr´ el software o a a como para descifrar potencialmente el cifrado. no s´lo los atacantes pueden leer todo el tr´fico de la red o a inal´mbrica sino que probablemente puedan entrar en la red. Las redes inal´mbricas que utilizan 802. pero SSID se sigue enviando cuando una estaci´n se a o conecta. es muy probable que no se active el cifrado. por lo que hay intrusos de todos los niveles. Tambi´n existe el problema e e de la clave compartida por todos nuestros usuarios ya que WEP utiliza una sola clave entre todos ellos. como m´ n ınimo saber que tenemos una LAN inal´mbrica. de los primeros piratas inform´ticos.

esperando a e s´lo a que cualquier intruso oportunista de su zona al que le sobre algo de tiempo.html Existe hasta un catalogo de simbolos estandarizado para identificar redes wifis urbanas: Figura 14.nodedb. ın . a Las catalogan por tipo de equipamiento.Cap´ ıtulo 14.com/europe/es http://www.com/ http://www.1: S´ ımbolos urbanos de redes wifi Jose Antonio Escart´ Vigo. Junio 2005. cifradas o no cifradas.org/spanish/wireless. Las siguientes son bases o de datos online que se pueden consultar para ver si nuestra LAN se encuentra ya catalogada: http://www. es probable que est´ catalogada en uno de estos sistemas. etc. Redes inal´mbricas a 261 online con mapas para que cualquiera pueda encontrar una LAN Inal´mbrica bierta en cualquier parte.cybergeography. Si tenemos una LAN inal´mbrica en a un ´rea metropolitana importante.wifimaps.

canariaswardrive. Seguridad en redes inal´mbricas a Si tenemos la red inal´mbrica sin cifrado.11g. Jose Antonio Escart´ Vigo. seguridad o los vigilantes noten su presencia. pda o similar. Es debido a un fallo del algoritmo. La participaci´n en este tipo de competici´n exige inexorablemente un comportamiento o o deportivo intachable. a a 14. En abril de 2003 aparecieron en el mercado los primeros productos que incorporaban tecnolog´ de cifrado WPA. a Si en vez de tener una red abierta.” Ha m´s de un administrador de sistemas se le pondr´n los pelos de punta al leer esto. compartida por todos los usuarios inal´mbricos.2. Clave WPA (Wifi Protected Access) Esta destinada a garantizar la seguridad en las especificaciones IEEE 802. Un sistema homologado de puntuaci´n asignar´ una cantidad de puntos dependiendo del tipo de red o a local.11b y 802.org/ Estas son las curiosas bases del concurso: “Solo necesitamos explorar nuestra propia ciudad empleando un simple port´til. Fue o e introducida con el est´ndar 802. los intrusos tendr´n a que perder tiempo y esfuerzo en obtenerlos. La competici´n se divide en tres categor´ territoriales: o ıas Competici´n de Wardrive en Tenerife o Competici´n de Wardrive en Gran Canaria o Competici´n de Wardrive en toda Canarias o En estas competiciones se permite la participaci´n individual o por equipos. podemos encontrar mas informaci´n en esta direcci´n: n o o http://www. Clave WEP (Wired Equivalente Privacy) La clave WEP es una clave asim´trica. Esto desanimar´ a intrusos casuales. permiten deducir la clave. al menos. auditorias. cualquier intruso podr´ leer los datos que mandemos o incluso a a entrar en nuestra red. no es recomendable.262 Servidor Linux para conexiones seguras de una LAN a Internet Es tan grande este fen´meno que hace unos meses en las islas canarias. 14. crea una serie e de vectores de inicializaci´n d´biles que con un trafico de red suficiente. ya que WPA representa una mejor forma de protecci´n.4.4. 14. etc. Una coma a petici´n sin car´cter regional es la de los MiniGames.11a y actualmente ha quedado superado por WPA. concienciaci´n del o personal.11a. 802.2 podemos ver una comparativa entre las claves WEP Y WPA. ın . En ellos se o a a plantearan a los competidores retos tales como intentar romper la seguridad de redes. a dotado de una tarjeta wifi. ciframos los datos con clave WEP. La clave WEP. mejorando las claves WEP. Trabajando en o equipo se cubre m´s territorio y se encuentran los focos emisores m´s rapidamente. y har´ que los serios a a tengan que quedarse por nuestra zona varios d´ aumentando las posibilidades de que el personal de ıas. Est´ basada e a a en el algoritmo RC4 y tiene un nivel de seguridad d´bil.4. puede ser suficiente pero esto solo tiene lugar en entornos que no manejan datos sensibles y donde se produzca muy poco trafico de red. se celebrar´n en Tenerife. Junio 2005. En o determinadas situaciones.1. ıa En la figura 14. Es necesario implantar una serie de medidas: cifrado de datos. se organizo el primer campeonao to de Wardriving de Espa˜a (Canarias Wardrive’05).

Junio 2005. IEEE 802. de destino y de los datos. para cada sesi´n (teniendo una duraci´n limitada) y para cada paquete a o o enviado. ıa Ampl´ la longitud de la clave de 40 a 128 bits y pasa de ser unica y est´tica.11x define un protocolo para encapsular. generando un bloque de 4 bytes (denominado MIC) a partir de la direcci´n MAC de origen. La mezcla del n´mero de secuencia con la clave temporal genera la clave que se u u utilizar´ para el cifrado de cada fragmento.Cap´ ıtulo 14. a ser generada de forma ıa ´ a din´mica.1X/EAP o El est´ndar IEEE 802. Redes inal´mbricas a 263 Figura 14. protocolos de autenticaci´n sobre a o protocolos de enlace de datos. minimizando la reutilizaci´n de o o claves. Tambi´n utiliza claves para tr´fico de difusi´n y multidifusi´n.11x permite utilizar diversos m´todos para autentificar al usuario e a trav´s del protocolo de autenticaci´n extensible (EAP). Posteriormente los datos (que incluyen el MIC) se fragmentan y se les asigna un n´mero de secuencia.3: Funcionamiento WPA/EAP Jose Antonio Escart´ Vigo. Conceptualmente el vector de inicializaci´n pasa de 24 a 48 bits. e a o o Utiliza el algoritmo “Michael” para garantizar la integridad. Se concibe como una ampliaci´n de la capa de e o o enlace de datos: Figura 14.2: Comparativa entre WEP y WPA Privacidad e integridad con TKIP TKIP (Temporal Key Integrity Protocol) ampl´ y mejora a WEP. para cada usuario. a Autenticaci´n mediante 802. ın . solucionando sus vulnerabilidades. a˜adiendo el MIC calculado o n a la unidad de datos a enviar.

4: Autenticaci´n mediante un servidor Radius o El solicitante cuando pasa a estar activo en el medio.11x/EAP hacia el servidor de e ´ a autenticaci´n. reside en la estaci´n inal´mbrica o a El autenticador (authenticator). a a Los m´todos de autenticaci´n definidos en WPA son: EAP-TLS. La o o CA puede ser privada (empresarial) o p´blica (basada en CAs de Internet como Verisign). Authorization. a ı Cliente y servidor generan la clave de cifrado para esa sesi´n. El cliente env´ un mensaje “EAP Start”. A partir de ese momento el solicitante y el servidor de autenticaci´n o o se comunicar´n directamente. como los servidores Radius Utiliza un m´todo de control de acceso basado en el concepto de puerto (PAE. de forma que ya puede comunicarse el cliente de forma segura.264 IEEE 802. La premisa es la existencia de una Autoridad de Certificaci´n (CA) de o confianza para la corporaci´n. al validarlo el cliente responde con su certificado. el autenticador pasa el puerto del cliente a un estado o o autorizado y el tr´fico ser´ permitido. El solicitante. Port Acess Entity). Si el a o servidor de autenticaci´n acepta la autenticaci´n. Este ultimo env´ su certificado al e o ´ ıa cliente. Mientras o el cliente no se ha autenticado con ´xito unicamente se permite tr´fico 802. El e autenticador crea un puerto l´gico por cliente. reside en el AP El servidor de autenticaci´n. permitiendo o unicamente el tr´fico 802. reside en un servidor AAA (Authentication. ın . El autenticador (situado en el AP) detecta la asociaci´n del cliente y habilita un puerto para ese solicitante. o Figura 14. env´ su identificaci´n (nombre de o o ıa o usuario) hacia el autenticador y ´ste hacia servidor de autenticaci´n.11x define 3 entidades: Servidor Linux para conexiones seguras de una LAN a Internet El solicitante (supplicant). Junio 2005. si es as´ autentica al cliente. u o utilizando certificados digitales. utilizando un cierto algoritmo de autenticaci´n que pueden negociar. tras la o asociaci´n y la creaci´n del puerto de acceso por el autenticador. EAP-TTLS y PEAP. Estos m´todos se e o e basan en la infraestructura de clave p´blica (PKI) para autenticar al usuario y al servidor de autenticaci´n. & Accouno ting). El servidor de autenticaci´n comprueba si el o certificado es v´lido y corresponde con el nombre de usuario antes enviado. que emita certificados para los usuarios y el servidor de autenticaci´n. El ´ a a ıa autenticador responde con un mensaje “EAP Request Identity” para obtener la identidad del cliente. la respuesta del solicitante “EAP Response” contiene su identificador y es retransmitido por el autenticador hacia el servidor de autenticaci´n. u EAP-TLS (TRANSPORT LAYER SECURITY) Los usuarios y el servidor de autenticaci´n deben tener un certificado digital. existiendo dos caminos uno autorizado y otro no.11x. selecciona y se asocia a un AP. Jose Antonio Escart´ Vigo. el resto de tr´fico se bloquea. y el servidor de autenticaci´n la env´ al o o ıa punto de acceso.

como m´ ınimo. fundamentalmente de un e servidor Radius. Por a e ejemplo. tras autentificar el servidor al cliente. adem´s. ın . debemos actualizar e el firmware de los puntos de acceso y de los adaptadores de red inal´mbricos de las estaciones. Parece que la implementaci´n m´s probable es el a o a modo Cipher Block Chaining Counter Mode (CBC-CTR) con Cipher Block Chaining Message Authenticity Check (CBC-MAC). Tambi´n es posible u e a o e que tengamos que utilizar o implementar los servicios de una Autoridad de certificaci´n. actualizaci´n de software. integridad y autenticaci´n. Implementaci´n de WPA o Para soportar WPA. por ejemplo MS-CHAP v2. pero configurando manualmente una clave en el cliente wireless y en el punto de acceso. Junio 2005. o PEAP fue dise˜ado por Microsoft.Cap´ ıtulo 14. detecci´n de intrusos. o Seg´n el m´todo EAP elegido habr´ que definir la configuraci´n del servidor Radius. e e WPA y seguridad en peque˜ as oficinas n Los m´todos soportados por EAP necesitan de una cierta infraestructura. Cuando el cliente ha validado el certificado del n servidor de autenticaci´n y creado el t´nel. AES ya ha sido adoptado como est´ndar para a cifrado en sistemas de computaci´n y comunicaciones. Redes inal´mbricas a PEAP y EAP-TTLS 265 EAP-TLS exige que todos los clientes dispongan de un certificado digital lo que puede ser. el cliente o podr´ enviarle datos cifrados. Wifi ofrece los beneficios de o n WPA mediante el uso de una clave pre-compartida (PSK. Asimismo. TTLS soporta todos los m´todos EAP y se abre a nuevos m´todos. tanto los clientes como servidores deber´n de a seguir las directivas de seguridad definidas que deben incluir. o La idea subyacente es que si el servidor de autenticaci´n dispone de un certificado digital.11i) a a la especificaci´n Wifi Protected Access (WPA) ofrece una soluci´n fiable y robusta para garantizar la o o privacidad. en caso de que los productos no est´n certificados por su uso. o Conclusiones sobre el uso de WPA La seguridad es una cuesti´n conjunta por lo que las directivas aplicables a los segmentos de redes o inal´mbricas deben integrarse con el resto de directivas. lo que puede limitar su implementaci´n en redes peque˜as. ambos generan la clave de e sesi´n. Tambi´n se basa en crear en primer lugar un t´nel TLS o n e u pero los mensajes que intercambia son pares valor atributo (“attribute-value pairs”-AVPs) muy similares a los que utiliza Radius. eliminaci´n de servicios innecesarios o o o A la espera de poder implementar el est´ndar final sobre seguridad en redes inal´mbricas (802. EAP-TTLS fue dise˜ado por Funk Software. a˜adiendo capacidades de detecci´n de intrusos e incluso de analizar a n o el tr´fico inal´mbrico y detectar puntos de acceso no autorizados son mecanismos de seguridad necesarios a a para garantizar los requerimientos de seguridad. Jose Antonio Escart´ Vigo. Para evitar esta necesidad aparecen 2 m´todos: Protected e o e EAP (PEAP) y EAP-Tunneled TLS (EAP-TTLS). que requieren unicamente del certificado en el servidor ´ de autenticaci´n. cortafuegos personales. el uso de antivirus. basado en el algoritmo Rijndael para proporcionar privacidad y en claves de 128 bits o m´s. cre´ndose un “t´nel de seguridad” por donde el cliente podr´ enviar sus a a u a datos de autenticaci´n. en muchos casos. WPA indica el soporte de AES como opcional. Esto posibilita el n uso de TKIP.11i (denominado RSN: Robust Security Network) marcan a como algoritmo de cifrado a AES (Advanced Encryption Standard). pre-shared key) o contrase˜a. Cisco y RSA.11x y el m´todo EAP elegido. Windows XP soporta WPA mediante una actualizaci´n. la interoperabilidad entre fabricantes y o a ofreciendo un modo “natural” de migrar hacia WPA2. Garantizando. o existiendo dispositivos que lo implementan. En las a estaciones se deber´ actualizar el sistema operativo para soportar 802. un inconveniente t´cnico y econ´mico. Por ejemplo. conocido el conjunto como CBC-CCM. el uso de cortafuegos para conectar la a red inal´mbrica con la red corporativa. usando TLS se inicia una nueva autenticaci´n donde negocian o u o un m´todo. WPA y el uso de AES Las directrices del est´ndar final IEEE 802.

a Dentro de alg´n tiempo WPA2 se convertir´ en el est´ndar de seguridad para las redes inal´mbricas. As´ mismo. esta tecnolog´ dej´ de ser un borrador a finales de ıa o junio de 2004. especialmente port´tiles. es posible falsificar ı esta direcci´n en su propia tarjeta y hacerse pasar por el propietario. como puede ser una demostraci´n sin u o o cables en una sala de conferencias.4. si una escucha o o u n e clandestina descifra el cifrado. no hay que olvidar que muchos PCs nuevos. Desactivar la transmisi´n de SSID: Esta tarea requiere que el usuario conozca el SSID para establecer o una sesi´n con la estaci´n base. o Jose Antonio Escart´ Vigo. ın . ya que s´lo las personas con la tarjeta con un n´mero de serie correcto pueden obtener o o u acceso. limitar los tipos de tr´fico y registrar cualquier actividad que a provenga de dicha interfaz. un m´todo bastante s´lido para la e o autenticaci´n. Asimismo. Tratar la red inal´mbrica como de no confianza a Como no se puede controlar el tr´fico entrante por el aire. por lo que ya podemos referirnos a ella como un est´ndar aprobado por el IEEE. Sin embargo. Clave WPA2 (Est´ndar 802. Act´a como una contrase˜a d´bil. pero se puede reducir tomando una o a serie de medidas preventivas. si la red est´ superpuesta sobre otras redes cercanas. ıa a ´ Configurar correctamente la red inal´mbrica a Existen muchas opciones y configuraciones que podemos utilizar para aumentar considerablemente nuestra seguridad y aunque no todos los equipamientos admiten estas opciones. puede ser inc´modo para un administrador mantener el registro de las tarjetas o NIC autorizadas. es recomendable situar un cortafuegos entre su u red inal´mbrica y la LAN privada o situarla en una DMZ (Zona desmilitarizada).11i) a Aunque hace ya varios a˜os que se desvelaron las vulnerabilidades del protocolo WEP (raz´n por n o la que fue sustituido por WPA basado en TKIP).4. Podemos estar funcionando de forma inal´mbrica en nuestra n a red sin darnos cuenta. podemos intentarlas. Junio 2005. eso si contar que no permite el acceso instant´neo a un nuevo usuario en nuestra a oficina. Auditar el per´ ımetro inal´mbrico regularmente a Hay que probar la distancia de la se˜al. podr´ obtener el SSID f´cilmente. n a Es necesario realizar una tarea peri´dica para localizar cualquier punto de acceso “no controlado”. no se deber´ tratar de forma distinta a la a ıa parte p´blica del cortafuegos. Aun as´ es necesario tener en cuenta que el ı. La llegada de 802. algoritmo de cifrado AES requiere unas condiciones y una exigencia al hardware bastante alta. WPA2 se basa en 802. lo que significa que algunas interfaces inal´mbricas antiguas no ser´n capaces de satisfacer los requisitos de este a a est´ndar.4. Esta a nueva especificaci´n utiliza el algoritmo de cifrado AES (Advanced Encryption Standard). o La tecnolog´ inal´mbrica es ahora tan barata que cualquier usuario de nuestro sistema puede comprar. un mecanismo o extremadamente seguro que mereci´ en su d´ la aprobaci´n del NIST (National Institute of Standards o ıa o and Technology). Una auditor´ inal´mbrica es la unica forma de descubrirlo. abriendo as´ nuestra red para los ataques inal´mbricos. Medidas preventivas La implantaci´n de cualquier acceso inal´mbrico tiene un riesgo. si el atacante conoce una de las direcciones MAC autorizadas. Sin embargo.11i y es compatible con WPA. Actualmente ı a podemos encontrar hasta tarjetas de red wifi para USB. En la mayor´ de los puntos de acceso. tienen incorporadas a tarjetas wifi y habilitarlas es cosa de ni˜os. a a Restringir el acceso por la direcci´n MAC: As´ es m´s dif´ para alguien obtener acceso a nuestra o ı a ıcil red a trav´s de una estaci´n base inal´mbrica. Si nos lo podemos permitir. u a a a 14.11i debe ser acogida con entusiasmo debido al elevado nivel de seguridad que ofrece. podemos e o a ıa restringir el mismo a determinadas direcciones MAC hardware.3. ıa a instalar y configurar una tarjeta wifi para alg´n prop´sito licito o no. Despu´s se puede filtrar a e determinados tipos de paquetes de ataque.266 Servidor Linux para conexiones seguras de una LAN a Internet 14.

Cap´ ıtulo 14.253/32 { secret = clave_secreta shortname = localhost } Jose Antonio Escart´ Vigo.dslreports. Hay que aseg´rese de que los guardas de seguridad.conf : Aqu´ se configuran las IPs y las redes de sistemas que pueden ser clientes ı de radius.1. Aqu´ definimos los sisteo ı mas de autenticaci´n.org/HOWTO/html single/8021X-HOWTO/ HowTo EAP-TLS: http://www.2) donde el servidor y los usuarios o necesitan tener un certificado digital para comunicarse.5): Instalamos FreeRadius: #apt-get install freeradius Configuramos FreeRadius para trabajar con EAP-TLS Generamos los certificados Comprobamos que FreeRadius funciona correctamente Configuramos el AP (Router 3Com) Configuramos los clientes Linux Configuramos los clientes Windows XP (Actualizado a Service Pak 2) La informaci´n utilizada se puede encontrar en los siguientes HowTos: o HowTo 802. Hay muchas partes del fichero que no he utilizado.conf : Fichero de configuraci´n del servicio EAP del servidor radius. Servidor Radius: FreeRadius Lo que vamos a montar es un sistema EAP-TLS (Vease secci´n 14.edu/wireless/eaptls/ HowTo Radius en WindowsXP: http://www.5. ın . hay que desarrollar una pol´ ıtica a nivel de toda la empresa. Por ejemplo. el elemento humano puede ser el a punto m´s d´bil o el m´s fuerte.1. Es necesario que el servidor Radius se coloque en la misma m´quina donde se encuentra el cortafuegos. si ven a alguien sentado en su aparcamiento durante mucho tiempo dentro del coche.16. a Para configurar el sistema hay que seguir el siguiente esquema (Vease figura 14.16. los comentarios que llevan integrao dos en el c´digo ayudan bastante a la configuraci´n y es muy recomendable leerlos. Redes inal´mbricas a Formar al personal 267 Igual que sucede con todo lo referente a la seguridad inform´tica.4. Un personal informado puede ser nuestra mejor defensa.missl. es muy probable que se trate de alguien que busca entrar en nuestra red inal´mbrica. a Asimismo.conf : Fichero de configuraci´n general de Radius.1.com/forum/remark. con IP 172. en nuestro caso el AP (router 3Com.253) client 172.1x: http://tldp. Algunas veces una demostraci´n o es la mejor forma de mostrar este tipo de peligro. posiblemente con una antena extra˜a en el n techo del mismo. Junio 2005.umd. o o Hay que realizar las siguientes modificaciones: /etc/freeradius/radiusd. o /etc/freeradius/clients.9286052˜mode=flat 14.5. los recepcionistas y a e a u otro tipo de personal sepan buscar un comportamiento sospechoso.cs. o /etc/freeradius/eap. Configurar FreeRadius con EAP-TLS Los archivos de configuraci´n se encuentra en: /etc/freeradius/. 14.

ın .ppp". Framed-MTU = 1500. Framed-Protocol = PPP. Framed-IP-Address = 192.5: Sistema con cortafuegos + servidor Radius /etc/freeradius/users.0. Jose Antonio Escart´ Vigo. Junio 2005. Framed-Routing = Broadcast-Listen.255. solo hay que cambiar User-Password a y la IP. Framed-Compression = Van-Jacobsen-TCP-IP Si no nos queremos complicar en exceso.255.268 Servidor Linux para conexiones seguras de una LAN a Internet Figura 14.2.0.conf : A˜adimos los usuarios a los que les vamos a permitir el acceso a la red n josan Auth-Type := Local. User-Password == "atitelovoyadecir" Service-Type = Framed-User. Framed-Filter-Id = "std. para agregar m´s usuarios.168. Framed-IP-Netmask = 255.

usando los scripts predefinidos...+......+........ The ’certs’ directory should be copied to ...++*++*++*++*++*++* See the ’certs’ directory for the certificates...............+...................... Aqu´ nos encontramos con un problema......... siguiendo el ejemplo que all´ aparece............pl........pl’. para generar los certificados necesitamos unos scripts que ı vienen con el c´digo fuente de freeradius.+.... Generar los certificados Respecto a la generaci´n de certificados. pero tambi´n nos los podemos hacer nosotros... generator 2 This is going to take a long time ...............certs...... para obtenerlo: o #apt-get source freeradius. Jose Antonio Escart´ Vigo....................+./certs. nos descargar´ los fuentes en el directorio actual.+..Cap´ ıtulo 14...+..../certs...... ...........5......+............................certs.. con muy pocas modificaciones o podemos crear los certificados que nos hacen falta para trabajar de forma segura con nuestro wifi.........+. En el archivo CA..... ı colocaremos nuestros datos en las variables del inicio del fichero........... ..sh................. En mi caso he tenido que modificar el cert......sh Lo que se muestra por pantalla ser´ algo parecido a esto: a # ...... a Es recomendable colocar estos certificados en /etc/freeradius/certs........... a En el directorio scripts encontraremos una serie de archivos entre los que se encuentran los siguientes: CA.sh Generating DH parameters....+.......+............ Redes inal´mbricas a 269 14. ya que./certs y donde se encuentran todos los certificados que nos har´n falta para el cliente y el servidor...... A estos tendremos que a˜adir otro archivo de OpenSSL: CA......2....... y lo copiamos donde los otros archivos...... 512 bit long safe prime.......... si todavia no lo hemos instalado realizamos el apt: #apt-get install openssl libssl-dev ca-certificates Ahora tenemos dos opciones: Aprendemos a utilizar la infraestructura PKI (bastante complicada por cierto) Utilizamos los scripts de generaci´n de certificados que vienen con FreeRadius y OpenSSL o Escogeremos la segunda opci´n........... e Para ello utilizaremos OpenSSL..+..sh y xpextensions..+... ın .........../etc/raddb/ All passwords have been set to ’whatever’ Ahora tendremos un nuevo directorio llamado .. +. certs..... Junio 2005................. Es preciso verificar las rutas de las ordenes de los scripts ya que puede ser que sino no funcionen bien......... ........ o Para buscarlo podemos ejecutar: #find / | grep ’CA... ya que los archivos de configuraci´n o de freeradius apuntan a ese directorio y tendremos menos cosas que modificar.......... . Para generar los certificados lo unico que deberemos de hacer es: ´ #apt-get install .....................................+................. un script n Perl para crear Autoridades de Certificaci´n y cuyo path no suele estar en el $PATH del sistema......................... obviamente la idea es que los emita una entidad certificadora o contrastada..+......

eap. o a Radius Key es la clave secreta que hemos elegido en /etc/freeradius/client. y para lanzar el demonio: /etc/init. radiusd. para que apunten a los directorios donde los hemos colocado. La configuraci´n es realmente muy sencilla.1.conf : Hay que asegurarse de colocar la contrase˜a elegida en private key password.conf : Hay que revisar las rutas de los certificados.1. clients. Hay que introducir la direcci´n IP de la m´quina y el puerto de escucha del servicio Radius.conf Figura 14. Configurar AP (Router 3Com) El router 3Com que utilizo me permite introducir seguridad basada en WPA con soporte para un servidor Radius. En el AP ı n deberemos colocar la misma clave (lo podemos observar en la figura 14. yo lo tengo configurado como un router o entre dos redes la de usuarios (192. Aqu´ aparece otra contrase˜a que utilizan el AP y el FreeRadius para cifrar sus comunicaciones.253).6. a Revisamos el client. eap.conf.3.270 Servidor Linux para conexiones seguras de una LAN a Internet 14.conf y asignamos a esa IP permisos para hacer peticiones al servidor Radius.6: Router 3Com con WPA y servidor radius Jose Antonio Escart´ Vigo.conf. como se puede observar en la figura 14.conf. 14. e ıa ıa Ahora para ejecutar el servidor: #freeradius -X.conf y users. que ser´ el cliente de nuestro a servicio de Radius. Junio 2005.168. ın .0/24) e Internet (en el gr´fico la 172.5.4. si no lo n hici´ramos nos pedir´ la clave al arrancar al demonio y no podr´ arrancarlo iniciar el sistema.6).16. Comprobar el funcionamiento de FreeRadius Hay que repasar los archivos: radiusd.5. los ajustaremos para que cojan los certificados que hemos generado.d/freeradius start Antes de pasar a configurar los usuarios es necesario configurar el AP.

Cap´ ıtulo 14. eth0 eth1 no wireless extensions. esto e variar´ dependiendo de nuestra configuraci´n de hardware. esto se consigue mediante el comando: #/usr/sbin/wpa_passphrase <ssid> <passphrase> Despu´s solo queda lanzar el cliente: e #wpa_supplicant -B -i <ifname> -c <config_file> -D <driver> En mi caso.pem" private_key="/etc/cert/root. si en la documentaci´n no lo encontramos probablemente no ser´ compatible.11g ESSID:"example" Mode:Managed Frequency:2. Junio 2005. el config file lo cre´ en /etc/wpa supplicant. o a Si lo soporta.5.com" ca_cert="/etc/cert/cert-srv.442 GHz Access Point: 00:12:17:B8:2E:12 Bit Rate:54 Mb/s Tx-Power:25 dBm RTS thr:2347 B Fragment thr:2346 B Encryption key:41ED-EE53-EE7C-84BF-005D-A8F7-C10F-0CE0-9E7D-A17F-A5FD-2ECD-7FF3-6A4C-4E73-BDC5 Power Management:off Link Quality:95/100 Signal level:-54 dBm Noise level:-256 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:1609 Invalid misc:6740 Missed beacon:0 Para tener acceso mediante los clientes Linux hay que instalar el siguiente programa: #apt-get install wpasupplicant Y crear el archivo de configuraci´n (/etc/wpa supplicant. Y para comprobar si funciona correctamente la negociaci´n de los certificados ejecutamos: o #wpa_supplicant -dd -i eth1 -c /etc/wpa_supplicant.der" private_key_passwd="password"} Si utilizamos clave WPA sin servidor Radius se nos ofrece la posibilidad de encriptar la clave que se pasara por la red. necesitamos saber es como se llama la tarjeta en el sistema (en mi caso eth1): #iwconfig lo no wireless extensions.conf y el driver ipw.pem" client_cert="/etc/cert/root. ın . Redes inal´mbricas a 271 14.conf) para pasar el certificado al servidor o Radius: network={ ssid="example" proto=WPA key_mgmt=WPA-EAP pairwise=TKIP group=TKIP eap=TLS identity="user@example. Clientes Linux: WPA-Supplicant Debemos asegurarnos que nuestra tarjeta wireless se puede utilizar en WPA con EAP-TLS. a o Si ejecutamos: #wpa_supplicant -h. veremos que soporte y para que driver ha sido compilado. IEEE 802. ifname es eth1.5.conf -D ipw Jose Antonio Escart´ Vigo.

Instalamos el certificado de la entidad emisora: root.p12. Pulsando sobre ´l deber´ de aparecer: o e ıa En certificados personales. “utilizar selecci´n simple de certificado”. Junio 2005. nos pedira la contrase˜a del certificado n Para comprobar que realmente ha sido instalado.6. debemos asegurarnos que nuestra tarjeta wireless se puede utilizar en WPA con EAP-TLS. “certificados”. vamos a ver las “conexiones de red inal´mbricas disponibles”.272 Servidor Linux para conexiones seguras de una LAN a Internet 14. Para instalar los certificados generados por OpenSSL (root. establecemos como autenticaci´n de red “WPA” y como cifrado de datos “TKIP” o Despu´s cambiamos a la pesta˜a de autenticaci´n y establecemos como EAP “tarjeta inteligente u e n o otro certificado” y activamos la opci´n “Autenticar como equipo cuando la informaci´n del equipo o o este disponible” Solo queda pulsar sobre “propiedades” de EAP Solo queda seleccionar las siguientes opciones y aceptar: “usar un certificado en este equipo”. Clientes Windows: WindowsXP + SP2 Como con los clientes Linux. Ahora. si volvemos a la pantalla principal de selecci´n de redes detectadas y si pulsamos sobre nuestra o red podremos observar que aparece al lado del reloj del sistema un icono que nos informa sobre el uso del certificado. ejecutamos el siguiente comando en la consola: mmc A trav´s del Microsoft Manegement Console (mmc) podemos comprobar el certificado. : e Elegimos la opci´n “agregar”. ın .p12) es suficiente con hacer doble click sobre ellos. Jose Antonio Escart´ Vigo. “validar un certificado de servidor” y elegir el certificado cliente que o hemos instalado. o a Pulsamos sobre “cambiar el orden de las redes preferidas” Seleccionamos nuestra red en el listado.der Instalamos el certificado de cliente: root. Si presionamos sobre este icono aparecer´ una ventana emergente que nos avisa de que se a est´ validando el servidor y que presionemos “aceptar” si el certificado es correcto.5.der y root. una vez presionemos a ya no ser´ necesario volver a repetir el proceso y si todo va bien podremos conectarnos de forma segura a a nuestra red. el certificado del servidor Ahora falta asociarlos a una conexi´n. podremos observar que tiene el WPA activado Apretamos al boton “propiedades” En esta ventana. el certificado de cliente En entidades emisoras.

2 recoge los par´metros que se pueden configurar) a Editar y configurar el archivo: /etc/kismet/kismet ui. Herramientas de seguridad Las redes wifi son inseguras por definici´n. Podemos incluso ejecutar Kismet en modo IDS para buscar intentos de intrusi´n que provengan de nuestra red inal´mbrica.kismetwireless. a a La interfaz se divide en tres secciones principales: La secci´n Network List (lista de redes) que se encuentra a la izquierda muestra todas las redes o inal´mbricas activas que puede ver Kismet y alguna informaci´n b´sica sobre ellas: el SSID de la red a o a (si est´ disponible). el n´mero total o u u de paquetes. podremos utilizar Kismet Wireless herramienta que detallo a continuaci´n.1. si la utilizamos para el cifrado de datos.6. los paquetes descartados y la media de paquetes por segundo. He elegido Kismet debido a su creciente oferta de m´dulos de soporte. o a Si en nuestra red no permitimos estas conexiones o si queremos estar alerta sobre que hacen nuestros clientes wifi (sean clientes autorizados o no). 14. las redes d´biles percibidas. aqu´ se han de establecer las preferencias ı de la interfaz gr´fica de kismet (el cuadro 14. apareciendo en color rojo las redes activas y en negro las que no est´n activas. el a a canal en el que se est´ transmitiendo. aqu´ se ha de configurar el inicio de sesi´n ı o y las preferencias de la interfaz wifi (el cuadro 14.1).6. si est´ cifrada o no utilizando WEP. o a Instalar Kismet Se puede obtener la versi´n m´s actualizada del programa en la direcci´n: o a o http://www. Funciona con otros programas y puede dise˜arse para recopilar claves de cifrado para los intentos n de descifrado por otros programas externos. Jose Antonio Escart´ Vigo.3 recoge los par´metros que se pueden configurar) a a Ya esta listo para auditar la red inal´mbrica a Kismet trabajando como sniffer de red Iniciamos Kismet desde la l´ ınea de comandos.conf.conf. Redes inal´mbricas a 273 14. que proporciona incluso m´s e a flexibilidad. el hecho de comunicarse por un medio de libre acceso como o es el aire implica que la transmisi´n ser´ vulnerable. el tipo (punto de acceso frente a nodo). ın . Descubrir redes ilegales e intrusos: Kismet Wireless Kismet Wireless es uno de los sniffers inal´mbricos principales para Linux. pero existen otros programas a como AeroSniff o Prism2Dump. Se abre la interfaz principal y inmediatamente informa sobre cualquier red inal´mbrica en el ´rea. La pantalla est´ codificada a a con colores. cuala u quier indicador sobre los datos y la cantidad de datos que est´n por la red. el n´mero de paquetes interceptados hasta el momento. Tambi´n comento la herramienta de auditor´ AirSnort que trata de descubrir la clave o e ıa WEP. el n´mero de paquetes cifrados.Cap´ ıtulo 14. los paquetes con un alto u e nivel de ruido. Junio 2005. o Es una herramienta cliente-servidor como Nessus (V´ase apartado 17. a El cuadro Info (informaci´n) que se encuentra a la derecha de la pantalla muestra las estad´ o ısticas globales para esta sesi´n de captura (incluyendo el n´mero total de redes detectadas.net Los pasos a seguir son los siguientes: Instalar el programa: #apt-get install kismet Editar y configurar el archivo: /etc/kismet/kismet.

utiliza comandos de teclas para controlar sus funciones.274 Servidor Linux para conexiones seguras de una LAN a Internet Cuadro 14. En una zona muy ocupada con mucha interferencia o cuando se utiliza una tarjeta que tiene una antena externa.cualquier paquete que parezca que se va a desglosar o fragmentar por el quete) ruido. se obtiene utilizando AirSnort. Tambi´n puede utilizar cualquier combinaci´n de estas e o configuraciones. aunque con una GUI. de un punto de acceso determinan do. n source=type. siendo bssid la direcci´n MAC del punto de acceso y key la clave para dicho punto de acceso Using an external IDS Env´ paquetes a un IDS externo para un an´lisis posterior ıa a (Utilizar un IDS externo) Par´metro a Capture source (Origen de captura) Cuadro 14. La configuraci´n phylog quita cualquier paquete de la capa f´ o ısica que a veces se recogen. El cuadro 14. name Fuzzy encryption Muestra cualquier paquete que hayamos identificado como “sin descifrar” (Cifrado confuso) para las estaciones que est´n utilizando m´todos de cifrado sin definir o a e propietarios. Cada punto de acceso necesita una declaraci´n independiente en el formato o o bssid:key. Lo podemos instalar con el comando: #apt-get install gpsd Para utilizarlo es parecido habilitar el uso de GPS en el archivo de configuraci´n de Kismet. La opci´n beaconlog quita todos los paquetes de o se˜ales luminosas. eth1. Cambiamos la configuraci´n con color xxx al c´digo de color que deseemos.3: Configuraci´n de la la interfaz UI de Kismet o Descripci´n o Cambia lo que aparece en las columnas de la interfaz Kismet y su orden. a Podemos ir un paso m´s all´ y crear un mapa con estas coordenadas. ın . a Necesitamos el software demonio de GPS gpsd para que Kismet pueda leerlo. interface. Los mensajes se abren cuando aparecen nuevas redes o se producen otros eventos.4 incluye una lista de las teclas disponibles desde la pantalla principal. Sin embargo. pri(Descifrar claves WEP) mero tiene que tener la clave que a veces. etc. excepto el primero.2: Archivo de configuraci´n de Kismet o Descripci´n o Define las interfaces que va a escuchar Kismet. Decrypt WEP keys Descifra los paquetes de datos interceptados al momento. Kismet incluye un programa a a Jose Antonio Escart´ Vigo. o Configuraci´n o Columns (Columnas) Colors (Colores) El cuadro Status (Estado) en la parte inferior de la pantalla contiene una vista de desplazamiento con los eventos producidos. puede mantener el tama˜o n de su registro reducido. Tendr´mos o o e que jugar con esta configuraci´n un poco hasta obtener los colores correctos. Un listado completo de columnas se encuentra disponible en las p´ginas del manual a de Kismet Cambia los colores de cualquiera de los elementos que se muestran. Cambiamos el valor de columns o clientcolumns incluyendo lo que desea ver. Soporte GPS de Kismet Kismet tiene la capacidad de grabar datos GPS si tiene un receptor GPS conectado a la m´quina. Despu´s o e Kismet escoge autom´ticamente las coordenadas de las redes detectadas y las registra. Generalmente se deja desconectado a no ser que su tarjeta est´ informando sobre redes cifradas como “sin descifrar”. e Filtering packet logs Limita el paquete que se registra. Como Kismet es una herramienta de l´ ınea de comandos. Junio 2005.) ya deber´ estar configurada a ıa aqu´ Si desea a˜adir interfaces adicionales puede hacerlo en el formato: ı. Utilice la opci´n noiselog para quitar o (Filtrar registros de pa. Normalmente la interfaz inal´mbrica principal (wlan0.

14. podemos probar si nuestra clave se ıa puede deducir facilmente con esta herramienta. cosa que no recomiendo. incluyendo sondeos del programa NetStumbler (herramienta a para Windows). o a Tambi´n puede configurar Kismet para recopilar claves d´biles conocidas criptogr´ficamente para un e e a programa como AirSnort. ın . Junio 2005. si est´n activados (o los activa si est´n silenciados) a a Renombra la red o el grupo seleccionado Muestra los tipos de paquetes tal y como se han recibido Muestra un gr´fico de barra del porcentaje de los paquetes a Ordena la lista de redes de forma diferente Codifica (o descodifica) la red actual Desagrupa la red actual Muestra todas las alertas y avisos previos Ampl´ el nivel de zoom del panel de presentaci´n de la red a pantalla completa (o vuelve a su ıa o tama˜o normal si ya estaba en pantalla completa) n denominado GPSMPA que traza autom´ticamente los datos recopilados en mapas en formato .Cap´ ıtulo 14.5) e e o para obtener un an´lisis m´s detallado. a Detecta unos 10 tipos diferentes de tr´fico.4: Comandos de tecla Kismet Descripci´n o Muestra estad´ ısticas sobre cuentas de paquetes y asignaciones de canal Abre una ventana emergente para mostrar los clientes en la red seleccionada Le indica al servidor que inicie la extracci´n de cadenas imprimibles desde el flujo de paquetes o y que las muestre Abre una ventana emergenete en servidores Kismet. como es de ıa a libre distribuci´n. Existe un programa de trazado de mapas de libre distribuci´n para Linux denominado GPSDrive.conf y de forma predeterminada est´ deshabilitada. o AirSnort se desarroll´ como una aplicaci´n pr´ctica para demostrar la debilidad de WEP. la actividad de Airjack y otras herramientas de pirater´ inal´mbrica. siempre podemos ampliarlo mediante la escritura de nuestras propias alertas. Actualmente la encriptaci´n WPA es m´s segura y es una o a mejor soluci´n para servidores. lo o podemos instalar con: #apt-get install gpsdrive. Kismet interceptar´ todas las se˜ales e a a n entrates y detectar´ el tr´fico inal´mbrico que se sabe est´ asociado con los ataques a redes wifi o activia a a a dades inal´mbricas sospechosas. Pasemos a a describir el funcionamiento de este programa. el protocolo o o a b´sico de cifrado inal´mbrico. lo que permite supervisar simult´neamente a dos o m´s servidores Kismet en distintos anfitriones (hay que recordar que se trata de una a arquitectura cliente-servidor) Sigue el centro estimado de una red y muestra un comp´s a Agrupa las redes codificadas actualmente Obtiene una lista de todos los comandos posibles Muestra informaci´n detallada sobre la red o el grupo actual o Muestra los niveles de se˜al/capacidad/ruido si la tarjeta informa sobre ellos n Silencia el sonido y la voz. Redes inal´mbricas a 275 Tecla a c d e f g h i l m n p r s t u w z Cuadro 14. IDS de Kismet Tambi´n podemos configurar Kismet como un IDS inal´mbrico. a a La opci´n IDS se configura en /etc/kismet/kismet.2.gps El a inconveniente es que tiene que proporcionar su propio mapa GPS calibrado. Tambi´n o e podemos canalizar los datos de Kismet a trav´s de un IDS tradicional como Snort (V´ase secci´n 13. Una nota sobre las debilidades en el algoritmo de programaci´n de claves de a a o Jose Antonio Escart´ Vigo. Desencriptar claves inal´mbricas WEP: Airsnort a Si utilizamos criptograf´ por clave WEP. Y.6. que analiza paquetes inal´mbricos e intenta descifrar el cifrado WEP.

que empleaban las debilidades descritas para recuperar claves WEP. Puede dividir sus actividades de recopilaci´n en incrementos de tiempo m´s peque˜os y menos perceptibles. lo que sit´a a nuestra a n o ıas u red fuera del reino de lo pr´ctico para la mayor´ de los piratas inform´ticos casuales. puede ser cuesti´n de d´ o incluso de semanas. AirSnort puede guardar una sesi´n y retomarla o o posteriormente para realizar adiciones. Si u o tardamos mucho tiempo. como mejores controles f´ a ısicos o limitar el tr´fico en la red. Martin y Shamir. Puede justificar incluir ıa.276 Servidor Linux para conexiones seguras de una LAN a Internet RC4. si es a ıa a una red ocupada. Es una realidad matem´tica que se puede a o a descifrar en alg´n punto utilizando esta herramienta. AirSnort ıa lleva a cabo precisamente esta tarea. si lo sabemos. Si se est´ utilizando un a a WEP est´ndar. Una red inal´mbrica que utiliza este protocolo puede a ser. Como puede verse en la figura 14. actualmente (solo actualmente) indescifrable. describiendo la debilidad de algunos vectores de inicializaci´n. ahorr´ndonos este a paso. escrita por los expertos criptogr´ficos Fluhrer.net y que se ha o extendido y mejorado considerablemente desde su lanzamiento. Kismet separar´ espec´ a ıficamente los paquetes interesantes para AirSnort. Si el nivel de tr´fico de nuestra LAN es peque˜o. a AirSnort es ahora un proyecto de libre distribuci´n que se encuentra en SourceForge. Ambas son buenas herramientas. AirSnort y WEPCrack.7. De cualquier forma. Una vez instalado AirSnort. lo que convierte a AirSnort en una herramienta particularmente peligrosa para redes inal´mbricas ya que nadie tiene que perder una sesi´n interrumpida cerca de nuestras a o instalaciones para recopilar los paquetes suficientes como para entrar en nuestra red. Poco despu´s. suponiendo que o a n la red controlada no cambie sus claves con frecuencia. ın . inclu´ detalles sobre una te´rica a ıa o debilidad en el algoritmo WEP. Tambi´n puede justificar la a e actualizaci´n de nuestro equipamiento inal´mbrico. pero AirSnort tiene una funcionalidad a adicional como sniffer inal´mbrico. Sin embargo. descifr´ndolas con efectividad. normalmente la tarjeta de red inal´mbrica u a gencases: Ordena los datos capturados en busca de claves d´biles e decrypt: Realiza los intentos en desconexi´n de descifrado para los archivos cargados desde otro o origen AirSnort acepta archivos de otros sniffers inal´mbricos siempre que se guarden en formato PCAP. No es necesario tener toda la colecci´n de datos a la vez. Junio 2005. la interfaz es muy simple: es una sola pantalla que muestra los paquetes Jose Antonio Escart´ Vigo. m´s protecciones. dormiremos mucho mejor por la noche. Creo que la ´ o unica forma de saber lo expuesta que est´ nuestra red inal´mbrica es hacer lo que har´ un intruso para ´ a a ıa comprobar si nuestro cifrado se puede descifrar y la cantidad de tiempo que tardar´ en hacerlo. lo que permitir´ descifrar f´cilmente los paquetes. Podemos descubrir que el nivel de tr´fico no hace que a sea pr´ctico descifrar el cifrado. a Ejecutar AirSnort Para instalarlo solo hay que ejecutar la siguiente instrucci´n: o #apt-get install airsnort Tiene tres archivos ejecutables principales: airsnort: Recopila los paquetes desde alg´n origen. Con a el tiempo. se lanzaron dos ıa a e herramientas. Al intentar descifrar el cifrado inal´mbrico. podemos ver si se puede hacer. podemos empezar escribiendo airsnort en la l´ ınea de comandos. entonces es simplemente cuesti´n de tiempo. La cuesti´n es cuanto tardaremos en hacerlo. Usos de AirSnort ¿Por qu´ utilizar AirSnort en una red inal´mbrica? Alguien podr´ decir que no existe un uso leg´ e a ıa ıtimo para el programa y su unico prop´sito es el de ser una herramienta para el asalto de redes. podemos suponer razonablemente que estamos bastante seguros. alguien podr´ recoger los paquetes suficientes para descifra nuestro cifrado en cuesti´n ıa o de horas o en un d´ Saber todo esto nos ayuda a proteger mejor nuestra red. Los paquetes o cifrados con estos vectores d´biles se pod´ coleccionar y al final habr´ suficientes datos para extrapolar la e ıan ıa clave secreta compartida. como el que se propone en este proyecto. como por ejemplo a un sistema WPA con un servidor o a Radius.

Redes inal´mbricas a 277 interesantes y el n´mero total de paquetes cifrados y sin cifrar. tardar un a a par de horas. La secci´n superior muestra nuestras u o configuraciones. Jose Antonio Escart´ Vigo. Sin embargo deber´ ıamos pensar en tomar medidas para aumentar la seguridad de nuestra red inal´mbrica para que sea m´s dif´ a a ıcil recopilar estos datos. todo se basa en tener un poco de suerte. ın . es el momento de sentarnos a recopilar paquetes. Si no tenemos muchos datos o tenemos mucha capacidad de procesamiento adicional. El valor predeterminado es 3 para cifrados de 40 bits y 2 para cifrados de 128 bits. a o Figura 14. podemos tardar m´s y en redes ocupadas mucho menos. como el tipo de tarjeta NIC. por a lo que los resultados pueden variar entre una hora y nunca. aparece tanto en texto normal como en hexae decimal en la parte izquierda de la pantalla y los extremos de la sesi´n de captura. Junio 2005. En una red e moderadamente ocupada. pero no m´s de 4 ´ 5. Tendremos que tomar decisiones bas´ndonos en la a confidencialidad de los datos que tratamos en nuestra red. Evidentemente.7: Imagen de AirSnort A continuaci´n. aproximadamente entre 100MB y 500MB de datos. En redes a ıas m´s lentas. Para que AirSnot funcione correctamente. No hay que esperar descifrar claves o WEP en un momento.Cap´ ıtulo 14. Hay que seguir muchos pasos que var´ desde reemplazar el equipamiento hasta ıan volver a configurar y cambiar el AP (punto de acceso). Hay que esperar. es decir. o ¿Qu´ pasar´ si encontr´semos las claves WEP? Bueno. podemos tardar uno o m´s d´ en recopilar esta cantidad de datos. al menos. A la derecha podemos cambiar algunas configuraciones como breadth (n´mero e intentos que tiene que realizar AirSnort por cada byte de clave) para intentos de u descifrado de 40 bits o 128 bits. podemos intentar aumentar este valor ligeramente. necesita aproximadamente entre 1. hay que tranquilizarse. aunque seguramente sea m´s.500 paquetes con claves d´biles.500 y 4. Cuando un desciframiento de la clave WEP tiene ´xito. etc. que no nos entre el e ıa a p´nico ya que la mayor´ de los intrusos casuales no se molestar´n lo m´s m´ a ıa a a ınimo.

.

as´ como a o o ı los logs de actuaciones.0. https si usamos SSL Webmin est´ dividido en diversos m´dulos. Por ejemplo. Cada uno de estos se encarga de la administraci´n de una a o o parte concreta del sistema operativo y de los diferentes servicios que tengamos instalados.Cap´ ıtulo 15 Servicio de administraci´n por Web: o WebMin Para acceder a la configuraci´n de Webmin. Crea una configuraci´n para cada uno de los m´dulos bas´ndose en la estructura de ficheros y confio o a guraci´n predeterminada para la versi´n y distribuci´n de Linux seleccionadas. Secciones Webmin La secci´n Webmin nos da acceso a las diferentes opciones de configuraci´n de Webmin. o En el caso de que se nos olvide la contrase˜a de acceso y tengamos acceso como root al ordenador. o o a delegando f´cilmente la administraci´n de determinados servicios del ordenador a diferentes usuarios y a o siendo posible incluso determinar que aspectos de un determinado servicio podr´ administrar.pl /etc/webmin usuario nuevo_password En el m´dulo usuarios de Webmin se encuentran las diferentes opciones disponibles para definir y o configurar los usuarios que tendr´n acceso a Webmin.0. Nota: Un problema que puede producirse en determinadas circunstancias es que una vez finalizada la instalaci´n algunos de los m´dulos que componen Webmin no funcionen correctamente. o o o Los m´dulos incluidos por defecto en Debian nos permiten administrar entre otros servicios Apache.1:10000.2. si no hemos cambiado los puertos por defecto: o http://127. a 15. o Squid. Usuarios de Webmin El usuario por defecto es el root. . Exim. si el ordenador se utiliza como servidor de correo. una vez que entramos en Webmin podemos crearnos uno o varios usuarios de administraci´n Webmin. el ´ ındice de servidores Webmin y los usuarios Webmin. Fetchmail. o si se emplea como o o o servidor de impresi´n crear´ o ıamos un usuario que pudiera administrar las colas de impresi´n. o http://localhost:10000 . Samba. MySql.1. o De esta forma es posible crear diferentes usuarios en funci´n de los m´dulos a los que tendr´n acceso. podemos crear un usuario que tan s´lo tenga acceso al m´dulo de administraci´n de Exim. a 15. Bind. Esto suele ser o o debido a que alguna parte del software se ha instalado en directorios que no son est´ndar en Linux.changepass. etc. Permite al administrador del sistema crear diferentes a usuarios para determinadas tareas. se n puede crear una nueva utilizando el comando: /usr/share/webmin/.

cambiar el puerto utilizado.280 Servidor Linux para conexiones seguras de una LAN a Internet Desde el m´dulo de configuraci´n de Webmin podemos cambiar los aspectos m´s importantes del o o a propio Webmin como instalar nuevos m´dulos. ın .1: Webmin pantalla de configuraci´n o Control de acceso a IP Ya que Webmin tienen su propio servidor web (miniserv.168. Figura 15. Webmin nos permite guardar en el historial las acciones realizadas en funci´n del m´dulo utilizado o o o del usuario. Se permite programar cuando se limpiar´ el historial para evitar que el tama˜o del mismo a n crezca en exceso. ya que por defecto el servidor aceptar´ peticiones o a a realizadas a cualquiera de las direcciones IP asignadas al sistema.pl) desde esta opci´n podemos seleccionar o qu´ direcciones de red (como 192. Es aconsejable limitar el acceso a Webmin al m´ ınimo de ordenadores que sea posible para evitar de esta forma intentos de acceso no autorizados. ı a De esta forma podremos monitorizar f´cilmente las actuaciones realizadas por los diferentes usuarios a los a que proporcionemos acceso a Webmin.es) es posible acceder a Webmin.100. cambiar el idioma. etc. eliminar o o n modificar usuarios de Webmin.168. Desde esta opci´n confio o guraremos el acceso a Internet de Webmin en el caso de que estemos utilizando un servidor proxy o un cortafuegos para acceder a Internet Interfaz de usuario El interfaz de usuario de Webmin puede ser modificado de diferentes formas para ajustarse a las preferencias de cada uno de los usuarios. En el caso o de que nuestro ordenador tenga asignada m´s de una direcci´n IP tambi´n podremos establecer qu´ dia o e e recci´n IP deber´ atender el servidor web de Webmin. como es el caso de la herramienta de actualizaci´n de Webmin. Servidores Proxy Webmin dispone de diferentes herramientas que necesitan disponer de acceso a Internet para funcionar correctamente. Diario Desde aqu´ configuraremos la forma en que Webmin guardar´ un registro de las acciones realizadas. actualizar Webmin. Junio 2005. a˜adir.100.0).7) o nombres de hosts e (linux. Jose Antonio Escart´ Vigo. Puerto y direcciones En esta opci´n estableceremos el puerto utilizado para acceder a Webmin.upc. direcciones de host (como 192. por defecto 10000.

la cual modifica la o estructura de directorios en los que se guardaba la configuraci´n de los diferentes servicios del sistema. Junio 2005.Cap´ ıtulo 15. actualizaremos o eliminaremos los m´dulos utilizados por Webmin. cada uno de estos m´dulos se encargan de realizar una a o o tarea determinada interrelacionada con el servidor web de Webmin (miniserv. en nuestro caso apt. Estos m´dulos Webmin son archivos de extensi´n . Utiliza un gestor de paquetes para realizar la tarea. As´ por ejemplo. Mejorar Webmin Desde esta p´gina es posible actualizar Webmin a la ultima versi´n disponible de forma autom´tica o a ´ o a desde un archivo que hayamos descargado de Internet. con esta opci´n duplicaremos el m´dulo de administraa o o ci´n de Apache para permitir a diferentes usuarios acceder de forma independiente a la versi´n de Apache o o que sea necesario. ın . Servicio de administraci´n por Web: WebMin o 281 Desde esta opci´n se modifican los colores y tipos de letras utilizados para visualizar las p´ginas de o a Webmin. o o Sistema operativo Desde esta opci´n podremos especificar cual es nuestro sistema operativo. seleccionaremos y borraremos aquellos m´dulos que no o ´ o o nos sean de inter´s o no se vayan a utilizar. indicando el n´mero de iconos a visualizar en cada fila. si no tenemos instalado en nuestro ordenador e ı. PostgreSQL podemos eliminar el m´dulo utilizando para su administraci´n. Eliminar m´dulos Desde esta ultima secci´n. hemos actualizado el sistema operativo instalando una versi´n nueva. Desde esta opci´n. a˜adiresmo.pl). ya sea o o o o desde un archivo que se encuentre en el ordenador o desde un archivo que tenga que descargarse de Internet. Jose Antonio Escart´ Vigo. si tenemos dos configuraciones ı. o n o Est´ se encuentra dividida en tres secciones: a Instalar m´dulo o Clonar m´dulo o Borrar m´dulos o Instalar m´dulo La secci´n Instalar m´dulo permite instalar un nuevo m´dulo de Webmin. ıas u Tambi´n podemos indicar si queremos agrupar los m´dulos en funci´n de la categor´ a la cual pertee o o ıa necen. As´ por ejemplo. por ejemplo. o Opciones de p´gina ´ a ındice En esta opci´n seleccionaremos el formato de la p´gina inicial de Webmin y de las diferentes p´ginas o a a ´ ındice de cada una de las categor´ existentes. M´dulos de Webmin o Webmin est´ formado por diversos m´dulos. o Lenguaje Se emplea para seleccionar el idioma utilizado para visualizar los textos en los m´dulos. Este proceso deber´ realizarse o a si. diferentes de Apache ejecut´ndose en el ordenador.wbm o o Clonar un m´dulo Esta opci´n permite al administrador del sistema duplicar un m´dulo para permio o o tir a determinados usuarios administrar ciertos servicios.

ıa Editar categor´ ıas Utilizaremos esta opci´n para crear nuevas categor´ o editar las existentes. esto indicar´ que alguien est´ ejecutando una aplicaci´n autom´tica para descubrir a a o a nuestra contrase˜a. utilizando temas. sea administrador o o no. se bloquear´ el acceso al ordenador si se producen una serie de fallos en unos segundos o a determinados. En el caso de que nuestro ordenador y Webmin sean accesibles desde Internet es recomendable utilizar las caracter´ ısticas de autenticaci´n proporcionadas por Webmin para proteger nuestro sistema de posibles o ataques. cualquier usuario que tenga acceso al sistema. Jose Antonio Escart´ Vigo. Estas categor´ est´n definidas en funci´n de la tarea que realiza el m´dulo. Hay que tener mucho cuidado con esta opci´n. Esto puede causar que otro usuario que emplee el a e mismo navegador tenga acceso a nuestro sistema sin conocer tan si quiera la contrase˜a o nombre de n usuario de Webmin. o ıas Temas de Webmin En estas secci´n se puede modificar el aspecto y los colores de Webmin. ın . e o Tambi´n podemos especificar si permitimos el acceso a Webmin empleando las cuentas de usuario e del sistema en lugar de emplear las cuentas de usuario definidas desde Webmin. limitando de esta forma desde o qu´ ordenadores se podr´ utilizar. Desde estas opci´n Webmin nos ıas a o o o permite asignar un m´dulo a una nueva categor´ en el caso de que no estemos de acuerdo con la categor´ o ıa ıa asignada por defecto. La primera opci´n que encontramos en la ficha es Tiempo m´ximo de clave de acceso. podr´ trabajar con Webmin. o Los temas de Webmin son muy flexibles. e a Acceso an´nimo a m´dulo o o Esta secci´n permite garantizar acceso a m´dulos selectos de Webmin y a trayectorias sin necesidad o o de que los clientes hagan login. uno de los peligros con los e que podemos encontrarnos es el hecho de que la informaci´n de autenticaci´n se guarda en el navegador o o y puede ser reenviada de forma autom´tica desde ´l. En esta secci´n podremos indicar que hosts tienen acceso a Webmin. permitiendo al desarrollador modificar pr´cticamente cualquier a aspecto de la apariencia y distribuci´n de los elementos de Webmin. n La Autenticaci´n de sesi´n nos proporciona un m´todo para desconectar un usuario de Webmin si o o e transcurre un determinado tiempo sin que ´ste realice alguna operaci´n.282 Servidor Linux para conexiones seguras de una LAN a Internet Autenticaci´n o Webmin proporciona algunas caracter´ ısticas orientadas a prevenir ataques como puede ser el intentar averiguar la contrase˜a de administraci´n a base de probar diferentes contrase˜as de forma autom´tica n o n a hasta encontrar la correcta. Algunos m´dulos desarrollados antes de que se crearan las categor´ en Webmin se asignan por defecto o ıas a la categor´ Otros. Si activamos o a esta opci´n. a Reasignando m´dulos o Como ya se ha comentado Webmin agrupa los m´dulos instalados en diferentes categor´ o ıas. Junio 2005. o Referenciadores de confianza Al estar basado en archivos web y accederse a ´l desde un navegador web.

Para instalar OpenSSL y Net::SSLeay deberemos instalar los siguientes paquetes: #apt-get install openssl #apt-get install libnet-ssleay-perl Autoridad de certificado Esta opci´n se emplea para configurar un certificado SSL para el sistema. Este m´todo tambi´n inv´lida pol´ o e e a ıticas de seguridad como la desconexi´n o del usuario despu´s de un determinado periodo de inactividad. ya que simplemente volviendo a abrir el e navegador podr´ ıamos acceder. La mayor´ de ellos han sido utilizados durante la elaboraci´n del proyecto. ın . se enviar´ de forma encriptada. Para instalar los m´dulos.3. ya que la informaci´n. En la tabla 15. o a ´ ıa o Podemos buscar m´s m´dulos Webmin dentro del sistema Debian con apt-cache: a o #apt-cache search webmin Otra fuente de m´dulos para Webmin la encontraremos en la p´gina: o a http://webadminmodules. Junio 2005.0. de la forma: o https://127. Para acceder a Webmin utilizaremos una conexi´n segura. que podemos instalar con apt y que permiten configurar de forma r´pida o a y gr´fica muchas partes del sistema.net/ Aqu´ hallaremos una gran cantidad de m´dulos agrupados por categor´ ı o ıas. De esta forma es posible o configurar Webmin para que no sea necesario proporcionar un usuario y contrase˜a para utilizarlo. Los n usuarios pueden solicitar un certificado personal en el m´dulo de usuarios de Webmin y agregarlo al o navegador. M´dulos de Webmin o Existen diversos m´dulos. ´ https://localhost:10000 o As´ incrementaremos la seguridad de Webmin.sourceforge. de esta forma el navegador podr´ autenticarse de forma autom´tica y segura. Servicio de administraci´n por Web: WebMin o 283 Bloqueo de archivo Permite bloquear un archivo para que no sea modificado por varios usuarios al mismo tiempo y esto pueda producir incoherencias en el sistema. simplemente realizaremos un apt: o #apt-get install <m\’odulo> Jose Antonio Escart´ Vigo.0.1:10000. n a Aunque se instala OpenSSL por defecto en la mayor´ de distribuciones de Linux actuales. Encriptaci´n SSL o Si tenemos instaladas en nuestro ordenador las librer´ OpenSSL y el m´dulo de Perl Net::SSLeay ıas o podremos emplear conexiones encriptadas con SSL para acceder a Webmin. 15.1 podemos observar algunos. a a El problema que puede surgir al utilizar este m´todo de autenticaci´n es que cualquier usuario con e o acceso a un navegador que contenga un certificado v´lido para acceder a Webmin podr´ utilizar las a a herramientas de administraci´n. es posible ıa que no tenga instalado Net::SSLeay. como por ejemplo el nombre de ı o usuario y contrase˜a. solo he colocado los a m´dulos m´s utiles.Cap´ ıtulo 15.

284 Servidor Linux para conexiones seguras de una LAN a Internet En la siguiente tabla se muestran la mayoria de los m´dulos disponibles en nuestro sistema Debian: o Cuadro 15. ın .1: M´dulos Debian para Webmin o Tipo de operaci´n o Gesti´n del servidor o M´dulo o webmin-virtual-server webmin-lilo webmin-grub webmin-status webmin-fsdump webmin-inetd webmin-filemanager webmin-software webmin-pserver webmin-core webmin-adsl webmin-bandwidth webmin-dhcp webmin-bind webmin-nis webmin-exports webmin-samba webmin-proftpd webmin-updown webmin-telnet webmin-ldap-user-simple webmin-ldap-netgroups webmin-mysql webmin-usermin webmin-quota webmin-lpadmin webmin-apache webmin-webalizer webmin-exim webmin-fechmail webmin-procmail webmin-spamassassin webmin-jabber webmin-sshd webmin-firewall webmin-squid webmin-snort webmin-portsentry webmin-logrotate Funci´n o Administraci´n remota o Gestor de arranque Lilo Gestor de arranque Grub Estado del servidor Copias de seguridad Superservidor Archivos Paquetes instalados Versiones concurrentes M´dulos core o Cliente PPPoE Monitor de red DHCP BIND DNS NIS NFS Samba ProFTPD FTP Telnet LDAP usuario LDAP redes MySql Usuarios Cuotas de disco Cuotas de impresi´n o Apache Estad´ ısticas web Correo corporativo Exim Correo externo Fechmail Procesador de correo Procmail Filtro SpamAssassin Mensajer´ Jabber ıa SSH IPTables Squid IDS Snort IDS puertos IDS logs Gesti´n de paquetes o Gesti´n de la red o Servicios de red Gesti´n de usuarios o Servicios de usuario Gesti´n de seguridad o Jose Antonio Escart´ Vigo. Junio 2005.

Figura 15.2: Pantallas de la interfaz Webmin (I) Jose Antonio Escart´ Vigo. Servicio de administraci´n por Web: WebMin o 285 Una vez instalados todos los m´dulos necesarios para el proyecto pasemos a ver graficamente las seco ciones de nuestro servidor.Cap´ ıtulo 15. Junio 2005. ın .

Junio 2005.286 Servidor Linux para conexiones seguras de una LAN a Internet Figura 15. ın .3: Pantallas de la interfaz Webmin (II) Jose Antonio Escart´ Vigo.

La lista es actualizada de forma interactiva. etc. cantidad total de buffer o memoria cach´ de p´gina. tratando interrupciones hardware y software o desocupada). Matar o enviar una se˜al con el comando “k”. e e a a cantidad total de buffer p´ginas de la cach´ que podr´ quedar libres. compartida.o de particiones. usada como buffer de E/S y en cach´. n Ordenarlos seg´n diferentes criterios (por PID con “N”. que est´ en uso activo. tiempo con “A”. a Las cinco primeras l´ ıneas muestran informaci´n general del sistema: o Las estad´ ısticas del comando uptime Estad´ ısticas sobre los procesos del sistema (n´mero de procesos. por procesos con valor nice positivo. Monitor del sistema: Top Proporciona una visi´n continuada de la actividad del procesador en tiempo real. uso de CPU con “P”. o 16. cantidad de memoria disponible.) a e a El espacio de swap (swap total disponible. por el sistema. cantidad total de buffer o a e ıan p´ginas de la cach´ que est´n libres y disponibles. en kilobytes. procesos zombies y procesos parados). muestra las tareas o que m´s uso hacen de la CPU. procesos durmiendo. n. y tiene una interfaz interactiva para manipular procesos.). libre. u Con “n” se cambia el n´mero de procesos que se muestran. u Para salir se utiliza la letra “q”. es muy importante tener informaci´n esencial de su rendimiento: o procesos en ejecuci´n. como por ejemplo: Cambiar la prioridad de alguno utilizando el comando “r”. y adem´s se permite realizar una serie de tareas sobre los a procesos. El resto es similar al del ps. por procesos esperando E/S. etc. con los procesos ordenados decrecientemente por el uso de la CPU. procesos ejeu cut´ndose. a El estado actual de la CPU (porcentaje en uso por usuarios. La memoria (memoria total disponible. usada y libre).Cap´ ıtulo 16 Servicios de monitorizaci´n del o sistema Para tener bajo control el sistema.1. . usada.

3 1.3 1.0 15 0 0 0 0 S 0. 0.0 0.0 0.00 0:00.0 0.0 0. para poder ver de forma r´pida si hay cargas excesivas en el sistema.0 15 0 0 0 0 S 0.2.9 7.90 0:00.00 0:00.0 0. 0.0 0. Para ejecutarlo: $iostat Jose Antonio Escart´ Vigo. 63432k buffers Swap: 979924k total.0 15 0 30828 12m 8624 S 1.0 0.6% sy. 2.7 6. Junio 2005.43 0:20. 0 zombie Cpu(s): 13.0 0. a En el siguiente ejemplo podemos observar lo que se ver´ habitualmente: ıa $top top .0 16 0 0 0 0 S 0.9m 7920 S 1.0 15 0 0 0 0 S 0.0 17 -5 0 0 0 S 0.00 0:00.18 0:00.0 25 0 0 0 0 S 0. 250764k cached PID 4359 4479 4501 4918 10072 4642 4475 4503 4512 1 2 3 4 9 18 111 125 246 247 249 248 256 257 258 259 260 261 262 881 1104 1114 1117 .04 0:00.5% id. 3.0 15 0 0 0 0 S 0.92 0:10.00 0:00.16 0:08. Rendimiento del sistema Al determinar el rendimiento del sistema se debe: 1.0 15 0 0 0 0 S 0.0 10 -5 0 0 0 S 0.0% ni.0 0.3 2.0 0.41 0:06.0 10 -5 0 0 0 S 0.. 0 stopped.0% wa. USER root josan josan josan josan josan josan josan josan root root root root root root root root root root root root root root root root root root root root root root root PR NI VIRT RES SHR S %CPU %MEM 6 -10 107m 39m 5672 S 9.0 25 0 0 0 0 S 0.2 15 0 56140 33m 19m S 0. Formular expl´ ıcitamente los objetivos para mejorar el rendimiento del sistema. 4.6 16 0 2132 1064 832 R 1. Monitorizar el sistema para determinar si los cambios realizados han sido efectivos.0 0.00 0:00.0% hi.1. Ir de nuevo al primer paso y volver a empezar.2.0 0.00 0:00.07 0:00. 95 sleeping.29 Tasks: 96 total.0 17 -5 0 0 0 S 0.9% us.0% si Mem: 511948k total. 0.85 0:00. Determinar la causa o causas del problema.00 0:00.00 0:00.62 0:33.7 16 0 1584 512 452 S 0. 4 users.24 0:00.0 10 -5 0 0 0 S 0. load average: 0.0 TIME+ 11:00.00 0:01.15:52:23 up 3:39.22.0 0.0 0.46. 0k used. 979924k free.0 0. 0.0 0. 491884k used.0 0.6 16 0 12556 7396 6176 S 0.0 15 0 0 0 0 S 0. 5. 2.0 17 0 0 0 0 S 0.55 0:02.288 Servidor Linux para conexiones seguras de una LAN a Internet Resulta muy recomendable siempre tener top funcionando en uno de los terminales. Dise˜ar e implementar las modificaciones al sistema y/o programas de aplicaci´n dise˜ados para n o n llevar a cabo esos.9 15 0 22700 13m 9656 S 1. 1 running.0 0.00 0:00.3 2.0 0.3 1. 0.41 0:00..00 0:00.0 0.0 0.0 0. 20064k free. dispositivos y particiones de E/S: iostat Para instalarlo hay que ejecutar el siguiente comando: # apt-get install sysstat Presenta estad´ ısticas sobre la CPU y los dispositivos y particiones de E/S. habr´ un nuevo problema a resolver. Definir el problema con todo el detalle que sea posible.00 COMMAND XFree86 gnome-panel wnck-applet gnome-terminal top kile metacity multiload-apple clock-applet init ksoftirqd/0 events/0 khelper kthread kacpid kblockd/0 khubd pdflush pdflush aio/0 kswapd0 cifsoplockd jfsIO jfsCommit jfsSync xfslogd/0 xfsdatad/0 xfsbufd kseriod khpsbpkt knodemgrd_0 pccardd 16. 83.0 25 0 0 0 0 S 0. CPU.77 0:08. ın . 0.4 15 0 17160 8376 6884 S 0. a 16.0 17 -5 0 0 0 S 0.0 10 -5 0 0 0 S 0.0 0.7 15 0 18992 9.3 2.0 0.1 34 19 0 0 0 S 0.00 0:00.0 15 0 0 0 0 S 0.0 10 -5 0 0 0 S 0.00 0:00.27 0:01.16 8:53.0 25 0 0 0 0 S 0. 6.6 15 0 18568 8576 7012 S 0.00 0:00.00 0:00.

10 tps 2.---swap-.-----io---.68 Blq_leid 581224 1384 Blq_escr 231256 0 289 Device: hda hdc Blq_escr/s 14.o de transferencias por segundo Blq leid/s: n.01 26/05/05 %sys %iowait 1.08 %idle 83.00 Donde el significado de las columnas es el siguiente: tps: n.12 0. Servicios de monitorizaci´n del sistema o Y un ejemplo del comando ser´ ıa: # iostat Linux 2.55 %nice 0. u o b: n´mero de procesos en espera u w: n´mero de procesos en espacio de intercambio u us: tiempo de usuario como porcentaje del tiempo total Jose Antonio Escart´ Vigo.o de bloques le´ ıdos por segundo Blq escr/s: n. (el significado de los campos es o mismo que en top).2.--system-. Memoria virtual: vmstat Si queremos obtener informaci´n sobre la memoria virtual utilizaremos este comando.2.11 (debian) cpu-med: %user 12.o de bloques escritos por segundo Blq leid: n.o total de bloques escritos 16. Este podr´ ser un ejemplo de su uso: ıa # free total Mem: 511948 -/+ buffers/cache: Swap: 979924 used 472644 178392 0 free 39304 333556 979924 shared 0 buffers 63548 cached 230704 16.o total de bloques le´ ıdos Blq escr: n. Memoria: free Se utiliza para obtener informaci´n sobre el estado de la memoria.16 0.----cpu---r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 0 38528 63620 230752 0 0 17 7 1063 255 12 2 84 2 En la siguiente tabla muestro el significado de las columnas: r: n´mero de procesos esperando su tiempo de ejecuci´n.2.3.Cap´ ıtulo 16.58 0. o Esto podr´ ser una salida t´ ıa ıpica: # vmstat procs -----------memory---------. ın .82 Blq_leid/s 35. Junio 2005.6.85 1.

o 16. 2 users. du Para poder observar estad´ ısticas del disco utilizaremos estos comandos: df: por cada sistema de ficheros informa de su capacidad.4. a e a El siguiente ejemplo ilustra el comando: # w 17:07:08 USER josan josan up 4:54. 0. refresca cada segundo.54s x-session-manag 15:53 1. del espacio libre.290 Servidor Linux para conexiones seguras de una LAN a Internet sy: tiempo de sistema como porcentaje del tiempo total id: tiempo de inactividad como porcentaje de tiempo total Si ejecutamos con la opci´n: $vmstat 2.63s gnome-terminal Las columnas que aparecen significan lo siguiente: JCPU: tiempo usado por todos los procesos asociados a ese terminal (incluye los procesos en segundo plano actuales.31. ya que est´ en uso al 100 %.3.22. del espacio usado y del punto de montaje du: cantidad de espacio utilizado por un directorio. Junio 2005. ın .2. Hay que liberar a espacio para que el sistema funcione correctamente.11s 25. y todos los subdirectorios que hayan en ´l. TTY FROM :0 pts/4 :0. Gestionar procesos Para poder observar y modificar el funcionamiento de nuestros procesos disponemos de las siguientes herramientas: Jose Antonio Escart´ Vigo.0 load average: 0.26 LOGIN@ IDLE JCPU PCPU WHAT 12:18 ?xdm? 36:34 1. e Esto es la salida de mi sistema para el comando df: # df S. Disco: df. 16.2.5. pero no los pasados) PCPU: tiempo de CPU usado por el proceso actual 16. 0.00s 0.ficheros /dev/hda4 tmpfs /dev/hda5 /dev/hda7 /dev/hda8 /dev/hda9 /dev/hda10 /dev/hda11 none Bloques de 1K Usado 1921188 127236 255972 8 1921156 22344 1921156 324 964500 505948 3842376 3656336 2284880 150528 31246392 29145696 5120 3216 Dispon Uso% Montado en 1696360 7% / 255964 1% /dev/shm 1801220 2% /boot 1823240 1% /tmp 409556 56% /var 0 100% /usr 2018284 7% /home 2100696 94% /mnt/ntfs 1904 63% /dev Se puede ver que el disco tiene un grave problema en /usr. Con el comando #du -sh. se muestra el espacio usado por los archivos y directorios del directorio actual. Usuarios y sus procesos: w Sirve para determinar que usuarios est´n conectados y qu´ est´n haciendo.

3. ıa a En la tabla 16.1: Opciones del comando ps Opci´n o A a u x -u<user> Descripci´n o Muestra los procesos de todos los usuarios Muestra los procesos de los usuarios para todos los procesos con tty (terminal) Muestra el nombre del usuario del proceso Muestra los procesos con control de tty Muestra los procesos del usuario A continuaci´n muestro las opciones mas comunes: o $ps $ps aux $ps al $ps -u<user> La informaci´n se encuentra subdividida en las siguientes columnas: o USER: usuario que lanz´ el programa o PID: Identificador del proceso PPID: Identificador del proceso padre %CPU: Porcentaje entre el tiempo usado realmente y el tiempo que lleva en ejecuci´n. o %MEM: Fracci´n de memoria consumida (es un porcentaje estimado) o SIZE: Tama˜o virtual del proceso: c´digo + datos + pila n o RSS: Memoria real usada STAT: Estado del proceso R: en ejecuci´n o S: durmiendo I: esperando T: parado D: esperando una E/S W: no tiene p´ginas residentes a N: prioridad > <: prioridad < 0 Si se observa alg´n servicio misterioso ejecut´ndose.1 podemos observar una lista de las opciones del comando: Cuadro 16. algo que puede ser muy util para determinar si existe alg´n proceso ejecut´ndose en segundo ´ u a plano que no deber´ estar ejecut´ndose. abreviatura de proceso. u a a Jose Antonio Escart´ Vigo. hay que investigar un poco m´s. Junio 2005.Cap´ ıtulo 16.1. Visualizar procesos: ps El comando ps. Servicios de monitorizaci´n del sistema o 291 16. nos ense˜a todos los procesos que se est´n ejecutando en un n a sistema. ın .

1 2160 880 ? 4255 0.1 16628 6052 ? 5206 0.0 0. dcopserver [kdeinit] dcopserver --nosid --suicide klauncher [kdeinit] klauncher kded [kdeinit] kded knotify [kdeinit] knotify kio_uiserver [kdeinit] kio_uiserver /usr/bin/kile /bin/bash kio_file [kdeinit] kio_file file /tmp/ksocket-josanGrQ9Wjosan gnome-pty-helper bash ps aux 16.0 0. ıa n #kill pid.0 0.gnome-smproxy-ghqj5S/josan gnome-volume-manager --sm-config-prefix /gnome-volume-majosan /usr/lib/gnome-panel/wnck-applet --oaf-activate-iid=OAFIjosan [pdflush] kdeinit Running.0 0 0 ? 4 0.3 9476 1772 ? 4701 0.0 1580 416 tty3 4752 0.0 0 0 ? 290 0.0 0.0 0. el estado en que termino puede ser capturado.4 238624 222152 ? 5133 0.0 0 0 ? 18 0.0 0.0 0.0 0 0 ? 9 0.pl /etc/webmin/daemon /usr/sbin/cron /usr/bin/gdm /usr/bin/gdm /sbin/getty 38400 tty1 /sbin/getty 38400 tty2 /sbin/getty 38400 tty3 /sbin/getty 38400 tty4 /sbin/getty 38400 tty5 /sbin/getty 38400 tty6 /usr/X11R6/bin/X :0 -audit 0 -auth /var/lib/gdm/:0.0 1580 416 tty5 4754 0.0 0.0 1.5 26808 13056 ? 10738 0.0 0. ın .0 1.7 22296 8796 ? 10642 0.0 0.0 0.0 0. .0 0.3 3284 1644 pts/1 20042 0. que conn tin´en (SIGCONT -18). . env´ la se˜al a todos los procesos “orden” (ejemplo: #killall -9 bash). eliminarlos.0 0 0 ? 1185 0.0 0.soroot /usr/bin/dbus-daemon-1 --system /usr/sbin/hald --drop-privileges /usr/sbin/inetd /sbin/cardmgr /usr/sbin/powernowd -q /usr/sbin/sshd /usr/bin/X11/xfs -daemon /bin/bash /etc/rc2.0 0.0 0.0 1.0 0 0 ? 951 0. u kill [-signal] pids: #kill [-signal] pid.0 0.0 0. .9 24276 10036 ? 20028 0.0 0.0 0.1 2276 664 ? 20029 0.3 3440 1908 ? 4567 0.0 0.0 1.1 1820 744 ? 4699 0.0 0 0 ? 2991 0.0 0.0 0.0 0.0 0 0 ? 284 0.0 0.0 0 0 ? 289 0.0 2316 508 ? 4386 0.0 0.0 0.0 0 0 ? 277 0. Enviar signals a procesos: kill En ocasiones es necesario enviar se˜ales a los procesos: pararlos (SIGSTOP -19).9 24068 9896 ? 10644 0.0 0. se el dice al proceso que termine.0 1.0 0.0 0.0 0. env´ una se˜al al proceso identificado por pid.1 2564 844 pts/1 STAT S SN S< S< S< S< S< S S< S S S S S S< S< S S S S S S S< S S<s S S S Ss Ss Ss Ss Ss Ss Ss Ss SNs Ss Ss S S S Ss Ss Ss Ss Ss S Ss+ Ss+ Ss+ Ss+ Ss+ Ss+ S< Ss S S Ss Ss Ss S S Ss S S S S S S Ss+ S S Ss R+ START 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 12:01 12:01 12:01 12:01 12:01 12:01 12:01 14:20 15:07 15:07 15:07 15:07 15:07 16:43 17:33 17:33 19:23 21:03 21:03 21:04 TIME 0:01 0:00 0:01 0:00 0:00 0:06 0:00 0:00 0:00 0:02 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:03 0:00 0:02 0:00 0:00 0:00 0:00 0:00 0:34 0:00 0:00 0:02 0:00 0:00 0:00 0:00 0:00 0:30 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 41:44 0:00 0:01 0:00 0:00 0:04 0:01 0:16 0:03 0:00 0:00 0:00 0:01 0:08 0:02 4:05 0:00 0:00 0:00 0:00 0:00 Servidor Linux para conexiones seguras de una LAN a Internet COMMAND init [2] [ksoftirqd/0] [events/0] [khelper] [kthread] [kacpid] [kblockd/0] [khubd] [aio/0] [kswapd0] [cifsoplockd] [jfsIO] [jfsCommit] [jfsSync] [xfslogd/0] [xfsdatad/0] [xfsbufd] [shpchpd_event] [kseriod] [khpsbpkt] [knodemgrd_0] [pccardd] [exec-osm/0] [pktgen/0] udevd [kjournald] [kjournald] [kjournald] dhclient3 -pf /var/run/dhclient.1 10068 5812 ? 5140 0.9 18972 9720 ? 8911 0.0 0 0 ? 1175 0.0 0 0 ? 352 0. Junio 2005.0 0.0 0.0 0 0 ? 125 0.0 0.0 0.9 13.0 0. .1 0. etc.0 0.0 2.0 0.0 3128 488 ? 4221 0.0 0.d/S20xprint start /usr/bin/Xprt -ac -pn -nolisten tcp -audit 4 -fp /usr/X1root /usr/sbin/famd -T 0 /sbin/rpc.1 11788 536 ? 4553 0.3 9184 1684 ? 4694 0.0 0 0 ? 10637 0.0 0.0 0.0 1572 456 ? 4399 0.2 2816 1028 ? 4534 0.0 0 0 ? 286 0.0 0. .0 0 0 ? 111 0.0 1580 416 tty2 4751 0. Esta instrucci´n le env´ un SIGTERM (signal 15).0 0.0 3072 428 ? 5135 0.6 26084 13540 ? 14623 1.0 0.1 2876 520 ? 4189 0.6 8136 3236 ? 4265 0. .0 0.0 0.0 0.1 2448 608 ? 4677 0.0 0 0 ? 285 0.4 10032 2164 ? 4749 0.0 0 0 ? 3 0. ıa n Jose Antonio Escart´ Vigo.2 2816 1028 ? 4533 0.0 0.0 0 0 ? 3924 0.0 0 0 ? 2992 0. no puede ser capturada y fuerza al proceso a finalizar.1 3544 660 ? 4423 0.0 0 0 ? 1241 0.0 1600 484 ? 4390 0.0 1.0 1580 416 tty1 4750 0.0 0 0 ? 1259 0.1 2328 656 ? 4192 0.0 0.eth0.0 1580 416 tty4 4753 0.292 Un ejemplo de esto ser´ ıa: $ ps aux USER root root root root root root root root root root root root root root root root root root root root root root root root root root root root root root root root message hal root root root root root root root root josan root root root root root root root root root root root root josan josan josan josan josan josan josan root josan josan josan josan josan josan josan josan josan josan josan josan PID %CPU %MEM VSZ RSS TTY 1 0. .1 1580 612 ? 4250 0..4 83728 68852 ? 14624 0.0 0.0 1584 472 ? 2 0.2 4820 1148 ? 4532 0.2.0 0.0 0.9 31816 14972 ? 13198 0.0 0.0 0 0 ? 288 0.0 1.0 0 0 ? 1343 0. de forma controlada.0 0 0 ? 287 0.0 0.1 2328 772 ? 5142 0..0 1580 416 tty6 4819 7.d/S20xprint start /bin/bash /etc/rc2.Xauthjosan /usr/bin/ssh-agent x-session-manager /usr/lib/gconf2/gconfd-2 5 /usr/bin/gnome-keyring-daemon /usr/lib/bonobo-activation/bonobo-activation-server --acjosan gnome-smproxy --sm-config-prefix /.0 0.pid -lf /var/run/dhdaemon /sbin/syslogd /sbin/klogd /usr/sbin/acpid -c /etc/acpi/events -s /var/run/acpid.3.4 9060 2196 ? 5182 0.5 43.0 2.0 0 0 ? 1188 0.0 0. o ıa La se˜al SIGKILL (signal 9). .8 22600 9304 ? 10640 0.4 5620 2240 ? 5169 0.statd /usr/bin/perl /usr/share/webmin/miniserv.0 0 0 ? 276 0.0 0.0 0.0 2.0 0.3 3280 1640 pts/0 17531 0. n #kill [-signal] orden.0 0.0 0.0 0. .0 1572 392 ? 2990 0.

16. junto con el consumo de a o u CPU realizado Valores bajos (negativos). Servicios de monitorizaci´n del sistema o Hay procesos que no mueren a pesar de recibir la se˜al KILL: n Procesos zombies Procesos que esperan un recurso v´ NFS que no est´ disponible ıa a Procesos que esperan una petici´n de E/S realizada a un dispositivo o 293 16. u variadas formas tanto para los usuarios como para el sistema de crear tareas a ejecutarse en el futuro o de forma peri´dica. Las tareas o trabajos no son m´s que uno o varios comandos que se ejecutan utilizando o a un shell como int´rprete. u Linux realiza una planificaci´n por prioridades din´micas o a Al lanzar un proceso se le asigna un valor de prioridad (n´mero nice). ın .3. e Jose Antonio Escart´ Vigo. Hacemos un ps: #ps -uroot Identificamos el n´mero de proceso (PID) que tiene el tty5 u Aumentamos la prioridad de ese terminal: #renice -20 [pid_tty5] Si el sistema se ralentiza pasamos al terminal 5. aumentar (disminuir prioridad) tambi´n lo puede hacer el usuario que lo ejecuto e nice -incremento orden a ejecutar renice nueva prioridad pid 16. En Linux hay m´ltiples y o ıa. implica m´s prioridad a Valores altos (positivos). Junio 2005.5. Terminal de root con prioridad m´xima a Para establecer un programa de m´xima prioridad solamente es necesario subir la prioridad a uno de a nuestros terminales. Modificar prioridades: nice El n´mero nice marca la prioridad del proceso. Programaci´n de tareas o Una posibilidad deseable en cualquier sistema operativo es la de poder ejecutar algunos procesos de forma peri´dica o en un momento determinado del d´ la semana o el mes. CTRL+ALT+F5 y desde ah´ podemos comprobar ı que esta pasando y solucionar el problema. La prioridad din´mica del proceso se calcula en funci´n del n´mero nice. El ejemplo se muestra con el terminal 5. por defecto la hereda del u proceso padre. s´lo se le da la CPU cuando nadie m´s la quiere o a Asignar un valor negativo o que disminuya (mejore) la prioridad del proceso s´lo puede hacerlo el o root. menos prioridad Rango de prioridad: -20(m´xima) a 20 (m´ a ınima) Valor especial: -19.Cap´ ıtulo 16.4.3. Para no confundirnos es recomendable utilizar siempre el mismo terminal.

Estas se nombran con todas las letras del alfabeto y tienen prioridad mayor los trabajos en las colas con “letras mayores”. o B´sicamente para cada tarea peri´dica se escribe una l´ a o ınea donde se especifican los momentos en que se ejecutar´ y el comando correspondiente.1. o de un fichero utilizando la opci´n -f. atrm. D´ del mes: Oscila entre 1 y 31 ıas 4. se enviar por correo Ctrl-d #sale del modo insertar tareas $at -f save_all. 24 de sep. Meses: Oscila entre 1 y 12 (se pueden poner tambi´n las tres primeras letras del nombre del mes en e ingl´s) e 5.sh.sh 5:00PM tomorrow # ejecutara save_all.8 por defecto.allow y /etc/at. Los comandos que componen el trabajo por defecto se toman de la entrada est´ndar una vez invocado a el comando. Tambi´n se pueden realizar asignaciones a variables de entorno a e que ser´n vlidas s´lo para los procesos indicados en lo sucesivo mientras no aparezcan nuevas asignaciones. Junio 2005. o sea tenga un valor inferior a 0. Cron Existe otro tipo de tareas que se pueden ejecutar peri´dicamente conocidas como crons. La salida est´ndar y de errores de estas tareas se env´ a trav´s del correo local al usuario correspona ıa e diente a menos que este las redireccione utilizando los operadores correspondientes. Este valor puede modificarse cuando se levanta el servicio atd que es el que se encarga de manipular estas tareas.2.sh 3:00am + 5 days # trabajo en la cola Z y ejecutado 3AM en 5 dias $at -f bin/my_job -m midnight Sep 24 #atq 1 2 5 # lanza medianoche. Minutos: Oscila entre 0 y 59 2. El administrador del sistema puede especificar cuales usuarios pueden o no utilizar at en los ficheros /etc/at.deny. Se pueden utilizar varias colas para colocar las tareas. el camino a este fichero debe estar especificado a partir o del directorio home del usuario.5. ın . 5:00PM $at -q Z -f script. D´ de la semana: Oscila entre 0 y 7 (0 y 7 corresponden al domingo.5. A continuaci´n vemos unos ejemplos del uso de at: o $ at 4:45pm # crea una tarea para ejecutarse a las 4:45 PM que imprime at> echo "hora de irse" # mensaje en la salida estndar. Horas: Oscila entre 0 y 23 3. tambi´n se pueden usar las ıas e tres primeras letras del nombre del d´ en ingl´s) ıa e Jose Antonio Escart´ Vigo.294 Servidor Linux para conexiones seguras de una LAN a Internet 16. Este ofrece numerosas posibilidades. 16. manda correo 2000-11-24 10:35 b pepe 2000-11-23 00:00 c pepe 2000-11-26 01:00 Z root # muestra el contenido de tarea 2 #at -c 2 Tambi´n existe el comando batch que es similar a at solo que los trabajos batch se ejecutan cuando e la carga del procesador lo permita. Para definirlas o se emplea un fichero por usuario cuyo formato se explica a continuaci´n. a o Las fechas se especifican utilizando cinco indicadores separados por espacios: 1. Para ver todas las tareas de tipo at se utiliza el comando atq y para cancelar alguna. At Para un usuario definir una tarea o trabajo a ejecutarse en un momento determinado puede utilizar el comando at.

podemos observar algunos ejemplos del uso de crontab: o $ $ $ $ export EDITOR=vim. Este permite editar. Jose Antonio Escart´ Vigo. Opciones del crontab: -e: permite editar el fichero de crons. Para separar india cadores de un mismo tipo se utiliza la coma.5.monthly El demonio que se encarga de que se ejecuten las instrucciones es crond. crontab -e # editor por defecto vim export VISUAL=kwrite. Junio 2005. Servicios de monitorizaci´n del sistema o 295 Si no se coloca alguno de los cinco indicadores se pone el car´cter “*” en su lugar.10.Cap´ ıtulo 16. This file also has a username field. e A continuaci´n muestro ejemplos de este sistema: o PATH = /bin:/usr/bin:/sbin/:/usr/sbin:~/programas/bin 10 4 * * 0 backup every_thing 0 5 1.hourly root test -x /usr/sbin/anacron || run-parts --report /etc/cron. para indicar rangos. listar y borrar los crons.ps 0 7 * 1-6.19 * * echo "cobraste josan?" Los ficheros de tareas peri´dicas o crons de los usuarios se guardan en el directorio del sistema o /var/spool/cron/ cada uno con el login del usuario correspondiente como nombre. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon 17 * * * * 25 6 * * * 47 6 * * 7 52 6 1 * * dow user command root run-parts --report /etc/cron.daily root test -x /usr/sbin/anacron || run-parts --report /etc/cron. crontab -e # editor visual kwrite crontab -l crontab -r El siguiente c´digo presenta el contenido del archivo /etc/crontab de mi servidor: o # cat /etc/crontab # # # # /etc/crontab: system-wide crontab Unlike any other crontab you don’t have to run the ‘crontab’ command to install the new version when you edit this file.20. y para variar el incremento del rango a n se puede colocar /n despu´s del rango. that none of the other crontabs do. ın .img 0 8 31 12 * sendmother MAILTO = josan 0 8-16/2 4.txt INFORM = ~/docs/inform.9-12 mon sendmails TARGET = ~/especial/target.30 * * backup part_one FILE = ~/docs/partners.weekly root test -x /usr/sbin/anacron || run-parts --report /etc/cron. Para evitar algunos errores en la sintaxis de estos ficheros no se editan directamente por los usuarios. el signo “-”.25.15. sino que se utiliza el comando crontab. La variable de entorno EDITOR indicar´ el editor con que se a modificar´ el fichero de crons a -l: lista todos los crons del usuario -r: borra todos los crons A continuaci´n.

se env´ al usuario root a menos que se defina lo contrario. que se almacena en /etc/crontab.296 Servidor Linux para conexiones seguras de una LAN a Internet 16. Este se emplea para las ıas.hourly/. Adem´s de indicar el a intervalo de d´ el delay y el comando se especifica un nombre para el trabajo. Las tareas del sistema se organizan en cuatro grupos: tareas que se ejecutan cada una hora. a apague durante un tiempo mayor que el especificado. /etc/cron.4.5.daily/.daily run-parts /etc/cron.weekly 30 15 cron. trazas y para nombrar un fichero que emplea el servicio de anacron para saber cuando fue la ultima vez ´ que ejecut´ este trabajo (timestamp file).monthly Podr´ pensarse que puede ocurrir que un mismo programa se ejecute por la v´ cron y por la anacron. o ıa Para el caso de las tareas del sistema.3.weekly run-parts /etc/cron. ıa ıa pero esto no sucede pues existe una tarea cron para cada per´ ıodo que actualiza los ficheros en los cuales se basa el servicio anacron para saber que es lo que debe ejecutar. para cada trabajo anacron se indica un tiempo en d´ y una ıas espera (delay). En cada directorio se colocan los programas o comandos a ejecutarse peri´dicamente de acuerdo al o per´ ıodo correspondiente. Si no se encuentra instalado. tareas semanales y tareas mensuales. por ejemplo. Estas se ejecutan cada cierto tiempo especificado en d´ En caso de que la m´quina se ıas. Tareas peri´dicas o Un sistema Linux trae algunas tareas peri´dicas definidas por defecto y es posible a su vez crear otras. ı o Esto puede utilizarse. Este fichero se almacena en /var/spool/anacron/ y slo contiene o una fecha. y cuando llega anacron (que se demora m´s) ya no tiene que ejecutar las tareas. cuando el servicio cron logra ejecutar las tareas correspondientes a un per´ ıodo. a Jose Antonio Escart´ Vigo. Junio 2005. Al igual que para las tareas que se crean con at.monthly run-parts /etc/cron. Algunas de las tareas que se hacen de forma peri´dica por el sistema. entonces una vez encendida y activado el servicio que manipula los trabajos anacron todos aquellos que se encuentren atrasados se ejecutar´n tan pronto a transcurra la espera especificada. son la actualizaci´n de las bases o o de datos sobre las que trabajan los comandos locate y whatis. es necesario hacer un apt: #apt-get install anacron El fichero /etc/anacrontab tiene la forma: SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 1 5 cron. tareas diarias. o En este caso se emplea un fichero con formato similar al de los usuarios. /etc/cron. as´ como la rotaci´n de las trazas del sistema.5. ın . actualiza el fichero de ese per´ ıodo. Es por ello que existe otro tipo de tareas peri´dicas: o o las anacrons. A cada uno de estos grupos le corresponde un directorio: /etc/cron. o sea. para descargar las bases de datos de los antivirus para Windows y que nuestros clientes las obtengan de un directorio local. se trasmiten al usuario correspondiente utilizando la mensajer´ local del sistema.daily 7 10 cron. Los trabajos anacron se almacenan en el fichero del sistema /etc/anacrontab. ıan 16.monthly/ respectivamente. con la diferencia de que este s´ se edita directamente adem´s de que se puede especificar el usuario con ı a cuyos privilegios se ejecuta el proceso. O sea. Anacron Una tarea tipo cron es muy util pero su ejecuci´n depende de que la m´quina se encuentre encendida ´ o a en el momento exacto para el que se program´. tanto la salida de errores como la est´ndar de todas a las tareas peri´dicas.weekly/ y /etc/cron.

Parte IV Valoraci´n final o .

.

Cap´ ıtulo 17 Pruebas del sistema 17. Configurar el programa Vamos a seguir una serie de pasos para configurar el servidor Nessus: El archivo de configuraci´n es: /etc/nessus/nessusd. o o La distribuci´n de Nessus consta de cuatro ficheros b´sicos: las librer´ del programa.conf updated The following files were created : . a Cuando finaliza el escaneo se generan unos informes que si se sabe aprovechar e interpretar explican que tipo de vulnerabilidades han sido encontradas. instalandolos en la carpeta /nessus/plugins. Your server certificate was properly created. entre otras cosas escanea desde el puerto 0 al o a 15000.1. /etc/nessus/nessusd. Nessus Server : Certificate = /var/lib/nessus/CA/servercert.1. c´mo “explotarlas” y c´mo “evitarlas”.org/ ) los plugins que creamos nee a cesarios. las librer´ o a ıas ıas NASL (Nessus Attack Scripting Language). Durante el proceso de instalaci´n se nos realizan una serie de preguntas para generar un certificado o SSL para Nessus: ------------------------------------------------------------------------------Creation of the Nessus SSL Certificate ------------------------------------------------------------------------------Congratulations.nessus.1. 17.pem Private key = /var/lib/nessus/private/CA/serverkey.pem . a Si el ataque se hace hacia localhost lo que se consigue es auditar nuestra propia m´quina. Ah´ podemos modificar todas las opciones que nos parezcan oportunas. el n´cleo de la aplicaci´n y sus plugins. u o Para instalar el programa hay que realizar el apt siguiente: #apt-get install nessus nessusd Y despu´s descargamos de la p´gina de Nessus (http://www.pem Private key = /var/lib/nessus/private/CA/cakey.pem Donde podemos observar que se ha creado un certificado autofirmado para el servidor Nessus. Consta de dos partes (cliente/servidor) que a pueden estar instaladas en las misma m´quina por simplicidad. Certification authority : Certificate = /var/lib/nessus/CA/cacert.conf o La configuraci´n por defecto es completa y v´lida. ı . Nessus: Esc´ner de vulnerabilidades a Nessus es un potente esc´ner de redes de Software Libre.

una vez ejecutado el siguiente comando: #nessus-adduser Entre las opciones que se presentan. si es que lo queremos escanear. . En credentials.. indicaremos la o las direcci´nes IP de las m´quinas a escanear. se va a volver loco al ejecutar Nessus.0 1. Tambi´n a e podemos especificar unas reglas (rules) concretas para ese usuario.300 Servidor Linux para conexiones seguras de una LAN a Internet Creamos un usuario para lanzar el programa. Es necesario desactivarlo o hacer que el NIDS ignore la IP de Nessus.2. Junio 2005. ın .nessus. seleccionaremos todos si queremos un escaneo n completo. es mucho m´s seguro el sistema de certificados. para ello seguiremos las instrucciones de pantalla. ejecutaremos el siguiente comando: #nessus a Tambi´n se puede iniciar en modo comando. Para esta ultima configuraci´n es neceario editar el archivo de reglas /etc/nessus/nessusd. lo arrancamos en background: #nessusd -D o #nessusd --background Si ejecutamos: # ps aux | grep ’nessus’.1. Ejecuci´n de Nessus o Para lanzar el cliente en modo gr´fico. colocaremos la cuenta. o permitir que acceda desde todas las redes. Hay que tener cuidado con Denial of service (DoS) por razones obvias.1 7332 4712 ? 2316 772 pts/3 Ss S+ 13:22 13:23 0:00 nessusd: waiting 0:00 grep nessus 17. Para ejecutarlo podemos seleccionar las siguientes opciones: En Nessusd Host. Una vez recibido el correo basta con insertarlo o a en la l´ ınea de comandos: #nessus-fetch --register <CLAVE> Una vez tengamos el servidor registrado.0 0. contrase˜a y dominio Samba. para validar el usuario se puede elegir entre el sistema de login/password o certificados digitales. . indicaremos los datos a˜adidos en la creaci´n del usuario (login/password. Se puede elegir que el usuario acceda desde una red concreta. etc). para ello hay que entrar en: http://www. n En Scan Options. podremos observar si se ha cargado bien: root root 10938 10960 0.rules ´ o e introducir la siguiente l´ ınea en la parte address/netmask : default accept Podemos observar como queda el archivo as´ ı: # # Nessus rules # # Syntax : accept|reject address/netmask # Accept to test anything : default accept Registrar la versi´n de Nessus. En target.org/register/ poner o un correo electr´nico donde se nos reportar´ la clave. n o En la pesta˜a de plugins (los tipos de ataques). especificaremos los puertos a escanear y la herramienta a utilizar. para el modo comando consultaremos el manual de ayuda: e $man nessus Es necesario recordar que si tenemos activo el IDS Snort o cualquier otro NIDS.9 0. o a Jose Antonio Escart´ Vigo.

Cap´ ıtulo 17. ın .1: Configuraci´n de la aplicaci´n Nessus o o Jose Antonio Escart´ Vigo. Junio 2005. Pruebas del sistema En las siguientes pantallas podemos observar cada una de estas secciones: 301 Figura 17.

2: Vulnerabilidades encontradas en el sistema B´sicamente podemos decir que la seguridad del servidor esta controlada.3. Se puede descargar en: http://www.302 Servidor Linux para conexiones seguras de una LAN a Internet Una vez realizada la comprobaci´n del servidor podemos observar las siguientes vulnerabilidades eno contradas: Figura 17.bidmc.com/ncc/ Jose Antonio Escart´ Vigo.edu/pub/nessus-php/ NCC: Nessus Command Center.1. A esto unicamente habr´ a ´ ıa que a˜adir alguna actualizaci´n de versiones para parchear posibles exploits descubiertos recientemente. Se puede descargar en: http://enterprise. n o 17. Otros interfaces de configuraci´n o Tambi´n podemos ejecutar otras interfaces gr´ficas para Nessus: e a NPI: Interfaz PHP.harvard. Junio 2005. ın .netsecuritysvcs.

. HP-UX. es decir sus puertos abiertos. como UDP). Caracter´ ısticas b´sicas a Entre las caracter´ ısticas del Nmap podemos encontrar: Flexible: Soporta t´cnicas avanzadas para el mapeado de sistemas y redes que est´n detr´s de filtros e e a IP. 17. realizar un escan´o de vulnerabilidades con Nessus. como Debian. el uso del Nmap es muy sencillo. Popular : Diariamente cientos de personas descargan Nmap.2. auditores e intrusos de una potente herramienta de seguridad con la que explorar las redes. Windows (fase beta). para averiguar los servicios o puertos. Su software se ha utilizado en otros muchos programas y ha sido portado a casi todos los sistemas operativos importantes. Es un requisito previo. conexiones semiabiertas. como los tutoriales y el resto de documentaci´n relacionada con Nmap. o a Buena Documentaci´n: Se ha realizado un gran esfuerzo en mantener actualizados y traducidos o tanto las p´ginas man. .2. Junio 2005. incluyendo analizadores de salidas del programa. siendo utilizada diariamente en todo el mundo. Nmap es posiblemente el mejor escaner o a de puertos existente. . a Jose Antonio Escart´ Vigo. Tal y como hemos comentado. Estas incluyen mecanismos de escaneado de puertos (tanto a TCP. Nmap se distribuye con licencia GPL por lo que su c´digo fuente est´ disponible para su descarga. firewalls. Open/Free/Net BSD. ın . entre ellos: ıa Linux. detecci´n del sistema operativo. que servidores est´n activos a a y qu´ servicios ofrecen.1. se puede escribir al autor o ıa u utilizar las diferentes listas de distribuci´n sobre Nmap. . Nmap: Esc´ner de red y puertos a La herramienta de exploraci´n de red y esc´ner de seguridad. por ejemplo. Existen varias empresas que incluyen soporte o para Nmap entre sus servicios. Existen tambi´n disponibles e e varios complementos. se puede realizar un sencillo a escaneado de puertos con: #nmap -O -sS <maquina> Libre: El objetivo del proyecto Nmap es proveer a los administradores. routers y otros obst´culos.Cap´ ıtulo 17. como por ejemplo Nlog. Pruebas del sistema 303 17. Premiado: Nmap ha recibido multitud de premios y reconocimientos concedidos por revistas del sector. accesibles de una determinada m´quina. Sun OS. e Es una de esas herramientas de seguridad imprescindible para cualquier administrador de sistemas. de una forma r´pida y sencilla. a o Soportado: Aunque Nmap viene sin garant´ explicita de ning´n tipo. Esta gran popularidad es la mejor garant´ de su calidad. . . bastar´ con ejecutar: #nmap <host> -O a a La salida que obtenermos del servidor que se ha configurado durante el proyecto se puede observar en la siguiente p´gina. IRIX. adem´s est´ incluido de serie en muchos a a sistemas operativos. F´cil : Aunque existen una gran cantidad de opciones disponibles. a Portable: Existen versiones para la gran mayor´ de los sistemas operativos modernos. tanto por piratas inform´ticos como por administradores a de sistemas. permitiendo determinar. escaneos invisibles. Solaris. Mac OS X. soporte ıa y desarrollo. o Potente: Se puede utilizar para escanear redes de ordenadores con cientos de m´quinas.

SSH-2.org (192. .html Estos escaneos de m´quinas y redes.192.1 !P aDdr3Sz (1 hOst uP) scANnEd !n 3 $econdS Jose Antonio Escart´ Vigo.10 22 Trying 192.X|2.2.10.4 Protocol mismatch.1p1 Debian-8. la podemos observar en el siguiente ejemplo: #nmap -oS . si se conoce alguna vulnerabilidad de esa versi´n a o o podr´ ser atacada: telnet <host> <puerto> ıa # telnet 192.3 or Gentoo 1. que muestra la salida del Nmap en un formato que les encantar´ a los o a Script-kiddies.168. por lo que es m´s que recomendable acceder a la docua a mentaci´n incluida con Nmap.. Xmas.0. por lo que es interesante el utilizar alguno de a los modos de escaneos invisibles que se pueden ejecutar con Nmap.0.4.8.5.274 days (since Sat Jun 11 12:52:40 2005) Nmap finished: 1 IP address (1 host up) scanned in 2.1n$ecur3.25 .8 Uptime 0. el desarrollador de esta herramienta. en /var/log/messages). ın . evitando al mismo tiempo o el comentado registro en los ficheros logs. as´ como a la p´gina man del mismo.168.168.0.X|2.168.X OS details: Linux 2.4.2 Linux 2.54B3T431 ( www.example.5.168.0-OpenSSH_3.304 Servidor Linux para conexiones seguras de una LAN a Internet #nmap 192.0.372 seconds Depu´s de descubrir los servicios que ofrece la m´quina.10. Connection closed by foreign host. suelen dejar huellas de su ejecuci´n en los registros logs de las a o m´quinas escaneadas (por ejemplo.19 rc1-rc7).6.6. con un simple telnet hemos obtenido el sistema e a operativo instalado en la m´quina y la versi´n de ssh.168.3 . .sarge. Escape character is ’^]’.-sX. Linux 2. o ı a #nmap --help #man nmap #lynx nmap\manpage-es.10: (The 1652 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 9/tcp open discard 13/tcp open daytime 22/tcp open ssh 37/tcp open time 80/tcp open http 111/tcp open rpcbind 113/tcp open auth 515/tcp open printer 631/tcp open ipp 721/tcp open unknown 10000/tcp open snet-sensor-mgmt Device type: general purpose Running: Linux 2.168.0. or Null scan.-sN Stealth FIN. Existen muchas m´s opciones y alternativas.0.6.insecure.81 ( http://www.6. tiene un gran sentido de humor. Fyodor. Junio 2005.. . tales como -sF.0. tal y como lo demuestra al implementar la opci´n -oS. 2.ORg/nmap/ ) |nt3r3sting pOrtz 0n debian. de forma que se evitar finalizar la negociaci´n TCP.10): (The 1545 Portz scannEd but nOT sh0wn bel0w ar3 In $tatE: cLOS3D) POrt Stat3 S3rv1Ce 22/tcp OpeN $$H 25/Tcp 0pEn smtp 80/tcp 0p3n htTp 139/tcP op3n N3Tb1Oz-Ssn 143/tCP 0pen imap2 515/tcp f!lt3red prinT3r 3128/tcp Op3n squ|d-HtTP 3306/tCp Op3n my$ql 6000/tcp 0p3n x11 Nmap rUn c0mpl3ted -.10 -O Starting nmap 3.org/nmap/ ) at 2005-06-11 19:27 CEST Interesting ports on 192.2.10+ $taRt|ng nmap V. Connected to 192.

Por otro lado. Opciones de ajuste de frecuencia de Nmap Nmap nos ofrece la opci´n de agilizar o ralentizar la frecuencia con la que env´ sus paquetes de esc´ner. o Parecido a SYN. no responder´n. podemos a a a ralentizar el nivel.3. Jose Antonio Escart´ Vigo. Opci´n o TCP + ICMP: -PB TCP Ping: -PT ICMP Ping: -PE Dont’s Ping: -P0 17. o ıa a Si est´mos preocupado por la cantidad de tr´fico de red (o est´mos intentando ser sigilosos). por su estructura. completando la comunicaci´n TCP. comprueba las direcciones IP activas. para rebotar paquetes fuera de un -n FTP_HOST servidor FTP y hacia una red interna que normalmente no ser´ accesible.2.2: Opciones de descubrimiento en Nmap Descripci´n o Utiliza paquetes ICMP y TCP para determinar el estado de un anfitri´n.3. algo que puede aumentar exponencialmente el tiempo de escaneado en redes grandes. como SYN pero enviando en su lugar un paquete TCP FIN. Los Windows. -SI zombie_host_probe_port Tipo de escan´o e SYN: -sS TCP Connect: -sT 17.4. ın . establece los indicadores de encabezados a nulos. Junio 2005.2. la o a mayor´ de los paquetes ser´n eliminados. S´lo hay que tener en cuenta que cuanto m´s lejos los enviamos. ıa a Nmap no intentar´ conocer primero qu´ hosts se encuentran activos en la red. ıa Escaneado NULL: -sN Escaneado sigiloso. incluso a aunque no haya una m´quina detr´s. Escaneado FIN: -sF Escaneado sigiloso. Es la o forma m´s fiable y precisa. Si estamos intentando ser sigilosos esta es la mejor e opci´n. e a El cuadro 17. Es un m´todo ruidoso o e y carga en exceso las m´quinas examinadas. no completa la comunicaci´n TCP.2.2 incluye diversas opciones: Cuadro 17. a e en su lugar enviar´ sus paquetes a todas las IP en el rango especificado. Podemos a ver los distintos niveles de frecuencia en el cuadro 17.1 incluye una lista de los que probablemente usaremos con m´s frecuencia. Tipos de escaneado Existen muchos tipos de escaneado que se pueden ejecutar con Nmap. si tenemos prisa y no nos preocupa el tr´fico de red adicional. ıa Escaneado RPC: -sR Busca m´quinas que respondan a los servicios RPC. Pruebas del sistema 305 17. La mayor´ de los hosts devolveran un RST. Escaneado Idle: Escaneado sigiloso por el que los paquetes rebotan hacia un host externo. a Ping Sweep: -sP Un simple ping a todas las direcciones. m´s tiempo tardar´ el o a a a escaneado. El cuadro 17.Cap´ ıtulo 17. No es un paquete v´lido y algunos hosts no sabran que hacer con ´l.1: Tipos de escaneo en Nmap Descripci´n o Escaneado predeterminado.2. a Escaneado Windows: Se basa en una anomal´ en las respuestas a los paquetes ACK en alg´n ıa u -sW sistema operativo para mostrar los puertos que se suponen van a filtrarse. podemos aumentar el nivel. ya que usa los dos m´todos. a e Escaneado XMAS: -sX Similar a NULL pero todos los indicadores del encabezado TCP se activan. Puede ser la unica forma de examinar una a a ´ red bien protegida y que no responde a ICMP. Opciones de descubrimiento Tambi´n podemos ajustar la forma en que Nmap descubre la red y determina que hosts est´n activos. a Escaneado Bounce: Usa un agujero en el protocolo FTP. o No es una buena opci´n si el objetivo se encuentra detr´s de un cortafuegos. Escaneado UDP: -sU Comprueba los puertos UDP para localizar los que escuchan. a e Usa solo el m´todo TCP. a Cuadro 17.

generalmente los puertos conocidos por debajo de 1024. o Resolve All: -R Esta opci´n intenta resolver las direcciones en el rango. la identificaci´n de SO y otras opciones. ın . -e interface_name Opci´n o Don’t Resolve: -n Jose Antonio Escart´ Vigo. Fast Scan: -F Escanea los puertos especificados. Otras opciones de Nmap El cuadro 17.4 recoge una lista de otras opciones para Nmap que controlan cosas como la resoluci´n o DNS. Fragmentation: -f Opci´n sigilosa. e SO Identification -o Analiza la “huella digital” de las respuestas para determinar el SO Send on Device: Obliga a los paquetes de escaneado a salir de una interfaz espec´ ıfica. 17. as´ le resulta m´s dificil saber que m´quina le esta ı a a decoy_address2. ya que el escaneado nunca terminar´.3 se. con esta opci´n solo examina ese rango. Existen m´s opciones para ajustar nuestros escaneados o a disponibles utilizando la interfaz de l´ ınea de comandos.5.75 segundos por host y 0.Este m´todo no funciona bien a no ser e gunos por paquete de sondeo que estemos en una red muy r´pida a y usemos un computador realmente r´pido. Junio 2005.3: Configuraciones de frecuencia en Nmap Par´metro Frecuencia de paquete a Comentarios -F 0 Una vez cada 5 minutos No utilizar esta opci´n en escaneados o de varios hosts..25 segundos por paquete de sondeo -F 5 0.. Si queremos m´s detalles podemos recurrir al a manual de Nmap. Port Range: -p port_range De forma predeterminada Nmap examina los 65. Get Indentd Info: -I El servicio Identd que se ejecuta en algunas m´quinas puede propora cionar informaci´n adicional sobre el host consultado. sobre todo en redes con DHCP.536 puertos disponibles.306 Servidor Linux para conexiones seguras de una LAN a Internet Frecuencia Paranoid Sneaky Polite Normal Agressive Insane Cuadro 17.4: Opciones deversas de Nmap descripci´n o Agiliza el escaneado. esta examinando. e incluso as´ podr´ a ı ıamos perder datos. . escaneando. a -F 1 Una vez cada 15 segundos -F 2 Una vez cada 4 segundos -F 3 Tan r´pida como permita el SO a Configuraci´n predeterminada. Cuadro 17. Los paquetes son montados en la m´quina atacada y algunas a veces pueden burlar los cortafuegos e IDS. que fragmenta los paquetes de escaneado a mediada o que sale. pero podemos perder hosts. o -F 4 Igual que Normal pero la frecuencia del paquete se recorta a 5 minutos por host y 1. o Use Decoy: -D Se introducen IPs se˜uelo en el trafico mandado a la m´quina que se n a decoy_address1.2. incluso aunque o no est´n respondiendo.

Con otros servicios como FTP o SMTP podemos llevar a cabo a tareas similares. a Siempre se puede verificar cualquier puerto sospechoso abierto consultando con dicha direcci´n IP sobre el o n´mero de puerto especificado y observando la respuesta obtenida. tendremos que cuestionarnos cu´l ser´ ese servicio extra˜o que se est´ ejecutando en la m´quina y que no utiliza un a a n a a n´mero de puerto conocido. KNmapFE.2. como Telnet o FTP. “Audite la seguridad de sus Redes antes que los chicos malos lo hagan” (Audit your a network security before the bad guys do). seg´n la siguiente tabla: e u Cuadro 17. Estos son los m´s atractivos para los intrusos. los puertos descubiertos escuo chando dicha IP y el nombre conocido del servicio (si lo tiene). As´ se devolver´ la p´gina inicial de ´ ı a a ındice como HTML (no como una bonita p´gina Web). ı. pero podemos buscar un o puerto misterioso en una lista de puertos malignos conocidos para determinar r´pidamente si el puerto a abierto es algo de lo que tenemos que preocuparnos. Los troyanos y el u e software de conversaci´n se muestran normalmente como servicios desconocidos.Cap´ ıtulo 17. ) o Para instalarla realizaremos un apt: #apt-get install nmapfe Y para ejecutarla: #nmapfe o xnmap Nmap es una herramienta ideal para Verificar/auditar el Firewall. . s´lo porque Nmap obtenga una respuesta sobre el puerto 80 e imprima o “http”.6. u Estos son servicios que pueden proporcionar alguna informaci´n sobre la m´quina o el sistema o a operativo. Nmap tambi´n codifica con colores los puertos encontrados. QNMap. Web-NMap.7. Salida de Nmap Nmap produce un informe que muestra cada direcci´n IP encontrada. a Nlog (sin licencia GPL) o alguna herramienta parecida puede ayudarnos a interpretar la salida Nmap.5. interfaz Nmapfe o a Incluido con Nmap se encuentra nmapfe que es un interfaz gr´fica.org/nmap/ a Jose Antonio Escart´ Vigo. Color Rojo Azul Negrita Negro Como podemos comprobar en el cuadro 17. Sin embargo. Cualquier otro servicio o puerto identificado.5: Codificaci´n de color de la salida de Nmap o Descripci´n o Este n´mero de puerto est´ asignado a un servicio que ofrece alguna forma directa de inicio u a de sesi´n en la m´quina. La p´gina oficial de Nmap es: http://www. lo que no significa a a que deber´ ıamos ignorar cualquier n´mero inusual que no est´ resaltado o en negrita. la salida nos permite examinar un informe y determinar r´pidamente si hay m´s servicios o puertos con los que tenemos que tener cuidado. Junio 2005. e importarlos en otro programa. Pruebas del sistema 307 17.2. u Podemos guardar los registros Nmap como n´meros de formato.insecure. Kmap. aunque es algo bastante probable. que permite ejecutar Nmap usando a el rat´n. si dichas opciones no fuesen suficientes. Si existe un servidor Web ejecut´ndose u a ah´ normalmente podremos obtener una respuesta mediante la introduccion del comando GET/HTTP. Su ejecuci´n sobre redes muy grandes puede servirnos de salvavidas ya que el examen cuidadoso de cientos o de p´ginas de salidas Nmap nos puede volver locos r´pidamente. Tambi´n muestra si el puerto se ha abierto. Tambi´n indicar que existen otras interfaces gr´ficas para facilitar a´n m´s el uso de esta potente o e a u a aplicaci´n (KNmap. Configuraci´n gr´fica de Nmap. no significa que un servidor Web se est´ ejecutando en el host. . e filtrado o cerrado. incluyendo el texto simple o legible u por la m´quina. . Sin embargo. tal como dice uno de los banner de su p´gina oficial. vnmap. ın . o a a Este n´mero de puerto representa un servicio de correo como SMTP o POP. Si no lo podemos encontrar en dicha lista. a a 17. pero podremos a verificar si un servidor se est´ ejecutando.

ıa a • Para empresas grandes que necesiten todos los tipos de servidores.3. que el sistema no es capaz de ejecutar y soportar el uso simultaneo de los demonios de los servicios implementados. Durante la elaboraci´n del proyecto. se advert´ de que el uso de servicios de gran consumo de recursos en la misma m´quina ıa a provocar´ la ralentizaci´n del sistema hasta niveles inaceptables.308 Servidor Linux para conexiones seguras de una LAN a Internet 17. Puesto que el servidor que utilizo es un ordenador portatil con procesador Intel Centrino a 1. cuando arranco el servidor y Tripwire deja el sistema colapsado. Jose Antonio Escart´ Vigo. en todas y cada una de las secciones. ın . o probablemente. medidas de f´ ısicas de seguridad. Por el tama˜o de la empresa que vaya a implementar el proyecto: n • Para empresas peque˜as carece de sentido tener todos los tipos de servidores disponibles. Carece de sentido probar algo que no va a aportar ning´n dato nuevo.6 Ghz. obteniendose de ella un 10 % del rendimiento a ıa te´rico. en la informaci´n que he o o consultado. por ejemplo. a • Los ataques dirigidos sobre una sola m´quina son m´s eficientes que sobre varias. Tales eran u o mis dudas que lo llege a comentar con el director del proyecto. a a Por todo ello. no es necesario realizar estas pruebas para confirmar lo evidente. respecto a rendimiento y seguridad. todos los a a e a servicios de la red caer´ con ella. en vez de un supercomputador con con varios procesadores. ıan o ıa trabajando junto a la base de datos MySQL o el el servidor Syslog. centralizar los servicios de una corporaci´n en una unica m´quina. el espacio f´ ısico que ocupan (en cuartos climatizados). o • Si se produjer´ una caida fortuita de la m´quina. Esto se puede observar. Y que se deber´ de buscar una soluci´n para descentralizar ´ a ıa o el sistema. al actualizar las sus bases de datos de archivos (Incluso con una prioridad nice baja (+10). se disponen de presupuestos adecuados para distribuir los servicios entre varias m´quinas. para e determinar el grado de sostenibilidad del sistema. ya n que la mayor´ no se utilizar´n. o ´ a Las razones que me llevan a esta decisi´n son varias: o He asumido desde un principio. adem´s a a del coste que supone. no va a hacer falta. sea menor que la de muchas de esas personas que describen como “suicidio”. Junio 2005. obtiene a la misma a vez el control de todos los servicios de esa m´quina. no creo necesario realizar pruebas de carga para determinar que no es una buena elecci´n o situar todos los servicios en una unica m´quina. con 512 Mb de RAM. Por motivos de eficiencia no se debe centralizar los servicios: • La m´quina funcionar´ al 100 % de su capacidad. etc. Un ejemplo de esto ser´ el IDS Snort. sino la confirmaci´n de algo que temia desde un principio. ıan Por motivos de seguridad no se debe centralizar los servicios: • Si un servicio tiene un exploit y un intruso obtiene el control de la m´quina. como un fallo el´ctrico o mec´nico. Pruebas de carga Aunqu´ en un principio pense en realizar una serie de pruebas de carga con diferentes clientes. Considero que mi capacidad de optimizaci´n del sistema. La limitaci´n no esta en el coste a o de las m´quinas sino en el personal que necesitan para configurarlas y administrarlas.

Swich y cables Material de oficina Local.1. 18.Cap´ ıtulo 18 Estudio Econ´mico o Mediante los siguientes esquemas se determinar´ el coste del proyecto de haber sido encargado por a una empresa. o Cuadro 18.1: Recursos asignados al proyecto Nombre Jose Antonio Escart´ Vigo ın Jose Antonio Escart´ Vigo ın Jose Antonio Escart´ Vigo ın Jose Antonio Escart´ Vigo ın Servidor Cliente Cliente de alquiler 1 Cliente de alquiler 2 Portatil de alquiler Impresora HP Deskjet 815 Router. Recursos En el siguiente cuadro se detallan los recursos que fueron necesarios para la elaboraci´n del proyecto o con una baremaci´n aproximada de sus costes. luz e internet Desplazamientos Manual de administraci´n Linux o Linux a fondo Todo Linux Sw libre: Herramientas de seguridad A El libro de L TEX Resto de libros e informaci´n proveo niente de bibliotecas e Internet Nombre corto Jefe de proyecto Analista Administrador de sistemas Documentalista Portatil Duron Linux/Windows Windows1 Windows2 ClienteWifi HP815 Redes Oficina Mantenimiento Desplanzamientos Linux1 Linux2 Linux3 Seguridad A L TEX Informaci´n o Grupo Personal Personal Personal Personal Infraestructura Infraestructura Infraestructura Infraestructura Infraestructura Infraestructura Infraestructura Infraestructura Gastos Gastos Libros Libros Libros Libros Libros Libros Tipo Obra Obra Obra Obra Material Material Material Material Material Material Material Material Material Material Material Material Material Material Material Material Coste 40 e/h 30 e/h 25 e/h 15 e/h 1150 e 600 e 100 e 100 e 150 e 240 e 300 e 300 e 1500 e 100 e 48 e 30 e 68 e 42 e 38 e —e .

Parece claro. Cuadro 18.500e 2. a a ´ Jose Antonio Escart´ Vigo. o Hasta las 400 horas en Documentaci´n: Debido al cambio de orientaci´n del proyecto.4.500e Administrador de sistemas Documentalista Varios 220 h. u u ya que estos han sido respetados con riguridad. subiendo el precio ıa total aproximado a los 22.310 Servidor Linux para conexiones seguras de una LAN a Internet 18.766e 14. 50 h. de unos 7. Modificaciones a los costes econ´micos o Debido a la falta de experiencia en sistemas Linux y en la creaci´n de manuales. haciendo inviable un estudio de este tipo en pymes.000e. o basada en los sueldos/hora asignados a cada cargo del personal. con un valor aproximado de 15.966e 18.000e. hacia la o o elaboraci´n de un “Manual de instalaci´n de servidores en Linux”.3. Y atienden a un mejor aprovechamiento y usabilidad de los contenidos del proyecto.o de horas 20 h. la configuo o raci´n de los servicios y las pruebas necesarias. de valor respecto al proyecto original. o o Esto supodr´ un aumento. Se podr´ decir que respecto a los objetivos iniciales. que el factor que influye de una forma determinante es la mano de obra necesaria. Junio 2005. configurar servicios y realizar las pruebas Generar informes y documentar el proyecto — N.2. ıa elaborando un “Manual de instalaci´n para servidores Linux” se ha conseguido que el uso del proyecto o pueda llegar a m´s ´mbitos y convertirlo en util para muchas personas. Resumen econ´mico o El coste del proyecto esta muy por encima de lo esperado. Manejando estas cantidades. ın . Costes En la siguiente tabla. 18.400e 4. se puede encontrar una valoraci´n aproximada de los costes totales del proyecto. por dos tercios la mano de obra. esta planificaci´n o o econ´mica se deber´ ver incrementada de la siguiente forma: o ıa Hasta las 350 horas en Administraci´n de sistemas: Para la asimilaci´n de los entornos.000e. estableciendo el valor del material en solamente un tercio del total. 160 h. Coste 800e 1. un proyecto de este estilo solo est´ al alcance de empresas donde se vaya a a utilizar este documento de manera intensiva.2: Costes del proyecto Nombre Jose Antonio Escart´ Vigo ın Jose Antonio Escart´ Vigo ın Jose Antonio Escart´ Vigo ın Jose Antonio Escart´ Vigo ın Material Nombre corto Jefe de proyecto Analista Tareas asignadas Establecer la planificaci´n y fijar o objetivos Seleccionar herramientas y analizar el grado de cumplimiento de los objetivos Instalar sistema. de “instalar un servidor”. — TOTAL: 5. Este aumento en el n´mero de horas en ning´n caso a derivado en un retraso en los plazos de entrega.

ıa n • La conexi´n es un problema. como podr´ ser un router. spammers y abogados de litigios de patentes. fue decidio a la mitad del proyecto. u A modo de resumen me quedar´ con la siguiente frase que lei mientras me documentaba y que esta e en concordancia con el esp´ ıritu de este proyecto: “En Internet s´lo el paranoico sobrevive. a • Las conexiones itinerantes a Internet. o No es viable un servidor portatil corporativo e itinerante: • S´lo puede ser utilizado para servicios concretos. fue debida a que el proyecto evoluciono hacia la elaboraci´n de un: “Manual de instalaci´n para servidores Linux”. Se necesita un punto de acceso (AP) que acompa˜e al servidor. Este cambio de orientaci´n. Puede ser un o lugar muy sucio. donde los usuarios wifi o o acceden al servidor mediante usuario y contrase˜a. que por ejemplo podr´ ser los empleados de otra oficina. si el proceso no pod´ ser reproduccido. en otra o ıan ciudad. gusanos.” o . troyanos. de nada serv´ documentar la inso ıa talaci´n de un servidor Linux. como NoCat. seguridad y redimiento. o • Las redes inal´mbricas producen graves problemas de seguridad intrinsecos e inevitables. pasando por la instalaci´n del sistema y finalmente la configuraci´n de la gran mayor´ o o o ıa de servicios disponibles para entornos corporativos. todav´ estan en pa˜ales. n ıa 2. • La descentralizaci´n se apoya en: Modularidad. a menos que se dispusiera de la o ıa misma m´quina y la misma infraestructura. basado a a en la distribuci´n Debian Sarge. para una empresa. lleno de virus. no compensa las desventajas. para que los conociemientos adquiridos.Cap´ ıtulo 19 Conclusiones La conclusi´n principal es que los objetivos marcados inicialmente fueron err´neos: o o No es viable un servidor centralizado: • El poco coste del material. que abarca desde la elecci´n o o o de la distribuci´n. El proyecto se ha adaptado a un entorno m´s general. La conexi´n EAP-TLS a trav´s de certificados digitales no es muy flexible a la incorporao e ci´n de nuevos usuarios. que no los plazos de entrega. desde los siguientes puntos de vista: o 1. puedan ser aprovechados por un o n´mero mayor de usuarios de escritorio y administradores de sistemas. Este problema lo podr´ ıamos solventar agregando a nuestro sistema un programa de validaci´n de conexi´n en nuestro sistema por web. ofrecidas por los ISP. n El aumento de las horas dedicadas. lo ultimo ´ que alguien querr´ es ponerse en l´ ıa ınea sin protecci´n alguna.

se lanzo la versi´n estable del proyecto Debian Sarge. Por razones diversas no me hab´ adentrado en el mundo de Linux.312 Es decir. . . . exigen de mucho tiempo y mucho dinero para que resulten efectivos. . Honeypots como Honeyd para entretener los ataques de los intrusos. entrar´. Si un intruso quiere entrar. . llegando suplir esta falta de previsi´n con unas 300 horas extras o respecto a la planificaci´n inicial. los plazos o se han aumentado muchisimo. y tiene los conocimientos y/o herramientas suficientes. si hubiera elegido Debian o Woody. PGP (cifrado de datos). IDS como Tripwire para garantizar la ino tegridad en archivos. Este futuro se ha adelantado un mes. AirSonrt. a Jose Antonio Escart´ Vigo. Esto derivo ıas o en dos consecuencias importantes: 1. disuasorio y forense. o IDS. Este proyecto me ha permitido profundizar e investigar sobre el mundo de la seguridad inform´tica. No garantiza la seguridad. Monitorizaci´n del sistema: Top. EAP-TSL (wifi). que no ser´ estandar. el uso de: Servidor Linux para conexiones seguras de una LAN a Internet Conexiones seguras como: SSH (telnet). exigen la dedicaci´n de mucho tiempo y una adminiso traci´n rigurosa. . el proyecto de la superior me resultar´ mucho m´s facil de afrontar y probablemente a a tambi´n este enfocado hacia alguna parte concreta de la seguridad inform´tica. escaneo de logs con Logcheck. . a Los sistemas de este estilo. m´s que a ıa a un nivel muy superficial. Junio 2005. El proyecto lo podr´ clasificar de inter´s personal. sistemas de detecci´n de intrusos: NIDS como Snort. . A nivel personal a sido un proyecto muy gratificante y muy desesperante al mismo tiempo. escaneo de puertos y servicios en red con Nmap. o Chequeos del sistema: Escaneo de vulnerabilidades con Nessus. a otro sitio. Gracias a los conocimientos adquiridos. pero con una gran falta de conocimientos de base. ya que mi pasi´n de siempre. ın . Hay que analizar hasta donde conviene a proteger y aplicar una soluci´n. ıa ganas e interes. Por contra. esto a sido debido a varios motivos: El primero y principal. o No todas las empresas se podr´n permitir este tipo de gastos. es decir sistemas de barrera contra ataques exteriores y fugas de informaci´n. SSL (web). . La primera positiva: La elecci´n de Debian Sarge fue muy acertada. La planificaci´n fue bastante imprecisa: Debido a mi falta de experiencia y conocimientos. . sector que actuale a metne est´ teniendo un gran auge. . Kismet Wireless. Las herramientas aqu´ propuestas son de car´cter preventivo. la soluci´n a pasado por agregar o un anexo (v´ase anexo G) donde se explica que ha pasado y que implicaciones tiene esto en el e documento. Es decir. sobre todo en entornos Linux y es muy probable que en el futuro. Part´ con mucha voluntad. habr´ terminado un proyecto que desde el principio ser´ obsoleto. no son la panacea.. el proyecto lo plantee demasiado ambicioso. Firewalls. a a a En contra: La mayor parte del documento est´ escrito pensado que la versi´n estable se lanzar´ a o ıa en un futuro inmediato.. de sniffers y de rootkits. . o A pocos d´ de la entrega final. esto muy pronto se hizo patente. 2. Con el proyecto finalizo la Ingenier´ t´cnica en Inform´tica de Sistemas. sino adaptada al perfil de nuestra organizaci´n o o a o empresa. . De a ı a esta forma es mucho m´s facil que el intruso se desespere y se vaya a hacer lo que quiere hacer. mi perfil a profesional se ubique en este sector. detectores de escaners de puertos. y me servido para afianıa e a zarme en la idea de terminar mis estudios en la Ingeniera superior. han sido los ıa e o sistemas operativos. ahora ıa ıa est´ totalmente actualizado y ser´ v´lido por un largo periodo de tiempo.

a o De est´ forma mi trabajo podr´ ser aprovechado por un mayor n´mero de personas. si la universidad y mi director de ıa proyecto est´n de acuerdo). ´ Jose Antonio Escart´ Vigo. Conclusiones 313 A Los conocimientos adquiridos en el entorno de composici´n de textos L TEX me permitir´n. lo considero una experiencia muy positiva y seguramente orientar´ mi futuro profesional a al sector de la seguridad inform´tica. Cada uno tiene a su sector de mercado y deben cooperar en vez de enfrentarse. Despu´s de la elaboraci´n de este proyecto. o a El descubrimiento del mundo del software libre. las licencias GPL permiten observar que hay futuro m´s haya de las empresas y los entornos propietarios. es poner a disposici´n de la comunidad de usuarios Linux este documento. Junio 2005. asumiendo el papel que han elegido.Cap´ ıtulo 19. ya que este no es el a a u t´ ıpico proyecto con una utilidad muy limitada. sino que tiene un uso mucho m´s amplio y puede llegar a a ser util a mucha gente. ın . si es posible (es decir. me ha abierto el horizonte. a partir o a de ahora. yo me he situado claramente en el sector GPL. a Una objetivo que me gustar´ conseguir. e o Por todo ello. realizar documentaci´n mucho m´s profesional.

.

Parte V Ap´ndices e .

.

:3. modo texto Editores de texto. modo gr´fico a Salir de las X .Ap´ndice A e Comandos b´sicos a Para m´s informaci´n sobre los comandos podemos ejecutar: $man <comando> a o Comandos de sistema Comando man ls rm cp mv ln -s <fichero> <enlace> pwd cd <directorio> cd . que se encuentre en la variable $PATH Entorno gr´fico X-Windows a Comando startx startx -. modo gr´fico a Partir ficheros Devuelve el Path de un ejecutable. modo texto Configurar X. more y less <comando>|more y <comando>|less vim y emacs nedit. etc. kedit y kwrite split which Descripci´n o P´ginas del manual a Listar (m´ltiples opciones) u Borrar Copiar Mover o renombrar Enlace debil a fichero Directorio actual Entra en directorio Sale del directorio actual Sobre atributos de ficheros Crear ficheros vac´ ıos Buscar ficheros Buscar texto en ficheros (muy potente) Busca un fichero que contenga esa cadena por el sistema Ver espacio libre en disco Ver espacio usado en el directorio actual Lista ficheros Salida de comando filtrada por p´ginas a Editores de texto.. xf86config xf86cfg CTRL+ALT+BACKSPACE Descripci´n o Iniciar sesion X Abrir nuevas sesiones Configurar X. chgrp y chmod touch <fichero> find y locate grep find / | grep ’cadena’ df du -sh cat.:2. chown.

Junio 2005.318 Servidor Linux para conexiones seguras de una LAN a Internet Comandos para comunicaciones y redes Comando who finger mail write wall mesg talk baner cal clear date passwd Descripci´n o Lista los usuarios conectados Informaci´n sobre los usuarios o Sencillo programa de correo Manda un mensaje a la pantalla de un usuario Manda un mensaje a todos los usuarios Activa/Desactiva la recepci´n de mensajes write y wall o Establece una conversaci´n con otro usuario o Saca un letrero en pantalla con el texto que se le pase al comando Saca un calendario en pantalla Limpia la pantalla Saca fecha y hora actuales Cambia contrase˜a de un usuario n Comprimir y descomprimir Comando tar zxvf tar jxvf tar cxvf <archivo>. ın .tar.gz Empaquetar sin comprimir (m´ltiples opciones) u Comprimir ficheros (despues de empaquetar) Montaje de unidades Comando mount -t msdos /dev/floppy /mnt mount -t iso9660 /dev/cdrom /mnt mount -t <tipo> /dev/<dispositivo> <punto_de_montaje> umount <punto_de_montaje> Descripci´n o Montar diskette Montar cdrom Montar un dispositivo Desmontar unidad Uso del sistema Comando ps ps -u<usuario> lspci lsmod modconf uname -a ldconfig -p ldd <ruta>/<programa> shutdown -r 0 shutdown -h 0 shutdown <opcion> <n_segundos> logout su <usuario> fdisk /mbr Descripci´n o Procesos en ejecuci´n del teminal o Procesos en ejecuci´n del usuario o Dispositivos PCI del sistema M´dulos cargados en el kernel o Cargar m´dulos en el kernel o Informaci´n del sistema o Librer´ instaladas ıas Librer´ que usa el programa ıas Reinizializa el sistema (#reboot) Apaga el sistema (#halt) Realiza ´pcion despues de n segundos segundos o Cierra la sesi´n del usuario o Cambia sesi´n a otro usuario (switch user) o Borra el gestor de arranque del disco (arranques del sistema) Jose Antonio Escart´ Vigo.tar.gz Descomprimir un .tar.gz <archivo> gzip -d tar gzip Descripci´n o Descomprimir un .bz2 Comprimir un archivo o directorio Descomprimir un .

Por ejemplo en el archivo ˜/. hay que ejecutar el siguiente comando: $locale Si adem´s queremos saber que traducciones locales tenemos disponibles en el sistema.ISO-8859-15 export LC_ALL=es_ES@euro La pr´xima vez que hagamos login con el usuario cargar´ el nuevo perfil. con el mismo comando que antes: $locale . mediante el n comando: #/usr/sbin/locale-gen Adem´s en unos de los ficheros que carga las variables de usuario a˜adiremos las siguientes variables a n de entorno. Podemos comprobamos que o a “los locales” son los correctos. no se encuentra disponible entre las locales del sistema las podemos incluir en el archivo de configuraci´n de locales. Para ello a˜adiremos al final de ese archivo las o n siguientes l´ ıneas: es_ES@euro ISO-8859-15 es_ES ISO-8859-1 Una vez a˜adidas al archivo necesitamos que las ejecute y reconfigure nuestro sistema.gen. para ver “los locales” (idiomas locales) que tiene el usuario que se encuentra actualmente conectado. /etc/locale. ejecutaremos la a siguiente instrucci´n: o $locale -a Si el idioma castellano.Ap´ndice B e Debian en castellano Para tener las aplicaciones en nuestro idioma lo primero que necesitamos es instalar los siguientes paquetes: #apt-get install user-euro-es language-env euro-support Una vez hayamos realizado el apt-get.bash profile: export LANG=es_ES.

se puede consultar mediante: o $man castellanizar Jose Antonio Escart´ Vigo. fichero de configuraci´n de la consola: o SCREEN_FONT=lat0-sun16 APP_CHARSET_MAP=iso15 APP_CHARSET_MAP_vc2=iso15 APP_CHARSET_MAP_vc3=iso15 Si adem´s tambi´n queremos colocar las p´ginas de manuales en castellano hay que instalar los sia e a guientes paquetes: #apt-get install user-es manpages-es manpages-es-extra Solo queda castellanizar las aplicaciones del sistema.320 Servidor Linux para conexiones seguras de una LAN a Internet Una vez tengamos disponible el idioma castellano. Junio 2005. Hay que ejecutar el siguiente comando. ın . podemos habilitar tambi´n el soporte para el euro e en la consola. seleccionando las opciones que nos interesen: #dpkg-reconfigure locales. Este documento esta basado en la documentaci´n disponible en Debian. si es que tienen los archivos del idioma. Pasa eso tenemos que a˜adir las siguientes l´ n ıneas al fichero /etc/console-tools/config.

conf /etc/init.bash logout ˜/.conf /etc/xinetd.gen /etc/console-tools/config /etc/webmin/miniserv.bashrc /etc/ssh/ssh config /etc/ssh/sshd config ˜/.profile ˜/.conf /etc/squid/* Descripci´n o Configuraci´n del gestor de arranque Lilo o Superservidor de Internet y envoltorio de demonios TCP/IP Configuraci´n del superservidor.bash profile ˜/.bash login ˜/.xinitrc ˜/.vimrc /etc/profile ˜/.Ap´ndice C e Archivos de configuraci´n o Archivo /etc/lilo /etc/inetd.d /etc/passwd /etc/group /etc/skel/* /etc/fstab /etc/X11/XF86Config-4 ˜/.d/* /etc/rc#.deny /etc/crontab /var/spool/cron/crontabs/<usuario> /etc/anacrontab /etc/locale.allow /etc/at. mediante entorno gr´fico o a Scrips de inicio del sistema que ejecutara initd Scripts runlevels que ejecuta init al arrancar el equipo Usuarios del sistema Contrase˜as encriptadas de los usuarios del sistema n El contenido de este directorio se copiar´ al home de cada a usuario nuevo del sistema Montaje de particiones en el sistema Configuracion de las X-Windows Archivo de arranque de usuario para las X-Windows Archivo de configuraci´n del Vim o Preferencias de todos los usuarios del sistema Preferencias del usuario Preferencias del shell bash Configuraci´n de inicio del shell bash o Configuraci´n de finalizaci´n del shell bash o o Si se ejecuta un shell interactivo bash sin entrada por consola Configuraci´n del cliente para las conexiones seguras SSH o Configuraci´n del servidor de conexiones seguras SSH o Directorio que contiene los archivos de usuario de GnuPG Usuarios a los que les esta permitido programar tareas at Usuarios a los que les esta denegado programar tareas at Tar´as programadas del sistema e Tareas programadas por cada usuario Tareas programadas que se pueden ejecutar con retraso Archivo de locales Archivo de configuraci´n de la consola o Archivo de configuraci´n de Webmin o Configuraci´n del proxy Squid o Archivos de configuraci´n del Proxy Squid o .conf /etc/squid/squid.gnupg/ /etc/at.

322 Archivo /etc/kismet/kismet ui.conf /etc/kismet/kismet.conf /etc/freeradius/radiusd.conf /etc/freeradius/eap.conf /etc/freeradius/clients.conf /etc/freeradius/users.conf /etc/modules.conf /etc/modules /etc/network/interfaces /etc/network/options /etc/host.conf /etc/hostname /etc/hosts /etc/hosts.allow /etc/hosts.deny /etc/hotplug/* /etc/hotplug.d/* /etc/cvs-cron.conf /etc/cvs-pserver.conf /etc/dhcpd.conf /etc/default/dhcpd /var/lib/dhcp/dhcpd.leases /var/lib/dhcp/dhclient.leases /etc/default/dhcp3-relay /etc/dhpc3/dhclient.conf /etc/dhcp3/dhcpd.conf /etc/snort/snort.conf /etc/snort/rules/*.rules /etc/tripwire/twpol.txt /etc/acidlab/acid conf.php /etc/portsentry/portsentry.conf /var/log/* /etc/nessus/nessusd.conf /etc/proftpd.conf /etc/ftpusers /etc/ypserv.conf /etc/ypserv.securenets /var/yp/Makefile /var/yp/yp-servers /etc/yp.conf /etc/nsswitch /etc/resolv.conf /etc/bind/db.lan /etc/bind/db.192.168.0 /etc/bind/named.conf /etc/bind/named.conf.local /etc/bind/named.conf.options /etc/samba/smb.conf /etc/smbpasswd /etc/smbusers /etc/lmhosts

Servidor Linux para conexiones seguras de una LAN a Internet Descripci´n o Configuraci´n de la interfaz del sniffer wifi Kismet o Configuraci´n del sniffer wifi Kismet o Opciones de FreeRadius Opciones para EAP en FreeRadius IPs clientes de FreeRadius Usuarios clientes de FreeRadius M´dulos que se cargar´n al inicio o a Configuraci´n de los m´dulos o o Configuraci´n de interfaces de red o Configuraci´n de las opciones de red o Dice al sistema c´mo resolver los nombres de los hosts o Nombre.dominio del host local Nombre y direcci´n IP de hosts del sistema o Hosts a los que se le permite el acceso al sistema Hosts a los que se le deniega el acceso al sistema Scrips de configuraci´n de dispositivos hotplug (inst. din´mica) o a Archivos de agentes de dispositivos Sistema de versiones concurrentes (cvs) Opciones del servidor de versiones (cvs) Archivo de configuraci´n estandar DHCPD o Opciones del DHCPD Base de datos lease para el servidor DHCPD Base de datos lease para el cliente DHCP Archivo de configuraci´n DHCP-relay o DHCP del cliente dhcp3 DHCP del servidor dhcp3 Archivo de configuraci´n de Snort o Archivos de reglas para Snort Archivo de pol´ ıticas Archivo de configuraci´n de ACID o Archivo de configuraci´n de PortSentry o Registro de logs del sistema Archivo de configuraci´n de Nessus o Configuraci´n del servidor ProFTPD o Usuarios del sistema que tienen permitido el acceso FTP Configuraci´n del servidor NIS o Configura las IP que tienen permiso para usar el servidor NIS Configuraci´n opciones servidor NIS y archivos a exportar o Listado de los servidores NIS secundarios de nuestro sistema Configuraci´n del cliente NIS o Archivos a importar del servidor NIS Contiene el nombre y la direcci´n IP de los servidores DNS o A˜adir para los equipos de una LAN n A˜adir para el DNS inverso de una LAN n Configuraci´n del servidor DNS BIND o Define zonas locales en el servidor DNS BIND Define las opciones del servidor DNS BIND Configuraci´n del servidor Samba o Contiene los passwords de los usuarios Samba Contiene una lista de los usuarios del sistema y su correspondencia con su usuario Samba Interfaz entre los nombres de maquinas NetBIOS y las direcciones IP numericas

Jose Antonio Escart´ Vigo, Junio 2005. ın

Ap´ndice C. Archivos de configuraci´n e o Archivo /etc/printcap /var/spool/samba /var/spool/mail /etc/dumpdates /<particion>/quota.group /<particion>/quota.user /etc/exports /etc/jabber/jabber.xml /etc/printcap /etc/cups/cupsd.conf /var/run/cups/printcap /var/spool/cups /etc/apache/httpd.conf /etc/apache/modules.conf /etc/apache/access.conf /etc/apache/srm.conf /etc/apache/mime.types /etc/apache/conf.d/ /etc/apache-ssl/* /var/log/apache/* /etc/webalizer.conf /var/www/webalizer /etc/exim4/exim4.conf.template /var/mail/<usuario> /etc/mailname /etc/aliases /etc/email-addresses /etc/fetchmailrc ˜/.fetchmailrc /etc/courier/imapd /etc/courier/imapd.cnf /etc/courier/imapd-ssl ˜/.mailfilter /etc/procmailrc ˜/.procmailrc /etc/clamav/clamd.conf /etc/default/spamassassin /etc/default/spampd

323 Descripci´n o Impresoras del sistema Cola de impresi´n, por defecto, en Samba o Correo de los usuarios Informaci´n de las copias de seguridad realizadas o Archivos de configuraci´n de quotas de grupo o Archivos de configuraci´n de quotas de usuario o Archivo de configuraci´n de NFS o Archivo de configuraci´n del servidor Jabber o Archivo de configuraci´n de impresoras LPD o Configuraci´n del servidor Cups o Archivo de configuraci´n de impresoras Cups o Directorio donde se almacenan los archivos que se van a imprimir Archivos de configuraci´n de Apache o

Directorio de configuraci´n de los m´dulos Apache o o Los mismos archivos de configuraci´n, para Apache-SSL o Directorio donde se almacenan los logs, generados por Apache Archivo de configuraci´n de Webalizer o Reportes de estadisticas web Archivo de configuraci´n de Exim4 o Archivo de correo de los usuarios del sistema Direcciones de correo locales Alias de nombres de usuario Direccion de correo del servidor Archivo de configuraci´n del servidor Fetchmail o Archivo de configuraci´n de usuario Fetchmail o Archivo de configuraci´n de courier-imap o Opciones de courier-imap Opciones de courier-imap-ssl Configuraci´n de usuario Maildrop o Archivo de configuraci´n del servidor Procmail o Archivo de configuraci´n de usuario Procmail o Archivo de configuraci´n de ClamAV o Configuraci´n del SpamAssassin o Configuraci´n del demonio de SpamAssassin o

Jose Antonio Escart´ Vigo, Junio 2005. ın

Ap´ndice D e

¿Por qu´ Debian no tiene rc.local ? e
A diferencia de otras distribuciones Linux, parece que Debian no usa rc.local (el archivo de configuraci´n o local) para el proceso de inicializaci´n. Entonces, ¿qu´ facilidades suministra Debian para esta tarea? o e

Runlevels
Tradicionalmente en los sistemas UNIX/LINUX, cuando se inicia la m´quina, el proceso “init” (que a es ejecutado por el kernel cuando termina su arranque) ejecuta una serie de scripts de inicio, los cuales suelen encargarse de “setear” valores de configuraci´n y ejecutar diversos programas. o Dicho proceso de arranque se separa en runlevels, que son simplemente n´meros que identifican cada u etapa, y en general van del 0 al 6, los n´meros del 7 al 9 tambi´n est´n definidos pero no se suelen usar. u e a Hay una excepci´n, el runlevel s, que es el “single user mode”, y se suele usar para tareas especiales o de rescate y/o mantenimiento inesperado. Hoy en d´ las distribuciones manejan cada una sus scripts de arranque de forma particular, y muchas ıa, veces se manejan de forma alternativa sin tener runlevels claramente definidos como hasta hace unos a˜os. n En algunas, se pueden encontrar los directorios /etc/rc#.d/, donde # representa al n´mero de runlevel ; u en otras est´n todos los scripts contenidos en /etc/rc.d o en /etc/init.d. Lo mas aconsejable en cada caso a es consultar la documentaci´n de cada distribuci´n. o o Podemos cofigurar gr´ficamente los scrips de RunLevel con la herramienta: #ksysv a

Insertar un script en el arranque
Supongamos que un sistema necesita ejecutar el script exemple al inicializar, o al entrar en un runlevel en particular. Entonces el administrador del sistema deber´ ıa: Colocar el script exemple en el directorio /etc/init.d/ Ejecutar la orden update-rc.d con los argumentos apropiados para preparar enlaces entre los directorios rc?.d (especificados desde la l´ ınea de comandos) y /etc/init.d/exemple. Aqu´ ‘?’ es un n´mero ı, u que corresponde a un runlevel estilo System V La orden update-rc.d 1 crear´ enlaces entre ficheros en los directorios rc?.d y el script en /etc/init.d/. a Cada enlace comenzar´ con una ‘S’ o una ‘K’, seguida de un n´mero, seguido por el nombre del script. Los a u scripts que comiencen con ‘S’ en /etc/rcN.d/ ser´n ejecutados al entrar al runlevel N. Los que lo hagan a con con una ‘K’ ser´n ejecutados al dejar el runlevel N. a

1 Para

tener disponible el comando update-rc.d hay que realizar un apt: #apt-get install rcconf

326

Servidor Linux para conexiones seguras de una LAN a Internet

Uno podr´ por ejemplo, obligar al script exemple a ejecutarse en el arranque, poni´ndolo en /etc/init.d/ ıa, e e instalando los enlaces con #update-rc.d exemple defaults 19. El argumento ‘defaults’ se refiere a los runlevels predeterminados, que son los que van del 2 al 5. El argumento ‘19’ se asegura de que exemple sea llamado antes que cualquier otro script que contenga el n´mero 20 o un n´mero mayor. u u Si necesitamos administra este tipo de archivos de runlevel podemos instalar con apt, el siguiente paquete: #apt-get install rcconf Para ejecutarlo intruduciremos el comando: #rcconf Mostrar´ un men´ gr´fico desde donde podremos habilitar o deshabilitar servicios en la carga inicial a u a del sistema.

Insertar un script, mediante el asistente gr´fico a
Se pueden agregar scrips de forma gr´fica, mediante nuestra herramienta de configuraci´n web: Weba o mail. En la figura D.1 podemos observar el m´todo para agregar un scrip nuevo. e

Figura D.1: Interfaz gr´fica Webmin para agregar Runlevels a

Jose Antonio Escart´ Vigo, Junio 2005. ın

Ap´ndice E e

Puertos por defecto
El n.o de puertos a los que podemos acceder en cada hosts es de 65.536 (216 ). Estos puertos est´n a divididos en tres secciones: Los puertos IANA: Son los 1024 primeros puertos del PC. La organizaci´n IANA (Internet Aso signed Numbers Authority) adjudic´ a cada uno de estos puertos una utilidad, protocolo,. . . para o estandarizar la comunicaci´n. o Los puertos Registrados: Son aquellos comprendidos entre el 1.024 y el 49.151 asignados a protocolos, programas, . . . Pero no se encuentran estandarizados. Los puertos privados: Son los que van del 49.152 y el 65.535. Sobre ellos no recae ning´n uso paru ticular y son utilizados para uso privado de los hosts y programas locales. Si necesitamos m´s informaci´n, sobre la asignaci´n de puertos la podemos consultar en la RFC1700 a o o que data de Octubre de 1994, disponible en la direcci´n: http://www.ietf.org/rfc/rfc1700.txt. o Tambi´n existe otro “malicioso” grupo de puertos, son los puertos por defecto de los troyanos. Se e utilizan para establecer la comunicaci´n servidor-cliente entre los ordenadores implicados en la misma. Al o existir troyanos que permiten utilizar utilizar otros puertos , la identificaci´n de los mismos puede no ser o infalible, si bien la mayor´ de los usuarios de troyanos no se molestan en cambiar los puertos y utilizan ıa los puertos por defecto. Si necesitamos m´s informaci´n, en la siguiente p´gina web podemos encontrar la a o a mayor´ de puertos de troyanos: http://webs.ono.com/usr026/Agika2/2troyanos/puertos troya.htm ıa Y para terminar con esta secci´n, podemos observar los puertos que hemos utilizado en este proyecto: o

Servicio FTP SSH TELNET DNS DHCP SERVIDOR DHCP CLIENTE TFTP WEB (HTTPS) HTTPS CUPS

Puerto 21 22 23 53 (UDP) 67 (UDP) 68 (UDP) 69 80 443 631

Servicio SAMBA NESSUS RADIUS SERVER HORDE HORDE (SSL) SQUID JABBER CLIENTE JABBER SERVIDOR WEBMIN

Puerto 901 1241 1812 2095 2096 3128 5222 5269 10000

pero no me son utiles. una vez ´ conocidos los comandos b´sicos). Modo comando El modo comando del vim tiene multitud de opciones. . este ultimo es m´s completo y tiene m´s ´ a a opciones. tenemos varias opciones: o a: A˜adir a partir del siguiente car´cter n a i: Insertar a partir del car´cter actual a o: Insertar una l´ ınea debajo de la actual y comenzar all´ la inserci´n ı o El modo inserci´n no tiene muchos secretos. Cabe destacar que en Vim. Prefiero un editor potente y a la vez simple (Vim es muy simple. a diferencia de otros editores se pueden ´ o deshacer infinitos cambios. a Tiene dos modos de trabajo. pasemos a detallar las m´s utilizadas: a u: Deshacer la ultima acci´n. u Edici´n de ficheros o Para editar un fichero simplemente hay que hacer: $vi <archivo>. ya que esta opci´n no tiene l´ o ımite CTRL+r: Rehace la ultima acci´n deshecha con “u” ´ o w: Guardar w!: Fuerza a guardar (es recomendable usar esta opci´n) o . a Modo inserci´n o Al editar un fichero entramos en el modo comando por defecto. . en caso de que no exista se crear´. principalmente o en el modo comando debido al gran n´mero de opciones disponibles. . el modo comando y el modo inserci´n. si lo que queremos es entrar en el modo inserci´n.Ap´ndice F e Manual del editor Vim (Vi mejorado) Personalmente utilizo el editor Vim frente al editor Emacs. Me voy a centrar. se puede escribir lo que se quiera y luego volver al modo o comando. pulsando la tecla Esc.

En dicho fichero tenemos o una serie de opciones que podemos activar o desactivar seg´n lo que prefiramos.vimrc. puede ser consultado en la siguiente direcci´n: o http://www. las principales son: u syntax on: Activa el coloreado de sintaxis. e fichero: Abre el fichero dd: Elimina la l´ ınea sobre la que est´ el cursor a x: Suprime el car´cter siguiente a donde esta el cursor a <numero>yy: Copia una cantidad de l´ ıneas igual a n´mero u p: Pegar l´ ıneas /cadena: Busca ‘cadena’ en el texto sobre el que trabajamos n: nueva b´squeda sobre la ultima cadena especificada u ´ :<numero> : Va a la l´ ınea identificada por el n´mero u %s/cadena/nueva cadena: Se usa para sustituir ‘cadena’ por ‘nueva cadena’ en el texto. resaltar´ los resultados coincidentes con el patr´n. (punto): Repite el ultimo comando ´ Personalizaci´n del Vim o Se puede personalizar Vim mediante un archivo de configuraci´n. si no se ha guardado bloquea la salida q!: Fuerza a salir sin guardar x: Guardar y salir x!: Guardar y salir. . ın .330 Servidor Linux para conexiones seguras de una LAN a Internet q: Salir. Junio 2005.todo-linux.com/modules.php?name=News&file=article&sid=2162 Jose Antonio Escart´ Vigo. el ˜/. ´ u a o au BufReadPost * if line ("""")lexecute(normal’"")|endif: Posiciona el cursor en donde se encontraba la ultima vez que editamos el fichero ´ Basado en un manual publicado en Todo-Linux. forzando la escritura. Por ejemplo si hacemos !ls inserta la salida de ls en nuestro fichero. esta opci´n o es especialmente util ´ r fichero: Vuelca el contenido de fichero sobre la posici´n actual del cursor o !comando: Inserta la salida de un comando ejecutado. muy util para programadores ´ set nobackup: Evita que se cre´n copias de seguridad cada vez que editemos un fichero e set showmode: Muestra siempre en que modo estamos trabajando (comando o inserci´n) o set ruler: Muestra una regla con informaci´n en la parte inferior de la consola o set vb: Desactiva el molesto “pitido” y lo sustituye por un parpadeo de pantalla set ignorecase: No diferencia entre may´sculas y min´sculas u u set showmatch: Es util para realizar b´squedas.

nat o mangle) • -p: Especifica un protocolo • -i: Especifica un interface de entrada • -o: Especifica un interface de salida • -j: Especifica la acci´n a ejecutar sobre el paquete o Acciones: • DROP: Elimina el paquete • LOG: Registra el paquete • REJECT: Rechaza el paquete • ACCEPT: Acepta el paquete .4x o posterior). Cadenas (chains) predefinidas: • INPUT: Los paquetes que llegan a nuestra m´quina a • OUTPUT: Los paquetes que salen de nuestra m´quina a • FORWARD: Los paquetes que atraviesan nuestra m´quina a Las opciones b´sicas: a • -s: Especifica una direcci´n de origen o • -d: Especifica una direcci´n de destino o • --sport: Puerto de origen • --dport: Puerto de destino • --tcp-flags mascara activos: Flags permitidos (m´scara) y flags activos a • -m: M´dulo de opciones (Vease $man iptables) o • -f: Paquetes fragmentados • -t: Especifica la tabla (filter. Comandos b´sicos a IPTables es la evoluci´n de ipchains y ipfwadm y b´sicamente permite o rechaza los paquetes que o a llegan al host desde una red.Ap´ndice G e Gu´ r´pida de IPTables ıa a IPTables es una herramienta para filtrar paquetes del kernel (2.

ver las reglas introducidas • iptables -F. .0.0.0.201.144 -j DROP iptables -A INPUT -s 195. .0/24 -p TCP --dport 25 -j ACCEPT -s 192. Junio 2005. .76.76. es decir abrir un puerto de salida en el router: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport [puerto_externo] -j DNAT --to [IP_maquina]:[puerto_maquina] Si queremos denegar un rango concreto de IPs: iptables -A INPUT -s 195.8.112/29 -j DROP iptables -A INPUT -s 217.0.168. .116. .168. Denegamos todas las entradas permitimos todas las salidas iptables -A INPUT -j DROP iptables -A OUTPUT -j ACCEPT Si queremos poner la m´quina como firewall con dos interfaces de red. Ejemplos Eliminamos todas los paquetes de entrada y salida: iptables -A INPUT -j DROP iptables -A OUPUT -j DROP Aceptamos que se conecten a nuestro servidor Web(80) y FTP(21): iptables -A INPUT -p TCP --dport 80 -j ACCEPT iptables -A INPUT -p TCP --dport 21 -j ACCEPT Permitimos la comunicaci´n con el servidor DNS: o iptables -A INPUT -p udp --dport 53 -j ACCEPT Script muy b´sico de IPTables para dar acceso al 80 y al 22: a #!/bin/bash # Permitimos que se conecten a nuestro servidor web y al ssh iptables -A INPUT -p TCP --dport 80 -j ACCEPT iptables -A INPUT -p TCP --dport 22 -j ACCEPT # Permitimos la comunicacion con el servidor dns iptables -A INPUT -p udp --dport 53 -j ACCEPT # Reglas basicas.0/16 -j DROP Jose Antonio Escart´ Vigo.116. ın .168.0/24 -j DROP iptables -A INPUT -s 155.238.332 Comandos fundamentales: Servidor Linux para conexiones seguras de una LAN a Internet • iptables -L. eth0 y eth1: a • Activamos el ip forward: echo 1 > /proc/sys/net/ipv4/ip_forward • Hacemos el NAT de las direcciones de fuera y permitimos la salida: iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -A FORWARD -o eth1 -i eth0 -j ACCEPT • S´lo permitimos que la o iptables -A FORWARD iptables -A FORWARD iptables -A FORWARD red interna acceda a los puertos 25 y 80 de la red externa: -s 192.0/24 -j DROP iptables -A INPUT -s 217.0/24 -p TCP --dport 80 -j ACCEPT Si queremos hacer un proxy transparente para la salida de la red interna.0/24 -p TCP -j DROP -s 192. .0.172. borrar todas las reglas Con #man iptables tenemos todas las opciones.

ya o a ı: que esta destinada a desarrollar el software que luego pasar´ al resto de versiones.rediris.list contiene las siguientes entradas: deb http://ftp. nuestro sistema dejar´ de ser Sarge.es/debian-non-US sarge/non-US main contrib non-free deb http://security.list para que no nos cambie de versi´n autom´ticamente. o a En estos momentos mi archivo /etc/apt/sources. La a o versi´n testing pasara a llamarse Etch y ser´ una versi´n real “en pruebas” ya que Sarge llevaba mucho o a o tiempo entre los usuarios y ya esta muy probada.es/debian/ testing main non-free contrib deb http://ftp. a .rediris.es/debian sarge main contrib non-free deb-src http://ftp. Para tener nuestro servidor es necesario tener una versi´n estable y no en pruebas.es/debian-non-US testing/non-US main contrib non-free deb-src http://ftp.es/debian/ sarge main non-free contrib deb http://ftp.rediris. Esta versi´n siempre se llamar´ as´ “Sid” y no es adecuada para el uso de servidores.rediris.debian.Debian Sarge.rediris. a Tambi´n quer´ recordar que existe una tercera versi´n de Debian: Debian Sid o “unstable”.es/debian-non-US testing/non-US main contrib non-free deb http://security. hemos de modificar o nuestro /etc/apt/sources. Sarge ha sido congelada y en breve ser´ la nueva versi´n ‘stable’ de Debian.es/debian-non-US sarge/non-US main contrib non-free deb-src http://ftp.rediris. aunque dentro de unos d´ lo har´ en la nueva etapa como ıas a estable. y paa sar´ a ser Etch.es/debian testing main contrib non-free deb-src http://ftp. nueva versi´n estable o En el proyecto Debian.debian.rediris.org/ sarge/updates main contrib non-free Y realizar un: #apt-get update Si dejamos el archivo /etc/apt/sources.list como “testing”. deberemos cambiarlo por este otro: deb http://ftp.rediris.org/ testing/updates main contrib non-free Para que mi sistema siga siendo Sarge. que es la e ıa o versin inestable.

En otras palabras.8 y XFree86 4. sitio en el cual humildemente me ubico.95. Por tanto. se ha pospuesto una semana. por el nuevo instalador de Debian. o o Los mayores cambios para Sarge incluyen reemplazar el antiguo sistema de instalaci´n con discos o flexibles. Esta situaci´n es temporal.334 Servidor Linux para conexiones seguras de una LAN a Internet Desde la p´gina oficial de Debian podemos obtener los siguientes datos: a Desde el 3 de mayo de 2005. ın . esta distribuci´n dispone de oportunas actualizaciones o de seguridad. Como es usual. y usar GCC 3. que acerte de pleno en la planificaci´n y la elecci´n de Debian o o Sarge fue primordial para que este documento sirva como ayuda durante un largo tiempo a los nuevos “administradores junior”. “Debian publica la nueva versi´n cuando es el momento de hacerlo”. las actualizaciones de seguridad de la distribuci´n “en pruebas” las o gestiona el equipo de seguridad. o Como despedida solo cabe decir. ya que la distribuci´n en pruebas est´ congelada. y pasa o a ser el 6 de junio de 2005. Jose Antonio Escart´ Vigo. inicialmente prevista para el 30 Mayo.3. o o a La fecha de publicaci´n. Tambi´n se ha llevando a cabo la o e introducci´n de nuevas versiones de programas como son Perl 5.3 como el nuevo compilador predeterminado en arquitecturas que hasta ahora usaban la versi´n 2. Junio 2005. las metas de la versin y la fecha en la que se har´ p´blica no se determinan con a u antelaci´n.

que cualquier a puede utilizar de forma completamente gratuita para proteger sus creaciones.org/license/?lang=es. adaptadas a la legislaci´n a e o espa˜ola. fotograf´ literatura. cuyo m´ximo exponente en nuestro pa´ quiz´ sea la cada vez menos querida SGAE a ıs a Por otro lado tenemos la anarqu´ total. a http://creativecommons. Como escoger una licencia Para que la selecci´n de licencias resulte f´cil para todo el que quiera proteger sus obras sin necesidad o a de saber nada de Derecho. . . o En diciembre de 2002. . http://creativecommons. Una visi´n en la que los creadores tienen total libertad para ıa o hacer lo que les d´ la gana. De esta forma.info. sino tambi´n y sobre todo. n Con demasiada frecuencia. Creative Commons lanza el primer conjunto de licencias. . sino para e a otros tipos de trabajos creativos: p´ginas web. . pero. pel´ a u ıculas. . te ofrece la licencia m´s adecuada. . no meramente traducidas al castellano y al catal´n. herramienta en castellano. el autor no se cita al no figurar en el articulo. pero en la que no tienen absolutamente ninguna protecci´n. a 0 Estos datos han sido obtenidos de la web http://www. diponible en Castellano y Catal´n que te a permite ir eligiendo el tipo de protecci´n que quieres para tu trabajo y en funci´n de las opciones que o o escojas. ıas. al contrario ´sta. e o Creative commons surge como una soluci´n de compromiso entre ambas posturas. tesis doctorales. la visi´n sobre la protecci´n de de obras creativas tiende a los extremos.Licencia Creative Commons: Reconocimiento-CompartirIgual Gracias a la Universidad de Barcelona y en particular a Ignasi Labastida i Juan y a la colaboraci´n de o un grupo de abogados de reconocido prestigio disponemos hoy por hoy de las licencias creative commons. herramienta en catal´n. . las licencias Creative Commons no est´n pensadas para software. As´ se conse e ı truye una capa de protecci´n que ofrece una alternativa razonable y flexible a la cada vez m´s restrictiva o a normativa en cuesti´n de propiedad intelectual. “Reconocimiento-CompartirIgual” la misma bajo la que se encuentra este proyecto. o o Por una lado tenemos la concepci´n en la cual cualquier posible uso de una obra debe estar regulado al o mil´ ımetro.org/license/?lang=ca. los o creadores pueden elegir qu´ derechos quieren reservarse y qu´ usos de su obra quieren permitir. Las licencias de Creative Commons se inspiran en la licencia a GPL de la Fundaci´n para el Software o Libre. cursos . . han creado una herramienta online.elcuaderno.org/ /licenses/by-sa/2.0/. m´sica. acogida a la licencia http://creativecommons.

tienen que dejar bien claro los t´rminos de la licencia la obra e Noncommercial/No comercial : Permites que otras personas puedan copiar. o o Una vez que has escogido las condiciones que quieres. puesto que la condici´n “compartir igual” s´lo es aplicable a las obras derivadas. distribuir y comunicar p´licamente la obra as´ como hacer obras derivadas.336 Servidor Linux para conexiones seguras de una LAN a Internet Creative commons no supone renunciar a proteger tu trabajo. ın . • Al reutilizar o distribuir la obra. distribuir y comunicar p´licamente la obra. hacer u obras derivadas y hacer un uso comercial de esta obra. incluyendo el hacer un uso comercial de tu obra. en este momento hay 6). Siempre que: u ı • Te citen y te reconozcan como el autor original de la obra. e e a T´ decides en qu´ condiciones est´s dispuesto a permitir la utilizaci´n de tu trabajo. distribuir y comunicar p´licamente la obra as´ como hacer obras derivadas. junto con los iconos representativos de la licencia. Siempre qu´: u e • Te citen y te reconozcan como el autor original de la obra. Junio 2005. o C´digo digital: Una versi´n de la licencia legible por m´quinas que ayudar´ a las herramientas de o o a a b´squeda y otras aplicaciones a identificar tu trabajo en funci´n de sus condiciones de uso. C´digo legal: el texto completo de la licencia dirigido fundamentalmente a abogados. La distribuci´n de las obras derivadas se o permite unica y exclusivamente cuando la obra derivada utilice una licencia id´ntica que la que tiene ´ e el trabajo original. Share Alike/Compartir igual : Permites copiar. o Estas son las condiciones que se pueden escoger: Attribution/Reconocimiento: Permites que otras personas puedan copiar. No se pueden combinar las condiciones “compartir igual” y “sin obra derivada”. transforme o genere una obra derivada a partir de tu obra. combinando las u e a o distintas condiciones que puedes imponer. distribuir y comunicar p´licamente la obra. sino que implica que puedes escoger qu´ derechos prefieres reservarte y qu´ derechos quieres ceder a los dem´s. accedes a la licencia apropiada de tres maneras: Resumen simple: Un resumen en un lenguaje simple que todo el mundo puede entender. hay hasta once tipos de licencias distintas de las que escoger (adaptadas a nuestra legislaci´n. u ı Siempre que: • Te citen y te reconozcan como el autor original de la obra. • Al reutilizar o distribuir la obra. • Al reutilizar o distribuir la obra. u o Jose Antonio Escart´ Vigo. incluidos los posibles usos comerciales de la obra. tienen que dejar bien claro los t´rminos de la licencia la obra e • No se alterare. tienen que dejar bien claro los t´rminos de la licencia la obra e • No utilicen tu obra con fines comerciales No Derivative Works/Sin obra derivada: Permites que otras personas puedan copiar.

no permite realizar modificaciones de la obra y publicarlas o bajo el mismo nombre y en mi caso. Stanford. prefiero donarlo u a la comunidad y permitir que se pueda modificar y actualizar con el tiempo. GFDL tiene un gran fallo. De esta forma. visite http://creativecommons. Para ver una copia de esta licencia. para el PFC: “Servidor Linux para conexiones seguras de una LAN a Internet”. Reconocimiento-NoComercial 5. a o El bot´n “some rights reserved”. USA. Reconocimiento-NoComercial-SinObraDerivada 4. indica que los contenidos del sitio web est´n protegidos por una o a licencia Creative commons. Creative commons no es un bufete de abogados ni proporciona asesoramiento jur´ ıdico en caso de infringimiento de los t´rminos de una licencia. Reconocimiento-NoComercial-CompartirIgual 6.1 Espa˜a. Gu´ r´pida de IPTables e ıa a 337 C´mo se utiliza la licencia o Una vez elegida la licencia.“Reconocimiento-CompartirIgual”. que una vez pegado en la p´gina web o a generar´ un bot´n. 559 Nathan Abbott Way.1/es/ n o envie una carta a Creative Commons. No quiero que el PFC nazca y muera igual. esa obra o o o modificada o derivada este bajo la misma licencia que la primera y en ella se me cite como autor original.Ap´ndice G.” Jose Antonio Escart´ Vigo. e Las seis posibles combinaciones adaptadas a la legislaci´n espa˜ola son: o n 1.com). ın . ya sea por m´ o por a ı alguna otra persona que contin´e el proyecto. a condici´n de que. Reconocimiento 2. participan varios abogados.bufetalmeida. los que e a yo conozco? Supongo que los mismos que todo el mundo: Javier Mestre y Carlos S´nchez Almeida del a bufete Almeida (http://www. La asignaci´n de este tipo de licencia “Creative Common” respecto a GFDL. est´ justificada debido a o a que. Es decir. he escogido la licencia CC . est´s protegido jur´ a ıdicamente y puedes interponer una demanda en defensa de tus derechos de propiedad intelectual. en mi opini´n. En la lista de correo sobre licencias creative commons en espa˜ol. tendr´s que acudir a un abogado. me ha facilitado el siguiente p´rrafo para cualquier persona que necesite m´s a a informaci´n sobre la licencia: o “Esta obra est´ bajo la licencia de Atribuci´n de Creative Commons: Reconocimiento-CompartirIgual a o 2. Creative Commons. comunicando p´blicamente los t´rminos de tu licencia si alguien infringe los u e mismos. esta obra se deber´ actualizar con el tiempo. obtendremos un c´digo HTML. o Por eso cedo el derecho de realizar una explotaci´n econ´mica de la obra. quiz´ all´ puedes preguntar qu´ bufete hay cerca de d´nde vives que n a ı e o est´ especializado en estos temas. para elegir la licencia se voy a seguir el esp´ a ıritu de GNU y sus licencias: GPL para software y GFDL (GNU Free Document) para documentaci´n. Junio 2005. Si se da el caso. El bot´n enlaza con el resumen de la licencia que utilizas para proteger tus o contenidos. Reconocimiento-SinObraDerivada 3. California 94305. Reconocimiento-CompartirIgual Licencia escogida Por el car´cter abierto y libre de este proyecto.org/licenses/by-sa/2.

es Jose Antonio Escart´ Vigo. la licencia completa se encuentra disponible en la direcci´n: o http://creativecommons.1/es/legalcode.org/licenses/by-sa/2. ın .338 Servidor Linux para conexiones seguras de una LAN a Internet Resumen simple de la licencia del PFC Figura G. Junio 2005.1: Licencia Reconocimiento-CompartirIgual Esto es un resumen legible del texto legal.

org/HOWTO/html single/8021X-HOWTO/ .harvard.net/ .escomposlinux.Puertos de Troyanos http://www.Web oficial de Prosper http://sourceforge.Manual de KSnapshot http://download.org.org/samba/docs/man/Samba-HOWTO-Collection/ .bastille-linux.1x http://us1.canariaswardrive.org/ .es .Convertidor de Latex a Rtf http://laura.etse.edu/pub/nessus-php/ .DNS Como http://certisign.html .P´gina web de Bogofilter a http://bulma.net/article fitxers/1574/WXP-WAP-EAPTLS.ono.Wikipedia.Web oficial Kile http://latex2rtf.sourceforge.urjc.html .Tira c´mica Linux o http://tldp.org/ .1.org/ .org/ .pdf .sourceforge.Apache HTTPD Server Project http://kile.htm .net/ .Proyecto HoneyNet en castellano http://hostap.bufetalmeida.Pluggins para jabber http://eia.2.net/projects/airsnort .net/como/como.com/usr026/Agika2/2troyanos/puertos troya.P´gina Web del Proyecto Apache a http://www.Mini Como’s de Simon http://oriol.html .HowTo wpa supplicant http://httpd.P´ginas Web consultadas a http://acidlab.HowTo oficial de Samba http://webadminmodules.escet.Web de noticias sobre inform´tica a http://bogofilter.org .name/ .org/ .org/ .sourceforge.kde.net/trad/honeynet/ .bidmc.apache.com/ .com .org/ .P´gina Web del Proyecto Apache-SSL a http://www.Conectar WinXP a Radius http://packages.Consola de an´lisis de Bases de datos de intrusiones (ACID) a http://airsnort.apache.net/body.org .sourceforge.com .Manual del novato http://es.Interfaz PHP para Nessus http://es.net/ .sourceforge.samba.fi/wpa supplicant/ .org/es/HEAD/kdegraphics/ksnapshot/ .Documentaci´n sobre TCP/IP o http://enterprise.COMO capturar video http://his.Proyecto Lucas.Gu´ completa de paquetes Debian Sarge ıa http://patux.org/testing/ . la enciclopedia libre http://gimp. documentaci´n Linux en espa˜ol o n http://es.Comunidad de usuarios Linux.net/ .M´dulos para Webmin o http://webs.1 o http://cauchy.phtml?nIdNoticia=1334 .Entidad de certificaci´n o http://deim.org/Tutoriales/NOVATO/novato-a-novato/novato-a-novato.wikipedia.joor.net/dns/bind-9/DNS-HOWTO-9-es/ .bdat.Web de Bastille Linux http://www.HowTo sobre IMAP http://prosper.es/robotica/apuntes/captura video COMO.es .Bufete Almeida.org/ esr/fetchmail/ .hispalinux.shmoo.epitest.es/˜atm/tcp-ip/index.Web oficial de AirSnort http://apostols.HowTo 802.com.net/ . multitud de art´ ıculos http://bulma.br/servidores .apache-ssl.P´gina web de Fetchmail a .Manual del vi http://docs.tldp.Manual de configuraci´n DNS BIND 9.sourceforge.mx/imp-mini-como.es/ajuda/manuals/vi/ .urv.pdf .debian. especializado en ciberderechos http://www.er campeonato de Wardriving en Espa˜a n http://www.org .sourceforge.catb.apache.Web oficial de NePED.jabber. detector de sniffers http://barrapunto.udg.Grupo de usuarios Espa˜oles de GIMP n http://gsyc.net/ .HowTos Laura Celdran http://losinvisibles.html .glo.P´gina web de SpamAssassin a http://tira.Proyecto SourceForge AirSnort http://spamassassin.celdran.org/projectz/neped/ .tldp.

org/doc/manuals/apt-howto/index.icewalkers.org/docs/iptables/index.Todo sobre distribuciones http://www.debian.net .org/HOWTOs/Kernel-HOWTO.Escaner de puertos http://www.kde.faqs.umd.Comunidad de usuarios espa˜oles de TEX n http://www.HowTo EAP-TLS en WPA http://www.Web oficial de L TEX http://www.es.compuamersa.org/doc/manuals/securing-debian-howto/index.Manual de uso Logcheck http://www.Definici´n de tareas peri´dicas o o http://www.honeyd.P´gina de usuarios de Jabber espa˜oles a n http://www.FreeRadius http://www.org .html#toc1 .Agencia catalana de certificaci´n o http://www.ietf. Junio 2005.M´todos de la distribuci´n Debian e o http://www.Web oficial de GnuPG http://www.html .Web de chkrootkit http://www. ın .Web oficial Planner http://www.html .P´gina web de Exim a http://www.Web de KDE http://www.com/projects/planner/ .Cuotas de usuario http://www.com/linux/Kernel-Build-HOWTO.org/index.org/seguridad/logcheck/ .Entidad de certificaci´n o http://www.Web oficial de IPTables http://www.Puertos estandarizados por la IANA http://www.Implementaciones de OpenPGP http://www.digitalhermit.debian.Recompilaci´n Kernel HowTo o http://www.org .340 Servidor Linux para conexiones seguras de una LAN a Internet http://www.Web de noticias http://www.org/nmap/ .com/iptables/ .nodedb.Fuentes oficiales http://www.html .com/forum/remark. en espa˜ol n http://www.missl.insecure.com/˜barreiro/spain/cuota.org/ .org/seguridad/portsentry/ .org/ .org/ .Herramienta gr´fica para Nessus a http://www.org/distrib/ .de/produkte/ca .php?language=ES .Linux Intrusion Detection System http://www.com/linux.dslreports.linux.Web oficial Kismet Wireless A http://www.nessus.org/ .cypherspace.Manual de uso PortSentry http://www.edu/wireless/eaptls/ .clamv.elcuaderno.cu/manual/basico-html/node120.org/ .htm .isc.org/ .P´gina web de Courier a http://www.debian.org .courier-mta.freeradius.org .org/ .HowTos en espa˜ol n http://www.org/ .pl?/sw/bind/ .org/ .P´gina web oficial de Jabber a http://www.Web de GNOME http://www.gimp.lids.org .Web oficial del antivirus de correo ClamV http://www.net/ .linuxzamora.org/ .html .Librer´ t´cnica online de Barcelona ıa e http://www.Documentaci´n r´pida para Debian o a http://www.escomposlinux.cs.org/ .Tutorial IPTables (Ingl´s) e http://www.org .cervantex.P´gina oficial de Bind a http://www.org .net .gnupg.imendio.com/ncc/ .Manual de seguridad http://www.Conectar WinXP a Radius (Ingles) http://www.cert.latex-project.APT HowTo.org/doc/ .Agencia seguridad en Internet CERT (Computer Emergency Response Team) http://www.asp .exim.Web oficial de Honeyd http://www.org/rfc/rfc1700.org/ .jabberes.Web oficial de Debian http://www.com/Linux/Howto/ .linuxdocs.HowTos http://www.entrust.kernel.kismetwireless.debian.chkrootkit.org .llibreriaha.linuxdocs.P´gina web de Horde a http://www.org/ .horde.com/europe/es .Grupos de noticias de Linux http://www.html .Sobre las distribuciones http://www.jabber.Manuales sobre IPTables http://www.es.gnome.distrowatch.linuxguruz.linuxlots.netsecuritysvcs.Web de usuarios de Linux http://www.gwolf.iks-jena.9286052 mode=flat .net .org .Web de nodos wireless Jose Antonio Escart´ Vigo.Kernel HowTo http://www.html .Entidad de certificaci´n o http://www.txt .org/ .info/ .Herramienta de b´squeda de vulnerabilidades u http://www.debian.gwolf.Web oficial de The Gimp http://www.com/index.catcert.org/openpgp/ .com/cas/index.netfilter.

wifimaps.todo-linux.tripwire.xfree86.Entidad de certificaci´n o http://www.tldp.procmail.Mapas de nodos wireless http://www.org/ . ın .net/Projects/sentinel/ .net .HowTo bootprompt en Debian Sarge http://www.org/ .Web oficial de Tripwire http://www.Web de Webmin http://www.Entidad de certificaci´n VeriSign o http://www.xombra.snort.zonagratuita.packetfactory.Web oficial de Sentinet.org/HOWTO/BootPrompt-HOWTO.org/ .proftpd.com .verisign.Articulos sobre Linux http://www.org/samba/docs/ .Web de OpenSSH http://www. Gu´ r´pida de IPTables e ıa a 341 http://www.com/ .openssh.com/servicios/seguridad/snort.com/site .Documentaci´n sobre samba o http://www.html .Web oficial del proyecto ProFTPD http://www.samba. detector de sniffers http://www.Web de XFree86 http://www.webmin.com/ .Web oficial de Snort http://www.org .Ap´ndice G.Snort + Acid en Windows http://xvidcap.sourceforge.Proyecto Xvidcap Jose Antonio Escart´ Vigo.Comunidad de usuarios de Planner http://www.thawte.planetplanner.Manuales sobre linux http://www.P´gina web de Procmail a http://www.com/ .html .org .org/ . Junio 2005.com .org .

.

debian. Anaya Multimedia. L TEX: una imprenta en sus manos. 2003. Linux m´xima seguridad. Aula e a e A Documental de Investigaci´n. James Treacy. Composici´n de textos cient´ o ıficos con L TEX. Diciembre 2002. Programaci´n GNU/Linux. Sistemas de ficheros Linux.i386/index. Francisco Charte Ojeda.debian. Febrero 2005. o [CSLSMR+ 03] Bernardo Cascales Salinas. Steve Shash. o http://www. http://qref. o A Gabriel Valiente Feruglio. Anaya Multimedia. and Salvador S´nchez-Pedreo Guill´n. Linux a fondo. Daniel Bandel and Robert Napier. a Osamu Aoki. 2000. 2003. 2000. Osborne McGraw-Hill. sexta edition. Pascual Lucas Saor´ Jos´ Manuel Mira Ros. 2000. Gu´ de instalaci´n Debian GNU/Linux 3.alioth. Tony Howlett.org/manual/es. http://d-i. Linux. El libro de L TEX. e e A llar´s Ruiz.html. o [CSLSMR+ 00] Bernardo Cascales Salinas. 2004. 2001. Instalaci´n Debian GNU/Linux 3.org/releases/woody/installmanual. and Adam Di Carlo. . Manual de administraci´n de Linux. http://www. Pearson Prentice e a e Hall.net. Antonio Jos´ Paın. Pascual Lucas Saor´ Jos´ Manuel Mira Ros. 2005.debian. Pearson Prentice Hall. Software libre: Herramientas de seguridad. Bruce Perens. ıa o http://www. Igor Grobman. 2000. 1997. ıa Albert Bernaus and Jaime Blanco. and Salvador S´nchez-Pedreo Guill´n. Ediciones UPC. Antonio Jos´ Paın.sourceforge. 2002. InforBook’s. e e llar´s Ruiz. [eidD04] [How05] [PRG+ 02] El equipo instalador de Debian. Pearson Prentice Hall.org.1 para Intel x86.debian. Gu´ de referencia Debian. Pearson Prentice Hall.Bibliograf´ ıa [Ano00] [Aok05] [BB00] [BN00] [CO03] Anonimo. Sven Rudolph.0 para Intel x86.org. [Sha01] [VF97] [vH02] William von Hagen.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->