Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Linux es un sistema operativo tipo NOS (Network Operating System), trae implícito todo lo
relacionado con redes incluido el protocolo TCP/IP.
Protocolo
Introducción al TCP/IP
El protocolo TCP/IP es un realidad un conjunto de protocolos básicos que se han ido agregando al
principal para satisfacer las diferentes necesidades en la comunicación ordenador-ordenador
como son TCP, UDP, IP, ICMP, ARP.
Define las reglas de comunicación para que un computador pueda “hablar” con otro. Corresponde
a la cuarta capa del modelo de comunicación OSI/ISO.
IP (Internet Protocol)
Define el protocolo que permite identificar las redes y establecer los caminos entre los diferentes
computadores. Es decir, encamina los datos entre dos ordenadores a través de las redes.
Corresponde a la capa tres del modelo OSI/ISO.
UDP: Es una alternativa al TCP, la conforma el protocolo UDP (User Datagram Protocol), el cual
trata los datos como un mensaje (datagrama) y envía paquetes. Es un protocolo sin conexión (el
computador destino no debe necesariamente estar escuchando cuando un computador establece
comunicación con él). Tiene la ventaja que ejerce una menor sobrecarga a la red que las
conexiones de TCP, pero la comunicación no es fiable: los paquetes pueden llegar duplicados o no
llegar.
ICMP: (Internet Control Message Protocol), se utiliza para mensaje de error o control.
Nodo: Se denomina nodo (host) a una máquina que se conecta a la red (puede ser un computador,
impresora, UPS, etc) es decir un elemento activo y diferenciable en la red que reclama o presta
algún servicio y/o comparte información.
Dirección de red Ethernet (Ethernet address o MAC address): Es un número de 48 bits (ejemplo:
00:88:40:73:AB:FF en binario seria: 0000 0000 1000 1000 0100 0000 0111 0011 1010 1011
1111 1111) que se encuentra disponible físico (hardware) del controlador (NIC) de red Ethernet y
es grabado por el fabricante del mismo. (Este número debe ser único en el mundo, por lo que cada
fabricante de NIC tiene un rango preasignado).
Host Name: Cada nodo debe tener además un único nombre en l red. BIOS puede ser solo
nombres o bien utilizar un esquema de nombres jerárquico basado en dominios (Hierarchical
domain naming scheme. Los nombre de los nodos deben ser únicos lo cual resulta fácil en
pequeñas redes.
Dirección Internet: (IP address), está compuesto por cuatro números en el rango 0-255 separados
por puntos. Ejemplo: 192.168.10.100 y es utilizado universalmente para identificar los
ordenadores sobre una red o internet. La traslación de nombres en direcciones IP es realizada por
un servidor DNS (Domain Name System) que transforma los nombres del nodo en direcciones IP.
Puerto (Port): Identificador numérico del buzón en un nodo que permite que un mensaje (TCP,
UDP) pueda ser leído por una aplicación concreta dentro de este nodo (Ejemplo puerto 23, 80,
etc). Se puede tener diferentes aplicaciones comunicándose entre dos nodos a través de
diferentes puertos simultáneamente.
Domain Name Systema (DNS): permite asegurar un único nombre y facilitar la administración de
las bases de datos que realizan la traslación entre nombres y dirección internet y se estructuran
en forma de árbol. Para ello se especifican dominios separados por puntos de derecha a izquierda,
describe la categoría, institución o país.
COM: comercial
EDU: educación
GOV: gubernamental
MIL: Militar
ORG: Organismo sin ánimo de lucro
XX: dos letras del país. Ejemplo co Colombia, mx Mexico, es
www.sena.edu.co
www.kernel.org
DHCP: (Dynamic Host Control Protocol) , asignar direcciones IP automáticas. Muy utilizado en
redes grandes.
Tipos de Redes o direcciones
Consta de 126 redes, 16 millones de nodos. Para grandes redes (patrón binario: 0 + 7 bits red + 24
bits nodos)
Consta de 16k redes, 65k nodos. (patrón binario: 10 + 14 bits de red + 16 bits nodos)
Dos millones de bits de redes, 254 nodos. (patrón binario: 110 + 21 bits red + 8 bits de nodos)
Reservado para multicast (desde un nodo a un conjunto de nodos que forman parte de un grupo)
y propósitos experimentales.
Cada tipo de direcciones tiene un rango específico que han sido reservados para ser utilizadas en
redes privadas, máquinas que se conectan entre ellas sin tener en conexión con el exterior, lo cual
es comúnmente conocido como intranet. Son utilizadas para crear las redes internas de una
organización. No se utilizan en la extranet.
NOTA: El rango 127 está reservado para pruebas. Ejemplo: 127.0.0.1 reservado para un loopback o
local host (autorreferencia).
Modelo OSI/ISO (Open System Interconnection Reference Model / International Standards
Organization).
Es un modelo teórico adoptado por muchas redes. Existen siete capas de comunicación donde
cada una tiene una interfaz para comunicarse con la anterior o posterior.
IPV4
IPV6 también llamado IPng (IP next generation).
Ifconfig: comando
Interfaz: interfaz tarjeta red
Dirección Ip: dirección de la máquina
Netmask: Mascara dirección
Opciones: opciones
Ejemplos:
NOTA: La herramienta PING es utilizada para probar la configuración de una máquina en la red.
IP aliasing
Existen algunas aplicaciones donde es útil configurar múltiples direcciones IP a un único dispositivo
de la red (único NIC).Los ISP (Internet Service Providers) utiliza frecuentemente esta característica
para proveer de características personalizadas a sus usuarios. Para ello el Kernel debe estar
configurado con la opción : Network Aliasing e IP.
Ejemplo:
En este caso puede accesar la máquina por cualquiera de las dos (2) direcciones IP
Ifconfig eth0:0 -0
En un nodo con múltiples conexiones, el routing consiste en decidir donde hay que enviar y que se
recibe. Un nodo simple (una sola conexión de red) también necesita routing, ya que todos los
nodos disponen de un loopback y una conexión de red. Existe una tabla llamada routing table que
contiene filas con diversos campos donde hay tres importantes: dirección de destino, interfaz por
donde saldrá el mensaje y la dirección ip que efectuará el siguiente paso en la red (Gateway).
El comando route permite modificar esta tabla para realizar las tareas de routing. Cuando llega un
mensaje se mira su dirección destino, se compara con las entradas en la tabla y se envía por la
interfaz cuya dirección que mejor coincida con el destino del paquete.
route
Ejemplos:
En este ejemp lo permitirá conectarse a todos los nodos dentro del segment de red (192.1)
/etc/services
IP MASQUERADE
Es un recurso para que un conjunto de máquinas puedan utilizar una única dirección IP. Esto
permite que los nodos ocultos (es decir los que utilizan una IP privada) puedan salir hacia internet,
pero no pueden aceptar llamadas o servicios del exterior directamente sino a través de la máquina
que tiene la IP real.
Una VPN (Virtual Private Network) es una red que utiliza como transporte de datos internet, pero
impide que los datos puedan ser accedidos por miembros externos a ella. Por lo general se utiliza
el algoritmo RSA
El servidor web Apache es un servidor web HTTP de código abierto, para plataformas Unix
(BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh. Cuando comenzó su desarrollo en 1995 se
basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo.
Su nombre se debe a que alguien quería que tuviese la connotación de algo que es firme y enérgico pero
no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de
EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y "civilizasen" el
paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un
conjunto de parches a aplicar al servidor de NCSA. En inglés, a patchy server (un servidor
"parcheado") suena igual que Apache Server.
El servidor Apache es desarrollado y mantenido por una comunidad de usuarios bajo la supervisión de la
Apache Software Foundation dentro del proyecto HTTP Server (httpd).
Apache presenta entre otras características altamente configurables, bases de datos de autenticación y
negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su
configuración.
Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. Jugó un
papel fundamental en el desarrollo fundamental de la World Wide Web y alcanzó su máxima cuota de
mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha
sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario
proporcionadas por Netcraft ). En 2009 se convirtió en el primer servidor web que alojó más de 100
millones de sitios web.
La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser
aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar
remotamente en ciertas situaciones, o explotar por los usuarios locales malévolos en las disposiciones de
recibimiento compartidas que utilizan PHP como módulo de Apache.
Características
Modular
Código abierto
Multi-plataforma
Extensible
Popular (fácil conseguir ayuda/soporte)
Ficha técnica
Lenguaje: C
Instalación
SERVIDOR DNS
Usando la distribución Ubuntu 14.04. DNS proviene de las siglas en inglés (Domain
Name System). Lo que hace principalmente es relacionar una @ip con un dominio y
viceversa. En un principio, para hacer cualquier consulta a una máquina externa a
la nuestra mediante la red, ya sea un recurso compartido, una página web etc,
deberíamos conocer la @ip de la máquina que queremos consultar. Yo siempre lo
comparo como una llamada telefónica. Para realizar la llamada, tenemos que
conocer el número de la persona a la que vamos a llamar. Porque los teléfonos no
entienden de nombres, solo de números. Hoy en día, en nuestros teléfonos
móviles, tenemos nuestra agenda de contactos. Donde asignamos un número de
teléfono a cada contacto. Esto se hace porque para el ser humano es más fácil
recordar el nombre de una persona que su número de teléfono. Imaginaros que
tuvierais que recordar todos los números de teléfono de vuestros amigos,
familiares, compañeros de trabajo etc. Sería un follón verdad. Pues bueno. Un
servidor DNS realiza una función muy similar a la de la agenda de nuestro teléfono
móvil. Lo único que entienden las máquinas, son @ip. Seríais capaces de recordar
todas la @ip’s de las páginas web que os gustan o os interesa. Sería complicado ¡¿a
que si? Pues justamente lo que hace el servidor DNS es “traducir” esa @ip que
nombre de dominio le corresponde o un determinado dominio, a que @ip apunta. De
esta forma podemos hacer consultas en la red sin necesidad de conocer la @ip.
Simplemente sabiendo el dominio el DNS es capaz de
“traducir” ese dominio a una @ip. Esto se hace, porque es mucho más fácil, para un
ser humano, recordar nombre de dominio que una @ip. Ya hecha la aclaración, voy
a pasar a la acción y voy ha empezar a instalar el servidor DNS en nuestra máquina
Linux.
Una vez ya se de que tarjetas de red dispongo, ya podemos pasar a configurar la red
a nuestras necesidades. Lo primero que haremos es asignar una @IP estática a la
tarjeta de red que dará servicio a nuestra red. Lo haremos editando el fichero
/etc/network/interfaces.
A continuación reiniciamos la red con el comando /etc/init.d/networking restart
y comprobaremos que la configuración de red es correcta con el comando ifconfig
que ya utilizamos antes.
Ya casi hemos acabado. Una vez configurado nuestro servidor DNS, debemos
indicar a nuestro PC que el servidor DNS es él mismo, se especifica editando el
archivo /etc/resolv.conf. Indicando la @ip del servidor y el dominio de donde
realizará las búsquedas.
ssh
Antes de instalar BIND vamos a actualizar los repositorios en nuestro sistema; para eso
ejecutamos:
Una vez instalado, vamos a poner a BIND en modo IPv4, editando el siguiente archivo de
esta manera:
Una vez abierto el archivo, buscamos la variable OPTIONS y hacemos que quede de la
siguiente manera:
OPTIONS="-4 -u bind"
Ahora bien, BIND no tiene solamente un archivo de configuración sino varios, aunque hay
uno que los invoca a todos. Ese archivo en cuestión es named.conf.
De todos modos, primero vamos a configurar los Forwarders. Esto permite que, si el
servidor DNS no encuentra un registro y no resuelve una dirección, el mismo sea capaz de
consultar a otros servidores DNS. Para hacer esto, vamos a tocar el archivo
named.conf.options.
forwarders
Y abajo especificamos algunos servidores DNS externos, como el de Google por ejemplo u
otro, quedando esa parte del archivo de la siguiente manera:
forwarders {
8.8.8.8;
8.8.4.4;
};
...
};
Una vez hecho esto crearemos una zona. Para eso debemos crear una carpeta en la cual esas
zonas serán guardadas.
Ahora bien, atención a los siguientes pasos. Vamos a crear un archivo donde guardaremos
nuestros registros DNS:
El archivo que se abrirá estará vacío; nosotros tenemos que crear algo como este ejemplo:
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost. ; delete this line
@ IN A 127.0.0.1 ; delete this line
@ IN AAAA ::1 ; delete this line
Si les queda cómodo, péguenlo en el archivo para poder guiarse mejor al hacer las
modificaciones.
Ahora, lo primero que debemos modificar de este archivo es el SOA y lo que pondremos
ahí es el FQDN o el nombre completo de nuestro host, que debería llamarse
ns1.midominio.com. Si aún no configuraste eso, tomate un minuto
y leete els –l
ste tutorial.
$TTL 604800
@ IN SOA ns1.midominio.com
root.ns1.midominio.com (
Hecho esto, borramos los registros que aparecen como @ IN NS y creamos los nuestros.
¿Cómo? Muy fácil! Primero, nos especificaremos a nosotros mismos como NS. Para eso,
en el archivo pondremos lo siguiente:
Una vez hecho esto, vamos a crear registros A donde indiquemos qué dirección IP es
ns1.midominio.com, quedando de la siguiente manera:
Por último, en ese archivo vamos a específicar los host que queremos que nuestro servidor
DNS resuelva hacia una determinada dirección, lo cual quedará más o menos así:
; A records
host1.midominio.com. IN A 10.128.100.101
host2.midominio.com. IN A 10.128.200.102
host3.otrodominio.com IN A 10.128.200.102
$TTL 604800
@ IN SOA ns1.midominio.com
root.ns1.midominio.com (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; A records
host1.midominio.com. IN A 10.128.100.101
host2.midominio.com. IN A 10.128.200.102
host3.otrodominio.com IN A 10.128.200.103