LABORATORIOS GNU/Linux
GUIA PRACTICA DE CERTIFICATION
GNU CERTIFIED – REDES 1
Capitulo 1
El modelo OSI
Durante las últimas dos décadas ha habido un enorme crecimiento en la cantidad y tamaño de las redes.
Muchas de ellas sin embargo, se desarrollaron utilizando implementaciones de hardware y software diferentes.
Como resultado, muchas de las redes eran incompatibles y se volvió muy difícil para las redes que utilizaban
especificaciones distintas poder comunicarse entre sí. Para solucionar este problema, la Organización
Internacional para la Normalización (ISO) realizó varias investigaciones acerca de los esquemas de red. La ISO
reconoció que era necesario crear un modelo de red que pudiera ayudar a los diseñadores de red a
implementar redes que pudieran comunicarse y trabajar en conjunto (interoperabilidad) y por lo tanto,
elaboraron el modelo de referencia OSI en 1984.
Este capítulo explica de qué manera los estándares aseguran mayor compatibilidad e interoperabilidad entre
los distintos tipos de tecnologías de red. En este capítulo, aprenderá cómo el esquema de networking del
modelo de referencia OSI acomoda los estándares de networking. Además, verá cómo la información o los
datos viajan desde los programas de aplicación (como por ejemplo las hojas de cálculo) a través de un medio
de red (como los cables) a otros programas de aplicación ubicados en otros computadores de la red. A medida
que avanza en este capítulo, aprenderá acerca de las funciones básicas que se producen en cada capa del
modelo OSI, que le servirán de base para empezar a diseñar, desarrollar y diagnosticar las fallas de las redes.
Ahora, examine
la figura el
cuadro
"Comparación de redes". ¿Qué red está examinando? ¿Qué
fluye? ¿Cuáles son las distintas formas del objeto que fluye?
¿Cuáles son las normas para el flujo? ¿Dónde se produce el
flujo? Las redes que aparecen en este esquema le ofrecen
más analogías para ayudarlo a comprender las redes
informáticas.
Imagínese a un joven que está sentado en uno de los extremos de una mesa muy larga. En el otro extremo de
la mesa, bastante lejos, está sentada su abuela. El joven habla en inglés. Su abuela prefiere hablar en español.
En la mesa se ha servido una cena espléndida que ha preparado la abuela. Súbitamente, el joven grita lo más
alto posible, en inglés: "Hey you! Give me the rice!" (¡Oye, tú! ¡Dame el arroz!) y extiende la mano sobre la
mesa para agarrarlo. En la mayoría de los lugares, esta acción se considera bastante grosera. ¿Qué es lo que el
joven debería haber hecho para comunicar sus deseos de forma aceptable?
Para ayudarlo a encontrar la respuesta a esta pregunta, analice el proceso de comunicación por capas. En
primer lugar está la idea – el joven desea el arroz; luego está la representación de la idea– hablada en inglés
(en lugar de español); a continuación, el método de entrega – "Oye tú"; y finalmente el medio – gritar (sonido)
y extender la mano (acción física) sobre la mesa para tomar el arroz.
A partir de este grupo de cuatro capas, se puede observar que tres de estas capas impiden que el joven
comunique su idea de forma adecuada/aceptable. La primera capa (la idea) es aceptable. La segunda capa
(representación), hablando en inglés en lugar de en español, y la tercera capa (entrega), exigiendo en lugar de
solicitar con educación, definitivamente no obedecen a los protocolos sociales aceptados. La cuarta capa
(medio), gritar y agarrar las cosas de la mesa en lugar de solicitar ayuda en forma educada a otra persona es
un comportamiento inaceptable prácticamente en cualquier situación social.
Si analiza esta interacción desde el punto de vista de las capas podrá entender más claramente algunos de los
problemas de la comunicación (entre las personas o entre los computadores) y cómo es posible resolver estos
problemas.
El nivel básico de información por computador se compone de dígitos binarios o bits (0 y 1). Los computadores
que envían uno o dos bits de información, sin embargo, no serían demasiado útiles, de modo que se necesitan
otras agrupaciones: los bytes, kilobytes, megabytes y gigabytes. Para que los computadores puedan enviar
información a través de una red, todas las comunicaciones
de una red se inician en el origen, luego viajan hacia su
destino.
Medios
Durante su estudio de networking, escuchará a menudo la palabra "medio". (Nota: El plural de medio es
medios). En networking, un medio es el material a través del cual viajan los paquetes de datos. Puede ser
cualquiera de los siguientes materiales:
• cables telefónicos
• UTP de categoría 5 (se utiliza para Ethernet 10BASE-T)
• cable coaxial (se utiliza para la TV por cable)
Existen otros dos tipos de medios que son menos evidentes, pero que no obstante se deben tener en cuenta
en la comunicación por redes. En primer lugar, está la atmósfera (en su mayor parte formada por oxígeno,
nitrógeno y agua) que transporta ondas de radio, microondas y luz.
La comunicación sin ningún tipo de alambres o cables se denomina inalámbrica o comunicación de espacio
abierto. Esto es posible utilizando ondas electromagnéticas (EM). Entre las ondas EM, que en el vacío viajan a
velocidad de la luz, se incluyen las ondas de energía, ondas de radio, microondas, luz infrarroja, luz visible, luz
ultravioleta, rayos x y rayos gama. Las ondas EM viajan a través de la atmósfera (principalmente compuesta
de oxígeno, nitrógeno y agua), pero también viajan a través del vacío del espacio exterior (donde no existe
prácticamente materia, ni moléculas ni átomos).
Protocolo
Para que los paquetes de datos puedan viajar desde el origen hasta su destino a través de una red, es
importante que todos los dispositivos de la red hablen el mismo lenguaje o protocolo. Un protocolo es un
conjunto de reglas que hacen que la comunicación en una red sea más eficiente. Los siguientes son algunos
ejemplos comunes:
1- En el Congreso de los Estados Unidos, una forma de las Reglas de Orden de Roberts hace posible que
cientos de Representantes que desean expresar sus opiniones lo hagan por turnos y que transmitan sus
ideas de forma ordenada.
Al principio de su desarrollo, las LAN, MAN y WAN eran en cierto modo caóticas. A principios de la década de
los 80 se produjo un enorme crecimiento en la cantidad y el tamaño de las redes. A medida que las empresas
se dieron cuenta de que podrían ahorrar mucho dinero y aumentar la productividad con la tecnología de
networking, comenzaron a agregar redes y a expandir las redes
existentes casi simultáneamente con la aparición de nuevas
tecnologías y productos de red.
Para enfrentar el problema de incompatibilidad de las redes y su imposibilidad de comunicarse entre sí, la
Organización Internacional para la Normalización (ISO) estudió esquemas de red como DECNET, SNA y TCP/IP a
fin de encontrar un conjunto de reglas. Como resultado de esta investigación, la ISO desarrolló un modelo de
red que ayudaría a los fabricantes a crear redes que fueran compatibles y que pudieran operar con otras
redes.
El proceso de dividir comunicaciones complejas en tareas más pequeñas y separadas se podría comparar con
el proceso de construcción de un automóvil. Visto globalmente, el diseño, la fabricación y el ensamblaje de un
automóvil es un proceso de gran complejidad. Es poco probable que una sola persona sepa cómo realizar
todas las tareas requeridas para la construcción de un automóvil desde cero. Es por ello que los ingenieros
mecánicos diseñan el automóvil, los ingenieros de fabricación diseñan los moldes para fabricar las partes y los
técnicos de ensamblaje ensamblan cada uno una parte del auto.
El modelo de referencia OSI es el modelo principal para las comunicaciones por red. Aunque existen otros
modelos, en la actualidad la mayoría de los fabricantes de redes relacionan sus productos con el modelo de
referencia OSI, especialmente cuando desean enseñar a los usuarios cómo utilizar sus productos. Los
fabricantes consideran que es la mejor herramienta disponible para enseñar cómo enviar y recibir datos a
través de una red.
El modelo de referencia OSI permite que los usuarios vean las funciones de red que se producen en cada capa.
Más importante aún, el modelo de referencia OSI es un marco que se puede utilizar para comprender cómo
viaja la información a través de una red. Además, puede usar el modelo de referencia OSI para visualizar cómo
la información o los paquetes de datos viajan desde los programas de aplicación (por ej., hojas de cálculo,
documentos, etc.), a través de un medio de red (por ej., cables, etc.), hasta otro programa de aplicación
ubicado en otro computador de la red, aún cuando el transmisor y el receptor tengan distintos tipos de medios
de red.
En el modelo de referencia OSI, hay siete capas numeradas, cada una de las cuales ilustra una función de red
específica. Esta división de las funciones de networking
se denomina división en capas. Si la red se divide en
estas siete capas, se obtienen las siguientes ventajas:
El problema de trasladar información entre computadores se divide en siete problemas más pequeños y de
tratamiento más simple en el modelo de referencia OSI. Cada uno de los siete problemas más pequeños está
representado por su propia capa en el modelo. Las siete capas del modelo de referencia OSI son:
Durante el transcurso de este semestre veremos las capas, comenzando por la Capa 1 y estudiando el
modeloOSI capa por capa. Al estudiar una por una las capas del modelo de referencia OSI, comprenderá de
qué manera los paquetes de datos viajan a través de una red y qué dispositivos operan en cada capa a medida
Capa 6: La capa de presentación La capa de presentación garantiza que la información que envía la capa
de aplicación de un sistema pueda ser leída por la capa de aplicación de otro. De ser necesario, la capa de
presentación traduce entre varios formatos de datos utilizando un formato común. Si desea recordar la Capa 6
en la menor cantidad de palabras posible, piense en un formato de datos común.
Capa 5: La capa de sesión Como su nombre lo implica, la capa de sesión establece, administra y finaliza las
sesiones entre dos hosts que se están comunicando. La capa de sesión proporciona sus servicios a la capa de
presentación. También sincroniza el diálogo entre las capas de presentación de los dos hosts y administra su
intercambio de datos. Además de regular la sesión, la capa de sesión ofrece disposiciones para una eficiente
transferencia de datos, clase de servicio y un registro de excepciones acerca de los problemas de la capa de
sesión, presentación y aplicación. Si desea recordar la Capa 5 en la menor cantidad de palabras posible, piense
en diálogos y conversaciones.
Capa 4: La capa de transporte La capa de transporte segmenta los datos originados en el host emisor y los
reensambla en una corriente de datos dentro del sistema del host receptor. El límite entre la capa de
transporte y la capa de sesión puede imaginarse como el límite entre los protocolos de aplicación y los
protocolos de flujo de datos. Mientras que las capas de aplicación, presentación y sesión están relacionadas
con asuntos de aplicaciones, las cuatro capas inferiores se encargan del transporte de datos.
La capa de transporte intenta suministrar un servicio de transporte de datos que aísla las capas superiores de
los detalles de implementación del transporte. Específicamente, temas como la confiabilidad del transporte
entre dos hosts es responsabilidad de la capa de transporte. Al proporcionar un servicio de comunicaciones, la
capa de transporte establece, mantiene y termina adecuadamente los circuitos virtuales. Al proporcionar un
servicio confiable, se utilizan dispositivos de detección y recuperación de errores de transporte. Si desea
recordar a la Capa 4 en la menor cantidad de palabras posible, piense en calidad de servicio y confiabilidad.
Capa 3: La capa de red La capa de red es una capa compleja que proporciona conectividad y selección de
ruta entre dos sistemas de hosts que pueden estar ubicados en redes geográficamente distintas. Si desea
recordar la Capa 3 en la menor cantidad de palabras posible, piense en selección de ruta, direccionamiento y
enrutamiento.
Capa 1: La capa física La capa física define las especificaciones eléctricas, mecánicas, de procedimiento y
funcionales para activar, mantener y desactivar el enlace físico entre sistemas finales. Las características tales
como niveles de voltaje, temporización de cambios de voltaje, velocidad de datos físicos, distancias de
transmisión máximas, conectores físicos y otros atributos similares son definidos por las especificaciones de la
capa física. Si desea recordar la Capa 1 en la menor cantidad de
palabras posible, piense en señales y medios.
Encapsulamiento
Para ver cómo se produce el encapsulamiento, examine la forma en que los datos viajan a través de las capas
como lo ilustra la siguiente figura. Una vez que se envían los datos desde el origen, como se describe en la
siguiente figura, viajan a través de la capa de aplicación y recorren todas las demás capas en sentido
descendiente. Como puede ver, el empaquetamiento y el flujo de los datos que se intercambian experimentan
cambios a medida que las redes ofrecen sus servicios a los usuarios finales. Como lo muestran las figuras, las
redes deben realizar los siguientes cinco pasos de conversión a fin de encapsular los datos:
1. Crear los datos. Cuando un usuario envía un mensaje de correo electrónico, sus caracteres
alfanuméricos se convierten en datos que pueden
recorrer la internetwork.
Para que los paquetes de datos puedan viajar desde el origen hasta su destino, cada capa del modelo OSI en el
origen debe comunicarse con su capa igual en el lugar destino. Esta forma de comunicación se conoce como
comunicaciones de par-a-par. Durante este proceso, cada protocolo de capa intercambia información, que se
conoce como unidades de datos de protocolo (PDU), entre capas iguales . Cada capa de comunicación, en el
computador origen, se comunica con un PDU específico de capa y con su capa igual en el computador destino
como lo ilustra la siguiente figura.
Aunque el modelo de referencia OSI sea universalmente reconocido, el estándar abierto de Internet desde el
punto de vista histórico y técnico es el Protocolo de control de transmisión/Protocolo Internet (TCP/IP). El
modelo de referencia TCP/IP y la pila de protocolo TCP/IP hacen que sea posible la comunicación entre dos
computadores, desde cualquier parte del mundo, a casi la velocidad de la luz. El modelo TCP/IP tiene
importancia histórica, al igual que las normas que permitieron el desarrollo de la industria telefónica, de
energía eléctrica, el ferrocarril, la televisión y las industrias de vídeos.
El Departamento de Defensa de EE.UU. (DoD) creó el modelo TCP/IP porque necesitaba una red que pudiera
sobrevivir ante cualquier circunstancia, incluso una guerra nuclear. Para brindar un ejemplo más amplio,
supongamos que el mundo está en estado de guerra, atravesado en todas direcciones por distintos tipos de
conexiones: cables, microondas, fibras ópticas y enlaces satelitales. Imaginemos entonces que se necesita que
fluya la información o los datos (organizados en forma de paquetes), independientemente de la condición de
cualquier nodo o red en particular de la internetwork (que en este caso podrían haber sido destruidos por la
guerra). El DoD desea que sus paquetes lleguen a destino siempre, bajo cualquier condición, desde un punto
determinado hasta cualquier otro. Este problema de diseño de difícil solución fue lo que llevó a la creación del
modelo TCP/IP, que desde entonces se transformó en el estándar a partir del cual se desarrolló Internet.
Capa de transporte La capa de transporte se refiere a los aspectos de calidad del servicio con respecto a la
confiabilidad, el control de flujo y la corrección de errores. Uno de sus protocolos, el protocolo para el control
de la transmisión (TCP), ofrece maneras flexibles y de alta calidad para crear comunicaciones de red
confiables, sin problemas de flujo y con un nivel de error bajo. TCP es un protocolo orientado a la conexión.
Mantiene un diálogo entre el origen y el destino mientras empaqueta la información de la capa de aplicación
en unidades denominadas segmentos. Orientado a la conexión no significa que el circuito exista entre los
computadores que se están comunicando (esto sería una conmutación de circuito). Significa que los
segmentos de Capa 4 viajan de un lado a otro entre dos hosts para comprobar que la conexión exista
lógicamente para un determinado período. Esto se conoce como conmutación de paquetes.
Capa de Internet El propósito de la capa de Internet es enviar paquetes origen desde cualquier red en la
internetwork y que estos paquetes lleguen a su destino independientemente de la ruta y de las redes que
recorrieron para llegar hasta allí. El protocolo específico que rige esta capa se denomina Protocolo Internet (IP).
Capa de acceso de red El nombre de esta capa es muy amplio y se presta a confusión. También se denomina
capa de host a red. Es la capa que se ocupa de todos los aspectos que requiere un paquete IP para realizar
realmente un enlace físico y luego realizar otro enlace físico. Esta capa incluye los detalles de tecnología LAN y
WAN y todos los detalles de las capas física y de enlace de datos
del modelo OSI.
Similitudes
Diferencias
Aunque los protocolos TCP/IP representan los estándares en base a los cuales se ha desarrollado la Internet,
este currículum utiliza el modelo OSI por los siguientes motivos:
Práctica #1 “Prácticas Preliminares”
Comando ifconfig
ifconfig permite conocer y cambiar la configuración de las interfaces de red, ya sean tarjetas NICs, Modems,
Wireless, etc.
* Para cambiar la configuración de las tarjetas de red, teclee:
ifconfig eth0 213.186.xx.xx netmask 255.255.255.0 broadcast 213.186.xx.255
* Como los valores que acabamos de dar son estándar, puede simplemente teclear:
ifconfig eth0 213.186.xx.xx (la máscara de red y el broadcast propuestos corresponden a una dirección de clase C)
* Atención en el reinicio de la máquina, ya que este cambio se perderá. Hay que modificar el fichero:
clas/etc/sysconfig/networkscript/ifcfgeth0.
* Puede utilizar linuxconf para simplificar la tarea.
* También se puede desactivar una tarjeta de red :
ifconfig eth0 down
* Y por su puesto reactivarla:
ifconfig eth0 up
Uso avanzado de ifconfig
Configurar una interfaz de red virtual
Las interfaces de red virtuales nos sirven para tener varias direcciones IP utilizando una
misma tarjeta de red, y así ofrecer servicios en cada una estas direcciones. Esto puede
hacerse usando una técnica llamada "IP Aliasing", un standard en las versiones 2.2x,
2.4.x y 2.6.x del kernel. También puedes configurarlo como módulo en el kernel (ip_alias).
¿Cómo hacemos que funcione?, es muy sencillo.
Despúes determinar las otras direcciones IP que necesitas configurar. Para este ejemplo
utilizaremos una red local. En éste caso, la IP maestra de mi máquina es 172.16.16.1, y
las direcciones IP virtuales son 172.16.16.20, 172.16.16.55, y 172.16.16.201. (Todas estas
driecciones IP son privadas.). Basicamente, hay un pequeño truco para subir las nuevas
direcciones IP -- usar un adaptador de red distinto.
# /sbin/ifconfig eth0 172.16.16.1
# /sbin/ifconfig eth0:0 172.16.16.20
# /sbin/ifconfig eth0:1 172.16.16.55
# /sbin/ifconfig eth0:2 172.16.16.201
Esto también puede hacerse en los archivos de configuración. En Debian, por ejemplo, se
haría agregando una nueva interfaz en /etc/network/interfaces por cada una de las IPs
que quieres crear un alias.:
iface eth0:0 inet static
address 172.16.16.20
netmask 255.255.248.0
network 172.16.0.0
broadcast 172.16.23.255
iwconfig para las Wireless
iwconfig : a secas no dirá las interfaces que tenemos.
iwconfig [interface] [opción]
[interface] = tipo eth0, ath0 ejemplo iwconfig ath0 Nos dará información de como esta configurada la tarjeta
inalámbrica.
iwconfig [interface]: ejemplo iwconfig ath0 Nos dirá toda la información
de la configuración de red inalámbrica (nombre de red, canal, nivel de señal, velocidad, potencia, encriptación de
wep, punto de acceso.
Si es FF:FF:FF:FF:FF:FF es que no esta asociado a ninguno
Nos dirá la versión que utilizamos de las wirelessextensions y la recomendada para nuestro interface inalámbrico.
[opción]
essid Nombre_red: ejemplo iwconfig ath0 essid "Wireless 1"
Nos servirá para configurar nuestra red con el nombre que queramos o a la que queramos asociarnos. Nombre de red
channel numero_canal: ejemplo iwconfig ath0 channel 6 Fijamos el canal elegido para nuestra tarjeta. Podemos
también utilizar la frecuencia.
freq ValorGhz: ejemplo iwconfig ath0 freq 2.412G Fijamos el valor de frecuencia para nuestra tarjeta. Podemos
también utilizar el canal .
Tenemos para:
canal 1= 2.412G canal 2= 2.417G canal 3= 2.422G
canal 4= 2.427G canal 5= 2.432G canal 6= 2.437G
canal 7= 2.442G canal 8= 2.447G canal 9= 2.452G
canal 10= 2.457G canal 11= 2.462G canal 12= 2.467G
canal 13= 2.472G canal 14= 2.484G
rate valorvelocidad: ejemplo iwconfig ath0 rate 11M Fijamos la velocidad en las comunicaciones para 802.11b.
Podemos también utilizar 54M. O ponerlo en modo automático. iwconfig ath0 rate auto Para que la tarjeta elija la
velocidad adecuada, incluso iwconfig ath0 rate 54M auto
frag valorfragmentacion:ejemplo iwconfig ath0 frag 4096
power period :ejemplo iwconfig ath0 power period 60 Tiempo actividad la tarjeta cuando no se utiliza alguna
conexión a red. Por lo tanto en modo monitor la captura de datos caería a la hora.
Nota: estas opciones puede realizarse de manera conjunta.
Ejemplo:
iwconfig ath0 essid "Wireless_casa" channel 6 rate auto
iwlist [interface) [opción]
Acordaros de que podéis poder obtener todas los argumentos posibles para este y casi todo los comandos mediante
iwlist help
Igual que antes interface=ath0, eth0 la que tengamos y salga con el iwconfig o el ifconfig.
[opción]
scan: ejemplo iwlist ath0 scan Nos mostrara información de todas las redes inalámbricas que nuestra tarjeta detecta.
Obviamente en modo monitor dará cero resultados. La diferentes redes que se detectan pueden cambiar por lo tanto
no vamos a estar todo el rato introduciendo este comando. Hay herramientas que dan información de lo que hay en
tiempo real. El airodump en modo monitor puede hacer un barrido en tiempo real de las redes próximas. Además
graba en un fichero todas las detecciones aunque solamente haya sido en un momento puntual, esto sirve para saber
si necesitamos colocar una antena para recibir con mayor calidad y señal posible redes a analizar. El airodump hace
Comando route
Este comando permite ver, añadir y eliminar las rutas declaradas en el la máquina. Para indicar a la máquina dónde
encontrar las direcciones que no son las direcciones de la red local debe indicar la pasarela (o gateway) hacia la cual
debe enviar todos los paquetes.
● Para ver las rutas indicar route n (también netstat nr). La opción n permite no visualizar la resolución de
los nombres.
● Para añadir una ruta por defecto: route add default gateway 192.168.0.1 (La paserela hacia la que envía
todos los paquetes que no son para la red local).
● Para añadir una ruta hacia una máquina, indicar route add host 195.98.246.28 gateway 192.168.0.1
(Indicar el netmask si no es una máscara correspondiente a la clase de su dirección)
● Para añadir una ruta hacia una red indicar route add net 195.98.246.0 netmask 255.255.0.0 gateway
192.168.0.1
● Para suprimir una de estas rutas reemplazar add por del.El gateway o pasarela corresponde la mayoría de
las veces a su router.
● Para obtener la ruta que acaba de añadir cada vez que reinicie, situe el comando en el fichero
/etc/rc.d/rc.local por ejemplo.
Comando ip
Puede que le sorprenda, ¡pero iproute2 ya está configurado! Las órdenes ifconfig y route actuales ya usan las
llamadas a sistema avanzadas, pero en su mayoría con configuraciones por defecto (es decir, aburridas).
La herramienta ip es central, y le pediremos que nos muestre nuestras interfaces.
ip nos muestra nuestros enlaces
$ ip link list
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:02:3f:d4:85:3f brd ff:ff:ff:ff:ff:ff
3: wifi0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 199
Primero vemos la interfaz loopback. Aunque su computador puede funcionar sin una, le advierto que no lo haga.
El tamaño MTU (Maximum Transfer Unit) es de 3924 octetos, y no se supone que deba encolar. Lo cual tiene
sentido porque la interfaz loopback es una fantasía en la imaginación del núcleo.
Dejaré de lado por ahora la interfaz dummy, que puede no estar presente en su computador. Después están mis
dos interfaces de red físicas, una está del lado de mi cable módem, y la otra sirve a mi segmento ethernet casero.
Más aún, vemos una interfaz ppp0.
Observe la ausencia de direcciones IP. iproute desconecta los conceptos de «enlace» y «dirección IP». De todas
maneras, con el alias de IP, el concepto de «la» dirección IP se ha vuelto bastante irrelevante.
Sin embargo, nos muestra las direcciones MAC, el identificador en hardware de nuestras interfaces ethernet.
ip nos muestra nuestras direcciones IP
# ip address show
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
Esto contiene más información. Nos muestra todas nuestras direcciones, y a qué tarjetas pertenecen. «inet»
significa Internet (IPv4). Hay muchas otras familias de direcciones, pero no nos importan por el momento.
Examinemos eth0 más de cerca. Dice que está relacionada con la dirección inet «10.0.0.1/8». ¿Qué significa
esto? El /8 indica el número de bits que están en la Dirección de Red. Hay 32 bit, de manera que quedan 24 bits
que son parte de nuestra red. Los primeros 8 bits de 10.0.0.1 corresponden a 10.0.0.0, nuestra Dirección de Red,
y nuestra máscara de red (netmask) es 255.0.0.0.
Las otras máquinas están conectadas a esta interfaz, de manera que 10.250.3.13 es accesible de forma directa
desde eth0, al igual que 10.0.0.1, por ejemplo.
Con ppp0, vemos el mismo concepto, aunque los números son diferentes. Su dirección es 212.64.94.251, sin
máscara de subred. Esto significa que tenemos una conexión punto a punto y que cada dirección, con la
excepción de 212.64.94.251, es remota. Hay más información, sin embargo. Nos dice que en la otra punta del
También observará «qdisc», que significa Disciplina de Cola (Queueing Discipline). Más adelante veremos que
es vital.
ip nos muestra nuestras rutas
Bien, ya sabemos cómo encontrar direcciones 10.x.y.z, y somos capaces de alcanzar 212.64.94.1. Sin embargo,
esto no es suficiente, de manera que necesitamos instrucciones sobre cómo alcanzar al resto del mundo. La
Internet está disponible mediante nuestra conexión ppp, y parece que 212.64.94.1 está deseando esparcir
nuestros paquetes por el mundo, y entregarnos resultados de vuelta.
$ ip route show
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.2
default via 10.0.0.1 dev eth0
Bastante explícito. Las primeras 4 líneas indican explícitamente lo que quedó implícito con ip address show, y
la última línea nos dice que el resto del mundo lo podemos encontrar mediante 212.64.94.1, nuestra pasarela por
defecto. Podemos saber que es una pasarela por la palabra «via», que nos dice que necesitamos enviar paquetes a
212.64.94.1, que ya se encargará del resto.
Como referencia, esto es lo que la vieja utilidad route nos muestra:
$ route n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
Comando arp
ARP es el Address Resolution Protocol que se describe en el RFC 826 (http://www.faqs.org/rfcs/rfc826.html).
ARP lo usa una máquina en red para averiguar la localización/dirección hardware de otra máquina en la misma
red local. Las máquinas en Internet se conocen generalmente por sus nombres que se corresponden a direcciones
IP. Así es como una máquina en la red foo.com es capaz de comunicarse con otras máquinas que están en la red
bar.net. Una dirección IP, sin embargo, no puede decirte la localización física de una máquina. Aquí es donde
entra ARP.
Tomemos un ejemplo muy sencillo. Supongamos que tengo una red compuesta de varias máquinas. Dos de ellas
que están en mi red son foo con dirección IP 10.0.0.1 y bar con dirección IP 10.0.0.2. Ahora foo quiere hacer
ping hacia bar para ver si está viva, pero, ¡vaya!, foo no tiene idea de dónde está bar. De manera que cuando foo
decide hacer ping hacia bar necesita realizar una consulta ARP. Esta consulta ARP es algo así como si foo
gritase en la red «¡Bar (10.0.0.2)! ¿Dónde estás?» Como resultado de esto, cada máquina de la red escuchará el
Ahora, veamos cómo funciona. Puede ver la caché/tabla arp/neighbor actual de su máquina así:
# ip neigh show
9.3.76.42 dev eth0 lladdr 00:60:08:3f:e9:f9 nud reachable
9.3.76.1 dev eth0 lladdr 00:06:29:21:73:c8 nud reachable
Como puede ver, mi máquina espa041 (9.3.76.41) sabe dónde encontrar a espa042 (9.3.76.42) y espagate
(9.3.76.1). Ahora añadamos otra máquina a la caché arp.
# ping c 1 espa043
PING espa043.austin.ibm.com (9.3.76.43) from 9.3.76.41 : 56(84) bytes of data.
64 bytes from 9.3.76.43: icmp_seq=0 ttl=255 time=0.9 ms
espa043.austin.ibm.com ping statistics
1 packets transmitted, 1 packets received, 0% packet loss
roundtrip min/avg/max = 0.9/0.9/0.9 ms
# ip neigh show
9.3.76.43 dev eth0 lladdr 00:06:29:21:80:20 nud reachable
9.3.76.42 dev eth0 lladdr 00:60:08:3f:e9:f9 nud reachable
9.3.76.1 dev eth0 lladdr 00:06:29:21:73:c8 nud reachable
Como resultado de que espa041 intente contactar con espa043, se ha añadido la dirección/localización hardware
de espa043 a la caché arp/neighbor. De manera que mientras no caduque la entrada de espa043 (como resultado
de la ausencia de comunicación entre ambas), espa041 sabe dónde encontrar a espa043 y no necesita enviar una
consulta ARP.
Ahora, eliminemos a espa043 de nuestra caché arp:
# ip neigh delete 9.3.76.43 dev eth0
# ip neigh show
9.3.76.43 dev eth0 nud failed
9.3.76.42 dev eth0 lladdr 00:60:08:3f:e9:f9 nud reachable
9.3.76.1 dev eth0 lladdr 00:06:29:21:73:c8 nud stale
Ahora espa041 ha vuelto a olvidar dónde encontrar a espa043 y necesitará enviar otra consulta ARP la siguiente
vez que necesite comunicarse con espa043. También puede ver en el listado anterior que espagate (9.3.76.1) ha
cambiado al estado «stale». Esto significa que la localización mostrada todavía es válida, pero tendrá que ser
Comando Traceroute
La orden traceroute permite registrar la ruta seguida por un datagrama hasta un destino determinado. Su
funcionamiento se basa en mensajes ICMP y en la variación del parámetro TTL de las cabeceras IP.
Averigüe el camino para alcanzar la máquina www.codigolibre.org,
# traceroute n www.codigolibre.org
Comando ping
Realiza una captura de los paquetes ICMP generados tras la ejecución de la orden:
# ping c 4 www.codigolibre.org
# ping 10.0.0.255 b
# ping l 1500 localhost
# ping s 65500 localhost
Aplica un filtro que te permita capturar únicamente los paquetes que contengan mensajes
del protocolo ICMP. Detén la captura cuando terminen los cuatro intentos y observa cuántos
mensajes ICMP se producen, prestando especial atención a los campos tipo, código, y
bytes de datos.
Utilitario iptraf
Iptraf es una utilidad que en modo texto, manejada por menús presenta bastante bien el estado de una red con una
gran variedad de opciones. Presentamos algunas de sus opciones mas interesantes.
● IP traffic monitor: Esta es una de las opciones más usadas en este paquete. Presenta de un modo global y
para todos los interfaces de la red las conexiones que existen en la maquina presentado el numero de bytes
intercambiados, el estado de las conexiones, etc...
● General interface statistics: Da una serie de estadísticas por interface de red en la maquina en número de
paquetes y tipo.
● Detailed interface statistics: Presenta estadísticas detalladas sobre si los paquetes han sido de entradas o de
salidas, tipo de paquetes, errores, etc...
Estas son las características basicas y más usadas de iptraf. Iptraf permite definir filtros mas avanzados
categorizando por protocolos y multitud de opciones, sin embargo estas tres opciones son las más usuales.
Comando dig
Dig es una herramienta (linea de comandos) disponible en prácticamente cualquier distribución linux (aunque
también hay alguna versión para windows) que te permite hacer consultas a un servidor dns. Dig precisa conocer la
dirección IP de un servidor DNS al que consultar por defecto, dirección IP que toma del archivo resolv.conf,
Opciones dig
# dig codigolibre.org +trace
Similar al traceroute TCP/IP, pero para dns
# dig codigolibre.org. NS
Te indica los servidores dns de tu_dominio:
;; ANSWER SECTION:
ignside.net. 132119 IN NS ns2.nexen.net.
ignside.net. 132119 IN NS ns1.nexen.net.
;; QUESTION SECTION:
;www.codigolibre.org. IN A
;; ANSWER SECTION:
www.codigolibre.org. 8326 IN CNAME codigolibre.org.
codigolibre.org. 9283 IN A 66.128.53.11
;; AUTHORITY SECTION:
codigolibre.org. 9283 IN NS ns7.dnetnoc.net.
codigolibre.org. 9283 IN NS ns8.dnetnoc.net.
;; ADDITIONAL SECTION:
ns7.dnetnoc.net. 83067 IN A 66.128.53.12
ns8.dnetnoc.net. 83067 IN A 66.128.53.13
Veamos la respuesta linea por linea, teniendo en cuenta que aquellas que comienzan con ;
son comentarios introducidos por dig, no vienen del servidor dns:
En las dos primeras líneas, dig se limita a informar de la versión del programa en
ejecución y del dominio objeto de consulta. La línea ;; global options: printcmd se
refiere a las opciones generales usadas en la consulta. Puedes evitar estas dos lineas
utilizando la sintaxis de consulta dig +nocmd nombredominio.com
La siguiente seccion Got Answer nos ofrece detalles de la consulta recibida, entre ellos, el
número de respuestas recibidas, y si nos la ha dado o no una "autoridad" en dns.
Las 'banderas' (flags) nos dan detalles de la consulta y respuesta: QR (Query/Response)
sirve para diferenciar la consulta de la respuesta. RD (Recursion Desired), es una
modalidad de la consulta, que es replicada en la respuesta con la bandera RA (Recursion
Allowed), y significa que pedimos al server que si no puede resolver la respuesta por si
mismo, consulte recursivamente a otro server. La aceptación de la petición por el server
es opcional. AA significaría que la respuesta es de un server autorizado. Otras flags son:
TC (Truncated Response), que significa que la respuesta se ha fraccionado por ser de
mayor tamaño del permitido, AD (Authentic Data) y CD (Checking Disabled).
La tercera sección nos da detalles de la consulta; además como es obvio del dominio
consultado, nos informa que estamos consultando en los registros A. Como ya sabemos, si
indicase MX en su lugar querria decir que estamos consultando una dirección de email.
IN indica que la búsqueda se realiza en el ámbito de internet.
Las consultas posibles que podemos hacer, comenzando por las ya conocidas son:
Comando NMAP
A lo largo de todo el texto hemos ido viendo poco a poco algunas de las funciones de nmap, pudiendo
comprobar que se trata de una de las herramientas de análisis de red más polivalentes que existen. En mi opinión, es
el mejor escaneador de puertos y sistema de detección de fingerprint que existe hoy en día, y además es software
libre.
Como ya hemos visto las distintas opciones de escaneo de nmap, no vamos a volver a hablar de ellas,
pues tanto la parte técnica como los comandos concretos de nmap ya han sido vistos. Vamos a centrarnos en el resto
de funcionalidades de nmap y a ver algunos ejemplos.
Verbose: Habréis visto que siempre que utilizo el comando nmap añadía dos parámetros: P0 y vv. Ya
sabemos que P0 sirve para evitar que hagamos ping al host, así que nos queda saber para qué sirve
vv. Se trata del modo detallado (verbose) de nmap, para obtener por pantalla información adicional
acerca de las acciones llevadas a cabo y sus resultados. Usándolo una vez (v) obtendremos información adicional,
usándolo dos veces (vv) obtendremos más aún, y usando bb obtendremos más aún (según el manual de nmap, nos
volveremos locos haciendo scroll en pantalla...).
Uso: nmap P0 vv sS xxx.xxx.xxx.xxx
Rango de puertos: No siempre querremos escanear los 65535 puertos de un host... y mediante el
parámetro p podremos establecer el rango que queremos escanear y ahorrarnos tiempo. Por defecto,
nmap escanea el rango 11024 y además los que se encuentran definidos en /etc/services.
Uso para un puerto (80): nmap P0 vv sS p 80 xxx.xxx.xxx.xxx
Uso para un rango (11024): nmap P0 vv sS p 11024 xxx.xxx.xxx.xxx
Puerto de origen: Si estamos detrás de un firewall o algún dispositivo que bloquea la salida de información desde
determinados puertos, podemos especificar qué puerto queremos usar para lanzar el escaneo.
Uso (6969): nmap P0 vv sS g 6969 xxx.xxx.xxx.xxx
Número máximo de sockets: Cuando usamos el escaneo TCP connect(), podemos definir el número
máximo de sockets a abrir con el fin de no colapsar el host que queremos escanear.
Uso (7): nmap P0 vv sT M 7 xxx.xxx.xxx.xxx
Modo rápido: Si únicamente queremos escanear los servicios listados en el fichero /etc/services debemos usar la
opción F.
Uso de señuelos: Esta funcionalidad es una delicia. Mediante el uso de una serie de señuelos, podemos hacer que
nmap mande, además de los paquetes del escaneo en cuestión, una serie de paquetes falsificados (packet spoofing)
para que parezcan provenir de otros hosts. De esta forma, se generarán en los logs una lista de hosts que han
realizado el escaneo de puertos y no se sabrá cuál de ellos ha sido el verdadero autor. El orden a la hora de colocar
los señuelos y nosotros mismos (ME) es indiferente, si bien conviene que nuestro propio host no sea de los primeros,
con lo que evitaremos que ciertos firewalls siquiera logeen nuestra IP. Es importante asegurarse de que los señuelos
usados están online para evitar causar un SYN flood en la víctima (o... es importante asegurarse de que estén offline
para provocar un SYN flood...).
Uso: nmap P0 vv sS Dsñ1.sñ1.sñ1.sñ1,sñ2.sñ2.sñ2.sñ2,[...],ME,[...],sñn.sñn.sñn.sñn xxx.xxx.xxx.xxx
Uso de IPv6: Es posible usar nmap con el protocolo IPv6 en lugar de IPv4.
Uso: nmap P0 vv sS 6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
Política de precaución: Mediante esta opción (T) establecemos el retardo entre unos paquetes y otros.
Cuanto más rápido los mandemos, antes terminará el escaneo pero más llamativo resultará; y cuanto
más lento lo realicemos, más tardará en terminar, pero más difícil de detectar resultará. Por defecto se
usa normal.
Uso (Paranoico): nmap P0 vv sS T Paranoid xxx.xxx.xxx.xxx
Uso (Furtivo): nmap P0 vv sS T Sneaky xxx.xxx.xxx.xxx
Uso (Educado): nmap P0 vv sS T Polite xxx.xxx.xxx.xxx
Uso (Normal): nmap P0 vv sS T Normal xxx.xxx.xxx.xxx
Uso (Agresivo): nmap P0 vv sS T Agressive xxx.xxx.xxx.xxx
Uso (Demente): nmap P0 vv sS T Insane xxx.xxx.xxx.xxx
Resolución de DNS: A veces nos interesará que se resuelvan los nombres de dominio y otras que no se haga. Por
defecto se realiza a veces, dependiendo de la circunstancia.
Uso (no resolver): nmap P0 vv sS n xxx.xxx.xxx.xxx
Uso (resolver siempre): nmap P0 vv sS R xxx.xxx.xxx.xxx
Archivo de registro: Podemos guardar un registro de la salida por pantalla en un fichero de varios tipos, según la
necesidad.
Uso (texto plano): nmap P0 vv sS oN <fichero.algo> xxx.xxx.xxx.xxx
Uso (XML): nmap P0 vv sS oX <fichero.algo> xxx.xxx.xxx.xxx
Uso (tratable por grep): nmap P0 vv sS oG <fichero.algo> xxx.xxx.xxx.xxx
IP e interfaz usada: En caso de que haya varias interfaces, o en caso de que nmap no la autodetecte, se
puede especificar ésta a mano.
Uso (IP): nmap P0 vv sS S IP.IP.IP.IP xxx.xxx.xxx.xxx
Uso (interfaz): nmap P0 vv sS e <intX> xxx.xxx.xxx.xxx
Especificación de objetivos: No siempre querremos escanear una única IP, o puede que no queramos
escribirla cada vez, o que la tengamos en un fichero de logs...
Uso (Entrada por fichero): nmap P0 vv sS iL <fichero.algo>
Uso (Rango con notación de máscara): nmap P0 vv sS xxx.xxx.xxx.xxx/xx
Uso (Rango personalizado): nmap P0 vv sS 'xxx.xxx.xxx.xxxyyy.yyy.yyy.yyy'
Uso (Rango personalizado con asteriscos): nmap P0 vv sS xy*.xy*.xy*.xy*
Que comando utilizamos si queremos listar las tabla de enrutamiento de nuestro servido
# r oute n
Comando ngrep
Los analizadores de paquetes tcpdump (modo terminal) y ethereal (GUI) son bastante conocidos. En esta receta
recomiendo el uso junto a las anteriores de ngrep. Mientras que las dos primeras están más orientadas al análisis
de protocolos, ngrep permite filtrar por el contenido de dichos paquetes, es decir el payload. Para ello se puede hacer
Reglas de iptables
iptables t nat A POSTROUTING s 192.168.0.0/24 d 0.0.0.0/0 j MASQUERADE
# Dejo pasar los paquetes ICMP
iptables A INPUT i ippp0 p ICMP j ACCEPT
# Permito conexiones al puerto 80 (HTTP)
iptables A INPUT i ippp0 p TCP dport 80 m state state NEW j ACCEPT
# Permito conexiones al puerto 22 (SSH)
iptables A INPUT i ippp0 p TCP dport 22 m state state NEW j ACCEPT
# Acepto paquetes de conexiones ya establecidas
iptables A INPUT p TCP m state state RELATED j ACCEPT
# Rechazamos paquetes de conexiones nuevas
iptables A INPUT i ippp0 m state state NEW,INVALID j DROP
# Rechazamos paquetes de forwarding de conexiones no establecidas
iptables A FORWARD i ippp0 m state state NEW,INVALID j DROP
Si queréis “abrir” otros puestos, sólo tenéis que agregar esas nuevas reglas.
Tengo dirección IP fija, ¿como lo hago?
Es muy fácil, en vez de usar masquerading, vamos a usar una solución mejor: source NAT. Sólo hay que cambiar la
regla del nat (la primera en los ejemplos anteriores). Si la interfaz que tiene la IP fija es la eth0, y la IP fija es la
111.111.111.111, nos quedaría:
# Habilito el SNAT
iptables t nat A POSTROUTING o eth0 j SNAT to 111.111.111.111
# Permito conexiones al puerto 80 (HTTP)
iptables A INPUT i eth0 p TCP dport 80 m state state NEW j ACCEPT
# Permito conexiones al puerto 22 (SSH)
iptables A INPUT i eth0 p TCP dport 22 m state state NEW j ACCEPT
# Acepto paquetes de conexiones ya establecidas
iptables A INPUT p TCP m state state RELATED j ACCEPT
# Rechazamos paquetes de conexiones nuevas
iptables A INPUT i eth0 m state state NEW,INVALID j DROP
# Rechazamos paquetes de forwarding de conexiones no establecidas
iptables A FORWARD i eth0 m state state NEW,INVALID j DROP
Ahora quiero redireccionar las conexiones a un puerto hacia un ordenador interno de mi LAN
Esto se llama destination NAT es bastante sencillo, sólo hay que poner una regla adicional. Por ejemplo, si queremos
redireccionar las conexiones al puerto 80 hacia el puerto 80 de un ordenador en la red interna (192.168.0.111).
iptables t nat A PREROUTING i eth0 p tcp dport 80 j DNAT to 192.168.0.111:80
Otro ejemplo sencillo y muy útil, redireccionar el puerto 2022 del ordenador haciendo de NAT o firewall hacia el
puerto 22 (ssh) de un ordenador de la red interna.
iptables t nat A PREROUTING i eth0 p tcp dport 2022 j DNAT to 192.168.0.111:22
de que forma podemos realizar dicha acción y con que comando podemos mostrar la
configuración actual en el pc y explique que otro método tenemos para ver la
configuración de iptables.
a). iptable -L -n
b). los archivo de configuración
después de ejecutar el comando anterior determine que función realizan las tres primera
sentencia y explique de forma resumida la configuración anterior.
Objetivos
· Configurar una Lista de Contaron de Acceso (ACL) para permitir o denegar
tráfico específico.
· Probar la Lista de Contaron de Acceso (ACL) para determinar si se lograron los
resultados deseados.
. Todo esto orientado a proteger nuestro propio PC
Nota: Borrar todas las configuración de los servidores después de terminar cada practica y realice
este procedimiento en cada servidor asignado antes de empezar su practica. al final del documento
están los comando necesario para realizar este proceso.
paso 6
Abrimos el puerto 80 para el servidor de web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT