Академический Документы
Профессиональный Документы
Культура Документы
1.1. Introducción
En este capítulo veremos un ejemplo práctico de cómo realizar los pasos básicos para
configurar un host para conectarse a una red local sobre Ethernet mediante cable y más
tarde conectarse a Internet a través de este host, en nuestro caso en una subred de la
U.P.N.A.
1.2. Prerrequisitos
En Linux 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
Que indica al sistema de resolución qué servicios usar (DNS, NIS, hosts) y en que
orden
/etc/resolv.conf
Aquí añadiremos los servidores DNS
/etc/network/interfaces
Configuración automática de las interfaces de nuestro host
Antes de todo, deberemos comprobar que nuestra tarjeta de red está conectada a la red a
través de un cable par trenzado, cable coaxial, fibra óptica etc. Nuestra practica lo
hemos 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.
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., o si
es nuestra propia red local estos datos los sabremos los conoceremos nosotros mismos
(CAPITULO X). Los datos a solicitar serian mascara 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 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 X) la
maquina se auto configura con unos determinados parámetros, esto no me conviene ya
que según el día me pondrá una IP o otra, he decidió que yo mismo investigare como es
la red local y así obtener información para configurar el host.
Ahora vamos a ver una serie de comandos muy útiles para conocer nuestra red y de paso
nos vamos familiarizar con los comandos de red.
ifconfig: con este comando obtenemos la configuración de nuestra tarjeta de red.
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
Fig 1.1. 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 2 tarjetas de red
tendríamos otra salida más con la interfaz eth1.
HWaddr: es la dirección física de la tarjeta de red, es 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 capitulo introductorio.
RX packets: información sobre los paquetes recibidos errores, rechazados, 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 envió de los paquetes.
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
La primera línea significa que si el paquete va a nuestra propia red lab.unavarra.es el
paquete no necesita ir a ninguna pasaralela y hay que enviarlo a la interfaz eth0 y la
segunda línea que para todos los demás paquetes por defecto se envíen a la puerta de
enlace de de la red que es gw.lab.unavarra.es.
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 grupos de
ordenadores como una red local.
gw.lab.unavarra.es este es el nombre que designa a la ip donde tienen que ir los
paquetes si quieren salir de la red llamado comúnmente puerta de enlace.
El campo flags puede ser:
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, conexiones enmascaradas. Vamos a ver un par de ejemplos.
La fig 1.3. muestra lo mismo que el comando route, pero mediante la opción n le
decimos qu muestre las direcciones numéricas en vez los nombres simbolicos y
mediante la opción r le decimos que quermos ver la tabla de rutas. Obtenemos la ip de
lab.unavarra.es 172.18.64.0 la ip de la puerta de enlace 172.18.64.254.
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
#continua
La fig x podemos ver diferentes estadísticas de nuestro trafico, del protoclo ip del
protocolo ICMP y del protocolo TCP.
nmap: herramienta de escaneo de red muy importante para la seguridad e integridad de
la red local. No está en la instalación base de Debian/Lenny, antes de usarlo deberemos
teclear como superusuario aptget 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 deberemos usar unos o otros, para
más información sobre esta herramienta man nmap.
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 c losed 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)
Lo que tenemos en la fig. 1.3 es el análisis de toda la red local lab.unavarra.es le hemos
puesto la ip de la red en este caso 172.18.64.0 y su máscara que es de 19 bits. Cada
bloque de datos es un host en la red, la información que nos provee es nombre del host,
ip, puertos abiertos y sistema operativo. En total de 8192 direcciones que ha escaneado
a encontrado 44 hosts.
Otra opción interesante de nmap es –O que nos da información mas exhaustiva de que
tipo puede ser el dispositivo, sacándonos un parámetro llamado Device type si puede ser
un switch, router, etc.
Con toda esta información podemos hacernos una representación grafica de la red
lab.unavarra.es:
La fig. 1.5 es una representación de la red local de la red local donde trabajo, en los
siguientes apartados vamos a explicar cómo configurar el host
dell27043.lab.unavarra.es.
Datos obtenidos en este capitulo para la configuración:
Nombre e IP de la red: lab.unavarra.es=172.18.64.0 obtenido de netstat nr
IPs posibles a asignarnos: cualquiera que no sea de los hosts ocupados del escaneo de
nmap.
Mascara de red: 255.255.224.0 que equivale a una mascara de 19 bits obtenido de
cualquier comando visto.
Servidor DNS: 172.18.64.1 y 172.18.64.2 obtenido de nmap
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.
Primeramente deberemos asignar una ip a nuestra interfaz de red para ello utilizaremos
el comando ifconfig en nuestro caso:
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.
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 2 ficheros /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 encarga de decirle al ordenador que 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 que orden debe usar cada sistema de traducción.
hosts: files
Luego editamos el fichero /etc/hosts donde ponemos la ips de nuestra red local y su
respectivo nombre asociado.
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
Ahora si realizamos ping a dell27043 sabrá que está asociado ese nombre a la IP
172.18.69.245.
Luego mediante el comando route diremos según a que red va mas la mascara donde
tiene que ir el paquete.
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.
Con los pasos anteriores tendremos conexión en nuestra propia red local, ya que nuestro
host no es capaz de interpretar el nombre de una página web si no que necesita su ip.
Para ello existe un protocolo que traduce los nombres de las páginas web a sus
respectivas ips esto protocolo es llamado DNS.
Para configurar este servicio en un host terminal tenemos 2 ficheros:
/etc/resolv.conf
Aquí se indica que servidores (su dirección ip) vamos a usar para al servicio DNS.
/etc/nsswitch.conf aqui 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.
domain lab.unavarra.es
search lab.unavarra.es
nameserver 172.18.64.2 #ips de los servidores DNS
nameserver 172.18.64.1
Fig 1.13. /etc/resolv.conf
La figura ( ) es igual que la figura ( ) solo que añadiremos dns para primero que use
los servidores dns y luego el fichero /etc/hosts.
Fig 1.11. Vemos la petición de nuestro ordenador al servidor local DNS de nuestra red y la contestación
mas tarde del nombre canónico (CNAME) de la pagina solicitada.
Ejemplo /etc/resolv.conf
1.5.6 Comprobar la conexión que esta 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
upna 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:
El comando ping (fig 1.19.) lo que hace 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 si una maquina alcanza otra, al finalizar el
envió de paquetes el comando ping nos da información de los paquetes trasmitidos,
cuáles han sido recibidos, el porcentaje de paquetes perdidos y tiempo transcurrido.
Si una conexión no alcanza el destino y se pierden los paquetes, mediante la aplicación
traceroute.db podremos observar los saltos que hace nuestro paquete por los enrutadores
y ver donde se pierde el paquete. En mi distribución se llama traceroute6.db ó
traceroute.db.
Fig x traceroute6.db
Las líneas que empiezan con 1, 2 y 3 son los saltos que hacen los paquetes dentro de la
red unavarra.es. Para más información sobre el comando man traceroute6.db.
1.5.7 Configuración persistente de la configuración
Se puede configurar persistentemente la configuración esto se hace editando el fichero
/etc/network/interfaces para que el ordenador lo haga automáticamente cada vez que el
ordenador 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:
* preup: ejecutar comando antes de levantar la interfaz.
* up : ejecutar comando cuando hemos levantado la interfaz.
* down: ejecutar comando después de desactivar una interfaz.
* postdown: ejecutar comando justo antes de desactivar una interfaz.
Por lo tanto, nuestro fichero "/etc/network/interfaces", quedaría de la siguiente manera:
El comando auto del fichero /etc/network/interfaces es para cada vez que se reinicie el
ordenador automáticamente aplique este fichero como configuración.