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. Compilaci´n de paquetes desde archivos fuente . . . . . . . . . . . . . . . . . .rpm a . . . . . . Kernel 5. . . e o 5. . Encontrar paquetes y sus dependencias . . .5.2. . . . . . . . . . .3.3. . . . . . . . . . . . . . o 4. . . . . . . . . . . . . . . . . . . . . . . . . . . o 5. . . Parchear el kernel . . . . . . . . . . . . . . . . .4. . . . . . Gestores de ventanas . . . . .6. M´scaras de red y notaci´n de barra inclinada . .3. . . . . . . . . . . . . .6. . . . Consejos para la configuraci´n del kernel . . . . . . . . . . . . . . . .3. . 5. . . . . SGID y bit de persistencia . Infraestructura de redes 7. . . . . .4.1. Variables de entorno . .6. . . . . . . . . . . 4. . . . . . .4. . . . . . . 6. . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . Alien: Convertir paquetes . . . . 4. . . . . . . . . . 4. . . . . o 6. . . . . . . . .7. .2. . . . . . . . . . . . . Kernel-image . . . . . . . . . .1. . . . . . . . . . . . . . . . Shells . Encaminamiento IP (router y gateway) . . . . . .2. . . . . . . . . . . . . . . . Instalar un kernel-source . . 5. . . . . 6. . . . . . . . Network Adress Translation) 7. . . . . . o 4. . . . . . . . . . . . Direcciones IP . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . Entornos de escritorio . . 7. . Acerca de los m´dulos . . . . .4. . . . . 6. . . . . . . . . . . . . . . Junio 2005. . . . .1. . . . . . . . . . . .5.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . Cambiar un archivo de propietario o grupo .4. . . . . . . . 6. .2. . .4.3. . . . .2. .5. . . . . . . . . . . . . . . . . . . . . . 5. . . . .4. . Ejecuci´n de procesos en la shell Bash . . . . . . . .2. . . . . . . . . . . Otros entornos de escritorio . . . . . 4. . . . . . . .2. . . . . . . . . . . .5. . . . . . . . .1. . . . . .2.5. . . . . . . 4. . . . . . . Tipos de shell . . . . . . . . . . .3.3. . . . o Jose Antonio Escart´ Vigo. . . . . . . . . . . . . . . . . .5. . . Interfaz gr´fico a 6. Kernel-source . . . . . . . . . . . . . . . . . . .2. . . . . . . Datagramas .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . 6. . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . 7. Permisos especiales: SUID. . . . . . . . . . . . . . . . . . . Enmascaramiento IP (NAT. . . . 6. . . . Bases de datos de usuarios .3. Arrancar X-Windows . . . . . . .deb . . . . . .5. o 6. . .5. . . Configuraci´n del entorno . . . . . . . . . . . . . . 5. . . . . . . . . . 4. . . . . . . Comprobar el hardware disponible . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . .1. . M´todo de compilaci´n . . . . . . . . . . . . . . . . . . . . . Apt: Gestor de paquetes Debian . . . . . . . . .x Servidor Linux para conexiones seguras de una LAN a Internet 4. . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . X-Window .5. . . . . . Instalaci´n de aplicaciones . . . . . . . . . . . . . . .5. . . . . . . . .5. . . . . . . . . . . . . . Resoluci´n de direcciones . . . . . . . . . . . . 5. Caracter´ ısticas de la shell Bash . 4. . . . . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . .deb (formato Debian) 4. . . . . . . . . . . . . . . . . 7. . . . . . . . . . . . . .3. . . .3. .6. . . . . . . . . . . . . . . . . . . . 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. .1. . . . . . . . . . . . . . . . . . . . . . . . . . e 5. . . . . . . . .6. . . . . . . . .2. Paquetes necesarios . . . . . . . . . 7. . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . .2. . . .1. . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . o 4. . . . . .2. . . . . . . . . . . . . . . . . Modificar los permisos . . . . . . . . . 4. . . .1. . . . . Tipos de archivo . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . Gnome . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . .6. . . . Crear un paquete . . . Compilar Kernel . . . . .5. . . . 4. . . . . . . . . . . . ın . 5. . . . . . . . . . .5.2. . . . . . . . . . . . . . . . . .4. . . .1. . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . 4. . . . . . Dpkg: Instalador de paquetes precompilados . . . . ¿Por qu´ compilar? . . . . . . . Permisos de archivos . . . .6. . . . . Problemas al instalar paquetes . . . . . . . . . . . . Subneting (CIDR) .4. . . . . . .3. . . . . . . . . . . . . . o 4. . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . . Kde . . . . . . . . . .3. . . . . . . . Consolas virtuales . . .4. . . Configuraci´n X-Windows . . . . . . . . . . Arquitectura de redes (Modelo OSI) . . . . . . . . . . Redireccionamientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a o 7. . . 4. . . . . . . .4. . . . . . . . . . . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

. Problemas de seguridad .4. . . . . . . . . . .3. . . . .5. . . . . . . . . . . . . . . . . . . . . . . . 9. 9. . Servidor Cups . . . . Impresoras . .5. . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . o 9. . . . . . . . . . . . . . . . . . . . . . .6.6. . . . . . . . Limitar acceso de los usuarios . . . . e 9. . .x .3. . . . . . . . Cliente NIS . Funcionamiento b´sico . . . . . . . . . . . . . . Cliente NFS . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Integraci´n de Samba en un dominio NT . . . o a ProFTPD: Servidor FTP . . . . . . . . . . . . . . . . . .2. . . . . . . . .xii Servidor Linux para conexiones seguras de una LAN a Internet 9. . . . . . . . . . . . . .2. . . . .7. . .4. . . . . . .2. . . e 9. . . . . . . . . . . . . . . . . . Apache 2. . . . . . . . . . . . 10. . . . . . . . . . Configuraci´n del servidor NIS maestro . . . 9. . . . . . a 9. . .2. . . . . . . . . . . . . . . . . .5. . . . . . . . . .1. . . o a Samba: Servicio de conexiones para sistemas Microsoft .3. . Servidores NIS . . .2. . . . . . . 10. . . . .3. .3. . . 10. .1. . . .3. . . . . . . . . . . . . . NFS: Sistema de archivos Linux en red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10. .3. . . . . 9. . . . . . . . . . . . . . . . .2. .2. . . . . . . . . .5. o 9. . . . . .3. 9. . . . . . . .3. . . . . . . . . . . Clientes Microsoft . . . . . . . . . . . interfaz Webmin o a 9. . . . . 10. .1. . . . . . Ataques al servidor Web . . . . . . . . . . . . . . Servidor de NFS . . . . . . . . . . . . . . . .2. . . . . . Servidor Web . . . . . . . . . . . . . . . . . . . . . Jose Antonio Escart´ Vigo. . . . . . . .4. . . . .3. . . . . . . . . . . . . . Configuraci´n gr´fica de DNS BIND. . . Creaci´n de un servidor web seguro . . . . . . . Servidor Apache . . .3. . . . .5. . . 9. . . . . . . . . . . . Compartici´n de recursos . . . . . . . .10. . . . . . . Clientes Linux . .1. . . . . . . . . . . . . . Junio 2005. . . . interfaz Webmin . . . ın . . . . . . . . . . . . . . .5. . . . 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . Traducci´n de nombres a direcciones IP .2.3. a 9. . . . . . . . .2. . . . . Configuraci´n gr´fica de Samba. Arrancar el sistema de cuotas . .6. Seguridad en DNS . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . interfaz Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 9. . . . . . . . . . . . Propiedades de las particiones montadas . . . . . . . . .1. . . 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Apache-SSL: Conexiones seguras . . . . . . . .2. . . . . .3. 9. . . . . . . o 9. . . . . . . . . . 9. . . . . . . . . . o 10. . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . interfaz Webmin . . . . . . . .6. . . . . . . . . Cups: Servidor de impresi´n . . o a 9. . . . . . . . . . . . . . . . . . . . . . . . ¿Qu´ es Samba? . . Configuraci´n del servidor . . . . . . . . . Solucionar problemas . . . . . . . . . . . . . . . . . . . Configuraci´n de Samba como controlador de dominio o 9. . . . . . .Servicios de usuario 10. . . . . . . . . . Herramientas b´sicas . . .2. . . .2. . 9. . ¿Para qu´ necesitamos un DNS? . . a 9. . . . . 10. 10. . . . . . . . . . . . . . . . . . . a 9. . . . Funcionamiento de CIFS . 10. . . . . . 9. . . . . . . . o 9. . . . . . . .6. .6. . . . . . . . . . . . . . . . . . . .4. . 9. . interfaz SWAT . . . . . . . . . . . . . . . Configuraci´n gr´fica de NFS. . . . . . . . . . . . . . . . . .1. . . . . . . . . . . .5. . Cuotas de usuario . 9.5. . . . . .2.5. . . . . . . . . . . . . . . . .12. . . . . . . . . .4. . . . . . . . . . .8. . . . . . . . . . . . o 9. . . . . 10. . . . . . . .1. . . . . . . . .4. . . . . . . . . . . . . . . . . . . . 10. . . . . . . . . . . . .4. . . Servidor ProFTP . . . . .4. . . . .3. . .4. . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . . . . . 9. . . . . . . . Compartici´n de directorios . . . . .5. . . .3. . . . . . . . . . . . . . Par´metros globales . . .5. . . . . .2. . . . . .3. . . . . . . . . . . .4. . . . . . . . .1. . . . . . . . . . . Clientes FTP . . . . .1. . .9. . . . . . . . . . . . . . . .2.5. . . .3. . . . . . . . . .5. . . . . . . . . .4.5. . . . . . . . . . . . . . . . . . . . . 10.6. . . . . . . . . .3. . . . . . Servidor Cups para Samba . . . . . . . . . . . . . . . . . . . . . o 9. . . . . . . . . . . . . . . . . . . . . .5. . . . . o 10. . . . . . . . . . . . . . . . . . . . .5. Configuraci´n gr´fica de Quote. . . . . . Montaje autom´tico de particiones NFS . . . . . . NIS: Servicio de informaci´n de red . . . . . . . Servicios que activa un DNS . . . .1.3. . . . . . . . . . . . .5. . . . . . . . . . . . . .1. . . . Configuraci´n gr´fica de ProFTP. . . . . . . Cliente Samba . . . . . . . . . . . . . . . . . . . . . .11. Configuraci´n gr´fica de Samba. . . . . . . . . . 9. Asignar cuotas a los usuarios . o a 9. . 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.5. . . . . . . . . . . . . . . 9.3. . . . . . . .2. . . . . . 9. . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . interfaz Webmin o a 10. . . . . . . . . . . . . . . . . . . . . . .

. . Servidor OpenSSH .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IPTables . . . . . . . . . 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. . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . .4. . . . . .3. . . . . . . . . . . . . .1. . . . .1. . . . . . . .1. . 12. . . . . . . . .5. Jose Antonio Escart´ Vigo. . . . . . .5. Junio 2005. . .4. . . . .1. . . . . . .8. . a 11. . . . . . . . .1. Filtrado de correo. .3. . . . . . . . . . .1. . . . . . . . . . . . 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . .4. . . . . . . . . . . .Comunicaciones seguras 11. . . . . . . . . . . . . . . .5. . 11. . . . . . . . . . . . . . . .2. . .4. . . . .1. . . . Exim: Correo corporativo . . . . . . . . . .5. . . . . . . . . . . . . . . . .4. . . ıa 11. . . . .5. . . . . . . . . . . 10. . . . . . . . . . . . . . . . . . 13. . . . . . . . . . . . . . . . . . Bogofilter: Filtro bayesiano . o 13. . . . . . . . . . . . . . . . . . . . . . . 11. . . . . . . 11. . . . . . . . . . . . . . 12. . . . . . . . . . . . . . Fetchmail: Correo externo . . . . . Herramientas b´sicas . . . . . . . . . . . . . . .1. . . .4. . . . . . . . . . 12. . .Herramientas de seguridad 12. . . . .5. . . . . . . . . . . . . . . . . . . . . . . .5. . . . . Modos de funcionamiento . . . . . . . . . 10. . . . . . . . .7. . . . . . . . . . . . . Horde: Webmail .1. . . . . . . . 11. . . . .1. . . .4. . . . .´ Indice general 10. . . . . . . . a . . . . Clientes Jabber . Ping .5. . . . . . . . . . . . . . . . . . . . Cliente OpenSSH . . . . . . . . . . . . . .2. . . . . . . . . o a 10. . . . . . . . . . . Configuraci´n gr´fica de backups. . . . . . Aplicaciones de la criptograf´ . . .4. . . . . . . . . . . . . . . . . . . . . . Tipos de cifrado . . . . . . . . . . . . . . . . . Mt . . . . . . . . . . . . Shell seguro: OpenSSH . . . . . . . . . . .3. . . . . . . . . . . . . . K3B: Grabaci´n de CDs y DVDs . Pol´ ıticas de seguridad . . . . . . 11. . .1. . . . . . . . . . . . . . . . . . . . . . . . .2. . . 13. . . . a 12. . . . interfaz Webmin o a 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Finger . . . . . . . . . . . . . . . . . . . . . . . . interfaz Webmin . . . . 12. . Protocolo IMAP . 10. . . . . . .2. . . OpenPGP: Aplicaci´n de cifrado o . . . . . . . .1.1. . . . . . . . . . 12. Jabber: Mensajer´ instant´nea para corporaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 13. . . . . . . . . . . . 10. . . . . . . . . . . . . . Configuraci´n gr´fica de Jabber. . . . . . . . . . . . . . . . . .2.2. 12. . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . .2. . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . .2. . .5. . . . . Traceroute . . .1. . . . . . . . . . . 12. . . . . . Dig . . . .2. . . . 10. . . . . . 13. . . . . . . . . . . . NIDS (Network Intrusion Detection System) 13. . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . Tipos de IDS . . . . . . . .3. . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12. . . . . .1. . . . . . . . . . . . . . . . Criptograf´ y cifrado . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . Whois . . . . . . . . . . . . . . . IPS (Intrusion Prevention System) . .3. . . . .1. . . . . . o 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . 10.3. . . . . . . . o o 13.4.4. . . . Dispositivos de cinta . . .4. .2. . . . . . . El problema de los falsos positivos de NIDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ıa a 10. . . . . . . . . . . . . . .6. . . SpamAssassin: Filtro basado en reglas . . . 12. . . . . . . . . . . . . . . . . . . .5. . . . . . . IDS (Detecci´n de actividades an´malas) . . 10. . 11. . . . . Squid: Proxy transparente . . . . . ın . . . . . . . Servidor Jabber . . . . . . . . . . . . 12. Firewall o cortafuegos . . .2. . . .2.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dump y Restore . . . Obtener lo m´ximo del IDS . . . . . . . . . . . . . . . ıa 11. . . . .Sistemas de detecci´n de intrusiones o 13. . . . . . Protocolos de cifrado . 10. . Bastille Linux: Herramienta de seguridad . . . .2. . .4. . . . . . . . .4. . . .2. . . . . . . 10. . . . . . . . . . Ejecuci´n . . . . . . . . . . . . ClamAV: Antivirus para correo . . . . . . . . . . . . . . . . . . . .2.1. . .1. . . .2. . . . . . . .1. . . . . . . .3. . . . . . eliminar virus y Spam con Procmail 10. . Modos de configuraci´n . . . .2. .2. . . . . 12. . . . . . . . . . 12. .4. . . . . . . . . . . . . . . . . . . . . . . . o 12. . . . . . . . . . . . . . . Servidor de correo . . . Copias de seguridad . . . . . . . . . . . . . . . .4. . . .3. . . . . . . . . . . . . . . . . . . . Ubicaci´n del NIDS . . Est´ndares generales . . . . . . . . 12. . . . . . . . . . . . . . . .

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

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

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

o 9. . . . . . . . . rango de direcciones . . . . . . . . . 2. . o 10. Apache. pache. . . . . . . . . . . . . . UDP. . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . xim. . . Cups. .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . cabecera del datagrama . . . . . . . . . . . . . . . . . . . .1. . . . m´dulo Webmin . . . . o 10. . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . .10. . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . tipos de transparencias IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . IP. diagrama temporal .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10. . . . . . . . m´dulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9. . . . . . . . . . . . .11. . . . . . . . . . . . . . NFS. . . . . 7. . . . . .5. 7. . . . . . . . . . . . . o 10. . .14. 1. . . . . . . distribuci´n de recursos o Planner. . . . . . . . . .1. . . . . m´dulo Webmin . . . . . . . . .6. . . . . . . . . . . .7. . . . . . . . . Apache. . . . . . . .4. . . . . . . . . . . .11. . . . . . . . . . . . .3. . . . . interfaz gr´fica de configuraci´n a o 10. . . . . . . . . . . . . . . . . . . . . . . . . . . 9. 7. . . . . . . . .13. . . o 9. . . . . . . Quota. . . . . . . . . . . . . . . . . . . . . . . . . DNS BIND. . . . . . .´ Indice de figuras 1. . . . . . . . Cups. 9. . . . . . .1. . . . . . . . . . . . . . . . . . . compartici´n de carpetas . interfaz gr´fica SWAT a 9. . . . . . . . 7. .3. . . . . . . . . . . . . . . . . . . . . . . . . . 9. . . . . . .2. . . . . . . . . . . . . . . . . . . . . Apache. . . . . . . . . . . . . . . . . . m´dulo Webmin . . . . . . . . . . . o 10. . . . . . . . . .2. . . . . m´dulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . Prosper. . . . . . . . . . . . . . . . . . . . . o 1. . . . . . . .4. . . . . . . . . .9. . . . . . . . . . . . . . . . . . . . . . . . . . ProFTPD. . . . . . . . . . . cabecera del datagrama . . . . . . . . . . . . .4. . . . 2. . . . . . . . . . . . . . . . . . Samba. . o 9. . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . Apache. .8. . . . . . . . . . . . . . . . . .7. . . . . . A o 10. . . . . . . . . . . . . . . . . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . . . . . .12. . . . . . . . . . . . . . DHCP. . . . . . . . . . . . . . . . . . monitor con la interfaz Webmin E 10. . . . . . . . . . . 9. . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . m´dulo HtAccess Webmin . . . . . . . NIS. . . . . . . . . . . . . . m´dulo Webmin . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . cabecera del datagrama TCP. . . . . . . . . . . .5. . . . . . . . . . . . . . . . .8.1. . . m´dulo Webmin o 9. Webalizer. . . . . . . . . . . . . . servidores virtuales . . . . . . . . . . . . . etchmail. . . . . . . . direcciones reservadas . . . 9. . . m´dulos instalados . . . . . . . . . . . . . . . . . . . . . . . m´dulo Webmin . . . . . . . . . . . . Planificaci´n . . . . . . . . . . . . . . . . . . . . 10. . . . m´dulo Webmin . . . . . . . . . . . . . . . . 2. . . . 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. . . . . . Editor Kile . . . .12. . . . . . . . . . . . . . . . . . F o . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IP. . impresora HP815 . . . .3. . . 7. . . . . . . . . . . . . . . 1. . . . . . . . Samba. m´dulo Webmin . . . . o 9. . . . . . . . . . . . . . . . . . . . . . . . 2. . . . . . . . . 9. . . . . . . . . . . . parametros de configuraci´n . . o 10. . . . . . .9. . . . . . . . . . o 10. . . . . . . . Apache. . o 10. . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nessus. abber. . . . . . . . . . . . . . .18. . . . . . . . . . . . . . . . . 15. . . . . . . . . . . . . . . . . comparativa . . . desv´ en el router . . . . . . . . . o 14. . . . . . . K3B. . . . . . .xviii Servidor Linux para conexiones seguras de una LAN a Internet . . .2. . . . rocmail. . . . . . . . . m´dulo Webmin . . . . . . o 12. . . . . . . . . . . Runlevels. . . . . . J o 10. . . . . . . . . . . . . . . Servidor Radius. WEP-WPA. . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . .2. . . . . . . Licencia Reconocimiento-CompartirIgual . . . . . . .14. . . . . . . . . . . . . . . . . . . . . . . detalle de una alerta de Snort 13. . . . . . . . . . . . . . . . 14. . . vulnerabilidades del sistema . . o G. . . . . . . . . . . . . . . . . . . . . . . . m´dulo Webmin . . .13. . . . Logcheck. . . . . . . . . . . . . pantallas de la interfaz Web . . . . . . m´dulo Webmin . . . . .2. . . . . m´dulo Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o 17. . . . . . . . . . . Backups. . . . . . . . . .4. .17. . . . . . . . . . Jose Antonio Escart´ Vigo. . . . .16. . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . descifrado de claves WEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . cliente de mensajer´ instant´nea . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14. . . . . . . ın . . . Acidlab. . . . . . . . . . . . . . .2. . . . . . . . . . P o 10. . . . . .1. .19. m´dulo Webmin . . . . . 15. Webmin. . 17.7. . . . . . .3. . WPA/EAP. . . . . . aim. . . . . . . . . . . . . . PortSentry. . . . . Snort. . . . . . . . . . . configuraci´n de la aplicaci´n . . . . . . . . . . . . . . . . Junio 2005. . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . Nessus. . . S´ ımbolos urbanos de redes wifi . . . WPA. . . . . . . . . S o 10. pamAssassin. 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. . . . . . . . . cliente de mensajer´ instant´nea K ıa a 10. . . . . . . ıo 14. . Servidor Radius. . .3. . Webmin. . . . AirSnort. . . . . . . . . . . o 15. . . 14. . . . . . . .4. . . SSHD. . .3.1. . . .15. . . . . . . . . . . . . . autenticaci´n servidor Radius . . . . opciones de configuraci´n . . . . . . . . . 14. . . . . . . m´dulo Webmin . . . . . . . . . . . . . pantalla de configuraci´n . . . . . . . . . . . . . .1. . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 13. . . . . . m´dulo Webmin . . . . . . . . m´dulo Webmin . . . . . . o 12. . . opete. . . . . . . . . . . . . . . . . . . . . . . o 13. . . rocmail. . . . . . . . . . . . . . . . . . . . . . . . . . . . o 13. . . . . . . D. . funcionamiento .6. . . . . sistema de autenticaci´n o 14. . . . G ıa a 11. . . . . . .1. . crear acciones de forma gr´fica P a 10. . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . grabaci´n de CDs y DVDs . m´dulo Webmin . . . . . . . . . . . . . S o 10. . . . . . . . . . pamAssassin. . . . .5. . . . . . .

. . . . . . . . . . . .8. . . . . . . . . . . . 4. . . . 10. . . . . . Dpkg. . . . . . . . . . . . 5. . IPTables. . .1. . . . . . opciones . . . . . . . Netstat. . opciones . . . . Apt. . . . . . . . . 4. . . . .4. . . . . . . . . . .1. . . . . . . . .5. . . . . . . . . . . . . . . . . . . Tipos de redes. . .1. . . . . . .3. . . . 5. . . . . . . . . . . . 4. . . . . . . . /var/yp/Makefile. Variables habituales del sistema . . . . . Ping. . . . . . . . . . .12. . . . . . . . . . . . . opciones . . . . . . . . 4. . . . . . . . ejemplo . . Lilo. . . . . . . . TCP/IP. . . . . 4. . . . . . . . . . Kernel 2. . . . . . . . . . . . . . . . .9. . . . . . . . . . . . Chmod. ejemplo . . . . . . . . . /etc/shadow.1. . . . . . . . . . . . IPTables. . . . . . 4. . . . . . . . . . . 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . o TCP/IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 4. . . . . . . . . .1. . . . . . . . . . . . . a 5. . . . . /etc/passwd. . . . . . . . . . opciones . . . e o 6. . . . . . . . . ejemplo . . . . .3. opciones especiales . . . . SSH cliente. . . . . . . . . . . . . . . Modelo de referencia OSI . . . . . .6. . . . . . . . . .10. . .4. . . . . . . . . . . . . . . . . . . .list. . . . . . . . . . . . . . . . Tipos de archivos . . .13. . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . Apache. . . . . . comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . descripci´n de campos . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . /etc/shadow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Opciones b´sicas . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chmod. . . . . . . . . . . . . . . . Dig. . . . . .4. . opciones . . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . . . . . . . . . descripci´n de campos o 4. . . . . . . . . . . . . . . . . . 7. . . . . . o 11. . . . . . . opciones . /etc/group. . . .1. a 4. . . esquema de transmisi´n . . . ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .o de hosts por red Notaci´n de barra inclinada en IPs . . . . descripci´n de campos o 4. . Makefile. . . . . paquetes b´sicos . . . . . . . n. . . . . . . . . .2. . . .1. . . . . M´todo de compilaci´n del kernel . . . . . . . . . Kernel. . . . . . . . . . . . . . . . . . . . . . . ejemplo . . . . . . . . . .7. . . . . . . . . . . 4. . . . . . . . . 12. . . 12. . o . . archivo de configuraci´n . . . . . . .5. . . . . . . . . . . . . . . . . .15. . . . . . . . . . ejemplo . . . . . . . . . . . . . . . . . . . . o 4. . . /etc/X11/XF86Config-4.1. . .´ Indice de cuadros 1. . . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . especificaciones de reglas 12. 7. . . . . . . IPTables. . . . . . .1. . . . 12. . . . . . . . . . . . . . . . Distribuciones Linux . . . . . . . . . . . . . . ejemplo . . . . . . . . . . . . . . . .5. paquetes necesarios . . ejemplo . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ejemplo . . . . . . . . . . . . . . . . . . . . . /etc/group. . . . . . . . . . . . . . /etc/apt/sources. . . . . . . . . archivos de configuraci´n . . . . . . . . .11. . . . . . . . . . . . 7. . . . . . . . . 8. . . . .14. . . . . . . . . /etc/passwd. . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . 9. . . . .3. . . . . . . Objetivos del proyecto . . . . . . .6. . . . . . . .1. 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. . .2. . . . . . . . . . . . .

. . . . . . . . . . . . . . m´dulos disponibles . . . . . . . . . . . . . . . . . . . . . . . . . .xx 12. o 13. Est´ndares 802. . . . . . . . . . . . . . . . . . . .9. . . . . . . . . . . . . . . . . . o 16. . . . . Servidor Linux para conexiones seguras de una LAN a Internet . . . . . ın . . . . . . Junio 2005. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14. . . 17.1. . . . . . . . . . . . . . . . . . . . Nmap. . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . . . . 12. opciones . .3. . . . . . . . . . m´scaras de propiedad . gr´fica a . . . . . . . . . variables de configuraci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18. opciones . . . . . . . . /etc/squid/squid. . . . . . archivos de reglas . . . . 13. . . . .6. . . . . . . . . . . . . . . . a 13. . . . . . . . . . opciones de descubrimiento . . . . . . . . .4. . . . . . . . . . . . . . .1. . .3. . . . . . . . . . .1. . . . . . . . . . opciones . . .2.1. . . . . . . . . . . . . . . . configuraci´n . . . . . . . . . . . . . . . . . . . . . . Snort.conf. . . . opciones de alerta . . . 17. . . .11 inal´mbricos . . . . . . . . . . . . . . . . . . . . . teclas de la interfaz gr´fica a . . . . Nmap. . a a 14. . . . . . . . . . . . . . . . . . . . . . opciones . . . . . . . . . 17. .4. . . . . . . . . . . . PortSentry.1. . . . . . . 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. . . . . . . . . . . . . . . . . . . . o 14. . . . . Acidlab. . . . . . . . 17. . . . . . . . . otras opciones . m´scaras predefinidas en plantillas a 13. . . . . . . . . . . . . . . . . . . . Tripwire. . . . Ps. . . . . 15. . . . . . . . .3. . . . . . . . . . . . Nmap. . . . . . .7. . . . . . . . . . . . . . . . .1. . . . . . .5. configuraci´n de la interfaz o 14. Snort. . . . . . . . Webmin. . . . Snort. . .4. . .7. .2. . . . . . . . .8. Kismet. . 13. . Recursos del proyecto . . opciones de personalizaci´n . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . opciones . . . . . . . . . . . Nmap. . . . . . . . . Kismet. Restore. . . . . . Tripwire. Mt. . . . . . . . . . . . . . . . . . .2. . . . . . . Dump. . . . . . . . . . . . . . . . . . Costes del proyecto . . . . . . codificaci´n de color de la salida o . . . . . . . . 17. . . . . . . . . . . . . . . . . . . . . . . . . o 13. . . . . . 18. . . . .6. . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . configuraciones de frecuencia . . tipos de escaneo . . . . . . . . . . . . . . . . . . Kismet. . . . . . 12. . . . .9. . . . . 13. . . . . . . . . Jose Antonio Escart´ Vigo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ejemplo 12. Nmap. . . . . . .

Parte I Tareas previas .

.

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

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

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

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

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

.

adem´s de la ventaja de poder portar el a a proyecto y trabajar en sitios diferentes. En este ordenador se realizar´n la mayoria de pruebas de conexi´n a o o servicios.3 Ghz. Esta conexi´n es suministrada.2. una ethernet 10/100Mb y otra wifi 802. 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. a 2. Se presentaron una serie de problemas directamente derivados de esta elecci´n. conectados mediante cable RJ45 a un switch. a PC AMD-Duron a 1. o El port´til elegido fue un Acer TravelMate 4002 WLMI con procesador Intel Centrino a 1. a El servidor realiza tambi´n la gesti´n de la conexi´n a internet. es decir los usuarios fijos. tambi´n de mi propiedad. que permitiera desarrollar un servidor ı a portable con m´s utilidades habituales en los servidores fijos.1. Servidor Como servidor me decid´ por la compra de un ordenador port´til. 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. Con este sistema se permite a un grupo corporativo itinerante el desarrollo de sus actividades en posibles reuniones fuera de su propio edificio. y otro para los clientes wifi. dotando al sistema de mayor seguridad. por mi comodidad. 2.. Comprando una parte de ´l para e desarrollar de forma m´s eficiente las tareas. cuando e o o o se encuentra fijo.1.11g de 54Mb que permite sin problemas establecer dos segmentos diferenciados de red. Uno para los usuarios de oficina.6 Ghz. Clientes Como clientes se utilizar´n varios PC’s de sobremesa. donde estar´ situado el principal cliente e a Linux y Windows del sistema. a con dos tarjetas de red integradas.1. e o 2.1.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 material escogido fue de mi propiedad. 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. . por un router 3com conectado al switch de la red y que solo responde a las peticiones del servidor. La conexi´n y seguridad del o sistema queda garantizada gracias al sistema de validaci´n de clientes.

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

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

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

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

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

posteriormente. Muy al contrario. en vez de en los comandos A para dar formato. Utilizar´ este entorno de composici´n de textos para desarrollar la documentaci´n derivada del proe o o yecto. A estas ventajas hay que a˜adir otra. lo liber´ en n o Octubre de 1. A El entorno L TEX desarrollado por Leslie Lamport. Jose Antonio Escart´ Vigo. es gratuito. ın .Cap´ ıtulo 2. interpreta y ejecuta para proporcionar un n o texto perfectamente compuesto. Donald E. TEX no es un editor de la familia WYSIWYG.1: Distribuci´n de recursos o Diagramas de ghant Figura 2. dando un formato o visual al texto. en TEX se escribe el texto acompa˜ado de ´rdenes que el compilador.2. y en los cuales “lo que ves es lo que tienes”. sino uno orientado a la o o escritura de textos de excelente calidad. t´rmino empleado e para denominar a los editores que s´lo trabajan sobre la pantalla del computador.3. Este no es un lenguaje de programaci´n usual. Knuth el creador de TEX. permitiendo al usuario concentrarse en la estructura del texto. Junio 2005.990. con la intenci´n de simplificar la o o tarea a aquellos que desean utilizar TEX. A˜ade a TEX una colecci´n de comandos que simplifican el n o mecanografiado. lo cre´ en 1982.2: Diagrama temporal de Ghant 2. 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. 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. d´ndoles un archivo base y unas directrices sobre la elaboraci´n de los textos. Selecci´n de Herramientas o Gesti´n de recursos o 15 Figura 2.

Manejo de bibliograf´ a trav´s de BibTEX. Junio 2005. ıas e Navegaci´n mediante men´s de la estructura de un documento o proyecto. contamos con resaltado de sintaxis. o u A Facilidades para compilar y depurar ficheros L TEX. Tiene una completa interfaz con diversas facilidades que ofrece a un usuario novel un entorno amigable. Goualard y P. Kile A Kile es un editor de textos para L TEX desarrollado por P.3. Jose Antonio Escart´ Vigo. u Los m´s de 370 s´ a ımbolos matem´ticos posibles son accesibles mediante botones y men´s.16 Servidor Linux para conexiones seguras de una LAN a Internet 2. deshacer. 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. reemplazo.3. Interfaz con programas de dibujo como xfig o gnuplot. Integraci´n con herramientas externas para la visualizaci´n e impresi´n de los documentos editados o o o en distintos formatos: DVI. Tambi´n se puede producir documentos PostScript para imprimir e la presentaci´n sobre transparencias para exposiciones con retroproyector. 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).M.Neergaard es una clase para L TEX que permite crear presentaciones electr´nicas con una excelente calidad. .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. art´ o ıculos. funciones de o o b´squeda (incremental o no). Figura 2. Brachet. . 2. . Prosper A La herramienta Prosper.4. a e u La ayuda integrada en el programa nos permitir´ saber qu´ macro usar ante una necesidad concreta. etc). botones y combinaciones de teclas. desarrollada por F. a e Para una edici´n c´moda de los ficheros de texto. 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. Postscript o PDF. ın .3.

ın . Junio 2005. 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. El programa Mencoder forma u parte de Mplayer. una herramienta muy util para la redacci´n de tutoriales.3. entre las que se encuentran un temporizador y poder elegir que parte de la u pantalla se va a capturar. pudiendo seleccionar entre toda la pantalla.Cap´ ıtulo 2. 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. es mucho mejor que la t´ ıpica tecla Impr-pant gracias a sus m´ltiples opciones. ´ o The Gimp: Es el programa estrella de GNU para la creaci´n y el retoque fotogr´fico de im´genes. o a a comparable al famoso programa comercial Adobe Photoshop. la ventana activa o una regi´n o concreta. que es un conjunto de aplicaciones para la grabaci´n y reproducci´n de v´ o o ıdeos. Selecci´n de Herramientas o 17 Figura 2. a 1 fps: frames por segundo Jose Antonio Escart´ Vigo.5. ya sea a una ventana o una regi´n.4: Varios estilos de transparencias 2. dvd’s y otros. 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. De esta manera. En resumen.

.

Parte II Instalaci´n base o .

.

1. Slackware. 3. 3. los ficheros para arrancar mediante otros medios tambi´n se encuentran en el CD. La manera m´s sencilla. Una vez arranque el instalador.1. Unstable Se llama “Sid” y como su nombre indica es la distribuci´n m´s inestable porque contiene paquetes o a muy nuevos. las im´genes pueden ser descargadas desde el servidor Debian (www. Se puede obtener m´s informaci´n respecto a la instalaci´n de Debian en [PRG+ 02] y [eidD04]. si la tarjeta de e a red es soporta.debian. En los siguientes apartados se detallan las diferencias entre ellas. Es el equivalente a la distribuci´n m´s actual de las dem´s o o o a a distribuciones (Mandrake. La utilizan los desarrolladores de Debian para depuraci´n. 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.org/distrib/ ) a o desde una replica del mismo.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. Desde dispositivo USB: crea un mini sistema base Desde el disco duro: a partir de unos ficheros locales. Debian Sid contiene software muy o reciente y puede traer problemas de estabilidad graves. Testing Actualmente se llama “Sarge”.2. Desde red: Se realiza a trav´s de TFTP desde una m´quina a la que se tiene acceso.1. Fedora. Proyecto Debian El proyecto Debian GNU/Linux posee tres ramas: “stable”. Si el sistema no permite arrancar desde el CD. se puede utilizar una estrategia alternativa (disquete o disco duro) para hacer el arranque inicial del instalador del sistema. “testing” y “unstable”. con mucho. a o o 3. se pueden obtener el resto e de ficheros desde el CD. de instalar Debian GNU/Linux. etc). es usar un juego oficial de CDs o a DVDs de 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.

2. ın . se instala Grub como predeterminado. 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. Configurar la red Particionar discos. 10. o 1. ya que su software contenido ya super´ varios meses de pruebas y correcciones. 3. 15. 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.1. 12. 5. ya que contiene versiones de software bastante recientes y ya probadas un tiempo en la rama inestable. Junio 2005. Stable Actualmente es la versi´n 3. 6. Se puede escoger un particionado autom´tico o si se elige manual. He elegido Sarge. Para PCs de escritorio se recomienda utilizar Debian Sarge. 2. 9. Debian Sarge Este m´todo de instalaci´n se utiliz´ en el cliente de pruebas.22 Servidor Linux para conexiones seguras de una LAN a Internet 3. o o M´todo de instalaci´n e o Mediante el siguiente esquema detallo el sistema de instalaci´n. 3.0. a Elegir idioma Seleccionar pa´ ıs Confirmar mapa de teclado Detectar Hw y cargar componentes. tambie´ llamada “Woody” y como su nombre indica es la m´s estable de o n a las distribuciones Debian. 14. 4.3. al menos se a han de crear 2 particiones.1. En el servidor se instal´ Debian Woody e o o o y se realiz´ una actualizaci´n debido a incompatibilidades de Hw. 8. 11. 7. 3. 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.4. Presionando e a a Enter se arranca con los par´metros por defecto que incluyen el kernel 2. se recomienda el uso de o Debian Woody. 13. donde no se toleran problemas de estabilidad.6 de GNU/Linux. 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. o En sistemas de producci´n. Recomendaciones En entornos de prueba y/o desarrollo se recomienda utilizar Debian Woody o Sarge.

en este caso Lilo. ı o 3. 10. Incluye casi todos los a controladores soportados por Linux. tuve a que instalar un versi´n diferente de la planificada y al arrancar Debian Woody con cualquiera de los o kernels disponibles. para que fuera soportado un mayor n´mero de dispositivos desde el e u inicio. Esto supuso tener que utilizar otra pantalla diferente.6 o superior) o a a que nos detecte todos los dispositivos de los que dispone nuestro sistema.2. o El arranque que utilic´ fue Bf2. Configurar la bios para arrancar desde CD Arrancar el sistema de instalaci´n. Instalaci´n de la distribuci´n o o 16. Debian Woody En la instalaci´n se incluyen varias im´genes de n´cleos disponibles.4.4 y da soporte a hardware nuevo ausente en las otras imagenes.4: Usa el kernel 2. e o Una vez terminada la instalaci´n est´ndar. Jose Antonio Escart´ Vigo. 2. 9. y si todav´ no los soporta.2. instala el kernel 2. y los sistemas de ficheros Ext3 y Reiser. 3. es necesario instalar un kernel m´s avanzado (2. En mi caso. a la elecci´n de cada usuario. Este es un peque˜o resumen de los pasos a seguir en la instalaci´n de Debian Woody: n o 1. debido a conflictos de hardware o a u un compotamiento inadecuado de los controladores o placas de su sistema. 7. para realizar toda la instalaci´n. ı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. Idepci: Un n´cleo que s´lo soporta dispositivos IDE y PCI (y unos pocos ISA). 11. 5. Junio 2005. 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.20. debido a incompatibilidades de Hw. 4. Bf2. hasta o poder actualizar el kernel a una versi´n 2.20: o a u ıa Vanilla: La imagen est´ndar de Debian Woody.3. no cargaba el driver adecuado para la pantalla TFT. o o a Configurar el gestor de arranque. 18. compilados como m´dulos. pero eliminando controladores de dispositivo que se usan con menos frecuencia. Esta fue una de las partes m´s desesperantes del proyecto. Se debe usar este u o n´cleo si los controladores SCSI producen cuelgues al arrancar. 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. Soporta m´s a hardware USB. 8. 19.Cap´ ıtulo 3. o Compact: Igual que Vanilla.6. aunque el problema de la pantalla persist´ ıa. no consegu´ que ninguna opci´n instalara el sistema en el servidor. conectada a la salida VGA del portatil. controladoras IDE modernas. la mayor´ basados en el kernel 2. con un m´ ınimo de dos. 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. 17. ın . 6.

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

cuando se montan. as´ que las particiones montadas representan ı diferentes partes del ´rbol de directorios donde se sit´an normalmente los archivos. /tmp. 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. Esto da una idea de por qu´ un sistema trabaja mejor que el otro. donde est´n los directorios de todos los usuarios. Debido a que estos pueden verse afectados por usuarios exteriores (por ejemplo personas que visiten una p´gina web). Podemos conseguir esto situ´ndolo en una partici´n separada. 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). Como consecuencia de ello. 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. tenerlo en otra partici´n mejora el rendimiento del sistema. a u Debido a que estamos configurando un servidor. aparecen como un ´rbol de directorios unificado en vez de unidades a separadas. donde se sit´an todos los archivos de programa. Particionar el disco En Linux cada partici´n se monta en tiempo de arranque. necesitaremos asegurarnos de que ning´n usuario abuse y e u llene el disco completo. el software de instalaci´n no diferencia una partici´n de otra. /var. el proceso de instalaci´n distribuye autom´tio a camente sus archivos por todas las particiones montadas. El proceso de montaje hace disponible el o contenido de esa partici´n dentro del sistema. Debido a que este directorio est´ dise˜ado para que u a n todos los usuarios puedan escribir en ´l. u /home. a o swap. El directorio ra´ (/) ser´ la primera partici´n. Es donde se almacena el archivo de memoria virtual. debemos conocer que directorios es necesario tener en particiones separadas: /usr.1.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. Este es un sistema de archivos no accesible para el usuario. o ız a o Las particiones. S´lo hay que preocuparse de en o o o que directorio esta cada archivo. el destino final de los archivos log. o e . 4. donde se sit´an los archivos temporales.

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

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

Es una buena a n pr´ctica no s´lo a˜adir el car´cter.28 Servidor Linux para conexiones seguras de una LAN a Internet 4. Y su contenido podr´ ser algo parecido al siguiente: ıa Cuadro 4. a o n a Se pueden a˜adir nuevas cuentas de usuario editando directamente el archivo /etc/passwd. Este n.3. o ´ Contrase˜a encriptada de usuario. Aqu´ solo aparece el grupo principal del usuario. Cuadro 4. Es un archivo de texto plano que puede ser consultado por todos los usuarios del sistema. ı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. Tiene que ser unico. La informaci´n de cada usuario est´ dividida en seis campos delimio a tados por el car´cter dos puntos (:). Shell de trabajo del usuario.3. 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. 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). Junio 2005. sino indicar el motivo por el que ha sido deshabilitada.3. aunque puede ı pertenecer a m´s de un grupo a Campo de comentarios Directorio /home del usuario.o ha de ser unico ´ Identificador de grupo (GID). 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. pero para n crear las contrase˜as hay que usar la utilidad /usr/bin/passwd ya que esta es cifrada. n Jose Antonio Escart´ Vigo. 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.3: Descripci´n de los campos del archivo /etc/passwd o Descripci´n o Nombre de usuario o identificador de inicio de sesi´n. La descripci´n de cada uno de los campos aparece listada en la Tabla a o 4.

aunque cifrada. o n Cuadro 4. a o Cuadro 4.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 (:). o Cuando todav´ no exist´ las contrase˜as ocultas. para modificar estos valores predeterminados. a Para realizar el cifrado de las contrase˜as es mejor usar MD5 que el antiguo m´todo DES. Jose Antonio Escart´ Vigo. demasiado altos para ser correctos. ı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. ya que la n n encriptaci´n de la clave de usuario solo es visible por el root. el 1 de enero de 1970. pero s´lo modificado ıdo o por el usuario root. Este archivo a˜ade un nivel de seguridad adicional.Cap´ ıtulo 4. la contrase˜a. 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. Algunos a de estos campos contendr´n aparentemente n´meros raros. se almacenaba en el ıa ıan n n archivo /etc/passwd. Primeros pasos Archivo /etc/shadow 29 Es el archivo de contrase˜as ocultas. Estos a u campos est´n referidos a la fecha de comienzo “de la era de la computaci´n”. 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. se defini´ el concepto de contrase˜as ocultas. Junio 2005. Para combatir esta amenaza potencial. la utilidad de cambio de caducidad.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.

Se puede observar que muchos de los grupos predeterminados corresponden directamente a un servicio espec´ ıfico.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. Cuadro 4.7: Descripci´n de los campos del archivo /etc/group o Descripci´n o Nombre de grupo Contrase˜a de grupo. S´lo es para usuarios que su grupo inicial o no fuera este Campo 1 2 3 4 Jose Antonio Escart´ Vigo. no es necesario que aparezca en la lista. Cuadro 4. No suele usarse n N´mero de identificaci´n de grupo u o Lista de usuarios asociadas a este grupo. Junio 2005.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. protegi´ndose contra el acceso de otros usuarios que no e deban acceder a esos recursos. ın . Si en el archivo /etc/passwd se ha especificado este grupo. Los archivos de un grupo pueden ser compartidos entre los miembros de ese grupo. Cada cuenta de usuario tiene que pertenecer como m´ ınimo a un grupo.

escritura o ejecuci´n) o Archivo o archivos que se van a modificar La tabla 4.1. grupo o otros) Permiso se va a modificar (lectura. quita permiso de lectura al grupo Jose Antonio Escart´ Vigo. da permiso de lectura al grupo #chmod g-w /home/josan/archivo. ın . 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.4. Tipos de archivo El primer car´cter identifica el tipo de archivo. Modificar los permisos Para modificar los permisos de acceso a un archivo se utiliza el comando chmod. Cuando realizamos un a listado de un archivo. Es necesario especificar los tres elementos siguientes: Nivel se va a modificar (propietario.9 especifica las opciones del comando chmod. Permisos de archivos En Linux hay tres niveles de permisos de archivos y directorios. . .4. . Junio 2005.rwx rwx rwx root root 512 Jan 7 10:50 nom_archivo 4. .2. encontramos los siguientes parametros: #ls -l <archivo> . . Podemos encontrar los siguientes: a Cuadro 4.4. Primeros pasos 31 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.Cap´ ıtulo 4. Los permisos pueden ser especificados con letras: #chmod g+w /home/josan/archivo.

escritura y ejecuci´n o O con n´meros: u #chmod 751 /home/josan/archivo Da lectura. para que este usuario normal (sin privilegios) pueda cambiar su contrase˜a. Cuando un programa es SUID o SGID. ın . el usuario root es propietario de los ejecutables binarios con el bit SUID activo. de forma que cualquiera que pueda ejecutar el programa lo ejecuta como usuario root. el ejecutable passwd debe ser SUID del usuario root. Cuadro 4.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. una “s” sustituye a la “x” que corresponde al bit de ejecuci´n o del usuario o grupo. o Normalmente.3. un usuario normal no puede leer o escribir en el archivo /etc/shadow. Lectura y ejecuci´n al grupo. El bit SGID funciona del mismo modo n para los grupos.32 Servidor Linux para conexiones seguras de una LAN a Internet Cuadro 4. Permisos especiales: SUID. Esto es peligroso pero necesario para algunos programas. el SGID y el de persistencia Jose Antonio Escart´ Vigo. o o o 4.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. escritura y ejecuci´n al propietario. Ejecuci´n a otros. SGID y bit de persistencia Con un archivo ejecutable. Junio 2005. 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´. Por ejemplo.4.

aunque otros pueden leerlo. #chgrp proyecto /tmp/archivo 4. para descomprimir archivo. o El bit de persistencia.tar.tar. as´ se eliminar´ la o e ı a posibilidad que un usuario malintencionado haya modificado deliberadamente el paquete. ın .5.tar.bz2 Jose Antonio Escart´ Vigo.Cap´ ıtulo 4. . para descomprimir archivo.bz2 Lo primero es descomprimir los fichero fuente. 4. Compilaci´n de paquetes desde archivos fuente o Las aplicaciones suelen venir comprimidas en uno de estos dos formatos . . 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. . para ello debemos disponer de tres aplicaciones: gunzip (.gz. . . SGID y bit de persistencia con la tabla 4. desconocida o sospechosa o es una buena conducta de actuaci´n instalar el paquete con un usuario con privilegios restringidos. 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 $tar jxvf archivo. los archivos que se almacenan en estos directorios adoptan el propietario o grupo del directorio. o Si nos vemos en la obligaci´n de instalar un paquete de una fuente no segura. Cuando disponemos de los archivos fuente de una aplicaci´n y los queremos instalar en nuestro sistema o hay que tener varias precauciones. en vez de adoptar el del usuario que cre´ el archivo.gz . Cambiar un archivo de propietario o grupo La utilidad chown modifica el indicador de propietario. Instalaci´n de aplicaciones o En Debian GNU/Linux tenemos tres aplicaciones para manejar paquetes precompilados dpkg.1. Si los scripts estuvieran modificados. apt y alien.bz2.tar). Primeros pasos 33 Cuando los bits SUID o SGID se refieren a directorios. evitando o usar root a menos que sea imprescindible. el comando es el siguiente: $tar zxvf archivo.gz.tar. La mejor opci´n es que el software a utilizar est´ incluido en el proyecto Debian. no podr´ ıan hackear el sistema. #chown josan /tmp/archivo La utilidad chgrp modifica el indicador de grupo.bz2) y tar (.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. Se puede especificar los permisos especiales SUID.4. Junio 2005.4.gz). sin privilegios.5. Si el archivo es . bzip (. 4. Este atributo en concreto hace que s´lo el propietario o del archivo pueda eliminarlo.tar.tar.

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

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

rediris.12 se especifican las opciones m´s comunes.5.es. 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). replica en Espa˜a de e n los paquetes Debian.rediris.org/ stable/updates main contrib non-free #Sid (unstable) #deb http://ftp. Jose Antonio Escart´ Vigo.es/debian-non-US testing/non-US main contrib non-free deb-src http://ftp.2.list deb deb deb deb cdrom:[Debian cdrom:[Debian cdrom:[Debian cdrom:[Debian GNU/Linux GNU/Linux GNU/Linux GNU/Linux testing _Sarge_ .list. a Cuadro 4.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.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.es/debian/ testing main non-free contrib deb http://ftp. por ejemplo coloo ca paquetes en el idioma del sistema 4. En la tabla 4.5.debian.rediris.Official Snapshot i386 Binary-2 (20050225)]/ unstable contrib main main/debian-installer testing _Sarge_ . APT sabe como interpretar l´ ıneas del tipo http.list Como parte de su funcionamiento.debian.rediris.Official Snapshot i386 Binary-1 (20050225)]/ unstable contrib main main/debian-installer 3.es/debian unstable main contrib non-free #deb http://ftp.3.rediris.rediris. En el siguiente cuadro podemos observar un archivo est´ndar del sources. ftp y file (archivos locales).0 r4 _Woody_ .es/debian testing main contrib non-free #deb http://ftp. APT utiliza un archivo que contiene las “fuentes” en donde se encuentran los paquetes. Para poder descargar los paquetes a trav´s de internet utilizamos ftp.36 Servidor Linux para conexiones seguras de una LAN a Internet 4.es/debian testing main contrib non-free deb-src http://ftp.es/debian-non-US testing/non-US main contrib non-free #deb http://security.0 r4 _Woody_ . 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.es/debian-non-US unstable/non-US main contrib non-free El archivo puede contener varios tipos de l´ ıneas.es/debian-non-US testing/non-US main contrib non-free deb http://security. ıa El archivo /etc/apt/sources.Official i386 Binary-2 (20050102)]/ unstable contrib main non-US/contrib non-US/main non-US/non-free non-free 3.rediris.13: Ejemplo de /etc/apt/sources.rediris.org/ testing/updates main contrib non-free #Woody (stable) #deb http://ftp. ın .rediris. a Cuadro 4. Junio 2005.

#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.list n #apt-get update Actualiza la lista local de paqutes con el archivo /etc/apt/sources.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. indica un paquete pre-compilado (binario) deb-scr. ın . Primeros pasos La primera palabra de cada l´ ınea indica el tipo de archivo: deb. o a Jose Antonio Escart´ Vigo.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. 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.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 .Cap´ ıtulo 4. indica c´digo original (fuentes) o Opciones ATP 37 En el cuadro 4. Junio 2005.deb.

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

Se puede probar a repetir varias veces estos dos comandos. ın . En caso de no o encontrar el problema. #dpkg --configure -a. se puede forzar la reescritura de paquete con el comando: #dpkg -i --force-overwrite /var/cache/apt/archives/nombre_paquete . . Si existe un paquete que ha quedado mal instalado. . Junio 2005.Cap´ ıtulo 4. Primeros pasos Buscar dependencias de un paquete Para conocer las dependencias e informaci´n de un paquete. Problemas al instalar paquetes Cuando existe un problema de dependencias entre paquetes podemos utilizar los siguientes comandos para reconfigurarlos. El shell predeterminado en la mayor´ de distribuciones Linux es bash (Bourne Again Shell). y probar a reconfigurar los paquetes otra vez Estos comandos (dpkg --force-help) son utiles en determinadas ocasiones. 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. ejecutado por el usuario. .5. corriendo el consiguiente riesgo. pero hay que saber que ´ es lo que se quiere hacer de antemano y asumir las posibles consecuencias.6. o Realizando una lectura.6. es recomendable probar a reinstalar el paquete: #apt-get remove <paquete> #apt-get install <paquete> Si esto tampoco funciona. o #apt-get -f install. Comprueba problemas de configuraci´n. . para comprobar si tiene alguna incompatibilidad con nuestro sistema. stable o testing especifica la distribuci´n Debian utilizada. 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. . lo primero que hay que hacer es leer la documentaci´n que trae. completa y a conciencia de las salidas de los comandos anteriores se suele identificar el problema. o o 4. podemos usar el apt-cache depends. Reintenta la instalaci´n de paquetes que han dado problemas. Shells Un shell es un programa. . . . 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. ıa Jose Antonio Escart´ Vigo.

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

Si se utiliza el shell bash. Primeros pasos 41 4.3. 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. Asignar valores a variables de entorno Para definir una variable de entorno podemos hacerlo desde la l´ ınea de comandos. m´s habitualmente. y as´ seguir trabajando en esa consola: ı $comando & 4. 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. 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. con la desventaja de que el valor s´lo ser´ v´lido en la sesi´n actual. en el interior del /etc/profile o el ˜/. a en nuestro sistema. siendo que este directorio no se encuentra en el $PATH del sistema se emplea el siguiente m´todo: e $.4.6. o modificando los archivos de perfil. o Visualizar contenido de variables Podemos visualizar las variables definidas. ın . Ejecuci´n de procesos en la shell Bash o Para ejecutar un archivo que se encuentre en el directorio local. se puede encontrar m´s informaci´n sobre las variables de entorno que existen a o mediante el comando $man bash.profile se coloca la siguiente instrucci´n: o export VARIABLE_DE_ENTORNO=valor Jose Antonio Escart´ Vigo. obtenida en [BB00] especifica las variables que encontraremos.Cap´ ıtulo 4. 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.6./<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. Junio 2005.

o o a u o ˜/. A continuaci´n1 busca los archivos del usuario ˜/. Jose Antonio Escart´ Vigo. o n elegiremos el archivo a modificar que m´s convenga a nuestros objetivos. 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. LC TYPE Cuadro 4. Al finalizar la ejecuci´n del shell se lee y ejecuta el archivo ˜/.bashrc ubicado en el directorio del usuario. ın . o a˜adir nuevas variables de sistema. Un ejemplo de esto ser´ colocar en el n ıa archivo ˜/. 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.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.bash logout del directorio del usuario. 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.profile ejecut´ndolos seg´n el orden indicado.bash profile. Si queremos que se ejecute algo al comienzo o final de cada sesi´n. LANGUAGE LC ALL. cuando volvamos a cargar el entorno del usuario la variable tambi´n se cargar´.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.bash login y ˜/. o e a 4.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 ˜/. 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.5.6. Junio 2005.

. a a $ls > listado 2>/dev/null. ın . redirecciona la salida est´ndar al archivo listado y descarta errores. Esto se puede observar a e en los siguientes ejemplos: $ls > listado 2>&1. paginan la entrada est´ndar. 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. Los comandos more y less paginan (dividen en p´ginas) uno o varios ficheros y los muestran en la a terminal. Se diferencian en las facilidades que a a Jose Antonio Escart´ Vigo.6. de forma que m´s tarde se puedan ver a los resultados. o $ls -l >listado Si se quiere a˜adir los resultados de la salida de un comando al final de un archivo. la salida y el error se redireccionan a listado2. se pude redireccionar la entrada. 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. a $cat < listado 2>&1 listado2. . 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. Redireccionamientos Para redireccionar a un archivo la salida normal de un script. o dispositivo de salida est´ndar a Dispositivo 2: stderr. . se utiliza la redin recci´n (>>). el comando env lista las variables y filtramos la variable “SHELL”. Junio 2005. . o dispositivo de entrada est´ndar a Dispositivo 1: stdout. .Cap´ ıtulo 4. . . toma como entrada listado. o $cat < listado Canales est´ndar a En Linux existen una serie de canales est´ndar que nunca cambian. para ello se utiliza la redirecci´n(<). . De no indic´rseles un fichero. Los programas individuales se pueden encadenar juntos para convertirse en unas herramientas extremadamente potentes. ´ a a a 4. .6. redirecciona la salida est´ndar y el error est´ndar al archivo listado. o $ls -l /bin >>listado De forma similar. 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. Podemos ver esto con un ejemplo: $env | grep "SHELL".

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

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

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

Paquetes b´sicos a Cuadro 5.2. ´ a Si alguno no lo tenemos instalado. Junio 2005.0 libncurses5-dev fakeroot Paquetes kernel 2. seg´n el formato e u del kernel descargado.org.Cap´ ıtulo 5. n a #gpasswd -a josan src 5. ın .6 Antes de realizar el proceso de compilaci´n de un kernel de la serie 2. El proceso o automatizado que comprueba las versiones se encuentra implementado en el scrip: /usr/src/linux/scripts/ver_linux Jose Antonio Escart´ Vigo. 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.1: Paquetes b´sicos a gcc kernel-package libc6-dev tk8.6. Kernel Para instalar el paquete: #dpkg -i kernel-image-2.1. Compilar Kernel Las fuentes oficiales del kernel m´s actual las podemos encontrar en http://www. es necesario realizar su instalaci´n mediante apt-get.kernel.1.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.2 del cap´ ıtulo anterior).5. Para eso se a˜adir´ al grupo src.050518_i386.6 es necesario que actualizeo mos nuestro sistema con las ultim´s versiones de los paquetes que se detallan en el cuador 5.8_Version. 5. Las desa cargamos al directorio /usr/src/ y las descomprimimos empleando el m´todo adecuado.5. Paquetes necesarios Para poder compilar el kernel necesitamos tener los siguientes paquetes instalados.

09 2.html Jose Antonio Escart´ Vigo.1pre1 1. la elecci´n de los m´dulos a colocar e ıa a o o en el kernel se deja a elecci´n del usuario.10 1. . Una vez tenemos descargadas las fuentes en /usr/src/. El m´todo descrito en este apartado es un resumen del documento Kernel-Build-HOWTO. es necesario realizar varias recompilaciones para ajustar las a opciones del kernel.78 2.12 2.9.3 3.48 Servidor Linux para conexiones seguras de una LAN a Internet Cuadro 5. instala una serie de utilidades para hw $/bin/lspci. .6. informa sobre los dispositivos disponibles $cat /proc/cpuinfo.5. Se puede encontrar en la direcci´n: e o o http://www. /usr/src/linux/arch/i386/Makefile. Normalmente. ın . o 5.com/linux/Kernel-Build-HOWTO. para mayor seguridad.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. si o queremos comprobar que hace el Makefile lo podemos encontrar en. .13 0.10 0.2.29 1.4. . Al comenzar el usuario se encuentra abrumado ante tal cantidad de opciones.3 Comando comprobar versi´n o #gcc --version #make --version #ld -v #fdformat --version #depmod -V #tune2fs #fsck. Es muy recomendable. Suele ser a necesario descargar los drivers y parchear el kernel para que les de soporte. en el que e me bas´ para realizar la compilaci´n del kernel. Junio 2005. es necesario estudiar m´s a fondo el problema concreto. . los fabricantes de software incluyen manuales de instalaci´n que simplifican esta tarea.1. compilar en kernel en un entorno simulado.5 3. Es un trabajo e e laborioso y que requiere bastante pr´ctica.21 3. que da acceso a recursos pero no permite modificaciones del sistema.3 se describe el m´todo que utilic´ para compilar el kenel del servidor.0 3. averiguar las correctas es cuesti´n de disponer de las especificaciones del hardware y paciencia.digitalhermit.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.3 2.0.2). .1. como se ha explicado anteriormente (secci´n 5.1. Esto se realiza mediante el paquete fakeroot.5. ya que cada hardware tiene sus propias caracter´ o ısticas.4.0 3.95.2: Paquetes necesarios para compilar kernel 2. lista detalles sobre la CPU reconocida En caso de que no reconociera alguno.3. o El m´todo descrito es una gu´ est´ndar para compilar el kernel. M´todo de compilaci´n e o En el cuadro 5. 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.5.3 3.1.

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.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. ın .map Creamos el nuevo enlace a System.5. soporte usb. o a 5.map #vi /etc/lilo.4. Consejos para la configuraci´n del kernel o Hay que tomarse todo el tiempo necesario con xconfig o menuconfig. en caso contrario no funcionar´n. Antes de lanzar #make menuconfig o #make xconfig.). n a a a o Jose Antonio Escart´ Vigo.map-VERION_KERNEL /boot/System. Se recomienda usar los m´dulos siempre que sea posible.map Copiamos el archivo System. video.gz $ln -s linux-2.conf #/sbin/lilo #/sbin/lilo -R <Nombre_del_arranque_en_lilo> 5. Parchear el kernel Los parches del kernel son la forma de a˜adir caracter´ n ısticas especiales al kernel. etc.tar..config config.11. Junio 2005.map Configuramos el gestor de arranque Cargamos el nuevo arranque Marcamos que reinicie con el nuevo kernel Cuadro 5. Aseg´rarse de incluir todo lo u imprescindible y quitar todo lo que no (m´dulos para dispositivos zip.5.map /boot/System. es preciso asegurarse que los parches coinciden con la versi´n de nuestro kernel. nic.map-VERSION_KERNEL #ln -s /boot/System.6.6. 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. tarjeta de o sonido.map #cp System. raid. Si no se est´ seguro de que elegir resulta de gran ayuda consultar la documentaci´n.Cap´ ıtulo 5.3: Compilaci´n del Kernel o Comando $cd /usr/src rm linux $tar zxvf linux-2. esto hace al kernel m´s o a peque˜o y m´s r´pido.5..11 linux $cd linux $su root #cp .

.

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

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

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

Secci´n ServerFlags o Esta secci´n define varios indicadores de opci´n de Xfree86. o Ejemplo de un archivo /etc/X11/XF86Config-4 Cuadro 6.) 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. If you have edited this file but would like it to be automatically updated again. y Screen 3 esta 2048 pixels a la derecha de Screen 1. Screen 2 se encuentra justo a la derecha de ı a Screen 1.54 Servidor Linux para conexiones seguras de una LAN a Internet Aqu´ se muestra que Screen 1 est´ arriba.md5sum dpkg-reconfigure xserver-xfree86 Section "Files" FontPath "unix/:7100" # local font server # if the local font server has problems. Si se necesita investigar estas opciones.custom md5sum /etc/X11/XF86Config-4 >/var/lib/xfree86/XF86Config-4. (Type "man XF86Config-4" at the shell prompt. los comentarios que se encuentran en el archivo de configuraci´n son bastante clarificadores. de manera predeterminada. e Al usar un nuevo m´dulo llamado Xinerama. moviendo las ventanas alrededor de ellos sin fragmentarlas. en mi caso que uso Enlightenment si se puede. se pueden tratar varios monitores como si fuese un o unico espacio de trabajo. no puede tener ventanas que est´n solapadas entre varios monitores. Sin embargo. Esto le permite distribuir sus ventanas en varios monitores y moverse entre ellos con facilidad. Xinerama ha de ser ´ soportado por el gestor de ventanas. the Debian X Configuration tool. and see the XF86Config-4 manual page. using values from the debconf database. 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. Edit this file with caution. 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. a la izquierda. Junio 2005.1: Archivo /etc/X11/XF86Config-4 # # # # # # # # # # # # # # # # # # XF86Config-4 (XFree86 X Window System server configuration file) This file was generated by dexconf. ın . run the following commands as root: cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.

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 ˜/. o $vi ~/. . Junio 2005. A˜adir las siguientes l´ n ıneas para arrancar KDE: #!/bin/sh startkde Jose Antonio Escart´ Vigo. ın .xinitrc.xinitrc. 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. .Cap´ ıtulo 6.2. . para editar el archivo.1.

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

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

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

UTP o Capa F´ ısica Esta capa es el medio f´ ısico real que contiene los datos. Fibra ´ptica.1. primero debemos conocer una serie de conceptos y arquitecturas que se describen en las secciones siguientes del presente cap´ ıtulo.udg. el cable coaxial. cada una de las cuales controla una parte diferente n o de la tarea de comunicaci´n. HTTP. Los distintos tipos de medios siguen diferentes est´ndares. . Ethernet. Arquitectura de redes (Modelo OSI) Antes de conocer realmente los servicios de red y la seguridad en redes. Token Ring Coaxial. o o a n Cada dise˜o de red se divide en siete partes l´gicas. e e mientras que la fibra ´ptica se suele usar para conexiones de distancias largas que requieren una capacidad o de carga alta. IP. Este dise˜o de siete capas se denomina Modelo de referencia OSI. Telnet XDR Pipes con nombre. OSPF Acrcnet. 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. IPX.html 7. c´mo son y c´mo est´n dise˜adas. UTP se usa normalmente en cableados dom´sticos. TCP. Por ejemplo. UDP ARP.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.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. o Cuadro 7. FTP. Dicho o n modelo fue creado por la Organizaci´n internacional de est´ndares (ISO. La tabla 7.es/ ˜atm/tcp-ip/index.1: Estructura del modelo de referencia OSI N. RPC NetBIOS. Esta secci´n se ha basado en la documentaci´n que se puede obtener en: o o http://eia. SMTP. el par trenzado (UTP.1 muestra la composici´n del modelo. primero se tiene que conocer la arquitectura de redes.

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

queda reservado para otros usos Figura 7. 3 bits de selecci´n de clase C. ya que la mayor´ de los ataques se producen en esta ıa capa. Las direcciones est´n codificadas para permitir una asignaci´n variable de a o bits para especificar la red y el host.255. La direcci´n IP m´s peque˜a es la 0. 14 bits de red y 16 bits de host. ın .0. 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.0 y la mayor es 255. Esta direcci´n consta de un identificador de red y de un identificador de host. 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.2. que pueden ser FTP.255. Clase A: Pocas redes. 7. 1 bit de selecci´n de clase A. Aqu´ algunos programas se encargan de controlar los datos reales dentro del paquete y se ı. 7 bits de red o y 24 bits de host (Por ejemplo ARPANET) Clase B : Un n´mero medio de redes. 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. cada una con muchos ordenadores. cada una con pocos ordenadores. Clase D: Permite hacer multitransmisi´n (o multicasting) en la cual el datagrama se dirige a m´ltiples o u ordenadores. 21 bits de o red y 8 bits de host (LANs).0. que ser´ utilizada en los campos direcci´n origen y direcci´n destino de a a o o la cabecera IP.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. HTTP. Infraestructura de redes 61 Capa de aplicaci´n o Este nivel final es donde el programa de la aplicaci´n obtiene los datos. etc. o Clase C : Muchas redes. o SMTP. Direcciones IP Cada computador (host) y cada dispositivo de encaminamiento (router) tendr´ una direcci´n unica a o ´ cuya longitud ser´ de 32 bits.Cap´ ıtulo 7. cada una con un n´mero medio de ordenadores.255. Junio 2005. 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. ajustan las soluciones profesionales de seguridad. 2 bits de u u selecci´n de clase B. Jose Antonio Escart´ Vigo.

pero sin salir del host).0.0.2: Direcciones IP reservadas Jose Antonio Escart´ Vigo.124. Por ejemplo.255.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). De esta forma las m´quinas se a pueden referir a su propia red sin saber su n´mero.13. pero la clase s ha de ser conocida para saber u cuantos ceros debe incluir.2): Este host: La direcci´n 0. la direcci´n 82CE7C0D (1000 0010 1100 1110 0111 1100 0000 1101 que es de clase B) o se escribe como 130. e o Figura 7. 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.xx. Esto permite que los paquetes se env´ a la red local sin que el transmisor conozca su n´mero.yy.zz se reservan para pruebas de realimentaci´n (localhost).206. o Retrociclo: Las direcciones 127. u Difusi´n de red local o limitada: La direcci´n 255.o de redes a 128 16384 2097152 Bits en el sufijo 24 16 8 M´ximo n.2: N.0 significa esta red o este host y unicamente es usada por los ordenadores o ´ cuando son arrancados. 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. Junio 2005. 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).62 Servidor Linux para conexiones seguras de una LAN a Internet Cuadro 7.255. 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.o de Hosts por red Clase A B C Bits en el prefijo 7 14 21 M´ximo n.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. ın . sin que vuelva a utilizarse posteriormente. Esta ıen u caracter´ ıstica tambi´n se usa para la detecci´n de fallos en el software de red.

2. para asegurarse que a ciertos datos no se les permita pasar por determinadas redes. Junio 2005. el o comportamiento de los paquetes puede ser totalmente diferente dependiendo de la direcci´n que o estemos utilizando. Jose Antonio Escart´ Vigo. En la cabecera hay una parte fija de 20 bytes y una parte opcional de longitud variable. En algunos casos. no es posible asignarle a un ordenador una direcci´n IP permanente.1. Estas tablas tambi´n pueden proporcionar a o e servicios de seguridad y de prioridad. La autoridad central s´lo es necesaria para asignar o la porci´n de la direcci´n correspondiente a la red. Esto se utiliza para aumentar la seguridad. nos llevamos un ordenador port´til de un sitio a otro y queremos conectarlo a la red. En el primer caso puede contener rutas alternativas que a a ser´n utilizadas cuando alg´n dispositivo de encaminamiento no est´ disponible. por ejemplo.2. el encaminamiento se hace teniendo en cuenta la direcci´n IP. Debido a la configuraci´n de la red y dependiendo de por donde se enruten o o los paquetes en nuestra red. cuando una organizaci´n ya tiene su prefijo. Infraestructura de redes 63 Para estar seguros de que las direcciones Internet son unicas. En la figura 7.2. pues permite enviar directamente el tr´fico a una red en concreto sin tener que a pasar por los dispositivos de encaminamiento. 7. En a o este caso recibe el nombre de “multihomed”. Durante el camino puede ser fragmentado en e unidades m´s peque˜as. o por ejemplo. Por lo tanto. Por otra parte. 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). puede o o o asignar un unico sufijo a cada ordenador sin contactar con la autoridad central. Como existe la facilidad de que una m´quina pueda estar conectada a dos redes y por lo tanto a tenga dos direcciones diferentes. Encaminamiento IP (router y gateway) Cuando un paquete llega a un dispositivo de encaminamiento. no al ordenador que tenemos o conectado. estas unidades son reensambladas para volver a tener el datagrama original que a es entregado a la capa de transporte. tambi´n es usado para aumentar u a e el rendimiento de la red. Este problema se da cuando. u a Esta tabla puede ser est´tica o din´mica. ın . Esto puede resultar sorprendente para los usuarios. 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. si una red falla el host a´n est´ conectado a internet utilizando la otra 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. Sin embargo. 7. el conocer una direcci´n IP puede resultar insuficiente para alcanzar la m´quina o a que utiliza esta direcci´n.Cap´ ıtulo 7. 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.3 se puede observar el formato de la cabecera IP. 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. a n n a n En la m´quina destino. La IANA (Internet Assigned Number Authority) tiene el control sobre los n´meros asignados. algunos equipos pueden resultar inalcazables. cuando una organizaci´n quiere una direcci´n debe obtenerla u o o de INTERNIC (Internet Network Information Center). por el protocolo IP. no se pueden introducir nuevas direcciones poco a poco y u es necesario reconfigurar toda la red para la nueva clase. 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. ´ Una m´quina puede estar conectada a varias redes y tener una direcci´n IP diferente en cada red. si deben atravesar una red o subred cuyo tama˜o de paquete sea m´s peque˜o. si o movemos un ordenador de una red a otra su direcci´n IP debe cambiar.

255.2. Junio 2005.64 Servidor Linux para conexiones seguras de una LAN a Internet Figura 7. Una direcci´n IPv4 est´ndar esta formada por 32 bits. ın . cuando vemos 192.255. la m´scara de red de 255. Por tanto.3. 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. Ambas son formas de definir el tama˜o de la red.248 u ı. el ordenador origen incluye en la cabecera del paquete la direcci´n de los dispositivos de o encaminamiento que debe utilizar el paquete. Basados en estos dos e componentes de red.255. con cuatro octetos de 8 bits cada una. la direcci´n IP que corresponde al env´ de un paquete a todas las m´quinas de la red local). En este caso.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. M´scaras de red y notaci´n de barra inclinada a o El prop´sito de configurar una m´scara es.1.1. 7. Normalmente o o a se representa en cuatro secciones. 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. un host puede determinar cu´l es su direcci´n de broadcast o de difusi´n de red (es a o o decir.0 describe una red de 256 IPs ya que: a (256-255) * (256-255) * (256-255) * (256-0) = 256 Jose Antonio Escart´ Vigo.255. como ya comentamos e anteriormente. Cada octeto.168.3: Cabecera del datagrama IP Otra t´cnica de encaminamiento es el encaminamiento en la fuente. normalmente se convierte de un conjunto de bits binarios.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. a un numero decimal para facilitar su lectura.255. Normalmente tiene la siguiente apariencia: 255. 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. Para entenderlas tenemos que conocer un poco u n de la estructura de la direcci´n IP. en primer lugar.

255.536 La notaci´n de barra inclinada es algo m´s dif´ de entender. Ethernet s´lo permite configurar 1. La mayor´ o o ıa de las veces.0. a Cuando se utilizan subredes.0) para conseguir 254 o a m´quinas por red (recordamos que . Infraestructura de redes 65 Y por ultimo.168.Cap´ ıtulo 7.536 direcciones IP porque: ´ a (256-255) * (256-255) * (256-0) * (256-0) = 65. la elecci´n razonable es escoger una m´scara de 24 bits (255. 0) y (´sta red.0. enrutamiento interdominio sin clases) debido a que o viola la descripci´n de las redes A. Aparte de resultar una pesadilla para administrar. Si las u matem´ticas binarias nos resultan complicadas. o Un lugar t´ ıpico para ver esto es en las redes IP privadas.0. Esto se hace a n expandiendo el n´mero de bits usados para representar la direcci´n de red. B y C. u o Jose Antonio Escart´ Vigo. un nivel a o o bastante razonable de agrupamiento de m´quinas.255 la direcci´n de broadcast). 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. Subneting (CIDR) Incluso si tenemos una clase de direcciones A o B. podemos utilizaremos la siguiente tabla para recordarlo. ın .0/24 describe una red que empieza en 192. 0). sino que cada divisi´n de la organizaci´n se convierte en una subred. una t´cnica conocida como u o e subneting ´ CIDR (Classless Inter Domain Routing.0 que contiene 256 direcciones IP de o tama˜o (es decir. Por ejemplo la u o notaci´n 192. no es realista configurar la red como un gran grupo de m´quinas.0 es la direcci´n de red y .255.4. en las tablas de encaminamiento se agregan entradas de la forma (´sta e red. 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. Por ejemplo.168. resulta muy dif´ encontrar una red a ıcil capaz de tener tantas m´quinas agrupadas juntas. 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.2.024 a o hosts por segmento.4).2. a Cuadro 7. el mismo tama˜o que el de arriba con una m´scara de red de 255. ´sta subred. Para resolver este problema.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. v´ase la secci´n 7. subred. 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.0 describe una red de 65. aunque utiliza el mismo concepto. Junio 2005.0).255. una m´scara de red de 255.255.255. No necesita saber nada de los o hosts de otras subredes. 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. Un n´mero binario de bits de 11111111 convertido en decimal es 255. De esa forma. La mayor´ de las organizaciones no tienen 16 ıa millones de computadoras. estas redes enormes se dividen en subredes m´s peque˜as.

5. Por ejemplo. simplemente. 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. no todos los protocolos enmascaran bien. Cuando un paquete entra en la interfaz ppp0 desde Internet. Por ejemplo.2. 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. Enmascaramiento IP (NAT. ın . Cuando un cliente FTP se conecta a un servidor FTP. ´ Una interfaz de red ppp0 puede ser cualquier tipo de interfaz de red.0/24 -d 0. o Nuestra red LAN. en una configuraci´n o de firewall la interfaz de salida puede ser. 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´. y despu´s se env´ al emisor original de la LAN.168.0 y el servidor conectado a un interfaz ppp0 desde el que se recibe el acceso a internet. para redes peque˜as. IRC y otros.0. parezca que los origina ´l.0/0 -j MASQUERADE : A˜ade la regla de enmascaramiento. le dice que va a usar nat y quita las politicas actuales para nat (-F) #iptables -t nat -A POSTROUTING -s 192. el e servidor sabe que realmente el paquete va destinado a una m´quina de la red y se lo env´ a ıa.0. El a cliente pasa toda la informaci´n de usuario/contrase˜a a trav´s de este puerto. 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. Si ıe o el cliente est´ enmascarado.0. Para hacer esto a´n m´s dif´ s´lo tenemos una direcci´n IP. IPTables esta equipado con los proxies m´s comunes: a FTP. podemos a˜adir a los scripts de arranque: n insmod ip_masq_ftp insmod ip_masq_irc Jose Antonio Escart´ Vigo.168. u a ıcil. una segunda tarjeta Ethernet que la une a la red corporativa. Junio 2005. Sin embargo. al mismo tiempo). o Despu´s instalaremos el siguiente paquete: e #apt-get install ipmasq Si nuestra red contiene la red 192. Cuando vuelve un paquete como respuesta. Si es as´ el paquete se desenmascara a ı. A fin de permitir el enmascaramiento de n estos protocolos. No se puede asumir como unica forma de funcionamiento el enmascaramiento de IP con un router. 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. empieza conect´ndose al puerto 21 del servidor. a FTP es uno de los muchos protocolos que hacen cosas extra˜as. usa un rango de direcciones IP privadas. el servidor inicia una conexi´n nueva de vuelta al cliente. NAT. debemos colocar un proxy especial. Para realizar el enmascaramiento IP necesitamos utilizar el firewall IPTables. Linux comprueba con el mecanismo de enmascaramiento si el paquete est´ realmente destinado para alguien de dentro de la red.66 Servidor Linux para conexiones seguras de una LAN a Internet 7. el rango 192. Para usar estos m´dulos simplemente hay que incluir la sentencia insmod en tiempo o de arranque. FTP es un ejemplo perfecto de esto. e ıa Proxies: Problemas con el enmascaramiento Desafortunadamente.168 n trabaja bien. 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.1. cuando el o n e cliente pide al servidor que le env´ un archivo. ejecutamos las siguientes instrucciones #iptables -t nat -F : Configura el comportamiento de iptables.

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. gestionar y n a controlar. En el primero hay uno o m´s servidores que se encargan de enviar las respuestas. el admia nistrador de la red elige tanto la direcci´n f´ o ısica como la direcci´n IP. 2. es decir. Existen dos posibles dise˜os: n 1.206. 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. todos las direcciones IP tienen el mismo prefijo. Junio 2005. 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. el ordenador que conoce la direcci´n IP de otro a o ordenador pero desconoce su direcci´n f´ o ısica.124. en concreto responde el que o o tiene la direcci´n pedida.Cap´ ıtulo 7. Aunque muchas tecnolog´ o o a ıas utilizan direcciones f´ ısicas est´ticas. ning´n elemento hardware entiende o u la relaci´n: entre el prefijo de la direcci´n IP y la red. Jose Antonio Escart´ Vigo. Tiene el inconveniente de que estos servidores pueden ser un cuello de botella en una red grande. 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. a˜adiendo el redireccionamiento de los puertos que utilice el e n protocolo. El propio protocolo se encarga de construir las tablas o en lugar de tener que hacerlo el administrador del sistema. dirigido por eth0 al puerto 80 (web). En este caso. 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. En este caso. 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. pues es mantenida por software. 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. Como la direcci´n IP es virtual. La traslaci´n entre direcciones IP y direcciones f´ o ısicas es local a la red. 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. En el siguiente ejemplo podemos observar la traducci´n entre direcci´n IP y direcci´n f´ o o o ısica.203. Direcci´n IP o 130. algunas usan direccionamiento configurable. una de las ventajas de este m´todo sobre tener unos n e archivos de configuraci´n es su sencillez. Esto se observa en el siguiente ejemplo: Enviamos el tr´fico que entra. ın . En el segundo dise˜o. Cada entrada de la tabla contiene una direcci´n IP y una direcci´n f´ o o ısica. o n a Este dise˜o es el utilizado en el ARP. Infraestructura de redes 67 Tambi´n lo podemos hacer con reglas. La principal ventaja de este dise˜o es que el c´lculo es distribuido. y la relaci´n entre el sufijo de la direcci´n IP y el o o o o host. Como existe una tabla para cada red f´ ısica.13 130.3. Cuando enviamos un paquete IP entre estas dos m´quinas s´lo indicamos la direcci´n IP. los valores pueden o ser elegidos para que la traslaci´n sea trivial.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.124.

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. 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. y de esta manera a o ´ el servidor puede buscar su direcci´n IP y enviarle una respuesta. ın . Como ocurre con los mensajes ARP.XX. debe tener guardada en a alg´n dispositivo la direcci´n IP que le corresponde. RARP (Reverse Address Resolution Protocol) Cada m´quina. 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. ¿c´mo una m´quina que no disponga de disco duro puede determinar su direcci´n IP?. En el campo tipo de la cabecera de la trama Ethernet es necesario especificar qu´ contiene un mensaje ARP. 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.3.1. 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. 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. u o Pero. Para conseguirlo debe acceder a recursos de bajo nivel. 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. 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. que este protocolo s´lo puede ser utilizado en aquellas redes en las cuales es posible hacer un o broadcast (difusi´n de red). IP).XX. 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. a a 7.XX. Como Ethernet asigna un unico valor para los dos mensajes ARP. Jose Antonio Escart´ Vigo. En la petici´n. 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. 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. Es importante o destacar. Junio 2005. 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.68 Servidor Linux para conexiones seguras de una LAN a Internet 7. o ´ Unicamente hay dos tipos de mensaje que tienen el mismo formato: petici´n ARP y respuesta ARP.XX.2. Suponemos o a que el servidor tiene acceso a un disco que contiene una base de datos de direcciones IP.3. El emisor se e debe encargar de poner el valor correspodiente y el receptor de mirar el contenido de ese campo. 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.XX Sabe alguien cual es mi direcci´n IP?” o Como podemos ver en esta pregunta. 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. adem´s de su direcci´n f´ a a o ısica que est´ en la tarjeta de red. la o m´quina que necesita conocer su direcci´n IP unicamente debe identificarse a si misma. Generalmente no la conoce. 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. para identificarse. o ¿C´mo puede la m´quina conocer la direcci´n del servidor?. 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. para que esto no se tenga que repetir para cada paquete que queremos enviar y adem´s se pueda reducir el tr´fico. por ejemplo en una trama Ethernet. o Los mensajes ARP van a ser encapsulados directamente en una trama Ethernet.

Infraestructura de redes 69 7. ICMP (Internet Control Message Protocol) Permite el intercambio de mensajes de control y de supervisi´n entre dos ordenadores. Es un protocolo de control que utilizan los dispositivos de encaminamiento para notificar las incidencias que pueden haber en una red IP. Toda anomal´ o ıa detectada por el protocolo IP provoca el intercambio de mensajes ICMP entre los nodos de la red. Proporciona informaci´n de realimentaci´n sobre los problemas. 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. encontramos los siguientes: ICMP. IP Entre los protocolos que utilizan IP ‘puro’. Al utilizar IP no se garantiza que llegue a su destino. es decir encapsulan sus mensajes sobre el protocolo IP.2. 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). la distancia f´ e ısica y el retardo Ser din´mico. OSPF. BGP y IGMP. 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. 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. Cada mensaje se encapsula en un paquete IP y luego es enviado de la forma habitual. ın . Protocolos de red. Junio 2005.4. 7.4. entre ellas.4. es decir.1.Cap´ ıtulo 7. 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.

Es posible que se deban considerar algunas restricciones a relacionadas con cuestiones comerciales o pol´ ıticas. los env´ de un punto a otro se le denomina unicast. 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. 7.4. La esencia de BGP es el intercambio de informaci´n de o encaminamiento entre dispositivos de encaminamiento.4. ıa e En la jerarqu´ de TCP/IP se definen dos protocolos de transporte: el UDP y el TCP. 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.5. IGMP (Internet Group Management Protocol) Es usado. que son: Obtener informaci´n del vecino o Detectar los vecinos alcanzables Detectar las redes alcanzables 7.” a “Nuestros mensajes no deben pasar por pa´ enemigos. o ıa Redes multiacceso sin difusi´n (por ejemplo. la mayor´ de redes LAN). En comparaci´n con multicast. ın . e Involucra tres procedimientos funcionales.4.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 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.3. Jose Antonio Escart´ Vigo. como por ejemplo: “Una empresa no hace de red de tr´nsito para los mensajes de la competencia. Junio 2005. o o 1 Diremos que una red es multiacceso si tiene varios dispositivos de encaminamiento que se pueden comunicar con los dem´s. 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. Redes multiacceso1 con difusi´n de red (por ejemplo. para informar a los dispositivos de encaminamiento que un miembro del grupo multicast 2 est´ en la red conectada al nodo. 7. Estos valores son dados peri´dicamente o a cada uno de los vecinos enviando mensajes. 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. 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. la mayor´ de redes WAN de conmutaci´n de paquetes).” ıses Los diferentes dispositivos de encaminamiento BGP se comunican entre s´ estableciendo conexiones ı TCP. y el env´ a todos los nodos o ıos ıo se le denomina broadcast. La informaci´n de encaminamiento actualizada se o va propagando a trav´s de un conjunto de redes. por ejemplo. Est´ informaci´n de los miembros del grupo multicast tambi´n a a o e es transmitida al emisor del multicast utilizando este protocolo. Es fundamentalmente un protocolo de vector distancia en el que cada dispositivo de encaminamiento mantiene el coste a cada destino y la trayectoria seguida.

Es decir. Cuando se detecta un o error en un datagrama en lugar de entregarlo a la aplicaci´n se descarta. 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. 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. 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). Como el cliente env´ en el datagrama a ıa UDP y en el segmento TCP tanto el puerto origen como el destino. Cada datagrama UDP existe independientemente del resto de datagramas UDP. o Los datos que se env´ durante la comunicaci´n son empaquetados por los protocolos del nivel de ıan o transporte. a diferencia del o campo equivalente de la cabecera IP que solo proteg´ la cabecera. a El campo suma de comprobaci´n (checksum) es un campo opcional de 16 bits que. En realidad es la longitud del datagrama IP menos el tama˜o de la cabecera IP. el servidor conoce el puerto origen una vez ha recibido una petici´n. 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 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. 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. n Como la longitud m´xima del datagrama IP es de 65. a El campo longitud es de 16 bits e indica en bytes la longitud del datagrama UDP incluyendo la cabecera UDP. 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. 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.5. Un datagrama consta de una cabecera y de un cuerpo en el que se encapsulan los datos. La utilidad de los puertos es que permite multiplexar aplicaciones o sobre protocolos del nivel de transporte. Jose Antonio Escart´ Vigo. a No preserva la secuencia de la informaci´n que proporciona la aplicaci´n. aunque si que utiliza mecanismos de detecci´n de errores. la longitud m´xima de un datagrama UDP es de 65. ın . Las caracter´ ısticas del protocolo UDP son: No garantiza la fiabilidad. o o El cliente conoce su direcci´n IP (direcci´n origen). UDP Este protocolo es “no orientado a la conexi´n”. llegan con retardo o llegan desordenados. o e e El servidor responder´ a las peticiones de cualquier cliente. un mismo protocolo de transporte puede llevar informaci´n de diferentes aplicaciones y estas son identificadas por el puerto. 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. En este caso.515 bytes. No se puede asegurar que un datagrama UDP llegar´ al destino. y por lo tanto no proporciona ning´n tipo de control o u de errores ni de flujo. 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. Para establecer una comunicaci´n de utiliza el modelo cliente/servidor.Cap´ ıtulo 7. protege tanto la cabecera como ıa los datos.1. Junio 2005. o 7. la direcci´n del servidor (direcci´n destino) y el o o o o puerto que identifica su aplicaci´n cliente.

o La direcci´n del puerto permite identificar aplicaciones gracias a la direcci´n del puerto. Al principio de la conexi´n se asigna un n´mero de secuencia inicial (ISN. o o 7.72 Servidor Linux para conexiones seguras de una LAN a Internet Figura 7. Lo que realmente proporciona UDP respecto a IP es la posibilidad de multiplexaci´n de aplicaciones. o N´mero de secuencia (32 bits): Identifica el primer byte del campo de datos. 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.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.5. TCP La unidad de datos de este protocolo recibe el nombre de segmento TCP. ın . 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. o Jose Antonio Escart´ Vigo. En este protocolo no u se enumeran segmentos sino bytes. pues por cada paquete que env´ recibir´ tantas confirmaciones como destinos ıa ıa ıa hayan recibido el paquete. Como la cabecera debe implementar todos los mecanismos del protocolo su tama˜o es bastante grande. Junio 2005. o Puerto destino (16 bits): Es el punto de acceso de la aplicaci´n en el destino. por lo que este n´mero indica el primer byte de datos que hay u en el segmento. f´cilmente el o a o a emisor se ver´ colapsado.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. Figura 7. como m´ n ınimo 20 bytes. Initial o u Sequence Number) y a continuaci´n los bytes son numerados consecutivamente.2.

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. o • PSH: Sirve para invocar la funci´n de carga (push). o ı o o Puntero urgente (16 bits): Cuando el indicador URG est´ activo. Es decir. Es una t´cnica de optimizaci´n que se usa cuando hay tr´fico ıa e o a de datos en ambos sentidos. 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. 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. • ACK: Indica que tiene significado el n´mero que hay almacenado en el campo “n´mero de u u confirmaci´n”. n a 1 Un paquete puede llevar dentro no s´lo los datos que van en direcci´n A-B. 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. De u esta manera el TCP puede saber donde se acaba la cabecera y por lo tanto donde empieza los datos. Cuando el bit ACK est´ activo. As´ se reduce el n´ mero total de paquetes requeridos. este campo indica cual es el ultimo a ´ byte de datos que es urgente. 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. rlogin y ftp. La pseudo-cabecera incluye los siguientes campos de la cabecera IP: direcci´n o internet origen. Junio 2005. u ´ Longitud de la cabecera (4 bits): Indica el n´mero de palabras de 32 bits que hay en la cabecera. u • FIN: Sirve para indicar que el emisor no tiene m´s datos para enviar. 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. 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. 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. • URG: Hay datos urgentes y en el campo “puntero urgente” se indica el n´mero de datos urgentes u que hay en el segmento. Este campo es utilizado por algunas aplicaciones como telnet. TCP se protege a s´ mismo de una transmisi´n err´nea de IP. sino tambi´n un ACK (acuse de recibo) de o o e otros datos que llegaron anteriormente en direcci´n B-A. o • SYN: Sirve para sincronizar los n´meros de secuencia. n • Indicar el tama˜o m´ximo del segmento que el origen puede enviar. De esta manera se consigue que los datos no esperen en la memoria receptora hasta completar un segmento de dimensi´n o m´xima. 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. el n´mero ACK=1 indica el ultimo bit reconocido. en los que la ventana es constante y se cuentan las tramas. este campo contiene el n´mero de secuencia del a u primer byte que espera recibir. 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. direcci´n internet destino. Con la o inclusi´n de esta pseudo-cabecera. el protocolo y un campo longitud del segmento. ın .Cap´ ıtulo 7. • Aumentar el tama˜o de la ventana. Jose Antonio Escart´ Vigo. porque de o ı u otra manera el ACK tendr´ que ocupar un paquete completo. A diferencia de lo que ocurre en los protocolos del nivel de enlace. • RST: Sirve para hacer un reset de la conexi´n. en el TCP la ventana es variable y cuenta bytes. De esta manera el receptor puede saber cuantos datos urgentes llegan.

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

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

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

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

.

para configurar nuestro sistema. o 8. 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. Network Interface Card). Ifconfig: Configurador de red El programa ifconfig es responsable de configurar las tarjetas de interfaz de red (NIC.1. El formato del comando ifconfig es el siguiente: #ifconfig dispositivo direccion opciones Donde dispositivo es el nombre del dispositivo ethernet (por ejemplo. direcci´n es la direcci´n o o IP que se desea aplicar al dispositivo y opciones es una de las siguientes: . . en Debian la interfaz que podemos utilizar es etherconf. que arrancar´ debconf. . eth0). Todas estas operaciones se realizan a trav´s de la l´ e ınea de comandos. ya que no tiene interfaz gr´fica. a 8.2.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. . 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. a Y nos realizar´ unas preguntas. Muchas de ellas vienen en las distribuciones de Linux. En este cap´ ıtulo trataremos su configuraci´n mediante una serie de herramientas.

1 Mask:255. Donde el dispoıa sitivo eth0 quedar´ configurado con la direcci´n IP 192. Si no se propora o ciona un valor. .255.255.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. una de clase B o a 255.255.0. el valor por defecto es 1500 Configura la m´scara de red de esta interfaz a direcci´n. para activar el dispositivo #ifconfig dispositivo down.0.0 y el broadcast ser´ 192. con el comando ifconfig podemos habilitar y deshabilitar los dispositos de red: o #ifconfig dispositivo up.3. o a e En tiempo de ejecuci´n.3. .168. . . o a Bajo ethernet.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.0. .255.0. 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. Junio 2005.0. 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.255 Mask:255. asign´ndolos ifconfig por defecto.168.255. . .1 MiB) TX bytes:707464 (690. est´n activos o no. a a a a Si la direcci´n IP que configuramos es una direcci´n de clase A o B dividida en subredes. ın .11 Bcast:192.0.0 b) TX bytes:0 (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.0.168. . la a o o m´scara ser´ 255.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. Si no se o o proporciona un valor. .255. se mostrar´n todos los dispositivos.8 MiB) lo Jose Antonio Escart´ Vigo. Una direcci´n de clase A tiene una m´scara 255. por defecto Desactiva este dispositivo para responder a peticiones arp Configura la unidad de transmisi´n m´xima (MTU) del dispositivo a valor. .0.255. . ifconfig calcula la m´scara basada en la clase de la direcci´n a o IP.0.168. .0 b) Interrupt:10 Link encap:Local Loopback inet addr:127. Como es una direcci´n de clase C.0 y la clase C 255.0.0 Configura la direcci´n de broadcast de la interfaz de direcci´n.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. Esta opci´n es impl´ o ıcita Desactiva el dispositivo Activa este dispositivo para responder peticiones.8 MiB) TX bytes:29170217 (27. Con la opci´n -a: #ifconfig -a.0.255.168.0.

de loopback. Configurar una ruta por defecto en mi m´quina. Este camino apunta a un enrutador. s´lo necesitamos otro par´metro.3. 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. muchas m´quinas no conocen el u a camino correcto al destino. ın . ıan La tercera es la ruta por defecto. enrutadores o cortafuegos. que idealmente sabe a d´nde deber´ ir el paquete o ıa o.3 netmask 255. de forma que los paquetes destinados a las m´quinas de esa misma a red se env´ directamente a ellas.0. como a menudo pasa en los servidores.168. en estos momentos deshabilitada.1 dev eth0 2. se usa una a o ruta por defecto. tambi´n podemos observar el ı e dispositivo lo. al menos.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.0. 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. 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. Configuraci´n de dispositivos de red o 81 Se puede observar que dispone de dos tarjetas de red. 8. Si configuramos la red en tiempo de instalaci´n. Si eliminamos n una ruta. s´lo conocen el propio destino). Este aparato.168. As´ que no suele o a ı ser necesario cambiarlo. necesitamos un enrutador. Suele ser necesario cuando tenemos varias tarjetas instaladas en un mismo equipo. La segunda es la ruta a la LAN. Configurar un sistema para que todos los paquetes destinados a 192.255.168. Route: Tablas de redireccionamiento Si la m´quina se conecta a una red con varias subredes.0. la cual tiene un dispositivo Ethernet y un enrutador a en 192. o En el caso donde una m´quina ni siquiera tiene una pista sobre d´nde enviar el paquete. Esta ruta se usa para paquetes que necesitan abandonar la LAN para comunicarse con otras redes. en este caso eth0 es una tarjeta de red LAN y eth1 una tarjeta de red wifi.3 se env´ a trav´s del ıen e primer dispositivo PPP: #route add -host 192. sabe otra ruta que puede tomar.Cap´ ıtulo 8.1: #route add -net default gw 192. As´ mismo.0 dev ppp0 Jose Antonio Escart´ Vigo. redirige paquetes a su destino real (normalmente. Junio 2005. lo cual no quiere decir que no se pueda. que a se sit´a entre redes.168.255. este valor lo configurar´ el instalador.

168.1. Las otras entradas de la tabla tienen el significado o siguiente: Entrada Flags Descripci´n o Un sumario de estado de conexi´n. pasarela. Aunque a o ıa es bueno leerlo. necesitamos asegurarnos de que existe una ruta a la pasarela antes de referenciarla como otra ruta. configurada por la opci´n dev de route).0. Genmask 255. Est´ aqu´ debido u a ı a que la propia herramienta route es de plataformas cruzadas. 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. 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.255.3 Hay otra cosa a tener en cuenta. ı 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. Esta espera ser´ de varios minutos hasta que la petici´n a o devuelva un timeout.1. o ı El n´mero de referencias de la ruta.0. pero s´ lo hacen algunos protocolos de enrutamiento avanzados. necesitamos asegurarnos primero de que tenemos una ruta a la red 192. Esto no se usa en el kernel de Linux. Para ver este valor.0 Flags Metric Ref U 0 0 UG 0 0 Use Iface 0 eth0 0 eth0 Podemos observar varias columnas como destino. Por ejemplo. si la ruta por defecto usa la pasarela de 192. Un camino con m´trica baja es el preferido.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. ın . El kernel de Linux no usa e esta informaci´n. Junio 2005.168.0. presenta un problema cuando hay dificultades de red y no se consigue llegar a los servidores DNS o NIS. m´scara (referido como genmask) e iface a (interfaz.168.0. As´ se imprime este valor. pero se prefiere una ruta sobre el resto.168.0 * default . As´ se borra una ruta destino a 192.0 0. tratando de resolver los nombres de m´quinas y esperando para a a ver si los servidores devuelven y los resuelven.1. Esto es significativo para los sistemas que tienen varias rutas para llegar al destino.168.255.0. normalmente medida en saltos (hops). si usamos una pasarela (gateway). hay que u e usar la opci´n -F cuando invoquemos route o Metric Ref Use Jose Antonio Escart´ Vigo.3: ı #route del 192. El comando route esperar´.

simplemente: #pump -i dispositivo. sino por la dificultad de mantener un registro con las IPs asignadas para evitar duplicados. Para instalarlo: #apt-get install pump Y para utilizarlo. es un protocolo de red empleado para asignar de forma autom´tica una direcci´n IP a los hosts que se conectan a ella. ın . equipo por equipo. como por ejemplo: #pump -i eth0 Dhcp3-client es complejo pero m´s configurable. Configuraci´n de dispositivos de red o 83 8. pero en n redes de un cierto tama˜o esta tarea puede convertirse en agotadora. Configuraci´n de interfaces usando DHCP o DHCP (Dynamic Host Configuration Protocol). no s´lo por tener que editar cada n o uno de los hosts. Netstat: Estado de las conexiones El programa netstat se utiliza para mostrar el estado de todas las conexiones de red de una m´quina. Internet Software Consortium) o dhcpcd (Yoichi Hariguchi y Sergei Viznyuk) pump (Red Hat) Pump es sencillo y ampliamente utilizado. .4. . . a o En redes peque˜as las direcciones IP pueden asignarse de forma manual.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. Junio 2005. Para instalarlo: a #apt-get install dhcp3-client Y para utilizarlo ejecutamos: #dhclient3 dispositivo. 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. a La opciones de netstat son combinables. Para que esto funcione debemos instalar uno de los siguientes paquetes: dhcp3-client (versi´n 3. .5. .Cap´ ıtulo 8.

238.123.21 195.0.0.238.168.168.168.1 dns-search nicedomain. 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.123 255. Archivo /etc/network/interfaces El archivo especifica la configuraci´n de nuestros dispositivos de red y puede ser configurado a mano.255.238.168.168. ın .255. para m´s o o ıa a informaci´n cons´ltela. o Los comandos: #ifdown dispositivo y #ifup dispositivo. En las siguientes secciones se especifica la forma de configurar el archivo /etc/network/interfaces. los argumentos de las opciones dns-search y dns-nameservers e quedan disponibles para resolvconf para su inclusi´n en resolv.1 es la direcci´n de la puerta de enlace de la LAN Internet.123 netmask 255.6.conf.conf. 8. o u 8. utilizan el archivo para habilidar y deshabilitar los dispositivos de red. Direcci´nes IP est´ticas o a Supongamos que se desea configurar una interfaz ethernet que tiene una direcci´n IP fija 192.238. o Esta direcci´n comienza con 192.0.255. Junio 2005. e o Jose Antonio Escart´ Vigo. Los argumentos 195.0.6.84 Servidor Linux para conexiones seguras de una LAN a Internet 8.22 de la opci´n dns-nameservers corresponde a los arguo mentos de las opciones nameserver en resolv.168.255.0.168.org dns-nameservers 195. Esta secci´n esta basada en la configuraci´n de la red de la gu´ de referencia Debian.2.2.5).21 y 195.0 192.org de la opci´n dns-search corresponde al argumento de la opcin search en o resolv. o El argumento nicedomain.0 gateway 192.conf.2. Otras opciones reconocidas en el archivo son dns-domain y dns-sortlist.6. Editamos /etc/network/interfaces o de modo que incluya un fragmento como el siguiente: iface eth0 inet address netmask gateway static 192.2.0 por lo tanto debe estar en una LAN.2.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.1.0. Supongamos adem´s que o a 192.22 Despu´s de que se activa la interfaz.

Cap´ ıtulo 8. 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. 8. 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.5. La manera m´s f´cil de hacerlo consiste en instalar el paquete pppoeconf y ejecutar pppoeconf desde la consola.255. para fijar el ESSID de eth1 a a miessid y la clave de cifrado en 123456789e antes de activar eth1 y usando DHCP. 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.4.1.1 netmask 255. A a a continuaci´n. podemos compartir la conexi´n a o de internet con todas las m´quinas de la LAN.11a/b/g) antes que se active la interfaz. mi proveedor de servicios me ha instalado un ı o m´dem/router de este estilo y no me es necesario. 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-”. Por ejemplo. 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. Interfaz Wifi El paquete wireless-tools incluye el script /etc/network/if-pre-up. a Jose Antonio Escart´ Vigo.168. Me han facilitado un usuario y contrase˜a que utilizo o n para validarme en su servidor y recibir el servicio. 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. La configuraci´n se realiza usando el o programa iwconfig (v´ase secci´n 8. Debemos observar que si el m´dem posee un router.10). Hay que acudir al manual en estos casos. Primero configuramos PPP y PPPoE para mi isp. 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. 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. As´ no hay que realizar la configuraci´n. ın . mediante una puerta de enlace.255.6.6.d/wireless-tools que permite configurar hardware Wifi (802. Supongamos que el ISP se llama mi isp.168. Junio 2005.1.3. Configuraci´n de dispositivos de red o 85 8.0 Si activamos NAT en esta m´quina. En mi caso.

201.123 netmask 255. definiciones de interfaces l´gicas no o de interfaces f´ ısicas.123 netmask 255.1.168. necesitamos a n configurar eth0 adecuadamente.6.7. 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.6.0. o Una interfaz f´ ısica es lo que hemos estado llamando “interfaz o dispositivo” de red.255.168. Vamos a definir.x/24.0 broadcast 192. Reconfiguraci´n de la red o Aqu´ es necesario diferenciar entre interfaz f´ ı ısica y interfaz l´gica.86 Servidor Linux para conexiones seguras de una LAN a Internet 8. supongamos que nuestra m´quina es un equipo port´til que transportamos de casa al a a trabajo.255 iface eth0:0 inet dhcp La interfaz eth0:0 es una interfaz virtual.0. Una interfaz l´gica es un conjunto de valores que pueden asignarse a los par´metros variables de una o a interfaz f´ ısica.0 gateway 192. ppp1.255.1 iface trabajo inet static address 81.0 network 192. Junio 2005. 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.0. Por ejemplo. Las definiciones iface en /etc/network/interfaces son. No obstante. en realidad.255.1 netmask 255. n o especificando: #ifup eth0=hogar Para reconfigurar eth0 en la red del trabajo.255. n iface hogar inet static address 192.168. etc.0.0. la interfaz f´ ısica eth0 se puede activar en la red hogare˜a con la configuraci´n apropiada.1 De esta forma. en realidad.168.0. supongamos que la m´quina se encuentra en una red LAN a 192. ın .168. 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. lo que hemos designado con eth0. Y deseamos conectar la m´quina a Internet usando una direccin IP p´blica proporcionada a u con DHCP usando su tarjeta ethernet existente.0 gateway 81. Al activarse tambi´n lo har´ su padre eth0. e a 8.3. Cuando conectamos la m´quina a una red corporativa o a nuestra LAN hogare˜a.168. o o Jose Antonio Escart´ Vigo.201.0. en nuestro ejemplo no hay una interfaz l´gica definida. Interfaces virtuales Usando interfaces virtuales se puede configurar una unica tarjeta ethernet para que sea la inter´ faz de distintas subredes IP.255. Editamos /etc/network/interfaces de modo que incluya un fragmento similar al siguiente: iface eth0 inet static address 192.

Configuraci´n de red durante el arranque o Al arrancar. Por ejemplo. Deber´ a ıamos actuar siguiendo este esquema: Primero eliminamos ‘loquesea’ del control del sistema init. o e a Una vez configurados los mecanismos para el soporte de hardware que cambia en forma din´mica. bajo el control de ifupdown. Si est´ ultilizando el sistema init sysv-rc a entonces hacemos lo siguiente: # rm /etc/rc?.d/S40networking se ejecuta el comando ifup -a. tras haber insertado la tarjeta en la m´quina (una tarjeta PCMCIA. si descubre e alg´n dispositivo lo instala. o despu´s de que una utilidad como discover a e se haya ejecutado y cargado los m´dulos necesarios. Configuraci´n de dispositivos de red o 87 Una vez visto como se reconfiguran las interfaces. 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. hay que precisar que la reconfiguraci´n necesita o realizarse en el momento apropiado. a menudo resulta mejor manejar la configuraci´n de la red usando m´todos din´micos. resulta a m´s sencillo tratar el hardware est´tico como si fuera din´mico. Actualmente.1.7.7.2). u 8. ın . e Esto significa que dichos servicios deben liberarse del control del sistema init System V y ponerlos.d/S40networking. cardmgr se inicia durante el arranque despu´s de /etc/rcS.7. Esto activa todas las interfaces f´ ısicas que aparecen en las secciones auto de /etc/network/interfaces.d/loquesea stop 8. el script de init. 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. Esto incluye el hardware de red. Por lo tanto. El arranque se puede considerar como un a a a simple evento hotplug (V´ase secci´n 8.d/loquesea depende din´micamente de la interfaz de red reconfigurada eth0.Cap´ ıtulo 8. Para el PCMCIA. e o No obstante. o Jose Antonio Escart´ Vigo. Actualmente existe una tendencia en GNU y Linux al soporte de hardware y entornos que cambian din´micamente. Nunca debemos de incluir las interfaces PCMCIA en las secciones auto. por ejemplo). en casi todos los casos uno desea por lo menos que la interfaz de retorno lo (loopback) se active en el arranque.d/loquesea start down /etc/init. /etc/rcS. en cambio.2. 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. Junio 2005. supongamos que el servicio ‘loquesea’ controlado por el script de init /etc/init.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. 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.

3. y las aplicaciones que necesitan dicha informaci´n. Junio 2005. En Debian. utilizamos grep en vez de echo o como se muestra a continuaci´n: o mapping hotplug script grep map eth0 8. lo que significa que o la interfaz est lista para usar. Ifplugd Ifplugd activa o desactiva una interfaz dependiendo si el hardware subyacente est´ o no conectado a la a red. ejecuta nuevamente hotplug a con par´metros diferentes.d/net/ifplugd. El programa puede detectar un cable conectado a una interfaz ethernet o un punto de acceso asociado a una interfaz wifi. Supongamos que e la tarjeta de red PCMCIA ha sido conectada lo que implica que la interfaz eth0 esta lista para usar. ın .conf Si no hemos instalado el paquete resolvconf. Cuando ifplugd detecta que la tarjeta es conectada a una red.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. /etc/hotplug/net. cuando se llama a hotplug ´ste ejecuta los scripts contenidos en a e /etc/hotplug/ y /etc/hotplug. Al insertar una tarjeta.d/. podemos editar a mano el fichero /etc/resolv. ifplugd funciona correctamente en combinaci´n con hotplug.hotplug inicia una instancia de ifplugd para dicha interfaz. ejecuta ifup para esta interfaz. 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. Si m´s tarde se elimina el hardware. o Para la resoluci´n de nombres se utiliza el archivo de configuraci´n: o o /etc/resolv. Jose Antonio Escart´ Vigo.8. Cuando ifplugd ve que el estado del enlace ha cambiado ejecuta un script que por defecto ejecuta ifup o ifdown para la interfaz. 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. Para que este comando configure eth0.agent.conf. 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. 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. siendo los dos ultimos utilizados en caso de que no ´ se encuentre disponible el primero. 8. /etc/hotplug. La l´ ınea search se emplea para especificar que busque un dominio.7.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. 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. El hardware de red reci´n conectado es configurado por el /etc/hotplug/net. En ´l e podemos especificar hasta tres servidores de nombres. Este comando est´ dise˜ado o a n para funcionar sin que sea necesaria ninguna configuraci´n manual.

224. sin parametros observaremos cuales son las interfaces wireless de nuestro sistema. /etc/hosts.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. .0. Configuraci´n de dispositivos de red o Esto podr´ ser un contenido t´ ıa ıpico: #cat /etc/resolv. si despu´s de consultar este o e servicio no es posible la resoluci´n. donde se especifican los hosts que tienen acceso al sistema. este archivo normalmente contiene a la siguiente l´ ınea: order hosts. De esta forma podremos hacer referencia a los mismos sin especificar su direcci´n. el Resolver responder´ que no fue posible localizar el host. . donde se especifican los hosts a los que se proh´ el acceso al sistema ıbe 8. Junio 2005. Este archivo unicamente deber´ contener el nombre de la m´quina a ´ a a y no el nombre de dominio completo. 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. o a /etc/hosts.6 89 8.52.10.bind.com nameserver 192. 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. es decir configurar la red.52.conf # Dynamic resolv. En ´l especificaremos los nombre de todos los equipos conectados a la red y su correspondientes e direcciones IP. posteriormente se debe consultar a Bind y si a´n no se ha u logrado la resoluci´n. Jose Antonio Escart´ Vigo. ın . pero en este caso la red wireless.Cap´ ıtulo 8.9. El archivo /etc/hosts contiene un conjunto de nombres de hosts con sus correspondientes direcciones IP. .4 nameserver 194. En redes peque˜as y sin conexi´n a Internet este archivo puede utilizarse en lugar de un servidor n o DNS. El archivo /etc/host. Para este prop´sito /etc/hostname o contiene el nombre de la m´quina.conf(5) file for glibc resolver(3) generated by resolvconf(8) domain example.allow. 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. .168. .conf dice al sistema c´mo resolver los nombres de los hosts. Contiene el orden o en el que ser´n ejecutadas las resoluciones que requiera el host. Ejecutando el comando: #iwconfig. intentar con NIS (Network Information Server).deny. .1 nameserver 194.224.

5. ser´ necesario instalar un cliente WPA (para esta o a configuraci´n dir´ o ıjase a la secci´n 14. 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. a 8. . Para configuraciones m´s complejas es mejor que editemos el archivo /etc/network/interfaces como se a describe en la secci´n 8. . 14). 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. . ın . Para m´s informaci´n dir´ a o ıjase al cap´ ıtulo Redes inal´mbricas (cap.3. o Podemos tener un monitor de la conexi´n wireless con: o $wavemon. Junio 2005. tanto en hexadecimal como en ASCII. y establecer la clave a WEP del sistema.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. 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.11. no wireless extensions. monitor del estilo de top para conexiones wireless. Si utilizamos claves WPA. 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.5).

Parte III Instalaci´n de Servicios o .

.

1. 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. 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). conectadas a la red (m´scara. 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.wikipedia. si el ordenador se o mueve a otro lugar en otra parte de la red. Dynamic Host Configuration Protocol). se debe de configurar otra direcci´n IP diferente. a . La informaci´n de esta secci´n a sido obtenida de la enciclopedia libre: http://es.1. Asignaci´n de direcciones IP o Sin DHCP.org o o 9. El DHCP o le permite al administrador supervisar y distribuir de forma centralizada las direcciones IP necesarias y. en la red. cada direcci´n IP debe configurarse manualmente en cada ordenador y.1. puerta de enlace y otros) y tambi´n incluye un mecanismo a e de asignaci´n de direcciones de IP. en redes IPv6. 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. Esto facilita la instalaci´n de nuevas m´quinas clientes. asignar y enviar una nueva IP si el ordenador es conectado en un lugar diferente de la red. o Este protocolo apareci´ como protocolo est´ndar en octubre de 1993 y existe un proyecto abierto para o a desarrollar DHCPv6. Asignaci´n din´mica: El unico m´todo que permite la reutilizaci´n din´mica de las direcciones IP. o a El DHCP es una alternativa a otros protocolos de gesti´n de direcciones IP de red como el BOOTP o (Bootstrap Protocol). DHCP es un protocolo m´s avanzado. autom´ticamente.Cap´ ıtulo 9 Servicios de red 9. El procedimiento usa un concepto muy simple en un intervalo de tiempo controlable. Servidor DHCP El Protocolo de configuraci´n din´mica de servidores (DHCP. 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.

El router puede ser configurado para redireccionar los paquetes DHCP a un servidor DHCP en una subred diferente.0) que o o se adaptaba mejor el 22 de junio de 1999. Otras implementaciones importantes incluyen: Cisco: a˜adi´ un servidor DHCP habilitado en Cisco IOS 12. ıa 9. a o MTU (Unidad de Transferencia M´xima) para la interfaz.org/sw/dhcp/. Se puede encontrar el software en: http://www. o Nombre DNS. Puerta de enlace de la direcci´n IP.255. o El Consejo de Software de Internet (ISC: Internet Software Consortium) public´ distribuciones de o DHCP para Unix con la versi´n 1. aunque esto no es necesario y puede llegar a ser ignorado por el servidor.3.0 del ISC DHCP Server el 6 de diciembre de 1997 y una versi´n (2. o Jose Antonio Escart´ Vigo. Junio 2005. Par´metros configurables a Un servidor DHCP puede proveer de una configuraci´n opcional a la computadora cliente. n o Sun: a˜adi´ el soporte para DHCP.0 en febrero de 1999.isc.94 Servidor Linux para conexiones seguras de una LAN a Internet 9. a Tiempo m´ximo de espera del ARP (Protocolo de Resoluci´n de Direcciones). Nombre del servidor WINS.1. n o Actualmente. a Servidores NIS (Servicio de Informaci´n de Red). 9. Implementaciones Microsoft introdujo DHCP en sus Servidores NT con la versi´n 3.2. o Dominios NIS. la mayor´ de los routers incluyen soporte DHCP.5 de Windows NT a finales de 1994. o o M´scara de subred.1. a su sistema operativo Solaris. o a pesar de que la llamaron una nueva funci´n no fue inventada por ellos. o La lista de opciones siguientes son configurables mediante DHCP: Direcci´n del servidor DNS.255. Servidor SMTP.4.255 y requiere tambi´n su ultima e ´ direcci´n IP conocida. 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. 68/udp: Para las computadoras cliente. Servidor TFTP. ın . en julio de 2001. La implementaci´n cliente crea un paquete UDP o (Protocolo de Datagramas de Usuario) con destino 255. 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. o Direcci´n de difusi´n de red (Broadcast Address).1. Servidores NTP (Protocolo de Tiempo de Red).

para aplicar los cambios. 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.7 KiB) Interrupt:6 Si no encontramos la opci´n MULTICAST deberemos reconfigurar el kernel para agregarlo.conf. DHCP Request: El cliente selecciona la configuraci´n de los paquetes recibidos de DHCP Offer.255.1.1.1. a los clientes se les asigna una direcci´n IP dentro de ese rango. si debe llevarse a cabo una tarea o las opciones de a o configuraci´n de red que se enviar´n al cliente.2 MiB) TX bytes:381723 (372.Cap´ ıtulo 9. el servidor o DHCP no podr´ arrancarse. Una o vez m´s. ın . o El primer paso es comprobar que nuestro kernel esta configurado para que el sistema se pueda utilizar como servidor DHCP. El fichero de configuraci´n posee dos tipos de informaci´n: o o Par´metros: Establece c´mo se realiza una tarea. Se espera que el cliente configure su interface de red con las opciones que se le asignaron.1.d/dhcp restart Subredes Debemos incluir una declaraci´n subnet para cada subred de la red. reiniciaremos el demonio DHCP: o # /etc/init. En el ejemplo siguiente. o a Declaraciones: Describen el tipo de red y los clientes.255. o bien o opciones para cada sistema cliente.10 Bcast:192.10 192. Si cambiamos el fichero de configuraci´n. 9. El servidor especifica la direcci´n IP o en el registro YIADDR. o subnet 192.5.com".255 Mask:255. } Jose Antonio Escart´ Vigo.255.100.168. funcionar´ por defecto.168. ı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. Los par´metros definen valores no a a opcionales o que controlan el comportamiento del servidor DHCP.0. el cliente solicita una direcci´n IP espec´ a o ıfica que indic´ el servidor.0 { option routers 192. Para ello ejecutaremos: #ifconfig -a #ifconfig -a eth0 Link encap:Ethernet HWaddr 00:C0:9F:6E:1D:E0 inet addr:192. option domain-name option domain-name-servers option time-offset "example.0 netmask 255.255. 192.1. hay opciones globales para cada cliente DHCP de la a subred y un rango de IPs declarado.168.168.0.254. a Algunos par´metros deben empezar con la palabra clave option. -5. # Eastern Standard Time range 192.1. Se pueden declarar opciones globales para todos los clientes. o DHCP Acknowledge: El servidor confirma el pedido y lo publica masivamente en la subred. Configuraci´n de un servidor DHCP o El fichero de configuraci´n de un servidor DHCP es /etc/dhcpd.255. Junio 2005.0.168.255. option subnet-mask 255.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. proporcionan direcciones para los clientes o aplican un grupo de par´metros a un grupo de declaraciones.168. Si no lo hacemos.1.168. En la o mayor´ de sistemas no ser´ necesario.

com.168. 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.255.168.100. option routers 192. test-lab para describir todas las subredes en un entorno de laboratorio de tests.254.1.1.0 { range 192.4. por ejemplo. } Jose Antonio Escart´ Vigo.1. Tambi´n hay que tener en cuenta.168. que podemos o e usar el par´metro opcional host-name para asignar un nombre host al cliente.168.1. } 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. option domain-name "example. # Eastern Standard Time host apex { option host-name "apex.255.1.com". fixed-address 192.168. option broadcast-address 192.1.4. hardware ethernet 00:A0:78:8E:9E:AA.1.0 netmask 255.255.1.1. subnet 192.1. o a Podemos agrupar redes compartidas. option subnet-mask 255.1.255.255. option domain-name-servers ns1. fixed-address 192.255.com".33 192. o u o usamos el par´metro hardware ethernet de una declaraci´n host.1.168. option domain-name-servers 192. } } 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. max-lease-time 7200. -5.com".0 { parameters for subnet range 192. subredes.168.255.0.1.168. } } Grupos La declaraci´n group puede utilizarse para aplicar par´metros globales a un grupo de declaraciones. ns2. hardware ethernet 00:A1:DD:74:C3:F2.255. 255. 192.0 { parameters for subnet range 192. "example. a host apex { option host-name "apex.1. fixed-address 192.168.1. como.com".com". } host raleigh { option host-name "raleigh.redhat.2.168. ın . option routers 192.168. Esto se puede ver en el ejemplo siguiente que asigna direcciones a los o clientes dentro de un rango: default-lease-time 600. El nombre que le asignemos debe ser el t´ a ıtulo descriptivo de la red.1.example.0.4. shared-network name { option domain-name "test.0 netmask 255. Junio 2005.1.1. hardware ethernet 00:A0:78:8E:9E:AA.redhat.168. } subnet 192.redhat.com".255.168. more parameters for EXAMPLE shared-network subnet 192.255.255.6.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.254.32 netmask 255.168.com.1. group { option routers option subnet-mask option domain-name option domain-name-servers option time-offset 192.1.168.example.1 192.1.1. En el ejemplo siguiente.63.31. pero fuera de las declaraciones subnet se consia deran par´metros globales. un tiempo de lease m´ximo y los valores de confia guraci´n de red para los clientes.168.254.example. hosts u otros grupos. 192.168. declararemos un tiempo de lease por defecto. Los par´metros dentro de shared-network.10 192.168.168.168.

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

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

Configuraci´n gr´fica de DHCP. Servicios de red 99 9. a Figura 9.1. interfaz Webmin o a El m´dulo DHCP para nuestra interfaz web: Webmin. nos facilitar´ mucho la tarea de administraci´n o a o del servidor. 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. pero esta vez de forma gr´fica.1: M´dulo Webmin para DHCPD o Jose Antonio Escart´ Vigo. ın .7. Junio 2005.Cap´ ıtulo 9.

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

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

borrando nuestras m´quinas de la red. Localizaci´n de servicios. Servicios que activa un DNS Servicios de los que se puede disponer con un servidor DNS.2. incluyendo el de m´s alto nivel. o Resoluci´n inversa (de direcciones IP a nombres).3. 9. 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. son los siguientes: Resoluci´n de nombres a direcciones IP. a a a Para instalar bind9. o o Uso de la herramienta rndc.es es un FQDN. Un FQDN siempre comienza con el a nombre del host y contin´a subiendo directo al dominio de m´s alto nivel.102 Servidor Linux para conexiones seguras de una LAN a Internet 9. ın . upc es a el dominio de segundo nivel y .2.es es el dominio de de m´s alto nivel. www es el host. Transferencia segura de zonas entre servidores primarios y secundarios (y puertos). podemos utilizar un servidor de nombres completo: como named. Para nuevas instalaciones se recomienda bind9.upc. Logs a medida. o Listas de control de acceso. Configuraci´n del servidor o Un FQDN (Nombre de Dominio Totalmente Cualificado) est´ formado por un host y un nombre de a dominio. www. Por ejemplo. u a Si necesitamos proveer un servicio de nombres para un dominio. Servidores secundarios. DNS es uno de los ıan puntos m´s fr´giles y puede ser atacado en cualquier momento. que viene con el paquete bind o bind9. ya que soluciona problemas de seguridad que ten´ las versiones anteriores.2. o Respuestas parametrizadas en funci´n del origen de la petici´n (vistas). Junio 2005.

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

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

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

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. a Jose Antonio Escart´ Vigo. 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. a A pesar del nombre servidor “secundario”.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.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. Si bien es posible utilizar un unico servidor ´ DNS no es una pr´ctica recomendable. Junio 2005. por motivos de redundancia. la informaci´n que contienen estos servidores DNS. o a Figura 9.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. esto es. 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. ın . o a Figura 9. La unica diferencia que existe entre un primario y un secundario en DNS.

ıo Jose Antonio Escart´ Vigo. 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.9: Webmin BIND: Crear zona de reenv´ ıo Si los clientes de la red tienen que poder resolver nombres DNS externos.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. lo unico que se evita en este tipo de ´ servidores DNS es mantener Archivos de Zona. toda resoluci´n que realice un servidor “cache” debe ser o consultada con un servidor que primario o secundario. 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. Una de las principales razones por las cuales se configura un servidor “cache” .Cap´ ıtulo 9. esto evita la necesidad de requerir resoluciones que ya fueron resueltas en una ocasi´n. Figura 9. puede que necesitemos configurar y utilizar servidores de reenv´ en los servidores DNS de nuestra red. ın . Junio 2005. esto no implica que los servidores DNS primarios y secundarios no mantengan copias de sus resoluciones “caches”. aprovechando la informaci´n local para buscar resoluciones a o de nombres. es cuando se utiliza una conexi´n lenta. y o o por lo tanto evitan un cierto nivel de tr´fico.

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

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

a Deberemos dar nombre a los dominios NIS. Una diferencia significativa es que el dominio NIS no requiere que el administrador del servidores NIS permita expl´ ıcitamente unirse a un cliente.3. no realiza autenticaci´n. El proceso de autenticaci´n de usuarios se deja a cada m´quina indiıa o o a vidual. Por alguna raz´n los nombres de archivo no se cambiaron con el nombre oficial de paquete. y es una buena pr´ctica (aunque no obligatoria) usar a nombres distintos de nuestros nombres de dominios DNS. Sun renombr´ el paquete a Servicio o de informaci´n de red. Para la instalaci´n se utiliza el siguiente apt: o #apt-get install webmin-nis Figura 9. ocurri´ un conflicto: el t´rmino “p´ginas amarillas” o e a era una marca registrada de British Telecom y para evitar un pleito. ın . en los a˜os ochenta. 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.3. YP o n o a para abreviar).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). el servidor NIS s´lo a o env´ datos.10: Interfaz gr´fica Webmin para el servidor NIS a 9. empezaron a vender sus sistemas en el Reino Unido. o e Por eso hoy encontraremos que todas las herramientas NIS vienen con el prefijo yp en lugar de nis. o Jose Antonio Escart´ Vigo. los desarrolladores del sistemas operativo SunOS (Solaris). Cuando NIS se desarroll´. Cuando Sun Microsystems. Si ya existe un dominio en nuestra red deberemos configurar un cliente. Junio 2005. despu´s otros vendedores de Unix le siguieron. se le llam´ “p´ginas amarillas” (Yelow Pages. Es posible facilitar la configuraci´n mediante un m´dulo para la herramienta de administraci´n web o o o Webmin. Adem´s. Unicamente proporciona una lista de usuarios centralizada. 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. ya que todos los clientes son miembros del mismo dominio administrativo y est´n gestionados por los mismos administradores de sistemas.

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

change this # to "NOPUSH=false" and put all hostnames of your slave servers in the file # /var/yp/ypservers.. MINUID=1000 MINGID=1000 .. this shadow entry is # ignored. # MINGID is the lowest gid that will be included in the group maps.. the rest is # taken from YPSRCDIR. we don’t have to push the maps to the # slave servers (NOPUSH=true).. # We do not put password entries with lower UIDs (the root and system # entries) in the NIS password database. group and shadow is defined by YPPWDDIR. NOPUSH=true .1 puede observar un listado t´ ıpico del archivo /var/yp/Makefile. .master AUTO_HOME = $(YPSRCDIR)/auto.home AUTO_MASTER = $(YPSRCDIR)/auto. normally # that is /etc but you may want to move the source for the password # and group files to (for example) /var/yp/ypfiles. 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.112 Servidor Linux para conexiones seguras de una LAN a Internet En el cuadro 9. If no entry is found. # 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.. MINUID is the # lowest uid that will be included in the password maps. Jose Antonio Escart´ Vigo.. # If we have only one server. The directory # for passwd..local TIMEZONE = $(YPSRCDIR)/timezone LOCALE = $(YPSRCDIR)/locale NETMASKS = $(YPSRCDIR)/netmasks YPSERVERS = $(YPDIR)/ypservers # List of all NIS servers for a domain .. If you # create shadow maps. # GROUP = $(YPPWDDIR)/group PASSWD = $(YPPWDDIR)/passwd SHADOW = $(YPPWDDIR)/shadow GSHADOW = $(YPPWDDIR)/gshadow ADJUNCT = $(YPPWDDIR)/passwd.. for security. This Makefile can be modified to support more NIS maps if desired. 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. # These are the source directories for the NIS files.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. # 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 .. If you have slave servers.. ın .home AUTO_LOCAL = $(YPSRCDIR)/auto. All updated maps will be pushed to all NIS slave servers listed in the /var/yp/ypservers file. Please make sure that the hostnames of all NIS servers in your domain are listed in /var/yp/ypservers. the UserID for a shadow entry is taken from # the passwd file. Cuadro 9.

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

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

conf : passwd: nis files group: nis files El formato del archivo /etc/nsswitch. o ypwhich: Devuelve el nombre del servidor NIS que responde a las peticiones. Junio 2005. vuelca los contenidos de un mapa NIS (archivo NIS).5.conf. Se pueden listar varios servicios. necesitamos hacer una comprobaci´n de las configuraciones del servidor y el cliente o cliente. podemos usar el comando ypcat para volcar un archivo de nuestro servidor NIS en pantalla. 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. a ´ para el passwd: #ypmatch josan passwd Jose Antonio Escart´ Vigo. Servicios de red 115 No obstante. Tambi´n es una buena e herramienta de diagn´stico. y probar de nuevo. separados por espacios. debemos asegurarnos de que el n´mero o ID de los usuarios locales coinciden con el de los contenidos en el servidor. no es suficiente.Cap´ ıtulo 9. 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. escribimos: #ypcat passwd Vuelca el archivo passwd (mapa del archivo) en pantalla (si es que lo estamos compartiendo por NIS). Si no vemos el archivo. 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. en lugar de mostrar el mapa entero.conf /etc/nsswitch. Sin embargo. con activar este servicio en /etc/nsswitch. Para ello. o ypmatch: Es muy parecido a ypcat. si NIS parece no funcionar correctamente. le proporcionamos un valor clave y solo aparecer´ la entrada correspondiente a esa clave. 9. por ejemplo. Esto es util. ın .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.conf Y tengamos en funcionamiento el demonio de cliente ypbind.3.

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

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

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. ın . Podemos imaginar. pero no en el arranque. Esta es una mala idea. Esto implica problemas de perdida de datos.2. maquina:partition_distante punto_montaje nfs defaults 0 0 maquina:partition_distante punto_montaje nfs noauto. nos permite ver la lista ´ de particiones NFS montadas por otras m´quinas dentro de la red. Lo primero es o que los propietarios de los archivos sobre el servidor y sobre la m´quina local no concuerdan. Las o equivalencias aparecen en /etc/passwd y /etc/groups respectivamente. una partici´n o o de lectura/escritura sobre /home. Propiedades de las particiones montadas Los derechos de propiedad (permisos de acceso) Cuando navegamos por una partici´n montada. Llegando al extremo podr´ a ıamos tener ordenadores sin disco duro trabajando directamente sobre particiones NFS. Es frecuente que se exporten los buzones de correo de los usuarios. pero Paco no puede acceder ni a sus propios documentos. a 9. La segunda opci´n o o a o permite que cualquier usuario monte la partici´n con mount. estos archivos no son compartidos por NFS. o 9. As´ cada usuario puede trabajar sobre cualquier m´quina de la red ı a encontrando siempre sus archivos personales sin esfuerzo. 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. 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.4. 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. Junio 2005. podemos constatar una serie de cosas. como /usr/bin para ganar algo e o de espacio en disco sobre las m´quinas locales. e Podemos tambi´n compartir una partici´n que contenga ejecutables. ya que la gesti´n de concurrencia de NFS no es muy fiable y exportar /var/spool/mail por ejemplo. entre otros. GID). Showmount en este caso. Se trata de uno de los inconvenientes ligado a NFS.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. Montaje autom´tico de particiones NFS a Utilizaremos a este proposito el /etc/fstab como para cualquier otro sistema de archivos. Las herramientas del cliente: showmount Estrictamente hablando solo es necesario el programa mount para hacer funcionar un cliente de NFS. puede producir o p´rdidas de mensajes. Jose Antonio Escart´ Vigo. Esto es un problema porque ahora a Pepe puede acceder a los documentos de Paco. Varias soluciones son posibles. Pero las utilidades de cliente son a menudo muy utiles. Es que Linux a no usa los nombres de usuario y grupos sino que utiliza los c´digos de usuario y de grupo (UID.3.4. Su partici´n de trabajo es importada ı o o sobre otra m´quina donde el UID 542 corresponde al usuario Pepe.

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

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

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

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

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

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

ın . Es importante entender o que son dos cosas totalmente diferentes. que se encargara de la autene ticaci´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. cada una con sus ventajas e inconvenientes: o 125 La autenticaci´n por usuario y contrase˜a: Se trata del m´todo por defecto.Cap´ ıtulo 9.conf. Este m´todo presenta un inconveniente: cada usuario debe disponer de una cuenta en e la m´quina Unix. sino tantas como recursos se compartan. e 9. u a Las configuraciones hechas en esta secci´n se aplican a la totalidad de los recursos compartidos. n Este m´todo presenta la ventaja de que no son necesarias tantas cuentas de usuario como usuarios e haya. o independientemente de la configuraci´n especifica. Representa la ventaja o n e de permitir una gesti´n fina de los permisos. sino a como un nombre de resoluci´n de nombres propio del protocolo NetBIOS. o e e • El m´todo server : Consiste en consultar con otro servidor CIFS. no como un nombre de DNS. para permitir la autenticaci´n. Los men´s hosts allow y host deny permiten controlar el acceso a los recursos de ciertas m´quinas. o Las configuraciones realizadas por Swat se reflejan en el archivo de configuraci´n /etc/smb. El campo interfaces: Permite identificar la o las tarjetas de red que enlazan el servidor con el grupo de trabajo. 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. El campo netbios name: Permite definir el nombre de la m´quina. o • El m´todo domain: Consiste en validarse contra el servidor de dominio NT. Para cada usuario es posible definir el acceso o no a o unos recursos. El campo workgroup: Permite elegir el grupo de trabajo del servidor Samba. 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. Junio 2005. 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. Servicios de red Existen varias formas de autenticaci´n.%m max log size = 50 Jose Antonio Escart´ Vigo. Autenticaci´n contra otro servidor : Existen tambi´n dos m´todos indirectos de control de acceso. 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.5. 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.5. podemos elegir uno de los vistos e o anteriormente.

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

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

Necesitamos que las m´quinas (y no los usuarios) dispongan de una a cuenta. desde un cliente Linux. Cliente Samba Acceder a los recursos compartidos: smbclient Este comando permite acceder. como no van a conectarse al shell. seguido del car´cter $. bien se trate de un servidor Samba o de un servidor basado en Windows. Autorizar las peticiones de autenticaci´n de otras m´quinas. Junio 2005. o 3. Es por a tanto preciso autorizarlas para ello. creamos una compartici´n ficticia. o a 2. La interfaz es parecida a la del ftp.5. a En el archivo /etc/samba/smb. a los recursos disponibles a trav´s de servidores e CIFS. Declararse Master Browser. sin embargo permite la autenticaci´n de las o u o diferentes m´quinas. Configuraci´n de Samba como controlador de dominio o Samba es capaz de comportarse como un PDC (Controlador de Dominio Primario). tendr´ como identificador iceberg$.5. a a As´ por ejemplo la m´quina iceberg. Para configurarlo. es de este modo posible transferir archivos sin esfuerzo. 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. ın . no es necesario darles un usuario normal.11. con su directorio. 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. La sintaxis es: #smbclient //maquina/recurso Jose Antonio Escart´ Vigo. Configurar la autenticaci´n usuario por usuario.10. 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. El identificador de una m´quina es su nombre NetBIOS.128 Servidor Linux para conexiones seguras de una LAN a Internet 9. 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. con el comando: #smbpasswd -a -m maquina 9. Hecho lo cual hay que a˜adir ı a a n esta cuenta de usuario a la base de datos de los usuarios de Samba.conf.

tambi´n disponemos de otra heo e rramienta web. Servicios de red El recurso puede ser: Un directorio. Esta herramienta nos permitir´ una configuraci´n y a o administraci´n de forma simple y sencilla.Cap´ ıtulo 9. que resuelve nombres de IP contra los nombres de NetBIOS de la m´quina. tales como print archivo. 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.5. ın . Tambi´n podemos acceder a algunas opciones extra. disponemos de una interfaz de transferencia de archivos o id´ntica a la del FTP. interfaz Webmin o a Para facilitarnos la tarea de la configuraci´n de archivos en Debian. Configuraci´n gr´fica de Samba.13 se puede observar una serie de pantallas de la interfaz. 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. Para desmontar un recurso compartido usamos el comando smbumount. Junio 2005. 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. o Una vez conectado al servicio en cuesti´n. se comporta de una forma similar a los montajes mediante NFS. Smbclient se encarga de gestionar las interacciones entre los archivos presentes en el servidor. 129 El nombre de la m´quina es su nombre de NetBIOS. o Para instalar el m´dulo Samba de Webmin realizaremos un apt: o #apt-get install webmin-samba En la figura 9. Una impresora. Permite realizar copias de seguridad de los archivos del servidor desde la m´quina cliente Samba. esta vez para el entorno Webmin. para e e imprimir un archivo local en el servidor. 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.12. 9. Jose Antonio Escart´ Vigo. Guardar datos de un recurso compartido: smbtar El comando smbtar es muy similar al comando tar. Un disco compartido. que puede (y suele) ser diferente de su nombre a de DNS. que no almacena nada m´s que los archivos que han o a sido modificados a partir de la fecha especificada. a -R wins: Permite lanzar la consulta a un servidor WINS para obtener dicha conversi´n.

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

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

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 Para instalarlo: #apt-get install gftp. a a o Cuando configuramos un servidor virtual podemos volver a ajustar algunos de los par´metros establecidos a en las opciones globales.6. a a Desde nuestro entorno Debian se ponen a nuestra disposici´n: gFTP (GNU FTP ). Clientes FTP En Internet es posible encontrar diversas aplicaciones que nos permiten trabajar con servidores FTP de una forma f´cil y r´pida. Junio 2005. . muy intuitivo y con entorno gr´fico. . interfaz Webmin o a Estas misma tareas administrativas se pueden realizar c´modamente con la herramienta web: Webmin. para ejecutarlo: #gftp Es un cliente FTP. o 9. 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.6. o Para instalar el m´dulo de ProFTPD para webmin: o #apt-get install webmin-proftpd Figura 9. a Jose Antonio Escart´ Vigo.2.3. . Algunos de los par´metros m´s importantes a ajustar son el control de acceso y la autenticaci´n. ın . 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. Configuraci´n gr´fica de ProFTP.132 Servidor Linux para conexiones seguras de una LAN a Internet 9.

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

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

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

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

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

ın . Junio 2005. e o Jose Antonio Escart´ Vigo. 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. En este men´ estableceremos un nombre a la impresora y n u estableceremos el tipo de conexi´n. u o Ahora hacemos clic en A˜adir impresora.

Lo realizaremos de la siguiente forma: #smbpasswd usuario.convs y descomentaremos las l´ ınea: application/octet-stream application/vnd.3: Impresora HP815 configurada para usar Cups 10.types y descomentaremos la l´ ınea: application/octet-stream. .0. para a˜adir lo siguiente: n [global] #Nombre del servidor Samba server string = Paquito obey pam restrictions = Yes #Tipo de autenticacion.d/samba restart /etc/init. guest passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n . o e ıa /etc/init.2.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. deber´ o a ıamos a˜adir los usuarios Samba para que n se puedan autenticar contra el servidor.0.Cap´ ıtulo 10.%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.d/cupsys restart Jose Antonio Escart´ Vigo. Ahora s´lo queda reiniciar los servicios Samba y Cups. . Despu´s todo deber´ funcionar. Junio 2005. volveremos a la configuraci´n Cups y realizaremos los siguientes cambios: o Editaremos el archivo /etc/cups/mime.conf.168. . ın . En este caso la base de datos.cups-raw Editaremos el archivo /etc/cups/mime. nos pedir´ que le establezcamos una contrase˜a. syslog = 0 log file = /var/log/samba/log. 127. Servicios de usuario 139 Una vez realizado esto tendremos la impresora configurada. Servidor Cups para Samba Para configurar Cups rn Samba editaremos el archivo /etc/samba/smb. a o Figura 10. tdbsam que viene por defecto passdb backend = tdbsam. desde el men´ impresoras podemos impriu mir una p´gina de prueba y comprobar que la configuraci´n es correcta. a n Una vez realizado esto.0.2.

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

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

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. o la ruta de acceso a httpd. directorio base de las p´ginas web del servidor. . Cuando el servidor web se inicia mediante los scripts de inicializaci´n.4: Interfaz Webmin para Apache Directorios y archivos de configuraci´n o En nuestra distribuci´n Debian. o o Jose Antonio Escart´ Vigo. . a Ejecutables de Apache: /usr/bin El directorio base de los archivos de configuraci´n del servidor web se especifica en el archivo httpd. directorio base de los archivos de configuraci´n. ın . o Figura 10. o Para instalarlos. . desde all´ se ı. realizaremos el siguiente apt: #apt-get install apache apache-doc webmin-apache webmin-htaccess En la figura 10. . . o utilizando la directiva ServerRoot.conf se especifica en la l´ ınea de comandos del servidor (httpd) y.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. especifica el resto de archivos de configuraci´n (con la opci´n -f ). Junio 2005. o DocumentRoot: /var/www. utilizaremos o o unos m´dulos para la herramienta web Webmin. los directorios de configuraci´n se encuentran colocados en los siguieno o tes puntos del sistema: ServerRoot: /etc/apache.conf. .

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

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

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

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

una para cada sitio. a Hay dos m´todos para soportar hosts virtuales como un solo servidor. respectivamente. 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. ın . donde s´lo el puerto que forma parte de la direcci´n diferencia los hosts virtuales.Cap´ ıtulo 10. una para cada sitio web. y otro se basa en soportar m´ltiples nombres de host en (normalu mente) una sola direcci´n IP. 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.7: M´dulo de Webmin para Webalizer o Con el boom de Internet y el consiguiente aumento del n´mero de sitios web. puede resultar u imposible por lo que respecta a los recursos de la m´quina. hospedaje virtual basado en IP y basado o en nombres. Junio 2005. cada vez es m´s frecuente u a encontrar una sola m´quina actuando como servidor para m´s de un sitio web. Una de ellas a a consiste en ejecutar m´ltiples copias de un servidor web. 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. Se denominan. a a Existen unas cuantas formas de proporcionar m´s de un sitio web desde una m´quina. sin embargo. Servicios de usuario 147 Figura 10.

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

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

codificasen la informaci´n a e o que se enviaran la una a la otra. podemos observar que m´dulos se encuentran instalados en el o sistema y habilitar o deshabilitar su uso. esta actividad requiere con frecuencia la transferencia de informaci´n personal y confidencial. 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]. Figura 10. 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. 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. 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. de esta manera. ın .2.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 . Jose Antonio Escart´ Vigo. Apache-SSL: Conexiones seguras Para instalar Apache con SSL. Despu´s de garantizar.3. Como se muestra en la figura 10. inicialmente. lo cual se consigue codificando dichas comunicaciones a trav´s del protocolo SSL (Secure Sockets Layer ).10. e El hecho de que el protocolo SSL est´ disponible para utilizarlo con los servidores web. 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... como n´meros de tarjetas de cr´dito o c´digos de o u e o cuentas bancarias. SSL es un protocolo que fue definido. Junio 2005. la seguridad de una sesi´n de e o comunicaci´n.10: M´dulos instalados en APACHE o 10.

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

se nos pedir´ que introduzcamos una frase de contrase˜a o a n para codificar el archivo que contiene la clave. Junio 2005. Creaci´n de un servidor web seguro o Debido a las restricciones gubernamentales impuestas en los EEUU a la exportaci´n. o a generar e instalar la funcionalidad del servidor web seguro para Apache. Este es transmitido al cliente cuando se establece una sesi´n segura. As´ como los nuevos o ı archivos de configuraci´n que quedar´n alojados en: /etc/apache-ssl/. Un archivo de certificado. 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. es muy peligroso dejar sin codificar la clave privada en el disco. que o ıa. n Aunque pueda resultar molesto. Existen dos opci´n para agregar el protocolo SSL a Apache. proporciona las funciones de SSL. Una vez que el archivo est´ codificado.conf del servidor o para especificar el archivo de claves que ha de usarse para que las operaciones sean seguras. u Este archivo contiene las claves que utiliza el servidor para realizar la codificaci´n. desafortunadamente. 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.3. sin protegerla con una frase de contrase˜a. y que o o se recomienda usar. 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. se denomina mod ssl. 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. que hay que ingeni´rselas para conseguir.key. as´ como ino o ı formaci´n sobre la clave. y a mod ssl se basa en el paquete que utilizamos. OpenSSL se basa en una biblioteca m´s antigua llamada SSLeay. o a A partir de ahora nuestro httpd. de manera predeterminada. 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.3. Este archivo indica que la clave y el sitio web son gestionados por una determinada organizaci´n. Si es una agencia de confianza quien firma este certificado. aunque sea de la competencia. Por u este motivo. Todos estos archivos son creado durante el proceso de instalaci´n de Apache-SSL. durante la creaci´n de la clave. n Hay que utilizar la directiva SSLCertificateKeyFile del archivo de configuraci´n httpd. Se debe enviar a la agencia de confianza (llamada autoridad de certificaci´n) o o para que sea firmado. se encontrar´ situado en: /etc/apache-ssl/httpd. ın . El certificado del servidor El archivo de certificado del servidor contiene informaci´n sobre la organizaci´n que ejecuta el sitio o o ´ web. utilizadas u por el servidor para codificar y descodificar operaciones. Lo que significa. el usuario o puede confiar en que es ciertamente esa organizaci´n la que ejecuta el sitio web. 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. la que se describe a continuaci´n. o Una petici´n de firma del certificado: Este archivo contiene informaci´n del certificado. o Preparaci´n de los archivos especiales necesarios para la seguridad o El servidor necesita varios archivos especiales para operar de modo seguro. o La clave privada de la pareja de claves p´blica-privada debe ser protegida en todo momento.conf. Apache-SSL.152 Servidor Linux para conexiones seguras de una LAN a Internet 10.conf a Pareja de claves p´ blica-privada: u La pareja de claves p´blica-privada se guarda en el archivo server. El hecho de que un paquete pueda constituir la base para otro. la mayor´ de las o ıa distribuciones no proporcionan directamente la funcionalidad de servidor de web seguro.

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

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

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

x. ın . Soporte para multiple protocolos: Apache incluye la infraestructura necesaria para servir m´ltiples u protocolos.156 Servidor Linux para conexiones seguras de una LAN a Internet 10.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. PHP y otro tipo de tr´fico que contiene c´digo a o ejecutable. 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. Ataques al servidor Web Actualmente casi todas las empresas tienen que ejecutar un servidor web. Uno de los inconvenientes de estas modificaciones es la incompatibilidad con los m´dulos o o existentes para Apache 1. Filtrado: Los m´dulos de Apache ahora pueden actuar como filtros analizando el contenido que es o servido. Errores multilenguaje: Los mensajes de error devueltos al navegador pueden proporcionarse de forma autom´tica en funci´n del idioma del navegador. Jose Antonio Escart´ Vigo.x La versi´n 2.4. los servidores web se sabe que tienen defectos y brechas de seguridad. 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. era mucho m´s f´cil controlarlo todo. Junio 2005. algo bastante com´n en nuestros d´ u ıas.3.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. pero todos tienen sus problemas. a o Configuraci´n simplificada: Algunas directivas confusas han sido simplificadas. con m´ltiples hebras de un unico proceso o en una forma h´ ıa o u ´ ıbrida. Ahora que las aplicaciones web son cada vez m´s complejas. Apache 2. Cuando las p´ginas web s´lo consist´ en HTML.1 a Para instalarlo deberemos ejecutar el siguiente apt: #apt-get install apache2 apache2-doc 10. proporcionando de esta forma una mejor escalabilidad. a o ıan a a Pero ahora que los servidores tienen que interpretar ASP. 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. DAV es una especificaci´n para publicar y mantener el contenido de una web.3. • mod_dav: Es un m´dulo nuevo que implementa DAV (Distributed Authoring and Versioning) o para HTTP. La idea intr´ ınseca de un servidor web (un usuario puede extraer archivos del servidor sin ninguna autenticaci´n) establece las brechas de seguridad. sin embargo.5. Nueva API : La versi´n 2. Soporte para IPv6 : Apache permite trabajar con el protocolo IPv6. o a Algunos servidores web son m´s seguros que otros. con el tiempo estos problemas a s´lo se incrementar´n. 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.3. 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.

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

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

2. IMAP. ın . Junio 2005. reenv´ y “aliasing” ıo funcionen correctamente. se puede acceder a los correos de una forma m´s sencilla y utilizando multitud de programas a cliente. Este podr´ ser un listado t´ ıa ıpico: Jose Antonio Escart´ Vigo. Servicios de usuario 159 Figura 10. 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.Cap´ ıtulo 10. u o o a varios usuarios locales. Puede reenviar correo utilizando SMTP lo que permite que las reglas de filtrado. en funci´n de la configuraci´n establecida. APOP.4. 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.11: Monitor para Exim a trav´s del m´dulo para Webmin e o 10. ETRN y ODMR. Una vez en local. o Puede recuperar correo de m´ltiples carpetas y reenviarlos. Se puede ejecutar en modo daemon para comprobar peri´dicamente el correo entrante. KPOP. Como caracter´ ısticas m´s habituales podemos citar: a Soporte de POP3.

como a . ın . a Jose Antonio Escart´ Vigo. del archivo de configuraci´n. en n nuestro caso pepe: */3 * * * * /usr/bin/fetchmail -s Esto indicar´ que se ejecute fetchmail cada tres minutos. o Para instalarlo realizamos el siguiente apt: #apt-get install fetchmailconf Este podr´ ser el archivo tipico de usuario ˜/. Para lanzar el demonio de forma autom´tica tenemos que ejecutarlo. Junio 2005.com y lo # depositamos en el buzon de correo local de josan.com poll pop3. el a bloque cuenta-usuario lo podemos repetir tantas veces como sea necesario.dominio. ejecutamos o desde la l´ ınea de comandos: #fetchmail Si lo queremos ejecutar en el cron.es y pepe4@terra. Si preferimos lanzarlo manualmente.es poll pop3. fetchmail). a˜adiremos al archivo /var/spool/cron/crontabs/<usuario>.fetchmailrc o Podriamos simplificar la configuraci´n de los archivos de usuario mediante el paquete fetchmailconf. o Si lo ejecutamos en modo daemon. # # poll servidorcorreo.es pepe3@terra.fechmailrc: ıa set postmaster "pepe" set bouncemail set no spambounce set properties "" # set daemon 90 # Cuentas de correo de ono: pepe1@ono.log" # establecemos el tiempo en segundos entre el que se estar\’a # intentando recuperar el correo de los distintos servidores. 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. Ese archivo se llamara: ˜/.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. le indicaremos cada cuantos segundos se ejecutara Fetchmail.profile o .ono.fetchmail.com y pepe2@ono.-) poll microsoft. que recibira el correo Creamos este archivo y lo modificamos con los par´metros de las cuentas POP3 de los usuarios.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.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.160 Servidor Linux para conexiones seguras de una LAN a Internet set logfile "/home/josan/.com . set daemon 120 # # Recuperamos el correo de buzon@dominio.bashrc (incluiremos la instrucci´n.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. Para ello descomentamos la l´ ınea: set daemon. en alguno de los archivos de perfil.terra.

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

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

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

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

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

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

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

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

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

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

el Bogofilter no es capaz de separar y contar los mensajes.net/ gallir/BULMA/spams. 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. Adem´s de ello. y debido a que el est´ndar de ´ste formato quita a e las l´ ıneas de “From” de inicio de mensaje. en la direcci´n: a o http://bulma. realimentamos la base de datos validos | bogofilter -n Jose Antonio Escart´ Vigo. Despu´s de este paso se habr´ creado la base de datos: ~/.txt. realimentaremos la base de datos con cada mensaje que llega.proco mailrc de cada usuario.txt.bogofilter/goodlist. no ser´ necesario ya que en la secci´n 10. 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. 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.gz | bogofilter -s Despu´s de este paso se habr´ creado la base de datos: ~/. 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). Para ello modificaremos el archivo de configuraci´n: ˜/. ın .procmailrc es el siguiente: o :0HB * ? bogofilter { # Es un spam. a El c´digo que incluiremos en el ˜/.5 a o hemos realizado un filtro que recompon´ esa l´ ıa ınea de “From”. en pocas semanas ya no necesita casi mantenimiento.bogofilter/spamlist. o Una vez el mensaje ha sido clasificado como spam.db e a Entrenarlo con spams El siguiente paso ser´ entrenarlo con spams.4.Cap´ ıtulo 10.db e a Configuraci´n de Procmail o El siguiente paso es configurar Procmail.gz Se puede encontrar una lista de m´s de 700 mensajes de spams. modificaremos la configuraci´n de Procmail para o que mueva los mensajes a otro archivo: ˜/mail/spams. Servicios de usuario 171 Si por el contrario lo tenemos en formato Maildir. Junio 2005. por lo que hay que llamarlo por cada mensaje almacenado.

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

o a 10.xml o ´ Lo primero que tendremos que hacer es especificar en que m´quina esta el servidor. es decir. 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.Cap´ ıtulo 10. Servidor Jabber Para poder instalar el servidor Jabber necesitamos realizar un apt: #apt-get install jabber Con esto. el nombre de la a misma ha de estar en formato FQDN. por ejemplo. intercambiar documentos. puesto que permite la comunicaci´n de los trabajadores de una forma eficiente. se guardaran en nuestro sistema todos los archivos b´sicos. Adem´s el servicio ha quedado agregado al arranque del sistema. 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 ı. ejecutaremos: #jabberd Configuraci´n Jabber o La configuraci´n se encuentra centralizada en un unico archivo: /etc/jabber/jabber. a Para arrancar el servidor de jabber. como complemento a la propia Intranet. consiguiendo a comunicaci´n instant´nea y directa. a mano. . para manejar el servidor Jabber o en el sistema. a en Java. tendremos que verificar si realmente todo funciona bien. Otra opci´n es poner directamente la direcci´n IP de la m´quina. (v´ase secci´n 10. De forma o a o que permite. Desde el cliente u e o necesitamos crear un usuario y registrarlo en el servidor local. necesitamos jabber-muc (Jabber Multi user chat). para que desde cualquier m´quina de nuestra red pueda acceder a a los servicios proporcionados por Jabber. es decir m´s de dos usuarios simultaa neos. para lo cual utilizaremos algunos de los m´ltiples clientes existentes para Jabber.1. textos. 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. de una forma muy sencilla sin tener que utilizar sistemas m´s complejos como ftp o correo interno. . 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. con la consiguiente portabilidad). Junio 2005. ın . r´pida y muy econ´mica. programas. . para ello realizaremos el siguiente apt: #apt-get install jabber-muc Jose Antonio Escart´ Vigo.18). en el inetd.5. Servicios de usuario 173 Esta formado por un servidor y clientes. datos.

en la direcci´n: u a ıa a o http://download.jabber. Configuraci´n gr´fica de Jabber. a Para conseguir m´s informaci´n sobre las opciones. ıa a Existen otros Clientes multiprotocolo. que tambi´n funcionan muy e e bien. es un cliente muy versatil. encontraremos m´s utilidades. 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. si utilizamos nuestra herramienta a o web: Webmin. MSN. tambi´n podemos registrarla. 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. necesitamos tener instalado un cliente.org/. . Clientes Jabber Para poder interactuar con el servidor Jabber. necesitamos jabber-jud (Jabber User Directory). AIM.jabber. para ello realizaremos el siguiente apt: #apt-get install jabber-jud Si queremos que nuestro servidor se comunique con otros protocolos propietarios como (IRC. 10. e Como podemos observar en la figura 10. personalmente utilizo kopete basado en el entorno de escritorio KDE.xml. ).5. Yahoo.3. podemos recurrir al manual: #man jabberd a o O bien consultar la p´gina oficial: http://www. interfaz Webmin o a Podemos hacer m´s sencilla la configuraci´n de nuestro servidor. . Junio 2005. situando nuestra cuenta podemos interactuar con multitud de servicios de mensajer´ adem´s de Jabber. es decir poder buscar en el archivo de usuarios del sistema.17. 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.19). o a Jose Antonio Escart´ Vigo. Existe muchos clientes para jabber. . ın .5. 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. Para instalarlo: #apt-get install gaim Al final todo es cuesti´n de probar y quedarnos con el cliente que m´s nos guste.174 Servidor Linux para conexiones seguras de una LAN a Internet Si queremos que nuestro servidor Jabber soporte la busqueda de usuarios. ICQ.org a 10.2. podemos acceder a las opciones generales. como Gaim (v´ase figura 10.18.

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

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

De hecho. podemos fortalecer las m´quinas individuales todo lo que deseemos. a Eliminar el uso de Telnet y FTP en nuestra red puede ser dif´ ıcil. nos aseguramos de que no se est´n leyendo nuestras comunicaciones remotas con los servidores. aunque todav´ deja a a a ıa activado el servidor Telnet de forma predeterminada. 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. Telnet. 11.1. SSH tambi´n incluye SCP. De este modo. m´s a a seguros estaremos. e o u Una de las herramientas de acceso remoto m´s populares.6 o m´s actual.1. y SFTP un e reemplazo seguro para FTP. pero si iniciamos una sesi´n en ellas remotamente con un a o programa de terminal inseguro. como HTTP y SMTP. necesitamos un cliente SSH en nuestro lado y tiene que existir un servidor SSH ejecut´ndose en el lado remoto. poco a a a poco se est´ haciendo m´s popular. No hay que confundir SSH con SSL. Cisco est´ instalando SSH en sus enrutadores.1. Aunque SSH no est´ tan difundido como Telnet. pero cuanto m´s lo hagamos. algunas versiones anteriores o a ten´ fallos en su implantaci´n de protocolos criptogr´ficos y son susceptibles de ataques. 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. mientras que SSL est´ dise˜ado principalmente para las o a n comunicaciones Web. 11. Aunque ambos realizan la misma a funci´n. sufre esta deficiencia. Al utilizar esta familia de programas en lugar de sus hom´logos m´s a o a antiguos. 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 puede utilizarse para crear un t´nel con otros protocolos entre e u m´quinas. SSH funciona con cualquier protocolo. la herramienta de copia remota. 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. es est´ndar de cifrado Web. Por lo tanto. mientras que SSH es opcional. 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. Cliente OpenSSH Para acceder al sistema remoto con SSH. a o o o esto lo hace utilizando certificados digitales para autenticar a los usuarios. un reemplazo seguro para RPC. Debemos asegurarnos de estar utilizando una versi´n 3. Despu´s pueden iniciar una sesi´n sin ning´n problema. que impide la suplantaci´n de identidad.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. ıan o a . al menos que les sean incomprensibles. los ladrones pueden robar nuestras credenciales de registro con un sniffer de red (escucha clandestina de paquetes de red). todo el que est´ escuchando su conexi´n o o e o obtiene un sonido aleatorio.

Esto puede ser util si tenemos u ´ un cortafuegos que imposibilita las comunicaciones en n´meros de puertos inferiores. Para determinar si ya est´ instalado. El cliente se encuentra integrado en la mayor´ de los sistemas operativos a ıa Linux actuales. aunque puede que tengamos que seleccionar esta opci´n al instalar el sistema.example.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. o o 11.2. tendr´ o ıamos que escribir: $ssh josan@web. ya que el c´digo se est´ mejorando ´ o o a constantemente y los algoritmos se est´n ajustando. $ssh -l josan web.example.178 Servidor Linux para conexiones seguras de una LAN a Internet es recomendable asegurarse de tener la utima versi´n disponible. Se puede utilizar para crear un t´nel para cualquier servicio a trav´s de un canal cifrado u e entre servidores. Los clientes FTP y Telnet normales no se a conectar´n a un servidor SSH. o a Opci´n o -c protocol -p port# -P port# -v -q: -C: Si queremos personalizar nuestras conexiones. 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.com Tambi´n podemos utilizar. lo a que normalmente significa un n´mero por encima de 1024. o En la tabla 11. ın .com utilizando el nombre de inicio de sesi´n de josan. El archivo de configuraci´n del cliente es /etc/ssh/ssh config. o a ´ como las telef´nicas. u ´ Muestra la salida larga. Util para la depuraci´n o Informa en modo silencioso. 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. tendremos que instalar el servidor para permitir a a las conexiones de su m´quina a trav´s de SSH. para registrarse en el servidor Web denominado web. Si no se est´ ejecutando.1.com. PUde ser util para conexiones demasiado lentas. pero es mejor tener un procesaro m´s potente para realizar la como a presi´n o ralentizar´ mucho el rendimiento. escribimos $ps y comprobamos si se a est´ ejecutando el proceso sshd. en el directorio /etc/ssh encontraremos los archivos de configuraci´n del servicio SSH. a e Jose Antonio Escart´ Vigo.com para iniciar la sesi´n.example.example. El servidor o SSH es normalmente opcional. Tambi´n se puede utilizar: e $ssh login@hostname Por lo tanto y a modo de ejemplo. Junio 2005. a SSH tiene un n´mero de usos realmente interesantes distintos a asegurar un inicio de sesi´n en un u o sistema remoto. el servidor supondr´ que el nombre del usuario es igual que el del a inicio de sesi´n del sistema. Si simplemente e o escribirmos $ssh web.1 podemos encontrar el resto de opciones de SSH: Cuadro 11. cdontrario del modo largo Utiliza compresi´n del tr´fico cifrado.

Para ello hay que escribir el siguiente comando: ´ #ssh make-host-key 4. debemos tener SSH ejecut´ndose en ambos extremos de la conexi´n. 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. Antes de poder utilizar un servidor SSH tiene que generar sus distintas claves. Para realizar o o ıo esta tarea. o 1. Si se desea ejecutar sshd autom´ticamente al inicio (opci´n muy recomendable). tambi´n e se puede utilizar para configurar un t´nel entre dos m´quinas para cualquier aplicaci´n. 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. 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. El valor predeterminado es aceptar conexiones de tipo SSH1 y SSH2. Tambi´n es posible facilitar la configuraci´n mediante un m´dulo para la herramienta de administraci´n e o o o web Webmin. hay que a o colocar dicha l´ ınea al final de un archivo al estilo de rc.local de otras distribuciones (v´ase ap´ndice e e D para componer este tipo de archivos). 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. El archivo de configuraci´n a o para el servidor es /etc/ssh/sshd config. o 3. las personas que intenten conectarse con su sistema tendr´n que cambiar a manualmente el n´mero de puerto en sus clientes SSH. Esto proporciona un identificador unico para las claves de servidor. Comunicaciones seguras Pasemos a describir el proceso de instalaci´n del servidor de SSH. Lo primero es instalar el paquete si no lo tenemos en el sistema: #apt-get install openssh-server-udeb 179 2. ın . 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. Su valor predeterminado es 22. Estas no son las mismas claves que las o claves del servidor generadas en la instalaci´n. u Protocols: Le indican al servidor los protocolos SSH que debe aceptar. Hostkey: Claves para aceptar conexiones de clientes. Junio 2005.Cap´ ıtulo 11. mayor de 1024. 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. Podemos crear u a o una conexi´n segura entre dos servidores con la opci´n de puerto de env´ integrada en SSH. Si lo cambiamos. proporciona la ubicaci´n de las claves o ´ utilizadas para generar la autenticaci´n de clientes.

La opci´n -N le indica a SSH que no intente iniciar la sesi´n. . ın . s´lo mantener la conexi´n abierta para o o o o el tr´fico enviado.168.local como se especifica en la secci´n D.1 -N & Jose Antonio Escart´ Vigo.168. Junio 2005. . .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. ıos e u a Tambi´n podemos tener varios puertos al mismo servidor.0. 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. .180 Servidor Linux para conexiones seguras de una LAN a Internet Figura 11.0. .1 -N &.0.1 -N &.168. . 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. 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. 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. como es nuestro caso: e #ssh -L 5000:localhost:25 -L 5001:localhost:80 192.

Junio 2005. los datos cifrados pueden estar sujetos a ataques por la fuerza en los que se prueban todas las combinaciones posibles de claves. Esta forma de cifrado utiliza una clave secreta. o cifrado de secreto compartido. Comunicaciones seguras 181 Como se puede observar. Martin Hellman y Ralph Merkle o inventaron la criptograf´ de calve p´blica. Tipos de cifrado Criptograf´ sim´trica ıa e El primer tipo de 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. Al final. puede leer el mensaje. Tardaron algunos a˜os. pero Diffie. a 11. SSH funciona extraordinariamente bien para crear una conexi´n segura entre o dos m´quinas para casi cualquier protocolo. un c´digo que proteja estos datos durante semanas o o o meses est´ bien. e a Normalmente se cree que la longitud de la clave debe ajustarse para mantener seguros los datos durante una cantidad razonable de tiempo. o Criptograf´ asim´trica ıa e Una revoluci´n en el cifrado fue la iniciada cuando Whitfield Diffie. tambi´n u e conocido como Criptograf´ asimetrica. siempre que la utilidad de la informaci´n para un intruso expire en un breve a o periodo de tiempo.2. 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. Estaban tratando de resolver el antiguo problema del intercambio de clave. e denominada secreto compartido. Una de ıa e a n las claves se hace p´blica y otra sigue siendo privada.2. 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. denominado criptograf´ sim´trica. La persona que se ıas encuentra en el otro extremo necesita la clave compartida para desbloquear los datos (el algoritmo de cifrado). ser´ un gran avance en la criptograf´ ıa ıa. Sab´ que si resolv´ el problema del intercambio ıa ıa de claves. El mensaje lo ciframos con la clave p´blica del u u Jose Antonio Escart´ Vigo. ¿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. Sin embargo. ın . (En realidad.Cap´ ıtulo 11. pero finalmente consio n guieron crear un sistema denominado Cifrado de clave p´blica (PKE. 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. ıa La criptograf´ asim´trica utiliza un cifrado que divide la clave en dos claves m´s peque˜as. Criptograf´ y cifrado ıa Hoy en d´ la solidez del cifrado normalmente se mide por el tama˜o de su clave. Independientemente ıa n de la solidez del algoritmo. utilizar algoritmos de cifrado m´s d´biles o longitudes de clave m´s cortas para a e a algunas cosas est´ bien. Hellman y Merkle o fueron los primeros en publicarla en 1976). el tiempo para romper la clave a la fuerza se mide en o milenios. para cifrar los datos en un galimat´ inteligible. el cifrado se puede romper. Por lo tanto. Public Key Encription). se ha ıa e estado utilizando desde la ´poca de los antiguos egipcios. Si el elemento es muy local. El problema que surge con este m´todo es que tenemos que comunicar la clave secreta de una fore ma segura al destinatario pretendido. 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. Sin embargo. 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. 11. Si nuestro enemigo intercepta la clave. Se han inventado todo tipo de sistemas para intentar solucionar esta fragilidad b´sica. Para la mayor´ ıa de los c´digos modernos con longitudes decentes.1. Diffie se asoci´ con Martin Hellman y Ralph Merkle. 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. Podemos cambiar la clave y los resultados del cifrado. como las comunicaciones del campo de batalla o la informaci´n diaria sobre las acciones. ıan problema del intercambio de clave.

que no tiene que mantenerse segura (de hecho. combinan los dos tipos de criptograf´ Utilizan primeramente criptoıa. lo unico que conocemos es ese peque˜o s´ ´ n ımbolo de candado SSL que se muestra en nuestro explorador para sentirnos seguros. 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. o Jose Antonio Escart´ Vigo. o La velocidad de adopci´n era lenta y su empresa estuvo a punto de quebrar. 11. Formaron una empresa que empez´ a regular su sistema. otras funciones de un solo sentido funcionan bien para este tipo de aplicaci´n. Este puede descifrarla a continuaci´n con su propia clave privada. 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. Junio 2005. cifrar el mensaje y comunicar posteriormente de alguna forma dicha clave a la otra parte. Al utilizar la clave p´blica del destinatario. Existen muchos algoritmos de cifrado. Nuestra transacci´n se cifra sin tener que dar ni obtener una clave secreta y todo se o produce en segundo plano. El resto es historia y ahora RSA es el algoritmo de cifrado de clave p´blica m´s utilizado. hace muy pocos a˜ os se ha conseguido desarrollar un algoritmo que resuelve el problema n de si un n.182 Servidor Linux para conexiones seguras de una LAN a Internet ´ destinatario. u Normalmente la criptograf´ asim´trica se implanta mediante el uso de funciones de un sentido. 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. 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. Adi Shamir y Leonard Adleman. que necesitan un tiempo o a o a exponencial para su resoluci´n). Diffie u a y Hellman finalmente lanzaron una aplicaci´n pr´ctica de su propiedad. 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. ı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. 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. protocolos y aplicaciones diferentes basadas en estos dos tipos principales de cifrado. el comercio electr´nico no existir´ tal y como existe actualmente si no o ıa existiese la criptograf´ de clave p´blica.2. en tiempo de computaci´n polinomico. a Poco despu´s del lanzamiento de Diffie.2. hasta que lleg´ el momento o o de aprovechar el emergente campo comercial de Internet con una empresa. Utilizamos su clave p´blica. Sin embargo. es la descomposici´n en factores de n´meros primos u o o u grandes. haciendo que cualquier tipo de comunicaci´n basada en este tipo de algoritmos resultase insegura. o Afortunadamente. ya o a a o que tiene un coste computacional mucho mas bajo. De esta forma podemos publicar nuestra clave p´blica. En ıa e t´rminos matem´ticos. como los o c´lculos sobre curvas el´ a ıpticas o el c´lculo de logaritmos inversos sobre un campo finito. por sus nombres: o a ıa. graf´ de clave p´blica para acordar una clave sim´trica aleatoria.o tiene factores. pero s´lo util para intercambios o a o ´ de clave. o 2 Esto no es algo descabellado. Una funci´n ıcil e o com´n de un s´lo sentido utilizada actualmente. 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. se publican en repositorios u como si fueran una gu´ telef´nica). derivada a partir de nuestra clave u privada. Est´ndares generales a El est´ndar de cifrado de datos (DES. La diferencia es que nadie necesita la clave privada de nadie para enviar un mensaje seguro. u o Ronald Rivest. 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 ). entonces peque˜a denominada n Netscape. sabemos que s´lo esa ıa o u o persona puede descifrarlo utilizando su propia clave privada. Las siguientes secciones explican algunos de estos tipos. ıa u Por lo general las aplicaciones. Este sistema permite que dos entidades se comuniquen con seguridad sin ning´n intercambio anterior de claves. Como usuarios. cifrando un mensaje con nuestra clave p´blica para poderlo descifrar con nuestra clave u privada. Pensado originalmente o para se pr´cticamente inquebrantable en los a˜os setenta. una tarea muy dif´ de llevar a cabo al rev´s para determinar la clave privada. Es f´cil multiplicar dos n´meros primos y obtener un producto. u a compra segura. dar´ al traste con el mecanismo de cifrado de claves p´blicas o o ıa u actual. Hellman y Merkle. Y lo mismo pueden hacer o por nosotros. mientras que RSA puede realizar la autenticaci´n y el no reconocimiento. Evidentemente.

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

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. 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. Los suministradores de ıa hardware se aferraron a ello. IPsec Para solventar los problemas de IPv4 se desarrollo una implantaci´n de seguridad para IP. Programas como SSH y Nessus pueden utilizar certificados para la autenticaci´n. Adem´s. o creados y firmados localmente. se ha desarrollado un nuevo est´ndar IP denominado o e a IPv6. Las entidades de certificaci´n descentralizan su misi´n en entidades de certificaci´n locales en las que o o o confian.net a a o Cuando los usuarios externos reciben datos. o Normalmente. convirti´ndose IPsec poco a poco en un est´ndar de hecho para crear VPNs e a en Internet. 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.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. En Catalu˜a esta entidad es la Agencia Catalana de certificaciones. ıa u Se utilizan principalmente en los sitios de comercio electr´nico. n La versi´n 4 de IP (IPv4).4. Protocolos de cifrado Un hecho bien conocido es que el protocolo IP tal y como se dise˜o originalmente no era muy seguro. n 11. por o a lo que el despliegue de IPv6 esta siendo bastante lento. Cuando han “certificado” que nuestra informaci´n es correcta. no proporciona o o ning´n tipo de autenticaci´n ni confidencialidad. En resumen. denominada o IPsec. que no requer´ cambios importantes en el esquema del direccionamiento. Obtener un certificado de VeriSign o de una de las empresas autorizadas es como si respondieran por nosotros. y adjunta un certificado. Generalmente. Si podemos descifrar el certificado con su clave publica. sin regulaci´n de ningun o tipo. incluyendo los URL que vamos a utilizar para el certificado y la “firman” digitalmente o cifr´ndola con su clave privada. Muchos a ataques de Internet se basan en esta inseguridad b´sica de la infraestructura de Internet.2. 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 servidor Web o cualquier programa podr´n utilizar este a e a 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. los certificados se unen a un dominio determinado. la empresa que adem´s se encarga del sistema de nombres de dominio en Internet. El uso de una autoridad de certificados o firmas se considera el u m´todo m´s seguro de los dos. sino una estructura para cifrar y verificar paquetes dentro del protocolo IP. Existen varias organizaciones de este tipo. Junio 2005. podremos suponer e a razonablemente que el sitio web pertenece a dicha organizaci´n. Para proporcionar a autenticaci´n y confidencialidad a trav´s del cifrado. no emitir´n un certificado hasta que verifiquen la informaci´n incluida en ´l. Despu´s. n En su p´gina web podemos encontrar m´s informaci´n: http://www. a La implantaci´n completa del est´ndar IPv6 requiere actualizaciones de hardware a amplia escala. a pueden utilizar la criptograf´ de clave p´blica para descifrar el certificado y verificar nuestra identidad. Mientras no se acabe de implantar existen una serie de protocolos que nos permiten tener una cierta seguridad. No es un algoritmo de cifrado espec´ ıfico. cogen o o esta informaci´n. Estas organizaciones a han sancionado a otras muchas empresas por ofrecer certificados de su parte. pero tambi´n se utilizan en cualquier otra o e forma de comunicaci´n. CATCERT. como una p´gina web del servidor. ın . bien a o e por v´ telef´nica o bien por otro medio de documentaci´n en papel. 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. como un contrato corporativo en el ıa o o que se pide autenticaci´n en persona. utilizado por casi todo el mundo de la comunicaci´n con IP. entre ellas VeriSign. Pueden ser emitidos por una entidad central. Puede utilizar diversos algoritmos y puede implantarse total o parcialmente. 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.

Autentication Heae o o o der). o Historia del PGP Phil Zimmerman es un programador muy implicado en los derechos humanos. ın . En PPTP se han descubierto algunos fallos importantes que limitan su aceptaci´n. 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. a 3Com y otras grandes empresas que proporcionan cifrado. la parte a o del servidor.2. Aunque se utiliza frecuentemente en dispositivos de cifrado basados en hardware. Otra ventaja es que VPN puede controlarse y a administrarse desde pocos puntos centrales. 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. todo el paquete (encabezados incluidos) se encapsula y se cifra. aunque puede utilizarse en cualquier tipo de comunicaci´n TCP. parec´ o ıa una admisi´n t´cita que IPsec hab´ ganado como nuevo est´ndar de cifrado. Esta funci´n se denomina encabezado de autenticaci´n (AH. los encabezados se env´ intactos. Cuando Microsoft implemento IPsec en Windows 2000. ıa 11. La mayor´ de las personas ni siquiera se dan o ıa cuenta de que SSL se est´ ejecutando en segundo plano. Podemos elegir descifrar la carga util pero no ejecutar ıa ´ un AH ya que puede ralentizar el procesamiento. Cuando el paquete llega a e su destino. ´ 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. en el que esta basado OpenPGP.Cap´ ıtulo 11. Comunicaciones seguras 185 tambi´n autenticaci´n. 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. Con AH. OpenPGP: Aplicaci´n de cifrado o El estandar PGP (Pretty Good Privacy o privacidad bastante buena). o Originalmente lo dise˜o Netscape para que su explorador ayudase a la simulaci´n de comercio electr´nico. se coloca en otro u paquete y se remite al procesador VPN central. sabr´ que a el encabezado se ha alterado de alguna manera durante el tr´nsito. 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. 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. 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). Normalmente. En modo t´nel. Normalmente s´lo autentica un extremo. un hash se crea a partir del encabezado IP y ´ste pasa adelante. se crea un nuevo hash a partir de cada encabezado. AH tambi´n puede estropearse en algunos entornos con e NAT o cortafuegos. autenticaci´n en ambos extremos e integridad de mensajes utilizando o certificados. se creo para proteger la informaci´n de los usuarios ante miradas indiscretas. n o o SSL proporciona cifrado de datos. PPTP sigue o a ıa a siendo un protocolo util y econ´mico para configurar VPN entre los PC m´s antiguos de Windows. El inconveniente es que requiere un hardware dedicado en ambos extremos para abrir el t´nel. Los extremos finales descifran los paquetes y despu´s los e env´ al IP correcto. Existen otros dos modos de operaci´n diferentes en los que podemos ejecutar IPsec: en modo t´nel o o u en modo transporte. Podemos seguir ejecutando AH a cuando utilicemos el modo de transporte y verificar la direcci´n de origen de los paquetes. u En modo de transporte s´lo se cifran las cargas utiles del paquete. su uso en software es relativamente limitado. lo que nos proporciona un alto nivel de a garant´ de que el paquete proviene de donde dice.5. Si no es comparable al enviado. ya que la mayor´ de usuarios finales no tienen certificados. o ´ ıan lo que produce un despliegue m´s facil y requiere menos infraestructura. Junio 2005. Sin embargo.

distribuy´ libremente o o o o el software por Internet para que se distribuyese por todas partes. se puede establecer una fecha de finalizaci´n. . Phil pretend´ buscar una empresa ıs.skr u Si se han de crear: 1. hay que ejecutar algunas sentencias apt: #apt-get instal gnupg.cypherspace. Generalmente no se desea que las claves expiren. comercial o personal. GnuPG probablemente no sea la mejor opci´n para usuarios no t´cnicos. 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. Podemos aumentar el tama˜o ıa o u n hasta 2. . ´ n 3. cuando el gobierno inici´ su persecuci´n. . ıa que vendiera su innovaci´n. por lo que no tiene los bonitos complementos que ofrece la versi´n comercial de PGP.048 para una seguridad mucho mas fuerte. Programa GnuPG #apt-get instal gpgp. Escribimos: #gpg --gen-key y seguimos las instrucciones de pantalla GnuPG pide el tama˜o de bits de sus claves. Atenci´n: Es muy importante conservar copias de seguridad del par de claves en un lugar o seguro. . n Para comprobar la versi´n: o $gpg --version Si no lo tenemos instalado. 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. Si tiene separadas la clave p´blica y privada. la agencia de la informaci´n de los Estados Unidos. no lo ve´ ıses a n o ıa de esa forma. el formato de archivo suele ser pubring. Deseaba proporcionar a las o personas una forma de proteger y garantizar su derecho constitucional a la privacidad. No obstante hay o que tener cuidado. 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. NSA.org/openpgp/. El inconveniente es que se trata de una herramienta de l´ ınea de comandos. 2. pero si tiene un caso especial en el que s´lo o utilizar´ esta clave durante un tiempo limitado. 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. Se pueden encontrar una lista de o todas estas implementaciones de PGP en http://www. . Este software lo denomin´ Pretty Good Privacy (PGP). interfaz Gnome para GnuPG Crear pares de claves Si ya las tiene creadas y quiere importarlas. una de las implementaciones bajo licencia GPL basada en el estandar OpenPGP.pkr y secring. 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. asi como ampliarla o o insertarla como queramos. algo as´ como una Privacidad bastante buena. Sin embargo. a o Por ultimo se pide que se introduzca una contrase˜a que sirva de frase de paso. #gpg --import path/filename. Este software pod´ salvar literalmente la vida de algunas ıa personas. en caso de perderlas. . Junio 2005. Tampoco cre´ que su propio gobierno no observara sus datos personales cuando se desplazaban ıa por redes interconectadas. los datos cifrados se no se podr´ recuperar. GnuPG: GNU Privacy Guard En el servidor he utilizado GnuPG. ın . El predeterminado es 1. Sin embargo. que generalmente se n considera suficiente para una criptograf´ s´lida de clave p´blica.186 Servidor Linux para conexiones seguras de una LAN a Internet a los brutales regimenes que los controlaban.024. ıan Jose Antonio Escart´ Vigo. 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. a no ser que o e a˜adamos su propia interfaz (Gnome dispone de una).

mit. Despu´s podemos utilizar este certifie cado para revocar nuestra clave de los servidores p´blicos.net. Junio 2005. 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. a Crear un certificado de revocaci´n: o 187 Una vez creadas las claves. 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. 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. certserver. Jose Antonio Escart´ Vigo.com y usa.Cap´ ıtulo 11. . . como por u ejemplo: pgp.keyserver. tambi´n podr´ hacerse con el certificado de revocaci´n. 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. En el home del usuario se crea un directorio oculto . Este certificado hay que eliminarlo del disco y guardarlo en lugar seguro. Para crear un certificado: u u $gpg --output revoke.asc --gen-revoke user Donde se debe reemplazar user con la frase secreta de dicho usuario. 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. nos dara la lista de claves instaladas en el sistema. Comunicaciones seguras $gpg --list-keys. ya que si alguien se hace con ´l.edu.gnupg donde se almacenar´n los archivos. asignada cuando generamos el par de claves. .pgp. ın .

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

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

.

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

4 ms 12. por caminos impensables y lejanos.es ping statistics --6 packets transmitted. 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.83.1.4/130. 0% packet loss round-trip min/avg/max = 61. Env´ tantos paquetes como puede.192 Servidor Linux para conexiones seguras de una LAN a Internet Opci´n o -c count -f -n -s size -p pattern Cuadro 12.7: icmp_seq=4 64 bytes from 147. 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. La salida puede indicarnos si se trata de un usuario dom´stico o e Jose Antonio Escart´ Vigo.7: icmp_seq=2 64 bytes from 147.83. ´ Un ejemplo de este comando podr´ ser el siguiente: ıa # ping www. y as´ sucesivamente hasta llegar a nuestro objetivo.fib.fib.83. Util ıa o una m´quina o un enrutador.7: icmp_seq=0 64 bytes from 147. que pueden resultar utiles. B´sia o o a camente. mostr´ndonos el trazado ı a virtual (la ruta) que siguen los paquetes.1 incluye los modificadores y las opciones adicionales para el comando ping.8 ms ttl=241 time=61.es PING www. Irregularmente.41. A continuaci´n el siguiente paquete se a o establece con un TTL de 2.5 ms --.es (147.7: icmp_seq=5 data bytes ttl=241 time=66. 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. 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.41. 6 packets received.upc. establecen la configuraci´n TTL (tiempo de vida) del paquete en uno. 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”.2. 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. por defecto es infinito u ´ Flujo de los ping.83. pero cuando env´ fuera el primer ıan paquete.3 ms ttl=241 time=130.83.41. Podemos rastrear la ruta de la direcci´n IP y o saber varias cosas sobre dicha direcci´n. ın . 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.7): 56 64 bytes from 147. los pings que rastrean rutas (tracerotue) son anfitriones.83.8 ms ttl=241 time=62.4 ms ttl=241 time=103.7: icmp_seq=1 64 bytes from 147.7: icmp_seq=3 64 bytes from 147.41.83.41.41. 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. Junio 2005.1: Opciones del comando ping Descripci´n o Establece un n´mero de pings deteminado.0 ms ttl=241 time=76.upc.5/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.41. tan r´pido como puede. Tambi´n es util para probar ´ e ´ c´mo responde una m´quina a un est´ o a ımulo ICMP inusual La tabla 12.www.upc.

o Para ver como funciona podemos ejecutar el siguiente ejemplo: # traceroute www.AU Registrar: MELBOURNE IT.190. Whois Server: whois.146) 47.tucows.990 ms 129.0. Tambi´n podemos utilizar el comando whois. con el sitio web de la empresa podemos encontrar un n´mero de telefono u o una direcci´n de correo y quejarnos.com and .com Server Name: WWW.fib.3.0. 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).0.cesca.GOOGLE.es (147.833 ms 51. Server Name: WWW.com Referral URL: http://www.480 ms 0.GOOGLE. Herramientas de seguridad 193 o de un usuario que se encuentra dentro de una empresa.enom.net domains can now be registered with many different competing registrars.335 ms 52.0.upc.net (213. para buscar contactos t´cnicos e e espec´ ıficos para la empresa y organizaci´n.internic.732 ms 47. 25 May 2005 08:39:49 EDT <<< Jose Antonio Escart´ Vigo. Este comando es util para ataques que provienen tanto de dentro de las redes de empresas como de los ´ ISP. o 12. LTD.0.melbourneit.98.986 ms 5 213. ın .COM.408 ms 2 213.190.net for detailed information.22) 48.242.392 ms 6 montseny-catnix.BR Registrar: ENOM.184.452 ms 61. Traceroute nos ofrece mucha informaci´n para el seguimiento de una IP.net (193.COM. Junio 2005.com es el nombre del dominio sobre el que estamos buscando informaci´n.459 ms 0.opensrs. De cualquier modo.0.GOOGLE.es traceroute to www.435 ms 64. D/B/A INTERNET NAMES WORLDWIDE Whois Server: whois. o a Su sintaxis es: $whois domain-name.242 (213.0. podemos averiguar qui´n es la persona responsable de dicha red y comunicarle e nuestro problema. 30 hops max. cu´l es su ISP (para poder enviarle una queja a sobre el abuso).254.com Server Name: WWW.0. INC. pero con el tiempo se aprende a reconocer mejor el significado de las abreviaturas.COM.254.3 Domain names in the . 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.168.532 ms 51.184.com.GOOGLE.248.1) 0.net Referral URL: http://domainhelp.099 ms 8 * * * Como se puede observar.101 ms 7 upc-anella. donde domain-name.TR Registrar: TUCOWS INC.enom.108 ms 45.es (84.462 ms 3 213.upc. Los ISPs habitualmente finalizan su contrato de suministro con o el cliente malintencionado.18) 63. .530 ms 66.344 ms 47.com >>> Last update of whois database: Wed.18.1.7).COM. la lectura de traceroute es mas un arte que una ciencia. .41. Whois Server: whois.Cap´ ıtulo 12. pero por lo menos podemos probar. Con esto podemos averiguar qui´n o e es el propietario de un dominio.enom.MX Registrar: ENOM. INC.252) 46. .016 ms 116.com Server Name: WWW.com Referral URL: http://www. Whois Server: whois.fib.83. o Podemos observar esto en el siguiente ejemplo: $whois www.telefonica-data. Esta soluci´n no siempre es muy pr´ctica.nuria.850 ms 4 tbvia1-tbest1-1.catnix. Si identificamos el ISP.com Referral URL: http://www.com Whois Server version 1. Go to http://www.2) 61.google.22 (213.252 (213.88. 38 byte packets 1 (192.enom. si es el origen de una intrusi´n o o o un ataque.melbourneit. Whois El comando whois es util para intentar localizar el contacto de alguien que est´ causando problemas ´ a en nuestra red.242) 47.

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

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. por lo que puede que tengamos que preguntar por registros espec´ ıficos. al sistema remoto. Finger Finger es un antiguo comando Unix que ya no se utiliza pero que se sigue ejecutando en muchas m´quinas como servicio heredado. ın . conocidos como alias o Devuelve cualquier informaci´n que puede generarse en el dominio. o o su plan de trabajo e incluso proyectos en los que este trabajando actualmente. La o sintaxis ser´ la siguiente: ıa $finger user@hotname. Adem´s a esto se une que muchos administradores se les olvida desinstalarlo o no saben c´mo hacerlo. Es util para o ´ contactar con un administrador Devuelve cualquier anfitri´n CNAMED. El resultado del finger.0 No mail. Por ultimo presenta una lista de las a ´ estaciones y de donde provienen (si son locales o remotas). un usuario malicioso puede intentar secuestrar una de esas sesiones inactivas. As´ se genera una lista de todos ı los usuarios conectados actualmente. Junio 2005.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. Tambi´n podemos hacer consultas sobre todos los que esten conectados con la siguiente opci´n: e o $finger -l Jose Antonio Escart´ Vigo.5.1. pero otras veces podemos encontrar su correo electr´nico. En este caso no hay demasiada informaci´n.2: Opciones del comando dig Descripci´n o Intenta obtener todo el archivo del archivo del dominio o de la “zona”.Cap´ ıtulo 12. podr´ ser usada e o ıa por una persona malintencionada para conseguir informaci´n m´s relevante mediante ingenier´ social. acerca de informaci´n de sus usuarios.com Tambi´n podemos especificar una direcci´n IP como dominio. Devuelve cualquier registro “A”. 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. pero todav´ existen muchos enrutadores que lo incluyen y algunos Unix lo mantienen por deıa fecto. 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. Herramientas de seguridad 195 Opci´n o AXFR A MX CNAME ANY Cuadro 12. o a ıa Otro uso de finger es enviar el comando sin un nombre de usuario. 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.example. No Plan. Algunas veces funciona o cuando falla AXFR 12. Actualmente algunos servidores se han configurado para no admitir transferencias de archivos de zona. a o El comando finger permite consultar. ıan La mayor´ de los administradores lo eliminan de sus sistemas porque es una fuente de brechas de ıa seguridad.

la soluci´n “denegar todo” es mucho mas seguro. Pol´ ıticas de seguridad En alg´n momento. e o Los siguientes pasos perfilan un proceso para la implantaci´n y funcionamiento de un cortafuegos. debido a la complejidad creciente y a la sofisticaci´n de los atacantes. 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. 12. Los cortafuegos. pueden ser unos mecao nismos de defensa insuficientes si no se han configurado correctamente. 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. 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. Este plan o a ´ o o documenta los procesos y procedimientos subyacentes para asegurarnos de que obtenemos un beneficio. ın . Una l´ ınea de configuraci´n err´nea o o puede negar la protecci´n que ofrece un cortafuegos. preferiblemente antes de instalar el cortafuegos.2. Asegurar estas defensas de primera l´ ınea es cr´ ıtico y debe ser una de nuestras primeras prioridades. 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. Despu´s de esto podemos activar el cortafuegos e y sentarnos a esperar las quejas. se sit´an en la parte en la parte superior del sistema operativo y por lo tanto. como la web y el correo electr´nico. pueden u ser vulnerables a todos los ataques normales a nivel de sistema operativo. o 12. debemos comentar por escrito u su proceso de actuaci´n. Los ataques pueden o provenir a trav´s de cualquier brecha que hayamos creado. pero sin instalar los procesos apropiados. Junio 2005. a e n a a no ser que se admita en la configuraci´n espec´ o ıficamente. 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. s´lo ıa o o porque optemos por esta soluci´n no significa que nuestra red sea totalmente segura.2. Por otra parte un cortafuegos solo nos protege de los ataques exteriores.2. Debemos de asegurarnos de que nuestros sistemas est´n vigilados y no depender del a cortafuegos para toda la seguridad de nuestra red. La instalaci´n de un cortafuegos est´ muy bien. Autom´ticamente bloqueamos todo el tr´fico. Esto nos ser´ muy util para planificar la instalaci´n y configuraci´n. Sin embargo. Se necesita mucha revisi´n y paciencia a la hora de ı o establecer las reglas. e o Jose Antonio Escart´ Vigo. Sin embargo.196 Servidor Linux para conexiones seguras de una LAN a Internet 12.1.2. Revisar y probar las reglas del cortafuegos peri´dicamente. contra ataques interiores no tiene nada que hacer. 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. puede que no o a est´ ofreciendo a la organizaci´n la seguridad prometida. Para la mayor´ de los sitios. Firewall o cortafuegos Forman la primera l´ ınea de defensa frente a los intrusos que quieren entrar en nuestra red corporativa.

. 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. el servicio lo proporciona el propio kernel. 1. a Instalar IPTables La mayor´ de los sistemas Linux con kernel 2. Es una herramienta muy eficaz. 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. o a Las opciones de IPTables se encuentran en: Networking-suport -> Networking-options -> Networkpacket-filtering. y normalmente se recomienda para usuarios que est´n e familiarizados con los cortafuegos y con el arte de configurarlos. IPTables Esta secci´n describe c´mo se configura un cortafuegos con IPTables.4 y posteriores. depende para que usemos IPTables necesitaremos m´s o menos.3.Cap´ ıtulo 12. al o a o menos al principio. Esta utilidad nos permite crear un cortafuegos empleando ıa comandos de nuestro sistema operativo. . que es la utilidad integrada en la o o mayor´ de los sistema Linux 2. por lo que no ıa a es necesario instalar ning´n programa adicional. Si es nuestro primer cortafuegos. u Para comprobar si lo tenemos instalado hay que ejecutar: $iptables -L. M´dulos b´sicos o a CONFIG NETFILTER CONFIG PACKET CONFIG IP NF CONNTRACK CONFIG IP NF FTP 2. ın . Herramientas de seguridad 197 12. tenemos a que recompilar el kernel. deber´ mostrar una lista con el conjunto actual de reglas. 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. pero compleja. . es mejor utilizar una de las herramientas de configuraci´n autom´tica disponibles para crear la configuraci´n.4 o superior tendr´n integrado IPTables. ıa Si tenemos problemas lo m´s probable es que no tengamos habilitado IPTables en el kernel. Junio 2005. Estas herramientas utilizan IPTables para crear un cortafuegos utilizando nuestras entradas. Sin embargo.2.

4 de los comandos IPTables. consulte el manual de IPTables escribiendo: $man iptables Jose Antonio Escart´ Vigo. 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. 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. 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. Junio 2005.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. En o o IPTables. rule-specification y extensions son una o m´s opciones v´lidas. estos canales se denominan tablas. La tabla 12. ın . Para obtener una lista completa e a de listados.198 3. Existen otros comandos y opciones pero ´stos son los m´s comunes.

Para o designar un rago de direcciones IP se usa la notaci´n est´ndar de barra o a oblicua. 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.0.168. Junio 2005.1 . o o 1. Se toman las siguientes premisas: Se supone que la LAN local es 192. Esta opci´n se utiliza cuando se est´ realia o a zando una Traducci´n de direcci´n de red (NAT.0. b´sicamente “rebot´ndolas” de nuevo al origen a a SNAT NAT est´tica.168.3: Especificaciones de reglas de IPTables Descripci´n o Especifica una determindada direcci´n de red origen a comparar. ın . Convierte la direcci´n de origen en o otro valor est´tico a DNAT NAT din´mica. Network o o Address Translation). que situaremos dentro de un script ejecutable. tcp. Jose Antonio Escart´ Vigo. 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. Para desigo nar un rago de direcciones IP se usa la notaci´n est´ndar de barra oblicua.Cap´ ıtulo 12. 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. 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. que es el “conducto” principal para ı cualquier paquete que desea pasar por el cortafuegos. 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. Los tipos de protocolo v´lidos son icmp. que la interfaz eth1 es la conexi´n LAN local y que la interfaz eth0 es la conexi´n WAN o Internet. 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.254.192. 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.

El otro tipo de ataque se lleva a cabo enviando una gran cantidad de paquetes a las direcciones LAN para sobrecargar la red.0.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. es necesario que se escriba lo siguiente expl´ ıcitamente: iptables -A FORWARD -f -j ACCEPT 5. Existen dos tipos de ataques comunes que debemos bloquear en seguida. tambi´n podiamos ı a e haber usado: iptables -F. eliminando b´sicamente la configua raci´n de nuestro cortafuegos. ataca sobre el protocolo de transmisi´n de archivos. ning´n paquete deber´ provenir de una interfaz de o o u ıa no confianza con una direcci´n de fuente privada e interna. La segunda declaraci´n retira cualquier o o paquete del protocolo ICMP que provenga de la direcci´n exterior a la interior. afectando a todas las cadenas a la vez.0.168. Uno es el conocido como spooofing. Si no se especifica ninguna cadena. Podemos bloquear o este tipo de ataques con dos sencillas declaraciones.168. 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. 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.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.0/24 -i eth0 -j DROP iptables -A FORWARD -p icmp -i eth0 -d 192.0/24. iptables -A FORWARD -s 192.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. se eliminan todas las cadenas Establece la pol´ ıtica para la cadena especificada en policy 2. Junio 2005. LAN incluso aunque tengamos idrecciones IP privadas. Para aceptar paquetes fragmentados en IPTables. Por definici´n. que se produce cuando alguien falsifica los encabezados de los paquetes IP para que parezcan paquetes externos que tienen direcciones internas. As´ alguien puede enrutar hacia nuestra ı. 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. 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.168. Este tipo de ataque se denomina ataque smurf. ın .0. 3. 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.

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

0. Si observa paquetes a rechazados repetidamente de la misma red o direcci´n.3. Servidor Linux para conexiones seguras de una LAN a Internet Tambi´n podemos especificarlos para los paquetes ICMP.202 10.0/24 --sports 0.ACK ACK -j ACCEPT iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192. pero s´lo determinados tipos como la contestaci´n de eco hacia o o el interior.0.smtp --tcp-flags SYN.0.0. 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.0. haciendo un DROP de los ’echos de icmp’.0 --dports 8.0/24 --dports www.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.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 .168. Junio 2005.0. incluso aunque no exista ning´n u problema.3.168.0.0.0.3.OMITIDO .0.0/24 --dports smtp --syn -j ACCEPT # Punto 8 iptables -A FORWARD -m multiport -p tcp -i eth0 -d 0.168. vamos a establecer el inicio de sesi´n para poder ver en los registros lo que se ha ´ o rechazado.0.168.11 -j ACCEPT Es mas simple si lo controlamos a la entrada.0 --dports www.0.0/24 --dports 0. as´ estas ı dos instrucciones no son necesarias. Lo que pretendemos es permitir todo tipo e de ICMP interno hacia el exterior.OMITIDO #iptables -A FORWARD -m multiport -p icmp -i eth0 -d 192.11 -j ACCEPT #iptables -A FORWARD -m multiport -p icmp -i eth1 -d 0.168. Por ultimo.0.0/24 --dports 192.0/24 --sports www.168.0. El siguiente c´digo es el ejemplo en un script. para evitar el punto 10 # Punto 6 iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192.smtp --tcp-flags SYN.ACK ACK -j ACCEPT # Punto 7 iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192. o Cuadro 12.0 --dports domain 0.0 --sports domain domain -j ACCEPT domain -j ACCEPT -j ACCEPT -j ACCEPT # Punto 10 .168.0.11 -j ACCEPT iptables -A FORWARD -m multiport -p icmp -i eth1 -d 0.0.3.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.0/24 --dports 0. algo que podemos conseguir con las siguientes instrucciones: iptables -A FORWARD -m multiport -p icmp -i eth0 -d 192. para tener una idea de los tipos de tr´fico que se han rechazado.168. 11. Es mejor revisar estos registros de vez en cuando.0.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.0 --dports 8. ın . puede que est´ siendo atacado.

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.192.0/24 ACCEPT tcp -. e o Jose Antonio Escart´ Vigo.0. basado en IPTables.168.smtp tcp flags:SYN. o Existen otros m´todos mas simples y r´pidos de crear un cortafuegos.anywhere ACCEPT tcp -.0.RST.anywhere ACCEPT udp -.16. Este proceso tambi´n se conoce como Traducci´n de direcci´n de red (NAT.0 .255.0.0 .255.anywhere ACCEPT tcp -.255 Al utilizar estas direcciones en nuestra LAN interna y tener una IP externa enrutable en nuestro cortafuegos.168.255 172. o u Cuando vuelve de nuevo. a a Para simplificar el m´todo utilizare el m´dulo Firewall para Webmin. 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. a Podemos proporcionar esta capa adicional de protecci´n f´cilmente con IPTables utilizando el enmascao a rado IP.0.255. Muchas herramientas crean las declaraciones del cortafuegos utilizando una interfaz gr´fica.0/24 192.0 192.0. estamos protegiendo con efectividad nuestras m´quinas internas ante el acceso desde el exterior.0/24 ACCEPT udp -. ın . Junio 2005.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.68.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. Podemos enviar determinados puertos a servidores internos para que no tengan una direcci´n IP p´blica. El encabezado IP interno se desprende en el cortafuegos y se reemplaza con un encabezado que muestra el cortafuegos como el IP de origen.smtp tcp flags:SYN. 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 udp -.168.168.anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination anywhere anywhere 192.0/24 0. ahora ya sabemos c´mo crear un cortafuegos b´sico.192.anywhere ACCEPT tcp -.0/24 anywhere 0.255.0 .10.ACK/ACK multiport dports smtp tcp flags:SYN.anywhere LOG icmp -.168.0.168. 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 -. se reservaron varios bloques de direcciones para su uso n en redes privadas. es decir. Los rangos de direcciones privadas son: 10.Cap´ ıtulo 12.0. Conclusiones Bueno. de forma autom´tica.smtp tcp flags:SYN. Network e o o Address Translation).31.0.172.0.RST.anywhere ACCEPT udp -.0.255 192.0. el cortafuegos recuerda el IP interno al que se dirige y vuelve a dirigirlo para una entrega interna.192.0/24 192. sin introducir comandos y e a tener que recordar la sintaxis.0.ACK/ACK multiport sports www.0.0 anywhere anywhere anywhere anywhere multiport dports www.0 LOG tcp -. Existen libros completos sobre la o u configuraci´n avanzada de cortafuegos y muchas listas de correo.ACK/SYN multiport dports www.0.anywhere LOG udp -.168. Se trata de una configuraci´n bastante o a o sencilla y las posibles variaciones son infinitas.

0.1. para la conexi´n: o Cuadro 12.com/squidman/Configuration%20Guide.conf.log cache_access_log /var/log/squid/access. 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.1/255.6: Ejemplo del archivo /etc/squid/squid. ın . Squid usara mucha mas que esa.255 acl Safe_ports port 80 443 210 119 70 20 21 1025-65535 acl CONNECT method CONNECT acl all src 0.ath. #Acuda a la FAQ para m\’as informaci\’on.168.conf #Sacado de http://debaser. acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY #La memoria que usara Squid.0/0.204 Servidor Linux para conexiones seguras de una LAN a Internet 12. logfile_rotate 10 redirect_rewrites_host_header off cache_replacement_policy GDSF acl localnet src 192.log #Cuantas veces rotar los archivos de bitacora antes de borrarlos.conf asi #como en http://www.255.0 Jose Antonio Escart´ Vigo.0/255.0.255.0 • En #Only allow cachemgr access from localhost. Squid: Proxy transparente Lo primero es tener el IPTables y el squid funcionando.0/255.html #Los puertos por los que escuchara nuestro Squid.1. cache_dir ufs /cache 250 16 256 #Lugares en los que iran los archivos de bitacora de Squid.cx/deal/manuales/Limitar-ancho-de-banda-COMO/html/install.168.0 acl localhost src 127.log cache_store_log /var/log/squid/store. cache_log /var/log/squid/cache. http_port 8080 icp_port 3130 #los cgi-bin no se cachearan.0.255. Lo configuramos para permitir el o acceso del proxy a nuestra red interna: • En #ACCESS CONTROLS : acl redInterna src 192.conf donde se limita el ancho de banda.visolve.255.255.0. cache_mem 16 MB #250 significa que Squid usara 250 megabytes de espacio en disco. Bueno. Con las opciones NAT de netfilter en el kernel. 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.html #Todas las opciones de este archivo se encuentran muy bien documentadas en el #propio squid.0.log cache_swap_log /var/log/squid/swap.3. Junio 2005.255. Para cargar el modulo realizaremos un apt: #apt-get install webmin-squid Ahora veamos un ejemplo del archivo /etc/squid/squid.0.

cgi al cgi-bin de su servidor web. #Puede utilizar ping.1. #Podra acceder a el una vez lo haya hecho introduciendo en un navegador #la direccion http://su-servidor-web/cgi-bin/cachemgr. delay_access 2 allow day delay_access 2 deny !day delay_access 2 allow magic_words2 #EOF Jose Antonio Escart´ Vigo.168 #Queremos limitar la descarga de este tipo de archivos #Ponga todo esto en una unica linea acl magic_words2 url_regex -i ftp .avi .exe . #Primera clase de retraso (1) de segundo tipo (2).168 que ya hemos puesto antes delay_access 1 allow magic_words1 #Segundo delay pool. aqui solo hablaremos de la segunda. rv:0. traceroute y demas herramientas para comprobar la #velocidad.vqf . delay_pools 2 #Primer delay pool #No queremos retrasar nuestro trafico local #Hay tres cases de pools. #Copie cachemgr. .gz . #(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.pl !.wav . #Eso significa que por lo general no tendra que configurar todos los #navegadores de sus clientes. .net !192. 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.excepto para las direcciones e IPs que comiencen por "!".tar. #cache_peer w3cache. Apuntaran a un servidor proxy [parent] que usara nuestro propio #Squid.ram . #Descomente las lineas que comienzan por "cache_peer" de ser necesario. en-US.icm.Cap´ ıtulo 12. aunque tiene algunos inconvenientes.pl !7thguard.rpm . No olvide cambiar el servidor por uno mas rapido para usted.mp3 .rm . Asegurese de que los puerto http e icp son los correctos. anonymize_headers deny User-Agent fake_user_agent Mozilla/5.9. Junio 2005. delay_class 1 2 #-1/-1 significa que no hay limites.edu. delay_parameters 1 -1/-1 -1/-1 #magic_words1: 192. #Cuidado! con el acl de abajo sus descargas se interrumpiran #a las 23:59. acl magic_words1 url_regex -i 192.html.org #No queremos limitar las descargas en nuestra red local.conf o a la #documentacion de http://www. Para una descripcion detallada acuda al archivo squid. #Queremos retrasar la descarga de los archivos mencionados en magic_words2.jpg y archivos similares porque por lo general #no consumen demasiado ancho de banda.0 (X11. delay_class 2 2 #Los numeros siguientes son valores en bytes..qt . #Queremos limitar el ancho de banda durante el dia permitiendo #el ancho de banda completo durante la noche. #Este es el proxy que va a usar para todas las conexiones.pl parent 8080 3130 no-digest default #.cgi cache_mgr your@email cachemgr_passwd secret_password all #Este es el nombre de usuario con el que trabajara nuestro Squid.6+) Gecko/20011122 #Para acelerar aun mas nuestra conexion ponemos dos lineas similares a las #de mas abajo.icm. #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.iso .. #No es buena idea usar un mayor #cache_peer_domain w3cache. Linux i686. U.edu. #Segunda clase de retraso (2) de segundo tipo (2).mpeg . 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.mov #No bloqueamos .zip . 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.squid-cache.rar .1 #Esto resulta util cuando queremos usar el Cache Manager. 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. ın . Lea la FAQ si quiere envitarlo.raw .168.mpg .gz ..mpe . #Si deja esto sin comentar no pasara nada peligroso.

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

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

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

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

e El cuadro 12. podemos utilizar la herramienta a de configuraci´n por web: Webmin. La opci´n verbal. Configuraci´n gr´fica de backups. 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. o a Lee un dump del archivo nom archivo. 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. 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.5. Por defecto es /tmp. Este modo es util para recuperar archivos individuales. Si no proporciona n esta informaci´n. restore ir´ al dump y los n a restaurar´. reintenta autom´ticamente en lugar de preguntar al usuario a si quiere probar de nuevo. ın . especialmente a ´ si no est´mos seguro en qu´ directorio est´n.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.4. o e Y para un restore completo desde la cinta /dev/st0. muestra cada paso del restore. Aunque restore es una herramienta de l´ ınea de comandos. Especifica el espacio de trabajo temporal (directorio) para el restore. restore se la pedir´. si perdemos el sistema de la unidad SCSI /dev/sda1 que contiene /home.9 muestra las opciones de l´ ınea de comandos de la utilidad restore. 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. sustituimos la unidad y lo recrear ayudandonos con mke2fs. puede recrear un sistema de archivos vac´ y restaurar todos los archivos y directorios del archivo dump. Cuadro 12.9: Opciones del comando RESTORE Descripci´n o Activa el modo interactivo de restore. por un fallo de disco). o En el caso de un error. ıo Configura el tama˜o del bloque de dump a tam bloque kilobytes. Junio 2005. ofrece un modo interactivo muy intuitivo que le mueve a trav´s de la estructura de directorios de la cinta. #mke2fs /dev/sda1 #mount /dev/sda1 /home #cd /home #restore -rf /dev/st0 12. visualizaremos cada paso que tome restore y entraremos en una sesi´n interactiva donde decidiremos qu´ archivos se restauran. a e a Reconstruye un sistema de archivos.

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

.

NIDS (Network Intrusion Detection System) Un sistema detecci´n de intrusi´n de red (NIDS. o 13. Incluso cuando o a funcionan correctamente. La mayor´ de los tipos de ataques tienen una apariencia muy distintiva a nivel TCP/IP. 13. permitiendo la introducci´n de tr´fico no deseado en nuestra red. cuando el atacante se encuentra en la red local puede hacer muy poco. Esta utilizaci´n de las firmas es n o muy similar a la forma en que funcionan los programas antivirus. 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. una de las ventajas principales de un NIDS ´ es cazar los ataques y la actividad sospechosa de or´ ıgenes internos. a a n alert´ndonos de ello cuando aparezca.1. sin embargo. Los cortafuegos pueden e estar mal configurados. 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.1.1. El cortafuegos nos proteger´ de muchos a ataques externos. y est´ permitido por las reglas. Lo que llega a los puertos del cortafuegos.Cap´ ıtulo 13 Sistemas de detecci´n de intrusiones o Los Sistemas de detecci´n de intrusiones (IDS. los cortafuegos normalmente dejan pasar alg´n tr´fico de aplicaci´n que puede u a o ser peligroso. Un NIDS puede comprobar dicho tr´fico a n a y marcar los paquetes sospechosos. o a a o Esta secci´n esta basada en el libro [How05]. . 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. Tipos de IDS Existen tres tipos diferenciados de IDS: NIDS: IDS de red. Un IDS puede ıa definir ataques bas´ndose en las direcciones IP. el contenido y cualquier n´mero a u u de criterios. Network Intrusion Detection System) puede protegero o nos contra los ataques que entran a trav´s del cortafuegos hasta la LAN Interna. 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. 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. los n´meros de puertos. 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. 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.

n n los intrusos internos no siempre son piratas inform´ticos que trabajan por la noche.2. el cerrojo de la puerta principal y el sistema de seguridad de nuestra red.1. 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.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. 13. nos avisar´. que s´lo pueden captar una actividad da˜ina cuando se define a o n expl´ ıcitamente. probablemente se convierta en una forma muy popular ıa a de detectar intrusiones. El problema con este u a a tipo de sistemas es que son muy propensos a los falsos positivos. un m´dulo gratuito para el NIDS o o Snort. 13. 13. Aunque esta nueva tecnolog´ se encuentra en una constante evoluci´n. 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 Sin embargo. tarde o temprano podr´ ser burlado por alg´n intruso. todav´ est´ muy lejos de poder ıa o ıa a proporcionar el an´lisis y el juicio de una persona. podemos captar este tipo de actividad as´ como otros problemas en cuanto se producen.2. El hecho es que cualquier sistema que dependa al cien a por cien de una m´quina y de su software. a veces no es el caso. Si observa una s´bita oleada de tr´fico FTP. IDS (Detecci´n de actividades an´malas) o o En lugar de utilizar firmas est´ticas. Al principio. a a u Un ejemplo de IPS de libre distribuci´n es Inline Snort de Jed Haile. A medida que esta tecnolog´ madure y se haga m´s inteligente. Existen varias posibilidades y cada una tiene distintas ventajas e inconvenientes. Con un NIDS. un empleado descuidado o hasta la se˜ora de la limpieza. una gran ventaja es que no tiene que actualizar firmas continuamente.3. escribiendo reglas personalizadas en el momento que se detecta el problema. Jose Antonio Escart´ Vigo. el sistema generar´ tantas alertas que es casi in´til. IPS (Intrusion Prevention System) Un nuevo tipo de NIDS denominado Sistema de prevenci´n de intrusi´n (IPS. Hay una buena raz´n para vigilar nuestro tr´fico interno de red. Intrusion Prevention o o System) se est´ publicitando como la soluci´n para la seguridad de las empresas. a u Adicionalmente. Esto puede realizarse trabajando con un cortafuegos o a con un enrutador. estos sistemas de nueva generaci´n registran los niveles normales para distintos tipos de o actividad en nuestra red. ın . 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. un m´dulo gratuito o o o para el NIDS Snort. Este tipo de sistemas a o responder´n a las alertas a medida que se generen. Uno protege nuestro per´ ımetro y el otro nuestro interior. 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. bloqueando e interrogando la actividad de las direcciones IP sospechosas o incluso contraatacando al sistema ofensivo. ´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. Por mucho a que nos guste pensar que nuestros compa˜eros no van a hacer nada para da˜arnos. Junio 2005. o a Podemos pensar en los NIDS y en los cortafuegos como dispositivos de seguridad complementarios. por ejemplo una a persona que est´ descargando un archivo particularmente grande activar´ la alarma. 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. Un ejemplo de IDS basado en actividades an´malas y de libre distribuci´n es Spade. Las estad´ o a ısticas demuestran que un setenta por ciento de los incidentes en cr´ ımenes inform´ticos provienen de un origen interno. ı Bien ajustado. puede ser el “sistema de alarma” de nuestra red.

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. ın . cuando establecemos un NIDS con sus configuraciones predeterminadas. 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. siempre que tengamos el hardware y el tiempo necesario para hacerlo. es que las alertas de estos sistemas se ignoran a menudo debido a su o falta de eficacia. As´ mismo. 215 En la red LAN local. se pude utilizar un IDS para probar un cortafuegos y comprobar lo que permite pasar. por lo que lo a incluyen todo. Existen otras muchas fuentes de falsos positivos. Sin embargo. va a buscar todo lo que sea ligeramente inusual. Junio 2005. con el nivel de ataque de a tr´fico general actual en Internet. Aunque todas ellas puedan ser alertas v´lidas.3. a 2. detectando una actividad sospechosa que de alguna manera ha e conseguido pasar los filtros del cortafuegos.rules. ´ o o n Las causas m´s comunes de los falsos positivos se describen en los siguientes apartados. Lo bueno es que capturar´ todos los ataques tanto a los servidores p´blicos como a a u la LAN interna. Reaccionar ante ello intentando localizar dichas alertas ser´ excesivo y contraproducente. Sistemas de detecci´n de intrusiones o 1. o 3. 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. web-iis. debido al tr´fico de ataque general subyacente. ofrece la mejor protecci´n frente a a u o a las amenazas externas e internas. 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. con poco esfuerzo y utilizando las t´cnicas descritas en este cap´ e ıtulo un IDS puede convertirse en una herramienta util. Tambi´n refuerza el cortafuegos. Como esos servidores son los m´s expuestos y normalmente repreu a sentan recursos valiosos. a Jose Antonio Escart´ Vigo. Al escuchar el cable local. o o del sistema. En el segmento DMZ : Podemos colocar un sensor Snort en la DMZ para registrar la actividad que entra en los servidores p´blicos. a Igual que en el ejemplo anterior. Generalmente. El problema de esta configuraci´n o es ordenar todas las alertas. La reacci´n normal. dependiendo de la configuraci´n de nuestra red y o de su nivel de actividad. si nos encontramos a ı en una LAN conmutada. Sin embargo. este sistema generar´ muchas alertas basadas en el tr´fico de red de Windows. 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. por ejemplo. ıa Por lo tanto. por lo que a a debemos estar preparados para realizar muchos ajustes en este ´rea. puede crear un cuello de botella y un punto de errores para nuestro tr´fico de red. a como MySQL. As´ mismo. detr´s del cortafuegos: Es el lugar m´s com´n.rules o reglas relacionadas con la administraci´n de conexiones. Los suministradores de IDS no tienen forma de saber la apariencia de nuestro tr´fico de red. 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. De hecho. cualquier IP p´blica es atacada de forma aleatoria todos los d´ a u ıas. 13. al situarlo entre el sensor ISP y el u ı cortafuegos. necesitaremos la capacidad de reflejar todos los puertos sobre un puerto monitor para poder permitir al IDS escuchar todo el tr´fico LAN. 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. es buena idea supervisarlos con un IDS. se puede probar a reducir las alertas y dejar s´lo las que realmente o van a mostrar alg´n problema para este segmento. 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. reglas espec´ ıficas a las aplicaciones que se est´n ejecutando en el host. ¿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?.Cap´ ıtulo 13. podemos detectar la actividad interna de otros usuarios (como la actividad entre estaciones de trabajo o el uso il´ ıcito de un programa). en lugar de en la versi´n electr´nica de la ni˜a del exorcista.

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

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

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

..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.189.3.. ın .0....html (C) Copyright 1998-2004 Sourcefire Inc...0.149........ el modo sniffer de paquetes es bueno para asegurarse de que todo funciona correctamente y Snort esta viendo los paquetes...15:80 -> 192.......168.. o La siguiente salida.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 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ ...149. 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 ==-.819445 195.... Sistemas de detecci´n de intrusiones o 219 13......org/team.... .... Si lo unico que necesitamos es un sniffer podr´ ´ ıamos utilizar Tcpdump o Ethereal (m´s completos).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.0.168.Cap´ ıtulo 13.......402225 195..... mostrando el contenido sin filtrar en el cable...15:80 -> 192....snort..149.......... 06/09-13:09:39.5........442220 192... Modos de ejecuci´n o Snort se ejecuta desde la l´ ınea de comandos....11:3516 -> 195.... 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..3.... pero ıa ´ tambi´n hay usos para los dos primeros modos..189..433979 192..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....11:3516 -> 195.. e Modo de sniffer de paquetes En este modo. a Sin embargo................2 (Build 12) By Martin Roesch & The Snort Team: http://www....... Junio 2005. Jose Antonio Escart´ Vigo.149....... Evidenteu mente.... 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..0...189...168........ Snort act´a como un sniffer......_ o" )~ ’’’’ -*> Snort! <*Version 2..168..... 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....189. et al...

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.0.916%) UDP: 12 (4.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.168.0/24 Esta declaraci´n especifica una red interna en el rango comprendido entre 192.000%) ARP: 4 (1.168.563%) ICMP: 0 (0.000%) OTHER: 0 (0. para poder ver con m´s facilidad el tr´fico ajeno a la red.000%) DISCARD: 0 (0. 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.000%) IPX: 0 (0.000%) Dropped: 0(0. esto puede escaparse r´pidamente a nuestro control.000%) IPv6: 0 (0. Para ejecutar Snort en el modo de registro de paquetes. Snort los coloca en el directorio con el n´mero de puerto superior. Si tanto los anfitriones de a a destino como de origen son locales. Junio 2005.521%) EAPOL: 0 (0. a Por lo tanto. Este archivo determina la configuraci´n de Snort. 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. Por ejemplo: #snort -vde -l /var/log/snort Crear´ archivos de registro en el directorio /var/log/snort. S´lo necesitamos un modificador adicional a la declaraci´n anterior para que Snort entre en este o o modo. le indica a Snort que utilice un archivo de configuraci´n para dirigir o los paquetes que registra.220 Servidor Linux para conexiones seguras de una LAN a Internet ========================================================================== Snort received 263 packets Analyzed: 263(100.0. Esto hace que Snort coloque las direcciones bas´ndose en la direcci´n IP del paquete a o externo a la LAN. ın . o Tambi´n podemos utilizar la opci´n: -b para registrar todos los datos en un solo archivo binario. u aparentemente para recoger el host de conexi´n sobre el host servidor.0.1 y 192.168.000%) ========================================================================== Breakdown by protocol: TCP: 247 (93. pero a˜adiendo un modificador n adicional: -l logpath. Si se realiza as´ el registro. simplemente lo o a ejecutamos con los mismos comandos que en el modo sniffer de paquetes. donde homenet es el rango de direcciones IP en la notaci´n o de barra inclinada. 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. El modificador: -c configfile. e o apropiado para su lectura posterior con un sniffer de paquete (como Ethereal o Tcpdump). Snort registra paquetes por direcci´n IP y a o crea un directorio independiente para cada IP registrada. algo necesario si vamos a buscar sobre una gran cantidad de datos de red capturados. se incluye un archivo predeo Jose Antonio Escart´ Vigo.254. Tambi´n facilita el an´lisis con herramientas a e a m´s complejas. reemplazando logpath con la ruta de acceso en la que deseamos que Snort registre los paquetes (tiene que ser un directorio). 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. el comando para el modo de registro de paquetes ser´: a #snort -vde -l /var/log/snort -h 192. Si estamos registrando tr´fico en una red local a grande con muchas direcciones. no es necesario especificar la red local al utilizar el modificador -b ya que registrar´ los ı a archivos secuencialmente en un gran archivo.

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

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

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

Junio 2005. Prueba el campo de reconocimiento TCP para un valor espec´ ıfico. ın . Busca un patr´n en la parte URI del paquete. Prueba los bits de fragmentaci´n del encabezado IP. o Acciones de registro avanzadas para las reglas. Busca un patr´n en la carga util del paquete. Establece la profundidad de b´squeda para un o u intento de coincidencia con el patr´n. ID de regla Snort. o Modificador para la opci´n de contenido. Prueba el campo de tipo ICMP frente a un valor espec´ ıfico. Prueba el valor del campo TOS del encabezado IP. Prueba el campo de c´digo ICMP frente a un valor espec´ o ıfico. N´mero de revisi´n de regla. e o Prueba num´rica del patr´n y ajuste de compensaci´n e o o Jose Antonio Escart´ Vigo. o Identificador de severidad de regla. o Compara la cadena de contenido anterior sin tener en cuenta las may´sculas y las u min´sculas. o Prueba el tama˜o de carga util del paquete frente a un valor. 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 ´ Busca un conjunto de patrones en la carga util del paquete. V´lido independientemente del estado del flujo. cerrar todas las conexiones). n ´ Prueba los indicadores TCP para determinados valores. 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. Evaluaci´n num´rica. 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 e Obliga a que la coincidencia de patr´n relativa omita determinado n´mero de bytes en o u el paquete. Prueba el campo de n´mero de secuencia TCP para un valor espec´ u ıfico. Responde con un conjunto de comportamientos cifrados (por ejemplo. bloquear determinados sitios web).5: Opciones de personalizaci´n en las reglas de Snort o Descripci´n o Proporciona la descripci´n del texto de una alerta. Determina si la IP de origen es igual a la IP de destino. Respuesta activa. a Coincidencia de patr´n de caracteres comod´ o ın. Prueba num´rica del patr´n.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. Establece la compensaci´n en el intento de o o coincidencia con el patr´n. Respuesta activa (por ejemplo. Valor de protocolo del encabezado IP. ´ Modificador para la opci´n de contenido. u o Identificador de clasificaci´n de regla. Prueba el campo ID del fragmento del encabezado IP para un valor espec´ ıfico. Vigila los campos de opci´n IP buscando c´digos espec´ o o ıficos. a Prueba el valor del campo TTL del encabezado IP. Los ID de referencia de ataques externos.

en cualquier momento. Tambi´n podemos utilizar o e Tripwire durante una investigaci´n forense para descubrir d´nde ha estado un intruso. las directivas y las pol´ ıticas que les aplicaremos. es como seguir las o o huellas digitales de una persona. 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. El archivo principal de pol´ ıticas es: /etc/tripwire/twpol. los creadores fundaron una empresa para o venderlo y soportarlo comercialmente.txt.6 recoge la lista de los elementos que se pueden registrar para cada archivo y sus letras de c´digo. As´ cuando utilizamos comandos como ı ls o ps. una vez introducidos en un sistema.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. un listado de los diversos archivos y directorios que se chequearan. o deber´ ıamos hacer una copia y eliminarlo. o o Ambas versiones funcionan creando una base de datos de atributos b´sicos. Sin embargo.7.1). Este no es el propio archivo de pol´ ıticas. 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. Al final. Con ello determinaremos si ha cambiado algo. Estas directivas se representan mediante letras de c´digo o nombres de variable. a El cuadro 13. o Cuadro 13. Esta o versi´n libre se ha ido actualizando desde su lanzamiento (versi´n 2. Este archivo contiene en su parte superior algunas variables. una vez establecidas y probadas sus pol´ ıticas. y representan las propiedades que est´ registrando Tripwire. denominadas m´scaras o a de propiedad. archivos importantes que a deseamos registrar para comprobar los atributos reales. Para instalar el programa hacemos un apt: #apt-get install tripwire Configurar Tripwire Antes de ejecutar Tripwire hay que establecer la pol´ ıtica. sino una copia de la versi´n cifrada que el programa utiliza. es reemplaa zar los archivos binarios clave con versiones de su propia cosecha. no vemos sus archivos il´ ıcitos ni la ejecuci´n de determinados procesos.2. frente a los atributos b´sicos.Cap´ ıtulo 13. Junio 2005. Para obtener una mejor seguridad. Tripwire era de libre distribuci´n. ın . a Uno de los trucos favoritos de los piratas inform´ticos. Sistemas de detecci´n de intrusiones o 231 13. Integridad de archivos: IDS Tripwire Originalmente.

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

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.3.. 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.txt con la ruta de acceso al archivo o a los directorios que deseamos comprobar.twd y lo cifra utilizando la frase de contrase˜a de site. 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.cfg Database file used: /var/lib/tripwire/debian. en este caso i para inicializar. Compara los atributos o actuales de los archivos especificados con los de la base de datos de Tripwire. ın . Comprobar la integridad del archivo Es el modo principal de ejecuci´n en Tripwire una vez se haya configurado.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. Recordemos que debemos ejecutar Tripwire. CD o cinta). idealmente. n Para que Tripwire sea realmente seguro.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.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. y despu´s cuando sospechemos que no funcionan e bien algunos archivos en nuestro sistema. seg´n las especificaciones del archivo de pol´ a u ıticas y devolver´ un informe con los cambios producidos. Verificar´ los atributos de dicho archivo. Sistemas de detecci´n de intrusiones o 233 Debajo de las m´scaras de propiedad. a Por ejemplo podr´ ıamos hacer algo as´ ı: # tripwire -m c /bin/* Integrity checking objects specified on command line.txt Donde debemos reemplazar file. El formato es el siguiente: #tripwire -m c file.pol Configuration file used: /etc/tripwire/tw.. Hay que tomarse tiempo para examinar a fondo el archivo y comprobar qu´ archivos se est´n registrando. especificada anteriormente. Tripwire audita todos los a archivos especificados en nuestro archivo de politicas. crea la datos en /var/lib/tripwire/ <hotsname>. ya estaremos preparados para ejecutar Tripwire. creando as´ la lista o a ı inicial de firmas frente a las que se deben utilizar las pol´ ıticas.twr Tripwire(R) 2. El modificador -v le proporciona una salida por pantalla para que podamos ver lo que est´ sucediendo. se establecen las pol´ a ıticas para los diversos archivos y directorios del sistema. aunque Tripwire tiene algunas protecciones contra este tipo de acciones. una vez instalado y configurado el sistema.Cap´ ıtulo 13. Junio 2005. Podemos empezar con el archivo de pol´ ıticas predeterminado y comprobar su funcionamiento. Si lo guardamos localmente siempre existe la posibilidad de que se pueda alterar el archivo. e a Una vez hecho esto.

Si deja ah´ la X. 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. =============================================================================== Error Report: =============================================================================== No Errors ------------------------------------------------------------------------------*** End of report *** Tripwire 2. Podemos ı a ´ actualizar los directorios seleccionados despu´s de todo. As´ se invalidar´n las firmas y nos aseguraremos de que la base de datos Tripwire es util. Para ello realizaremos los cambios necesarios en el archivo de a pol´ ıticas de Tripwire. Integrity check complete. 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. 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. a Para actualizar la base de datos de Tripwire. 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. a a a Tambi´n. Tripwire actualizar´ la firma para dicho archivo cuando salgamos de ´ste. Jose Antonio Escart´ Vigo. cambiar´n en contadas ocasiones. algunos elementos como pueden ser los binarios e del sistema. podremos actualizar la base de datos para que refleje con precisi´n el estado v´lido de los archivos. 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.3 Portions copyright 2000 Tripwire. Tendremos una X en los cuadros de los archivos en los que Tripwire haya detectado cambios. Tripwire is a registered trademark of Tripwire. Inc. see COPYING for details. Inc. La ejecuci´n de este comando nos mostrar´ todos los cambios que se han producido y las a o a reglas que los detectan. Tripwire ı a e supondr´ que la firma original es la correcta y no la actualizar´. Si elimina la X.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. Junio 2005. This is free software which may be redistributed or modified only under certain conditions. No se debe actualizar la base de datos si existe alguna posibilidad de que nuestro sistema haya sido comprometido. ın . Al salir. This software comes with ABSOLUTELY NO WARRANTY. Tripwire ejecutar´ dichos cambios. All rights reserved. for details use --version.

podremos crear una tarea que se ejecute diariamente (o con la frecuencia deseada) para revisar el sistema de archivos en busca de archivos modificados. Acepta alertas Snort y archivos de registro ajustados a los registros del sistema. a Es muy recomendable instalar ACID en una m´quina independiente de Snort.8. 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. necesitamos comunicar los dos programas a trav´s de e una base de datos. 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.sourceforge. El host con ACID debe de ubicarse en un sitio donde no pueda acceder el sensor de Snort.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.text con el nuevo archivo de pol´ ıticas. ın . ACIDlab: Analizar alertas IDS La consola de an´lisis para bases de datos de alarmas de intrusi´n (ACID. Nos proporciona un panel de control basado en web para visualizar y manipular estos resultados. Snort. 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. 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.php En la siguiente tabla se puede observar la descripci´n de las variables contenidas en el archivo: o Jose Antonio Escart´ Vigo.Cap´ ıtulo 13. Para instalarlo y hacerlo funcionar con Snort. Cuando hayamos ajustado suficientemente las pol´ ıticas de Tripwire. 13. Esta es su p´gina oficial: o a http://acidlab. Utiliza cualquier base de datos SQL y cualquier servidor web.text Donde debemos reemplazar politica. Sistemas de detecci´n de intrusiones o 235 Una vez guardados ejecutaremos el comando siguiente. Configuraci´n de ACID o Este es el archivo de configuraci´n del sistema ACIDlab: o /etc/acidlab/acid_conf. Junio 2005. un servidor web y el PHP. Necesitamos cumplir unos requisitos previos para que funcione correctamente: Debemos tener instalados una base de datos. que se encuentra disponible en la web de ACID. admitiendo m´ltiples sensores para los u datos de entrada. por ejemplo MySQL. Tripwire nos pedir´ que a introduzcamos la contrase˜a local y de site antes de actualizar la pol´ n ıtica. ACID s´lo funciona directamente con un IDS. Actualmente. para que Tripwire actualice el archivo de pol´ ıticas: #tripwire -m p politica.

Ruta de acceso a los m´dulos de creaci´n de gr´ficos. hay que n a asegurarse de que coincide con la contrase˜a MySQL para dicho usuario. n Nombre de la base de datos de Snort. Jose Antonio Escart´ Vigo.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. pero tambi´n podemos establecer postgresql o mssql. s´lo debemos o introducir “ ” para este valor.php Se muestra la p´gina de configuraci´n de ACID. Como en el caso anterior. El host en el que se va a guardar la base de datos de alerta. Para una mejor seguridad y rendimiento. Si est´ en la a misma m´quina debe ser localhost. o o a Formato de archivo de los gr´ficos. es a ıa recomendable ejecutar la base de datos en una m´quina distinta a la del a servidor web con PHP. o Hacemos clic sobre el boton Create ACID AG para crear una base de datos para los datos Snort. a Puerto para iniciar la sesi´n en el servidor de base de datos. El nombre predeterminado de la base de datos es “snort”. el valor suele ser el mismo que el de $alert_password. El valor predeterminado es snort archive. ın . Puede ser una direcci´n IP o un nombre de host. 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. aunque se pude crear un usuario independiente para registrar los archivos. Si es local. en el futuro admitir´ otros IDS. 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. Contrase˜a para que el usuario de la base de datos registre los datos de n archivo. El valor predeterminado es mysql. Aca a tualmente solo adminte Snort (snort log). ser´ localhost. a Otros formatos v´lidos son jpg y gif. a Una vez hecho esto hemos terminado la configuraci´n de ACID y podemos empezar a utilizarlo para o administrar el sistema IDS.236 Servidor Linux para conexiones seguras de una LAN a Internet Cuadro 13. El formato predeterminado es png. Nombre de usuario de base de datos que va a utilizar ACID para registrar los datos. $alert_user. Normalmente es el mismo valor que el de la variable anterior. 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. 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. Junio 2005. e El IDS desde donde se est´n obteniendo las alarmas para ACID. Una vez m´s. Si se est´ ejecutando en la misma o a m´quina. Introducimos o “ ” si estamos iniciando la sesi´n localmente. Puerto sobre el que se accese a la base de datos. o Usuario de base de datos para registrar los datos de archivo. A partir de este momento podremos utilizar la interfaz a o web para terminar la configuraci´n de ACID.

u N´mero de las diferentes direcciones IP de destino asociadas con dicha alerta (<Dest. a a ataque. 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. Clasificaci´n de la alerta (<Classification>). Al menos. podemos u empezar a analizar datos y asi eliminar los tipos de alertas que no nos proporcionen informaci´n. ´ ACID puede ser una herramienta muy valiosa en esa tarea. o Si pulsamos Unique Alerts (Alertas unicas) se mostrar´n las alertas m´s recientes clasificadas por tipo ´ a a de alerta. Addr. Addr. En est´ p´gina podemos clasificar y ordenar por los siguientes campos: a a Nombre de la firma (<Signature>). u N´mero de las diferentes direcciones IP de origen asociadas con dicha alerta (<Src. u N´mero de sensores desde donde proviene la alerta (Sensor#). o N´mero total de este tipo de alertas en la base de datos (<Total#>). todas las firmas de alerta se activar´n y nuestra base de datos empezar´ a rellenarse con actividad de a a las alertas. ´ Si determinamos que es un ataque al sistema podemos intentar tomar medidas.Cap´ ıtulo 13. Bas´ndose en la IP del emisor. As´ nuestra red estar´ m´s protegida y podremos reaccionar si se produce un a ı. Normalmente ser´n a gusanos automatizados. u Hora en la que se ha incluido la alerta (<Firt> y <Last>). La mayor´ de estas ser´n falsos positivos. Aun as´ es mejor estar pendiente de ı estas alertas para comprobar si la IP persiste. Tambi´n se pueden e ejecutar otras acciones contra la direcci´n IP que aparece como IP de origen.>). 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. para que los datos de alerta sean importantes en ıa a nuestra red.>). podemos utilizar esta informaci´n para determinar si se trata de a o una direcci´n que normalmente est´ accediendo a nuestra red. se puede buscar con m´s detalle haciendo clic en a o a las alertas individuales. si se ha producido con ´xito la intrusi´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). tenemos que empezar a eliminar algunas de estas firmas para reducir la actividad err´nea y o proporcionar s´lo los datos procesables. 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. ın . Junio 2005. Jose Antonio Escart´ Vigo. podemos asegurarnos de que la m´quina atacada a esta protegida contra ese tipo de ataque y enviar una queja al ISP del atacante. Cuando ajustamos por primera vez el NIDS. como una persecuci´n legal o o o una acci´n civil. ataque que se produce docenas de veces al dia. o Cuando tengamos un n´mero suficiente en la base de datos (al menos unas miles de alertas).

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

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

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

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

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

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

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

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

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

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

o Vulnerabilidades espec´ ıficas de 802. a o 14. 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. Al iniciar la sesi´n en nuestra red y o acceder despu´s a Internet. ın . Aparte de los puntos de acceso. a SSID predeterminados: Cada estaci´n base wifi tiene un identificador espec´ o ıfico que debemos conocer para entrar en la red. puede suponer que el administrador no ha perdido mucho tiempo en configurar y asegurar la red inal´mbrica. Acceso an´nimo a Internet: Aunque los intrusos no est´n interesados en lo que contienen nuestra o e LAN. 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. 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. 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. 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. a a a a veces. Poco podemos hacer frente a ello. a o algo bastante caro y poco habitual.11 : Adem´s de las inseguridades de las LAN inal´mbricas. 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. un fallo fundamental en c´mo funcionan los algoritmos RC4 en los que esta basado hacen que los o datos se puedan descifrar. incluso aunque se ejecute WEP. etc. incluso en una red inal´mbrica cifrada. Las LAN inal´mbricas no aseguradas ofrecen a los intrusos el a mejor acceso an´nimo que existe. se pueden ver desde el exterior. Redes inal´mbricas a 259 requiere para que un intruso acceda a la red. Lamentablemente. otros problemas se deben al dise˜o general de n est´ndar. Cualquier ataque o da˜o perpetrado desde esta conexi´n se rastrear´ hacia nuestra n o a red. Peligros de las LAN inal´mbricas a Aunque ofrecen la misma flexibilidad y funcionalidad que pueden ofrecer las LAN con cables. La mayor´ de las LAN ejecutan un servidor DHCP ıa sin restringir.11. 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. Cuando un intruso lo encuentra. pueden piratear nuestra red y hacer el da˜o que quieran sin que podamos e n seguirles la pista. Wired Equivalente Privacy) para que los datos se pudieran cifrar. pueden utilizar nuestro ancho de banda para otros usos. ıa o las contrase˜as o cualquier otro dato. muchas personas no cambian el SSID predeterminado del fabricante. cualquier dato que viaje por una red inal´mbrica est´ potencialmente sujeto a su inspecci´n por personas ajenas a la red. Por lo tanto.Cap´ ıtulo 14. default. como linksys. las m´quinas con tarjetas inal´mbricas. existen a a algunos problemas espec´ ıficos del est´ndar 802. u Acceder a la LAN : Probablemente ´ste sea el mayor peligro que presentan las redes inal´mbricas. Junio 2005. por lo que los intrusos pueden obtener una direcci´n IP v´lida y empezar a explorar o a nuestra red. Las autoridades pueden llamar a nuestra puerta.2. Este identificador proporciona alg´n nivel de seguridad si se implanta correcu tamente. Sin embargo. tambi´n e introducen algunos retos y peligros unicos para el administrador de redes preocupado por la seguridad. e a normalmente tienen las llaves de nuestro reino. a Jose Antonio Escart´ Vigo. ´ ´ 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. Lamentablemente. e a Si los intrusos pueden obtener el acceso a nuestra LAN a trav´s de un punto de acceso inal´mbrico. a a o Alguien podr´ escuchar sobre nuestro enlace sin cables para buscar los registros de inicio de sesi´n. Algunos de ellos se deben a un mal dise˜o del a n fabricante o a las configuraciones predeterminadas. no a la suya.

ın . Junio 2005. Punto d´bil de WEP : Incluso cuando se utiliza el cifrado incorporado. Imaginemonos a los adolescentes y otros reci´n llegados e escaneando en busca de las LAN inal´mbricas disponibles. 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. 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.11b a a tienen una distancia efectiva de un par de cientos de metros. 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. sea m´s dif´ de captar para las o a ıcil escuchas clandestinas de redes inal´mbricas. 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 . Las redes inal´mbricas que utilizan 802. El problema es que normalıa o a mente se tiene que hacer manualmente. u e o En general. de los primeros piratas inform´ticos. No se requiere un alto nivel de conocimientos para hacerlo. Los que realizan el “wardring” pueden explorar Internet o la LAN local sobre el enlace sin cables. WEP utiliza a e vectores de inicializaci´n d´biles con un porcentaje suficientemente alto como para que finalmente o e puedan descifrarse. 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. es casi seguro que podr´n recoger algunas de sus se˜ales. Por lo tanto. pero SSID se sigue enviando cuando una estaci´n se a o conecta. los edificios altos suelen ser uno de los peores lugares para ejecutar una LAN inal´mbrica. aunque WEP ofrece una a protecci´n b´sica frente a escuchas clandestinas casuales. Es f´cil crear un puede entre el espacio a comprendido entre dos edificios o varias plantas en un edificio alto. 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. o o a consiste en seleccionar de forma aleatoria bancos de n´meros de tel´fono para encontrar m´dems activos. cualquier intruso serio tendr´ el software o a a como para descifrar potencialmente el cifrado. desde la comodidad de sus habitaciones en las a afueras de una ciudad. Aproximadamente un 60 por ciento de las LAN inal´mbricas son completamente inseguras. 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. es com´n encontrar varias LAN inal´mbricas sin protecci´n dentro de un edificio. funciona de la misma forma a a que el marcado telef´nico en masa o guerra del marcado telef´nico. Una vez roto el cifrado. Incluso es peor los edificios altos a n que se encuentran junto a una zona residencial. la se˜al sigue teniendo el riesgo e n de ser le´ ıda. a el t´ ıpico edificio de cristal permite que las se˜ales de su LAN viajen a mucha distancia. 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. En una zona del centro densa. Muchos modelos nos permiten a desactivar la parte SSID de la transmisi´n para que. es muy probable que no se active el cifrado. 14. Desde el punto de vista de u a o la seguridad.3. Esta pr´ctica se conoce como “wardrive” o “wardriving”. Si hay otros n edificios cerca. Muchos administradores tienen prisa por configurar o su red inal´mbrica y no tienen mucho tiempo para activar esta importante funci´n. Estos puntos d´biles tienen que ver con la forma en que se programan las claves. n esa se˜al y. como oficinas en entornos a urbanos y ´reas del centro donde hay muchos edificios altos. Si una persona a o no t´cnica configura la red. 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. Cualquiera puede capturar ıa. Muchos fabricantes comercializan su equipamiento con esta opci´n desconectada de forma predeterminada. por lo que hay intrusos de todos los niveles. al menos. 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. lo que puede llegar a convertirse en una pesadilla si tenemos muchos usuarios conect´ndose sin a cables. como m´ n ınimo saber que tenemos una LAN inal´mbrica.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.

org/spanish/wireless. Redes inal´mbricas a 261 online con mapas para que cualquiera pueda encontrar una LAN Inal´mbrica bierta en cualquier parte. 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. Junio 2005.wifimaps. etc. esperando a e s´lo a que cualquier intruso oportunista de su zona al que le sobre algo de tiempo.Cap´ ıtulo 14.cybergeography. ın .com/europe/es http://www.html Existe hasta un catalogo de simbolos estandarizado para identificar redes wifis urbanas: Figura 14. cifradas o no cifradas. Si tenemos una LAN inal´mbrica en a un ´rea metropolitana importante. a Las catalogan por tipo de equipamiento.1: S´ ımbolos urbanos de redes wifi Jose Antonio Escart´ Vigo.com/ http://www.nodedb.

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

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

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

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

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

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

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

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

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

conf y el driver ipw. o a Si lo soporta. Clientes Linux: WPA-Supplicant Debemos asegurarnos que nuestra tarjeta wireless se puede utilizar en WPA con EAP-TLS. veremos que soporte y para que driver ha sido compilado.com" ca_cert="/etc/cert/cert-srv. a o Si ejecutamos: #wpa_supplicant -h. eth0 eth1 no wireless extensions. Redes inal´mbricas a 271 14. Junio 2005.5.pem" private_key="/etc/cert/root. 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.conf -D ipw Jose Antonio Escart´ Vigo. esto e variar´ dependiendo de nuestra configuraci´n de hardware. el config file lo cre´ en /etc/wpa supplicant.11g ESSID:"example" Mode:Managed Frequency:2. ifname es eth1. necesitamos saber es como se llama la tarjeta en el sistema (en mi caso eth1): #iwconfig lo no wireless extensions.Cap´ ıtulo 14.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.5. ın .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. IEEE 802. si en la documentaci´n no lo encontramos probablemente no ser´ compatible. Y para comprobar si funciona correctamente la negociaci´n de los certificados ejecutamos: o #wpa_supplicant -dd -i eth1 -c /etc/wpa_supplicant.pem" client_cert="/etc/cert/root.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.

Ahora. o a Pulsamos sobre “cambiar el orden de las redes preferidas” Seleccionamos nuestra red en el listado. Para instalar los certificados generados por OpenSSL (root.der Instalamos el certificado de cliente: root. podremos observar que tiene el WPA activado Apretamos al boton “propiedades” En esta ventana. ın . vamos a ver las “conexiones de red inal´mbricas disponibles”. Jose Antonio Escart´ Vigo. 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.272 Servidor Linux para conexiones seguras de una LAN a Internet 14. “utilizar selecci´n simple de certificado”. 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.der y root. “certificados”. debemos asegurarnos que nuestra tarjeta wireless se puede utilizar en WPA con EAP-TLS. Junio 2005. nos pedira la contrase˜a del certificado n Para comprobar que realmente ha sido instalado. 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. : e Elegimos la opci´n “agregar”. el certificado de cliente En entidades emisoras. Pulsando sobre ´l deber´ de aparecer: o e ıa En certificados personales.5. ejecutamos el siguiente comando en la consola: mmc A trav´s del Microsoft Manegement Console (mmc) podemos comprobar el certificado. “validar un certificado de servidor” y elegir el certificado cliente que o hemos instalado. Instalamos el certificado de la entidad emisora: root.p12. el certificado del servidor Ahora falta asociarlos a una conexi´n. 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”.p12) es suficiente con hacer doble click sobre ellos.6. Clientes Windows: WindowsXP + SP2 Como con los clientes Linux.

si la utilizamos para el cifrado de datos. 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). apareciendo en color rojo las redes activas y en negro las que no est´n activas. Funciona con otros programas y puede dise˜arse para recopilar claves de cifrado para los intentos n de descifrado por otros programas externos. los paquetes descartados y la media de paquetes por segundo. Junio 2005. o a Instalar Kismet Se puede obtener la versi´n m´s actualizada del programa en la direcci´n: o a o http://www. 14. cuala u quier indicador sobre los datos y la cantidad de datos que est´n por la red. Herramientas de seguridad Las redes wifi son inseguras por definici´n. Jose Antonio Escart´ Vigo. el n´mero de paquetes interceptados hasta el momento. el a a canal en el que se est´ transmitiendo. La pantalla est´ codificada a a con colores. Descubrir redes ilegales e intrusos: Kismet Wireless Kismet Wireless es uno de los sniffers inal´mbricos principales para Linux. el hecho de comunicarse por un medio de libre acceso como o es el aire implica que la transmisi´n ser´ vulnerable. He elegido Kismet debido a su creciente oferta de m´dulos de soporte.2 recoge los par´metros que se pueden configurar) a Editar y configurar el archivo: /etc/kismet/kismet ui. Podemos incluso ejecutar Kismet en modo IDS para buscar intentos de intrusi´n que provengan de nuestra red inal´mbrica.kismetwireless. las redes d´biles percibidas.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. Redes inal´mbricas a 273 14. 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 tipo (punto de acceso frente a nodo).net Los pasos a seguir son los siguientes: Instalar el programa: #apt-get install kismet Editar y configurar el archivo: /etc/kismet/kismet. pero existen otros programas a como AeroSniff o Prism2Dump. ın .conf. el n´mero total o u u de paquetes.conf. aqu´ se han de establecer las preferencias ı de la interfaz gr´fica de kismet (el cuadro 14.6. 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.Cap´ ıtulo 14. o Es una herramienta cliente-servidor como Nessus (V´ase apartado 17. el n´mero de paquetes cifrados. que proporciona incluso m´s e a flexibilidad. podremos utilizar Kismet Wireless herramienta que detallo a continuaci´n. aqu´ se ha de configurar el inicio de sesi´n ı o y las preferencias de la interfaz wifi (el cuadro 14. si est´ cifrada o no utilizando WEP.6.1.1). los paquetes con un alto u e nivel de ruido. Se abre la interfaz principal y inmediatamente informa sobre cualquier red inal´mbrica en el ´rea. Tambi´n comento la herramienta de auditor´ AirSnort que trata de descubrir la clave o e ıa WEP.

Tendr´mos o o e que jugar con esta configuraci´n un poco hasta obtener los colores correctos. 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. Utilice la opci´n noiselog para quitar o (Filtrar registros de pa. interface. Generalmente se deja desconectado a no ser que su tarjeta est´ informando sobre redes cifradas como “sin descifrar”. Tambi´n puede utilizar cualquier combinaci´n de estas e o configuraciones. Como Kismet es una herramienta de l´ ınea de comandos. 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. Soporte GPS de Kismet Kismet tiene la capacidad de grabar datos GPS si tiene un receptor GPS conectado a la m´quina.4 incluye una lista de las teclas disponibles desde la pantalla principal. Los mensajes se abren cuando aparecen nuevas redes o se producen otros eventos.) ya deber´ estar configurada a ıa aqu´ Si desea a˜adir interfaces adicionales puede hacerlo en el formato: ı. n source=type. e Filtering packet logs Limita el paquete que se registra. Cada punto de acceso necesita una declaraci´n independiente en el formato o o bssid:key. pri(Descifrar claves WEP) mero tiene que tener la clave que a veces. En una zona muy ocupada con mucha interferencia o cuando se utiliza una tarjeta que tiene una antena externa. utiliza comandos de teclas para controlar sus funciones. de un punto de acceso determinan do. aunque con una GUI. Despu´s o e Kismet escoge autom´ticamente las coordenadas de las redes detectadas y las registra.cualquier paquete que parezca que se va a desglosar o fragmentar por el quete) ruido. La opci´n beaconlog quita todos los paquetes de o se˜ales luminosas. Kismet incluye un programa a a Jose Antonio Escart´ Vigo. se obtiene utilizando AirSnort. La configuraci´n phylog quita cualquier paquete de la capa f´ o ısica que a veces se recogen. puede mantener el tama˜o n de su registro reducido. a Necesitamos el software demonio de GPS gpsd para que Kismet pueda leerlo. etc. ın . 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. excepto el primero. Normalmente la interfaz inal´mbrica principal (wlan0.274 Servidor Linux para conexiones seguras de una LAN a Internet Cuadro 14. Cambiamos el valor de columns o clientcolumns incluyendo lo que desea ver. 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. eth1. Sin embargo.2: Archivo de configuraci´n de Kismet o Descripci´n o Define las interfaces que va a escuchar Kismet. Junio 2005. a Podemos ir un paso m´s all´ y crear un mapa con estas coordenadas. 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. El cuadro 14. Decrypt WEP keys Descifra los paquetes de datos interceptados al momento. 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.

Pasemos a a describir el funcionamiento de este programa. lo o podemos instalar con: #apt-get install gpsdrive. IDS de Kismet Tambi´n podemos configurar Kismet como un IDS inal´mbrico.conf y de forma predeterminada est´ deshabilitada.gps El a inconveniente es que tiene que proporcionar su propio mapa GPS calibrado.6. incluyendo sondeos del programa NetStumbler (herramienta a para Windows). siempre podemos ampliarlo mediante la escritura de nuestras propias alertas. Tambi´n o e podemos canalizar los datos de Kismet a trav´s de un IDS tradicional como Snort (V´ase secci´n 13. Junio 2005. el protocolo o o a b´sico de cifrado inal´mbrico. cosa que no recomiendo. que analiza paquetes inal´mbricos e intenta descifrar el cifrado WEP. 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. Desencriptar claves inal´mbricas WEP: Airsnort a Si utilizamos criptograf´ por clave WEP. o AirSnort se desarroll´ como una aplicaci´n pr´ctica para demostrar la debilidad de WEP. ın . 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. Y. a Detecta unos 10 tipos diferentes de tr´fico. 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 . podemos probar si nuestra clave se ıa puede deducir facilmente con esta herramienta. a a La opci´n IDS se configura en /etc/kismet/kismet. Actualmente la encriptaci´n WPA es m´s segura y es una o a mejor soluci´n para servidores. la actividad de Airjack y otras herramientas de pirater´ inal´mbrica.2.5) e e o para obtener un an´lisis m´s detallado.Cap´ ıtulo 14. o a Tambi´n puede configurar Kismet para recopilar claves d´biles conocidas criptogr´ficamente para un e e a programa como AirSnort. Existe un programa de trazado de mapas de libre distribuci´n para Linux denominado GPSDrive. 14. como es de ıa a libre distribuci´n. 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.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. Una nota sobre las debilidades en el algoritmo de programaci´n de claves de a a o Jose Antonio Escart´ Vigo.

actualmente (solo actualmente) indescifrable. Una red inal´mbrica que utiliza este protocolo puede a ser. Poco despu´s. 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. Es una realidad matem´tica que se puede a o a descifrar en alg´n punto utilizando esta herramienta. a AirSnort es ahora un proyecto de libre distribuci´n que se encuentra en SourceForge. 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.net y que se ha o extendido y mejorado considerablemente desde su lanzamiento. suponiendo que o a n la red controlada no cambie sus claves con frecuencia. podemos empezar escribiendo airsnort en la l´ ınea de comandos. Puede justificar incluir ıa. descifr´ndolas con efectividad. Al intentar descifrar el cifrado inal´mbrico. Puede dividir sus actividades de recopilaci´n en incrementos de tiempo m´s peque˜os y menos perceptibles. podemos suponer razonablemente que estamos bastante seguros. entonces es simplemente cuesti´n de tiempo. si lo sabemos. si es a ıa a una red ocupada.7. inclu´ detalles sobre una te´rica a ıa o debilidad en el algoritmo WEP. Ambas son buenas herramientas. que empleaban las debilidades descritas para recuperar claves WEP. 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. se lanzaron dos ıa a e herramientas. Como puede verse en la figura 14. Una vez instalado AirSnort. ın . Si el nivel de tr´fico de nuestra LAN es peque˜o. Si u o tardamos mucho tiempo. Junio 2005. 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. Podemos descubrir que el nivel de tr´fico no hace que a sea pr´ctico descifrar el cifrado. AirSnort puede guardar una sesi´n y retomarla o o posteriormente para realizar adiciones. 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. escrita por los expertos criptogr´ficos Fluhrer. describiendo la debilidad de algunos vectores de inicializaci´n. dormiremos mucho mejor por la noche. la interfaz es muy simple: es una sola pantalla que muestra los paquetes Jose Antonio Escart´ Vigo. Con a el tiempo. AirSnort y WEPCrack. Tambi´n puede justificar la a e actualizaci´n de nuestro equipamiento inal´mbrico. Martin y Shamir. 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. La cuesti´n es cuanto tardaremos en hacerlo. ahorr´ndonos este a paso. No es necesario tener toda la colecci´n de datos a la vez. AirSnort ıa lleva a cabo precisamente esta tarea. 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.276 Servidor Linux para conexiones seguras de una LAN a Internet RC4. De cualquier forma. lo que permitir´ descifrar f´cilmente los paquetes. como por ejemplo a un sistema WPA con un servidor o a Radius. pero AirSnort tiene una funcionalidad a adicional como sniffer inal´mbrico. Si se est´ utilizando un a a WEP est´ndar. como el que se propone en este proyecto. Sin embargo. Kismet separar´ espec´ a ıficamente los paquetes interesantes para AirSnort. m´s protecciones. podemos ver si se puede hacer. como mejores controles f´ a ısicos o limitar el tr´fico en la red. 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.

a o Figura 14. Hay que esperar. 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. hay que tranquilizarse. por a lo que los resultados pueden variar entre una hora y nunca.Cap´ ıtulo 14. es el momento de sentarnos a recopilar paquetes. 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. Hay que seguir muchos pasos que var´ desde reemplazar el equipamiento hasta ıan volver a configurar y cambiar el AP (punto de acceso). podemos intentar aumentar este valor ligeramente. todo se basa en tener un poco de suerte. podemos tardar uno o m´s d´ en recopilar esta cantidad de datos. Tendremos que tomar decisiones bas´ndonos en la a confidencialidad de los datos que tratamos en nuestra red. La secci´n superior muestra nuestras u o configuraciones.7: Imagen de AirSnort A continuaci´n. En redes a ıas m´s lentas. es decir. aproximadamente entre 100MB y 500MB de datos. al menos. 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. necesita aproximadamente entre 1. Para que AirSnot funcione correctamente. No hay que esperar descifrar claves o WEP en un momento. El valor predeterminado es 3 para cifrados de 40 bits y 2 para cifrados de 128 bits. podemos tardar m´s y en redes ocupadas mucho menos. pero no m´s de 4 ´ 5. Cuando un desciframiento de la clave WEP tiene ´xito. Junio 2005. aunque seguramente sea m´s.500 paquetes con claves d´biles. En una red e moderadamente ocupada. Si no tenemos muchos datos o tenemos mucha capacidad de procesamiento adicional. o ¿Qu´ pasar´ si encontr´semos las claves WEP? Bueno.500 y 4. Jose Antonio Escart´ Vigo. ın . etc. tardar un a a par de horas. Evidentemente. como el tipo de tarjeta NIC. Redes inal´mbricas a 277 interesantes y el n´mero total de paquetes cifrados y sin cifrar. 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.

.

o o o Los m´dulos incluidos por defecto en Debian nos permiten administrar entre otros servicios Apache.1.1:10000. https si usamos SSL Webmin est´ dividido en diversos m´dulos. o De esta forma es posible crear diferentes usuarios en funci´n de los m´dulos a los que tendr´n acceso. Fetchmail. si no hemos cambiado los puertos por defecto: o http://127. . a 15. o Squid. o En el caso de que se nos olvide la contrase˜a de acceso y tengamos acceso como root al ordenador. el ´ ındice de servidores Webmin y los usuarios Webmin. 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. una vez que entramos en Webmin podemos crearnos uno o varios usuarios de administraci´n Webmin.0. si el ordenador se utiliza como servidor de correo. Esto suele ser o o debido a que alguna parte del software se ha instalado en directorios que no son est´ndar en Linux. a 15. Exim. as´ como a o o ı los logs de actuaciones.2. 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. Usuarios de Webmin El usuario por defecto es el root. 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. MySql. Por ejemplo.changepass.Cap´ ıtulo 15 Servicio de administraci´n por Web: o WebMin Para acceder a la configuraci´n de Webmin. o http://localhost:10000 . Secciones Webmin La secci´n Webmin nos da acceso a las diferentes opciones de configuraci´n de Webmin.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. etc. se n puede crear una nueva utilizando el comando: /usr/share/webmin/.0. Bind. podemos crear un usuario que tan s´lo tenga acceso al m´dulo de administraci´n de Exim. Permite al administrador del sistema crear diferentes a usuarios para determinadas tareas. Samba. 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. 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.

Webmin nos permite guardar en el historial las acciones realizadas en funci´n del m´dulo utilizado o o o del usuario. Diario Desde aqu´ configuraremos la forma en que Webmin guardar´ un registro de las acciones realizadas.1: Webmin pantalla de configuraci´n o Control de acceso a IP Ya que Webmin tienen su propio servidor web (miniserv. 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.100. Jose Antonio Escart´ Vigo.0). ı a De esta forma podremos monitorizar f´cilmente las actuaciones realizadas por los diferentes usuarios a los a que proporcionemos acceso a Webmin.pl) desde esta opci´n podemos seleccionar o qu´ direcciones de red (como 192. ya que por defecto el servidor aceptar´ peticiones o a a realizadas a cualquiera de las direcciones IP asignadas al sistema. ın .168. Servidores Proxy Webmin dispone de diferentes herramientas que necesitan disponer de acceso a Internet para funcionar correctamente. cambiar el idioma. direcciones de host (como 192.es) es posible acceder a Webmin. como es el caso de la herramienta de actualizaci´n de Webmin.upc. 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. a˜adir. Figura 15. 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. actualizar Webmin. Junio 2005. cambiar el puerto utilizado. etc. por defecto 10000. eliminar o o n modificar usuarios de Webmin. Puerto y direcciones En esta opci´n estableceremos el puerto utilizado para acceder a Webmin.168.7) o nombres de hosts e (linux.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.100. Se permite programar cuando se limpiar´ el historial para evitar que el tama˜o del mismo a n crezca en exceso.

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. Eliminar m´dulos Desde esta ultima secci´n. o o Sistema operativo Desde esta opci´n podremos especificar cual es nuestro sistema operativo. 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. Estos m´dulos Webmin son archivos de extensi´n . actualizaremos o eliminaremos los m´dulos utilizados por Webmin. Jose Antonio Escart´ Vigo. ı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. PostgreSQL podemos eliminar el m´dulo utilizando para su administraci´n. si tenemos dos configuraciones ı. la cual modifica la o estructura de directorios en los que se guardaba la configuraci´n de los diferentes servicios del sistema.pl). ın . Desde esta opci´n. As´ por ejemplo. indicando el n´mero de iconos a visualizar en cada fila. Utiliza un gestor de paquetes para realizar la tarea. a˜adiresmo. 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. 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. M´dulos de Webmin o Webmin est´ formado por diversos m´dulos. si no tenemos instalado en nuestro ordenador e ı. As´ por ejemplo. 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. seleccionaremos y borraremos aquellos m´dulos que no o ´ o o nos sean de inter´s o no se vayan a utilizar. Este proceso deber´ realizarse o a si.Cap´ ıtulo 15. o Lenguaje Se emplea para seleccionar el idioma utilizado para visualizar los textos en los m´dulos. diferentes de Apache ejecut´ndose en el ordenador. por ejemplo. 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.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. hemos actualizado el sistema operativo instalando una versi´n nueva. Junio 2005. en nuestro caso apt. cada uno de estos m´dulos se encargan de realizar una a o o tarea determinada interrelacionada con el servidor web de Webmin (miniserv.

Junio 2005. Jose Antonio Escart´ Vigo. ıa Editar categor´ ıas Utilizaremos esta opci´n para crear nuevas categor´ o editar las existentes. 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. Si activamos o a esta opci´n. En esta secci´n podremos indicar que hosts tienen acceso a Webmin. a Reasignando m´dulos o Como ya se ha comentado Webmin agrupa los m´dulos instalados en diferentes categor´ o ıas. Algunos m´dulos desarrollados antes de que se crearan las categor´ en Webmin se asignan por defecto o ıas a la categor´ Otros. o Referenciadores de confianza Al estar basado en archivos web y accederse a ´l desde un navegador web. esto indicar´ que alguien est´ ejecutando una aplicaci´n autom´tica para descubrir a a o a nuestra contrase˜a. sea administrador o o no.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. se bloquear´ el acceso al ordenador si se producen una serie de fallos en unos segundos o a determinados. 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. 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. ın . 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. 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. permitiendo al desarrollador modificar pr´cticamente cualquier a aspecto de la apariencia y distribuci´n de los elementos de Webmin. utilizando temas. Hay que tener mucho cuidado con esta opci´n. limitando de esta forma desde o qu´ ordenadores se podr´ utilizar. 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. o ıas Temas de Webmin En estas secci´n se puede modificar el aspecto y los colores de Webmin. Estas categor´ est´n definidas en funci´n de la tarea que realiza el m´dulo. cualquier usuario que tenga acceso al sistema. 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. 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.

es posible ıa que no tenga instalado Net::SSLeay. Junio 2005. 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. Para acceder a Webmin utilizaremos una conexi´n segura.1:10000.0. ya que simplemente volviendo a abrir el e navegador podr´ ıamos acceder.1 podemos observar algunos.3. 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. ´ https://localhost:10000 o As´ incrementaremos la seguridad de Webmin. En la tabla 15. La mayor´ de ellos han sido utilizados durante la elaboraci´n del proyecto. simplemente realizaremos un apt: o #apt-get install <m\’odulo> Jose Antonio Escart´ Vigo. 15. como por ejemplo el nombre de ı o usuario y contrase˜a.Cap´ ıtulo 15. solo he colocado los a m´dulos m´s utiles. 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.0. se enviar´ de forma encriptada.sourceforge. 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. 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. n a Aunque se instala OpenSSL por defecto en la mayor´ de distribuciones de Linux actuales. 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. de esta forma el navegador podr´ autenticarse de forma autom´tica y segura. ya que la informaci´n. que podemos instalar con apt y que permiten configurar de forma r´pida o a y gr´fica muchas partes del sistema. Para instalar los m´dulos. Los n usuarios pueden solicitar un certificado personal en el m´dulo de usuarios de Webmin y agregarlo al o navegador. De esta forma es posible o configurar Webmin para que no sea necesario proporcionar un usuario y contrase˜a para utilizarlo. M´dulos de Webmin o Existen diversos m´dulos. de la forma: o https://127.net/ Aqu´ hallaremos una gran cantidad de m´dulos agrupados por categor´ ı o ıas. ın .

ın . Junio 2005.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.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.

Figura 15. ın .Cap´ ıtulo 15.2: Pantallas de la interfaz Webmin (I) Jose Antonio Escart´ Vigo. Junio 2005. 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.

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

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

7 16 0 1584 512 452 S 0.0 10 -5 0 0 0 S 0.00 0:00.85 0:00.0 0. Definir el problema con todo el detalle que sea posible.0 0.6 15 0 18568 8576 7012 S 0.43 0:20.0 17 -5 0 0 0 S 0.0 0.0 17 -5 0 0 0 S 0.0 0.9m 7920 S 1.0 0.9 7. Ir de nuevo al primer paso y volver a empezar.0 15 0 0 0 0 S 0.41 0:06.0 0.00 0:00.0 0.0 0. 0 zombie Cpu(s): 13.0 25 0 0 0 0 S 0. 0.0 0.16 8:53. 0.46.0 15 0 0 0 0 S 0. a En el siguiente ejemplo podemos observar lo que se ver´ habitualmente: ıa $top top .0 15 0 0 0 0 S 0.6 16 0 2132 1064 832 R 1.0% wa.0 10 -5 0 0 0 S 0.00 0:00. 3.4 15 0 17160 8376 6884 S 0.0 15 0 30828 12m 8624 S 1.0 16 0 0 0 0 S 0. 95 sleeping.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.0 25 0 0 0 0 S 0.3 2.3 1.0 0.0% si Mem: 511948k total.2. Rendimiento del sistema Al determinar el rendimiento del sistema se debe: 1.00 0:00.0 0.22.0 10 -5 0 0 0 S 0. 0. 4.3 2.0 TIME+ 11:00.0 15 0 0 0 0 S 0.0 0.24 0:00. 0. Para ejecutarlo: $iostat Jose Antonio Escart´ Vigo. 0k used. ın .00 0:00.29 Tasks: 96 total.2 15 0 56140 33m 19m S 0.1 34 19 0 0 0 S 0.0 17 0 0 0 0 S 0.04 0:00. load average: 0.18 0:00.00 0:00.00 0:00.0 25 0 0 0 0 S 0.15:52:23 up 3:39. para poder ver de forma r´pida si hay cargas excesivas en el sistema.0 0.0 25 0 0 0 0 S 0.6% sy.00 0:00.27 0:01. 5. 979924k free.0 17 -5 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 .0 10 -5 0 0 0 S 0.3 1.0 15 0 0 0 0 S 0.62 0:33. Formular expl´ ıcitamente los objetivos para mejorar el rendimiento del sistema. habr´ un nuevo problema a resolver.0 0.. Dise˜ar e implementar las modificaciones al sistema y/o programas de aplicaci´n dise˜ados para n o n llevar a cabo esos.00 0:00.0 10 -5 0 0 0 S 0.77 0:08. 4 users.1.7 6.55 0:02.00 0:00. Monitorizar el sistema para determinar si los cambios realizados han sido efectivos.41 0:00. a 16.00 0:00.0% hi.00 0:00.0 0. 6.0 0.9% us.0 0.00 0:00. 0 stopped.3 2. 1 running.00 0:00. 83. 0. 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.3 1. 20064k free.6 16 0 12556 7396 6176 S 0.0 0. Determinar la causa o causas del problema. 2. 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.2.0 0.5% id.16 0:08.0 0.7 15 0 18992 9. 63432k buffers Swap: 979924k total.0 0.9 15 0 22700 13m 9656 S 1.0 0. Junio 2005.0 15 0 0 0 0 S 0. 0.00 0:01.288 Servidor Linux para conexiones seguras de una LAN a Internet Resulta muy recomendable siempre tener top funcionando en uno de los terminales. 491884k used. CPU.90 0:00.0 0..92 0:10.07 0:00. 2.0% ni.0 15 0 0 0 0 S 0.0 0.

Memoria: free Se utiliza para obtener informaci´n sobre el estado de la memoria.-----io---.3. 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.08 %idle 83.68 Blq_leid 581224 1384 Blq_escr 231256 0 289 Device: hda hdc Blq_escr/s 14.2.o de bloques le´ ıdos por segundo Blq escr/s: n.10 tps 2.01 26/05/05 %sys %iowait 1.00 Donde el significado de las columnas es el siguiente: tps: n.o de transferencias por segundo Blq leid/s: n.6.12 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.85 1. Memoria virtual: vmstat Si queremos obtener informaci´n sobre la memoria virtual utilizaremos este comando.58 0.55 %nice 0. (el significado de los campos es o mismo que en top).2.--system-.Cap´ ıtulo 16.82 Blq_leid/s 35.---swap-.2. Servicios de monitorizaci´n del sistema o Y un ejemplo del comando ser´ ıa: # iostat Linux 2. ın .11 (debian) cpu-med: %user 12. Junio 2005. 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 total de bloques le´ ıdos Blq escr: n.o total de bloques escritos 16.o de bloques escritos por segundo Blq leid: n.16 0. o Esto podr´ ser una salida t´ ıa ıpica: # vmstat procs -----------memory---------.

22.26 LOGIN@ IDLE JCPU PCPU WHAT 12:18 ?xdm? 36:34 1. Disco: df. ın . 0. e Esto es la salida de mi sistema para el comando df: # df S. TTY FROM :0 pts/4 :0.3. o 16. 16. del espacio usado y del punto de montaje du: cantidad de espacio utilizado por un directorio.5. Junio 2005.00s 0. pero no los pasados) PCPU: tiempo de CPU usado por el proceso actual 16.31. Usuarios y sus procesos: w Sirve para determinar que usuarios est´n conectados y qu´ est´n haciendo. du Para poder observar estad´ ısticas del disco utilizaremos estos comandos: df: por cada sistema de ficheros informa de su capacidad. 2 users.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.2.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.0 load average: 0. 0. Gestionar procesos Para poder observar y modificar el funcionamiento de nuestros procesos disponemos de las siguientes herramientas: Jose Antonio Escart´ Vigo. se muestra el espacio usado por los archivos y directorios del directorio actual. y todos los subdirectorios que hayan en ´l. del espacio libre.4.54s x-session-manag 15:53 1.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. a e a El siguiente ejemplo ilustra el comando: # w 17:07:08 USER josan josan up 4:54.11s 25. refresca cada segundo. Con el comando #du -sh. Hay que liberar a espacio para que el sistema funcione correctamente. ya que est´ en uso al 100 %.2.

1 podemos observar una lista de las opciones del comando: Cuadro 16.Cap´ ıtulo 16. ıa a En la tabla 16. u a a Jose Antonio Escart´ Vigo. Servicios de monitorizaci´n del sistema o 291 16. Junio 2005. Visualizar procesos: ps El comando ps. 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.1. 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: 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. ın . abreviatura de proceso. nos ense˜a todos los procesos que se est´n ejecutando en un n a sistema.3. hay que investigar un poco m´s.

4 83728 68852 ? 14624 0.0 0.1 2448 608 ? 4677 0.0 0.0 0 0 ? 287 0.0 1.0 0.0 0.0 0.0 3072 428 ? 5135 0. no puede ser capturada y fuerza al proceso a finalizar.0 0.statd /usr/bin/perl /usr/share/webmin/miniserv.0 1580 416 tty1 4750 0. ıa n Jose Antonio Escart´ Vigo.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 ? 352 0.0 0.0 0 0 ? 1175 0.3.0 0 0 ? 1259 0.0 0.0 0 0 ? 951 0.0 2. . eliminarlos. .0 0.0 1572 392 ? 2990 0.0 0.0 1580 416 tty3 4752 0.0 0.0 0 0 ? 3924 0.0 0.0 0 0 ? 277 0.1 0.0 1580 416 tty6 4819 7.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.1 2328 656 ? 4192 0. o ıa La se˜al SIGKILL (signal 9).4 5620 2240 ? 5169 0.0 0 0 ? 276 0. de forma controlada.1 2276 664 ? 20029 0. . env´ la se˜al a todos los procesos “orden” (ejemplo: #killall -9 bash).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.1 3544 660 ? 4423 0.2 2816 1028 ? 4533 0. env´ una se˜al al proceso identificado por pid.eth0.0 0 0 ? 2992 0. n #kill [-signal] orden.0 0.0 0.0 0.0 1.0 0 0 ? 1241 0.1 2876 520 ? 4189 0.6 8136 3236 ? 4265 0.3 3280 1640 pts/0 17531 0.d/S20xprint start /usr/bin/Xprt -ac -pn -nolisten tcp -audit 4 -fp /usr/X1root /usr/sbin/famd -T 0 /sbin/rpc. u kill [-signal] pids: #kill [-signal] pid.0 0. etc. se el dice al proceso que termine.0 0. .0 0.1 1580 612 ? 4250 0.0 0.0 0 0 ? 288 0.0 2316 508 ? 4386 0.7 22296 8796 ? 10642 0.4 238624 222152 ? 5133 0.0 0 0 ? 9 0.9 24068 9896 ? 10644 0.5 43.0 0 0 ? 111 0. .0 0.0 0.0 0 0 ? 3 0.0 0.0 3128 488 ? 4221 0. Junio 2005.4 10032 2164 ? 4749 0.9 31816 14972 ? 13198 0.0 0.9 18972 9720 ? 8911 0.0 0 0 ? 2991 0.0 0 0 ? 285 0.0 0 0 ? 18 0.6 26084 13540 ? 14623 1.2 2816 1028 ? 4534 0. .0 0.0 0.0 0.0 1.0 0.3 3284 1644 pts/1 20042 0.0 1584 472 ? 2 0.3 9476 1772 ? 4701 0.d/S20xprint start /bin/bash /etc/rc2.0 0 0 ? 286 0.0 0.0 1.0 1600 484 ? 4390 0.1 2328 772 ? 5142 0.3 3440 1908 ? 4567 0.0 0.0 0 0 ? 290 0.0 1.0 0.0 0.8 22600 9304 ? 10640 0.0 0.0 0.. .0 0.0 0.1 10068 5812 ? 5140 0.0 0.0 0.0 0.2.0 0 0 ? 289 0. Enviar signals a procesos: kill En ocasiones es necesario enviar se˜ales a los procesos: pararlos (SIGSTOP -19).1 16628 6052 ? 5206 0.0 2.0 0.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.0 0.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 /.9 13.1 11788 536 ? 4553 0.0 0 0 ? 1185 0.1 2160 880 ? 4255 0.3 9184 1684 ? 4694 0.0 1580 416 tty5 4754 0.0 0. ..0 1572 456 ? 4399 0.0 0.0 0.0 0. el estado en que termino puede ser capturado.0 1580 416 tty2 4751 0.0 0 0 ? 284 0.0 0.0 0.0 2. Esta instrucci´n le env´ un SIGTERM (signal 15).0 0.0 1.0 1580 416 tty4 4753 0.0 0.0 0 0 ? 1343 0.4 9060 2196 ? 5182 0.0 0.0 0 0 ? 1188 0.5 26808 13056 ? 10738 0.1 1820 744 ? 4699 0.0 0.0 0 0 ? 10637 0. .0 0.0 0.0 1.pid -lf /var/run/dhdaemon /sbin/syslogd /sbin/klogd /usr/sbin/acpid -c /etc/acpi/events -s /var/run/acpid.0 0.0 0.0 0.0 0.2 4820 1148 ? 4532 0.9 24276 10036 ? 20028 0. ın .0 0.0 0 0 ? 125 0. que conn tin´en (SIGCONT -18). 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.0 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.0 0. ıa n #kill pid.0 0.

Junio 2005. aumentar (disminuir prioridad) tambi´n lo puede hacer el usuario que lo ejecuto e nice -incremento orden a ejecutar renice nueva prioridad pid 16. ın . 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. e Jose Antonio Escart´ Vigo. En Linux hay m´ltiples y o ıa.3. implica m´s prioridad a Valores altos (positivos). 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. Las tareas o trabajos no son m´s que uno o varios comandos que se ejecutan utilizando o a un shell como int´rprete. Modificar prioridades: nice El n´mero nice marca la prioridad del proceso. 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. 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). menos prioridad Rango de prioridad: -20(m´xima) a 20 (m´ a ınima) Valor especial: -19.3. por defecto la hereda del u proceso padre. La prioridad din´mica del proceso se calcula en funci´n del n´mero nice.4. 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. u variadas formas tanto para los usuarios como para el sistema de crear tareas a ejecutarse en el futuro o de forma peri´dica. El ejemplo se muestra con el terminal 5. 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. Para no confundirnos es recomendable utilizar siempre el mismo terminal.Cap´ ıtulo 16. junto con el consumo de a o u CPU realizado Valores bajos (negativos).5. 16. CTRL+ALT+F5 y desde ah´ podemos comprobar ı que esta pasando y solucionar el problema.

16. 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. ın . Cron Existe otro tipo de tareas que se pueden ejecutar peri´dicamente conocidas como crons.sh 5:00PM tomorrow # ejecutara save_all. tambi´n se pueden usar las ıas e tres primeras letras del nombre del d´ en ingl´s) ıa e Jose Antonio Escart´ Vigo. 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.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. Este ofrece numerosas posibilidades.allow y /etc/at. Para ver todas las tareas de tipo at se utiliza el comando atq y para cancelar alguna. Minutos: Oscila entre 0 y 59 2. Este valor puede modificarse cuando se levanta el servicio atd que es el que se encarga de manipular estas tareas. 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. se enviar por correo Ctrl-d #sale del modo insertar tareas $at -f save_all. 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. 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.294 Servidor Linux para conexiones seguras de una LAN a Internet 16. Junio 2005. D´ del mes: Oscila entre 1 y 31 ıas 4.sh. El administrador del sistema puede especificar cuales usuarios pueden o no utilizar at en los ficheros /etc/at. At Para un usuario definir una tarea o trabajo a ejecutarse en un momento determinado puede utilizar el comando at. o sea tenga un valor inferior a 0.1. Los comandos que componen el trabajo por defecto se toman de la entrada est´ndar una vez invocado a el comando. 5:00PM $at -q Z -f script. 24 de sep. 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.5. Estas se nombran con todas las letras del alfabeto y tienen prioridad mayor los trabajos en las colas con “letras mayores”.5. Para definirlas o se emplea un fichero por usuario cuyo formato se explica a continuaci´n. o de un fichero utilizando la opci´n -f. Se pueden utilizar varias colas para colocar las tareas. atrm. Horas: Oscila entre 0 y 23 3.deny. a o Las fechas se especifican utilizando cinco indicadores separados por espacios: 1.2. D´ de la semana: Oscila entre 0 y 7 (0 y 7 corresponden al domingo. el camino a este fichero debe estar especificado a partir o del directorio home del usuario.8 por defecto.

podemos observar algunos ejemplos del uso de crontab: o $ $ $ $ export EDITOR=vim.5. This file also has a username field.ps 0 7 * 1-6.15. Opciones del crontab: -e: permite editar el fichero de crons.monthly El demonio que se encarga de que se ejecuten las instrucciones es crond. 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. Para separar india cadores de un mismo tipo se utiliza la coma. y para variar el incremento del rango a n se puede colocar /n despu´s del rango.30 * * backup part_one FILE = ~/docs/partners. 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. that none of the other crontabs do.img 0 8 31 12 * sendmother MAILTO = josan 0 8-16/2 4. ın . listar y borrar los crons.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. el signo “-”.txt INFORM = ~/docs/inform. Junio 2005. Jose Antonio Escart´ Vigo. Este permite editar. 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. Para evitar algunos errores en la sintaxis de estos ficheros no se editan directamente por los usuarios. para indicar rangos.10. crontab -e # editor por defecto vim export VISUAL=kwrite.weekly root test -x /usr/sbin/anacron || run-parts --report /etc/cron.9-12 mon sendmails TARGET = ~/especial/target.hourly root test -x /usr/sbin/anacron || run-parts --report /etc/cron.25.20.Cap´ ıtulo 16. 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. 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.daily root test -x /usr/sbin/anacron || run-parts --report /etc/cron. sino que se utiliza el comando crontab.

son la actualizaci´n de las bases o o de datos sobre las que trabajan los comandos locate y whatis. tareas semanales y tareas mensuales. ıan 16. por ejemplo. ın . se trasmiten al usuario correspondiente utilizando la mensajer´ local del sistema. actualiza el fichero de ese per´ ıodo. tanto la salida de errores como la est´ndar de todas a las tareas peri´dicas. o En este caso se emplea un fichero con formato similar al de los usuarios. /etc/cron. Este se emplea para las ıas. Algunas de las tareas que se hacen de forma peri´dica por el sistema.monthly run-parts /etc/cron. Es por ello que existe otro tipo de tareas peri´dicas: o o las anacrons.monthly/ respectivamente. Tareas peri´dicas o Un sistema Linux trae algunas tareas peri´dicas definidas por defecto y es posible a su vez crear otras. 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.hourly/. ı o Esto puede utilizarse. para descargar las bases de datos de los antivirus para Windows y que nuestros clientes las obtengan de un directorio local.3. a Jose Antonio Escart´ Vigo. o ıa Para el caso de las tareas del sistema. Adem´s de indicar el a intervalo de d´ el delay y el comando se especifica un nombre para el trabajo. 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).5. En cada directorio se colocan los programas o comandos a ejecutarse peri´dicamente de acuerdo al o per´ ıodo correspondiente. A cada uno de estos grupos le corresponde un directorio: /etc/cron. Este fichero se almacena en /var/spool/anacron/ y slo contiene o una fecha. a apague durante un tiempo mayor que el especificado.4.296 Servidor Linux para conexiones seguras de una LAN a Internet 16.daily run-parts /etc/cron.weekly run-parts /etc/cron. que se almacena en /etc/crontab.5.weekly 30 15 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. Los trabajos anacron se almacenan en el fichero del sistema /etc/anacrontab. cuando el servicio cron logra ejecutar las tareas correspondientes a un per´ ıodo. as´ como la rotaci´n de las trazas del sistema. o sea. Junio 2005.daily 7 10 cron. Estas se ejecutan cada cierto tiempo especificado en d´ En caso de que la m´quina se ıas. 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. Las tareas del sistema se organizan en cuatro grupos: tareas que se ejecutan cada una hora.weekly/ y /etc/cron. 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. Al igual que para las tareas que se crean con at. para cada trabajo anacron se indica un tiempo en d´ y una ıas espera (delay). tareas diarias. y cuando llega anacron (que se demora m´s) ya no tiene que ejecutar las tareas. se env´ al usuario root a menos que se defina lo contrario.monthly Podr´ pensarse que puede ocurrir que un mismo programa se ejecute por la v´ cron y por la anacron. O sea.daily/. /etc/cron. Si no se encuentra instalado. 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´.

Parte IV Valoraci´n final o .

.

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

Es necesario desactivarlo o hacer que el NIDS ignore la IP de Nessus. 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. indicaremos la o las direcci´nes IP de las m´quinas a escanear.. Tambi´n a e podemos especificar unas reglas (rules) concretas para ese usuario. En target.1. indicaremos los datos a˜adidos en la creaci´n del usuario (login/password.1 7332 4712 ? 2316 772 pts/3 Ss S+ 13:22 13:23 0:00 nessusd: waiting 0:00 grep nessus 17. o permitir que acceda desde todas las redes. para ello hay que entrar en: http://www. etc). n En Scan Options. En credentials. Se puede elegir que el usuario acceda desde una red concreta. 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. Hay que tener cuidado con Denial of service (DoS) por razones obvias. colocaremos la cuenta.nessus. especificaremos los puertos a escanear y la herramienta a utilizar. Junio 2005. para ello seguiremos las instrucciones de pantalla.0 0. .9 0. n o En la pesta˜a de plugins (los tipos de ataques). Para esta ultima configuraci´n es neceario editar el archivo de reglas /etc/nessus/nessusd. seleccionaremos todos si queremos un escaneo n completo. Ejecuci´n de Nessus o Para lanzar el cliente en modo gr´fico. lo arrancamos en background: #nessusd -D o #nessusd --background Si ejecutamos: # ps aux | grep ’nessus’. una vez ejecutado el siguiente comando: #nessus-adduser Entre las opciones que se presentan. 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. ın . es mucho m´s seguro el sistema de certificados. si es que lo queremos escanear.0 1.300 Servidor Linux para conexiones seguras de una LAN a Internet Creamos un usuario para lanzar el programa. o a Jose Antonio Escart´ Vigo. contrase˜a y dominio Samba. se va a volver loco al ejecutar Nessus. . Para ejecutarlo podemos seleccionar las siguientes opciones: En Nessusd Host. para validar el usuario se puede elegir entre el sistema de login/password o certificados digitales.2. ejecutaremos el siguiente comando: #nessus a Tambi´n se puede iniciar en modo comando.org/register/ poner o un correo electr´nico donde se nos reportar´ la clave.

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

Se puede descargar en: http://enterprise. Otros interfaces de configuraci´n o Tambi´n podemos ejecutar otras interfaces gr´ficas para Nessus: e a NPI: Interfaz PHP.harvard. Se puede descargar en: http://www. n o 17.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. ın .1. Junio 2005.3.netsecuritysvcs.com/ncc/ Jose Antonio Escart´ Vigo.2: Vulnerabilidades encontradas en el sistema B´sicamente podemos decir que la seguridad del servidor esta controlada.edu/pub/nessus-php/ NCC: Nessus Command Center.bidmc. A esto unicamente habr´ a ´ ıa que a˜adir alguna actualizaci´n de versiones para parchear posibles exploits descubiertos recientemente.

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

4 Protocol mismatch.5.168.168.168.0.4.25 . por lo que es interesante el utilizar alguno de a los modos de escaneos invisibles que se pueden ejecutar con Nmap.168.0. Connection closed by foreign host.372 seconds Depu´s de descubrir los servicios que ofrece la m´quina. evitando al mismo tiempo o el comentado registro en los ficheros logs.example. .insecure..10 22 Trying 192. or Null scan.19 rc1-rc7).sarge.192..-sN Stealth FIN.6. Xmas. tales como -sF.0.5.168.2. .10.4. que muestra la salida del Nmap en un formato que les encantar´ a los o a Script-kiddies.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 -. en /var/log/messages).1p1 Debian-8.54B3T431 ( www.6.html Estos escaneos de m´quinas y redes. la podemos observar en el siguiente ejemplo: #nmap -oS .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. ın .10.1n$ecur3.0. tal y como lo demuestra al implementar la opci´n -oS. .X|2. 2.10+ $taRt|ng nmap V.org (192.2.-sX.0.X|2. Junio 2005. Linux 2.ORg/nmap/ ) |nt3r3sting pOrtz 0n debian.10 -O Starting nmap 3.8.81 ( http://www.304 Servidor Linux para conexiones seguras de una LAN a Internet #nmap 192. Existen muchas m´s opciones y alternativas. tiene un gran sentido de humor.org/nmap/ ) at 2005-06-11 19:27 CEST Interesting ports on 192.0. Escape character is ’^]’. suelen dejar huellas de su ejecuci´n en los registros logs de las a o m´quinas escaneadas (por ejemplo.6.0. el desarrollador de esta herramienta.1 !P aDdr3Sz (1 hOst uP) scANnEd !n 3 $econdS Jose Antonio Escart´ Vigo.274 days (since Sat Jun 11 12:52:40 2005) Nmap finished: 1 IP address (1 host up) scanned in 2. Connected to 192.168.3 .2 Linux 2.X OS details: Linux 2.6. as´ como a la p´gina man del mismo.0-OpenSSH_3. SSH-2. por lo que es m´s que recomendable acceder a la docua a mentaci´n incluida con Nmap.8 Uptime 0. o ı a #nmap --help #man nmap #lynx nmap\manpage-es. Fyodor.3 or Gentoo 1. si se conoce alguna vulnerabilidad de esa versi´n a o o podr´ ser atacada: telnet <host> <puerto> ıa # telnet 192. de forma que se evitar finalizar la negociaci´n TCP. con un simple telnet hemos obtenido el sistema e a operativo instalado en la m´quina y la versi´n de ssh.168.

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

Get Indentd Info: -I El servicio Identd que se ejecuta en algunas m´quinas puede propora cionar informaci´n adicional sobre el host consultado. generalmente los puertos conocidos por debajo de 1024.536 puertos disponibles.75 segundos por host y 0. 17. Otras opciones de Nmap El cuadro 17. Cuadro 17. Port Range: -p port_range De forma predeterminada Nmap examina los 65... esta examinando. -e interface_name Opci´n o Don’t Resolve: -n Jose Antonio Escart´ Vigo.5. con esta opci´n solo examina ese rango. o -F 4 Igual que Normal pero la frecuencia del paquete se recorta a 5 minutos por host y 1. 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. que fragmenta los paquetes de escaneado a mediada o que sale. la identificaci´n de SO y otras opciones.4 recoge una lista de otras opciones para Nmap que controlan cosas como la resoluci´n o DNS.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. pero podemos perder hosts. o Resolve All: -R Esta opci´n intenta resolver las direcciones en el rango.25 segundos por paquete de sondeo -F 5 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. Fragmentation: -f Opci´n sigilosa. ın . . Los paquetes son montados en la m´quina atacada y algunas a veces pueden burlar los cortafuegos e IDS. as´ le resulta m´s dificil saber que m´quina le esta ı a a decoy_address2. escaneando. Fast Scan: -F Escanea los puertos especificados. Si queremos m´s detalles podemos recurrir al a manual de Nmap. ya que el escaneado nunca terminar´.4: Opciones deversas de Nmap descripci´n o Agiliza el escaneado. e incluso as´ podr´ a ı ıamos perder datos. incluso aunque o no est´n respondiendo. Junio 2005. 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.3 se.2. o Use Decoy: -D Se introducen IPs se˜uelo en el trafico mandado a la m´quina que se n a decoy_address1. sobre todo en redes con DHCP. Existen m´s opciones para ajustar nuestros escaneados o a disponibles utilizando la interfaz de l´ ınea de comandos.306 Servidor Linux para conexiones seguras de una LAN a Internet Frecuencia Paranoid Sneaky Polite Normal Agressive Insane Cuadro 17.

vnmap. Sin embargo. aunque es algo bastante probable. 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. Si existe un servidor Web ejecut´ndose u a ah´ normalmente podremos obtener una respuesta mediante la introduccion del comando GET/HTTP. Sin embargo. a a 17. seg´n la siguiente tabla: e u Cuadro 17. . As´ se devolver´ la p´gina inicial de ´ ı a a ındice como HTML (no como una bonita p´gina Web).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. Cualquier otro servicio o puerto identificado. KNmapFE. o a a Este n´mero de puerto representa un servicio de correo como SMTP o POP. ın . Si no lo podemos encontrar en dicha lista. ı. e importarlos en otro programa. “Audite la seguridad de sus Redes antes que los chicos malos lo hagan” (Audit your a network security before the bad guys do). no significa que un servidor Web se est´ ejecutando en el host. u Podemos guardar los registros Nmap como n´meros de formato. Los troyanos y el u e software de conversaci´n se muestran normalmente como servicios desconocidos.org/nmap/ a Jose Antonio Escart´ Vigo. . Pruebas del sistema 307 17. Nmap tambi´n codifica con colores los puertos encontrados. interfaz Nmapfe o a Incluido con Nmap se encuentra nmapfe que es un interfaz gr´fica. u Estos son servicios que pueden proporcionar alguna informaci´n sobre la m´quina o el sistema o a operativo. 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. Salida de Nmap Nmap produce un informe que muestra cada direcci´n IP encontrada. 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.5. si dichas opciones no fuesen suficientes. Con otros servicios como FTP o SMTP podemos llevar a cabo a tareas similares. lo que no significa a a que deber´ ıamos ignorar cualquier n´mero inusual que no est´ resaltado o en negrita.2. tal como dice uno de los banner de su p´gina oficial. Kmap. 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.Cap´ ıtulo 17. . los puertos descubiertos escuo chando dicha IP y el nombre conocido del servicio (si lo tiene). s´lo porque Nmap obtenga una respuesta sobre el puerto 80 e imprima o “http”. e filtrado o cerrado. que permite ejecutar Nmap usando a el rat´n. ) 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.6.7.insecure. como Telnet o FTP. Configuraci´n gr´fica de Nmap. Estos son los m´s atractivos para los intrusos. pero podremos a verificar si un servidor se est´ ejecutando. a Nlog (sin licencia GPL) o alguna herramienta parecida puede ayudarnos a interpretar la salida Nmap. Web-NMap. 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. Color Rojo Azul Negrita Negro Como podemos comprobar en el cuadro 17. La p´gina oficial de Nmap es: http://www. Junio 2005. QNMap. 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.2. Tambi´n muestra si el puerto se ha abierto. incluyendo el texto simple o legible u por la m´quina.

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

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. 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.1. 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 . 18. Swich y cables Material de oficina Local.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.

Modificaciones a los costes econ´micos o Debido a la falta de experiencia en sistemas Linux y en la creaci´n de manuales. Junio 2005. Este aumento en el n´mero de horas en ning´n caso a derivado en un retraso en los plazos de entrega. Coste 800e 1. por dos tercios la mano de obra.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”. se puede encontrar una valoraci´n aproximada de los costes totales del proyecto. ı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. hacia la o o elaboraci´n de un “Manual de instalaci´n de servidores en Linux”.766e 14. de valor respecto al proyecto original.3. de unos 7. haciendo inviable un estudio de este tipo en pymes. Se podr´ decir que respecto a los objetivos iniciales.500e Administrador de sistemas Documentalista Varios 220 h. Manejando estas cantidades. Y atienden a un mejor aprovechamiento y usabilidad de los contenidos del proyecto. Parece claro. o o Esto supodr´ un aumento. 160 h. configurar servicios y realizar las pruebas Generar informes y documentar el proyecto — N.310 Servidor Linux para conexiones seguras de una LAN a Internet 18. ın . Costes En la siguiente tabla. Resumen econ´mico o El coste del proyecto esta muy por encima de lo esperado. 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. o Hasta las 400 horas en Documentaci´n: Debido al cambio de orientaci´n del proyecto.2.000e.000e. 50 h.500e 2. que el factor que influye de una forma determinante es la mano de obra necesaria. o basada en los sueldos/hora asignados a cada cargo del personal. Cuadro 18. subiendo el precio ıa total aproximado a los 22.o de horas 20 h. — TOTAL: 5.4.400e 4. un proyecto de este estilo solo est´ al alcance de empresas donde se vaya a a utilizar este documento de manera intensiva. estableciendo el valor del material en solamente un tercio del total. a a ´ Jose Antonio Escart´ Vigo. la configuo o raci´n de los servicios y las pruebas necesarias.966e 18. u u ya que estos han sido respetados con riguridad.000e. con un valor aproximado de 15. 18.

o • Las redes inal´mbricas producen graves problemas de seguridad intrinsecos e inevitables. si el proceso no pod´ ser reproduccido. La conexi´n EAP-TLS a trav´s de certificados digitales no es muy flexible a la incorporao e ci´n de nuevos usuarios. Se necesita un punto de acceso (AP) que acompa˜e al servidor. fue decidio a la mitad del proyecto. Este cambio de orientaci´n. n El aumento de las horas dedicadas. El proyecto se ha adaptado a un entorno m´s general. ofrecidas por los ISP. que no los plazos de entrega. n ıa 2. que por ejemplo podr´ ser los empleados de otra oficina. donde los usuarios wifi o o acceden al servidor mediante usuario y contrase˜a. o No es viable un servidor portatil corporativo e itinerante: • S´lo puede ser utilizado para servicios concretos. Este problema lo podr´ ıamos solventar agregando a nuestro sistema un programa de validaci´n de conexi´n en nuestro sistema por web. como NoCat. a menos que se dispusiera de la o ıa misma m´quina y la misma infraestructura. no compensa las desventajas. para que los conociemientos adquiridos.” o . como podr´ ser un router. lo ultimo ´ que alguien querr´ es ponerse en l´ ıa ınea sin protecci´n alguna. ıa n • La conexi´n es un problema. para una empresa. puedan ser aprovechados por un o n´mero mayor de usuarios de escritorio y administradores de sistemas. basado a a en la distribuci´n Debian Sarge. troyanos. todav´ estan en pa˜ales. a • Las conexiones itinerantes a Internet. spammers y abogados de litigios de patentes. seguridad y redimiento.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. desde los siguientes puntos de vista: o 1. que abarca desde la elecci´n o o o de la distribuci´n. • La descentralizaci´n se apoya en: Modularidad. de nada serv´ documentar la inso ıa talaci´n de un servidor Linux. 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. en otra o ıan ciudad. gusanos. 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. lleno de virus. Puede ser un o lugar muy sucio. fue debida a que el proyecto evoluciono hacia la elaboraci´n de un: “Manual de instalaci´n para servidores Linux”.

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

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

.

Parte V Ap´ndices e .

.

chgrp y chmod touch <fichero> find y locate grep find / | grep ’cadena’ df du -sh cat. modo texto Configurar X. modo texto Editores de texto.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 . 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..:2. :3. que se encuentre en la variable $PATH Entorno gr´fico X-Windows a Comando startx startx -. etc. more y less <comando>|more y <comando>|less vim y emacs nedit. xf86config xf86cfg CTRL+ALT+BACKSPACE Descripci´n o Iniciar sesion X Abrir nuevas sesiones Configurar X. modo gr´fico a Partir ficheros Devuelve el Path de un ejecutable. modo gr´fico a Salir de las X . chown.

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. ın .tar.gz <archivo> gzip -d tar gzip Descripci´n o Descomprimir un .gz Descomprimir un . Junio 2005.tar.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>.bz2 Comprimir un archivo o directorio Descomprimir un .tar.

ISO-8859-15 export LC_ALL=es_ES@euro La pr´xima vez que hagamos login con el usuario cargar´ el nuevo perfil. para ver “los locales” (idiomas locales) que tiene el usuario que se encuentra actualmente conectado. con el mismo comando que antes: $locale .gen. 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. hay que ejecutar el siguiente comando: $locale Si adem´s queremos saber que traducciones locales tenemos disponibles en el sistema. no se encuentra disponible entre las locales del sistema las podemos incluir en el archivo de configuraci´n de locales. /etc/locale.bash profile: export LANG=es_ES.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. 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. Por ejemplo en el archivo ˜/. Podemos comprobamos que o a “los locales” son los correctos. ejecutaremos la a siguiente instrucci´n: o $locale -a Si el idioma castellano.

se puede consultar mediante: o $man castellanizar Jose Antonio Escart´ Vigo. si es que tienen los archivos del idioma. ın . Pasa eso tenemos que a˜adir las siguientes l´ n ıneas al fichero /etc/console-tools/config. Hay que ejecutar el siguiente comando. podemos habilitar tambi´n el soporte para el euro e en la consola. seleccionando las opciones que nos interesen: #dpkg-reconfigure locales.320 Servidor Linux para conexiones seguras de una LAN a Internet Una vez tengamos disponible el idioma castellano. 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. Este documento esta basado en la documentaci´n disponible en Debian. Junio 2005.

gnupg/ /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 .gen /etc/console-tools/config /etc/webmin/miniserv.bashrc /etc/ssh/ssh config /etc/ssh/sshd config ˜/.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.conf /etc/xinetd.vimrc /etc/profile ˜/.d/* /etc/rc#.bash profile ˜/.bash logout ˜/.deny /etc/crontab /var/spool/cron/crontabs/<usuario> /etc/anacrontab /etc/locale.profile ˜/.conf /etc/squid/squid.Ap´ndice C e Archivos de configuraci´n o Archivo /etc/lilo /etc/inetd.conf /etc/init.allow /etc/at.xinitrc ˜/.bash login ˜/.d /etc/passwd /etc/group /etc/skel/* /etc/fstab /etc/X11/XF86Config-4 ˜/.

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

pulsando la tecla Esc. a Modo inserci´n o Al editar un fichero entramos en el modo comando por defecto. una vez ´ conocidos los comandos b´sicos). pasemos a detallar las m´s utilizadas: a u: Deshacer la ultima acci´n. este ultimo es m´s completo y tiene m´s ´ a a opciones. Me voy a centrar. en caso de que no exista se crear´. 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 .Ap´ndice F e Manual del editor Vim (Vi mejorado) Personalmente utilizo el editor Vim frente al editor Emacs. Modo comando El modo comando del vim tiene multitud de opciones. a Tiene dos modos de trabajo. Cabe destacar que en Vim. principalmente o en el modo comando debido al gran n´mero de opciones disponibles. . a diferencia de otros editores se pueden ´ o deshacer infinitos cambios. se puede escribir lo que se quiera y luego volver al modo o comando. . pero no me son utiles. . si lo que queremos es entrar en el modo inserci´n. u Edici´n de ficheros o Para editar un fichero simplemente hay que hacer: $vi <archivo>. 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. el modo comando y el modo inserci´n. Prefiero un editor potente y a la vez simple (Vim es muy simple.

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. Por ejemplo si hacemos !ls inserta la salida de ls en nuestro fichero. En dicho fichero tenemos o una serie de opciones que podemos activar o desactivar seg´n lo que prefiramos. resaltar´ los resultados coincidentes con el patr´n.php?name=News&file=article&sid=2162 Jose Antonio Escart´ Vigo.com/modules. puede ser consultado en la siguiente direcci´n: o http://www. (punto): Repite el ultimo comando ´ Personalizaci´n del Vim o Se puede personalizar Vim mediante un archivo de configuraci´n. ın .todo-linux. el ˜/. . 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.vimrc. las principales son: u syntax on: Activa el coloreado de sintaxis. 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. ´ 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. Junio 2005. si no se ha guardado bloquea la salida q!: Fuerza a salir sin guardar x: Guardar y salir x!: Guardar y salir. forzando la escritura.330 Servidor Linux para conexiones seguras de una LAN a Internet q: Salir.

Ap´ndice G e Gu´ r´pida de IPTables ıa a IPTables es una herramienta para filtrar paquetes del kernel (2. 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 . 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.4x o posterior).

Junio 2005.0/24 -p TCP -j DROP -s 192.168.144 -j DROP iptables -A INPUT -s 195.8.0.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.0/24 -p TCP --dport 25 -j ACCEPT -s 192.0.0/24 -j DROP iptables -A INPUT -s 217.172.0/24 -j DROP iptables -A INPUT -s 155.116.238. .76. ın .201. 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.112/29 -j DROP iptables -A INPUT -s 217. 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. .168. . ver las reglas introducidas • iptables -F.0.168. . 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. .332 Comandos fundamentales: Servidor Linux para conexiones seguras de una LAN a Internet • iptables -L. .116. borrar todas las reglas Con #man iptables tenemos todas las opciones.0.0/24 -p TCP --dport 80 -j ACCEPT Si queremos hacer un proxy transparente para la salida de la red interna.0.0/16 -j DROP Jose Antonio Escart´ Vigo.

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

Junio 2005.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. o o Los mayores cambios para Sarge incluyen reemplazar el antiguo sistema de instalaci´n con discos o flexibles. esta distribuci´n dispone de oportunas actualizaciones o de seguridad. o o a La fecha de publicaci´n. las metas de la versin y la fecha en la que se har´ p´blica no se determinan con a u antelaci´n. En otras palabras. Por tanto. sitio en el cual humildemente me ubico. por el nuevo instalador de Debian. se ha pospuesto una semana. ın . Esta situaci´n es temporal. y usar GCC 3.8 y XFree86 4. inicialmente prevista para el 30 Mayo. Como es usual. Jose Antonio Escart´ Vigo. las actualizaciones de seguridad de la distribuci´n “en pruebas” las o gestiona el equipo de seguridad. 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”. ya que la distribuci´n en pruebas est´ congelada.95. Tambi´n se ha llevando a cabo la o e introducci´n de nuevas versiones de programas como son Perl 5. y pasa o a ser el 6 de junio de 2005.3 como el nuevo compilador predeterminado en arquitecturas que hasta ahora usaban la versi´n 2.3. o Como despedida solo cabe decir. “Debian publica la nueva versi´n cuando es el momento de hacerlo”.

org/ /licenses/by-sa/2. 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. . e o Creative commons surge como una soluci´n de compromiso entre ambas posturas. . la visi´n sobre la protecci´n de de obras creativas tiende a los extremos. los o creadores pueden elegir qu´ derechos quieren reservarse y qu´ usos de su obra quieren permitir. 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. herramienta en catal´n. no meramente traducidas al castellano y al catal´n. . o En diciembre de 2002. ıas. De esta forma. 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. el autor no se cita al no figurar en el articulo.org/license/?lang=ca. m´sica. n Con demasiada frecuencia. . a http://creativecommons. acogida a la licencia http://creativecommons. . pero. sino tambi´n y sobre todo. las licencias Creative Commons no est´n pensadas para software. fotograf´ literatura. pel´ a u ıculas. 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. que cualquier a puede utilizar de forma completamente gratuita para proteger sus creaciones. . “Reconocimiento-CompartirIgual” la misma bajo la que se encuentra este proyecto. sino para e a otros tipos de trabajos creativos: p´ginas web. al contrario ´sta. Las licencias de Creative Commons se inspiran en la licencia a GPL de la Fundaci´n para el Software o Libre.info. a 0 Estos datos han sido obtenidos de la web http://www. tesis doctorales. http://creativecommons. herramienta en castellano. . pero en la que no tienen absolutamente ninguna protecci´n.org/license/?lang=es. han creado una herramienta online. cursos . adaptadas a la legislaci´n a e o espa˜ola. Creative Commons lanza el primer conjunto de licencias. Una visi´n en la que los creadores tienen total libertad para ıa o hacer lo que les d´ la gana.elcuaderno. 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. .0/. te ofrece la licencia m´s adecuada.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. .

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. distribuir y comunicar p´licamente la obra. o Estas son las condiciones que se pueden escoger: Attribution/Reconocimiento: Permites que otras personas puedan copiar. o o Una vez que has escogido las condiciones que quieres. u ı Siempre que: • 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. Junio 2005. en este momento hay 6). 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. distribuir y comunicar p´licamente la obra as´ como hacer obras derivadas. ın . combinando las u e a o distintas condiciones que puedes imponer. distribuir y comunicar p´licamente la obra.336 Servidor Linux para conexiones seguras de una LAN a Internet Creative commons no supone renunciar a proteger tu trabajo. Siempre qu´: u e • Te citen y te reconozcan como el autor original de la obra. transforme o genere una obra derivada a partir de tu obra. • Al reutilizar o distribuir la obra. tienen que dejar bien claro los t´rminos de la licencia la obra e • No se alterare. puesto que la condici´n “compartir igual” s´lo es aplicable a las obras derivadas. incluidos los posibles usos comerciales de la obra. Share Alike/Compartir igual : Permites copiar. 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. sino que implica que puedes escoger qu´ derechos prefieres reservarte y qu´ derechos quieres ceder a los dem´s. hacer u obras derivadas y hacer un uso comercial de esta obra. tienen que dejar bien claro los t´rminos de la licencia la obra e Noncommercial/No comercial : Permites que otras personas puedan copiar. hay hasta once tipos de licencias distintas de las que escoger (adaptadas a nuestra legislaci´n. accedes a la licencia apropiada de tres maneras: Resumen simple: Un resumen en un lenguaje simple que todo el mundo puede entender. • Al reutilizar o distribuir la obra. • Al reutilizar o distribuir la obra. u o Jose Antonio Escart´ Vigo. C´digo legal: el texto completo de la licencia dirigido fundamentalmente a abogados. distribuir y comunicar p´licamente la obra as´ como hacer obras derivadas. No se pueden combinar las condiciones “compartir igual” y “sin obra derivada”. junto con los iconos representativos de la licencia. Siempre que: u ı • Te citen y te reconozcan como el autor original de la obra. incluyendo el hacer un uso comercial de tu obra.

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

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

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

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

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

.

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

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)//-->