Objetivos Después de completar esta unidad, usted debe ser capaz de: • Hablar acerca de los protocolos Ip y su direccionamiento • Describir acerca del contenido de los paquetes IP; TCP, UDP, y ICMP • Rastrear tráfico TCP/IP con tcpdump • Cambiar las opciones del kernel TCP/IP
Capas del TCP/IP
El protocolo IP • • • • • • •
Protocolo de Internet Definido en RFC 791, 950, 919, 922 y 1349 Protocolo Principal para enviar datos al host de destino. Usa “datagramas” (paquetes) para enviar datos La fuente y destino son identificados con una dirección IP. Servicio sin establecer conexión, por lo tanto es no confiable. Reenvía salto-a-salto a través de los routers
Direccionamiento IP • Es posible que desee recompilar el kernel • Cada interfase necesita una dirección IP única. • Las direcciones IP tienen 32 bits • Normalmente escritas en notación de cuatro campos separados con punto.
Asignación de direcciones IP •
Direcciones IP son asignadas por IANA – Internet Addressing and Naming Agency www.iana.net
Ej.: Usar una dirección privada 10.0.0.0 para crear 64K redes de 256 hosts cada una Los primeros 8 bits son arreglados: 00001010 (10) Los siguientes 16 bits identifican la red (2^16=64K) Los últimos 8 bits identifican el host de la red (2^8=256)
Usar “máscara de subred” 255.255.255.0 para identificar qué parte es ID de red y qué parte es ID de host
Formato de un paquete IP
Importancia de cabecera IP • •
•
•
•
Longitud Total: Podría ser usado para forzar la fragmentación o sobrecarga del buffer. ID, FLG y Fragment Offset: Podrían ser usados en ataques DoS ya que, los fragmentos requieren ser poner en el buffer. Dirección IP de origen: Podría ser “spoofeda” – Para prevenir el rastreo de un ataque – Para esconderse de un host verdadero Dirección IP de destino: Podría ser una dirección detrás del firewall para descubrir capacidades en el firewall. Opciones IP: El Ruteo origen podría ser usado para sortear los algoritmos de ruteo.
El protocolo ICMP • • • • • •
Protocolo de Control de mensajes en internet Definido en RFC 792 y 950 Usado para reportar el regreso de errores en la red hacia el remitente. Excepto errores desde ICMP Usado para descubrir información sobre otro host Usa IP para enviar paquetes
Formato del paquete ICMP
0 --- echo reply 3 --- destino inalcanzable 4 --- indicador de congestión 5 --- Indicad errores en las tablas de ruteo 8 --- echo request 11 --- tiempo excedido 12 --- problema en el parámetro
Importancia los tipos ICMP •
echo request (8)/echo reply (0): Prueba si un host está activo o no: – Usado en ataques smurf con una dirección fuente spoofed para inundar un objetivo
•
Destino inalcanzable (3): – Desde un router: No conoce la ruta hacia el objetivo • Puede usarse para obtener información sobre el firewall
– Desde un host: Protocolo o puerto no habilitado • Usado en escaneo de puertos para verificar que un puerto no está activo
Importancia los tipos ICMP (2) •
Apagar fuente (4): Paquetes llegan muy rápido retrasados – Puede ser usado para ataques DoS
•
Redireccionar (5): Usar otra ruta para rutear esos paquetes – Puede ser usado para redireccionar tráfico sobre otra ruta así esta puede ser husmeada
Formato del paquete UDP
El protocolo TCP • • • • •
Protocolo de Control de la Transmisión Definido en RFC 793 Usa IP para enviar datos Usa puertos de fuente y destino para seleccionar el servicio Es confiable ya que es un Servicio Orientado a la Conexión
Importancia cabecera UDP •
Puerto origen: Puerto desde donde se originan los paquetes – Puede ser spoofeada para simular un puerto “seguro” ( /proc/sys/net/ipv4/ip_forward
•
Debería ser configurado antes que la red sea iniciada – Configuraciones en /etc/sysctl.conf • net.ipv4.ip_forward=1 – CentOS: Activado por /etc/rc.d/rc.sysinit • Documentación detallada en: /usr/src/linux/Documentation/proc.txt
Opciones configuración Kernel •
•
ICMP Ignora la petición de repetición ICMP a una dirección broadcast: net.ipv4.icmp_echo_ignore_broadcast=1 Limita el envio de paquetes ICMP (en # por 1/100s) net.ipv4.icmp_ratelimit = 100 net.ipv4.icmp_ratemask = • icmp_ratemask determina a cuales paquetes ICMP se aplica Ver más información en: /usr/src/linux/Documentation/networking/ip-sysctl.txt
Opciones configuración Kernel • • • •
IP Valor por defecto TTL net.ipv4.ip_default_ttl = 255 Rango del Puerto Local para conexiones TCP y UDP net_ipv4.ip_local_port_range = 1024 32000 Sin ruta MTU Discovery net.ipv4.ip_no_pmtu_disc = 1 Memoria de fragmentación IP thresholds y timeouts net.ipv4.ipfrag_high_thresh = 262144 net.ipv4.ipfrag_low_thresh = 19660 net.ipv4.ipfrag_time = 30
Opciones configuración Kernel •
• • •
TCP Detectar conexiones rotas previamente: net.ipv4.tcp_keepalive_probes = 5 net.ipv4.tcp_keepalive_time = 600 Protección en contra de ataques SYN: net.ipv4.tcp_syncookies = 1 Protección en contra de conexiones no finalizadas: net.ipv4.tcp_retries = 3 Protección en contra de ataques FIN: net.ipv4.tcp_fin_timeout = 30
Opciones configuración Kernel •
Interfaz de red Opciones específicas de interface están en: /proc/sys/net/ipv4/conf/ – Cambia a la interface por defecto “default” aplicar a todas las interfaces que serán configuradas más tarde – Cambia a todas las interfaces aplicar a todas las interfaces que están ya configuradas
• No accepta/envía paquetes ICMP de redireccionamiento net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.default.send_redirects = 0
Opciones configuración Kernel Interfaz de red • No aceptar paquetes source-routed net.ipv4.conf.default.accept_source_route = 0 • Registrar paquetes con la dirección fuente sin ruta conocida – net.ipv4.conf.default.lo_martians = 1 • Validación de la dirección fuente: – net.ipv4.conf.default.rp_filter = 1
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.