Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nivel de transporte
La función básica de la capa de transporte es aceptar datos de la capa superior,
dividirlos en unidades más pequeñas si es necesario y pasarlos a la capa de red.
Además, si el servicio es Orientado a Conexión, debe asegurar que todos los pedazos
lleguen correctamente al nivel de transporte del receptor.
Por otro lado, si es costoso crear o mantener una conexión de red, la capa de
transporte puede multiplexar varias conexiones de transporte en la misma conexión de
red para reducir el costo.
En este caso se necesita una manera de saber qué mensaje pertenece a qué conexión.
El encabezado de transporte, es una opción para colocar esta información.
NOTA: En el gráfico anterior no están representados todos los estados, sólo los que se
han considerado más significativos. Por ejemplo, un equipo en el estado FIN_WAIT1
que reciba un FIN del otro extremo pasará al estado CLOSING.
Otro diagrama explicativo de los estados de una conexión TCP sería el que
reproducimos aquí:
UDP es un protocolo de transporte simple no orientado a la conexión, que
realiza las funciones de interfaz entre las capas superiores y de red. UDP
consigue que cuando un datagrama llega a su destino, se determine a qué
aplicación de las existentes en la máquina se debe entregar la información
contenida en él.
Captura de tráfico de una conexión y desconexión a un sistema de Base de Datos de
MySQL
En la siguiente imagen se aprecian los bits de SYN enviados para iniciar la conexión y
los bits de FIN que indican el fin de la misma. También pueden apreciarse los bits PUSH
para indicar que se procese lo que se ha recibido además de los omnipresentes bits
ACK:
TCP vs UDP
TCP UDP
Confiable No confiable
No Orientado a
Orientado a Conexión
Conexión
Control de flujo mediante mecanismo de ventana deslizante
No control de flujo
(windowing)
Secuenciamiento No secuenciamiento
ACK no ACK
* Abierto: Acepta conexiones. Hay una aplicación escuchando en este puerto. Esto no
quiere decir que se tenga acceso a la aplicación, sólo que hay posibilidad de
conectarse.
* Cerrado: Se rechaza la conexión. Probablemente no hay aplicación escuchando en
este puerto, o no se permite el acceso por alguna razón. Este es el comportamiento
normal del sistema operativo.
* Filtrado (o Bloqueado o Sigiloso): No hay respuesta. Este es el estado ideal para un
cliente en Internet, de esta forma ni siquiera se sabe si el ordenador está conectado.
Normalmente este comportamiento se debe a un cortafuegos de algún tipo, o a que el
ordenador está apagado.
En una URL (Universal Resource Locator) los puertos se denotan con ‘:’ a continuación
del nombre de la máquina, por ejemplo http://www.alerta-antivirus.es:80/index.html
quiere decir pedir el documento ‘index.html’ mediante http conectándose al puerto 80
de este servidor. Como 80 es el como es el puerto por defecto para http se puede
omitir. Si se pone 'a la escucha' un servicio en un puerto que no sea el suyo por
defecto, será imprescindible indicarlo.
Socket
netstat
Detección de 'intrusos' con netstat
lsof
Aunque el comando lsof muestra la información de los ficheros abiertos (ls open files),
también se puede emplear para tener una idea del número de conexiones establecidas
por un servicio.
Si no has empleado nunca lsof, ejecuta este comando como root en una terminal. Te
sorprenderá la cantidad de ficheros abiertos en el sistema.
Por ejemplo, si queremos saber las conexiones que tiene nuestro servidor web
(Apache normalmente) podemos hacer lo siguiente:
lsof -i TCP:80
La opción -i selecciona los ficheros relacionados con las conexiones que se
especifiquen. Se puede especificar un protocolo, como en el anterior ejemplo, una
dirección ip, un puerto, etc
Haciendo uso del comando wc podemos obtener el número de ficheros abiertos. wc es
un comando para contar líneas, palabras, etc. Para contar líneas se emplea la opción -l:
lsof -i TCP:22 | wc -l
Para hacer seguimiento en tiempo real se puede emplear el comando watch. watch
ejecuta el comando cada cierto tiempo que nosotros le indicamos:
watch "lsof -i TCP:443"
NAT
“NAT” es el acrónimo de Network Address Traslation, o lo que es lo mismo, traducción
de direcciones de red. Es un estándar creado por el IETF que utiliza una o varias
direcciones IP para conectar varios ordenadores a otra red (normalmente a Internet),
los cuales tiene una dirección IP completamente distinta (normalmente una IP no
válida de Internet definida por el RFC 1918). Por lo tanto, se puede utilizar para
dar salida a redes públicas a computadores que se encuentran con direccionamiento
privado o para proteger máquinas públicas.
Una pasarela NAT cambia la dirección origen en cada paquete de salida y,
dependiendo del método, también el puerto origen para que sea único. Estas
traducciones de dirección se almacenan en una tabla, para recordar que dirección y
puerto le corresponde a cada dispositivo cliente y así saber donde deben regresar los
paquetes de respuesta. Si un paquete que intenta ingresar a la red interna no existe en
la tabla de traducciones, entonces es descartado. Debido a este comportamiento, se
puede definir en la tabla que en un determinado puerto y dirección, se pueda acceder
a un determinado dispositivo, como por ejemplo un servidor web, lo que se denomina
NAT inverso o DNAT (Destination NAT).
Debido a la aparición de NAT no ha sido necesario implentar hoy día ipv6.
Funcionamiento
Cuando un cliente en la red interna contacta con un máquina en Internet, envía
paquetes IP destinados a esa máquina. Estos paquetes contienen toda la información
de direccionamiento necesaria para que puedan ser llevados a su destino. NAT se
encarga de estas piezas de información:
Dirección IP de origen (por ejemplo, 192.168.1.35)
Puerto TCP o UDP de origen (por ejemplo, 52132)
Cuando los paquetes pasan a través de la pasarela de NAT, son modificados para que
parezca que se han originado y provienen de la misma pasarela de NAT. La pasarela de
NAT registra los cambios que realiza en su tabla de estado, para así poder: a) invertir
los cambios en los paquetes devueltos, y b) asegurarse de que los paquetes devueltos
pasen a través del cortafuegos y no sean bloqueados. Por ejemplo, podrían ocurrir los
siguientes cambios:
IP de origen: sustituida con la dirección externa de la pasarela (por ejemplo,
80.80.80.80)
Puerto de origen: sustituido con un puerto no en uso de la pasarela, escogido
aleatoriamente (por ejemplo, 53136)
Ni la máquina interna ni el anfitrión de Internet se dan cuenta de estos pasos de
traducción. Para la máquina interna, el sistema NAT es simplemente una pasarela a
Internet. Para el anfitrión de Internet, los paquetes parecen venir directamente del
sistema NAT; ni siquiera se da cuenta de que existe la estación interna. Por esto se dice
que NAT es ‘transparente al usuario’.
Cuando el anfitrión de Internet responde a los paquetes internos de la máquina, los
direcciona a la IP externa de la pasarela de NAT (80.80.80.80) y a su puerto de
traducción (53136). La pasarela de NAT busca entonces en la tabla de estado para
determinar si los paquetes de respuesta concuerdan con alguna conexión establecida.
Entonces encontrará una única concordancia basada en la combinación de la dirección
IP y el puerto, y esto indica que los paquetes pertenecen a una conexión iniciada por la
máquina interna 192.168.1.35. Acto seguido realiza los cambios opuestos a los que
realizó para los paquetes salientes, y reenvía los paquetes de respuesta a la máquina
interna.
La traducción de paquetes ICMP ocurre de forma parecida, pero sin la modificación del
puerto de origen.
NAT tiene muchas formas de funcionamiento, entre las que destacan:
NAT estático: Realiza un mapeo en el que una dirección IP privada se traduce a
una correspondiente dirección IP pública de forma unívoca. Normalmente se
utiliza cuando un dispositivo necesita ser accesible desde fuera de la red
privada.
NAT dinámico: Una dirección IP privada se traduce a un grupo de direcciónes
públicas. Por ejemplo, si un dispositivo posee la IP 192.168.10.10 puede tomar
direcciones de un rango entre la IP 200.85.67.44 y 200.85.67.99.
Implementando esta forma de NAT se genera automáticamente un firewall
entre la red pública y la privada, ya que sólo se permite la conexión que se
origina desde ésta última.
Sobrecarga: La forma más utilizada de NAT, proviene del NAT dinámico ya que
toma múltiples direcciones IP privadas y las traduce a una única dirección IP
pública utilizando diferentes puertos. Esto se conoce también como PAT (Port
Address Translation - Traducción de Direcciones por Puerto), NAT de única
dirección o NAT multiplexado a nivel de puerto.
Translate: Cuando las direcciones IP utilizadas en la red privada son direcciones
IP públicas en uso en otra red. El ruteador posee una tabla de traducciones en
donde se especifica el reemplazo de éstas con una única dirección IP pública.
Así se evita los conflictos de direcciones entre las distintas redes.
Existen dos tipos de NAT:
Source NAT es cuando alteramos el origen del primer paquete: esto es, estamos
cambiando el lugar de donde viene la conexión. Source NAT siempre se hace
después del encaminamiento, justo antes de que el paquete salga por el cable.
El enmascaramiento es una forma especializada de SNAT.
Destination NAT es cuando alteramos la dirección de destino del primer
paquete: esto es, cambiamos la dirección a donde se dirige la conexión. DNAT
siempre se hace antes del encaminamiento, cuando el paquete entra por el
cable. El port forwarding (reenvío de puerto), el balanceo de carga y el proxy
transparente son formas de DNAT.
En el aspecto de seguridad, NAT presenta los siguientes benefícios:
Permite un ahorro de direcciones IP válidas. Usando NAT, el ISP puede
suministrar una única dirección IP válida para un cliente, en lugar de tener que
disponer de una cantidad de direcciones para todas sus máquinas.
Es una alternativa al subnetting. ISPs pueden dar una dirección IP única para sus
clientes, en lugar de tener que crear sub-redes, tarea que complica la
administración, además de desperdiciar direcciones IP (para cada sub-red dos
direcciones IP son desperdiciadas – una dirección que identifica la propia sub-
red, y una dirección de broadcast de sub-red).
Enmascara las direcciones internas, a las que sólo se puede acceder mediante
NAT, por lo que es sencillo implementar un bastión.
NAT44: es el nombre que se usa para indicar la traducción de una dirección Ipv4 en
otra dirección IPv4, normalmente una IP privada en una pública y viceversa. Además,
como existen 65536 puertos TCP y otros tantos UDP se pueden mapear muchos
sockets (IP+port) IPv4 de una red interna a una misma IP pública. Este enfoque ha
recibido diferentes nombres como: Dirección de red y Traducción de puertos (NAPT),
Traducción de direcciones de puerto (PAT), sobrecarga de direcciones o
enmascaramiento de IP (IP masquerading). Hoy día se considera simplemente parte de
la funcionalidad de NAT44.
• 20 FTP: Utilizado por FTP para la transmisión de datos en modo pasivo.
• 21 FTP: Los servidores FTP tienen muchas vulnerabilidades de seguridad conocidas.
Un servidor FTP mal configurado puede permitir a un atacante transferir ficheros,
troyanos, programas, etc…
• 22 SSH: Secure Shell, un sistema de telnet encriptado. Si no está bien configurado
puede permitir ataques por fuerza bruta a la cuenta de administrador de tu sistema.
• 23 Telnet: Telnet proporciona una ventana de comandos para el control remoto de
un sistema. Cualquier sistema que aparente tener una conexión Telnet atraerá sin
duda la atención de cualquier intruso.
• 25 SMTP: Los servidores SMTP (Simple Mail Transfer Protocol) tienen una larga
trayectoria de vulnerabilidades. Cualquier intruso examinará detenidamente este
puerto en tu máquina.
• 53 DNS: Servicio para traducir los nombres de servidores en direcciones IP.
• 59 DCC: Utilizado principalmente en programas de comunicación para transferir
ficheros.
• 67 y 68 DHCP: BOOTP BootStrap Protocol (Server), también usado por 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. Se trata de un protocolo de tipo cliente/servidor
en el que generalmente un servidor posee una lista de direcciones IP dinámicas y las va
asignando a los clientes conforme éstas van estando libres, sabiendo en todo
momento quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido y a quién
se la ha asignado después.
• 69 TFTP: Trivial FTP o Protocolo FTP ligero. Es más rápido que FTP, perotambién más
inseguro.
• 79 Finger: El servicio Finger es una antigua fuente de información en Internet. Se usa
frecuentemente como un punto de comienzo para un ataque, dado que un Finger
algunas veces proporciona al atacante nombres para adivinar contraseñas.
• 80 HTTP: Cada día se descubren nuevos fallos de seguridad en los servidores web. Si
no usas este servicio en tu máquina es aconsejable que lo desactives.
• 88 Kerberos: Este puerto corresponde al servicio de seguridad de Kerberos.
• 110 POP3: Este puerto corresponde al servicio de correo POP3. Como cualquier otro
puerto abierto supone un riesgo, sobre todo si se usa un servidor POP inseguro.
• 113 IDENT: Servicio de Identificación/Autorización - Los servidores de Internet como
POP, IMAP, SMTP e IRC consultan este puerto en respuesta a conexiones de clientes.
Nunca debe estar abierto dado que es una fuente tremenda de escape de información.
Los cortafuegos tradicionales lo mostrarán cerrado; sólo los más nuevos y sofisticados
son capaces de camuflar este puerto contra escaneos aleatorios a la vez que lo
muestran cerrado a las peticiones de los servidores válidos.
• 119 NNTP: Servidor de noticias.
• 135 RPC: Remote Procedure Call. Este puerto imposible de cerrar aparece en la
mayoría de los sistemas Windows. Dado que muchos servicios inseguros de Microsoft
utilizan este puerto, nunca debe permanecer abierto al exterior. Dado que es
imposible cerrarlo, necesitarás un cortafuegos para bloquearlo de los accesos
externos.
• 139 NetBIOS: NetBIOS se utiliza para compartir ficheros a través de tu entorno de
red. Si estás conectado a Internet con este puerto abierto, es probable que estés
compartiendo los datos de todo tu disco duro con todo el mundo. Ciérralo cuanto
antes.
• 143 IMAP: El IMAP (Internet Message Access Protocol) es probablemente el puerto
más escaneado después del 139 (NetBIOS). IMAP es un sistema relativamente nuevo, y
dado que sus servidores no han tenido tiempo para madurar, este puerto abierto en tu
sistema acapara gran atención para los intrusos.
• 161 SNMP: Administración de dispositivos de networking. Muchos dispositivos con
SNMP sólo admiten passwords con caracteres alfanuméricos lo que los convierten en
atractivos para los intrusos. Por otro lado controlar un dispositivo de red puede dar
mucho juego a un asaltante.
• 389 LDAP: Servicio de autenticación LDAP. Tambien puede ser utilizado por
Netmeeting
• 443 HTTPS: La presencia de este puerto de web segura en tu sistema implica que tu
sistema establece conexiones seguras con los navegadores web. Este puerto no
debería estar abierto a menos que realmente lo estés utilizando para comercio seguro
via web.
• 445 MSFT DS: Server Message Block. En Windows 2000, Microsoft añadió la
posibilidad de ejecutar SMB directamente sobre TCP/IP sin la capa extra de NBT.
• 1080 Socks: Servicio de proxy.
• 1433 MS SQL: Base de Datos de Microsoft.
• 1701 L2TP: Layer 2 Tunneling Protocol
• 1723 PPTP: Point-to-Point Tunneling Protocol
• 2049 NFS: Network File Service
• 3128 Proxy: HTTP usado por web caches y por defecto en Squid cache. Squid es un
popular programa de software libre que implementa un servidor proxy y un demonio
para caché de páginas web, publicado bajo licencia GPL. Tiene una amplia variedad de
utilidades, desde acelerar un servidor web, guardando en caché peticiones repetidas a
DNS y otras búsquedas para un grupo de gente que comparte recursos de la red, hasta
caché de web, además de añadir seguridad filtrando el tráfico. Está especialmente
diseñado para ejecutarse bajo entornos tipo Unix.
• 3306 MySQL: Base de Datos MySQL.
• 3389 RDP: Remote Desktop Protocol. Se usa en sistemas Windows para la Conexión a
Escritorio Remoto y ha sido históricamente una gran fuente de problemas de
seguridad para Microsoft.
• 5000 UPnP: El Universal Plug’n'Play es un protocolo de Microsoft para permitir a los
PC’s descubrir y controlar automáticamente un amplio rango de periféricos. Microsoft
ha activado este protocolo por defecto (incluso si tu sistema no lo necesita) y tu
sistema está expuesto a múltiples vulnerabilidades y ataques remotos. Es muy
aconsejable que lo desactives.
• 8080 WebProxy: Se utiliza especialmente para montar un proxy transparente. Este
puerto abierto puede permitir a otras personas utilizar tu ordenador para ocultar su IP
real a los servidores web.