Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Tema 7 Redes

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 35

Tema 7

El nivel de Sesión en OSI

La función principal de la capa de sesión es el establecimiento de una conexión


denominada sesión (nombre que reciben las conexiones a este nivel), que permita el
diálogo entre emisor y receptor. Una sesión permite el transporte de datos
ordinarios pero también proporciona servicios mejorados útiles en algunas
aplicaciones.

Uno de los servicios de la capa de sesión es manejar el control del diálogo. Las sesiones
pueden permitir que el tráfico vaya en ambas direcciones al mismo tiempo, o sólo en
una dirección a la vez.

Un servicio de sesión relacionado es el manejo de testigos. Para algunos protocolos es


esencial que ambos lados no intenten la misma operación al mismo tiempo. A fin de
controlar estas actividades, la capa de sesión proporciona testigos que se pueden
intercambiar. Solamente el lado que posea el testigo podrá efectuar la operación
crítica.

Otro servicio de sesión es la sincronización. Consideremos los problemas que pueden


ocurrir cuando se trata de efectuar una transferencia de archivos de 2 horas de
duración entre dos máquinas que tienen un tiempo medio entre rupturas de 1 hora.
Cada transferencia, después de abortar, tendría que empezar de nuevo desde el
principio y probablemente fallaría también la siguiente vez. Para eliminar este
problema, la capa de sesión ofrece una forma de insertar puntos de verificación en la
corriente de datos, de modo que después de cada interrupción sólo se deban repetir
los datos que se transfirieron después del último punto de verificación.

El nivel de Presentación en OSI

La capa de presentación se ocupa de la sintaxis y la semántica de la información que


se transmite. Un ejemplo típico de servicio de presentación es la codificación de datos
en una forma estándar acordada. Los diferentes ordenadores tienen códigos
diferentes para representar cadenas de caracteres (por ejemplo, ASCII y Unicode),
enteros (por ejemplo, en complemento a uno y en complemento a dos), y demás. Con
el fin de hacer posible la comunicación entre equipos con representaciones diferentes,
las estructuras de datos por intercambiar se pueden definir de forma abstracta, junto
con un código estándar que se use “en el cable”. La capa de presentación maneja estas
estructuras de datos abstractas y las convierte de la representación que se usa dentro
del equipo a la representación estándar de la red y viceversa.

Otra función de la capa de presentación es la de comprimir los datos para que las
comunicaciones sean menos costosas; o la de encriptación para garantizar su
privacidad.

El nivel de Aplicación en OSI

En el nivel de aplicación se definen los protocolos que utilizarán las aplicaciones y


procesos de los usuarios. Cuando dos procesos que residen en máquinas
diferentes desean comunicarse, la capa de aplicación dispara
los mecanismos necesarios para producir la conexión entre ellos, sirviéndose de las
capas inferiores.

Algunos protocolos son:


Terminal virtual, transferencia de archivos, correo electrónico, etc.

Similitud entre el Modelo OSI y el Modelo TCP/IP:

- Ambos se dividen en capas o niveles.


- Se supone que la tecnología es de conmutación de paquetes (no de conmutación de
circuitos).
- Los profesionales de networking deben conocer ambos: OSI como modelo; TCP/IP
como arquitectura real.

Diferencia entre el Modelo OSI y el Modelo TCP/IP:

- OSI distingue de forma clara los servicios, las interfaces y los protocolos. TCP/IP no lo
hace así, no dejando de forma clara esta separación.
- OSI fue definido antes de implementar los protocolos, por lo que algunas
funcionalidades necesarias fallan o no existen. En cambio, TCP/IP se creó después que
los protocolos, por lo que se amolda a ellos perfectamente.
- TCP/IP parece ser más simple porque tiene menos capas.

Generalidades:

Los protocolos TCP/IP son los estándares en torno a los cuales se desarrolló la Internet,
de modo que la credibilidad del modelo TCP/IP se debe en gran parte a sus protocolos.

En comparación, las redes típicas no se desarrollan normalmente a partir del protocolo


OSI, aunque el modelo OSI se usa como guía.
Gráfico comparativo:

Servicios ofrecidos en la capa de Aplicación

La capa de aplicación contiene los programas del usuario o aplicaciones que utilizan


los servicios que ofrece la capa inmediatamente inferior para sus necesidades de
comunicación. A continuación clasificamos ciertos protocolos y aplicaciones
importantes para la capa de aplicación.

Servicios sin estado vs Servicios con estado

 Un servicio se dice sin estado cuando tiene siempre la misma respuesta a una


solicitud que se le haga. Un ejemplo de servicio sin estado es un servidor web.
De hecho las cookies se emplean para dotar a una web la posibilidad de
comportarse de manera diferente en atención a lo que haya sucedido con
anterioridad.
 Un servicio se dice con estado cuando su comportamiento depende de la
comunicación que haya tenido lugar anteriormente, es decir, que depende del
estado en que se encuentra. Un ejemplo de servicio con estado es el correo
electrónico.

Protocolos de apoyo.

Son los que facilitan el uso y administración de la red. Podemos destacar los


siguientes:
- BOOTP: Es un protocolo de red UDP utilizado por los clientes de red para obtener su
dirección IP automáticamente. Normalmente se realiza en el proceso de arranque de
los ordenadores o del sistema operativo. Su sucesor es el protocolo DHCP.

- DHCP: Es un protocolo de red que permite a los nodos de una red IP obtener sus
parámetros de configuración automáticamente.

- DNS: Con DNS es posible identificar a los dispositivos con nombres simbólicos
asociándolos a una dirección de red, para tanto ámbitos privados como públicos.

- SNMP: Este protocolo se definió para supervisar y administrar una red. La estructura
SNMP y su protocolo se implementaron ampliamente y se volvieron los estándares
para la administración de redes.

Aplicaciones.

Dada su importancia, destacamos los siguientes:

- Telnet (TELecommunication NETwork): es el nombre de un protocolo de red que sirve


para acceder mediante una red a otra máquina, para manejarla como si estuviéramos
sentados delante de ella. El puerto que se utiliza generalmente es el 23. Hoy día ha sido
casi enteramente desplazado por SSH debido a que la seguridad de telnet es muy baja.

- SSH (Secure SHell): Se emplea para lo mismo que telnet, pero la comunicación se


realiza de forma encriptada, lo que lo hace más seguro.

- FTP (File Transfer Protocol): es un protocolo de transferencia de archivos entre


sistemas conectados a una red TCP basado en la arquitectura cliente-servidor, de
manera que desde un equipo cliente nos podemos conectar a un servidor para
descargar archivos desde él o para enviarle nuestros propios archivos
independientemente del sistema operativo utilizado en cada equipo. Los puertos que
se utilizan generalmente son el 20 y el 21.

- Correo electrónico (en inglés e-mail): es un servicio de red que permite a los


usuarios enviar y recibir mensajes rápidamente (también denominados mensajes
electrónicos o cartas electrónicas) mediante sistemas de comunicación electrónicos.
Principalmente se usa este nombre para denominar al sistema que provee este servicio
en Internet, mediante el protocolo SMTP, aunque por extensión también puede verse
aplicado a sistemas análogos que usen otras tecnologías. Por medio de mensajes de
correo electrónico se puede enviar, no solamente texto, sino todo tipo de datos.

- “World Wide Web” (o la "Web"): es un sistema de documentos de hipertexto y/o


hipermedios enlazados y accesibles a través de Internet. Con un navegador Web, un
usuario visualiza páginas web que pueden contener texto, imágenes, vídeos u otros
contenidos multimedia, y navegar a través de ellas usando hiperenlaces. El puerto que
se utiliza generalmente es el 80.
Dynamic Host Configuration Protocol (DHCP)

Dynamic Host Configuration Protocol (DHCP), Protocolo de configuración dinámica de


servidor, es un protocolo de red para asignar automáticamente información
TCP/IP a equipos cliente. Cada cliente DHCP se conecta un servidor
DHCP centralizado que devuelve la configuración de red del cliente, incluida la
dirección IP, el gateway y los servidores DNS. Es una mejora de un protocolo
anterior empleado para el arranque a distancia de máquinas que recibían una dirección
IP: BOOTP.

¿Por qué usar DHCP?

DHCP es útil para proporcionar de un modo rápido la configuración de red del


cliente. Al configurar el sistema cliente, el administrador puede seleccionar el
protocolo DHCP y no especificar una dirección IP, una máscara de red, un gateway o
servidor DNS. El cliente recupera esta información desde el servidor DHCP. DHCP
también es útil si un administrador desea cambiar las direcciones IP de muchos
sistemas. En lugar de volver a configurar todos los sistemas, puede modificar un
archivo de configuración DHCP en el servidor para establecer el nuevo conjunto
de direcciones IP. Si los servidores DNS de una organización cambian, los cambios
también se aplicarán en el servidor DHCP, no en todos los clientes DHCP. Una vez que
se reinicie la red en los clientes (o rearranquen los clientes), se aplicarán los cambios.

Además, si un portátil o cualquier tipo de equipo móvil se configura para DHCP, podrá
desplazarse entre distintas oficinas sin tener que volver a configurarlo, siempre y
cuando cada oficina tenga un servidor DHCP que permita su conexión a la red.

Funcionamiento de DHCP

1. El cliente DHCP envía un paquete de descubrimiento, DHCPDISCOVER, con el


objeto de que llegue a todos los servidores DHCP disponibles. Por esa razón
el paquete es de difusión (broadcast).
2. Los servidores DHCP disponibles contestan presentando una oferta al cliente,
mediante un paquete conocido como DHCPOFFER y que va dirigido en
exclusiva a dicho cliente.
3. El cliente elige una de las ofertas recibidas y envía un paquete de
requerimiento DHCPREQUEST de esa oferta recibida. Lo realiza mediante un
broadcast para que todos los servidores DHCP sepan con qué concesión se
queda. De esta forma, el resto de servidores saben que su oferta no ha sido la
elegida. La combinación de las direcciones hardware y asignada del cliente
constituyen un identificador único de la concesión y son usadas tanto por el
cliente como por el servidor para identificar cualquier concesión a que se haga
referencia en mensajes DHCP.
4. El servidor requerido responde enviando un paquete DHCPACK. En este
paquete se envían todas las opciones DHCP. Se dice entonces que el cliente ha
recibido una concesión, que se da por un determinado tiempo. Si el cliente
detecta un problema con los parámetros en el mensaje DHCPACK, envía un
mensaje DHCPDECLINE al servidor y vuelve a comenzar el proceso desde el
DHCPDISCOVER.

Renovación de la concesión
Transcurrido un 50% del tiempo de la concesión el cliente intenta renovarla
dirigiéndose al mismo servidor DHCP. El servidor decide si le renueva la concesión,
concediéndole un nuevo plazo o no.
Si el cliente no ha renovado su concesión, lo vuelve a intentar de nuevo transcurridos
7/8 (87.5%) del tiempo de concesión, pero esta vez se dirige a todos los servidores
DHCP disponibles mediante un broadcast. Si no logra renovar la concesión ni recibir
una nueva, liberará la concesión cuando se cumpla el tiempo límite.
Si no se obtiene una dirección IP de un servidor DHCP el cliente se puede autoasignar
una en el rango de la red 169.254.0.0/16. En Windows el servicio que se encarga de
realizar esta asignación se denomina APIPA.
Ámbito
Se conoce como ámbito al conjunto de direcciones IP que puede asignar un servidor
DHCP
Reserva
Una reserva es una dirección IP reservada para un dispositivo en concreto, de modo
que a dicho dispositivo se le asigne siempre la misma dirección IP.
Opciones DHCP
En una concesión se pueden incluir varias opciones:
 Dirección IP
 Máscara
 Gateway
 Servidores DNS
 Servidores WINS
 Dominio DNS
 Tiempo de la concesión
Liberación de una concesión
Cuando un cliente libera una concesión de dirección IP (porque finaliza su plazo
máximo de concesión o bien porque no la va a usar más) envía un paquete llamado
DHCPRelease.
Cliente DHCP en Linux
En linux la información de las concesiones recibidas se almacena en el fichero
/var/lib/dhcp/dhclient.leases. Consultando este fichero se puede ver el estado de las
concesiones recibidas.
También es posible modificar los parámetros de configuración del cliente modificando
el archivo /etc/dhcp/dhclient.conf
Agente de retransmisión o Relé
Un agente de retransmisión o relé en vía las peticiones DHCP a los servidores que se le
indican, de forma que al no realizarse mediante broadcast puedan atravesar los routers
y alcanzar redes diferentes.
Umbral de recuento de saltos: es el límite de saltos que puede dar un paquete antes de
ser eliminado.
Umbral de inicio: es el tiempo que espera un agente relé antes de enviar la petición a
los servidores DHCP que conoce (para dar tiempo a que conteste el de la propia red
física).

DNS

El Domain Name System (DNS) es una base de datos distribuida y jerárquica


que almacena información asociada a nombres de dominio en redes como Internet.
Aunque como base de datos el DNS es capaz de asociar diferentes tipos de
información a cada nombre, los usos más comunes son la asignación de nombres de
dominio a direcciones IP y la localización de los servidores de correo electrónico de
cada dominio.

La asignación de nombres a direcciones IP es ciertamente la función más conocida de


los protocolos DNS. Por ejemplo, si la dirección IP del sitio FTP de prox.mx es
200.64.128.4, la mayoría de la gente llega a este equipo especificando ftp.prox.mx y no
la dirección IP. Además de ser más fácil de recordar, el nombre es más fiable. La
dirección numérica podría cambiar por muchas razones, sin que tenga que cambiar el
nombre.

Inicialmente, el DNS nació de la necesidad de recordar fácilmente los nombres de


todos los servidores conectados a Internet. En un inicio, SRI (ahora SRI International)
alojaba un archivo llamado HOSTS que contenía todos los nombres de dominio
conocidos (técnicamente, este archivo aún existe - la mayoría de los sistemas
operativos actuales todavía pueden ser configurados para revisar su archivo hosts). El
crecimiento explosivo de la red causó que el sistema de nombres centralizado en el
archivo HOSTS no resultara práctico y en 1983, Paul Mockapetris publicó los RFCs 882 y
883 definiendo lo que hoy en día ha evolucionado hacia el DNS moderno.
Componentes.

Para la operación práctica del sistema DNS se utilizan tres componentes principales:

- Los Clientes DNS: Un programa cliente DNS que se ejecuta en la computadora del


usuario y que genera peticiones DNS de resolución de nombres a un servidor DNS (Por
ejemplo: ¿Qué dirección IP corresponde a nombre.dominio?).

- Los Servidores DNS: Que contestan las peticiones de los clientes. Los servidores
recursivos tienen la capacidad de reenviar la petición a otro servidor si no disponen de
la dirección solicitada.

- Y las Zonas de autoridad, porciones del espacio de nombres de dominio que


almacenan los datos. Cada zona de autoridad abarca al menos un dominio y
posiblemente sus subdominios, si estos últimos no son delegados a otras zonas de
autoridad.

Entendiendo las partes de un nombre de dominio.

Un nombre de dominio usualmente consiste en dos o más partes (técnicamente


etiquetas), separadas por puntos cuando se las escribe en forma de texto. Por ejemplo,
www.mohamedalid.org o es.Wikipedia.org

- A la etiqueta ubicada más a la derecha se le llama dominio de nivel superior. Como


"org" en www.mahomedalid.org o "es" en www.Wikipedia.es

- Cada etiqueta a la izquierda especifica una subdivisión o subdominio.

- Finalmente, la parte más a la izquierda del dominio suele expresar el nombre de la


máquina (en inglés hostname). El resto del nombre de dominio simplemente especifica
la manera de crear una ruta lógica a la información requerida. Por ejemplo, el dominio
es.Wikipedia.org tendría el nombre de la máquina "es", aunque en este caso no se
refiere a una máquina física en particular.

El DNS consiste en un conjunto jerárquico de servidores DNS. Cada dominio o


subdominio tiene una o más zonas de autoridad que publican la información acerca del
dominio y los nombres de servicios de cualquier dominio incluido. La jerarquía de las
zonas de autoridad coincide con la jerarquía de los dominios. Al inicio de esa jerarquía
se encuentra los servidores raíz: los servidores que responden cuando se busca
resolver un dominio de primer y segundo nivel...
DNS en el mundo real.

Los usuarios generalmente no se comunican directamente con el servidor DNS: la


resolución de nombres se hace de forma transparente por las aplicaciones del cliente
(por ejemplo, navegadores, clientes de correo y otras aplicaciones que usan Internet).
Al realizar una petición que requiere una búsqueda de DNS, la petición se envía al
servidor DNS local del sistema operativo. El sistema operativo, antes de establecer
ninguna comunicación, comprueba si la respuesta se encuentra en la memoria caché.
En el caso de que no se encuentre, la petición se enviará a uno o más servidores DNS.

La mayoría de usuarios domésticos utilizan como servidor DNS el proporcionado por el


proveedor de servicios de Internet. La dirección de estos servidores puede ser
configurada de forma manual o automática mediante DHCP. En otros casos, los
administradores de red tienen configurados sus propios servidores DNS.

En cualquier caso, los servidores DNS que reciben la petición, buscan en primer lugar si
disponen de la respuesta en la memoria caché. Si es así, sirven la respuesta; en caso
contrario, iniciarían la búsqueda de manera recursiva. Una vez encontrada la respuesta,
el servidor DNS guardará el resultado en su memoria caché para futuros usos y
devuelve el resultado.

Jerarquía DNS.

El espacio de nombres de dominio tiene una estructura arborescente. Las hojas y los


nodos del árbol se utilizan como etiquetas de los medios. Un nombre de dominio
completo de un objeto consiste en la concatenación de todas las etiquetas de un
camino. Las etiquetas son cadenas alfanuméricas (con '-' como único símbolo
permitido), deben contar con al menos un carácter y un máximo de 63 caracteres de
longitud, y deberá comenzar con una letra (y no con '-'). Las etiquetas individuales
están separadas por puntos. Un nombre de dominio termina con un punto (aunque
este último punto generalmente se omite, ya que es puramente formal).
Un nombre de dominio debe incluir todos los puntos y tiene una longitud máxima de
255 caracteres.

Un nombre de dominio se escribe siempre de derecha a izquierda. El punto en el


extremo derecho de un nombre de dominio separa la etiqueta de la raíz de la jerarquía
(en inglés, root). Este primer nivel es también conocido como dominio de nivel superior
(TLD).

Los objetos de un dominio DNS (por ejemplo, el nombre del equipo) se registran en un
archivo de zona, ubicado en uno o más servidores de nombres.

Tipos de servidores DNS.

- Primarios: Guardan los datos de un espacio de nombres en sus ficheros

- Secundarios: Obtienen los datos de los servidores primarios a través de una


transferencia de zona.

- Locales o Caché: Funcionan con el mismo software, pero no contienen la base de


datos para la resolución de nombres. Cuando se les realiza una consulta, estos a su vez
consultan a los servidores secundarios, almacenando la respuesta en su base de datos
para agilizar la repetición de estas peticiones en el futuro.

Tipos de resolución de nombres de dominio.

Existen dos tipos de consultas que un cliente puede hacer a un servidor DNS:


- Recursiva
- Iterativa

En las consultas recursivas, consisten en la mejor respuesta que el servidor de


nombres pueda dar. El servidor de nombres consulta sus datos locales (incluyendo su
caché) buscando los datos solicitados.

En las consultas iterativas, el servidor no tiene la información en sus datos locales, por


lo que busca un servidor raiz y repite el mismo proceso básico (consultar a un servidor
remoto y seguir a la siguiente referencia) hasta que obtiene la respuesta a la pregunta.

El proceso de resolución normal se da de la siguiente manera:

1. El servidor A recibe una consulta recursiva desde el cliente DNS.


2. El servidor A envía una consulta iterativa a B.
3. El servidor B refiere a A otro servidor de nombres, incluyendo a C.
4. El servidor A envía una consulta iterativa a C.
5. El servidor C refiere a A otro servidor de nombres, incluyendo a D.
6. El servidor A envía una consulta iterativa a D.
7. El servidor D responde.
8. El servidor A regresa la respuesta al resolver.
9. El resolver entrega la resolución al programa que solicitó la información.

Tipos de registros DNS.

- A = Address – (Dirección) Este registro se usa para traducir nombres de hosts a
direcciones IP.
- CNAME = Canonical Name – (Nombre Canónico) Se usa para crear nombres de hosts
adicionales, o alias, para los hosts de un dominio. Es usado cuando se estan corriendo
multiples servicios (como ftp y web server) en un servidor con una sola direccion ip.
Cada servicio tiene su propia entrada de DNS (como ftp.ejemplo.com. y
www.ejemplo.com.). Esto también es usado cuando corres múltiples servidores http,
con diferente nombres, sobre el mismo host.
- NS = Name Server – (Servidor de Nombres) Define la asociación que existe entre un
nombre de dominio y los servidores de nombres que almacenan la información de
dicho dominio. Cada dominio se puede asociar a una cantidad cualquiera de servidores
de nombres.
- MX (registro) = Mail Exchange – (Registro de Intercambio de Correo) Asocia un
nombre de dominio a una lista de servidores de intercambio de correo para ese
dominio.
- PTR = Pointer – (Indicador) También conocido como 'registro inverso', funciona a la
inversa del registro A, traduciendo IPs en nombres de dominio.
- SOA = Start of authority – (Autoridad de la zona) Proporciona información sobre la
zona.
- HINFO = Host INFOrmation – (Información del sistema informático) Descripción del
host, permite que la gente conozca el tipo de máquina y sistema operativo al que
corresponde un dominio.
- TXT = TeXT - ( Información textual) Permite a los dominios identificarse de modos
arbitrarios.
- LOC = LOCalización - Permite indicar las coordenadas del dominio.
- WKS - Generalización del registro MX para indicar los servicios que ofrece el dominio.
Obsoleto en favor de SRV.
- SRV = SeRVicios - Permite indicar los servicios que ofrece el dominio. RFC 2782
- SPF = Sender Policy Framework - Ayuda a combatir el Spam. En este registro se
especifica cual o cuales hosts están autorizados a enviar correo desde el dominio dado.
El servidor que recibe consulta el SPF para comparar la IP desde la cual le llega, con los
datos de este registro.

DNS (Domain Name System).

DNS (acrónimo de Domain Name System) es una base de datos distribuida y


jerárquica que almacena la información necesaria para los nombre de dominio.
Sus usos principales son la asignación de nombres de dominio a direcciones IP y la
localización de los servidores de correo electrónico correspondientes para cada
dominio. El DNS nació de la necesidad de facilitar a los seres humanos el acceso hacia
los servidores disponibles a través de Internet permitiendo hacerlo por un nombre,
algo más fácil de recordar que una dirección IP.

Los Servidores DNS utilizan TCP y UDP en el puerto 53 para responder las consultas.
Casi todas las consultas consisten en una sola solicitud UDP desde un Cliente DNS
seguida por una sola respuesta UDP del servidor. TCP interviene cuando el tamaño de
los datos de la respuesta exceden los 512 bytes, tal como ocurre con tareas como
transferencia de zonas.

Bind (Berkeley Internet Name Domain).

BIND (acrónimo de Berkeley Internet Name Domain) es una implementación del


protocolo DNS.

El Servidor DNS BIND es ampliamente utilizado en la Internet (99% de los servidores


DNS) resultando robusto, fiable y estable.

FQDN (acrónimo de Fully Qualified Domain Name) es el nombre completo de un host


en la red.

La longitud máxima de un FQDN es de 255 bytes, con una restricción adicional de 63


bytes para cada etiqueta dentro del nombre del dominio. Solo se permiten los
caracteres A-Z de ASCII, dígitos y el carácter «-». No se distinguen mayúsculas y
minúsculas. El primer carácter de un nombre FQDN debe ser obligatoriamente un
carácter alfabético (a-z).

El nombre FQDN se resuelve de derecha a izquierda para encontrar su dirección IP


asociada. Los diferentes niveles se separan por puntos. El nombre más a la izquierda es
el nombre específico de la máquina.
NIC (Network Information Center).

NIC (acrónimo de Network Information Center o Centro de Información sobre la Red)


es una institución encargada de asignar los nombres de dominio en Internet, ya sean
nombres de dominio genéricos o por países, permitiendo personas o empresas montar
sitios de Internet mediante a través de un ISP mediante un DNS. Técnicamente existe
un NIC por cada país en el mundo y cada uno de éstos es responsable por todos los
dominios con la terminación correspondiente a su país.

Consultas DNS

Las consultas que admite un servidor DNS pueden ser de dos tipos:

 recursivas: las habituales. En este caso todo el trabajo lo realiza el servidor DNS
al que se le consulta.

 iterativa: o mejor dicho, no recursivas. En este caso el cliente debe seguir las
indicaciones del servidor en vez de esperar de forma pasiva a recibir una
respuesta de éste.

Los servidores raíz sólo aceptan consultas no recursivas, pues en caso contrario todo el
mundo los configuraría como su servidor DNS yno podrían soportar la carga de
trabajo.

El proceso de resolución normal se podría dar de la siguiente manera:

1. El servidor A recibe una consulta recursiva desde el cliente DNS.


2. El servidor A envía una consulta iterativa a B, normalmente un servidor raíz.
3. El servidor B refiere a A a otro servidor de nombres, dándole una lista que incluye a
un servidor C.
4. El servidor A envía una consulta iterativa a C.
5. El servidor C refiere a A a otro servidor de nombres, dándole una lista que incluye a
un servidor D.
6. El servidor A envía una consulta iterativa a D.
7. El servidor D responde.
8. El servidor A regresa la respuesta al resolver.
9. El resolver entrega la resolución al programa que solicitó la información.

Podemos solicitar una transferencia de zona completa (todos los registros del DNS
referentes a un dominio usando el comando dig:

dig iescierva.net axfr

En Windows sólo disponemos del comando nslookup y es todo mucho más intuitivo.
Usando ndlookup sólo hay que hacer a continuación:

server ns.example.com (the target DNS server)


set type=any (to get all types of DNS records)
ls -d example.com (do the actual transfer)
Dominios

Un nombre de dominio o comúnmente dominio es un nombre identificativo de un host


conectado a Internet. Dicho nombre es más fácil de recordar que su correspondiente
dirección IP.

El sistema de nombres de dominio tal y como lo conocemos se creó en 1983. En 1987


se modificó su especificación, que queda recogida en los RFC's 1034 y 1035.

Los nombres de dominio pueden dividirse en dos grandes grupos:

 Dominios genéricos o gTLD (generic Top Level Domain). Como los .com, .gov
(gobierno de EEUU), .edu (para educación), .org (organismos sin ánimo de
lucro), etc
 Dominios geográficos o ccTLD (country code Top Level Domain).
Como .es, .fr, .uk, .it, .de o .eu

La organización que controlaba inicialmente los nombres de dominio era IANA. Dicha


entidad se encuentra incluso hoy día bajo el control de los EEUU. Gestiona los
servidores raíz que gobiernan el Sistema de Nombres de Dominio de Internet. IANA
gestiona también, entre otras cosas, el conjunto global de direcciones de Internet (IP y
ASN) y los distribuye entre los cinco registradores regionales de Internet (RIR).

En 1998 y tras controversia por el intento de EEUU de mantener el control sobre los
organismos que regían Internet se creó ICANN, que se ha quedado con la mayoría de
funciones que antes tenía IANA. IANA mantiene aún el control sobre los root servers y
algunos dominios como el .com.

Aún hoy día se hace referencia indistintamente a IANA e ICANN.

Subdominios

Un dominio de nivel inferior a otro dado se dice que es un subdominio. Es decir, un


dominio de segundo nivel es un subdominio de su correspondiente dominio de primer
nivel, un dominio de tercer nivel es subdominio de su correspondiente dominio de
nivel 2, etc.

URL

Una URL (Uniform Resource Locator) no es lo mismo que un nombre de dominio. Es


habitualmente más extenso y lo incluye normalmente. Es mejor ilustrarlo con un
ejemplo. Así, esta misma página que estamos viendo corresponde a:

http://moodle.iescierva.net/mod/page/view.php?id=11385

pero su dominio es tan sólo: iescierva.net


HTTP

¿Qué es HTTP?

HTTP es el acrónimo de Hyper-Text Transfer Protocolo (Protocolo de transferencia


de hyper-texto) que se emplea en las comunicaciones de la World Wide Web (www). En
su origen fue desarrollado en el CERN como un mecanismo para publicar avances en
investigación.

Existen muchos RFCs que especifican su funcionamiento, como el RFC 7231 que


obsolece al 2616.

Es lo que se conoce como un protocolo de la capa de aplicación, y se transmite sobre


el protocolo TCP  (El protocolo que permite que dos servidores se conecten e
intercambien datos entre sí, y se asegura de que los paquetes han sido entregados sin
errores).  

Se usa no sólo para transmitir documentos de hipertexto (HTML), sino que además, se
usa para transmitir imágenes o vídeos, o enviar datos o contenido a los servidores,
como en el caso de los formularios de datos. 

En la versión del protocolo HTTP/1.0, habría una conexión TCP por cada
petición/respuesta intercambiada, presentando esto dos grandes inconvenientes: abrir
y crear una conexión requiere varias rondas de mensajes y por lo tanto resultaba lento.
Esto sería más eficiente si se mandaran varios mensajes.

Para atenuar estos inconvenientes, la versión del protocolo HTTP/2  fue más allá y usa
multiplexación de mensajes sobre una única conexión, siendo así una comunicación
más eficiente.

Todavía hoy se sigue investigando y desarrollando para conseguir un protocolo de


transporte más conveniente para el HTTP. Por ejemplo, Google está experimentado
con QUIC, que se apoya en el protocolo UDP y presenta mejoras en la fiabilidad y
eficiencia de la comunicación. 

¿Cómo funciona HTTP?

El servicio se basa en la arquitectura cliente-servidor. Al software cliente o user-agent


se encarga de enviar una petición de algún recurso a un servidor, que se lo facilitará si
lo tiene disponible. Los recursos reciben el nombre de URL o Uniform Resource Locator.
1. El usuario introduce en el navegador la dirección de la página que desea

2. Abre una conexión TCP: la conexión TCP se usará para hacer una petición, o
varias, y recibir la respuesta. 

3. El navegador envía la solicitud, es decir, la petición HTTP, al servidor web que


administre el dominio. Normalmente, la solicitud del cliente dice algo así como
“Envíame este archivo”, pero también puede ser simplemente “¿Tienes este
archivo?”.

4. El servidor web recibe la solicitud HTTP, busca el archivo en cuestión y envía en


primer lugar una cabecera o header. Esta cabecera le comunica al cliente,
mediante un código de estado, el resultado de la búsqueda. 

5. Si se ha encontrado el archivo solicitado y el cliente ha solicitado recibirlo (y no


solo saber si existe), el servidor envía, tras el header, el message body cuerpo
del mensaje

6. El navegador lee la respuesta enviada por el servidor y lo interpreta

Cookies

HTTP es un protocolo sin estado, es decir, HTTP no almacena información sobre el


estado de una conexión. Si se desea conocer el estado de una conexión es preciso
utilizar un elemento extra: las cookies. 

Una cookie es una pequeña pieza de datos que un servidor envía al navegador web del
usuario. El navegador guarda estos datos y los envía de regreso junto con la nueva
petición al mismo servidor. 
Las cookies permiten recordar la información de estado en vista a que el protocolo
HTTP es un protocolo sin estado.

Las cookies se utilizan principalmente con tres propósitos:

Gestión de Sesiones

Inicios de sesión, carritos de compras, puntajes de juegos o cualquier otra cosa que el
servidor deba recordar

Personalización

Preferencias de usuario, temas y otras configuraciones

Rastreo

Guardar y analizar el comportamiento del usuario

Las cookies se usaron una vez para el almacenamiento general del lado del cliente. Si
bien esto era legítimo cuando eran la única forma de almacenar datos en el cliente, hoy
en día se recomienda preferir las API de almacenamiento modernas. 

Las cookies se envían con cada solicitud, por lo que pueden empeorar el rendimiento
(especialmente para las conexiones de datos móviles). 

Las APIs modernas para el almacenamiento del cliente son la Web storage
API (localStorage y sessionStorage) e IndexedDB.

La diferencia es que localStorage y sessionStorage no se envían nunca al servidor en la


petición HTTP, sino que queda siempre en el lado del cliente.

Se recomienda su uso si la información la necesita el cliente y no el servidor. En el caso


de que sea el servidor el que necesite la información se usará las cookies.

HTTP VS HTTPS

HTTPS utiliza una combinación de dos protocolos (HTTP+SSL/TLS) que hace que
cualquier tipo de información que se transmita en la red sea cifrada y nadie pueda
acceder a ella, únicamente navegador y servidor web. Y para ello es necesario que tu
web tenga instalado un Certificado SSL.

Este certificado de seguridad es el encargado de cifrar o encriptar las conexiones entre


el navegador y servidor web impidiendo que nadie pueda interceptar la información
que se transfiere entre ambos. 

Los navegadores a menudo usan el tipo MIME (y no la extensión de archivo) para


determinar cómo procesará un documento;
El servidor más utilizado a nivel mundial en cuanto a cantidad de hosts que lo utilizan
es Apache, actualmente en su versión 2 (Apache2). Apache es un servidor
multiplataforma, aunque nació para Unix/Linux. Sin embargo nginx está en menor
número de hosts pero soporta más tráfico ya que soporta webs tipo twitter y
semejantes. Microsoft tiene su propio servidor web: IIS o Internet Information Server.

La parte más conocida del servicio http son las páginas webs. Están escritas en lenguaje
HTML.

Para hacer webs dinámicas se usan otros lenguages como:

 PHP: el más usado y conocido. Se trata de un lenguaje que se ejecuta en el lado


del servidor y genera código HTML que puede ser personalizado para cada
petición. Normalmente se apoya en una base de datos que suele ser MySQL por
su velocidad.

 ASP: semejante a PHP pero es un estándar propietario de Microsoft.

 JAVA: Es un lenguaje muy empleado no sólo en webs, sino para multitud de


aplicaciones. Su principal característica es que necesita un intérprete, que es la
máquina virtual de JAVA. Esto lo hace más lento que otros lenguajes pero
tremendamente portable (se puede usar en multitud de dispositivos sin
modificar el código). El cliente debe tener instalada la máquina virtual de JAVA,
lo que hace que la mayor parte del trabajo lo realiza el cliente, al contrario de lo
que ocurre con PHP.

 JavaScript: también es interpretado por el cliente. Se usa casi exclusivamente en


páginas web, no como JAVA.

Servicio FTP

Servicio de Transferencia de Ficheros

El protocolo FTP (File Transfer Protocol) se utiliza para poder compartir ficheros de
forma más o menos fiable. Utiliza los servicios del nivel de transporte, en concreto del
protocolo TCP para establecer dos tipos de conexiones:

 De datos: sobre el puerto 20. Se usa para la transferencia de ficheros en sí


misma
 De control: sobre el puerto 21. Se emplea para mostrar los ficheros disponibles,
navegar por los diferentes directorios, etc

El servicio FTP está basado en arquitectura cliente-servidor. El cliente inicia la conexión


dirigiéndose al puerto 21 del server.
Existe también el servicio TFTP o Trivial FTP (o FTP ligero), que usa UDP en lugar de TCP
como protocolo del nivel de transporte. Al utilizar UDP es un servicio más inseguro (en
cuanto a la fiabilidad de que la comunicación tenga lugar) pero más rápido. TFTP utiliza
el puerto 69. El TFTP se emplea mucho para guardar ficheros de configuración de
dispositivos, como pueden ser switches. También se usa en conjunción con el servicio
DHCP para proveer de arranque por red mediante PXE.

Modo de conexión

 Activo: es el modo por defecto. El cliente inicia la comunicación llamando al


puerto 21 del server y el server es el que inicia la transferencia de datos. Cuando
el cliente intenta conectar con el servidor FTP abre uno de sus puertos
(llamémosle puerto F) para iniciar la conversación con el puerto 21 del server y
se pone a la escucha en el puerto siguiente (puerto F+1). El servidor contesta al
puerto F e inicia la transferencia de datos desde su puerto 20 al puerto F+1 del
cliente, que se encuentra ya dispuesto a recibir. Se llama activo porque es el
servidor el que inicia la transferencia de datos.
 Pasivo: El cliente inicia la conexión con el servidor FTP enviando un comando
PASV al puerto 21 del servidor. Al pasar a modo pasivo el cliente pide al
servidor que abra un puerto (aleatorio y superior a 1024). Es entonces cuando el
cliente abre la conexión hacia el puerto que abre el servidor para iniciar la
transferencia de datos utilizando un puerto diferente al 20. Este modo se usa
cuando el server está tras un cortafuegos que le impide iniciar conexiones hacia
puertos superiores al 1024.

Modo activo

Modo pasivo
Conexión

En la actualidad prácticamente todos los Sistemas Operativos están provistos de un


cliente FTP que permite conectarse a un servidor.

Al introducir un nombre de usuario el servidor FTP nos sitúa en el directorio que dicho
usuario tenga configurado como home FTP. Ese directorio puede ser diferente para
cada usuario.

Muchos servidores FTP permiten conexiones anónimas, para las cuales se emplea el
usuario anonymous. Al hacer uso del usuario anonymous hay dos posibilidades: que la
password esté vacía o que al introducir como user anonymous se muestre información
acerca de la password a utilizar. Este segundo método es un poco más seguro ya que
dificulta que un robot  busque servicios FTP a los que conectarse. De todas formas la
información accesible mediante usuario anonymous no debería nunca ser relevante.

Tipos de transferencia

 ASCII: el sl tipo por defecto. Es apropiado para ficheros de texto.


 binary: es el idóneo para ficheros multimedia.

Correo electrónico

Los protocolos empleados para el correo electrónico son protocolos con estado, esto
es, responden de diferente forma dependiendo del estado de la conexión.

El servicio de correo electrónico es un servicio escrito y diferido, ya que la


comunicación puede no ser leída al instante por el receptor y de igual forma puede
responder al cabo de bastante tiempo.

Es un servicio NO CONFIABLE. No se puede garantizar que el mensaje llegue al


destinatario. Es posible incluso que el buzón del destinatario se encuentra saturado.
Aún así, normalmente un servidor de correo informará si no ha podido entregar un
mensaje.

Al enviar un correo electrónico, el mensaje se enruta desde el servidor de origen al


servidor de correo electrónico del receptor. El servidor del correo electrónico
o MTA (Mail Transport Agent o Agente de Transporte de Correo) es el responsable de
transportar los mensajes de correo hasta el MTA del destinatario. En Internet, los MTA
se comunican entre sí usando el protocolo SMTP, por lo que comúnmente se les
conoce como servidores SMTP (o servidores de correo saliente).

El MTA del destinatario entrega el correo electrónico al servidor del correo entrante
o MDA (Mail Delivery Agent o Agente de Entrega de Correo o de Recogida de Correo),
que es quien guarda el correo electrónico hasta que lo solicite el usuario final.

La descarga y/o consulta de correo se realiza a través de un MUA o Mail User Agent
(Agente de Usuario de Correo). Es habitual referirse al MUA como cliente de correo
electrónico, aunque esto se reserva más para los MUA que se instalan en ordenadores
cliente (no para la consulta del correo vía web). Ejemplos de clientes de correo
electrónico son: Mozilla Thunderbird (Icedove en Debian), Microsoft Outlook, Outlook
Express, Eudora Mail, etc.

Un navegador no es un cliente de correo web. Cuando usamos un navegador para


consultar nuestro correo nos estamos conectando a una página web que a su vez se
conecta al servidor de correo. Nuestro PC utiliza el protocolo HTTP para consultar la
web y es el servidor web el que usa POP3 o IMAP para recoger el correo y mostrarlo en
la web.

El protocolo más empleado para envío de correo es SMTP.

Para recogida se opta por POP (concretamente POP3) o por IMAP. Por defecto POP se
descarga el correo y los borra del servidor mientras que IMAP deja copia de los correos
en el servidor hasta que el cliente expresamente solicita que se borren. Sin embargo
este comportamiento depende hoy día de la configuración del servidor de correo, por
lo que no debemos considerarlo como un comportamiento estándar del servicio.

 El protocolo SMTP utiliza por defecto el puerto 25, salvo cuando se emplea
sobre SSL en cuyo caso el puerto reservado a tal fin es el 587.
 IMAP utiliza el puerto 143 salvo cuando funciona sobre SSL. En este caso tiene
reservado el 993 según los RFCs.
 POP3 emplea el puerto 110. Si se emplea sobre SSL se suele poner en el 995,
puerto reservado a tal fin en los RFCs.
El servidor de correo electrónico es uno de los más preocupantes en cuanto a su
seguridad. Es muy atractivo para los spammers, por lo que debe ser protegido
concienzudamente. Normalmente se incorpora una capa SSL o TLS para encriptar la
comunicación.

El spam consiste en el envío de mensajes no deseados y no solicitados, en la mayoría


de las ocasiones de remitente anónimo, desconocido o directamente falso.

Origen del término spam: Originalmente la palabra spam surgió como abreviatura de
“spiced ham” (jamón con especias), y fue la marca usada por la empresa charcutera
estadounidense Hormel Foods en 1957 cuando lanzó al mercado su nuevo producto de
carne. Durante la Segunda Guerra Mundial lo usaron como alimento los soldados
británicos y soviéticos. El grupo británico de humoristas Monty Python se burló de él en
una famosa escena cómica que proporcionó la fama definitiva al término: cuatro
vikingos leen un menú que ofrece muchos platos pero todos contienen SPAM y
empiezan a gritar la palabra: "¡Al rico SPAM!". De ahí vino la asociación con una cosa
abundante que nadie quiere.

El formato estándar de una dirección de corrreo electrónico es:

usuario@dominio

El uso de la arroba se debe a que significa at, por lo que alumno01@iescierva.net


significaría el usuario alumno01 en iescierva.net.

AMPLIACIÓN

Un correo electrónico consta de dos partes:

 Encabezado: donde están los datos del correo electrónico como el remitente, el
destinatario, la fecha y hora del mismo, etc
 Cuerpo: la información que se envía propiamente dicha.

Algunos de los campos del encabezado de un correo electrónico son:

 Date: fecha del correo. No se suele mostrar al usuario. La ponen los MTA.
 To: Indica a qué dirección o direcciones de correo va dirigido el mensaje
 CC: (Copia Carbón) Destinatarios a los que se les envía una copia del mensaje,
pero el mensaje no iba dirigido expresamente para ellos.
 BCC: Destinatarios a los que se les envía el mensaje, pero de forma que cada
destinatario no sepa quién más ha recibido el mail. Si el destinatario pulsa
Responder a todos (u opción equivalente) sólo el emisor o los incluidos en el
campo CC recibirán la respuesta; no así los incluidos en BCC. En castellano CCO.
 reply-to: sirve para especificar una dirección de respuesta diferente a la cual
envió el mail.

En el cuerpo destaca el Subject (asunto): para incluir una descripción breve del
contenido.
Entre el software para servidores de correo electrónico podemos citar:

 Sendmail: quizás el más importante aunque el más complejo de todos.


 Postfix
 exim: en realidad es un MTA que suele venir instalado en muchas distribuciones
Linux para gestionar el correo local, usado para que las aplicaciones notifiquen
eventos y logs a los usuarios, principalmente al root.
 Qmail
 Dovecot: gestiona principalmente protocolos de recogida de correo, como
IMAP y POP3.
 Microsoft Exchange: para instalar en servidores Windows. Requiere licencia de
pago.

MIME (Multipurpose Internet Mail Extension): Como indica su propio nombre, este
estándar se definió para ser usado con el correo electrónico aunque hoy día se emplea
en muchos otros servicios, también en http. En este estándar se definen los tipos de
letra, los formatos y otras características.

Proxy

Un proxy es básicamente un intermediario que recibe peticiones de un


cliente (normalmente peticiones dirigidas a un servidor web) y las reenvía al servidor
al que van dirigidas, de forma que de cara al servidor de destino es el proxy quien
le hace la petición. Luego el servidor proxy reenvía la respuesta al cliente.

Los motivos para usar un proxy pueden ser diversos, pero básicamente son dos:

 Cachear contenidos: Cuando un proxy reenvía una petición de un cliente,


se guarda normalmente una copia de la respuesta, de tal forma que si otro
cliente realiza la misma petición, el propio proxy puede darle la respuesta. De
esta forma se reduce el tráfico en la red y/o las conexiones a Internet.
 Seguridad: Es una forma de controlar los accesos hacia el exterior. Se emplea
mucho en hoteles.

Un proxy transparente es un proxy que reenvía las peticiones que recibe el gateway.
Normalmente el gateway es él mismo. De esta forma el usuario no tiene que tener
conocimiento de la existencia del proxy. Hay discusiones morales respecto a la
conveniencia de emplear un proxy transparente.

Un proxy guarda registro de las conexiones de los usuarios. Esto puede ser importante
ya que cada organismo es responsable de su conexión a Internet y del uso que se hace
de ella, por lo que puede servir para realizar un análisis a posteriori en caso de que se
sospeche de que se puede haber cometido algún delito.

Al guardar registros de las conexiones también se puede emplear para realizar


estadísticas de los sitios más visitados, por ejemplo.

El software para proxy más empleado es Squid. Squid se usa muchas veces en
conjunción con un filtro de sitios y contenidos, como dansguardian. Un servidor proxy
no es un filtro de contenidos en sí, aunque con él se pueda impedir el acceso a
determinados sitios. Si se desea filtrar se debe emplear otro software como
dansguardian.

El puerto por defecto para el proxy es el 3128, aunque para proxy transparente se suele
emplear el 8080.

El servidor proxy cachea contenidos que se transfieren en conexiones sin encriptar. Los
contenidos que se transfieren mediante https, por ejemplo, no los puede cachear un
proxy, obviamente.

LDAP

Lightweight Directory Access Protocol, más comúnmente conocido como


LDAP es un servicio de directorio. Un servicio de directorio almacena información de
objetos de forma parecida a como lo realizaría una BD. Sin embargo un servicio de
directorio es más simple. Entre sus características podríamos destacar que no necesita
transacciones ya que un servicio de directorio está pensado para almacenar
información más estática (no tan cambiante) que la que se suele almacenar en una
BD.

LDAP también es considerado como un conjunto de protocolos abiertos usados


para acceder a información almacenada en servidores de directorio a través de la
red. Está basado en el estándar X.500 para compartir directorios, pero es menos
complejo e intensivo en el uso de recursos. Por esta razón, a veces se habla de LDAP
como "X.500 Lite." El estándar X.500 es un directorio que contiene información de
forma jerárquica y categorizada, que puede incluir nombres, directorios y números
telefónicos entre otras muchas cosas.

Como X.500, LDAP organiza la información en un modo jerárquico usando directorios.


Estos directorios pueden almacenar una gran variedad de información, permitiendo
que cualquiera pueda acceder a su cuenta desde cualquier máquina en la red
acreditada con LDAP.

Sin embargo, en la mayoría de los casos, LDAP se usa de manera parecida a un


directorio telefónico virtual, permitiendo a los usuarios acceder fácilmente la
información de contacto de otros usuarios. Pero LDAP va mucho más lejos que un
directorio telefónico tradicional, ya que es capaz de propagar su consulta a otros
servidores LDAP por todo el mundo, proporcionando un repositorio de información ad-
hoc global. Sin embargo, en este momento LDAP se usa más dentro de
organizaciones individuales, como universidades, departamentos del gobierno y
compañías privadas.

LDAP es un sistema cliente/servidor. La mayor ventaja de LDAP es que se puede


consolidar información para toda una organización dentro de un repositorio central.
Por ejemplo, en vez de administrar listas de usuarios para cada grupo dentro de una
organización, puede usar LDAP como directorio central, accesible desde cualquier parte
de la red. Puesto que LDAP soporta la Capa de conexión segura (SSL) y la Seguridad de
la capa de transporte (TLS), los datos confidenciales se pueden proteger de los
curiosos.

Existen diferentes implementaciones de LDAP. En el mundo Linux, aparte de soluciones


de software propietario, se dispone de OpenLDAP. En el mundo Windows el LDAP se
encuentra integrado en lo que se conoce comúnmente como el Active
Directory (conjunto de ordenadores conectados dentro de la red) o Directorio Activo,
junto a Kerberos.

NFS

NFS es el acrónimo de Network File System. Es el sistema nativo utilizado por


GNU/Linux para compartir carpetas en una red.

Mediante NFS, un servidor puede compartir directorios a través de la red. Los usuarios


pueden montar los directorios compartidos y acceder a ellos como si estuvieran en su
propio disco duro.

Los directorios remotos pueden ser montados con el mismo comando con que se
montan dispositivos del equipo: mount.

NFS usa los puertos 111 (TCP y UDP) y 2049 (TCP y UDP).

Para la instalación del servicio en distribuciones basadas en Debian:

apt install nfs-common nfs-kernel-server

En NFS se exportan los directorios que se desean compartir, indicándolos en el


fichero /etc/exports.

Los directorios se exportan en NFS en dos modos básicos:

 rw: read-write o lectura escritura. Se pueden crear, modificar y eliminar todos


los ficheros y subdirectorios situados allí.
 ro: read only o sólo lectura. Se puede acceder a la información pero ni
modificarla ni eliminarla.
Samba
Samba es un servicio que permite principalmente compartir ficheros en una red local,
aunque también puede gestionar otros dispositivos tipo archivo como puede ser
una cola de impresión. También es el nombre del protocolo asociado.

El nombre de samba surgió al buscar un nombre parecido al protocolo SMB


desarrollado por Microsoft. De esa forma se tomó el nombre de samba para referirse a
la implementación libre desarrollada en sistemas Linux. Como curiosidad samba fue
desarrollado a base de capturar tráfico con un sniffer para ver el funcionamiento del
protocolo de Microsoft.

En la actualidad se emplea el nombre de CIFS (o SMB/CIFS) para referirse a SMB.

Microsoft desarrolló SMB sobre NetBIOS inicialmente, aunque hoy día se emplea


sobre TCP/IP. Básicamente el protocolo difunde sus recursos compartidos en una red
local, informando al resto de equipos de todo lo que comparte.

Samba permite a PCs que utilizan GNU/Linux, conectarse a carpetas compartidas en


PCs con Windows y compartir carpetas con clientes Microsoft.

Los recursos que se comparten con un nombre que finaliza con un signo dólar son
recursos ocultos, que no se difunden. Por defecto Microsoft comparte con propósitos
administrativos la unidad C: (C$).

Los usuarios de sistemas Microsoft visualizan los recursos compartidos como carpetas
normales de red.

Los usuarios de GNU/Linux pueden montar en sus sistemas de archivos estas


unidades de red como si fueran dispositivos locales, o utilizar la orden smbclient para
conectarse a ellas.

Cada recurso compartido tiene diferentes permisos para su acceso por SMB o Samba,
de tal forma que los permisos resultantes son una combinación de los permisos del
directorio que se comparte con los que se otorgan mediante SMB.

NetBIOS
NetBIOS, Sistema de Entrada Salida Básica de Red es un protocolo estándar de IBM,
que permite que las aplicaciones sobre diferentes computadoras se comuniquen
dentro de una red de área local (LAN). Fue desarrollado en los años 80 para que las
aplicaciones usasen la capa de Sesión del modelo OSI. NetBIOS sobre TCP/IP envía
paquetes NetBIOS sobre TCP y UDP de la pila TCP/IP.
NetBIOS provee los servicios de sesión descriptos en la capa 5 del modelo OSI. Es un
protocolo de aplicación para compartir recursos en red. Se encarga de establecer la
sesión y mantener las conexiones. Pero este protocolo debe transportarse entre
máquinas a través de otros protocolos; debido a que por sí mismo no es suficiente para
transportar los datos en redes LAN como WAN, para lo cual debe usar otro mecanismo
de transporte (Ej: en redes LAN protocolo NetBEUI, en redes WAN protocolo TCP/IP).
Los protocolos que pueden prestar el servicio de transporte a NetBIOS son:
 IPC/IPX
 NetBEUI
 TCP/IP

Nombres NetBIOS
NetBIOS identifica a los que intervienen en una comunicación mediante nombres, el
cual esta formado por 16 caracteres alfanuméricos. Cada byte puede consistir de
cualquier valor entre 0 a 255, excepto el primer y el 15º byte que han de ser
alfanuméricos. Los nombres que tengan una longitud menor a 16 byte son
completados con espacios y ajustados a la derecha. El último campo del nombre
NetBIOS se llama subcódigo y se trata de un código hexadecimal que indica el tipo de
recurso.
Los tipos de recurso más comunes son:
00 Servicio de computadora NetBIOS. Se trata del nombre básico del cliente
NetBIOS. Toda computadora posee uno.
03 Servicio de mensajería.
06 Servidor RAS.
1B Nombre del examinador maestro de dominio. PDC
1C Registra las direcciones de hasta 25 computadoras que son controladoras del
dominio.
1D Registra un examinador maestro.
1E Registra los servidores de exploración de la red.
1F Servicio NetDDE (Intercambio Dinámico de Datos en Red).
20 Servicio servidor. El que permite compartir recursos
21 Cliente RAS
BE Agente de monitor de red
BF La herramienta monitor de red
Existen dos tipos de nombres:
1. Nombre único: es el nombre usado por una única estación en toda la red,
identifica a un host en particular; siendo la red la encargada de chequear que
cuando una estación use un nombre sea la única en hacerlo. Un ejemplo de
nombre único es el que una estación usa para conectarse y comunicarse con el
servidor, este es usualmente el nombre de la estación.
2. Nombre de grupo: es el nombre usado por muchas estaciones
simultáneamente. A este nombre de grupo pueden sumarse cualquier número
de host. Este nombre facilita el multicasting.
El espacio de nombres NetBIOS es plano, lo que significa que todos los nombres se
registran en la misma asociación. Por esta razón se derivan características de NetBIOS:
o No pueden existir dos computadoras que tengan el mismo nombre
NetBIOS, aún cuando estas computadoras pertenezcan a dominios o a
grupos de trabajo distintos.
o No puede existir un ordenador con un nombre NetBIOS usado en un
grupo de trabajo o en un dominio.
o Una red no puede tener un dominio y un grupo de trabajo con el mismo
nombre NetBIOS.
Resolución de nombres NetBIOS: nodos finales
Existen tres tipos de nodos finales, según se refleja en el antiguo RFC 1001:
 NODOS B: Broadcast
 NODOS P: Punto a Punto
 NODOS M: Modo Mixto
Los nodos B usan el broadcasting de la red local par encontrarse con uno o más
receptores; por su parte los nodos P y M se valen de los servidores soportados por
NetBIOS para comunicarse con otros nombres.
Nodos B
Estos nodos se comunican usando una mezcla de datagramas UDP y conexiones TCP.
Pueden operar con otros nodos libremente dentro de un área broadcast.
Los nodos B están limitados a la red local dado que los routers TCP/IP no transmiten el
broadcast de solicitud de nombres a otras redes. Por tal razón es que este modo no
opera con el NBNS y NBDD; sino que por el contrario cuando necesita información de
un nombre usa una lista de computadoras y direcciones almacenadas en el archivo
/etc/inethosts. Si el intento del nodo B falla, el sistema mira en este archivo para
encontrar el nombre.
Nodos P
Estos nodos son punto a punto, unicast y no transmiten el broadcast de mensajes, sino
que se confían de los servidores soportados por NetBIOS (WINS).
Nodos M
Son una combinación de los nodos P y B, ya que usa tanto el broadcast como el
unicast. De este modo primero se hace un broadcast para la solicitud de un nombre,
sino se recibe respuesta hace una solicitud al NBNS.
Si se configura con este nodo, se obtiene una respuesta lenta en el caso que el nombre
solicitado este en otra red.
Nodos H
En el RFC1001 solo se hace mención a estos tres nodos, pero de acuerdo a otra
documentación existe también este nodo H, Hybrid; que es un tipo mixto.
A la inversa de los nodos M, primero solicita un nombre al servidor de nombres y si
este no responde, hace broadcast para la solicitud del nombre. Esta es la configuración
preferida cuando se configura el soporte WINS.

Cabecera NetBIOS
Los campos en la cabecera del datagrama NetBIOS que varían son:
Flags: cuyo primer bit indica si el fragmento es el primero en una secuencia de
fragmentos. Y el bit "More" del campo Flags indica si sigue otro fragmento.
Offset: es igual a la suma de los datos NetBIOS en los fragmentos anteriores. Siendo 0
para el primer fragmento.
De acuerdo a lo anterior son dos los casos posibles que pueden presentarse:
1. Si el datagrama NetBIOS no fue fragmentado
Campo FLAGS:
FIRST: True
MORE: False
Campo OFFSET: 0
2. Si el datagrama NetBIOS fue fragmentado
1er fragmento
Campo FLAGS:
FIRST: True
MORE: True
Campo OFFSET: 0
Fragmento intermedio
Campo FLAGS:
FIRST: False
MORE: True
Campo OFFSET: suma()
Ultimo fragmento
Campo FLAGS:
FIRST: False
MORE: False
Campo OFFSET: suma()

NetBIOS en WINDOWS
NetBIOS da una apariencia uniforme a todas las redes Windows independientemente
de los protocolos que se hayan utilizado para las capas de red y transporte. Permite
compartir archivos e impresoras así como ver los recursos disponibles en Entorno de
red.
NetBIOS utiliza los puertos 137, 138 y 139. Podemos averiguar si nuestro ordenador
tiene NetBIOS activado (en Windows) utilizando el comando netstat -an. Este
comando nos informará si tenemos los tres puertos anteriores en modo LISTENING.
Métodos de resolución de nombres NetBIOS
Caché NetBIOS. Es una tabla dinámica almacenada en cada ordenador que contiene los
últimos nombres que se han resuelto por otros métodos. Esta tabla se puede visualizar
mediante el comando nbtstat –c y será consultada antes de realizar broadcasting.
Broadcasting. Se pregunta el nombre a todos los ordenadores de la red.
Archivo LMHOSTS. Es un archivo de texto, situado en cada ordenador de la red, que
contiene una lista de direcciones IP y nombres NetBIOS.
Servidor WINS. Es un ordenador que contiene una lista centralizada de direcciones IP y
nombres NetBIOS. Esta lista se crea de forma dinámica a medida que se van
conectando y desconectando ordenadores en la red.
El método de resolución que funciona en una red si no se ha configurado otro es
broadcasting. Este método resuelve los nombres de forma correcta, sin embargo
genera un elevado tráfico en la red. Podemos conocer la cantidad de nombres que se
han resuelto mediante broadcasting utilizando el comando nbtstat –r.
Podemos reducir el número de mensajes de broadcasting en una red sin necesidad de
emplear un servidor mediante la creación, en cada máquina, de una lista con todos los
nombres NetBIOS de nuestra red y sus correspondientes direcciones IP. Esta lista se
debe incluir en un archivo llamado LMHOSTS. Sigue la siguiente sintaxis:
# Ejemplo de archivo LMHOSTS
192.168.0.1 router #PRE
192.168.0.5 minerva #PRE
192.168.0.6 saturno #PRE
Si utilizamos Windows 98 o Me encontraremos un archivo de ejemplo en C:\
WINDOWS\LMHOSTS.SAM. Este archivo debemos renombrarlo para que se llame C:\
WINDOWS\LMHOSTS. En Windows NT, 2000 y posteriores versiones la ubicación de
ambos archivos es C:\WINNT\SYSTEM32\DRIVERS\ETC. Después introduciremos los
cambios necesarios mediante el Bloc de notas o cualquier otro editor de textos. Para
que los cambios comiencen a funcionar debemos escribir el comando nbtstat -R. A
continuación podemos comprobar que los nombres se han almacenado correctamente
escribiendo nbtstat -c.
Windows comprobará el archivo LMHOSTS antes de hacer un broadcasting a la red. El
comando nbtstat -r nos permite comprobar cómo no se generan nuevos mensajes a
toda la red para los nombres que hayamos incluido en LMHOSTS. El problema de este
método es su difícil mantenimiento ya que cualquier cambio se debe reflejar en todos
los ordenadores de la red. Sin embargo, se pueden buscar formas para que el archivo
LMHOSTS se actualice automáticamente desde una sola máquina (por ejemplo,
mediante un script de inicio de sesión de Windows NT o mediante la cláusula
#INCLUDE de los archivos LMHOSTS).
El método más recomendable para redes medianas y grandes es utilizar un servidor de
nombres NetBIOS. Este servidor es una máquina Windows NT o 2000 con el Servicio de
nombres de Internet para Windows (WINS) configurado. En la pestaña "Configuración
WINS" de las propiedades de TCP/IP de cada ordenador cliente tenemos que indicar la
dirección IP del servidor WINS que hayamos configurado. Cada vez que escribamos un
nombre, nuestro ordenador preguntará al servidor WINS en lugar de hacer un
broadcasting a toda la red. Un servidor de nombres asegura, además, que los equipos
mostrados en Entorno de red se corresponden con los que realmente están
funcionando en la red.
TELNET (TELecommunication NETwork)

Telnet es un servicio de conexión remota simple y también el nombre


del protocolo que emplea dicho servicio.
Sirve para iniciar sesión a distancia en una máquina remota, generalmente un server,
y trabajar sobre ella.
Telnet sólo sirve para trabajar en modo consola, sin gráficos.
Su principal inconveniente es su escasa seguridad, ya que tanto el nombre de usuario
como la password introducidos al comienzo de la sesión viajan en texto plano, al igual
que todas las comunicaciones enviadas durante la sesión.
Por si fuera poco tampoco dispone de ningún mecanismo para asegurar
la autenticidad de los hosts que se están comunicando, es decir, que no se puede saber
si el otro equipo es realmente quien dice ser o si hay otro que intercepte la
comunicación. Por este motivo es cada vez menos usado y su uso se limita a entornos
pequeños y muy controlados o a acceso a BBS (tablones de anuncios).
Por defecto el demonio Telnet escucha en el puerto 23.
El incio de una sesión se realiza utilizando la siguiente secuencia:
telnet host_al_que_conectar

Si telnet se encuentra a la escucha en un puerto difernte al 23 es preciso indicárselo:

telnet host_al_que_conectar puerto

SSH
ssh es el acrónimo de secure shell. El nombre ssh sirve para designar tanto
al protocolo ssh como al programa cliente que permite la conexión remota segura. ssh
es un protocolo del nivel de aplicación, que funciona sobre el puerto 22 de TCP.
ssh utiliza sistemas de cifrado, lo que hacen de este protocolo un sistema seguro.
Además permite múltiples opciones que lo hacen muy importante hoy en día.
ssh es un protocolo relativamente nuevo. Apareció por vez primera en 1995. En 1997
surgió la empresa SSH Communications Security, que permite el uso de ssh a
particulares, pero no a empresas, que deben pagar por su uso.
En 1999 llegó la explosión definitiva de ssh cuando surgió una implementación gratuita
de ssh, el openssh, desarrollado por OpenBSD.

Al instalar ssh (u OpenSSH) se genera un par de claves privada-pública que sirven para
identificar al servidor. Por motivos de seguridad, y si pretendemos evitar que nos
engañen con un 'man-in-the-middle' u otras técnicas semejantes, debemos llevarnos o
bien la clave pública generada, o bien su fingerprint o 'huella dactilar'.
Cuando iniciemos conexión por primera vez contra el server, éste nos presentará su
fingerprint y podremos compararlo con el que habíamos apuntado o bien con el que
generemos en ese momento si tenemos en nuestro poder su clave pública.
Para generar el fingerprint mediante una clave pública se utiliza:
ssh-keygen -lf clave_pública

Creación de clave privada - clave pública


Para crear la pareja de claves utilizo el comando ssh-keygen:

ssh-keygen -t rsa -f $HOME/claves_ssh/nombre_clave

Una versión muy simplificada puede ser:


ssh-keygen

en la que se asume que el algoritmo a usar es rsa y que el directorio para almacenar las
claves por defecto es .ssh en el home de cada usuario. También se toma como nombre
por defecto para los ficheros de claves id_rsa, pero se puede modificar.
Con esto obtengo dos claves, una privada y otra pública. La clave pública se llama igual
que la privada pero añadiendo una extensión .pub.

Si pretendemos usar este sistema de clave privada clave pública para lanzar un cron
podré dejar la passphrase en blanco.

Si quiero acceder a un servidor deberé copiar al mismo mi clave pública, empleando


por ejemplo scp, e introducirla en el directorio .ssh que se halla en el home del usuario,
dentro de un fichero llamado authorized_keys (o authorized_keys2 en algunas
versiones). Debo comprobar que el directorio .ssh tiene permisos 700 y que el fichero
authorized_keys tiene 600. Algunas versiones de ssh no conectan si los permisos son
diferentes, por motivos de seguridad.
Si no se puediese acceder hay que comprobar que en el fichero sshd_config esté
habilitado el protocolo ssh2 (opción protocol) y que la opción PubKeyAuthentication
esté puesta a yes.

Para conectar utilizando claves:


ssh -i /ruta_a_clave/archivo_de_clave_privada host
Sin embargo, la opción utilizada de dejar la passphrase del fichero de clave privada en
blanco no parece la mejor idea en cuanto a seguridad se refiere. Para enmendar este
problema podemos usar una passphrase en el momento de generar los certificados y
utilizar keychain para usarlos de forma segura. Para instalar keychain en distribuciones
Debian:
apt install keychain
Y modificamos el fichero .bash_profile para agregar la opción para usar keychain.
Primero abrimos el fichero con un editor:
vi $HOME/.bash_profile
Y agregamos lo siguiente:
/usr/bin/keychain $HOME/.ssh/id_rsa
source $HOME/.keychain/$HOSTNAME-sh
A partir de este momento al iniciar sesión se solicitarán las passphrases asociadas a las
claves agregadas para poder usarlas sin contraseña. Se debe tener una contraseña
suficientemente fuerte.
Para terminar debemos hacer que cron pueda ejecutar las tareas que dependan de esas
claves sin que pida contraseña o passphrase agregaremos la siguiente sentencia antes
de ejecutar un scp, ssh o rsync:
source $HOME/.keychain/$HOSTNAME-sh
Y modificaremos el bash_profile para que quede así:
/usr/bin/keychain --clear $HOME/.ssh/id_rsa
Para más opciones de ssh consultar el man.

NOTA: Un buen sistema para volcar la clave pública al fichero authorized_keys de otro
host puede ser:
cat ~/.ssh/clave.pub | ssh user@host 'cat - >> ~/.ssh/auhorized_keys'

Agente ssh

Un agente ssh permite almacenar las claves generadas con el comando ssh-keygen y
recordar sus passphrases para no tener que teclearlas continuamente.

Este sistema tiene dos claras ventajas:

 Es más seguro que exportar las claves públicas dejando la passphrase en blanco.
 Es más sencillo de usar.

Debemos tener corriendo el agente ssh. Esto se puede hacer mediante:


eval `ssh-agent`

Para agregar las claves al agente se emplea ssh-add. Antes de agregar claves podemos
solicitar un listado de las claves almacenadas con la opción -l:
ssh-add -l

Para agregar claves:


ssh-add clave

NOTA: si tenemos passphrase en la clave, lo cual es aconsejable, nos pedirá que la


introduzcamos para agregarla al agente. En principio sólo tendremos que hacerlo esta
vez, aunque se puede especificar un tiempo de validez con la opción -t.
También debemos asegurarnos que en el fichero de configuración del cliente ssh
(/etc/ssh/ssh_config) está habilitada la opción ForwardAgent a yes.

Ahora podremos conectar mediante ssh sin poner contraseña y sin especificar el fichero
de clave privada:
ssh host
El agente ssh funciona con todos los 'derivados' como scp, rsync, etc.

Automatización de tareas con cron

Uno de los programas más útiles en Unix es el cron. Se trata de un demonio que corre
en segundo plano y que permite ejecutar determinados comandos o tareas en la fecha
y hora que se le indique.

Las tareas a ejecutar junto con sus fechas y horas de ejecución se almacenan
normalmente en el fichero crontab.
Una línea de tarea del fichero crontab tiene el siguiente formato:
minuto hora día_del_mes mes día_de_la_semana usuario comando

En los campos de fecha/hora un asterisco (*) representa 'todos', es decir, en todos los
minutos, en todas las horas, etc.

Cada usuario tiene su propio crontab, al que accede utilizando el comando crontab -e.
Esto abre el editor de texto predeterminado y le permite agregar sus propias tareas al
cron utilizando el formato descrito anteriormente, pues sólo el root (en principio)
puede editar el /etc/crontab.

Se puede especificar qué usuarios tienen permitido ejecutar tareas mediante cron en el
fichero cron.allow y qué usuarios lo tienen prohibido en el fichero cron.deny. Además,
cuando se agrega una tarea a cron se envía un mensaje al usuario que tenga
especificado en la variable MAIL TO dentro del fichero crontab, como medida de
seguridad.

Comando rsync

El comando rsync se emplea para sincronizar ficheros y directorios dentro de un mismo


host o entre host diferentes. La sincronización es unidireccional, es decir, al realizar un
rsync, se toma como muestra el origen y se transfiere hacia el destino. También es
posible eliminar del destino los ficheros que no existan en el origen, pero si quiero una
sincronización bidireccional debería usar dos veces rsync o bien otra herramienta como
puede ser unison.

El comando rsync trabaja sobre ssh, por lo que es preciso que exista un servidor ssh
(openssh-server, por ejemplo) en el host remoto para poder emplearlo. Tiene por tanto
las limitaciones de ssh: se puede ejecutar desde el ordenador local hacia un remoto y
viceversa, pero no entre dos hosts remotos.

Opciones típicas:

 -a: es un compendio de muchas opciones, como que se realice copia recursiva


de directorios entre otras. Para más información ver el man de rsync.
 -v: modo verbose o explicativo.
 --delete: para eliminar en el destino los ficheros que no existan en el origen.

Ejemplos de uso de rsync:

 rsync -av origen destino


 rsync -av --delete usuario@host:origen destino_local
Al funcionar sobre ssh se pueden emplear certificados para realizar sincronizaciones sin
necesidad de utilizar las tediosas passwords. Para utilizar certificados se puede emplear:

rsync -av -e 'ssh -i /ruta/clave privada' origen_de_datos destino_de_datos

Se puede utilizar rsync para realizar copias de seguridad automatizadas con cron si
empleamos certificados sin clave para realizar la conexión.

También podría gustarte