ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi...

115
ESCUELA TÉCNICA SUPERIOR DE INGENIEROS INDUSTRIALES Y DE TELECOMUNICACIÓN Titulación: INGENIERO TÉCNICO EN INFORMÁTICA DE GESTIÓN Título del proyecto: ADMINISTRACIÓN DE UNA RED BASICA EN ENTORNO GNU/LINUX Ekaitz Hernández Troyas Cándido Aramburu Mayoz Pamplona, Fecha de defensa

Transcript of ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi...

Page 1: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

ESCUELA TÉCNICA SUPERIOR DE INGENIEROS

INDUSTRIALES Y DE TELECOMUNICACIÓN

Titulación:

INGENIERO TÉCNICO EN INFORMÁTICA DE GESTIÓN

Título del proyecto:

ADMINISTRACIÓN DE UNA RED BASICA EN ENTORNO

GNU/LINUX

Ekaitz Hernández Troyas

Cándido Aramburu Mayoz

Pamplona, Fecha de defensa

Page 2: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Universidad Pública de Navarra

Ekaitz Hernández Troyas Nafarroako Unibertsitate Publikoa

2

ÍndiceLISTADO DE FIGURAS ..................................................................................................................... 5

PREFACIO ........................................................................................................................................... 9

1. OBJETIVOS DEL PROYECTO .......................................................................................................................... 9 2. MOTIVACIÓN ........................................................................................................................................... 9 3. PROPÓSITO Y AUDIENCIA DE ESTE LIBRO ....................................................................................................... 9 4. PRERREQUISITOS .................................................................................................................................... 10 5. RECURSOS ............................................................................................................................................. 11 6. TEMAS DE LA MEMORIA ........................................................................................................................... 11

1. ANÁLISIS DE UNA RED LOCAL SOBRE ETHERNET Y COMO CONFIGURAR UN HOST

EN ESTA ............................................................................................................................................ 13

1.1. INTRODUCCIÓN.................................................................................................................................... 13 1.2. PRERREQUISITOS .................................................................................................................................. 13 1.3. FICHEROS BÁSICOS A TENER EN CUENTA PARA LA CONFIGURACIÓN ................................................................. 13 1.4. COMANDOS NECESARIOS PARA LA CONFIGURACIÓN .................................................................................... 13 1.5. ANÁLISIS DE NUESTRA RED LOCAL ............................................................................................................ 14

1.5.1. Comprobación hardware ....................................................................................................... 14 1.5.2. Obteniendo información de nuestra red local....................................................................... 15

1.6. CONFIGURANDO UN HOST DE NUESTRA RED LOCAL .................................................................................... 20 1.6.1. Asignando la máscara e ip al host ......................................................................................... 20 1.6.2. Asignando alias en nuestro host ............................................................................................ 21 1.6.3. Crear el enrutamiento del host .............................................................................................. 22 1.6.4. Asignando ips del servidor DNS en host ................................................................................ 22 1.6.5. Comprobar que la conexión esté correcta ............................................................................. 24 1.6.6. Configuración persistente de la configuración ...................................................................... 25

2. SEGURIDAD DE LA RED LOCAL DE ATAQUES EXTERIORES ......................................... 26

2.1. INTRODUCCIÓN.................................................................................................................................... 26 2.2. PRERREQUISITOS .................................................................................................................................. 27 2.3. MECANISMO DE UN CORTAFUEGOS (FIREWALL) ......................................................................................... 27 2.4. TIPOS DE CONFIGURACIÓN REALIZADOS .................................................................................................... 28

2.4.1. Ejemplo sencillo de configuración de un host ....................................................................... 28 2.4.2. Configuración del cortafuegos de mi host en la red lab.unavarra.es ................................... 30

3. AUDITORÍA DEL SISTEMA EN UNA RED LOCAL .................................................................. 33

3.1 INTRODUCCIÓN..................................................................................................................................... 33 3.2. PRERREQUISITOS .................................................................................................................................. 33 3.3. FUNCIONAMIENTO DEL SISTEMA DE MONITORIZACIÓN. ................................................................................ 33 3.5. FICHEROS COMUNES DONDE SE GUARDAN LOS LOGS ................................................................................... 37

3.5.1. Fichero /var/log/syslog ......................................................................................................... 37 3.5.2. Fichero /var/log/messages .................................................................................................... 37 3.5.3. Fichero /var/log/daemon.log ................................................................................................ 37 3.5.4. Fichero /var/log/wtmp .......................................................................................................... 38 3.5.5. Fichero /var/run/utmp .......................................................................................................... 38 3.5.6. Fichero /var/log/lastlog ........................................................................................................ 39 3.5.7. Fichero /var/log/faillog ......................................................................................................... 39 3.5.8. Fichero /var/log/debug ......................................................................................................... 40

3.6. COMO REALIZAR LOGS REMOTOS ............................................................................................................. 40

4. COPIAS DE SEGURIDAD DE UN HOST ................................................................................... 42

4.1. INTRODUCCIÓN.................................................................................................................................... 42 4.2. PRERREQUISITOS .................................................................................................................................. 42

Page 3: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

4.3. APLICACIONES DE COPIAS DE SEGURIDAD .................................................................................................. 42 4.3. FICHEROS A REALIZAR EL BACKUP ............................................................................................................. 44 4.4. COMANDOS PARA REALIZAR BACKUPS. ..................................................................................................... 44

4.4.1. Dump ...................................................................................................................................... 44 4.4.2. tar ........................................................................................................................................... 48 4.3.3. cpio ......................................................................................................................................... 50 4.4.4. dd ............................................................................................................................................ 50 4.4.5. cp ............................................................................................................................................ 50

5. ADMINISTRACIÓN DE CUENTAS Y GRUPOS EN HOST ...................................................... 52

5.1. INTRODUCCIÓN.................................................................................................................................... 52 5.2. PRERREQUISITOS .................................................................................................................................. 52 5.3. ADMINISTRAR CUENTAS ........................................................................................................................ 52 5.4. CAMBIAR UNA CONTRASEÑA A UNA CUENTA YA CREADA .............................................................................. 53 5.5. CAMBIAR CARACTERÍSTICAS DE UNA CUENTA ............................................................................................. 53 5.6. ELIMINAR CUENTAS .............................................................................................................................. 54 5.7. ADMINISTRAR GRUPOS .......................................................................................................................... 54

6. HERRAMIENTAS PARA AUTOMATIZAR EL PROCESO DE ADMINISTRACIÓN DE UNA

RED LOCAL ...................................................................................................................................... 56

6.1. INTRODUCCIÓN.................................................................................................................................... 56 6.2. PRERREQUISITOS .................................................................................................................................. 56 6.3. HERRAMIENTAS PARA LA ADMINISTRACIÓN ............................................................................................... 57

6.3.1 Shell scripts .............................................................................................................................. 57 6.3.2. Ejecución de comandos en multiples maquinas mediante ClusterSSH ................................. 59 6.3.2. Utilidades de manipulación de flujo de datos. ...................................................................... 60 6.3.3. Apagado del sistema .............................................................................................................. 62 6.3.4. Arranque del sistema ............................................................................................................. 63 6.3.5. Procesos periódicos ................................................................................................................ 64 6.3.6. Creación de repositorios personalizado mediante AptonCD ................................................ 65

7. SAMBA .......................................................................................................................................... 69

7.1. INTRODUCCIÓN.................................................................................................................................... 69 7.2. PRERREQUISITOS .................................................................................................................................. 69 7.3. INSTALACIÓN DEL SERVIDOR Y CONFIGURACIÓN DEL SERVIDOR ...................................................................... 69

7.3.1. Instalar paquetes ................................................................................................................... 69 7.3.2. Funcionamiento del fichero de configuración /etc/samba/smb.conf .................................. 70 7.3.3. Configurar sección global....................................................................................................... 70 7.3.4. Configurar sección homes ...................................................................................................... 71 7.3.5. Creación de secciones propias ............................................................................................... 71 7.3.6. Reinicio del demonio samba .................................................................................................. 71 7.3.7. Comprobando sintaxis del fichero /etc/smb.conf ................................................................. 72 7.3.8. Listar servicios ........................................................................................................................ 72

7.4. CONEXIONES DEL CLIENTE AL SERVIDOR SAMBA .......................................................................................... 73 7.4.1. Paquetes necesarios en el cliente en Linux ........................................................................... 73 7.4.2. Conectarse desde Linux (cliente) a un servidor samba en Linux (servidor) .......................... 73 7.4.3. Conectarse desde Windows XP (cliente) a un fichero compartido mediante samba en Linux (servidor) .......................................................................................................................................... 74 7.4.4. Conectarse desde Linux (cliente) a fichero compartido por Windows XP (servidor) ............ 77 7.4.5. Conectarse desde Windows (cliente) a impresora en Linux (servidor) ................................ 78 7.4.6. Conectarse desde Linux (cliente) a impresora en Windows Vista (servidor) ....................... 78 7.4.7. Montar automáticamente en Linux un fichero mediante /etc/fstab ................................... 82

8. NFS................................................................................................................................................. 84

8.1. INTRODUCCIÓN.................................................................................................................................... 84 8.2. PRERREQUISITOS .................................................................................................................................. 84 8.3. FICHEROS BÁSICOS A TENER EN CUENTA PARA LA CONFIGURACIÓN ................................................................. 84

Page 4: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

8.4. PASOS PARA INSTALAR NFS ................................................................................................................... 85 8.4.1. Instalación de paquetes ......................................................................................................... 85 8.4.2. Exportando ficheros ............................................................................................................... 85 8.4.3. Reinicio del demonio .............................................................................................................. 85 8.4.4. Comprobar servicios ............................................................................................................... 86 8.5.5. Montar fichero en el cliente ................................................................................................... 87

9. UTILIZACIÓN DE NIS Y COMO COMPLEMENTARLO CON NFS ......................................... 89

9.1. INTRODUCCIÓN.................................................................................................................................... 89 9.2. PRERREQUISITOS .................................................................................................................................. 89 9.3. FICHEROS BÁSICOS A TENER EN CUENTA PARA LA CONFIGURACIÓN ................................................................. 89 9.4. PASOS PARA INSTALAR NIS EN LA PARTE DEL SERVIDOR. ............................................................................... 90

9.4.1. Instalar NIS y los paquetes necesarios .................................................................................. 90 9.4.2. Configurar accesos a los servicios .......................................................................................... 90 9.4.3. Establecer el nombre del dominio NIS ................................................................................... 91 9.4.4. Establecer ip del servidor en yp.conf ..................................................................................... 91 9.4.5. Establecer que host trabaja como servidor ........................................................................... 92 9.4.6. Establecer accesos a ypserv ................................................................................................... 92 9.4.7. Indicar a ypserv que trabajaremos con /etc/shadow ........................................................... 92 9.4.8. Creación de mapas NIS ........................................................................................................... 93 9.4.9. Arrancar demonios ................................................................................................................. 93 9.4.10. Comprobación correcto funcionamiento del servidor ......................................................... 93

9.5. PARTE CLIENTE .................................................................................................................................... 94 9.5.1 Instalar NIS y los paquetes necesarios.................................................................................... 94 9.5.2. Configurar accesos a los servicios .......................................................................................... 94 9.5.3. Establecer el nombre del dominio NIS ................................................................................... 94 9.5.4. Arrancar NIS ........................................................................................................................... 94

9.6. COMPLEMENTAR NIS CON NFS .............................................................................................................. 94

10. COMO MONTAR UN SERVIDOR DHCP ................................................................................. 95

10.1. INTRODUCCIÓN ................................................................................................................................. 95 10.2. PRERREQUISITOS ................................................................................................................................ 95 10.3. INSTALACIÓN DE DHCP PARTE SERVIDOR ................................................................................................ 95

10.2.2. Activar tarjeta red ................................................................................................................ 95 10.3.3. Editando fichero de configuración /etc/dhcp.conf ............................................................. 96

10.4. INSTALACIÓN DEL CLIENTE DHCP .......................................................................................................... 97 10.4.1. Instalación del paquete ........................................................................................................ 97 10.4.2. Configuración del cliente DHCP ........................................................................................... 97

11. CAPITULO INTRODUCTORIO .................................................................................................. 98

11.1. INTERNET ......................................................................................................................................... 98 11.2. PILA OSI (OPEN SYSTEMS INTERCONNECTION) ........................................................................................ 98 11.3. PROTOCOLO TCP/IP .......................................................................................................................... 99

11. 3.1 Pila TCP/IP ............................................................................................................................ 99 11. 3.2. Direccionamiento ip .......................................................................................................... 101

11.4. CREACIÓN FÍSICA DE UNA RED LOCAL SOBRE ETHERNET ............................................................................ 102 11.4.1 Elementos físicos de una red local sobre Ethernet ............................................................. 102 11.4.2 Topologías de una red local ................................................................................................ 105 11.4.3. Restricciones de interconexión en una red local sobre Ethernet ...................................... 106

11.5. EJEMPLO DE CREACIÓN DE UNA RED LOCAL ETHERNET ............................................................................. 107 11.5.1. Crear topología .................................................................................................................. 107 11.5.2. Asignar ips y mascaras ....................................................................................................... 108 11.5.3. Configurar hosts y router ................................................................................................... 109

GLOSARIO ...................................................................................................................................... 110

BIBLIOGRAFIA ............................................................................................................................... 113

Page 5: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Listado de Figuras

Fig. 1.1. ifconfig detección tarjeta

Fig. 1.2. error ifconfig

Fig. 1.3. ifconfig

Fig. 1.4. route

Fig. 1.5. netstat -nr

Fig. 1.6. netstat -s

Fig. 1.7. nmap -PE 172.18.64.0/19

Fig. 1.8. nmap -O 172.18.64.0/19

Fig. 1.9. Topología de la red lab.unavarra.es

Fig. 1.10. Asignando ip y marcara mediante ifconfig

Fig. 1.11. Fichero de configuración /etc/hosts

Fig. 1.12. Configuracion /etc/hosts

Fig. 1.13. Comprobando con ping

Fig. 1.14. Direccionamiento con route

Fig. 1.16. Configurando /etc/resolv.conf

Fig. 1.17. Estableciendo la puerta de enlace mediante route

Fig. 1.18. Secuencia del funcionamiento de DNS

Fig. 1.19. Ejemplo de petición DNS

Fig. 1.20. Comprobación de conexión mediante comando ping

Fig. 1.21. Ejemplo de traceroute6.db

Fig. 1.22. Ejemplo de configuración de /etc/network/interfaces estáticamente

Fig. 1.23. Reinicio del demonio de red para volver a reconfigurar los parámetros

Fig. 2.1. Configuración de la red en el kernel

Fig. 2.3. Ejemplo de configuración mediante iptables

Fig. 2.2. Cargando modulo nucleo netfilter

Fig. 2.4. iptables –L

Fig. 2.5. esquema de iptables

Fig. 3.1. Topología de servidor de logs

Fig. 3.2. Fichero de configuración /etc/syslog.conf

Fig. 3.3. Monitorización en fichero plano

Fig. 3.4. Monitorización en dispositivo físico

Fig. 3.5. Monitorización en maquina remota

Fig. 3.6. Monitorización a usuarios del sistema

Fig. 3.7. Monitorización de todos los usuarios del sistema

Fig. 3.8. Creación de mensaje log mediante logger

Fig. 3.9. /var/log/syslog

Fig. 3.10. /var/log/messages

Fig. 3.11. /var/log/daemon.log

Fig. 3.12. last

Fig. 3.13. last –f /var/run/utmp

Fig. 3.14. who

Fig. 3.15. w

Fig. 3.16. lastlog

Fig. 3.17. last –f /var/log/btmp

Page 6: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 3.18. lastlog

Fig. 3.20. Habilitando soporte de log remoto en host servidor

Fig. 3.21. Reinicio del demonio sysklogd

Fig. 3.22. Creando log mediante el comando logger

Fig. 3.23 Comprobación de que el log se ha registrado en el servidor de logs

Fig 4.1. ls –al sd*

Fig 4.2. fdisk -l

Fig 4.3. tabla de particiones

Fig 4.4. Formateando disco duro en ext3 mediante gparted

Fig 4.5. Copia mediante dump

Fig 4.6. restaurar disco duro mediante restore

Fig 4.7. Copia tar sin comprimir.

Fig 4.8 tar contenedor comprimido

Fig. 4.9. tar mediante expresiones regulares

Fig 4.10. tar (comprobación de integridad)

Fig 4.11. cpio ejemplo de uso

Fig 4.12. chquear mediante cpio

Fig. 4.13. Extraer mediante cpio

Fig 4.14. Uso de dd

Fig 4.15. Uso de cp

Fig. 5.1. Ejemplo de uso del comando adduser

Fig. 5.3. Ejemplo de uso del comando passwd

Fig. 5.2. Ejemplo de uso del comando su

Fig. 5.5. Típica línea en el fichero de configuración /etc/passwd

Fig. 5.6. Como bloquear cuenta mediante el fichero /etc/passwd

Fig. 5.7. Ejemplo de eliminación de cuenta mediante el comando deluser

Fig. 5.8. Ejemplo de fichero de configuración de /etc/group

Fig. 5.9. Ejemplo de grupo común en /etc/group

Fig. 6.1. Ejemplo de automatización de instalación mediante script para BASH

Fig. 6.2. Ejemplo de ejecución de un script para BASH

Fig. 6.3. Ejemplo de automatización de eliminación de cuentas mediante scripts para

BASH

Fig. 6.4. Ejemplo de conexión a multiples shell remotas mediante script para BASH

Fig. 6.5. Ejecución del script de conexiones a múltiples Shell remotas

Fig. 6.6. Instalación de clusterSSH

Fig. 6.7. Ejecución de clusterSSH

Fig. 6.8. Ejemplo de clusterSSH

Fig. 6.9. Ejemplo de uso del comando tr

Fig. 6.10. Ejemplo de uso del comando sed

Fig. 6.11. Ejemplo de uso del comando shutdown (8 minutos y reinicio)

Fig. 6.12. Ejemplo de uso del comando shutdown (a las 2:00 reinicio)

Fig. 6.13. Scripts que de arranque indicados en /etc/inttab

Fig. 6.14. Ejemplo de líneas de configuración

Fig. 6.15. Salida del comando crontab -l

Fig. 6.16. Instalación de AptonCD

Fig. 6.17. Ejecución de AptonCD

Page 7: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 7.1. Instalación de samba

Fig. 7.2. Configuración de sección global

Fig. 7.3. Configuración de sección homes

Fig. 7.4. Configuración de secciones propias

Fig. 7.5. Configuración de secciones propia

Fig. 7.6. Uso del comando testparm

Fig. 7.7. Comprobación de los servicios samba mediante el comando smbclient

Fig. 7.8. Añadiendo usuario samba mediante adduser

Fig. 7.9. Creando password en samba

Fig. 7.10. Instalando smbfs

Fig. 7.11. Conectándose desde Linux a un servidor samba mediante smbclient

Fig. 7.12. Creando directorio donde se montara fichero compartido

Fig. 7.13. Montando fichero mediante mount

Fig. 7.14. Instalando cups

Fig. 7.15. Montando directorio mediante cups

Fig. 7.16. Actualizando cups mediante mount -a

Fig. 7.17. Creando fichero de credenciales

Fig. 7.18. Dando permisos a .credenciales

Fig. 7.19. Editando /etc/fstab para insertar credenciales mediante

/etc/samba/.credenciales

Fig. 8.1. Instalación del servidor NFS

Fig. 8.2. Exportando los ficheros

Fig. 8.3. Arrancando el demonio del servidor de NFS

Fig. 8.4. Error del demonio del servidor de NFS

Fig. 8.5. Sistemas de ficheros en /proc/filesystems

Fig. 8.7. Montando fichero en el cliente mediante mount

Fig. 8.8. Configurando /etc/fstab

Fig. 9.1. Instalando nis y portmap

Fig. 9.2. Configurando hosts.deny

Fig. 9.3. Configurando hosts.allow

Fig. 9.4..Comprobando si tenemos instalado libc6

Fig. 9.5. Estableciendo nombre de dominio NIS

Fig. 9.6. Estableciendo la ip del servidor en NIS

Fig. 9.7 .Estableciendo varios servidores en NIS

Fig. 9.8. Estableciendo que el host trabaja como servidor

Fig. 9.9. Estableciendo que clientes usaran el servidor

Fig. 9.10. Indicando a NIS que se usara /etc/shadow

Fig. 9.11 Configurando parámetro ALL para usar /etc/shadow

Fig. 9.12. Creación de los mapas NIS

Fig. 9.13. Reiniciando demonio NIS

Fig. 9.14. Comprobando funcionamiento del servidor NIS

Fig. 9.15. Instalación de NIS en el cliente

Fig. 9.16 Configurando nsswitch.conf

Fig. 9.17. Estableciendo ip del servidor en /etc/yp.conf

Fig. 9.18. Reiniciando el demonio de NIS en el cliente

Fig. 10.1. Instalando servicio dhcp

Page 8: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 10.2. Estableciendo interfaz mediante el fichero /etc/dhcp3-server

Fig. 10.3. Configurando servidor DHCP mediante /etc/dhcp.conf

Fig. 10.5. Reinicio del servidor DHCP

Fig. 11.1. Pila TCP/IP

Fig. 11.2. Paquete TCP

Fig. 11.3. Paquete IP

Fig. 11.4 Paquete Ethernet

Fig. 11.5. Foto hub

Fig. 11.6 .Foto switch

Fig. 11.7. Foto router

Fig. 11.8. Conector BNC

Fig. 11.10. Topología en bus

Fig. 11.11. Topología en estrella

Fig. 11.12. Topología en estrella extendida

Fig. 11.13 Topología en anillo

Fig. 11.14. Topología en malla completa

Fig. 11.15. Topología de la red local

Fig. 11.16. Topología de la red local con ips asignadas

Fig. 11.17. Tabla de rutas

Page 9: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

PREFACIO

1. Objetivos del proyecto

El objetivo último de este proyecto es saber y conocer los conceptos y servicios

fundamentales de una red local sobre Ethernet y llevarlos a la práctica. Con esta guía el

lector será capaz de crear físicamente una LAN (Local Area Network) Ethernet,

configurarla para que sea 100% funcional y montar servicios más comunes sobre esta

red local, como pueden ser DHCP, NFS, NIS, SAMBA. También explicaremos de un

modo práctico como monitorizar una red, gestionar los usuarios y mantener una mínima

seguridad de la red local.

2. Motivación

La motivación es crear una guía que reúna los conceptos básicos para que pueda

servir a una persona en el proceso de construcción de una red local sobre Ethernet sin

casi conocimientos previos. El objetivo es que el usuario de esta guía conozca y aprenda

los servicios que puede ofrecer una red local para que no la utilice como una mera

utilidad para conectar varios ordenadores para la conexión a Internet.

Otra motivación es la falta de un documento único en castellano sobre todo lo que

abarca la administración redes locales. Existen guías sueltas por internet sobre

conceptos de la guía pero separados y muy dispersos. También hay algún libro

publicado que lo he puesto en la bibliografía pero cada capítulo pasa por encima y no

profundiza lo mas mínimo para llevar a la práctica estos. Por ello esta guía puede serle

de gran a utilidad ya que reúne todos los temas que abarcan la administración y podrá

introducirse e incluso avanzar mediantes las referencias que dejo en la bibliografía.

3. Propósito y audiencia de este libro

Esta guía la he creado para que un usuario con pocos conocimientos sobre redes pueda

llevar a cabo a la práctica el montaje de una red y administrarla. No he querido

explayarme demasiado y muchos conceptos se pasan de refilón está pensado como una

resumen de los conceptos de la administración para darle una idea global de lo que

significa la administración de redes locales y como usar las herramientas que facilitan la

administración redes locales. Si el usuario está interesado en profundizar sobre un

capitulo o alguna herramienta en el apartado bibliografía he dejado referencias. La

bibliografía son mayoritariamente enlaces a Internet, su uso y lectura es libre.

Esta guía es útil para principiantes o usuarios avanzados en materias de informática pero

que el campo de la administración de redes locales hace mucho que no lo tocan.

Page 10: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

4. Prerrequisitos

El sistema operativo utilizado es GNU/Linux y la distribución Debian/Lenny

(estable desde 11 de abril de 2009) con un kernel 2.6.24-1-486. De aquí en

adelante este será el sistema donde se realizaran los casos prácticos.

Si queremos una imagen del CD tenemos el enlace http://www.debian.org/CD/.

Normalmente con la instalación estándar tendremos todas las aplicaciones

necesarias para hacer los casos prácticos de la guía. Si por alguna razón alguna

aplicación no está en la instalación estándar lo indicare.

Si necesitamos información más exhaustiva recomiendo echar un vistazo las

referencias que hay en el apartado bibliografía.

La red que vamos a usar nosotros es local con tecnología Ethernet mediante

direcciones no privadas, en el capítulo 1 figura 19 esta dibujada la topología de

la red.

La mayoría de comandos descritos en la guía necesitan estar como usuario

administrador (leer capitulo 5 sección 5.3).

Es necesario tener actualizado el sistema operativo con la última versión, para

ello, teclear apt-get update en la terminal, automáticamente la actualización se

realizara. Pero si estamos en una versión anterior a Debian/Lenny como por

ejemplo Debian/Sarge o Debian/Etch recomiendo el siguiente enlace que es una

guía donde se explica cómo realizar esta

actualizacion http://www.debian.org/releases/lenny/i386/release-notes/ch-

upgrading.es.html.

Los conceptos básicos necesarios para la puesta en práctica y compresión de las

acciones indicadas en esta guía son:

1. Si no se tiene un conocimiento básico sobre redes locales sobre Ethernet,

direccionamiento IP y protocolos TCP/IP. Leerse el anexo, que es una pequeña

introducción sobre todo lo concerniente a estos temas.

2. La información referente a los comandos Linux a emplear se obtiene mediante los

comandos Linux: man comando o también info comando.

3. La información referente a los ficheros de configuración en Linux se obtiene

mediante la página 5 del manual Linux, es decir, tendremos que teclear en la

terminal man 5 fichero_configuracion. Todos estos ficheros están albergados en

el directorio /etc.

Durante la lectura de esta guía pueden surgir diversas dudas muy concretas que no sean

resueltas en esta guía, a parte de la bibliografía de la guía, existen en internet múltiplos

recursos disponibles, dejo tres de los he que utilizado:

Page 11: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Servicios sobre Debian/Lenny:

1. Foro sobre Debian/Lenny http://www.esdebian.org/foro.

2. Documento wiki de Debian albergado en la

dirección http://wiki.debian.org/FrontPageSpanish.

3. Canal IRC #esdebian para usar este canal IRC, recomiendo la herramienta

pidgin para conectarse a los canales IRC, disponible

en http://www.pidgin.im/.

Documentación Linux:

1. Proyecto de documentación Linux TLDP disponible en http://es.tldp.org/.

También hay algunas palabras técnicas que para no entorpecer la explicación las he

dejado para la sección del glosario.

5. Recursos

La subred lab.unavarra.es de la Universidad Publica de Navarra. Esta red solo he

tenido acceso del servicio sin poder modificar su topología o funcionamiento,

estas restricciones no facilitan el uso normal de la subred, como lo podría hacer

un administrador.

3 Ordenadores conectados a la red lab.unavarra.es:

1. Dell con Debian/Lenny

2. Acer con Debian/Lenny (Intel(R) Pentium(R) 4 CPU 3.40GHz, 2KB

cache, 4GB RAM).

3. Netbook s101 con Debian/Lenny instalado y windows xp sp3 (Atom

1.6GHz, 2GB RAM).

6. Temas de la memoria

Capitulo 1: se explica cómo analizar una red local sobre Ethernet desde un host y los

pasos básicos de configuración de un host para que tenga acceso a a Internet.

Capitulo 2: aquí veremos cómo crear una mínima seguridad de los hosts y la red local

mediante tres ejemplos prácticos para ello utilizaremos la herramienta de configuración

de cortafuegos iptables.

Capitulo 3: veremos cómo monitorizar todos los sucesos de la red local y como

centralizar todos estos sucesos en un solo host. Utilizando para ello el demonio

syslogkd.

Capitulo 4: en este cuarto capítulo veremos cómo realizar copias de seguridad usando

las herramientas básicas en línea de comando provistas por Linux

Page 12: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Capitulo 5: ya que Linux y una red local es un sistema que puede albergar múltiples

usuarios veremos cómo gestionamos dichos usuario. Veremos cómo eliminar cuentas,

administrar grupos de usuarios y cambiar las características básicas de una cuenta.

Capitulo 6: el proceso de administración de una red local puede ser muy tedioso y

repetitivo, para ello Linux provee de herramientas de automatización de procesos. Aquí

veremos herramientas de automatización de procesos como los shell scripts,

herramientas de edición de flujos de datos como tr, grep, sed y awk. También

herramientas de ejecución de comandos en múltiples hosts mediante la herramienta

grafica clusterSSH, creación de nuestros propios repositorios mediante AptonCD, por

último la creación de procesos periódicos mediante la herramienta crontab de Linux.

Capitulo 7: veremos cómo compartir impresoras y ficheros, sin preocuparnos de los

inconvenientes de que en la red haya diferentes sistemas operativos, para ello

conoceremos SAMBA. Enseñaremos en este capítulo como crear carpetas e impresoras

compartidas en la red y como darle los permisos adecuados para que los usuarios no

permitidos no accedan a estos recursos.

Capitulo 8: en este capítulo veremos cómo compartir ficheros entre sistemas operativos

Linux mediante NFS.

Capitulo 9: en este capítulo veremos cómo centralizar la gestión de usuarios mediante

NIS+NFS, es decir, los usuarios podrán loguearse a sus cuentas desde cualquier

ordenador y tener sus datos en un ordenador central.

Capitulo 10: configurar una red con sus direcciones ip y mascaras es muy engorroso,

para ello existe un método de agregar ips automáticamente, se utiliza el protocolo

DHCP, esto es lo que veremos en este capítulo.

Capitulo 11: daremos en este capítulo una introducción de los conceptos básicos sobre

redes locales sobre Ethernet, protocolo TCP/IP, direccionamiento IP. Será de vital

importancia para poder comprender los capítulos de la memoria si el lector no tiene

unos conocimientos mínimos. Hay que tener en cuenta que si el lector no tiene algún

conocimiento previo sobre estos conceptos le costara mucho entender este capítulo para

eso recomiendo la lectura del libro Redes de Computadores: un enfoque descendente

basado en Internet (véase bibliografía).

Page 13: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

1. Análisis de una red local sobre Ethernet y como configurar un host en esta

1.1. Introducción

En este capítulo realizaremos un ejemplo práctico de cómo realizar los pasos básicos

para configurar un host con el fin de conectarse a una red local sobre Ethernet mediante

cable y más tarde acceder a Internet a través de este host, en nuestro caso en una subred

de la U.P.N.A. Para realizar este capítulo he seguido en manual de la página Guía de

Administración de Redes Segunda Edición, de Olaf Kirch segunda edición.

1.2. Prerrequisitos

Tendremos que tener instalado Debian/Lenny como había indicado en el prefacio y

tener unos conocimientos básicos sobre redes locales.

Tener un ordenador con conexión a Internet y a una red local.

1.3. Ficheros básicos a tener en cuenta para la configuración

Como habíamos dicho antes todos los ficheros de configuración del sistema están

situados en el directorio /etc/, ahí estarán todos nuestros ficheros necesarios para

configurar la red.

Estos son los que necesitamos para realizar nuestra conexión:

/etc/hosts Este fichero de texto asocia direcciones IP con nombres de hosts.

/etc/nsswitch.conf

Indica al sistema de resolución qué servicios usar (DNS, NIS, hosts) y en qué orden usar

estos servicios.

/etc/resolv.conf

En este fichero añadiremos los servidores DNS.

/etc/network/interfaces

Configuración automática de las interfaces de nuestro host.

1.4. Comandos necesarios para la configuración

route: Todo lo relacionado con la configuración del enrutamiento de nuestro host.

Page 14: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

ifconfig:

Para configurar las interfaces de red.

ping:

Comando para saber si tenemos la conexión a una determinada maquina.

netstat:

Información sobre tabla de rutas, estadísticas de una interfaz y todo tipo de información

del estado de una red.

traceroute.db:

Imprime por pantalla el trazado de los paquetes desde un host a otro.

arp:

Sirve para manipular el cache arp.

tcpdump:

Sirve para cazar tráfico en la red.

1.5. Análisis de nuestra red local

1.5.1. Comprobación hardware

Previamente deberemos comprobar que nuestra tarjeta de red está conectada a la red

local a través de un cable de par trenzado, cable coaxial o fibra óptica etc. Nuestra

practica la he realizado mediante un cable de par trenzado, el conector es rj45. Para más

información sobre topologías y cableado en una red Ethernet consultar el capitulo

introductorio de la guía.

Después de percatarnos de que tenemos conexión física a la red deberemos comprobar

que nuestra tarjeta de red funciona. Con el comando ifconfig nos vastara.

Fig. 1.1. ifconfig detección tarjeta

Si la tarjeta de red no se detecta nos dará el siguiente mensaje.

Fig. 1.2. error ifconfig

debian:/media# ifconfig eth0: error fetching interface information: Device not found

debian:/media# ifconfig eth0 Link encap:Ethernet HWaddr 00:0d:56:92:fc:32 inet addr:172.18.69.245 Bcast:172.18.95.255 Mask:255.255.224.0 inet6 addr: fe80::20d:56ff:fe92:fc32/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:36443 errors:0 dropped:0 overruns:0 frame:0 TX packets:659 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:7224114 (6.8 MiB) TX bytes:120201 (117.3 KiB) Base address:0xdf40 Memory:fcfe0000-fd000000

Page 15: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Esto raramente sucede pero si el sistema no ha sido capaz de encontrar el driver de su

tarjeta de red automáticamente usted deberá buscarlo en

/lib/modules/[numero_kernel]/kernel/drivers/net y luego cargarlo con el comando

modprobe [nombre_kernel] o como opción secundaria dirigirse a la página web del

fabricante y descargarse los drivers. Normalmente en la misma página viene explicado

como instalarlo.

Si por algún casual ninguna cosa de las anteriores puede ser que la interfaz este

desactivada para ello habrá que activar con el siguiente comando ifconfig eth0 up y para

desactivarlo de nuevo ifconfig eth0 down.

1.5.2. Obteniendo información de nuestra red local

Lo primero que se debe hacer al querer configurar nuestra red local es pedir información

al proveedor que nos da la conexión a internet, en mi caso la U.P.N.A. Los datos a

solicitar serían la máscara que tiene la red local, ip que tengo asignada para mi host,

puerta de enlace que es la dirección del router que da salida a los paquetes de la red

local o subred de nuestra red local e ips del servidor local DNS. Como en mi caso tengo

configurado el host a través de DHCP (Capitulo 10 explico cómo configurar un

servidor DHCP) la maquina se autoconfigurá con unos determinados parámetros, esto

no me conviene, ya que según el día me pondrá una IP u otra, he decidió investigar yo

mismo como es la red local y así obtener información para configurar el host. A la gente

es novata o nuestro host no está configurado de antemano no recomiendo realizar esto si

no contactar con nuestro ISP o administrador de la red local y que obtenga los datos de

configuración.

Ahora vamos a ver una serie de comandos muy útiles para conocer nuestra red y de

paso nos vamos familiarizarnos con los comandos de red.

ifconfig: con este comando obtenemos la configuración de nuestra tarjeta de red.

Fig. 1.3. ifconfig

La información obtenida aquí es de valiosa ayuda, vamos a explicar los parámetros

importantes:

eth0: es el nombre de nuestra interfaz de red en el host, si tuviéramos dos tarjetas de red

tendríamos otra salida más con la interfaz eth1.

debian:/media# ifconfig eth0 Link encap:Ethernet HWaddr 00:0d:56:92:fc:32 inet addr:172.18.69.245 Bcast:172.18.95.255 Mask:255.255.224.0 inet6 addr: fe80::20d:56ff:fe92:fc32/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:36443 errors:0 dropped:0 overruns:0 frame:0 TX packets:659 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:7224114 (6.8 MiB) TX bytes:120201 (117.3 KiB) Base address:0xdf40 Memory:fcfe0000-fd000000

Page 16: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

HWaddr: es la dirección física de la tarjeta de red, siendo una dirección que viene de

fábrica en la tarjeta de red.

inet addr: es la dirección IP del host, esta dirección se la ponemos nosotros, según el

rango de direcciones que tengamos disponibles.

Bcast: dirección de broadcast es una dirección especial que sirve para que un dato

pueda ser enviado a todos los hosts de la red local.

Mask: mascara de red que indica el ámbito de red donde trabaja el host, dentro de

nuestra red local podemos tener diferentes subredes y con ello diferentes mascaras de

red. Ahora no vamos a explicar detenidamente este concepto, para más información

mejor leerse el capítulo 11.

RX packets: ofrece información sobre los paquetes recibidos, numero de errores,

paquetes rechazados y paquetes perdidos por desbordamiento.

TX packets: la misma información que RX packets pero de los paquetes enviados

fuera.

Para más información man ifconfig en la terminal de Debian/Lenny.

route: nos da información sobre las reglas de envío de los paquetes.

Fig. 1.4 route

La primera línea significa que si el paquete va a nuestra propia red (lab.unavarra.es) el

paquete no necesita ir a ninguna pasarela y hay que enviarlo a la interfaz eth0. La

segunda línea significa que para todos los demás paquetes que no vayan a la subred

lab.unavarra.es por defecto se envíen a la puerta de enlace que es gw.lab.unavarra.es,

también llamada Gateway.

lab.unavarra.es es el nombre que designa a la red y que equivale a una ip siempre

acabada en .0 pero estas ips de red no designan un host en concreto, sino a un grupo de

ordenadores como una red local.

gw.lab.unavarra.es es el nombre que designa a la ip donde tienen que ir los paquetes si

quieren salir de la red.

El campo flags puede ser:

debian:/media# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface lab.unavarra.es * 255.255.224.0 U 0 0 0 eth0 default gw.lab.unavarra 0.0.0.0 UG 0 0 0 eth0

Page 17: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

U (la ruta está activada (up))

H (el objetivo es un ordenador anfitrión (host))

G (usa un gateway)

R (restablece una ruta para encaminamiento dinámico)

D (instalada dinámicamente por un demonio o redirección)

M (modificada a partir del demonio de ruta o redirección)

! (ruta de rechazo)

Como podemos observar la ruta de la pasarela tiene aparte del flag “U”el flag “G” que

indica que usa una pasarela. Para más información man 8 route en la terminal de

Debian /Lenny.

netstat: Muestra conexiones de red, tablas de encaminamiento, estadísticas de

interfaces y conexiones enmascaradas. Vamos a ver un par de ejemplos.

Fig. 1.5. netstat -nr

La figura 1.5 muestra lo mismo que el comando route, pero mediante la opción n le

decimos que muestre las direcciones numéricas en vez los nombres simbólicos,

mediante la opción r le decimos que queremos ver la tabla de rutas.

Fig. 1.6. netstat -s

La figura 1.6 podemos ver diferentes estadísticas del trafico de un host en la red

lab.unavarra.es: vemos estadísticas del protocolo ip, del protocolo ICMP , del protocolo

TCP, etc. Esto sirve para ver el estado de la red y si tenemos algún problema estas

estadísticas nos pueden dar pistas.

debian:/etc# netstat -s Ip: 2955 total packets received 153 with invalid addresses 0 forwarded 0 incoming packets discarded 2802 incoming packets delivered 2319 requests sent out Icmp: 51 ICMP messages received 0 input ICMP message failed. ICMP input histogram: destination unreachable: 51 51 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 51 IcmpMsg: InType3: 51 OutType3: 51 Tcp: 56 active connections openings 0 passive connection openings 0 failed connection attempts 1 connection resets received 1 connections established 2026 segments received 1461 segments send out 0 segments retransmited 0 bad segments received. 4 resets sent

debian:/etc# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 172.18.64.0 0.0.0.0 255.255.224.0 U 0 0 0 eth0 0.0.0.0 172.18.64.254 0.0.0.0 UG 0 0 0 eth0

Page 18: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

nmap: herramienta que escanea los puertos abiertos de la subred, muy importante para

la seguridad de la red local. No está en la instalación base de Debian/Lenny, antes de

usarlo deberemos teclear como superusuario apt-get install nmap en la terminal.

Con este comando realizaremos un análisis exhaustivo de la red, mediante esta

herramienta nos vamos hacer una idea bastante clara de la topología de la red local y

que hay en ella. Esta herramienta potentísima escanea los puertos de una ip o ips que le

des a escanear, según la técnica que tu le digas.

El ejemplo siguiente es un escaneo mediante ICMP ECHO (es decir el host que recibe

un paquete del tipo ICMP ECHO deberá responder con un Echo Reply, esto funciona

mediante el protocolo ICMP). Existen múltiples opciones para realizar estos escaneos

de la red, depende del tipo de seguridad de la red local tendremos que usar unos u otros.

En la mayoría de los casos dentro de una red local con la opción que enseñamos nos

será suficiente.

Para más información sobre esta herramienta man nmap o la pagina web

http://nmap.org/man/es/.

Fig. 1.7. nmap -PE 172.18.64.0/19

Lo que tenemos en la figura 1.7 es el análisis de toda la red local lab.unavarra.es le

hemos puesto la ip de la subred en este caso 172.18.64.0 y su máscara que es de 19 bits.

debian:/etc/init.d# nmap -PE 172.18.64.0/19 Starting Nmap 4.62 ( http://nmap.org ) at 2008-12-09 20:42 CET Interesting ports on dns-a.lab.unavarra.es (172.18.64.1): Not shown: 1712 closed ports PORT STATE SERVICE 25/tcp open smtp 53/tcp open domain 199/tcp open smux MAC Address: 00:90:27:AC:7D:44 (Intel) Interesting ports on dns-b.lab.unavarra.es (172.18.64.2): Not shown: 1712 closed ports PORT STATE SERVICE 25/tcp open smtp 53/tcp open domain 199/tcp open smux MAC Address: 00:D0:B7:3E:A9:6F (Intel) All 1715 scanned ports on gw-a.lab.unavarra.es (172.18.64.251) are closed MAC Address: 00:0A:42:CF:58:0A (Cisco Systems) #Interfaz de un router All 1715 scanned ports on gw-b.lab.unavarra.es (172.18.64.252) are closed MAC Address: 00:0A:42:CF:5C:0A (Cisco Systems) #Interfaz de un router All 1715 scanned ports on gw.lab.unavarra.es (172.18.64.254) are closed MAC Address: 00:00:0C:07:AC:07 (Cisco Systems) #Interfaz de un router (mi puerta de enlace) Interesting ports on inf140102.lab.unavarra.es (172.18.65.2): Not shown: 1700 closed ports Interesting ports on iee020492.lab.unavarra.es (172.18.67.220): Not shown: 1712 filtered ports PORT STATE SERVICE 139/tcp open netbios-ssn 445/tcp open microsoft-ds Running: Microsoft Windows XP OS details: Microsoft Windows XP SP2 Network Distance: 1 hop ... ... #Esto sigue hasta Nmap done: 8192 IP addresses (44 hosts up) scanned in 158.574 seconds

Page 19: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Cada bloque de datos es un host en la red, la información que nos provee el comando es

nombre del host, ip, puertos abiertos y sistema operativo. En total de 8192 direcciones

que ha escaneado y ha encontrado 44 hosts.

Las opciones -P* (que permiten seleccionar los tipos de ping) pueden combinarse.

Puede aumentar sus probabilidades de penetrar cortafuegos estrictos enviando muchos

tipos de sondas utilizando diferentes puertos o banderas TCP y códigos ICMP.

En una red local Ethernet con la opción –PE sería suficiente. P se refiere a ping y E es

que el mensaje es de tipo “echo request”.

dns-a.lab.unavarra.es: Es el servidor dns primario de la red local como su propio

nombre indica, aparece información de los puertos que ha escaneado. En nuestro caso

este servidor se encuentran cerrados 1712, y después de ésta ofrece información sobre

los puertos abiertos con su número y que servicio dan. Por último ofrece la dirección

MAC del servidor DNS.

dns-a.lab.unavarra.es: dns secundario, la misma información que en el primario.

gw.lab.unavarra.es: indica la puerta de enlace, al ser un router no hay información

sobre los puertos, ya que los routers carecen de puertos.

inf140102.lab.unavarra.es: a partir de este bloque es información de hosts, este host

no tiene ningún puerto abierto. Inf140102 es el nombre de este host en LAN.

Otra opción interesante de nmap es –O que nos da información más exhaustiva y de que

tipo puede ser el dispositivo, sacándonos un parámetro llamado Device type que indica

que puede ser un switch, router, etc.

Fig. 1.8. nmap -O 172.18.64.0/19

Con toda esta información podemos hacernos una representación grafica de la red

lab.unavarra.es:

debian:/etc/init.d# nmap -O 172.18.64.0/19 All 1715 scanned ports on gw.lab.unavarra.es (172.18.64.254) are closed MAC Address: 00:00:0C:07:AC:07 (Cisco Systems) Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: switch|router|WAP Running: Cisco IOS 12.X OS details: Cisco 2924M-XL switch (IOS 12.0), Cisco 2960G switch (IOS 12.2), Cisco 3548XL switch (IOS 12.0), Cisco Catalyst C2900-series or C3750 switch, or 4500 router (IOS 12.1 - 12.2), Cisco Aironet 1200 WAP (IOS 12.3) Network Distance: 1 hop Interesting ports on iee020721.lab.unavarra.es (172.18.69.241): Not shown: 1712 filtered ports PORT STATE SERVICE 139/tcp open netbios-ssn 445/tcp open microsoft-ds 3389/tcp closed ms-term-serv MAC Address: 00:0D:56:84:18:49 (Dell Pcba Test) Device type: general purpose Running: Microsoft Windows 2000 OS details: Microsoft Windows 2000 Server SP4 Network Distance: 1 hop

Page 20: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

39 hosts restantes en la red

lab.unavarra.es

FQDN:fujitsu26134.lab.unavarra.es

172.18.69.242

FQDN:dell27043.lab.unavarra.es

172.18.69.245

Servidor DNS

dns-a.lab.unavarra.es

172.18.64.1

Hub

HubPuerta de enlace

Gw.lab.unavarra.es

172.18.69.254

RouterSwitch

Fig. 1.9. Topología de la red lab.unavarra.es

La figura 1.9 es una representación grafica de la subred lab.unavarra.es dentro de la red

local de la U.P.N.A. El Hub que está conectado al router es el modelo 3Com

OfficeConnect Ethernet Hub 16c con 16 puertos RJ-45 y el otro hub es un 3Com

OfficeConnect Ethernet Hub tp16c también con 16 puertos RJ-45. Por último el router

es un Cisco 6500.

En el siguiente apartado vamos a explicar cómo configurar el host dell27043 dentro de

esta subred.

Datos obtenidos en este capítulo para la configuración:

Nombre e IP de la red: lab.unavarra.es=172.18.64.0 obtenido de netstat -nr

IPs posibles a asignar: cualquiera que no sea de los hosts ocupados del escaneo de

nmap.

Mascara de red: 255.255.224.0 que equivale a una máscara de 19 bits obtenido de

cualquier comando visto.

Servidor DNS: 172.18.64.1 y 172.18.64.2 obtenido de nmap.

1.6. Configurando un host de nuestra red local

1.6.1. Asignando la máscara e ip al host manualmente

Cuando ya sepamos la máscara que usa la red en que estamos, ips libres para nuestro

host, puerta de enlace e ips de los servidores DNS de nuestra red local ya estaremos

preparados para empezar la configuración.

Page 21: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Primeramente deberemos asignar una ip estatica a nuestra interfaz de red para ello

utilizaremos el comando ifconfig en nuestro caso:

Fig. 1.10. Asignando ip y marcara mediante ifconfig

En la fig. 1.10 lo que hemos realizado es asignar a la interfaz eth0 la ip 172.18.69.245

que no tenía ningún host asignada en la red y le hemos puesto la mascara

255.255.224.0.

1.6.2. Asignando alias en nuestro host

Ahora vamos a ponernos a configurar los “alias” es decir asociar un nombre a una

dirección ip, ya que es mucho mas practico y más fácil de memorizar que una dirección

ip. Existen dos ficheros para este cometido /etc/host.conf y /etc/nsswitch.conf. El

primero está en nuestro sistema pero no se utiliza desde hace mucho tiempo,

exactamente desde que se empezó a utilizar la librería libc5, así que no explicaremos

/etc/host.conf y nos ceñiremos al fichero /etc/nsswitch.conf. Este se encarga de decirle

al ordenador qué sistema de traducción debe usar para traducir los nombres de los hosts

a su respectiva hosts (o páginas web) a su respectiva ip y en qué orden debe usar cada

sistema de traducción.

Fig. 1.11. Fichero de configuración /etc/hosts

“host: files”: le dice al sistema que busque los hosts en /etc/hosts.

Luego editamos el fichero /etc/hosts donde ponemos la ips de nuestra red local y su

respectivo nombre asociado.

Fig. 1.12. Configuracion /etc/hosts

Ahora si realizamos ping a dell27043 sabrá que está asociado ese nombre a la IP

172.18.69.245.

127.0.0.1 localhost 127.0.1.1 debian 0.0.0.0 default # Ordenador dell27043 #IP FQDN aliases 172.18.69.245 dell27043.lab.unavarra.es dell27043 172.18.69.242 fujitsu26134.lab.unavarra.es fujitsu26134

hosts: files

ifconfig eth0 172.18.69.245 netmask 255.255.224.0

Page 22: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 1.13. Comprobando con ping

1.6.3. Crear el enrutamiento del host

Luego mediante el comando route diremos según a que red va más la máscara, diremos

donde tiene que ir el paquete.

Fig. 1.14. Direccionamiento con route

En la figura tenemos tres opciones; -net es para indicar según a la red donde debe ir el

paquete, en nuestro caso lab.unavarra.es, la segunda opción netmask que indica la

mascara de la subred lab.unavarra.es y finalmente dev indica a donde tiene que ir el

paquete según la red y la máscara descritos por –net y dev, en este caso el paquete iría a

la propia red, así que con enviarlo por la interfaz seria suficiente.

También agregamos la ruta por defecto que debe ser la ip que hemos descubierto en la

sección 1.5.1 con el comando route y netstat –nr.

Fig. 1.15. Estableciendo la puerta de enlace mediante route

1.6.4. Asignando ips del servidor DNS en host

Con los pasos anteriores tendremos conexión en los hosts de la subred lab.unavarra.es.

Todavía no se puede acceder a internet ya que el ordenador es incapaz de traducir

nombres de páginas web a sus respectivas direcciones ip. Para ello existe un protocolo

que traduce los nombres de las páginas web a sus respectivas ips, este protocolo es

llamado DNS.

Para configurar este servicio en un host terminal tenemos dos ficheros:

/etc/resolv.conf

Aquí se indica que servidores (estos servidores son los encargados de traducir el nombre

de la pagina web a su respectiva ip) vamos a usar para al servicio DNS.

/etc/nsswitch.conf

Aquí indicamos el orden de búsqueda en los ficheros cuando hay una petición de una ip

para un nombre, mas tarde servirá para configurar NIS.

Configuración de /etc/resolv.conf.

route add default gw 172.18.69.254

route add -net lab.unavarra.es netmask 255.255.224.0 dev eth0

debian:/etc# ping dell27043 PING dell27043.lab.unavarra.es (172.18.69.245) 56(84) bytes of data. 64 bytes from dell27043.lab.unavarra.es (172.18.69.245): icmp_seq=1 ttl=64 time=0.036 ms 64 bytes from dell27043.lab.unavarra.es (172.18.69.245): icmp_seq=2 ttl=64 time=0.023 ms 64 bytes from dell27043.lab.unavarra.es (172.18.69.245): icmp_seq=3 ttl=64 time=0.026 ms 64 bytes from dell27043.lab.unavarra.es (172.18.69.245): icmp_seq=4 ttl=64 time=0.030 ms 64 bytes from dell27043.lab.unavarra.es (172.18.69.245): icmp_seq=5 ttl=64 time=0.023 ms 64 bytes from dell27043.lab.unavarra.es (172.18.69.245): icmp_seq=6 ttl=64 time=0.024 ms 64 bytes from dell27043.lab.unavarra.es (172.18.69.245): icmp_seq=7 ttl=64 time=0.030 ms --- dell27043.lab.unavarra.es ping statistics --- 7 packets transmitted, 7 received, 0% packet loss, time 5998ms rtt min/avg/max/mdev = 0.023/0.027/0.036/0.006 ms 172.18.69.245 dell27043.lab.unavarra.es dell27043 172.18.69.242 fujitsu26134.lab.unavarra.es fujitsu26134

Page 23: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 1.16. Configurando /etc/resolv.conf

En la figura 1.16 tenemos 3 campos:

domain: aquí designamos el nombre de dominio (nombre de la red local)

search: sirve para poder hacer ping dell27043 en vez de dell27043.lab.unavarra.es.

nameserver: aquí ponemos la ip del servidor DNS, normalmente se ponen 2 servidores

por si uno cae.

Configuración de /etc/nsswitch.conf para el servicio DNS.

Fig. 1.17. Estableciendo la puerta de enlace mediante route

La figura 1.17 es igual que la figura 1.11 sólo que añadiremos dns para que primero use

los servidores dns y luego el fichero /etc/hosts.

DNS es una base de datos distribuida y jerárquica, se basa en múltiples servidores. Si

una persona pregunta por un host este mandara una petición DNS a su servidor local, si

el servidor local no lo encuentra este mandara una petición a un root-server o también

llamado servidor raíz que son los servidores más altos en la jerarquía, estos servidores

raíz contestaran diciéndole donde pueden solicitar la ip asociada a ese dominio. Por

ejemplo si pedimos una petición de una ip fuera de la U.P.N.A., el servidor DNS de la

U.P.N.A. no lo tendrá mapeado y tendrá que pedirlo fuera, y hará una consulta al

servidor de su nivel superior. En la figura 1.15. Vemos explicación esquemática de una

petición DNS.

Fig. 1.18. Secuencia del funcionamiento de DNS

hosts: files dns

networks: files dns

domain lab.unavarra.es search lab.unavarra.es nameserver 172.18.64.2 #ips de los servidores DNS nameserver 172.18.64.1

Page 24: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Ejemplo de una petición DNS de mi ordenador fuera de la red lab.unavarra.es

Fig. 1.19. Ejemplo de petición DNS

En la figura 1.19 vemos la petición de nuestro ordenador al servidor local DNS de

nuestra red con nombre dns-b.lab.unavarra.es y la contestación mas tarde del nombre

canónico (CNAME) de la página solicitada en este caso abc.com.

1.6.5. Comprobar que la conexión esté correcta

Con estos pocos pasos tendrá conexión a internet. Cuando un paquete vaya fuera de

nuestra red y llegue a la puerta de enlace este paquete será enrutado por la red de la

U.P.N.A. despreocupándonos de el totalmente, a partir de ahí la llegada de ese paquete

no será responsabilidad nuestra ya que nosotros no somos los administradores de esa

red.

Para comprobar que tenemos conexión fuera de nuestra red haremos un ping a una ip

fuera de nuestra red:

Fig. 1.20. Comprobación de conexión mediante comando ping

En la figura 1.20 lo que se está realizando es enviar paquetes del tipo icmp echo

request, si el host destino tiene habilitado este protocolo el host destino tiene que

contestar con un icmp echo reply. Esta herramienta se usa para comprobar la conexión

entre dos nodos, al finalizar el envió de paquetes el comando ping nos da información

de los paquetes trasmitidos (packet loss), cuales han sido recibidos (2 packets

transmitted), el porcentaje de paquetes perdidos ( 0% packet loss) y tiempo transcurrido

(time 2004ms).

Si los paquetes se pierden mediante la aplicación traceroute.db podremos observar los

saltos que hace nuestro paquete por los enrutadores y ver donde se pierde el paquete, así

podremos ver si el problema es nuestro o externo a nuestra red. En mi distribución se

llama traceroute6.db ó traceroute.db.

debian:/home/ekaitz# ping www.rediris.com PING babia.rediris.es (130.206.1.22) 56(84) bytes of data. 64 bytes from babia.rediris.es (130.206.1.22): icmp_seq=1 ttl=249 time=20.2 ms 64 bytes from babia.rediris.es (130.206.1.22): icmp_seq=2 ttl=249 time=19.9 ms --- babia.rediris.es ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2004ms rtt min/avg/max/mdev = 19.506/19.885/20.224/0.316 ms

debian:/home/ekaitz# tcpdump -i eth0

13:16:21.431210 IP dell27043.lab.unavarra.es.53380 > dns-b.lab.unavarra.es.domain: 19823+ AAAA? www.abc.com. (29)

13:16:21.482227 arp who-has gw.lab.unavarra.es tell qui060102.lab.unavarra.es

...#información irrelevante

...#información irrelevante

13:16:21.811783 CDPv2, ttl: 180s, Device-ID 'tejos-20'[|cdp]

13:16:21.897232 IP dns-b.lab.unavarra.es.domain > dell27043.lab.unavarra.es.53380: 19823 1/1/0 CNAME abc.com. (107)

Page 25: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 1.21. Ejemplo de traceroute6.db

Las líneas de la figura 1.21 que empiezan con 1, 2 y 3 son los saltos que hacen los

paquetes dentro del dominio unavarra.es. Para más información sobre el comando man

traceroute6.db.

1.6.6. Configuración persistente de la configuración

La configuración se puede configurar persistentemente, esto se hace editando el fichero

/etc/network/interfaces para que el ordenador lo haga automáticamente cada vez que se

encienda.

En este fichero se puede especificar que se ejecute un cierto comando antes de levantar

la interfaz, un comando una vez ha sido levantado, un comando antes de echarlo abajo

y/o un comando una vez echada abajo. Para una información exhaustiva consultar man

5 interfaces.

Para llevar a cabo esto haremos uso de las palabras clave:

* pre-up: ejecutar comando antes de levantar la interfaz.

* up : ejecutar comando cuando hemos levantado la interfaz.

* down: ejecutar comando después de desactivar una interfaz.

* post-down: ejecutar comando justo antes de desactivar una interfaz.

Por lo tanto, nuestro fichero /etc/network/interfaces quedaría de la siguiente manera en

nuestra red lab.unavarra.es para una configuración persistente.

Fig. 1.22. Ejemplo de configuración de /etc/network/interfaces estáticamente

La información guardada en el fichero /etc/network/interfaces no es suficiente para

acceder a internet, lo único que faltaría seria configurar el fichero descrito en la figura

1.16 (/etc/resolv.conf).

Si cambiamos algo de este fichero para que se aplique la nueva configuración

deberemos reiniciar el demonio /etc/init.d/networking o reiniciar el sistema.

iface lo inet loopback iface eth0 inet static address 172.18.69.245 netmask 255.255.224.0 network 192.168.64.0 broadcast 172.18.95.255 gateway 172.18.64.254 auto lo auto eth0

debian:/etc# traceroute6.db www.rediris.com traceroute to www.rediris.com (130.206.1.22), 30 hops max, 40 byte packets 1 gw-a.lab.unavarra.es (172.18.64.251) 1.935 ms 1.903 ms 2.084 ms 2 ceiba.red.unavarra.es (130.206.158.17) 1.845 ms 2.298 ms 27.261 ms 3 unavarra-rt-ext.red.unavarra.es (130.206.158.1) 27.235 ms 27.435 ms 27.417 ms 4 GE0-3-0.EB-Pamplona0.red.rediris.es (130.206.209.13) 27.399 ms 27.622 ms 27.600 ms 5 NAV.SO1-0-0.EB-Bilbao0.red.rediris.es (130.206.250.121) 34.355 ms 34.309 ms 34.786 ms 6 PAV.AS0-0.EB-IRIS4.red.rediris.es (130.206.250.65) 46.261 ms 20.039 ms 20.015 ms 7 XE3-0-0-264.EB-IRIS6.red.rediris.es (130.206.206.133) 20.223 ms 33.527 ms 33.459 ms 8 babia.rediris.es (130.206.1.22) 33.926 ms 33.678 ms 33.663 ms

Page 26: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 1.23. Reinicio del demonio de red para volver a reconfigurar los parámetros

2. Seguridad de la red local de ataques exteriores

2.1. Introducción

En este capítulo trataremos el tema de seguridad perimetral, es decir, intentaremos de

evitar intrusiones dentro de nuestra red local. La forma más eficaz de evitar intrusiones

no deseadas es mediante cortafuegos (también llamado firewalls). Un cortafuegos lo

que hace es observar cuales son los datos de entrada y según unos criterios rechazarlos

aceptarlos, es decir, lo que hace es filtrar los datos de salida y de entrada según unas

condiciones. Existen muchos más métodos para proteger nuestra red local, como

sistemas IDS para detectar intrusos en nuestra red. Pero para comenzar algo sobre

seguridad está bien empezar con firewalls, ya que es el primer mecanismo de seguridad

a implementar en una red local. Aquí explicaremos como configurar cortafuegos

mediante iptables (1999), que es la herramienta para establecer los criterios de filtrado

del cortafuegos, se requiere el núcleo 2.4 en adelante para que iptables funcione.

Existen versiones anteriores de iptables como ipforward para el núcleo 2.1.102 (1994)

en adelante e ipchains (1998) a partir del núcleo 2.3.15. En esta pequeña introducción a

debian:/etc# /etc/init.d/networking restart #resetear configuracion Reconfiguring network interfaces...done.

Page 27: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

iptables haremos un pequeño ejemplo introductorio y luego habrá el caso real de

configuración del host que está en la red lab.unavarra.es. No trataremos de explicar los

comandos de iptables, solo mostrar un ejemplo práctico y explicación somera de este.

Para realizar este capítulo he seguido el capitulo 9 de la Guía de Administración de

Redes Segunda Edición, de Olaf Kirch.

También para una introducción práctica y menos teórica sobre iptables este enlace

http://es.tldp.org/Manuales-LuCAS/doc-iptables-firewall/doc-iptables-firewall.pdf.

2.2. Prerrequisitos

-Tener instalado iptables v1.4.0

-Tener el núcleo de Linux con soporte de cortafuegos

-Tener conocimientos de comunicación del protocolo TCP/IP .

-Las configuraciones están hechas mediante scripts de Shell, así que se presupondrá

unos conocimientos mínimos de Shell scripts, estos se han echo sobre BASH scripts.

Para núcleos superiores al 2.4 estas son las opciones necesarias al compilar el núcleo

para que funcione iptables, aunque con la instalación minima de Debian/Lenny

funcionara:

Fig. 2.1. Configuración de la red en el kernel

Antes de empezar a configurar los cortafuegos hay que cargar el modulo del núcleo

netfilter.

Fig. 2.2. Cargando modulo nucleo netfilter

Iptables sería como una capa de abstracción entre el usuario y netfilter. Así como un

sistema operativo hace de capa de abstracción de entre la maquina y el usuario.

2.3. Mecanismo de un cortafuegos (firewall)

modprobe iptables

Networking options −−−> [*] Network packet filtering (replaces ipchains) IP: Netfilter Configuration −−−> . <M> Userspace queueing via NETLINK (EXPERIMENTAL) <M> IP tables support (required for filtering/masq/NAT) <M> limit match support <M> MAC address match support <M> netfilter MARK match support <M> Multiple port match support <M> TOS match support <M> Connection state match support <M> Unclean match support (EXPERIMENTAL) <M> Owner match support (EXPERIMENTAL) <M> Packet filtering <M> REJECT target support <M> MIRROR target support (EXPERIMENTAL) . <M> Packet mangling <M> TOS target support <M> MARK target support <M> LOG target support <M> ipchains (2.2−style) support

Page 28: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Un cortafuegos se encarga de filtrar que paquetes entraran a la red y cuales saldrán,

estas decisiones se hace según unos criterios, normalmente lo que se hace es configurar

iptables para que el firewall compruebe la estructura de los datagramas y el contenido

de sus campos, según el contenido de estos datagramas se realizara una acción.

Hay 2 formas de configurar un cortafuegos:

1. Aceptar todos los paquetes e indicar explícitamente cuales no se aceptaran.

2. Denegar todos los paquetes e indicar explícitamente cuales serán aceptados.

La primera a opción es muy fácil su configuración, pero más insegura que la segunda

opción. Lo recomendable es la segunda opción, pero la configuración será mucho más

difícil.

2.4. Tipos de configuración realizados

2.4.1. Ejemplo sencillo de configuración de un host. 2.4.2. Configuración del cortafuegos de mi host en la red lab.unavarra.es.

2.4.1. Ejemplo sencillo de configuración de un host

El siguiente ejemplo es una pequeña muestra de lo que se puede realizar con iptables, se

pueden hacer pequeños scripts de configuración hasta cientos de líneas de

configuración, depende el nivel de seguridad que queramos a llegar a implementar. Hay

que dejar claro que nunca existe la seguridad perfecta, solo se puede mejorar e

incrementar.

Fig. 2.3. Ejemplo de configuración mediante iptables

Línea 1: indica que se va hacer el script sobre el lenguaje de scripts bash.

Línea 2: política por defecto de los paquetes de entrada rechazarlos (DROP).

Línea 3: la política por defectdo de los paquetes de salida son aceptarlos.

Línea 4: aceptaremos todos los paquetes que sean de una conexión establecida

(ESTABLISHED) o se está estableciendo la conexión (RELATED).

Línea 5: aceptaremos los paquetes de la interfaz lo (loopback).

Línea 6: aceptaremos todos los paquetes de entrada del protocolo UDP con puerto 53

(DNS).

Línea 7: aceptaremos todos los paquetes con numero de puerto destino 53 o 80 (www)

del protocolo TCP.

Para ver un resumen de todas las reglas que hemos introducido en sistema tenemos el

comando iptables –L.

#!/bin/bash iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT iptables -A INPUT -p tcp -m multiport --dports 53,80 -j ACCEPT

Page 29: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 2.4. iptables –L

Chain INPUT (policy ACCEPT): esta línea pone los filtros para los paquetes de

entrada. Mediante policy ACCEPT indicaremos que todos los paquetes de entrada son

aceptados, sobre esta política pondremos las reglas para denegar acceso de paquetes.

Chain FORWARD (policy DROP): esta política se refiere cuando los paquetes no van

al host, pero tiene que ser trasmitido. Seria cuando el host se comporta como un router.

Policy DROP indica que la política por defecto de esta sección es rechazar los paquetes.

Chain OUTPUT (policy ACCEPT): esta es la política referente a los paquetes que

salen, mediante policy ACCEPT decimos que la política por defecto es dejar que salgan

los paquetes.

Nota: todo este conjunto de comandos iptables lo ejecutaremos mediante el lenguaje de

programación bash script, debe guardarse mifirewall.sh y darle permisos de ejecución

mediante el comando chmod 700 mifirewall.sh. Para ejecutarlo en la terminal tecleamos

./mifirewall.sh. En el capítulo 6 hago una pequeña explicación de cómo funcionan los

scripts.

debian:/home/ekaitz/Desktop/practicasIPTABLES# iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere ACCEPT udp -- anywhere anywhere udp dpt:domain ACCEPT tcp -- anywhere anywhere multiport dports domain,www Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

Page 30: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 2.5. esquema de iptables

Page 31: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

2.4.2. Configuración del cortafuegos de mi host en la red lab.unavarra.es

Fig. 2.6. Configuración de cortafuegos en host lab.unavarra.es

La configuración de este script para BASH configura un firewall de un host que utilizo

en mi red lab.unavarra.es con ip 172.18.69.246, el script se estructura de la siguiente

forma:

1. Borra todas las configuraciones de iptables anteriormente hechas.

2. Ponemos la política por defecto de aceptación (ACCEPT) al contrario que

habíamos hecho en el ejemplo sencillo, aunque es más seguro poner la política

por defecto DROP (rechazo) aunque la configuración resulta más difícil, si usted

acaba de empezar con iptables es recomendable usar la política por defecto

ACCEPT y sobre esto poner lo que vamos a rechazar, cuando ya se coja destreza

use la política por defecto DROP.

3. Ahora vamos a bloquear los servicios que queremos que nuestro host no pueda

usar, rechazamos todos los paquetes de entrada con el protocolo ICMP (utilizado

para hacer ping) y también rechazamos todos los paquetes de salida

pertenecientes al protocolo ICMP. También rechazaremos el puerto 21 que es el

protocolo TCP (Transfer Control Protocol) y el protocolo SSH para hacer login

a maquinas remotas. En el último ejemplo práctico hemos bloqueado el servicio

de mensajería Menssenger. Para ello debemos rechazar el puerto 1863, este

puerto es el necesario para que funcione el programa.

#!/bin/bash IPTABLES=iptables NUESTRARED="172.18.69.246" NUESTRABROADCAST="172.18.95.255" NUESTRAINTERFAZ="eth1" CUALQUIERRED="0/0"

# FIN DE LA SECCIÓN CONFIGURABLE POR EL USUARIO ########################################################################### # Borra las reglas de la cadena de entrada $IPTABLES -F INPUT $IPTABLES -F OUTPUT # # Por defecto, queremos denegar el acceso a los intentos de entrada

#POLITICA POR DEFECTO $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT

# LO QUE RECHAZAMOS

#Rechazmos icmp, y telnet y ssh $IPTABLES -A INPUT -p icmp -d $NUESTRARED -s $CUALQUIERRED -j DROP $IPTABLES -A OUTPUT -p icmp -s $NUESTRARED -d $CUALQUIERRED -j DROP

$IPTABLES -A INPUT -m tcp -p tcp -d $NUESTRARED -s $CUALQUIERRED --dport 22 -j DROP $IPTABLES -A INPUT -m tcp -p tcp -d $NUESTRARED -s $CUALQUIERRED --dport 22 -j DROP

$IPTABLES -A INPUT -m tcp -p tcp -d $NUESTRARED -s $CUALQUIERRED --dport 21 -j DROP $IPTABLES -A INPUT -m tcp -p tcp -d $NUESTRARED -s $CUALQUIERRED --dport 21 -j DROP $IPTABLES -A INPUT -m tcp -p tcp -d $NUESTRARED -s $CUALQUIERRED --dport 21 -j DROP $IPTABLES -A INPUT -m tcp -p tcp -d $NUESTRARED -s $CUALQUIERRED --dport 21 -j DROP $IPTABLES -A INPUT -m tcp -p tcp -d $NUESTRARED -s $CUALQUIERRED --dport 1863 -j DROP $IPTABLES -A INPUT -m tcp -p tcp -d $NUESTRARED -s $CUALQUIERRED --dport 1863 -j DROP

Page 32: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante
Page 33: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

3. Auditoría del sistema en una red local

3.1 Introducción

Auditoria del sistema en una red local es el registro de todo lo que pasa en la red local

creando uno histórico de lo sucedido.

Existen múltiples tipos de sucesos (técnicamente a un suceso se le llama evento o log) ,

desde intentos fallidos de login, tiempo de CPU que los usuarios consumen, momento

en que un usuario se loguea, etc.

Las ventajas de monitorizar son múltiples; aviso de anomalías en la red local, posibles

ataques exteriores como denegación de servicio, detección de intrusos, etc.

El problema puede surgir si nuestro sistema analiza grandes volúmenes de información,

ya que será más difícil encontrar anomalías, para eso tenemos herramientas útiles para

un administrador como Shell scripts y los comandos grep, tr, sed y awk, que serán

explicadas mediante ejemplos prácticos en el capítulo 5.

Para este capítulo como guía de referencia he seguido el capítulo 7 del manual de

SEGURIDAD EN UNIX Y REDES Versión 2.1 de Antonio Villalón Huerta.

3.2. Prerrequisitos

Necesitamos la instalación base de Debian/Lenny y también será recomendable tener

conocimientos de expresiones regulares si queremos entender algunos ejemplos

perfectamente, aunque no es indispensable. En este capítulo no explicaré las

expresiones regulares recomiendo la lectura del contenido de este enlace

http://www.bulma.net/body.phtml?nIdNoticia=770.

3.3. Funcionamiento del sistema de monitorización.

La monitorización del sistema lo controla el demonio sysklogd y los criterios de

configuración se realizan mediante el fichero /etc/syslog.conf.

El monitorizar los datos de una red local existe un problema, es que produce un ingente

volumen de información, para ello debemos seleccionar los sucesos relevantes,

recomiendo que se monitoricen los siguientes sucesos:

Un intento de acceso con contraseña equivocada.

Un acceso correcto al sistema.

Anomalías: variaciones en el funcionamiento normal del sistema.

Page 34: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Alertas cuando ocurre alguna condición especial.

Información sobre actividades del sistema operativo.

Errores del hardware o el software.

Si uno no es un experto en seguridad recomiendo no modificar el fichero

/etc/syslog.conf y dejarlo como viene por defecto.

Para facilitar las tareas de control de la información monitorizada lo recomendable es

que exista un ordenador servidor que se encargue de registrar todos los eventos de la red

local, este ordenador centralizara toda esta información existiendo un punto unificado.

Éste no tiene por qué encargase exclusivamente de la monitorización de la red local,

también podría ser a la vez un servidor FTP o un servidor web. Más tarde en este

capítulo veremos cómo hacer una monitorización centralizada mediante los logs

remotos, que sirve para que los logs de una maquina vayan a parar a otra máquina.

Fig. 3.1. Topología de servidor de logs

3.4. Funcionamiento del fichero de configuración /etc/syslog.conf

El siguiente cuadro representa la configuración por defecto del fichero /etc/syslog.conf

en Debian/Lenny.

Page 35: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 3.2. Fichero de configuración /etc/syslog.conf

Cada línea del fichero /etc/syslog.conf está formada por:

servicio.nivel_de_prioridad campo_de_accion

Servicio: indica el servicio que será monitorizado.

Nivel de prioridad: indica el nivel de prioridad indicado para los eventos del servicio.

Campo de acción: indica donde se va guardar un evento de un servicio.

El campo servicio puede ser uno de estos 14 atributos:

auth: Sistema de autenticación, incluyendo login, su y getty. authpriv: Programas de autorización privados .

cron: cron y at. daemon: demonios del sistema .

ftp: demonio de ftp.

kern: mensajes generados por el kernel.

local0-7: reservado para uso local.

lpr: sistema de impresión.

mail: sistema de mail.

mark: mensajes internos de syslogd (no usable por aplicaciones).

news: sistema de news en la red.

syslog: mensajes del demonio de syslog.

user: Aplicaciones de usuario.

uucp: sistema UUC.

El campo nivel de prioridad puede ser uno de estos 8 atributos:

Debug: mensajes generados en la depuración de un programa.

debian:/# cat /etc/syslog.conf

# /etc/syslog.conf Configuration file for syslogd.

#

# For more information see syslog.conf(5)

# manpage.

# First some standard logfiles. Log by facility.

auth,authpriv.* /var/log/auth.log

*.*;auth,authpriv.none -/var/log/syslog

#cron.* /var/log/cron.log

daemon.* -/var/log/daemon.log

kern.* -/var/log/kern.log

lpr.* -/var/log/lpr.log

mail.* -/var/log/mail.log

user.* -/var/log/user.log

#

# Logging for the mail system. Split it up so that

# it is easy to write scripts to parse these files.

#

mail.info -/var/log/mail.info

mail.warn -/var/log/mail.warn

mail.err /var/log/mail.err

# Logging for INN news system

news.crit /var/log/news/news.crit

news.err /var/log/news/news.err

news.notice -/var/log/news/news.notice

# Some `catch-all' logfiles.

#

*.=debug;\

Page 36: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Info: mensajes informativos.

Notice: mensajes no críticos que requieren investigación adicional.

Warning: mensajes de aviso.

Err: otros errores.

Crit: condiciones críticas como errores hardware.

Alert: condiciones que se deberían resolver rápidamente.

emerg : condiciones de pánico muy importantes.

El campo acción pueden ser ficheros o múltiples tipos de dispositivos:

Un fichero plano

Fig. 3.3. Monitorización en fichero plano

Un dispositivo físico como una terminal o una impresora.

Fig. 3.4. Monitorización en dispositivo físico

Una maquina remota.

Fig. 3.5 Monitorización en maquina remota

Unos usuarios del sistema.

Fig. 3.6. Monitorización a usuarios del sistema

Todos los usuarios que estén conectados.

Fig. 3.7. Monitorización de todos los usuarios del sistema

Existen metacaracteres como el “* , ; = !” todos ellos están explicados en man 5

syslog.conf.

Si quisiéramos crear nuestro propio envió de mensajes de log en tiempo real

deberíamos usar el comando logger.

Fig. 3.8. Creación de mensaje log mediante logger

debian:/dev# logger -p local0.info "Enviando al demonio sysklogd con el servicio local0 y

nivel de prioridad info"

debian:/dev# tail -1 /var/log/messages

Mar 26 19:44:51 debian ekaitz: Enviando al demonio syslogd con el servicio local0 y nivel

de prioridad info

*.alert *

*.alert root, ekaitz,ulaize

*.* @s101.lab.unavarra.es

mail.err /dev/console

mail.err /var/log/mail.err

Page 37: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

En la figura hemos creado un mensaje log del servicio local0 con prioridad info y el

mensaje del evento es "Enviando al demonio sysklogd con el servicio local0 y nivel de

prioridad info". El mensaje es guardado según la configuración syslog.conf en este caso

se guarda en /var/log/messages con la fecha y hora de la maquina que lo genera, el

usuario y el mensaje.

3.5. Ficheros comunes donde se guardan los logs

Como hemos visto en el campo de acción podemos indicar que registre los mensajes en

cualquier fichero, maquina o dispositivo físico. Pero normalmente hay unos

determinados ficheros del sistema GNU/Linux que es donde habitualmente se registran

determinados mensajes, estos son los más importantes:

3.5.1. Fichero /var/log/syslog

Este fichero que en Debian/Lenny está situado en /var/log/syslog, es el fichero más

importante dentro del sistema de monitorización de Linux, este fichero registra por

defecto todos los servicios y todas las prioridades, a excepción de los servicios auth y

authpriv. Para más información sobre el fichero man /var/log/syslog.

Fig. 3.9. /var/log/syslog

3.5.2. Fichero /var/log/messages

En este fichero, situado en /var/log/messages, se guardan mensajes de baja a media

prioridad.

Fig. 3.10. /var/log/messages

3.5.3. Fichero /var/log/daemon.log

Estos mensajes están relacionados con los demonios del sistema operativo, es decir,

procesos que trabajan en segundo plano continuamente ofreciendo diferente tipo de

servicios.

debian:/home/ekaitz# tail /var/log/messages

Mar 27 11:45:01 debian kernel: sdb: sdb1

Mar 27 11:45:01 debian kernel: sd 2:0:0:0: [sdb] Attached SCSI removable disk

Mar 27 11:45:01 debian kernel: sd 2:0:0:0: Attached scsi generic sg2 type 0

Mar 27 11:47:08 debian syslogd 1.5.0#3: restart.

Mar 27 12:01:26 debian -- MARK --

Mar 27 12:12:59 debian kernel: [drm] Loading R300 Microcode

Mar 27 12:13:20 debian kernel: [drm] Setting GART location based on new memory map

Mar 27 12:13:20 debian kernel: [drm] Loading R300 Microcode

Mar 27 12:13:20 debian kernel: [drm] writeback test succeeded in 1 usecs

Mar 27 12:19:48 debian kernel: [drm] Loading R300 Microcode

ebian /USR/SBIN/CRON[4356]: (root) CMD (/etc/webmin/cluster-cron/cron.pl 1236007691-5869)

debian:/home/ekaitz# tail /var/log/syslog

Mar 27 12:19:48 debian acpid: client connected from 3855[0:0]

Mar 27 12:19:48 debian kernel: [drm] Loading R300 Microcode

Page 38: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 3.11. /var/log/daemon.log

3.5.4. Fichero /var/log/wtmp

Este fichero situado en /var/log/wtmp es binario luego no se podrá leer directamente,

para ello se utiliza el comando k que interpreta el fichero /var/log/wtmp, contiene

información de todos los logueos en el sistema y los reinicios.

Fig. 3.12. last

La última línea indica desde cuando se registra información en el fichero /var/log/wtmp.

3.5.5. Fichero /var/run/utmp

Este fichero situado en /var/run/utmp también es binario y registra los usuarios

conectados al sistema en tiempo real e información de lo que están ejecutando. Se podrá

ver los usuarios conectados mediante los siguientes comandos.

Fig. 3.13. last –f /var/run/utmp

Fig. 3.14. who

ekaitz@debian:~$ who

ekaitz tty7 2009-03-27 11:44 (:0)

ekaitz pts/0 2009-03-27 11:52 (:0.0)

ekaitz pts/1 2009-03-27 11:53 (:0.0)

ekaitz@debian:~$ last -f /var/run/utmp

ekaitz pts/1 :0.0 Fri Mar 27 11:53 still logged in

ekaitz pts/0 :0.0 Fri Mar 27 11:52 still logged in

ekaitz tty7 :0 Fri Mar 27 11:44 still logged in

reboot system boot Fri Mar 27 11:41 - 11:55 (00:13)

utmp begins Fri Mar 27 11:41:26 2009

debian:/home/ekaitz# last

reboot system boot 2.6.24-1-686 Thu Mar 5 11:02 - 19:18 (08:16)

ekaitz pts/0 :0.0 Tue Mar 3 16:11 - 16:11 (00:00)

ekaitz pts/1 :0.0 Tue Mar 3 15:39 - 16:11 (00:31)

ekaitz pts/0 :0.0 Tue Mar 3 14:48 - 16:11 (01:22)

ekaitz tty7 :0 Tue Mar 3 14:43 - 16:11 (01:28)

reboot system boot 2.6.24-1-686 Tue Mar 3 14:42 - 16:11 (01:28)

ekaitz pts/0 :0.0 Mon Mar 2 17:21 - 17:21 (00:00)

ekaitz pts/1 :0.0 Mon Mar 2 16:20 - 16:20 (00:00)

ekaitz pts/0 :0.0 Mon Mar 2 12:01 - 17:20 (05:18)

wtmp begins Mon Mar 2 12:01:42 2009

debian:/home/ekaitz# tail /var/log/daemon.log

Mar 27 12:12:55 debian gdm[3798]: WARNING: No se pudo autenticar al usuario

Mar 27 12:12:59 debian acpid: client connected from 2783[0:0]

Mar 27 12:13:18 debian acpid: client connected from 3855[0:0]

Mar 27 12:13:36 debian gdm[2780]: WARNING: No se pudo autenticar al usuario

Mar 27 12:13:41 debian NetworkManager: <info> Updating allowed wireless network lists.

Mar 27 12:13:41 debian NetworkManager: <WARN> nm_dbus_get_networks_cb(): error received:

org.freedesktop.NetworkManagerInfo.NoNetworks - There are no wireless networks stored..

Mar 27 12:19:12 debian acpid: client connected from 4201[0:0]

Mar 27 12:19:24 debian gdm[4199]: WARNING: No se pudo autenticar al usuario

Mar 27 12:19:42 debian last message repeated 3 times

Mar 27 12:19:48 debian acpid: client connected from 3855[0:0]

Page 39: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 3.15 w

El comando who y last -f /var/run/utmp solo sacan información de los procesos en

ejecución del usuario, pero la información de w es más completa sacando desde cuando

esta la maquina corriendo, el número de usuarios, carga de trabajo y que están

ejecutando exactamente en ese momento.

Toda la información de los ficheros utmp wtmp están en man 5 utmp.

3.5.6. Fichero /var/log/lastlog

Es un fichero guardado en /var/log/lastlog que contiene información de la conexión de

los usuarios, indicando la fecha y hora de cada uno de ellos y desde donde se ha

conectado. Para visualizar este fichero usaremos el comando lastlog.

Fig. 3.16. lastlog

3.5.7. Fichero /var/log/faillog

Este fichero binario que se sitúa en /var/log/faillog guarda los últimos intentos fallidos

de logueo de la contraseña.

debian:/var/log# lastlog

Nombre Puerto De Último

root pts/2 localhost jue mar 26 19:51:45 +0100 2009

daemon **Nunca ha entrado**

bin **Nunca ha entrado**

sys **Nunca ha entrado**

sync **Nunca ha entrado**

games **Nunca ha entrado**

man **Nunca ha entrado**

…#Mas información irrelevante

messagebus **Nunca ha entrado**

haldaemon **Nunca ha entrado**

gdm **Nunca ha entrado**

ekaitz tty3 jue mar 26 16:21:20 +0100 2009

sshd **Nunca ha entrado**

samba pts/2 172.18.69.249 lun mar 16 16:20:50 +0100 2009

ekaitz@debian:~$ w

11:53:54 up 12 min, 3 users, load average: 0,14, 0,24, 0,16

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

ekaitz tty7 :0 11:44 0.00s 24.04s 0.08s x-session-manag

ekaitz pts/0 :0.0 11:52 0.00s 0.12s 0.00s w

ekaitz pts/1 :0.0 11:53 2.00s 0.10s 0.00s ping localhost

Page 40: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 3.17 last –f /var/log/btmp

3.5.8. Fichero /var/log/debug

Esos mensajes son información de depuración de los programas que se ejecutan en el

sistema, incluyendo el kernel. La depuración son los errores que suceden.

Fig. 3.18. lastlog

3.6. Como realizar logs remotos

El demonio sysklogd permite fácilmente guardar registros en máquinas remotas. La

ventaja de esto es que si un usuario entra en un sistema los logs no vayan a parar a la

maquina infectada y se vayan a una maquina exterior. Otra ventaja es que se pueden

centralizar todos los logs de todos hosts de una red local en un ordenador central, de ahí

filtrarlos con herramientas tipo grep, tr, sed y awk que explicaremos en el capítulo 5.

1. Añadimos la siguiente línea en el fichero /etc/syslog en la parte del cliente.

Fig. 3.19. Configuración host de lab.unavarra.es en /etc/syslog

En nuestro caso hemos decido que todos los sucesos vayan a parar a la maquina con ip

172.18.69.249 (s101.lab.unavarra.es).

2. Habilitamos el soporte de log remoto en la maquina que va recibir (servidor) los

logs.

*.* @s101.lab.unavarra.es

debian:/home/ekaitz# tail /var/log/debug

Mar 27 11:44:56 debian NetworkManager: <debug> [1238150696.407816] nm_hal_device_added(): New device added (hal udi is

'/org/freedesktop/Hal/devices/usb_device_0_7777_72837090_if0').

Mar 27 11:44:56 debian NetworkManager: <debug> [1238150696.412729] nm_hal_device_added(): New device added (hal udi is

'/org/freedesktop/Hal/devices/usb_device_0_7777_72837090_usbraw').

Mar 27 11:45:01 debian kernel: usb-storage: device scan complete

Mar 27 11:45:01 debian kernel: sd 2:0:0:0: [sdb] Mode Sense: 03 00 00 00

Mar 27 11:45:01 debian kernel: sd 2:0:0:0: [sdb] Mode Sense: 03 00 00 00

Mar 27 11:45:01 debian NetworkManager: <debug> [1238150701.489896] nm_hal_device_added(): New device added (hal udi is

'/org/freedesktop/Hal/devices/usb_device_0_7777_72837090_if0_scsi_host').

Mar 27 11:45:01 debian NetworkManager: <debug> [1238150701.492422] nm_hal_device_added(): New device added (hal udi is

'/org/freedesktop/Hal/devices/usb_device_0_7777_72837090_if0_scsi_host_scsi_device_lun0').

Mar 27 11:45:01 debian NetworkManager: <debug> [1238150701.498234] nm_hal_device_added(): New device added (hal udi is

'/org/freedesktop/Hal/devices/usb_device_0_7777_72837090_if0_scsi_host_scsi_device_lun0_scsi_generic').

Mar 27 11:45:01 debian NetworkManager: <debug> [1238150701.665241] nm_hal_device_added(): New device added (hal udi is

'/org/freedesktop/Hal/devices/storage_serial_Generic_Flash_Disk_72837090_0_0').

Mar 27 11:45:01 debian NetworkManager: <debug> [1238150701.696955] nm_hal_device_added(): New device added (hal udi is

'/org/freedesktop/Hal/devices/volume_uuid_E2AA_F254')

ekaitz@debian:~$ last -f /var/log/btmp

(unknown tty8 :20 Fri Mar 27 12:19 gone - no logout

(unknown tty8 :20 Fri Mar 27 12:19 - 12:19 (00:00)

(unknown tty8 :20 Fri Mar 27 12:19 - 12:19 (00:00)

(unknown tty8 :20 Fri Mar 27 12:19 - 12:19 (00:00)

(unknown tty7 :0 Fri Mar 27 12:13 still logged in

(unknown tty8 :20 Fri Mar 27 12:12 - 12:19 (00:06)

UNKNOWN Thu Mar 26 16:21 still logged in

UNKNOWN Thu Mar 26 16:21 still logged in

(unknown tty7 :0 Thu Mar 12 16:27 - 12:13 (14+19:45)

(unknown tty7 :0 Thu Mar 12 16:27 - 16:27 (00:00)

(unknown tty7 :0 Thu Mar 12 10:26 - 16:27 (06:00)

btmp begins Thu Mar 12 10:26:34 2009

Page 41: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 3.20. Habilitando soporte de log remoto en host servidor

3. Reiniciamos el demonio.

Fig. 3.21. Reinicio del demonio sysklogd

4. Comprobamos que los logs se registran en el servidor, lanzando un log en el

cliente, este log será redireccionado al servidor.

Fig. 3.22. Creando log mediante el comando logger

5. Ahora en el servidor debería aparecer lo siguiente en /var/log/user.log.

Fig. 3.23. Comprobación de que el log se ha registrado en el servidor de logs

Si funciona, a partir de este momento, todos los sucesos serán registrados en la maquina

remota.

debian:/var/log# tail -1 user.log

Mar 27 13:54:57 serciodracer ekaitz: Probando el logueo remoto

debian:/var/log# logger -p user.err "Probando el logueo remoto"

debian:/etc/init.d# /etc/init.d/sysklogd restart

Restarting system log daemon....

# For remote UDP logging use SYSLOGD="-r"

#

SYSLOGD="-r"

Page 42: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

4. Copias de seguridad de un host

4.1. Introducción

En este capítulo aprenderemos a realizar copias de seguridad de un host mediante

comandos de consola que ya están en un sistema GNU/Linux base. Estas copias de

seguridad en una red local son de vital importancia, ya que podemos tener ataques

exteriores a nuestra red local y también posibles fallos de los dispositivos físicos, por

ello en este capítulo haremos los pasos fundamentales para poder realizar las copias

seguridad.

Para este capítulo como guía de referencia he seguido el capítulo 7 del manual de

SEGURIDAD EN UNIX Y REDES Versión 2.1 de Antonio Villalón Huerta.

4.2. Prerrequisitos

Instalación estándar Debian/Lenny. También necesitamos algunos conocimientos sobre

cómo se estructuran los discos duros físicamente. Para más información sobre discos

duros, http://www.monografias.com/trabajos14/discosduros/discosduros.shtml.

4.3. Aplicaciones de copias de seguridad

Para realizar una copia de seguridad tendremos, antes de todo, que pensar que

aplicación debemos usar. Existen múltiples tipos de aplicaciones con interfaz grafica;

modo consola, privativo y software libre. Hay que tener en cuenta las desventajas de

usar software privativo, puede ser peligroso en estas lides, ya que tener software

privativo en una maquina donde realizamos la copia de seguridad es muy peligroso.

Puede que la máquina falle y nos quedemos sin nuestra licencia en el momento más

inesperado, en cambio con el software libre no tiene estos inconvenientes, además es

mejor utilizar órdenes de consolas directamente ya que es más rápido y eficiente. En

esta guía nos vamos a ceñir al software libre y específicamente en modo consola.

Principales aplicaciones privativas comerciales:

BRU (Backup and Restore Utility) ha estado en el mundo Linux desde hace tiempo.

Este programa proporciona un conjunto de herramientas relativamente completo de

forma unificada mediante línea de comandos y entorno gráfico (en otras palabras,

sencillo de automatizar). Soporta copias de seguridad completas, incrementales y

diferenciales, al igual que catálogos y puede escribir a un fichero o a una cinta, se trata

básicamente de un programa sólido, simple y fácil de utilizar. El BRU se encuentra

disponible en: http://www.estinc.com/features.html

Quickstart

El Quickstart está destinado a crear una imagen del sistema, de forma que cuando falle

el disco duro se pueda cargar de forma rápida un disco en blanco y tener un sistema

Page 43: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

funcionando. También se puede utilizar para crear un "master" de un sistema y después

cargar otros sistemas (como alternativa al Qickstart de Red Hat). Se puede conseguir en:

http://www.estinc.com/qsdr.html

Principales aplicaciones privativas profesionales:

Backup Professional

http://www.unitrends.com/bp.html

CTAR

http://www.unitrends.com/ctar.html

PC ParaChute

http://www.unitrends.com/pcpara.html

Arkeia

Programas no comerciales de Copias de Seguridad para Linux (entorno grafico):

Amanda

Amanda es un programa de copia de seguridad cliente/servidor basado en red, con

soporte para la mayoría de sistemas UNIX y Windows (vía SAMBA). Amanda tiene

licencia al estilo de BSD y está disponible en: http://www.amanda.org/

afbackup

Afbackup es otro programa cliente/servidor con una licencia general GPL con una

pequeña excepción, el desarrollo de la porción servidor en Windows está prohibida.

Afbackup tiene soporte de servidor para Linux, HP-UX y Solaris y tiene clientes para

esos y para windows. Se puede descargar en: ftp://ftp.zn-gmbh.com/pub/linux

Burt

Burt es un conjunto de extensiones basadas en Tcl/Tk que permite hacer copias de

seguridad de estaciones UNIX fácilmente, lo cual permite ejecutarlo en casi cualquier

sistema. Burt tiene arquitectura cliente/servidor y parece ser bastante escalable, está

disponible en: http://www.cs.wisc.edu/~jmelski/burt/

Aplicaciones modo consola para poder realizar copias de seguridad:

tar: Programa de almacenamiento de archivos.

cpio:

Copia ficheros.

dd:

Copia un fichero de un sitio a otro indicando el tamaño de bloque seleccionado y

diversas opciones más.

Dump:

Potente comando para realizar copias de seguridad en múltiples sistemas de

almacenamiento como sistemas de cinta.

jungla.dit.upm.es/~joaquin/las/trabajos/2000/2000jjpina.pdf.gz

Page 44: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

restore:

Restaurar copias de seguridad realizadas mediante dump.

En este capítulo nos ceñiremos a explicar las aplicaciones con licencia de software libre,

más concretamente las que funcionan en modo consola.

4.3. Ficheros a realizar el backup

A la hora de decidir qué ficheros deben ser salvados normalmente se siguen los

siguientes criterios:

Los datos del usuario /home

Los ficheros de configuración en /etc y /var

Finalmente /usr y /usr/local.

El directorio /usr se destina a los archivos que son compartidos para todos los usuarios

del sistema. El directorio /usr/local se destina a los programas que el administrador no

quiere que le afecten las actualizaciones del Debian/Lenny. En /var se guardan variables

del sistema, ficheros de monitorización, datos históricos, de administración, etc. En

/home se guardara cualquier dato que guarde el usuario y en /etc como habíamos dicho

en capítulos anteriores, es donde se almacenan los ficheros de configuración.

4.4. Comandos para realizar backups.

4.4.1 dump 4.4.2 tar 4.4.3 cpio 4.4.4 dd 4.4.5 cp

4.4.1. Dump

Cuando vamos a realizar un backup antes de todo tendremos que localizar nuestro disco

duro en el sistema de ficheros. Todo dispositivo del ordenador tiene un fichero

relacionado en el sistema de ficheros de GNU/Linux. El directorio donde se encuentran

todos los ficheros relacionados con los dispositivos de nuestro sistema es /dev.

En este directorio tendremos que localizar el conjunto de ficheros que pueden estar

asociados a los discos duros de nuestro sistema. Para ello buscaremos los ficheros

“/dev/hd*”(1) estos son discos duros IDE (Integrated Device Electronics) también

llamados ATA (Advanced Technology Attachment), también deberemos buscar los

dispositivos “/dev/sd*” , estos son dispositivos qué se conectan a la interfaz SCSI,

normalmente los dispositivos que se conectan a esta interfaz son discos duros, pero

Page 45: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

también pueden ser lectores de CD y DVD. Estas denominaciones son oficiales y se

encuentran explicadas en http://www.lanana.org/docs/device-list/devices.txt

(1) Con el * represento una cadena caracteres cualquiera concatenada con hd.

Mediante el comando de consola ls –al sd* sacaremos todos los ficheros asociados a los

dispositivos SCSI.

Fig 4.1. ls –al sd*

En la figura 4.1tenemos todos los dispositivos que están montados en la interfaz SCSI

de mi sistema, ya que nuestro sistema no tiene ninguna interfaz IDE. Como podemos

observar hay tres dispositivos sda, sdb y sdc. Las numeraciones en cada uno representan

particiones en cada uno.

Para obtener una información más exhaustiva deberemos teclear fdisk –l en nuestra

terminal.

Fig 4.2. fdisk -l

Mediante este último comando hemos obtenido la información de dos dispositivos,

/dev/sda y /dev/sdc. /dev/sda es el disco duro principal donde esta albergado

La información obtenida de /dev/sda es la estructura lógica del disco duro, es decir, las

que particiones que hay en el disco duro y la estructura física del disco.

Estructura física del dispositivo /dev/sda:

debian:/home/ekaitz# fdisk -l Disco /dev/sda: 250.0 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Disk identifier: 0xfba0fba0 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sda1 * 1 30071 241545276 83 Linux /dev/sda2 30072 30401 2650725 5 Extendida /dev/sda5 30072 30401 2650693+ 82 Linux swap / Solaris Disco /dev/sdc: 60.0 GB, 60011642880 bytes 64 heads, 32 sectors/track, 57231 cylinders Units = cilindros of 2048 * 512 = 1048576 bytes Disk identifier: 0x00000000 El disco /dev/sdc no contiene una tabla de particiones válida Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sdc1 1 3921 4075504 b W95 FAT32 Disco /dev/sdb: 60.0 GB, 60011642880 bytes 64 heads, 32 sectors/track, 57231 cylinders Units = cilindros of 2048 * 512 = 1048576 bytes Disk identifier: 0x00000000

debian:/dev# ls -al sd* brw-rw---- 1 root disk 8, 0 ene 22 09:57 sda brw-rw---- 1 root disk 8, 1 ene 22 09:57 sda1 brw-rw---- 1 root disk 8, 2 ene 22 09:57 sda2 brw-rw---- 1 root disk 8, 5 ene 22 09:57 sda5 brw-rw---- 1 root floppy 8, 32 ene 22 12:27 sdc brw-rw---- 1 root floppy 8, 33 ene 22 12:27 sdc1

Page 46: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Capacidad: 250GB

255 cabezas de lectura 63 sectores por pista y 3041 cilindros y cada cilindro tiene

825280 bytes.

Estructura lógica del dispositivo /dev/sda:

Tenemos tres particiones, por cada partición, tenemos en que cilindro empieza la

partición y en qué cilindro acaba, numero bloques que ocupa y tipo de partición.

Disposit . Inicio Comienzo Fin Bloques Id

Sistema

/dev/sda1 * 1 30071 241545276 83 Linux

/dev/sda2 30072 30401 2650725 5 Extendida

/dev/sda5 30072 30401 2650693+ 82 swap

Fig. 4.3. Tabla de particiones

También nos ha detectado un dispositivo más, que es un disco duro externo usb con una

capacidad de 60 GB, pero no contiene ninguna tabla de particiones.

Realizando la copia:

Debemos tener en cuenta que el fichero /dev/sda no alberga la información, ya que este

fichero se refiere al dispositivo lógico y no a la información física. La información

física está albergada en las distintas particiones del disco duro que habíamos explicado

con anterioridad, es decir, /dev/sda1, /dev/sda2 y /dev/sda3.

Preparar el disco duro a copiar:

Antes de realizar en nuestro disco duro la copia de seguridad es obligatorio que el

sistema de ficheros del dispositivo de almacenamiento destino sea el mismo que el

sistema de ficheros origen. Para ello realizaremos un formateo del disco duro destino

entero mediante la aplicación gparted, para ello tecleamos gparted /dev/sdc en la

terminal y nos arrancara una interfaz. Si no está la aplicación gparted instalamos

gparted con el comando apt-get install gparted.

Page 47: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 4.4. Formateando disco duro en ext3 mediante gparted

Le damos con el botón derecho del ratón a la línea que aparece con la información del

dispositivo y elegimos formatear como ext3 y luego aplicar.

Una vez hechos los pasos descritos anteriormente ya podemos realizar la copia de

seguridad del disco duro utilizando el comando dump.

Page 48: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 4.5. Copia mediante dump

Después realizar la copia de seguridad para recuperar toda esta información usaremos el

comando restore con la opción -rf. Toda la información quedara en el directorio actual

donde nos encontremos.

Fig. 4.6. restaurar disco duro mediante restore

4.4.2. tar

La utilidad tar (Tape Archiver) fue concebida para crear un archivo de múltiples

directorios de un disco duro y transferirlos a un disco de cinta, en la actualidad se utiliza

para transferirlo a cualquier tipo de soporte de almacenamiento. Funciona creando un

solo fichero para albergar la información de múltiples directorios, a este fichero

resultante le llamaremos contenedor.

debian:/home/ekaitz# restore -rf /dev/sdc1

debian:/mnt# dump 0uf /dev/sdc1 /dev/sda1 DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Dumping /dev/sda1 (/) to /dev/sdb DUMP: Label: none DUMP: Writing 10 Kilobyte records DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 2763328 blocks. DUMP: Volume 1 started with block 1 at: Wed Feb 4 12:10:42 2009 DUMP: Closing /dev/sdbI) [directories] DUMP: Volume 1 completed at: Wed Feb 4 12:15:24 2009

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

Page 49: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Creación de un contenedor con varios directorios

Fig. 4.7. Copia tar sin comprimir.

En la figura hemos creado un fichero “tar” a partir de todos los directorios contenidos

en “upna\ 2008”.

Creación de un contenedor comprimido

Fig. 4.8. tar contendor comprimido

Creación de un contenedor mediante expresiones regulares

Fig. 4.9. tar mediante expresiones regulares

Comprobando la integridad de un contenedor

Fig. 4.10 tar (comprobación de integridad)

debian:/home# tar tvf contenedor -rw-r--r-- root/root 589 2009-02-18 17:43 etc/hosts.allow -rw-r--r-- root/root 579 2009-01-21 18:24 etc/hosts.allow~ -rw-r--r-- root/root 878 2009-01-21 18:24 etc/hosts.deny

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

debian:/home# tar cvfz contenedor /etc/hosts.* tar: Eliminando la `/' inicial de los nombres /etc/hosts.allow /etc/hosts.allow~ /etc/hosts.deny

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

debian:/home# tar cvfz contenedor /home/ekaitz/Desktop/upna\ 2008/

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

debian:/home# tar cvf contenedor /home/ekaitz/Desktop/upna\ 2008/ /home/ekaitz/Desktop/upna 2008/.Trash-1000/ /home/ekaitz/Desktop/upna 2008/.Trash-1000/files/ /home/ekaitz/Desktop/upna 2008/.Trash-1000/files/Sistemas Operativos (2)/ /home/ekaitz/Desktop/upna 2008/.Trash-1000/files/Sistemas Operativos (2)/Sesion 5 comentada/ /home/ekaitz/Desktop/upna 2008/.Trash-1000/files/Sistemas Operativos (2)/Sesion 5 comentada/ver.c ... continua

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

Page 50: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

4.3.3. cpio

La utilidad cpio (Copy In/Out) sirve para copiar archivos a un contenedor o desde un

contenedor cpio. Funciona muy parecido a tar.

Fig. 4.11. cpio ejemplo de uso

El funcionamiento es un tanto extraño, cpio lee de la entrada estándar (la entrada

estándar por defecto es el teclado) los ficheros a almacenar y los saca por la salida

estándar (por defecto la pantalla) el fichero generado. Como no queremos que salga por

la salida estándar, redireccionamos esta salida estándar al fichero contendorCPIO.

Chequear con cpio

Fig. 4.12. chequear con cpio

Extraer todo el fichero de cpio

Fig. 4.13. Extraer mediante cpio

4.4.4. dd

dd copia un fichero (de la entrada estándar a la salida estándar por omisión) con un

tamaño de bloque seleccionable por el usuario, a la par que, opcionalmente, realiza

sobre él ciertas conversiones.

El siguiente es un ejemplo sencillo. El parámetro “if” (input file) indicamos el fichero

origen y el parámetro “of” (output file) indicamos el fichero destino.

Fig. 4.14. Uso de dd

4.4.5. cp

debian:/home#cpio -i < contenedorCPIO.cpio

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

debian:/home# cpio -t < contenedorCPIO

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

debian:/home# find /home/ekaitz/Desktop/ | cpio -o > ./contenedorCPIO 404021 blocks

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

debian:/home/ekaitz# dd if=/dev/sda1 of=/dev/sdc1 0+1 records in 0+1 records out 25 bytes (25 B) copied, 3,1066e-05 s, 805 kB/s

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009

Page 51: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Esta utilidad sirve cuando hemos creado contenedores mediante cpio o tar y

transferirlos a un fichero o directorio en concreto es muy sencillo cp [fichero_origien]

[fichero_destino].

Fig. 4.15. Uso de cp

debian:/home/ekaitz# cp /home/ekaitz/Desktop/upna\ 2008.tar.gz /media/disk

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

Page 52: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

5. Administración de cuentas y grupos en un host

5.1. Introducción

Linux es un sistema en el que se pueden albergar varios usuarios, estos usuarios los

podemos unificar asignándolos a un grupo común. Esta parte es muy importante para la

integridad del sistema operativo. La razón de esta importancia es porque todo fichero de

Linux se organiza mediante permisos. A un fichero le podemos dar permisos de

“usuario”, “grupo” y “otros”. Así habrá ficheros que podrán ser accedidos por un grupo

de usuarios o un solo usuario, etc. Si no estamos familiarizados sobre este concepto

recomiendo la lectura del siguiente enlace:

http://www.linuxcentro.net/linux/staticpages/index.php?page=PermisosLinux.

En el contexto de las redes locales esto es de vital importancia para la integridad de la

red local ya que dar permisos inadecuados a usuarios de la red local puede poner en

peligro la seguridad de la red local.

5.2. Prerrequisitos

Instalación base Debian/Lenny.

5.3. Administrar cuentas

En un sistema operativo GNU/Linux existen dos tipos de usuario, por una parte el

usuario administrador o también llamado superusuario y por otra parte tenemos el

usuario normal. El primero es el que tiene un control sin límites sobre el sistema y el

segundo tiene un control limitado.

La creación de nuevos usuarios en un sistema GNU/Linux se realiza creando cuentas

nuevas. Esto se hace mediante adduser [nombre_usuario]. Al crear una nueva cuenta

tenemos diferentes opciones como asignar cual va ser el directorio home para ese

usuario, deshabilitar el usuario, etc. Hay que indicar que al crear una cuenta se genera

un grupo asociado a esa cuenta, habrá tantos grupos como cuentas habrá en el sistema.

Fig. 5.1. Ejemplo de uso del comando adduser

Al añadir el usuario nos pedirá la contraseña y podremos agregar el número de

teléfono, nombre, apellidos, domicilio, etc.

debian:/home/ekaitz# adduser cuenta2 Adding user `cuenta2' ... make: se ingresa al directorio `/var/yp' make[1]: se ingresa al directorio `/var/yp/lab.unavarra.es' … …

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec

Page 53: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

En el fichero /etc/default/useradd podremos configurar las opciones por defecto

establecidas para el comando useradd, podremos cambiar directorio por defecto, shell

predeterminada, tiempo máximo de validez de una password y muchas más opciones.

Para más información man 8 useradd.

Cuando instalemos Debian/Lenny obligatoriamente deberemos crear una cuenta de

administrador y una cuenta de usuario normal. A partir de aquí podremos crear tantos

usuarios normales como queramos, pero sólo habrá una cuenta de administrador.

Tendremos que tener mucho cuidado con el uso de la cuenta administrador ya que si no

se sabe lo que se esta haciendo podremos provocar errores fatales en el sistema

operativo. Normalmente habrá que loguearse como superusuario para hacer operaciones

importantes en el sistema; como cambiar configuraciones, instalar paquetes o actualizar

el sistema operativo. Para loguearse como superusuario deberemos usar el comando su.

Fig. 5.2. Ejemplo de uso del comando su

5.4. Cambiar una contraseña a una cuenta ya creada

Mediante el comando passwd se cambiara la contraseña de las cuentas, al ejecutar este

comando nos pedirá la contraseña antigua y luego nos pedirá la contraseña nueva.

Ejemplo de cambio de contraseña.

Fig. 5.3. Ejemplo de uso del comando passwd

5.5. Cambiar características de una cuenta

Para cambiar las características de una cuenta utilizaremos el comando usermod ó

editaremos directamente el fichero /etc/passwd.

Ejemplo de cambio de directorio de una cuenta.

Fig. 5.4. Ejemplo de uso del comando usermod

En el fichero /etc/passwd tenemos la información de cada cuenta, cada línea en este

fichero representa una cuenta en el sistema.

debian:/home/ekaitz# usermod -d / cuenta2

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec

ekaitz@debian:~$ passwd Cambiando la contraseña de ekaitz. (actual) contraseña de UNIX: Introduzca la nueva contraseña de UNIX: Vuelva a escribir la nueva contraseña de UNIX: passwd: contraseña actualizada correctamente

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

ekaitz@debian:~$ su Contraseña: debian:/home/ekaitz#

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

Page 54: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 5.5. Típica línea en el fichero de configuración /etc/passwd

La x simboliza que el password de la cuenta2 esta encriptado.

5.6. Eliminar cuentas

Tenemos dos opciones bloquearlas editando el fichero /etc/passwd y cambiando el

intérprete por ejemplo en cuenta2 /bin/bash por /bin/false o directamente eliminar las

cuentas, esto se consigue con el comando userdel.

Bloquear cuenta.

Fig. 5.6. Como bloquear cuenta mediante el fichero /etc/passwd

Borrar cuenta.

Fig. 5.7. Ejemplo de eliminación de cuenta mediante el comando deluser

5.7. Administrar grupos

Un fichero puede tener permisos de grupo, estos permisos pueden ser de escritura,

lectura y ejecución. Así pues asignar unos usuarios a un grupo servirá para que

determinados usuarios puedan acceder a unos ficheros y no a otros. Poner los permisos

a estos ficheros adecuadamente es de vital importancia para la seguridad y consistencia

del sistema.

El fichero /etc/passwd solo indica el identificador de un grupo a cada usuario, pero con

el fichero /etc/group podremos asignar más grupos a cada usuario.

El formato de cada línea en el fichero de /etc/group está estructurado así:

[nombre grupo]:[contraseña]:GID:[lista de usuarios]

nombre grupo: el nombre del grupo.

Contraseña: en la contraseña del grupo aparecerá una x, indica que esta encriptado en

el fichero /etc/shadow. Si aparece este campo vacio indica que no hay contraseña para el

grupo.

GID: numero del grupo.

Lista de usuarios: lista de los usuarios de todos los miembros del grupo separado por

comas.

Ejemplo de grupos en fichero /etc/group

debian:/etc# userdel cuenta2

Cambiar caracteristicas de una cuenta

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

cuenta2:x:1003:1006:,,,:/:/bin/false

Cambiar caracteristicas de una cuenta

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

cuenta2:x:1003:1006:,,,:/:/bin/bash

Cambiar caracteristicas de una cuenta

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

Page 55: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 5.8. Ejemplo de fichero de configuración de /etc/group

En la trasparencia anterior tenemos los tres grupos con su respectivo GID (Group

Identification); 1000 para “ekaitz”, 1001 para “ulaize” y 1002 para “electronica”. El

grupo ekaitz y ulaize son los grupos creados por defecto al crear el usuario “ekaitz” y el

usuario “ulaize”, aparte he creado el grupo “electrónica” mediante addgroup.

Si queremos que “ekaitz” cree un fichero y de permisos de lectura, escritura y ejecución

para el grupo y que el usuario “ulaize” tenga acceso a este fichero, tenemos que tener

a los usuarios “ekaitz” y “ulaize” en el mismo grupo. Para ello vamos agregar al usuario

“ekaitz” y al usuario “ulaize” al grupo de “electronica”.

Ejemplo de grupo común en /etc/group.

Fig. 5.9. Ejemplo de grupo común en /etc/group

ekaitz:x:1000 ulaize:x:1001 electronica:x:1002:ulaize,ekaitz

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

ekaitz:x:1000: ulaize:x:1001: electronica:x:1002:

DUMP: Volume 1 2767090 blocks (2702.24MB) DUMP: Volume 1 took 0:04:42 DUMP: Volume 1 transfer rate: 9812 kB/s DUMP: 2767090 blocks (2702.24MB) on 1 volume(s) DUMP: finished in 282 seconds, throughput 9812 kBytes/sec DUMP: Date of this level 0 dump: Wed Feb 4 12:09:10 2009 DUMP: Date this dump completed: Wed Feb 4 12:15:24 2009 DUMP: Average transfer rate: 9812 kB/s DUMP: DUMP IS DONE

Page 56: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

6. Herramientas para automatizar el proceso de administración de una red local

6.1. Introducción

Un administrador de una red local tiene que hacer muchos procesos, muchas veces para

ello el sistema operativo GNU/Linux provee de una serie de utilidades para hacer este

proceso más eficientemente y rápidamente. Con las aplicaciones que voy a explicar

podremos ejecutar comandos en múltiples hosts a la vez desde una maquina, también

podremos crear nuestros programas automáticos para no hacer tareas repetitivas por

parte del administrador, etc.

En este capítulo haremos una introducción a:

ClusterSSH: con esta aplicación podremos ejecutar comandos en múltiples

maquinas en paralelo en la red local.

Shell scripts: seremos capaces de crear ficheros llenos de comandos y luego

ejecutar estos comandos de una sola tirada.

AptonCD para crear nuestros propios repositorios.

Utilidades de reconocimiento y manipulación de cadenas de caracares como: tr,

grep, sed y AWK.

También explicaremos diferentes opciones de cómo apagar el sistema y arrancar

el sistema.

Aprenderemos como automatizar procesos periódicos.

Para realizar este capítulo me servido del libro Linux: administración del sistema y la

red de Alegria Loinaz, Iñaki y Cortiñas Rodrigez, Roberto y Ezeiza Ramos, Aitzol.

También lo he completado con recursos de internet, estas referencias están en la

bibliografía.

6.2. Prerrequisitos

Instalación base Debian/Lenny. También para comprender perfectamente los scripts se

necesitan conocimientos de shell script y más concretamente de programación BASH.

Recomendado conocer expresiones regulares, pero no imprescindible.

Page 57: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

6.3. Herramientas para la administración

6.3.1 Shell scripts

Un shell script es un fichero de texto donde indicamos una lista de comandos de Linux a

ejecutar. Después de esto ejecutaremos este fichero y se ejecutarán todos los comandos

que hemos descrito en el fichero de una sola tacada.

En este fichero podremos indicar cualquier comando que ponemos en la Shell, pero

tiene muchísima mas potencialidad; soporta los elementos típicos de cualquier lenguaje

de programación procedimental como construcciones condicionales, operadores

booleanos, construcciones case, bucles, funciones, redirecciones de entrada/salida,

lectura desde teclado, etc.

Para saber cómo usar bien esta potentísima herramienta recomiendo estos dos manuales

de la página http://tldp.org:

http://tldp.org/LDP/abs/abs-guide.pdf

http://tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf

Ahora vamos a ver una serie de ejemplos de Shell scripts:

Instalación de paquetes básicos para un host.

Fig. 6.1. Ejemplo de automatización de instalación mediante script para BASH

Ejecución del script

Fig. 6.2. Ejemplo de ejecución de un script para BASH

En la figura podemos ver tres apartados claramente diferenciados:

#!/bin/bash #Añadir repostiorios de la distrubicion stable debian/lenny al fichero #/etc/apt/sources.list y actualizar # >> las dos flechas indican que se añade la frase anterior al final del fichero echo deb http://ftp.debian.org/debian/ stable main >> /etc/apt/sources.list echo deb-src http://ftp.debian.org/debian/ stable main >> /etc/apt/sources.list sudo apt-get update #INSTALAR APLICACIONES #Instalar compilador (el parámetro -y indica que las preguntas de la instalación se asumirá

yes por defecto)

sudo apt-get install -y gcc #Instalación de word versión linux (openoffice) sudo apt-get install -y openoffice.org-writer #Instalación del editor de textos kate sudo apt-get install -y kate #Instaladción de aplicacion para copias de seguridad (dump) sudo apt-get install -y dump #Instalación del debugger ddd sudo apt-get install -y ddd

ekaitz@debian:/media/EKAITZ 4GB/upna 2008/pfc$ chmod 700 scriptAPT.sh ekaitz@debian:/media/EKAITZ 4GB/upna 2008/pfc$ ./scriptAPT.sh

Page 58: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

#!/bin/bash: indica al script que tipo de shell va interpretar el fichero en este caso

basado en BASH, es decir, la Shell es la terminal que interpreta los comandos en

cualquier sistema operativo y la shell de Linux se basa en BASH. Mas información en

http://es.wikipedia.org/wiki/Bash.

Añadir repositorio y actualizar: en este segundo apartado añadimos los enlaces donde

están todos los paquetes de la distribución Debian estable en el fichero

/etc/apt/sources.list y actualizamos mediante apt-get update para obtener la lista de

paquetes de los enlaces que hemos indicado en /etc/apt/sources.list.

Instalación de aplicaciones: aquí indicamos los paquetes a instalar mediante apt-get

install [aplicación]; comandos para instalar todos los paquetes que estemos interesados.

Con el carácter '#' indica el comienzo de un comentario y no será interpretado por

nuestro Shell a excepción de #!/bin/bash . En la figura 6.2 lo que hacemos es darle al

fichero permisos de ejecución.

Eliminar cuentas según criterios.

Fig. 6.3. Ejemplo de automatización de eliminación de cuentas mediante scripts para BASH

El script de la figura 6.3 saca por pantalla los usuarios conectados los lunes de marzo y

los jueves de cualquier momento y luego busca usuarios diferentes a Ekaitz que se

hayan conectado en el sistema en esas fechas, elimina también la información de los

reinicios y del sistema wtmp. Después de esto crea un fichero temporal donde

#!/bin/bash last > /tmp/last chmod 777 /tmp/last echo "----Comprobacion de usuarios conectados al sistema el los lunes de marzo y los jueves de cualaquier mes\n" less /tmp/last | egrep 'Mon Mar|Thu 2' #Usuarios conectados al sistema diferentes a ekaitz less /tmp/last | egrep 'Mon Mar|Thu' | tr -s ' ' ' ' | egrep -v 'ekaitz|^reboot|^samba|^wtmp' | cut -d' ' -f1 > /tmp/eliminar tam_fich=$(wc -l /tmp/eliminar | tr -d /tmp/eliminar) # tambien podria poner comillas invertidas ` ` echo hola cont=$tam_fich while [ 0 -ne $cont ] do aEliminar=`head -$cont /tmp/eliminar | tail -1` deluser $aEliminar cont=`expr $cont - 1` done

Page 59: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

guardamos los nombres de los usuarios a eliminar, mediante el bucle while vamos

recorriendo ese fichero y eliminando los usuarios. La explicación de wtmp viene

explicada en la sección 3.5.4.

Anteriormente hemos visto que podemos utilizar bucles en scripts para BASH, en el

siguiente ejemplo vamos a ver que se pueden pasar argumentos cuando ejecutamos el

comando.

Fig. 6.4. Ejemplo de conexión a multiples shell remotas mediante script para BASH

Este script ejecuta un comando en múltiples maquinas, las ips de las maquinas se pasan

como argumentos. En el siguiente cuadro vemos como se ejecuta el comando.

Fig. 6.5. Ejecución del script de conexiones a múltiples Shell remotas

6.3.2. Ejecución de comandos en múltiples maquinas mediante ClusterSSH

Para el script de la figura 6.4 tenemos una aplicación gráfica llamada clusterSSH que

nos facilitara bastante las cosas. ClusterSSH nos permite acceder gráficamente multiples

consolas y cada consola representa la conexión a un host en la red local, todo esto

concurrentemente. Esto es muy eficiente cuando queremos modificar algo en muchos

ordenadores desde un solo host.

Instalación y uso de clusterSSH

1. Primero instalamos con apt-get install la aplicación.

#!/bin/bash #Este script ejecuta un comando en multiples maquinas #Opciones globales TIMEOUT=10 ERRLOG=/tmp/remote-err-$$.log OUTLOG=/tmp/remote-out-$$.log # Extrae el comando MACHINES=$1;shift COMMAND=$1;shift for machine in $MACHINES do echo $machine >>$OUTLOG.$machine ssh -oConnectTimeout=$TIMEOUT $machine $COMMAND >>$OUTLOG.$machine 2>>$ERRLOG.$machine & done wait #Esperando a todos los hijos para acabar cat $OUTLOG.* cat $ERRLOG.* >&2 rm -f $OUTLOG.* $ERRLOG.*

debian:/media/LACIE/upna 2008/pfc/Administracion aula/automatizacion/scriptsAdmin#

./clusterSSH.bsh 172.18.69.250

Page 60: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 6.6. Instalación de clusterSSH

2. Ejecutaremos clusterSSH, para ello usaremos el comando cssh y como

argumentos pondremos todas las ips de los hosts que queremos conectarnos,

en nuestro caso tres equipos de la subred lab.unavarra.es.

Fig. 6.7. Ejecución de clusterSSH

Fig. 6.8. Ejemplo de clusterSSH

En la captura anterior se ven múltiples ventanas, cada una representa la maquina que

estamos conectados. Tecleando en la ventana CSSH [3] se ejecutaran los comandos en

todos los hosts a la vez, también tiene la opción que se ejecuten los comandos en solo

dos ventanas o en una sola. Para más información teclear man cssh en la terminal.

6.3.2. Utilidades de manipulación de flujo de datos.

debian:/home/ekaitz# cssh 172.18.69.247 172.18.69.248 172.18.69.249

debian:/home/ekaitz# apt-get install clusterssh

Page 61: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

6.3.2.1. Grep

Es una herramienta que aplica expresiones regulares a cadenas de caracteres y saca el

resultado por la salida estándar, las expresiones regulares también llamadas patrones

describen mediante un lenguaje sin ambigüedades características de un determinado

lenguaje. Por ejemplo las cadenas descritas por la expresión regular 'cas[aeiou]'

describen todas las palabras que empiezan por 'cas' y acaban por cualquier vocal. Esta

herramienta nos será muy útil para buscar determinadas cadenas en un fichero de texto

grande y combinadas con otras herramientas nos dará una gran potencialidad para el

administrador.

Ejemplos de uso de grep:

Para mostrar todas las líneas que contienen la cadena “pass” en un fichero de texto.

grep pass

Para mostrar todas las líneas que contienen la cadena “pass” o la cadena “PASS” en

un fichero de texto.

grep pass|PASS

Para mostrar un fichero sin las lineas en blanco.

Grep -v '^[[:blank:]]*$'

Para mostrar las lineas que solo contienen digitos.

grep '^[[:digit:]]*$'

Todos estos comandos por si solos no tienen sentido y debemos decirle al ordenador

sobre qué cadena de caracteres queremos aplicar el patrón. Mediante una tubería con el

carácter “|” redireccionamos el contenido de un fichero al comando grep para que actué

sobre el flujo de caracteres que recibe.

less fichero.txt | grep ^([0][1-9]|[12][0-9]|3[01])(/|-)(0[1-9]|1[012])\2(\d{4})$

Mediante el opción -f de grep podemos pasar el fichero como un segundo argumento en

vez de por una tubería.

grep ^([0][1-9]|[12][0-9]|3[01])(/|-)(0[1-9]|1[012])\2(\d{4})$ fichero.txt

Para más información sobre expresiones regulares recomiendo el capítulo 17 de esta

guía http://tldp.org/LDP/abs/abs-guide.pdf.

6.3.2.2. sed y tr

Page 62: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Estas dos herramientas sirven para modificar ficheros según unos patrones; tr es

bastante sencilla y sed es estilo tr pero con muchísimas más opciones.

Ejemplo de tr.

Fig. 6.9. Ejemplo de uso del comando tr

El anterior ejemplo hace grupos de caracteres que no sean letras y los sustituye por un

carácter fin de línea.

Ejemplo de sed

Fig. 6.10. Ejemplo de uso del comando sed

Envía el contenido del fichero fichero.txt a la salida estándar, habiendo eliminado del

flujo de salida todas las líneas del mismo que comiencen con una cadena de al menos

cinco dígitos.

6.3.2.3. AWK

AWK es como sed pero a diferencia de sed es un lenguaje de programación, con lo que

todo conlleva mayor complejidad y mayor potencialidad. No vamos a explicar AWK

aquí, ya que una pequeña introducción a este lenguaje de programación daría para un

capitulo, únicamente indicaremos para que trabajos usarlo.

Recomiendo el uso de AWK para cualquier modificación compleja de ficheros de texto,

si la modificación es sencilla con un simple sed nos valdría, pero si la modificación

varía mucho según la parte de texto en que estemos o la modificación es muy compleja

recomiendo AWK. Para aumentar su poder podemos complementar AWK con el uso de

de Shell scripts es muy recomendable.

Si estamos interesados en aprender este potente lenguaje de programación recomiendo

el siguiente enlace que contiene una extensa guía sobre AWK

http://blyx.com/public/docs/programacion/Manual_Awk_castellano.pdf.

6.3.3. Apagado del sistema

El apagado del sistema (por ejemplo de un servidor en una red local) se puede dar para

realizar determinados trabajos de mantenimiento. Existen varias formas de realizar esta

acción, para ello existen el comando shutdown que explicamos a continuación.

Este comando acepta dos parámetros, el primero a qué hora se realizara el apagado del

sistema o reinicio según la opción, y el segundo el mensaje de advertencia antes de

realizar la acción, muy útil cuando un usuario esté conectado al sistema y realice las

acciones convenientes antes del reinicio.

debian:/home/ekaitz# less fichero.txt | tr -sc [:alpha:] '\n'

debian:/home/ekaitz# sed '^[[:digit:]]\{5,\}/d' fichero.txt

Page 63: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Como opciones más destacables tenemos:

-r, reinicia el sistema no lo apaga.

-h, apaga el sistema.

-k, para enviar un mensaje de advertencia, pero no apaga el sistema verdaderamente.

-F, forzar el fsck cuando se reinicie el sistema.

Ejempo de apagado en 8 minutos y aviso.

Fig. 6.11. Ejemplo de uso del comando shutdown (8 minutos y reinicio)

Ejemplo de apagado a las 02:00 y su correspondiente aviso.

Fig. 6.12. Ejemplo de uso del comando shutdown (a las 2:00 reinicio)

6.3.4. Arranque del sistema

El sistema operativo GNU/Linux organiza el arranque del sistema según unos niveles,

estos niveles están distribuidos en siete niveles del 0 al 6:

0: desconexión. Detención del sistema

1 o S: modo monousuario. Para actividades especiales como la reparación del sistema

de ficheros.

2: modo multiusuario, pero sin servicio de red NFS

3: modo multiusuario normal, incluyendo la red.

4: no se utiliza.

5: modo multiusuario normal, incluyendo la red, pero iniciando la interfaz gráficamente

6: reiniciar, manteniendo el nivel de ejecución.

El arranque de un sistema operativo GNU/Linux se basa en los siguientes cuatro pasos:

1) Se carga el kernel de linux, que suele estar en el directorio raíz, en el caso de

Debian/Lenny vmlinuz -> boot/vmlinuz-2.6.24-1-686 la flecha indica que en realidad el

fichero esta en /boot/vmlinuz-2.6.24-1-686 a esto se le denomina enlace simbólico.

2) Prueba y configuración del hardware y drivers.

3) Ejecución del proceso init sería una especie de gran script donde se arrancan todos

los procesos del sistema operativo, todo este proceso y sus correspondientes mensajes

se guardan en el fichero /var/log/messages.

4) Cambio a modo multiusuario superior al nivel cinco.

debian:/etc# shutdown -h 02:00 "Se reiniciara el sistema a las 2 de la mañana" Broadcast message from root@debian (pts/6) (Tue Mar 24 20:00:33 2009): Se reiniciara el sistema a las 2 de la mañana The system is going DOWN for system halt in 360 minutes!

debian:/etc# /sbin/shutdown -r 8 "El sistema se reiniciara en 8 minutos" Broadcast message from root@debian (pts/6) (Tue Mar 24 19:52:56 2009): El sistema se reiniciara en 8 minutos The system is going DOWN for reboot in 8 minutes!

Page 64: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

El fichero de configuración que controla este arranque es /etc/inittab contiene

información sobre los scripts que deben ser arrancados.

Fig. 6.13. Scripts que de arranque indicados en /etc/inttab

En la figura 6.13 podemos ver parte del fichero donde están indicados los scripts que

van arrancarse.

Cada una de las primeras siete líneas corresponde a los niveles de ejecución con el

correspondiente script a ejecutar /etc/init.d/rc y el correspondiente parámetro según el

nivel de ejecución a aplicar.

Si queremos hacer un inicio personalizado cuando el sistema arranque, deberemos crear

unos scripts, que deberán estar escritos en /etc/rc.d/rc.local. Este script se ejecuta

después de la ejecución de los scripts correspondientes a cada nivel de ejecución.

6.3.5. Procesos periódicos

Hemos explicado en la sección 6.3.1. Como realizar scripts para automatizar procesos.

En el trabajo diario de un administrador en una red local puede darse que estos scripts

deban ser ejecutados periódicamente. Por ejemplo realizar backups a final de mes,

informes de anomalías en el sistema al final de la semana etc. Para que un programa o

script deba ser ejecutado periódicamente se utiliza generalmente el comando crontab,

que viene con la instalación base del sistema Debian/Lenny.

Como crear un trabajo periódico:

Crontab usa un fichero único por cada usuario, para crear este fichero deberemos estar

logueados en un determinado usuario. Ejecutaremos crontab /etc/crontab y esto hará

que se cree una copia de este ultimo fichero en /var/spool/cron/crontabs con el nombre

del usuario donde estamos logueados. Por ejemplo si estuviéramos en el usuario ekaitz

se creara el fichero llamado /var/spool/cron/crontabs/ekaitz con el contenido de

/etc/crontab.

Este fichero lo podremos modificar a nuestro gusto añadiendo una línea por tarea como

podemos ver en la figura 6.14.

Fig. 6.14. Ejemplo de líneas de configuración

El formato de cada línea de este fichero es minuto hora día mes día_semana comando.

Minuto hora día mes día_semana son numéricos pero se pueden usar metacaracteres

como:

l0:0:wait:/etc/init.d/rc 0

l1:1:wait:/etc/init.d/rc 1

l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3

l4:4:wait:/etc/init.d/rc 4

l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6

30 8 * * 1-5 apt-get update 30 10 * * 1 who >> /home/quienEsta

Page 65: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

"*" Si se pone en día indica que se aplica a todos los días el comando.

"-" Para expresar un rango de valores, por ejemplo, si ponemos 8-10 solo se

aplica esta franja horaria.

"," Para poner listas si queremos que un comando se aplique los días 7,8,9.

"/" Procesos periódicos */5, si en el minuto aparece esto significa cada cinco

minutos ejecuta el comando.

La figura 6.14 indica que a las 8:30 todos los días laborables se actualizaran los

paquetes y la segunda línea dice que a las 10:30 todos los lunes se guardara en el fichero

/home/quienEsta los usuarios conectados al sistema.

Para listar los procesos periódicos programados tenemos el comando crontab –l.

Fig. 6.15. Salida del comando crontab -l

Si queremos programar directamente usaremos crontab –e, nos saldrá el editor de textos

“nano” con la lista crontab –l, ahí podremos editarlo.

6.3.6. Creación de repositorios personalizado mediante AptonCD

Cuando instalamos una aplicación mediante apt-get install se descargan los paquetes

desde internet y luego se instalan. Estos paquetes se guardan en el directorio

/var/cache/apt/archives.

Lo que hace este programa es ayudar a crear cds con los paquetes para que luego

podamos poder instalarlos sin ninguna conexión a internet, también es muy útil ya que

cuesta su tiempo instalar todos esos paquetes, pues volverlos a instalarlos en otro

ordenador es una ardua tarea, así se pueden crear repositorios personalizados según

nuestros intereses.

Proceso de instalación y uso de AptonCD

1. Instalamos la aplicación mediante el comando apt-get install aptoncd.

debian:/home/ekaitz# crontab -l # /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 # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Page 66: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 6.16. Instalación de AptonCD

2. Ejecutamos la aplicación tecleando aptoncd en la terminal.

Fig. 6.17. Ejecución de AptonCD

Se nos mostrara la siguiente pantalla con dos pestañas “Crear” y “Restaurar”.

3. Para empezar explicaremos la opción de crear, le damos click al botón “Crear

APTonCD”. Al darle al botón nos cargara todos los paquetes del sistema.

debian:/home/ekaitz# aptoncd

debian:/home/ekaitz# apt-get install aptoncd.

Page 67: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

4. Tendremos la opción de deshabilitar paquetes que no estemos interesados.

Después de esto le damos a “Crear” y nos crear un imagen “.iso” para después

guardarlo en un cd.

Page 68: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

La pestaña de restaurar nos ofrece 3 posibilidades:

Restaurar APTonCD: copia los paquetes de un CD/DVD a la cache apt para su

posterior instalación, es decir, los cargara al directorio antes descrito

/var/cache/apt/archives.

Restaurar imagen iso: lo mismo que la anterior opción pero desde una imagen .iso.

Agregar CD/DVD: agrega el CD a modo de repositorio a nuestro /etc/apt/sources.list.

Después de restaurar los paquetes podremos instalar los paquetes mediante apt-get

install.

Todo lo anterior lo podemos realizar nosotros manualmente, lo único que deberíamos

hacer es guardar todo los paquetes que están el directorio /var/cache/apt/archives en un

CD y para restáuralo copiar el contenido del CD en /var/cache/apt/archives.

Page 69: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

7. SAMBA

7.1. Introducción

SAMBA es un protocolo que sirve para compartir archivos, directorios e impresoras en

redes locales (LAN) , por lo tanto , a través de Samba , un sistema Gnu/Linux puede ser

configurado para ofrecer estos servicios a pc's corriendo sistemas Windows , Gnu/Linux

u otros sistemas operativos que soporten el protocolo de comunicación.

Este protocolo hará visible en la red local los directorios compartidos, en los cuales los

usuarios podrán fácilmente almacenar sus propios archivos e intercambiar documentos.

Además, las impresoras conectadas al servidor pueden ser publicadas en la red y todos

los pc's podrán hacer uso de las mismas con extrema facilidad.

Con SAMBA es también posible manejar la autenticación de usuarios dando un plus en

lo que se refiere a la seguridad y privacidad de los datos.

Una óptima solución para incrementar la productividad de una red local , sea esta una

red grande , mediana o pequeña como puede ser la de nuestras propias casas.

Existen alternativas para compartir archivos e impresoras para redes solamente

GNU/Linux como el protocolo NFS que hablo en el siguiente capitulo.

Para realizar este capítulo he usado estos tres enlaces de internet:

http://www.esdebian.org/wiki/introduccion-samba

http://es.tldp.org/Manuales-LuCAS/USANDO-SAMBA/usando-samba.pdf

http://dns.bdat.net/documentos/samba/smb.conf/

7.2. Prerrequisitos

Instalación base Debian/Lenny. Como SAMBA es un protocolo para poder compartir

ficheros Windows si queremos hacer las pruebas necesitaremos Windows XP que es

con la versión de Windows con la que hemos realizado las pruebas, aunque con otras

versiones de Windows también se puede, aunque la configuración diferirá algo.

7.3. Instalación del servidor y configuración del servidor

7.3.1. Instalar paquetes

Lo primero que haremos es instalar el paquete samba.

Fig. 7.1. Instalación de samba

debian:/home/ekaitz# apt-get install samba smbclient

Page 70: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Con samba y smbclient nos vale, ya que el propio apt-get samba smbclient instalara los

paquetes necesarios para que funcione el paquete samba.

7.3.2. Funcionamiento del fichero de configuración /etc/samba/smb.conf

Toda la configuración del servidor se basa en el fichero /etc/samba/smb.conf en esta

sección explicaré las cosas principales de este fichero, pero para una explicación

completa tenéis man 5 smb.conf y si deseáis un manual de este fichero de configuración

en español recomiendo esta página http://dns.bdat.net/documentos/samba/smb.conf/.

Este fichero consta de secciones y dentro de éstas parámetros. Cada sección está entre

corchetes. Hay que tener en cuenta que mayúsculas y minúsculas son indistintas lo

contrario que suele suceder en un sistema GNU/Linux que diferencia entre mayúsculas

y minúsculas. Los caracteres “;” y “#” son considerados el comienzo de un comentario.

Por convenio “;” para deshabilitar parámetros y “#” para comentarios, aunque se pueden

usar indistintamente.

Cada sección describe un recurso compartido o un servicio. Hay tres secciones

especiales [global] en esta sección se indican los parámetros globales de la

configuración del servidor SAMBA. En la sección [homes] se indicaran los clientes que

se pueden conectarse al directorio home del servidor. La sección [printers] sirve para

compartir impresoras por samba.

También podemos editar nuestras propias secciones por si estamos interesados en

compartir más recursos. Luego veremos cómo añadir estas secciones propias para

compartir el recurso que queramos.

7.3.3. Configurar sección global

Esta sección configura los valores generales del servidor, en una sección podemos poner

múltiples parámetros. El siguiente cuadro he puesto siete parámetros de configuración,

pero es posible poner multitud de parámetros diferentes.

Fig. 7.2. Configuración de sección global

workgroup: este parámetro es el que indica el nombre del grupo de trabajo,

server string: es el nombre del servidor que aparecerá en el cliente, %h representa el

hostname.

syslog: este parámetro indica como Samba registra los mensajes de depuración en los

niveles de registro de syslog. El nivel de depuración cero envía a syslog LOG_ERR, el

workgroup = proyectoSamba server string = %h server log file = /var/log/samba/log.%m syslog = 0 panic action = /usr/share/samba/panic-action %d guest ok= yes

Page 71: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

nivel uno LOG_WARNING, el dos LOG_NOTICE, el nivel de depuración tres

LOG_INFO. Para más información sobre monitorización del sistema ver capitulo 3.

panic action: si hay un suceso anómalo en el proceso del servidor %d indica el número

del proceso que ha producido esa situación.

guest ok: indica que en todas las secciones se podrá acceder como invitado si no se

indica nada en las demás secciones.

7.3.4. Configurar sección homes

Esta sección sirve para que los usuarios puedan conectarse a un directorio home en el

servidor remoto. Cuando nos conectamos al recurso compartido homes mediante un

“nombre_de_usuario” nos conectaremos al directorio /home/nombre_de_usuario del

servidor, como explicaremos más tarde tendremos que tener creado un usuario en el

servidor.

Fig. 7.3. Configuración de sección homes

7.3.5. Creación de secciones propias

Fig. 7.4. Configuración de secciones propias

Aparte de las secciones predeterminadas podremos poner secciones que indicaran

ficheros que queramos compartir: Mediante path indicamos la ruta, browseable para

indicarle que podemos navegar por el directorio, guest ok significa que los clientes

pueden entrar como invitado, y el parámetro writeable significa que los clientes tendrán

derechos de escritura. Con valid users indicamos lo únicos usuarios permitidos y

mediante invalid users indicamos al contrario, los únicos usuarios que no son

permitidos para este recurso compartido. Hay que tener cuidado si un parámetro

contradice el de la sección [globals] ya que no tiene preferencia el de la sección

[globals].

7.3.6. Reinicio del demonio samba

[etc] comment= configuracion del servidor path=/etc browseable=yes guest ok=yes writeable=yes valid users = samba,usuario3

[homes] comment= directorios Homes de servidorAcer browseable=yes writeable=yes guest ok=no create mask=0777 create mode=0777 invalid users =hola3

Page 72: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 7.5. Configuración de secciones propia

7.3.7. Comprobando sintaxis del fichero /etc/smb.conf

Una vez configurado el servidor tenemos una utilidad para ver si tenemos errores de

sintaxis en el fichero y como ha quedado configurado.

Fig. 7.6 Uso del comando testparm

7.3.8. Listar servicios

Ahora ya estamos preparados para ver si se comparten los recursos, para eso tenemos un

comando para listar todos los recursos del servidor. La contraseña de root no es

ninguna.

Fig. 7.7 Comprobación de los servicios samba mediante el comando smbclient

debian:/home/ekaitz# /etc/init.d/samba restart Stopping Samba daemons: nmbd smbd. Starting Samba daemons: nmbd smbd.

debian:/home/ekaitz# testparm Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[desktop]" Processing section "[printers]" Processing section "[print$]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions … ...

debian:/etc/samba# smbclient -L localhost Enter root's password: Anonymous login successful Domain=[PROYECTOSAMBA] OS=[Unix] Server=[Samba 3.2.5] Sharename Type Comment --------- ---- ------- homes Disk directorio Home de Ekaitz en el Servidor Samba desktop Disk desktop del servidor print$ Disk Printer Drivers IPC$ IPC IPC Service (debian servidor de ekaitz samba en servidorAcer (172.18.69.247)) Gutenberg Printer HP 2300n Anonymous login successful Domain=[PROYECTOSAMBA] OS=[Unix] Server=[Samba 3.2.5] Server Comment --------- ------- DEBIAN debian servidor de ekaitz samba en servidorAcer Workgroup Master --------- ------- ACUSTICA FIS060110 AVANZADA IEE0202SV CIDEC CIDEC-DIRECCION COMOPT IEE0203SR ELECBAS IEE0204SV ELECIND BLASHCKE GRUPO_TRABAJO LABO29163 IEE PROYECPRINTER INGMATE MAT140121 INICIOMS DIANALDAMA MDKGROUP LPMILINUX01 PROYECTOSAMBA DEBIAN QUIMICA ARZAMENDIDELL SALA_IRURAL 001C254DBA3D SEGURA FERRIGATO SEYSIS IEE0201SV WORKGROUP LABO29184

Page 73: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Para acceder a Samba crearemos un usuario específico samba en el servidor (también

podemos crear tantos usuarios como usuarios estén en la red para acceder a los servicios

ofrecidos por SAMBA), este usuario hipotético samba será el único que tendrá acceso a

los recursos compartidos, los usuarios deberán loguearse mediante el usuario samba y

su respectiva contraseña (si esta configurado smb.conf como guest también podremos

loguearnos como usuario guest (invitado)).

Como no queremos que el usuario samba pueda acceder a otros servicios del sistema le

impediremos hacer login, bloqueando la Shell visto en el capitulo administración de

cuentas y grupos.

Fig. 7.8. Añadiendo usuario samba mediante adduser

Luego hay que dar de alta al usuario en samba.

Fig. 7.9. Creando password en samba

7.4. Conexiones del cliente al servidor samba

7.4.1. Paquetes necesarios en el cliente en Linux

Sólo hay que comprobar que el servidor puede acceder a los recursos, antes hay que

instalar en el cliente el paquete smbfs, smbclient.

Fig. 7.10 Instalando smbfs

7.4.2. Conectarse desde Linux (cliente) a un servidor samba en Linux (servidor)

Fig. 7.11. Conectándose desde Linux a un servidor samba mediante smbclient

Si tenemos habilitado guest ok= yes podemos poner -U guest y contraseña ninguna.

Otra opción es montarlo en el sistema directamente, para ello creamos el directorio

donde montaremos el fichero y luego lo montaremos

useradd -s /bin/false samba

smbpasswd -a samba

apt-get install smbfs smbclient

ekaitz@debian:~$ smbclient //172,18,69,247/etc -U samba Enter samba's password: Domain=[DEBIAN] OS=[Unix] Server=[Samba 3.2.5] smb: \>

Page 74: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 7.12. Creando directorio donde se montara fichero compartido

Fig. 7.13. Montando fichero mediante mount

Si tenemos habilitado guest ok= yes podemos poner -o username=guest y ninguna

contraseña.

7.4.3. Conectarse desde Windows XP (cliente) a un fichero compartido mediante samba en Linux (servidor)

Aquí el cliente será un Windows XP y el servidor será Linux, para facilitar la

instalación en Windows he puesto capturas de pantalla, si no tenemos Windows XP y si

Vista, el proceso es igual, solo que “Conectar a unidad de red” está en “Centro de redes

y recursos compartidos” y “Mis sitios de red” esta en inicio/red.

Para empezar vamos ir a MiPc botón derecho y conectar a unidad de red.

Rellenamos los dos campos que nos solicitan

Unidad: indistinto

Carpeta:\\172.18.69.247\etc

mkdir /mnt/samba

mount //172.18.69.247/desktop /mnt/samba -o username=samba password:

Page 75: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Ahora nos pedirá el usuario y contraseña, nos conectaremos en nuestro caso a la

maquina 172.18.69.247 con nombre de usuario samba y contraseña samba, que es el

usuario que habíamos creado en el servidor Linux

Si queremos permanentemente que este el fichero Linux en el sistema Windows

deberemos ir a Mis sitios de red, agregar un sitio de red y ahí nos pedirá la ruta que

pusimos anteriormente.

Page 76: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Nos pedirá la ruta, hacemos doble click en Elija otra ubicación de red.

Indicamos la ruta como habíamos hecho en el apartado anterior.

Page 77: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

7.4.4. Conectarse desde Linux (cliente) a fichero compartido por Windows XP (servidor)

Aquí Linux será el cliente y Windows XP el servidor.

Comencemos pulsando el botón derecho del ratón en la carpeta que queremos

compartir y click con el boton izquierdo a Compartir y seguridad.

Page 78: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

En la sección Uso compartido y seguridad de red habilitamos la opción Compartir esta

carpeta en la red mediante el check-box.

7.4.5. Conectarse desde Windows (cliente) a impresora en Linux (servidor)

Lo único que hay que tener habilitado es la sección printers que está por defecto e

instalar el driver apropiado para la impresora. Luego en Windows iremos a agregar

impresora e introduciremos \\servidor\nombre_de_la_impresora.

7.4.6. Conectarse desde Linux (cliente) a impresora en Windows Vista (servidor)

Antes de todo iremos a Panel de control/Hardware y sonido/Impresoras ahi

buscaremos la impresora de Windows y le damos con el botón derecho del raton y le

damos a Compartir…

Page 79: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Después nos aparecerá un panel y le damos al botón Cambiar opciones de uso

compartido

y luego tildamos el checkbox Compartir impresora

Page 80: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Luego tendremos que poner el nombre de la impresora que será con el nombre que nos

tendremos que conectar en Recurso compartido.

Abra que crear un usuario con contraseña para que el cliente en Linux tenga que

identificarse al conectarse a la impresora de Windows.

Parte cliente (Linux)

Para facilitar la impresión usaremos el sistema de impresión común de Unix (Common

Unix Printing Systen en ingles, abreviado CUPS) es un sistema de impresión que actua

como un servidor acepta tareas de impresión y los envía al servidor de impresíon

apropiado.

1. Primero instalamos el paquete cups

Fig. 7.14. Instalando cups

2. Nos conectamos al navegador web y pondremos la dirección http://localhost:631

el servicio CUPS funciona mediante el navegador. Le damos a Administration y

luego add new Printer. Deberemos indicar Nombre de la impresora, donde está

debian:/home/ekaitz# apt-get install cups

Page 81: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

situada y descripción.

3. Despues de esto buscamos la impresora a la cual se va conectar el sistema

Linux, en nuestro caso es una HP LaserJet 1022.

4. Después de elegir el driver de la impresora, deberemos elegir el tipo de conexión

a la impresora normalmente, como estamos trabajando sobre samba elegiremos

via samba.

5. Ahora deberemos poner la dirección URI (un sistema de identificación de

recursos en internet), cuando la conexión es via samba se pone

smb://[servidor]/[nombre_de_recurso] aunque puede podemos poner de varias

formas como veremos luego. En nuestro caso la dirección URI es

Page 82: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

smb://192.168.2.105/HPLaserJ la dirección es privada ya que he realizado la

conexión en una red domestica.

También podríamos poner directamente la autenticación en la URI en este caso

sería smb://ekaitz:password@workgroup/192.168.2.105/HPLaserJ si no

ponemos la autentificación el sistema Linux nos debería pedírnosla.

7.4.7. Montar automáticamente en Linux un fichero mediante /etc/fstab

Ahora vamos hacer que un fichero se monte automáticamente mediante el fichero

/etc/fstab ya que si lo montamos mediante smbmount al reiniciar el ordenador se

desmontara.

Primero editamos el fichero /etc/fstab y añadimos una línea que indicara que fichero

queremos montar y donde se va montar al arranque. En la línea pondremos con qué

usuario y contraseña nos loguearemos al fichero compartido, también indicaremos el

username (nombre de usuario) y password.

Fig. 7.15. Montando directorio mediante cups

Actualizamos /etc/fstab mediante mount -a

Fig. 7.16. Actualizando cups mediante mount -a

El método anterior es muy útil ya que va ser totalmente trasparente al usuario sin

necesidad de saber qué contraseñas se necesitan, ni estar cada vez que uno se conecta al

sistema montando el fichero. Pero este método entraña un problema, el usuario tiene

acceso al fichero /etc/fstab lo que conlleva que cualquier usuario de la maquina sepa las

contraseña y usuario de la maquina a conectarse, para ello hay que crear un fichero de

# /etc/fstab: static file system information # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 //172.18.69.247/etc /mnt/samba smbfs username=samba,password=samba 0 0 # /dev/sda5 UUID=09d71e7b-e24a-4448-9488-858acee874b2 / ext3 relatime,errors=remount-ro 0 1

root@s101-portatil:/home/ekaitz# mount -a

Page 83: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

texto con credenciales (password y contraseña) y con permisos adecuados

controlaremos que el usuario no pueda acceder a este.

Creación de credenciales

1. Creamos fichero vi .credenciales, el punto inicial es para que el fichero este

culto en el directorio.

Fig. 7.17. Creando fichero de credenciales

2. Creando permisos a .credenciales para que usuarios no permitidos no puedan

acceder.

Fig. 7.18. Dando permisos a .credenciales

3. Editando /etc/fstab.

Fig. 7.19. Editando /etc/fstab para insertar credenciales mediante /etc/samba/.credenciales

4. Si el fichero no se monta automáticamente, editamos el fichero rc.local

(explicado en la sección 6.3.4) y añadimos mount -a.

# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 //172.18.69.247/etc /mnt/samba smbfs credentials=/etc/samba/.credenciales 0 0 # /dev/sda5 UUID=09d71e7b-e24a-4448-9488-858acee874b2 / ext3 relatime,errors=remount-ro 0

root@s101-portatil:/etc/samba# chmod 000 .credenciales

password=samba username=samba

Page 84: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

8. NFS

8.1. Introducción

NFS de las siglas Network File System es un protocolo que permite que ficheros en un

ordenador servidor sean accedidos por un cliente como si fueran locales. El cliente

usara el fichero del servidor como si fuera local no existe ninguna diferencia al usar el

usuario cliente el fichero.

Un uso muy útil de lo explicado anteriormente es que podemos mantener un servidor

con los ficheros de configuración centralizados en este. Así el mantenimiento es más

fácil modificando una sola vez el fichero de configuración del servidor y este será el

fichero de configuración de todos los clientes. Solo existe una copia del fichero de

configuración.

La máxima expresión del uso del protocolo NFS es centralizar los ficheros de un

usuario en un servidor hasta el extremo que se puede llegar a tener clientes sin disco

duro a esto es llamado thin-client o cliente liviano.

En este capítulo nos toca explicar cómo configurar un servidor NFS y como configurar

el cliente para que pueda acceder al servidor NFS.

8.2. Prerrequisitos

Todos los hosts de nuestra red deben funcionar mediante GNU/Linux. NFS

funciona con Windows pero el problema es que NFS se diseñó orientado a GNU/Linux,

siendo muchísimo más rápido y menos complejo de configurar.

Si nuestro propósito es usar ambos sistemas operativos recomiendo la lectura del

siguiente capítulo anterior SAMBA. También deberemos tener instalado Debian/Lenny.

Para comprender el capitulo deberemos tener conocimientos básicos sobre redes de

computadores y el sistema GNU/Linux.

8.3. Ficheros básicos a tener en cuenta para la configuración

/etc/exports

Fichero para exportar los ficheros ó directorios montables por el cliente

/etc/init.d/nfs-kernel-server

servicio para arrancar nfs

Page 85: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

8.4. Pasos para instalar NFS

8.4.1. Instalación de paquetes

Primero deberemos instalar los paquetes de NFS del servidor (nfs-kernel-server) y el

paquete nfs-common.

Fig. 8.1. Instalación del servidor NFS

Si nos da errores no nos preocupemos ya que aun no hemos configurado el servidor

correctamente y se pondrá a buscar clientes.

8.4.2. Exportando ficheros

Los ficheros que exportará el servidor se deberá indicar en /etc/exports, estos ficheros

son los ficheros que el cliente puede tener acceso. Aparte de los ficheros a exportar se

podrá indicar permisos y más características. Esté atento a los espacios en el archivo. Si

no existen espacios entre el nombre del host y las opciones en paréntesis, las opciones

se aplican sólo al nombre del host. Si existe un espacio entre el nombre del host y las

opciones, las opciones se aplican al resto del mundo. Examine por ejemplo las líneas

siguientes:

Fig. 8.2. Exportando los ficheros

En la figura 8.2 la primera línea otorga acceso de lectura/escritura a los usuarios desde

lab.unavarra.es y niega acceso a todos los otros usuarios. La segunda línea otorga

acceso de sólo lectura a los usuarios desde lab.unavarra.es (predeterminado) y permite

al resto del mundo acceso de lectura/escritura.

8.4.3. Reinicio del demonio

Iniciamos el demonio tecleando en la terminal “/etc/init.d/nfs-kernel-server”.

/misc/export *.lab.unavarra.es(rw,sync) /misc/export *.lab.unavarra.es (rw,sync)

debian:/# apt-get install nfs-kernel-server Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho

Page 86: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 8.3. Arrancando el demonio del servidor de NFS

Fig. 8.4. Error del demonio del servidor de NFS

Si este da error es que no están bien configurados las ips con sus alias en el fichero

/etc/hosts o que hemos puesto mal el alias en el fichero /etc/exports.

8.4.4. Comprobar servicios

Después del paso anterior habrá que comprobar que nuestro kernel ya puede soportar el

sistema de fichero nfs, para ello buscaremos la línea nfsd en el fichero /proc/filesystems.

Fig. 8.5. Sistemas de ficheros en /proc/filesystems

También tendremos comprobar que existe el servicio portmapper corriendo en el

servidor mediante rpcinfo –p.

debian:/# /etc/init.d/nfs-kernel-server debian:/etc/init.d# /etc/init.d/nfs-kernel-server restart Stopping NFS kernel daemon: mountd nfsd. Unexporting directories for NFS kernel daemon.... Exporting directories for NFS kernel daemon...exportfs: /etc/exports [3]: Neither 'subtree_check' or 'no_subtree_check' specified for export "clienteDell:/etc". Assuming default behaviour ('no_subtree_check'). NOTE: this default has changed since nfs-utils version 1.0.x exportfs: /etc/exports [4]: Neither 'subtree_check' or 'no_subtree_check' specified for export "clienteDell:/home". Assuming default behaviour ('no_subtree_check'). NOTE: this default has changed since nfs-utils version 1.0.x

. Starting NFS kernel daemon: nfsd mountd.

debian:/etc/init.d# cat /proc/filesystems

nodev sysfs

nodev rootfs

nodev bdev

nodev proc

nodev cgroup

nodev cpuset

nodev debugfs

nodev securityfs

nodev sockfs

nodev pipefs

nodev anon_inodefs

nodev futexfs

nodev tmpfs

nodev inotifyfs

nodev devpts

nodev ramfs

nodev hugetlbfs

nodev mqueue

nodev usbfs

ext3

udf

iso9660

vfat

nodev rpc_pipefs

nodev nfsd

exportfs: clienteDell has non-inet addr exportfs: clienteDell has non-inet add

Page 87: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 8.6. Buscando servicio portmapper mediante rpcinfo

8.5.5. Montar fichero en el cliente

Deberemos instalar el paquete nfs-common también en el cliente.

Como en el servidor miraremos si esta nfsd en /proc/filesystems, después de esto

montamos el directorio del servidor en el cliente.

Fig. 8.7. Montando fichero en el cliente mediante mount

-t nfs: sistema de ficheros que va soportar.

servidorAcer:/home/linux1: servidorAcer indica la máquina servidor, también

podríamos poner la ip del servidor. Después de los dos puntos indicamos el directorio

del servidor que vamos a montar.

/home/linux1: directorio que montaremos en el cliente, no tiene por que ser el mismo

nombre que en el del servidor.

Para desmontar simplemente tecleamos en la terminal umount /mnt/ficheroADesmontar.

Para montar permanentemente deberemos ir a /etc/fstab y allí indicaremos el fichero a

montar.

Fig. 8.8. Configurando /etc/fstab

Opciones en el fichero /etc/fstab:

debian:/home/ekaitz# rpcinfo -p programa vers proto puerto 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 56178 status 100024 1 tcp 42857 status 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100021 1 udp 42642 nlockmgr 100021 3 udp 42642 nlockmgr 100021 4 udp 42642 nlockmgr 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100021 1 tcp 40519 nlockmgr 100021 3 tcp 40519 nlockmgr 100021 4 tcp 40519 nlockmgr 100005 1 udp 58533 mountd 100005 1 tcp 53234 mountd 100005 2 udp 58533 mountd 100005 2 tcp 53234 mountd 100005 3 udp 58533 mountd 100005 3 tcp 53234 mountd

# device mountpoint fs-type options dump fsckorder ... servidorAcer.lab.unavarra.es:/home /mnt/samba nfs rw 0 0 ...

mount -t nfs sevidorAcer:/home/linux1 /home/linux1

Page 88: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Device: aquí indicamos el fichero a montar, igual que con el comando mount

pondremos la ip o nombre y después de los dos puntos el directorio a montar.

mountpoint: donde lo montaremos en el cliente.

fs-type: tipo de sistema de ficheros , en este caso nfs.

options: opciones de montaje.

dump: informa a dump si tiene que volcar el fichero.

fsckorder: informa a la aplicación de escaneo fsck si tiene que examinar ese fichero y

en qué orden. Si esta 0 debe escanearlo, el fichero raíz debe ser el 1.

Como en otros ficheros de configuración para más información sobre /etc/fstab teclear

en la terminal man 5 /etc/fstab.

Page 89: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

9. Utilización de NIS y como complementarlo con NFS

9.1. Introducción

NIS es un protocolo que permite centralizar la autentificación de usuarios. Un servidor

se encargara de aceptar los logueos de los usuarios, es decir, un usuario se pondrá en un

ordenador cliente se logueara y este ordenador enviara los datos a un ordenador servidor

para aceptar estos datos de logueo. Mediante este concepto más NFS podremos

autentificar usuarios y crear directorios /homes centralizados en el servidor permitiendo

que un usuario se logue en un ordenador cualquiera de la red local en cualquier

momento. Esto es de gran utilidad sobre todo en sitios que la gente no tiene asignado un

puesto en concreto, así se podrá que un usuario cada día se logue en cualquier

ordenador y acceder a sus datos propios que están en un servidor.

El único inconveniente de este protocolo es que falla en seguridad, habrá que tener bien

configurado algunos ficheros, pese a ello seguirá teniendo agujeros de seguridad, para

ello podemos usar NIS + Kerberos ó implementar OpenLDAP que ya tiene servicios de

autentificación segura. Si la red es pequeña no deberemos preocuparnos tanto de la

seguridad. Al final del capítulo explicaremos como complementar NIS con NFS.

9.2. Prerrequisitos

Haber instalado correctamente NFS y saber usarlo, conocimientos básicos sobre redes,

tener instalada la librería libc6 que viene por defecto en Debian/Lenny.

9.3. Ficheros básicos a tener en cuenta para la configuración

/etc/default/nis

Configuración de los demonios nis.

/etc/hosts.deny /etc/hosts.allow

Establece quien accede al servidor y que es lo que puede usar.

/etc/defaultdomainname

Para establecer el nombre del dominio NIS.

/etc/ypserv.securenets

Establece que clientes acceden el servidor NIS.

/var/yp/Makefile

Fichero que construye los mapas NIS.

/etc/passwd

Page 90: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fichero donde agregaremos los usuarios en el servidor.

/etc/shadow

Fichero oculto donde se guardan las contraseñas de los usuarios de /etc/passwd.

/etc/nsswitch.conf

Permite configurar en qué orden se accederá a los servicios.

9.4. Pasos para instalar NIS en la parte del servidor.

9.4.1. Instalar NIS y los paquetes necesarios

Para que funcione correctamente como en el caso de NFS tendremos que instalar los

paquetes necesarios para que funciones NIS.

Fig. 9.1. Instalando nis y portmap

9.4.2. Configurar accesos a los servicios

Para evitar que algún usuario mal intencionado esté haciendo un uso indebido (por

ejemplo del protocolo portmap deberemos editar los ficheros hosts.allow y hosts.deny.

El fichero hosts.allow es para indicar qué servicios pueden usar unos determinados

usuarios y hosts.deny es para lo contrario, para denegar el uso de estos servicios.

En hosts.deny no dejamos usar a nadie el servicio portmapper. Portmapper es un

servicio para que un ordenador pueda ejecutar programas remotos de otro ordenador.

Fig. 9.2. Configurando hosts.deny

En hosts.allow activaremos los hosts que queremos que se puedan usar el servicio

portmapper.

Fig. 9.3. Configurando hosts.allow

PORTMAPPER:lab.unavarra.es EXCEPT clienteDell.lab.unavarra.es

PORTMAPPER:ALL

debian:/#apt-get install nis debian:/#apt-get install portmap

Page 91: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Para más información sobre ambos ficheros man 5 hosts.allow o man 5 hosts.deny.

Nota: tendremos que ver que libc (libc es una libreria de programación “C”) tenemos,

ya que si no, no podemos usar el fichero /etc/shadow y dará problemas, con libc6 es

suficiente para poder usar /etc/passwd mediante /etc/shadow, es decir, mediante

encriptación.

Fig. 9.4. Comprobando si tenemos instalado libc6

En la figura 9.4 lo que hace el comando find –iname es buscar nombres de fichero con

la palabra libc6 para así comprobar que esta librería.

9.4.3. Establecer el nombre del dominio NIS

Primero hay que elegir el nombre del dominio NIS, describe el grupo de sistemas que

usaran NIS.

En nuestro caso hemos elegido lab.unavarra.es, que es el mismo que el de DNS, pero no

tiene porque ser el mismo.

Fig. 9.5. Estableciendo nombre de dominio NIS

Esto también se puede hacer configurando el fichero /etc/defaultdomain y poniendo en

nombre del servidor NIS.

9.4.4. Establecer ip del servidor en yp.conf

Configurar fichero yp.conf apuntando al ip del servidor.

Fig. 9.6. Estableciendo la ip del servidor en NIS

Si un host se conecta a un servidor distinto depende en que dominio esté, por ejemplo,

a un portátil deberemos añadir en yp.conf estas dos lineas.

Fig. 9.7. Estableciendo varios servidores en NIS

Depende en que red estemos con el portátil, se conectara a un servidor o a otro.

debian:/# find -iname "libc6" ./usr/share/lintian/overrides/libc6 ./usr/share/doc/libc6

domain [dominio_donde_estamos] server [donde_nos_conectamos] domain [dominio_donde_estamos] server [donde_nos_conectamos]

ypserver 172.18.69.247

debian:/# domainname lab.unavarra.es

Page 92: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

9.4.5. Establecer que host trabaja como servidor

Indicaremos si el host es cliente o servidor con el fichero /etc/default/nis.

Fig. 9.8. Estableciendo que el host trabaja como servidor

Si va ser un servidor ponemos el parámetro NISSERVER con el valor master y el

parámetro NISCLIENT con el valor false.

9.4.6. Establecer accesos a ypserv

Si queremos algo de seguridad en /etc/ypserv.securenets definimos los

clientes que van a usar el servicio, con su ip y máscara.

Fig. 9.9. Estableciendo que clientes usaran el servidor

9.4.7. Indicar a ypserv que trabajaremos con /etc/shadow

Para poder usar el fichero /etc/shadow debemos editar el fichero /var/yp/Makefile que es

el que se encarga transformar los ficheros ASCII en mapas NIS, ya que los mapas NIS

están codificados en el formato binario BDM. Hay que decirle que nuestro sistema va

usar el fichero /etc/shadow para las contraseñas.

Fig. 9.10. Indicando a NIS que se usara /etc/shadow

En el fichero /var/yp/Makefile encontraremos el parámetro MERGE_PASSWD y

deberemos ponerlo a true.

También en el fichero /var/yp/Makefile añadimos en el parámetro ALL la palabra

shadow para que también construya los mapas con shadow.

Fig. 9.11. Configurando parámetro ALL para usar /etc/shadow

# # /etc/defaults/nis Configuration settings for the NIS daemons. # # Are we a NIS server and if so what kind (values: false, slave, master)? NISSERVER=master # Are we a NIS client? NISCLIENT=false

ALL = passwd group hosts rpc services netid protocols netgrp shadow

# Should we merge the passwd file with the shadow file ? # MERGE_PASSWD=true|false MERGE_PASSWD=true

# Tendremos que poner ip y mascara 172.18.69.248 255.255.224.0

Page 93: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

9.4.8. Creación de mapas NIS

Ahora llega el paso de crear los mapas:

Fig. 9.12. Creación de los mapas NIS

9.4.9. Arrancar demonios

Arrancamos NIS que arrancara los demonios necesarios para el servidor portmap,

ypserv, ypbind, yppasswd, ypxfrd.

Fig. 9.13 Reiniciando demonio NIS

9.4.10. Comprobación correcto funcionamiento del servidor

Verificando ypserv funciona, mediante rpcinfo –u.

Fig. 9.14 Comprobando funcionamiento del servidor NIS

Conclusión:

debian:/etc/init.d# rpcinfo -u localhost ypserv el programa 100004 versión 1 está listo y a la espera el programa 100004 versión 2 está listo y a la espera

debian:/var/yp#/etc/init.d/nis restart

debian:/var/yp# /usr/lib/yp/ypinit -m At this point, we have to construct a list of the hosts which will run NIS servers. debian is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a <control D>. next host to add: debian next host to add: The current list of NIS servers looks like this: debian Is this correct? [y/n: y] y We need a few minutes to build the databases... Building /var/yp/lab.unavarra.es/ypservers... gethostbyname(): Success Running /var/yp/Makefile... make[1]: se ingresa al directorio `/var/yp/lab.unavarra.es' Updating passwd.byname... Updating passwd.byuid... Updating group.byname... Updating group.bygid... Updating hosts.byname... Updating hosts.byaddr... Updating rpc.byname... Updating rpc.bynumber... Updating services.byname... Updating services.byservicename... Updating netid.byname... Updating protocols.bynumber... Updating protocols.byname... Updating netgroup... Updating netgroup.byhost... Updating netgroup.byuser... Updating shadow.byname... Ignored -> merged with passwd make[1]: se sale del directorio `/var/yp/lab.unavarra.es' debian has been set up as a NIS master server. Now you can run ypinit -s debian on all slave server.

Page 94: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

NIS es algo inseguro ya que las contraseñas van de cliente a servidor sin encriptar y

podría un host mal intencionado hacerse pasar por un servidor, para ello deberemos

configurar concienzudamente /etc/ypserv.securenets, /etc/hosts.deny y /etc/hosts.allow.

9.5. Parte cliente

9.5.1 Instalar NIS y los paquetes necesarios

Instalamos el paquete nis.

Fig. 9.15 Instalación de NIS en el cliente

9.5.2. Configurar accesos a los servicios

Configuramos nsswitch.conf añadiendo las siguientes 4 líneas.

Fig. 9.16 Configurando nsswitch.conf

9.5.3. Establecer el nombre del dominio NIS

Editamos el fichero /etc/yp.conf como en la parte del servidor

Fig. 9.17. Estableciendo ip del servidor en /etc/yp.conf

En /etc/passwd añadiremos +:::::: en /etc/shadow +:::::::: y finalmente en /etc/group +:::

9.5.4. Arrancar NIS

Fig. 9.18. Reiniciando el demonio de NIS en el cliente

9.6. Complementar NIS con NFS

Como veíamos en el capítulo de NFS que enseñábamos a montar ficheros remotos como

si estuvieran locales. Ahora vamos a usar las características de NFS y NIS juntas. Lo

que hay que hacer para complementar NIS con NFS deberemos exportar la carpeta

/home/misUsuarios/. Después de esto se crearan usuarios con su directorio personal en

/home/misUsuarios/elUsuario así cuando se conecte un usuario tendrá acceso a esta

carpeta como si fuera local, pero en realidad no es así, con la ventaja de que el usuario

podrá conectarse en cualquier ordenador y tener todos sus ficheros personales

accesibles.

debian:/etc# /etc/init.d/nis restart

ypserv [ip_del_servidor]

passwd: compat group: compat shadow: compat netgroup: nis

debian:/etc# apt-get install nis

Page 95: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Al crear los usuarios pondremos el directorio home mediante adduser nombreUsuario –

home /home/misUsuarios/elUsuario

10. Como montar un servidor DHCP

10.1. Introducción

En este capítulo instalaremos y configuraremos un servidor DHCP (Dynamic Host

Configuration Protocol). DHCP es un protocolo para poder configurar una red local

automáticamente. Una vez instalado y configurado el servidor DHCP y el cliente

DHCP, el servidor será capaz de asignar toda la configuración necesaria para que los

hosts de la red puedan conectarse a internet, sin intervención manual del cliente. Esto es

muy útil ya que los clientes no necesitan configurar sus hosts y quita trabajo a los

administradores de la red local. Para el configurar un servidor DHCP he seguido este

manual http://manualesgratuitos.iespana.es/doc/dhcpd.pdf. Para los novatos que no

conocen bien como funciona DHCP recomiendo el siguiente enlace

http://www.estrellateyarde.es/discover/servidor-dhcp-en-linux.

10.2. Prerrequisitos

Instalación estándar Debian/Lenny y conocimientos mínimos sobre direccionamiento ip

y de redes locales.

10.3. Instalación de DHCP parte servidor

10.3.1. Instalación de los paquetes

Instalación del paquete.

Fig. 10.1. Instalando servicio dhcp

Antes de instalar nos advertirá que el servidor dhcp se comportará de modo no

autoritativo, es decir, que si un host está mal configurado no le asignara la ip correcta, si

fuera autoritativo el servidor tratara de reasignar los datos a los clientes mal

configurados.

10.2.2. Activar tarjeta red

Tendremos que decirle que tarjeta de red va utilizar el servidor DHCP, en nuestro caso

eth0, para ello deberemos editar el fichero /etc/dhcp3-server. En este fichero habrá una

línea que pone INTERFACES="" dentro de las dos dobles comillas ponemos interfaz de

la tarjeta de red que en nuestro caso es eth0.

debian:/home/ekaitz# apt-get install dhcp3-server

Page 96: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 10.2. Estableciendo interfaz mediante el fichero /etc/dhcp3-server

10.3.3. Editando fichero de configuración /etc/dhcp.conf

Ahora es el paso de configurar el servidor, es decir, los datos que va ofrecer el servidor;

desde la puerta de enlace de la red local, servidores DNS, dirección broadcast, mascara

de subred etc. Usaremos todos los datos necesarios para configurar una conexión a

internet explicados en el capitulo uno, pero esta vez el servidor DHCP se encargara de

realizar automáticamente a todos los hosts de de la red local.

Los datos de configuración que utilizado son los de la red local lab.navarra.es

(172.18.64.0).

Fig. 10.3. Configurando servidor DHCP mediante /etc/dhcp.conf

En la figura 10.3 viene explicado para que sirve cada línea.

10.3.4. Arrancando el servidor Ahora tenemos que reiniciar el servidor DHCP.

Fig. 10.4 Reinicio del servidor DHCP

Cuando arranque puede que haya errores, todos estos errores los detectara el sistema

de monitorización y quedaran registrados en el fichero /var/log/syslog.

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES="eth0"

#Servidores DNS que van a usar los clientes option domain-name-servers 172.18.64.1, 172.18.64.1; #Aquí indicamos el tiempo máximo de uso de las direcciones asignadas a los clientes en segundos. default-lease-time 600; max-lease-time 7200; #Ahora empezamos a configurar los datos generales de la subred subnet 172.18.64.0 netmask 255.255.224.0{

#aqui vamos a sinar una ip en concreto para una maquina host clienteDell{ hardware ethernet fixed-address 172.18.69.250; }

#Esta linea es para para indicar la puerta de enlace (gateway) option routers 172.18.64.254 #Y por ultimo indicamos el rango de direcciones usado por la subred range 172.18.69.1 172.18.69.254 }

debian:/home/ekaitz# /etc/init.d/dhcp3-server restart

Page 97: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

10.4. Instalación del cliente DHCP

10.4.1. Instalación del paquete

El paquete para que funcione el cliente DHCP es dhcp3-client. Éste viene ya instalado

en la instalación básica de Debian/Lenny sino habría que instalarlo igual que en la parte

del servidor apt-get install dhcp3-client.

10.4.2. Configuración del cliente DHCP

Simplemente habría que editar el fichero /etc/network/interfaces para decirle al host que

use el servicio DCHP y poner la siguiente línea.

Fig. 10.5. Reinicio del servidor DHCP

En el capitulo uno pusimos static en vez de dhcp ya que estábamos interesados en

que la asignación fuera estática en vez de dinámica.

Hay que saber que el cliente no necesita la dirección ip del servidor DHCP, ya que

el cliente enviara un broadcast buscando el servidor DHCP, el mismo servidor DHCP

contestara cuando reciba alguna petición y le dirá que configuración tiene que asignarse.

iface eth0 inet dhcp

Page 98: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

11. Capitulo introductorio

Esta sección es una introducción para saber cómo montar una red local físicamente.

Para llegar a esto antes explicaré conceptos de redes de computadores y lo dispositivos

que intervienen en una red local. Va dirigida a gente que tiene muy poca idea de

conceptos de cómo funciona una red local y como se construye físicamente. También

puede servir como guía de referencia para repasar conceptos teóricos ya olvidados.

11.1. Internet

Internet es un conjunto nodos interconectados; ya sean ordenadores, móviles y muchos

posibles dispositivos. Estos nodos para identificarlos unívocamente de los demás tienen

asignado un numero llamado dirección ip. Esta dirección ip se basa en numero de 32

bits, estos están divididos en 4 partes de 8 bits, cada parte tiene 256 combinaciones

posibles, éste tipo de numeración permite albergar 4294967296 dispositivos. Esta

numeración se queda corta, más tarde veremos una solución que se ha hecho para

solucionar momentáneamente este problema.

11.2. Pila OSI (Open Systems Interconnection)

Antes de explicar cosas más específicas y poder entenderlas vamos explicar cómo se

estructura internet. Internet utiliza el sistema OSI, también llamado pila OSI, este

sistema que es una seria de reglas para que múltiples redes sean compatibles provee de

servicios mediante capas. La pila OSI es un concepto abstracto, según como funcione

cada capa existen diferentes pilas. Por ejemplo la pila TCP/IP y la pila Apple-Talk se

estructura según el modelo OSI, es decir, TCP/IP y Apple-Talk son modelos practicos

del modelo abstracto que representa la pila OSI.

Capas del modelo OSI:

Capa física: se encarga de las conexiones físicas, es decir, es el encargado de

simplemente que los datos lleguen desde un dispositivo a otro. No provee ningún

servicio mas.

Capa de enlace de datos: provee de transmisión sin errores, transito fiable a través de

el enlace físico. Interactúa entre la capa física y de red, recibe peticiones de la capa de

red y las lleva a cabo mediante el nivel físico.

Capa de red: provee del servicio para que los datos lleguen de una red a otra, esta tarea

la hacen los routers.

Capa de transporte: se encarga de preparar los datos para recibirlos el emisor o el

receptor final del mensaje, también controla el flujo de datos, es decir, controla que lo

datos se entreguen sin errores. Según que implementación tenga esta capa tendrá un

nivel de fiabilidad y los mensajes tendrán mas probabilidades de llegar al destinatario.

Ésta capa es la más abstracta de entender, explicándolo con una analogía humana sería

como la oficina de correos que hace de intermediario entre nosotros y el destinatario. La

Page 99: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

capa de red, enlace y datos sería toda la estructura de correos, la oficina sería la capa de

transporte que es una interfaz entre nosotros y la oficina destino. Crea un canal de

comunicación entre el remitente y el destinatario.

Capa de aplicación: Es el que se encarga de soportar las aplicaciones por internet,

HTTP, FTP, SSH, NFS, etc.

No todos los dispositivos de la red trabajan con todas las capas, por ejemplo en un host

el paquete cuando se envía pasaría por las seis capas, desde la más arriba hasta la física,

pero en un Switch simplemente pasaría por solo la capa de enlace de datos y la capa

física y un router trabajaría con tres, con la de datos, la física mas la de red.

Fig. 11.1. Funcionamiento a través de las capas de un paquete

En internet la implementación mas típica de la pila OSI es la pila TCP/IP.

11.3. Protocolo TCP/IP

11. 3.1 Pila TCP/IP

Es el protocolo más importante para la transmisión por internet, es un estándar de facto

sirve para redes grandes como pequeñas. Se basa en el sistema de pila OSI. Como

veremos las “capas” van añadiendo partes al paquete con más información proveyendo

servicios.

Fig. 11.2. Pila TCP/IP

Capa de transporte: TCP (Transport Control Protocol) es un protocolo orientado a

conexión, es decir, al establecer la conexión se hacen verificaciones de los datos, se

crean credenciales entre emisor y receptor. Esto da mucha fiabilidad, pero los paquetes

son más grandes, generando congestión.

Page 100: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Para entenderlo mejor se podría decir que se crea un canal de comunicación entre las

aplicaciones de dos hosts, abstrayéndose de cómo van los paquetes en la red. Cuando un

paquete llega al ordenador pasa a la capa de transporte, el ordenador sabe a qué

aplicación tiene que ir porque los paquetes tiene un numero de puerto que designa a que

aplicación va destinado ese paquete.

Cabecera IP …

Puerto origen Puerto destino

Numero de secuencia

Numero ACK

HL Nada Flags Ventana recepción

Opciones

Datos aplicación Fig. 11.3. Paquete TCP

Capa de red: IP (Internet Protocol) Este protocolo se encarga de que un paquete llegue

de una subred a otra. Para saber a dónde tiene que ir, se usan las direcciones IP y las

mascaras, el router mandará el paquete a la capa de enlace diciéndole a donde tiene que

enviarlo. Las tabla de rutas son “señales” para indicar donde tiene que ir un paquete

según su dirección IP y mascara. Estas tablas se encuentran en los router o hosts si estos

actuando como router teniendo más de una tarjeta de red.

V LC ToS Longitud

Id paquete F Offset

TTL Protocolo Checksum

Dirección IP origen

Dirección IP destino

Opciones

Datos (Aquí esta encapsulado la trama TCP)

Fig. 11.4. Paquete IP

Capa de enlace: Esta parte se encarga de enviar el paquete de un punto a otro dentro

de una subred. El protocolo que usa para poder enviarlo es ARP (Address Resolution

Protocol) para ello lo que hace es recibir un paquete del nivel de red que le dice a donde

lo tiene que enviar mediante la dirección ip, después de esto lo que hace es enviar un

paquete a todos los hosts (este proceso se le llama broadcast) de la red, diciendo que

quiere ir a la IP “a.b.c.d”, el host que tenga IP “a.b.c.d” contestara con su dirección

ARP “AA:BB:CC:DD:EE:FF” ( que es la dirección física que esta implementada a

nivel hardware, de 42 bits de capacidad). Cuando ya tenga la dirección MAC lo podrá

enviar.

Cuando la capa de enlace ya ha enviado el paquete a el destino el paquete subirá la capa

de red y la capa de red decidirá si subirlo a un nivel superior si es el host destino del

paquete o volver a reenviarlo según su tabla de rutas.

Preámbulo Origen Destino L LLC/SNAP Datos CRC Fig. 11.5 .Paquete Ethernet

Page 101: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

11. 3.2. Direccionamiento ip

Como habíamos explicado en el apartado Internet una dirección ip esta estructurada en

4 bloques de 8 bits cada uno, albergando 256 posibles combinaciones. Es decir podemos

albergar 256*256*256*256 direcciones.

Hay 3 clases de direcciones ip:

Clase A: su rango está comprendido entre 1.0.0.0 y 121.0.0.0 es decir soporta 16777214

direcciones ip.

Clase B su rango está comprendido entre 128.0.0.0 - 191.255.0.0 es decir soporta 65534

direcciones ip.

Clase C: su rango está comprendido entre 128.0.0.0 - 191.255.0.0 es decir soporta

65534 direcciones ip.

Estas clases las gestiona ICANN (Internet Corporation for Assigned Names and

Numbers) pero apartir de 1993 viendo la excasez de direcciones ip se implemento el

sistema CIDR (Class-less Interdomain Routing), este se adapta mas las necesidades de

cada empresa ya que con el anterior sistema podían quedar ips sobrantes, ya que podía

suceder que le asignáramos a una red local con poca necesidad de ips un rango muy

grande de direcciones ips, por ejemplo, la clase A.

Funcionamiento de CIDR y mascaras de red:

Asigna bloques de direcciones mediante una dirección ip y un mascara de bits

(a.b.c.d/bits). Los primeros cuatro números decimales se interpretan como una dirección

IP y el número tras la barra es la longitud del prefijo contando desde la izquierda,

representando el número de bits comunes a todas las direcciones incluidas en el bloque

CIDR. Este número también puede referirse como la dirección ip de la red o subred.

Ejemplos:

172.18.64.0/19 esta es la dirección de la red donde se harán las practicas de los

capítulos de la guía.

Direccion ip red:10101100. 00010010.01000000.00000000

Direccion mascara:11111111.11111111.11100000.00000000

Como podemos observar tenemos una máscara que delimita hasta donde llega nuestra

dirección ip de la red, ésto delimita el rango de direcciones que puede ser usado en esta

red. En este caso la mascara de red son 19 bits, luego como una ip tiene 32 bits tenemos

32 bits – 19 bits nos quedan 13 bits para el direccionamiento de la red, es decir, 213

direcciones ip.

Hay que tener una cosa en consideración siempre hay dos direcciones reservadas,

cuando están todos los bits 0 del sufijo (sufijo=32bits – bits de mascara), esta dirección

se reserva para la dirección ip de la red y cuando están todos los bits a 1 del sufijo, es la

Page 102: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

dirección broadcast que se utiliza para enviar información a todos los hosts de la red

(broadcast).

Dentro de esta red podremos crear nuevas subredes creando una nueva dirección subred

dentro del rango 172.188.64.0/19 por ejemplo:

Subred Becarios: 10101100.00010010.01010000.00000000, es decir, dirección ip de la

subred 172.18.80.0 con máscara de 20 bits. Direccion broadcast 172.18.95.255 que en

binario es 10101100.00010010.01011111.11111111

Subred Profesores: 10101100.00010010.01010000.00010000 es decir dirección ip de

la subred 172.18.64.16 con mascara de 28 bits. Podremos generar 16 direcciones ip. La

dirección broadcast seria 172.18.64.31 que en binario es

10101100.00010010.01010000.00011111.

Podremos generar tantas subredes de una red mientras no solapemos direcciones de una

subred con otra. Cada host de la subred habrá que configúralo con su dirección ip y

mascara de red que tiene. Una ventaja de esta nomenclatura y organización es que con

una ip y una mascara mediante un AND lógico obtenemos la red a la cual pertenece

una ip.

NAT

Este sistema es algo diferente, las ips de la red local son privadas, esto significa que

estás ips no son accesibles directamente desde el exterior , el router hace una conversión

de estas ips privadas por la ip asignada al router. Estas ips privadas trabajan en un rango

establecido por convenio de 192.168.0.0. a 192.168.255.255. Esto se realizo por la falta

de ips y el sistema se conoce por las iniciales NAT (Network Address Translation). Se

usa generalmente las redes de ámbito domestico.

11.4. Creación física de una red local sobre Ethernet

Vamos a explicar cómo se construye una red local desde la perspectiva de la tecnología

Ethernet. Se ha hecho esta elección porque es la tecnología más comúnmente utilizada

en redes locales, es un estándar de facto. Existen otras como TokenRing, pero están

desfasadas y el amplio uso de Ethernet las han relegado.

11.4.1 Elementos físicos de una red local sobre Ethernet

Dispositivos de conexión de segmentos en una red local Cuando decimos “los dispositivos de conexión de segmentos en una red local” nos

referimos a todos los dispositivos que conectan ordenadores entre sí, o que conectan

redes locales entre sí, formando una red local de mayores dimensiones.

Hub (concentrador): repite los datos enviados en cada uno de sus puertos, no discrimina

según a donde vaya el paquete. El problema es que satura la red porque envía la

información por todos sus puertos, produciendo colisiones, también es inseguro ya que

todos los ordenadores de la red ven la información a pesar de que los paquetes no vayan

Page 103: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

a su ordenador. Envía los mensajes a la velocidad del dispositivo más lento de nuestra

red. Las ventajas son que es barato por su sencillez y no necesita alimentación propia.

Trabaja sobre el nivel físico (1 OSI) y no tienen direcciones MAC.

Fig. 11.6. Foto hub

Switch (conmutador): se podría decir que un conmutador es un hub inteligente. Tiene la

capacidad de almacenar las direcciones MAC de los hosts conectados al conmutador,

esto arregla el inconviente de los hubs que envían por todos los puertos los datos. Aquí

el conmutador envía los datos a un puerto concreto.

Fig. 11.7. Foto switch

Gateway (pasarela): suele considerarse aquel dispositivo que hace de frontera entre

dos subredes, puede ser un router o un ordenador con dos tarjetas de red, una tarjeta de

red estaría en el lado de una red y la otra tarjeta daría a la otra red.

Router (encaminador o enrutador): se encarga de encaminar, es decir, de redirigir los

paquetes que recibe según la ip y mascara que tienen asignada. Une subredes. Para ello

tienen una tabla de rutas con tres campos dirección_red, mascara y siguiente salto. Estas

tablas las podemos configurar nosotros o existen protocolos como RIP (Routing

Information Protocol) que lo hacen automáticamente. En la parte final explico más

detenidamente las tablas de rutas.

Fig. 11.8. Foto router

Page 104: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Hosts Host: se suele referir una maquina conectada a una red local. Este host puede ser un

servidor, un dispositivo de almacenamiento, un fax, una impresora, etc. Se suelen

conectar a los hubs routers o switchs. Necesita que tenga una tarjeta Ethernet para que

se pueda conectar a la red local

Cableado Ethernet Los cables se encargan de transmitir la información de host a host según su tecnología

darán mayor fiabilidad, menor o mayor. Los siguientes tipos de cableado son los más

comunes en una red local Ethernet, hay algunos más, pero no los he puesto por su

escaso uso o que ya no se usan por ser muy antiguos como 10base5.

10Base-2: Llamado también Thinnet o Cheapernet (802.3a) El cable es un Coaxial fino

y flexible (negro), máxima distancia 185 metros entre repetidores (Hub, Switch…).

Numero máximo de conexiones en el dominio de colision 1024. Su topología es en bus.

El conector al host se llama BNC y tiene forma de T. Velocidad 10 Mbits/s

Fig. 11.9. Conector BNC

10Base-T: Estándar IEEE 802.3i, funciona para topologías en estrella elemento central

un Hub, Switch. Máxima distancia en un segmento 100m. Máxima distancia en el

mismo dominio de colisión 2500 metros, pero con el backbone coaxial. Número

máximo de conexiones en el dominio de colisión 1024.Velocidad 10 Mbits/s.

Normalmente el terminal finaliza en un conector llamado RJ-45. Existen dos

disposiciones del cable RJ45, cruzado y recto.

Estas son las combinaciones que debes usar con el cable cruzado los que no están en la

tabla son rectos (derechos).

pc-pc Cruzado

Router-router Cruzado

Router-pc Cruzado

switch-switch Cruzado

Hub-hub Cruzado Fig. 11.10. Conexiones rj45 entre dispositivos

Hoy en día es indistinto el cable que uses en la mayoría de dispositivos.

10Base-FL: Funciona mediante fibra óptica (Fiber Optic Link), el estándar es el IEEE

802.3j, no le afectan las ondas electromagnéticas capacidad, de una distancia de 2km.

Se podría utilizar para parte troncal (backbone) y el resto de la red con 10Base-T sería

suficiente.

Page 105: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

100Base-TX: Estándar IEEE803.3u, utiliza cables de par trenzado de categoría 5,

máxima distancia 100m con conector RJ-45. Muy parecido a 10BaseT pero funciona a

100 Mbits/s pero 10BaseT funciona a 10 bits/s. Tipología física en estrella.

100Base-FX: Fibra multimodo en full-duplex, permite unos 400 metros de distancia y

en half-duplex unos 2km y en monomodo 10km.

11.4.2 Topologías de una red local

Para el diseño de las redes locales se utilizan dos tipos de gráficos: los que describen la

topología física y lo que describen la topología lógica. La topología física describe el

cableado y como se interconexiónan estos cables entre ellos y la topología lógica

describe como los hosts emplean el medio, es decir, cómo se comportan los datos al ser

enviados por el medio de transmisión.

Tipos de topologías:

Bus: único canal de comunicaciones, la ruptura del cable hace que los hosts queden

incomunicados. Los extremos están conectados a una resistencia llamada terminador.

Fig. 11.11. Topología en bus

Estrella: los hosts están conectados a un punto central, es el mas utilizado en las redes

locales. El punto central seria el Switch, Hub o enrutador, que se encarga de reenviar los

paquetes. El problema es que el nodo central si se estropea cae toda la red.

Fig. 11.12. Topología en estrella

Estrella extendida: seria como tipologías estrella conectadas con conmutadores a las

demás tipologías estrella. Es la que se utiliza en la Universidad Pública de Navarra.

Page 106: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Fig. 11.13. Topología en estrella extendida

Anillo: este sistema seria como una carrera de relevos cada host reenvía su paquete si el

paquete no es para si mismo. Puede ser de un sentido o de doble sentido.

Fig. 11.14. Topología en anillo

Malla completa (full mesh): todos los nodos tienen conexión con todos los demás

directamente (punto a punto).

Fig. 11.15. Topología en malla completa

11.4.3. Restricciones de interconexión en una red local sobre Ethernet

En esta parte explicaré como se conectan los dispositivos de la red local entre sí. Que

restricciones hay, que se puede hacer y que no se puede hacer a nivel físico.

Page 107: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Uso de repetidores en la red local

Existen una serie de restricciones en el uso de repetidores (hubs) la conexión entre dos

redes no debe superar los 1000m. La conexión entre dos hubs mediante un cable debe

hacerse mediante uno cruzado, aunque hay hubs que tienen un puerto uplink que tiene

los pares como un pc y se puede usar un cable recto para conectar los dos hubs. Cuando

se conectan dos hubs se crea el mismo dominio de colisión, es decir, cuando un paquete

llegue al repetidor lo distribuye por todos los puertos.

En limitaciones del número de repetidores entre dos hosts se utiliza una regla de

memorización 5-4-3-2-1. Esta regla se refiere a: “En un camino entre dos hosts el

máximo son 5 segmentos en serie, con hasta 4 repetidores y no mas de 3 segmentos

compartidos, por ejemplo coaxial, habrá 2 enlaces dedicados y 1 solo dominio de

colisión.

Uso de puentes (conmutadores, switchs) en la red local

Trabajan a nivel de enlace, es decir, los puentes unirán elementos de la red a nivel de

enlace, así cada parte que conecta el conmutador tendrá un dominio de colisión. No

tiene límites de puentes entre dos hosts como ocurría con los repetidores.

11.5. Ejemplo de creación de una red local Ethernet

Después de la teoría introducida vamos a ver cómo montar una red local Ethernet y

configurarla. Esta configuración simplemente se basa en que cada host tenga

comunicación entre dentro de la red local y a Internet. Sobre esto se puede aplicar los

distintos capítulos de la guía para darle más servicios a la red local como ficheros

distribuidos mediante NFS, administración y centralización de usuarios con NIS,

direccionamiento dinámico mediante DHCP, etc.

11.5.1. Crear topología

Esta parte se basa en crear un diseño de la red, para ello tendremos que pensar en las

necesidades de nuestra red, cuantos hosts necesito, trafico que va soportar la red,

fiabilidad de la red, es decir, si queremos que soporte caídas de switchs, routers o hubs.

Para una pequeña introducción básica hemos ideado una red local pequeña, pero con la

mayoría de elementos físicos que pueden interactuar en una red y nos hemos decido por

una topología en estrella.

Page 108: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Internet

Host1 Host2Host3 Host4

Host5

Hub Switch

Router

Topología: en estrella extendida.

Dispositivos: 5 hosts,1 router, 1hub.

Cableado:10Base-T

Fig. 11.16. Topología de la red local

11.5.2. Asignar ips y mascaras

Como esta parte de la guía es de introducción a las redes locales he decidido que el

direccionamiento va ser el típico que hay en una red local domestica ADSL mediante

NAT.

Internet

Host1:192.168.1.2 Host2: 192.168.1.3

Host3: 192.168.1.130Host4:192.168.1.131

Host5:192.168.1.132

Hub Switch

IP if0(router):

192.168.1.129

Topología: en estrella extendida.

Dispositivos: 5 hosts,1 router, 1hub,

1 switch.

Cableado:10Base-T

Red: 192.168.1.0/24

IP if1(router):

192.168.1.1

Subred:192.168.1.128/25

Subred:192.168.1.0/25

Fig. 11.17. Topología de la red local con ips asignadas

Page 109: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

En la figura 11.16 anterior hemos decido que ips pondremos a cada ordenador pero esta

parte es simplemente un diseño en papel (diseño anterior a la implementación), en la

siguiente sección explicare los pasos para llevarlo a cabo realmente.

11.5.3. Configurar hosts y router

Una vez de haber decidido la topología y haber elegido que ips queremos asignar a los

hosts llevaremos a la práctica.

Para la configuración de los hosts tenemos dos opciones:

1. Crear dos servidores DHCP por cada subred (como explico en el capítulo 10) o

también podríamos crear un solo servidor DHCP con varias tarjetas de red y

cada tarjeta de red da a parar a una subred, existen más tipos de

implementaciones como DHCP relay. Lo normal es que haya un servidor por

subred. Después de elegir como montar los servidores DHCP deberemos

primero configurar los hosts o el host que va tener el servidor DHCP como

hemos visto en el capítulo 1 y después configurar el servicio DHCP. Luego

deberemos configurar el router (ver siguiente apartado).

2. Podemos configurar host a host como hemos visto en la capitulo 1, pero este

mecanismo puede ser muy tedioso si la red va ser de grandes dimensiones.

Configuración del router:

Para configurar el router hay que tener claro nuestras subredes, en nuestro caso tenemos

dos subredes más la salida a Internet, es decir, tendremos tres rutas. La configuración en

cada router difiere mucho así que sólo explicare el diseño lógico de las tablas de rutas.

Primera ruta: los paquetes que vayan con la dirección de red 192.168.1.0 y mascara de

25 bits (en notación ip 255.255.255.128) tendrán que ir a la interfaz if1. La dirección de

red la obtiene el router de un AND lógico entre la dirección ip destino del paquete y la

máscara que ponemos en el router en este caso.

Segunda ruta: los paquetes que vayan con la dirección de red 192.168.1.128 y mascara

de 25 bits tendrán que e ir a la interfaz if2.

Tercera ruta: esta ruta siempre tiene que estar, se llama la ruta por defecto, que es

cuando el paquete no encaja con ninguna de las rutas anteriores y será cuando el

paquete tiene que salir if3. Para indicar la ruta por defecto se indica en dirección de red

0.0.0.0. y en mascara toda completa 255.255.255.255.

Finalmente la tabla de rutas quedara así:

Dirección de red Mascara Salto

Ruta1 192.168.1.0 255.255.255.128 If1

Ruta2 192.168.1.128 255.255.255.128 If2

Ruta por defecto 0.0.0.0. 255.255.255.255 If3

Fig. 11.18. Tabla de rutas

Page 110: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Glosario

Backbone: cableado troncal en una red local, es decir, sería el cable que conecta las

subredes normalmente con un cable de alta velocidad como la fibra óptica.

Bash: es un shell de Linux es un acrónimo de bourne-again Shell.

Bit: es el digito en el sistema de numeración binario. Para más información sobre el

sistema de numeración binaria http://es.wikipedia.org/wiki/Sistema_de_numeración

Broadcast: trasmisión de un paquete que será recibido por todos los hosts de la subred.

Byte: Secuencia de 8 bits.

Cable coaxial: cable para transmitir señales eléctricas de alta frecuencia.

Cilindro: conjunto de varias pistas; son todas las circunferencias que están alineadas

verticalmente (una de cada cara).

Comando: orden o instrucción que el usuario manda a través de una Shell a un sistema

operativo.

Copia de seguridad (backup): proceso de duplicado de información de un dispositivo a

otro para su posterior reutilización por si el dispositivo origen fallara.

CPU: es el dispositivo del ordenador que se encarga de procesar las instrucciones y

hacer cálculos de los programas albergados en la computadora.

Debian/Lenny: es una distribución libre del sistema operativo GNU/Linux.

Demonio: es un proceso que se ejecuta en segundo plano y el usuario no los puede

controlar, se ejecutan permanentemente normalmente son servicios que provee el

sistema operativo. No se pueden matar.

DHCP Relay: método para poder acceder a servidores DHCP que estén fuera de la

subred de quien realiza la petición.

DHCP: protocolo que permite obtener parámetros de configuración automáticamente.

Direccionamiento dinamico: significa que la ip que tenemos asignada en un host no es

permante y varia con el tiempo.

Direccionamiento estatico: significa que la ip que tenemos asignada en un host será

permante a no ser que la cambiemos expresamente.

Directorio raíz: es el primer directorio en la jerarquía de un sistema operativo, esta

jeraquia se estructura en árbol. En Linux el directorio raíz se denota mediante el carácter

“/”.

Directorio: un directorio en un sistema operativo agrupo a un conjunto de fichero y

directorios.

Page 111: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Disco de cinta: discos de almacenamiento de gran capacidad pero de un lento acceso ya

que su velocidad es lenta y su acceso es de manera secuencial.

Distribución: es las variantes que se realizan del sistema operativo GNU/Linux. Las mas

famosas son Debian, Ubuntu, fedora, red hat, SuseLinux, Mandriva.

Dominio: es el nombre que designa a un subred en internet, ejemplo, lab.unavarra.es.

También puede ser la parte principal de la dirección de una página web, ejemplo

debían.org.

Ext3: versión tercera del sistema de ficheros usado por el sistema operativo

GNU/Linux.

Fibra Multimodo: Una fibra multimodo es aquella en la que los haces de luz pueden

circular por más de un modo o camino. Esto supone que no llegan todos a la vez. Una

fibra multimodo puede tener más de mil modos de propagación de luz. Las fibras

multimodo se usan comúnmente en aplicaciones de corta distancia, menores a 1 km; es

simple de diseñar y económico.

Fibra óptica: es un sistema de información que usa la luz.

Fichero: agrupación de información que se usa de forma unitaria.

Firewall (cortafuegos): es un elemento hardware o software para filtrar paquetes según

como sea el paquete.

FTP: protocolo para transferir fichero por internet.

Full-duplex: se refiere cuando se puede enviar la información por ambos sentidos en un

medio físico.

Gateway: es un dispositivo físico que hace de frontera entre dos subredes.

GNU/Linux: es la forma de designar al sistema operativo que usa el núcleo Linux y las

herramientas software GNU.

Half-duplex: sistema físico que solo soporta el envoi de información en un solo sentido.

Host: una máquina conectada a una red de ordenadores.

ICMP: es un sub protocolo de control y notificación de errores.

IDS: es un sistema diseñado para detector intrusos en nuestra red local. Detecta

comportamientos extraños en el tráfico.

Imagen iso: es un sistema para guardar en discos duros una copia de un cd exactamente,

y luego realizar el proceso inverso.

Interfaz: se refiere la parte física por donde se envía la información del host a la red.

Iptables: sistema de configuración de cortafuegos de GNU/Linux.

Page 112: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Kernel (nucleo): es la parte principal del sistema operativo, es el que provee al software

el acceso al hardware. Es el que hace de facilitador del acceso al hardware a través de

llamadas.

LAN (Local Area Network): interconexión de varios hosts para trasmitir información.

Su uso suele ser de una extensión de unos metros a un kilometro. A partir de estas

distancias se le suele llamar WAN (Wide Area Network).

Log: es un registro de eventos en un sistema operativo.

Loguearse: acceso a una cuenta mediante nombre de usuario de la cuenta y su

correspondiente contraseña.

Nombre canónico (CNAME): es el nombre registrado en la base de datos dns que se

refiere al verdadero nombre asociado a un alias este alias está asociado a una ip.

Particion: son las divisiones lógicas que se hacen en un disco duro.

Password: contraseña de acceso a un sistema.

Pista: es una circuferencia dentro de una cara de un disco duro, en una pista habrá

sectores de pista en estas habrá bloques y en estas ultimas bytes.

Portmappper: servicio de Linux que permite ejecuta código en una maquina remota

Proceso: programa en ejecución en el sistema.

Puerto: es un numero que viene en un paquete que indica a que protocolo o aplicación

está asociado ese paquete.

Repositorio: es un sitio centralizado donde se almacena datos e información.

RJ-45: La RJ-45 es una interfaz fisica comúnmente usada para conectar redes locales

(categorías 4, 5, 5e y 6).

Script para Bash Shell: Es un script que se a programado con los sintaxis adecuada para

que se puede ejectuar en un Bash Shell.

Script: conjunto de instrucciones para su ejecución almacenados en un fichero de texto.

Shell: es un intérprete de comandos.

Ssh: del acrónimo Secure Shell, protocolo para acceder a Shells en ordenadores remotos

de forma segura.

Swap: también llamada memoria de intercambio se crea para usarlo cuando la memoria

RAM esta llena.

Tarjeta de red: dispositivo físico para poder acceder a una red de ordenadores.

Tiempo de CPU: tiempo que gasta la CPU en ejectuar un proceso.

Page 113: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

BIBLIOGRAFIA

Generales:

SEGURIDAD EN UNIX Y REDES Versión 2.1 de Antonio Villalón Huerta

http://es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec.pdf

Guía de Administración de Redes Segunda Edición, de Olaf Kirch. Traducción de la

versión 2.0 del libro Linux Network Administration Guide.

http://es.tldp.org/Manuales-LuCAS/GARL2/garl-2.0.pdf

Capitulo 1:

Capítulo 9 y 6 de la Guía de Administración de Redes Segunda Edición, de Olaf

Kirch.

Manual sobre el comando nmap.

http://nmap.org/man/es/

Capitulo 2:

Capitulo 9 de la Guía de Administración de Redes Segunda Edición, de Olaf Kirch.

Tutorial iptables

http://es.tldp.org/Manuales-LuCAS/doc-iptables-firewall/doc-iptables-firewall.pdf Capitulo 3:

Capitulo 6 de SEGURIDAD EN UNIX Y REDES Versión 2.1 de Antonio Villalón

Huerta

Capitulo 4:

Capitulo 7 de SEGURIDAD EN UNIX Y REDES Versión 2.1 de Antonio Villalón

Huerta

Manual sobre copias de seguridad de RedIRIS.

http://www.rediris.es/cert/doc/unixsec/node13.html#SECTION05431000000000000

000

Capitulo 5:

LINUX: ADMINISTRACION DEL SISTEMA Y LA RED

de ALEGRIA LOINAZ, IÑAKI y CORTIÑAS RODRIGUEZ, ROBERTO y

EZEIZA RAMOS, AITZOL

Capitulo 6:

Page 114: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

Tutorial para novatos sobre scripts para Bash (Ingles)

http://tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf

Guia avanzada sobre scripts para Bash (Ingles)

http://tldp.org/LDP/abs/abs-guide.pdf

Tutorial de expresiones regulares.

http://www.bulma.net/body.phtml?nIdNoticia=770

Tutorial de introducción sobre AWK.

http://club.telepolis.com/jagar1/Unix/Awk.htm

Tutorial sobre AptonCD.

http://tuxpepino.wordpress.com/2007/10/02/%C2%BFconocias-aptoncd/

Video-tutorial sobre clusterSSH.

http://www.screencasts.es/2008/07/11/clusterssh-administracion-de-una-sola-

tacada/

Capitulo 7:

Guia avanzada sobre SAMBA.

http://es.tldp.org/Manuales-LuCAS/USANDO-SAMBA/usando-samba.pdf

Guia sobre samba.

http://dns.bdat.net/documentos/samba/

Manual del fichero smb.conf de SAMBA.

http://dns.bdat.net/documentos/samba/smb.conf/

Tutorial introductorio sobre SAMBA.

http://www.esdebian.org/wiki/introduccion-samba

Capitulo 8:

NFS HOWTO (Ingles).

http://nfs.sourceforge.net/nfs-howto/

Tutorial NFS

http://taquiones.net/sysadmin/nis-nfs.html#index2h1

Capitulo 9:

Debian NIS HOWTO (Ingles)

Page 115: ESCUELA TÉCNICA SUPERIOR DE INGENIEROS … · 2011-04-08 · Configuración del cortafuegos de mi host en la red lab.unavarra.es ... Montar automáticamente en Linux un fichero mediante

http://lyre.mit.edu/~powell/debian-howto/nis.html

Tutorial NIS+NFS

http://taquiones.net/sysadmin/nis-nfs.html

Capitulo 10:

Tutorial sobre configuración de servidor DHCP en Debian.

http://manualesgratuitos.iespana.es/doc/dhcpd.pdf

Funcionamiento de DHCP en Debian.

http://www.estrellateyarde.es/discover/servidor-dhcp-en-linux

Capitulo 11:

Redes de Comuptadores: Un enfoque Descendente Basado en Internet. James F.

Kurose, Keith W.Ross

Transparencias de redes computadores asignatura de 2º de I.T.I.G. Universidad

Publica de Navarra.

https://www.tlm.unavarra.es/~daniel/docencia/lpr/lpr08_09/slides/