Tutorial De Monitoreo

Transcription

Tutorial de MonitoreoLACNIC 27Foz do Iguaçu, 22 de Mayo de 2017Santiago Aggio 1 , Pablo Cuello12ARIUAsociación Redes de Interconexión Universitaria2ANTEL

ObjetivoMonitorear nuestro propio tráfico IPv4 / IPv6Utilizando la tecnologı́a Netflow/IPFIX1 / 60

ConsideracionesAmbiente IPv6-onlyEl Exportador, el Colector y el Analizador deben conectarse por IPv6Medir tráfico IPv6Los componentes del sistema de monitorización deben soportar NetFlowversión 9.Identificar tráfico IPv6Diferenciar el tráfico IPv6 del IPv4 que atraviesa una interfaz2 / 60

Arquitectura de monitoreo NetFlowFuente: http://www.wikipedia.com3 / 60

NetFlow en CiscoFuente: http://www.cisco.com4 / 60

Procesos en la Arquitectura NetFlow/IPFIX5 / 60

Vagrant para crear MVRepositorio GitHub con material para crear MV con /sancolo/lab-netflow-nfsen.git6 / 60

Escenario Vagrant: MF MV7 / 60

Software en la MVProbe: softflowdColector: nfcapdAnalizador: nfdump (modo texto)Monitor: nfsen (modo gráfico, acceso por página web)Web server: apacheOtros: mtr, tcpdump, tshark, wget8 / 60

ProbeSe basan en la librerı́a pcap (http://www.tcpdump.org)Capturan tráfico sobre una interfaz en modo promiscuo (tcpdump,wireshark, tshark)Generan paquetes NetFlow/IPFIX que exportan a un colector9 / 60

Probe: paquetes disponibles para Unixipt-netflow: módulo de Kernel basado en iptables, no soporta IPv6fprobe: basado en libpcap, no soporta IPv6fprobe-ulog: basado en libipulog, usado con iptables ULOG target,no soporta IPv6pmacct: utilizado en IXPs, Data Centers, IP Carriers, CDNsnProbe: aplicación del proyecto Ntopsoftflowd: simple, soporta IPv610 / 60

Flujo5 Atributos que identifican un FlujoCisco AgregaDirección FuenteByte de TOS (DSCP)Dirección DestinoInterface de entradaPuerto FuentePuerto DestinoProtocolo de transporteFlujo UnidireccionalCoincidencia de los 5/7 atributos actualizar flujoDiferencia de 1 atributo nuevo flujo11 / 60

¿Cuando un flujo es exportado?El flujo es terminadoConexión TCP termina debido a un FIN o RSTEl flujo permanece ocioso por un perı́odo de tiempo (timeout)Cisco establece 15 segEl flujo alcanza un máximo tiempo de vida permitido (active timeout)Lo valores varı́an. Cisco establece 1800 seg. ¿Y Softflowd?Se fuerza el descarte del flujoLa cache esta llena y un nuevo flujo debe ser alojado12 / 60

Paquete de exportación NetFlow 9Packet HeaderTemplate FlowSetData FlowSetData FlowSet.Template FlowSetData FlowSet.13 / 60

Header de NetFlow 9bit 0-7 bit 8-15 bit 16-23 bit 24-31Version NumberCountsysUpTimeUNIX SecsSequence NumberSource ID14 / 60

Captura de paquetes NetFlow 9Version: 9Count: 12SysUptime: 263802007Timestamp: Sep 17, 2014 15:46:01.000000000 EDTCurrentSecs: 1379447161FlowSequence: 23995SourceId: 0FlowSet 1FlowSet Id: (Data) (1024)FlowSet Length: 472Data (468 bytes), no template found15 / 60

Template FlowSetbit 0-15FlowSet ID 0Template IDField 1 TypeField 2 Type.Field N TypeTemplate IDField 1 TypeField 2 Type.Field N Typebit 16-31LengthField CountField 1 LengthField 2 Length.Field N LengthField CountField 1 LengthField 2 Length.Field N Length16 / 60

TemplatesExpiran si no son refrescados periódicamenteSe preveen dos formas de refresco del template:El template puede ser reenviado cada N números de paquetesexportadosEl template puede ser refrescado cada N minutos (timer)17 / 60

Template FlowSetTipo de CampoIPV6 SRC ADDRIPV6 DST ADDRIPV6 SRC MASKValor272829Long16161IPV6 DST MASK301IPV6 FLOW LABEL313DescripciónIPv6 Source AddressIPv6 Destination AddressLength of the IPv6 sourcemask in contiguous bitsLength of the IPv6 destination mask in contiguous bitsIPv6 flow label as per RFC2460 definitionhttp://www.iana.org/assignments/ipfix18 / 60

Template FlowsetTipo de CampoSAMPLING INTERVALV34L4SAMPLING ALGORITHM351FLOW ACTIVE TIMEOUT362FLOW INACTIVE TIMEOUT372DescripciónThe rate at which packets aresampled. A value of 100 indicates that one of every 100 packets is sampledThe type of algorithm used forsampled NetFlow: 0x01 Deterministic Sampling ,0x02 Random SamplingTimeout value (in seconds) foractive flow entries in the NetFlow cacheTimeout value (in seconds) forinactive flow entries in the NetFlow cache19 / 60

Captura de paquetes Template FlowSetFlowSet 1FlowSet Id: Data Template (V9) (0)FlowSet Length: 60Template (Id 1024, Count 13)Template Id: 1024Field Count: 13Field (1/13): IP SRC ADDR Type: IP SRC ADDR (8) Length: 4Field (2/13): IP DST ADDR Type: IP DST ADDR (12) Length: 4Field (3/13): LAST SWITCHED Type: LAST SWITCHED (21) Length: 4Field (4/13): FIRST SWITCHED Type: FIRST SWITCHED (22) Length: 4Field (5/13): BYTES Type: BYTES (1) Length: 4Field (6/13): PKTS Type: PKTS (2) Length: 4Field (7/13): INPUT SNMP Type: INPUT SNMP (10) Length: 4Field (8/13): OUTPUT SNMP Type: OUTPUT SNMP (14) Length: 4Field (9/13): L4 SRC PORT Type: L4 SRC PORT (7) Length: 2Field (10/13): L4 DST PORT Type: L4 DST PORT (11) Length: 2Field (11/13): PROTOCOL Type: PROTOCOL (4) Length: 1Field (12/13): TCP FLAGS Type: TCP FLAGS (6) Length: 1Field (13/13): IP PROTOCOL VERSION Type: IP PROTOCOL VERSION (60) Length20 / 60

Captura de paquetes Template Flowset IPv6FlowSet 2FlowSet Id: Data Template (V9) (0)FlowSet Length: 60Template (Id 2048, Count 13)Template Id: 2048Field Count: 13Field (1/13): IPV6 SRC ADDR Type: IPV6 SRC ADDR (27) Length: 16Field (2/13): IPV6 DST ADDR Type: IPV6 DST ADDR (28) Length: 16Field (3/13): LAST SWITCHED Type: LAST SWITCHED (21) Length: 4Field (4/13): FIRST SWITCHED Type: FIRST SWITCHED (22) Length: 4Field (5/13): BYTES Type: BYTES (1) Length: 4Field (6/13): PKTS Type: PKTS (2) Length: 4Field (7/13): INPUT SNMP Type: INPUT SNMP (10) Length: 4Field (8/13): OUTPUT SNMP Type: OUTPUT SNMP (14) Length: 4Field (9/13): L4 SRC PORT Type: L4 SRC PORT (7) Length: 2Field (10/13): L4 DST PORT Type: L4 DST PORT (11) Length: 2Field (11/13): PROTOCOL Type: PROTOCOL (4) Length: 1Field (12/13): TCP FLAGS Type: TCP FLAGS (6) Length: 1Field (13/13): IP PROTOCOL VERSION Type: IP PROTOCOL VERSION (60) Length21 / 60

Data FlowSetbit 0-15flowset id template id ( 255)lengthrecord 1-field 1 valuerecord 1-field 2 value.record 1-field M valuerecord 2-field 1 valuerecord 2-field 2 value.record 2-field M value.record N-field M valuepadding22 / 60

Captura de paquetes Data FlowSetFlowSet 3FlowSet Id: (Data) (1024)FlowSet Length: 316Flow 1(1)SrcAddr: 192.168.1.103 (192.168.1.103)(2)DstAddr: 192.168.13.109 (192.168.13.109)[Duration: 29.664000000 seconds](3)StartTime: 263892.537000000 seconds(4)EndTime: 263922.201000000 seconds(5)Octets: 998(6)Packets: 6(7)InputInt: 0(8)OutputInt: 0(9)SrcPort: 55073(10)DstPort: 80(11)Protocol: 6(12)TCP Flags: 0x1b(13)IPVersion: 0423 / 60

Captura de paquetes Data FlowSetFlowSet 1FlowSet Id: (Data) (2048)FlowSet Length: 132. . . . .Flow 2(1)SrcAddr: 2001:db8:90:192::30 (2001:db8:90:192::30)(2)DstAddr: 2001:db8:90:192::16 (2001:db8:90:192::16)[Duration: 1.299000000 seconds](3)StartTime: 1204388.336000000 seconds(4)EndTime: 1204389.635000000 seconds(5)Octets: 2484(6)Packets: 21(7)InputInt: 0(8)OutputInt: 0(9)SrcPort: 35849(10)DstPort: 995(11)Protocol: 6(12)TCP Flags: 0x1b(13)IPVersion: 0624 / 60

Options Template Flowset y Options Data RecordFuente: RFC7011 (09/13) / RFC510125 / 60

Protocolo de TransporteUDPImplementado en la mayorı́a de exportadores y colectoresNo es confiable y es susceptible a congestionesUso dentro de un segmento de red dedicado o dominio propioTCPOrientado a conexión, más confiable si requiere retransmisión y TLSDestinado al transporte de paquetes IPFIX a través de InternetSCTP (Stream Control Transmission Protocol)Protocolo recomendado para transportar IPFIXProporciona múltiples flujos independientes dentro de una solaasociación y capa de transporte multihome (dispositivos móviles)Fiabilidad seleccionable: alta prioridad en Templates y paquetescrı́ticos.26 / 60

NfdumpColecta los paquetes NetFlow y los almacena en archivos generadosen intervalos de tiempo (5 minutos)Filtrado basado en la sintaxis de la librerı́a PCAPRápido en procesar, Eficiente en el uso de la CPU, Flexible en laagregación de flujos.27 / 60

Arquitectura de NfdumpFuente: http://nfdump.sourceforge.net/28 / 60

Análisis de información colectadaFuente: http://nfdump.sourceforge.net/29 / 60

Componentes de nfdumpnfcapd - netflow capture daemonnfdump - netflow dumpnfprofile - netflow profiler (run by nfsen)nfreplay - netflow replaynfclean.pl - cleanup old datanfexpire - data expiry program (maxtime, maxsize, watermark)(nfcapd -e)ft2nfdump - Read and convert flow-tools data30 / 60

NfsenInterfaz web para graficar y procesar los datos colectadosUtiliza nfdump a bajo nivel para obtener la información estadı́sticarequeridaPresenta gráficos de Flujos, Paquetes y Tráfico, diferenciando losprotocolos TCP, UDP, ICMP y otros.Permite el análisis sobre ventanas de tiempoAlertas definidas en base a condiciones que determinancomportamientos anómalos del tráfico y los flujos activosDefinición de Profiles para seguimientos de subredes, máquinas,puertos, servicios, etc.Extensiones basadas en Plugins (Mod.Perl y PHP)31 / 60

Implementación de Nfsen en la MVDirectorio de instalación: /data/nfsenArchivo de configuración: /data/nfsen/etc/nfsen.confFuentes que generan paquetes NetFlow a colectar:%sources (’mv’ { ’port’ ’9995’, ’col’ ’#0000ff’, ’type’ ’netflow’ },’mf’ { ’port’ ’9996’, ’col’ ’#00ff00’, ’type’ ’netflow’ },);32 / 60

nfcapdnfcapd -6 -w -D -p 9995 -u netflow -g www-data -B 200000 -S 1 -P/data/nfsen/var/run/p9995.pid -z -I mv -l/data/nfsen/profiles-data/live/mvOpciones-6 listen on IPv6 only-w Align file rotation-D daemon mode-p port-u usuario-g group-B bufflen-l base directory-S 1 %Y/ %m/ %d-P pidfile-z Compress flows33 / 60

Nfsen Profile34 / 60

Nfsen PluginsExtienden la funcionalidad de NfsenPlugin tiene dos componentes: backend y frontendBackendNfsen procesa periodicamente el backend asociadoEscritos en PerlFrontendGrafica los resultados del proceso backend asociadoEscritos en PHP35 / 60

Nfsen Plugin: PortTracker36 / 60

UDP floodROUTERWEB SERVERVICTIMAADMINISTRADOR37 / 60

UDP floodLa red esta lenta, se cayo un enlace ?Mucho download o algún P2PGeneralizemos . No anda Internet !!!!Como verifico un comportamiento anómalo, si.Mi browser no responde !!!¿Se cayo el enlace o . . . es el DNS que no resuelve?Ping, traceroute, mtr, dig, hostsEmpiezan a sonar los teléfonosy .no es para invitarte a unafiesta!!!!38 / 60

UDP flood39 / 60

UDP flood40 / 60

UDP flood** nfdump -M /var/nfsen/profiles-data/live/rtmetro0:rtmetro3 -T .201108081935 -n 10 -sdstip/flowsnfdump filter:proto UDPTop 10 Dst IP Addr ordered by flows:Date first seenDuration ProtoDst IP AddrFlows(%)Packets(%)Bytes(%)ppsbpsbpp2011-08-08 18:57:22.775 1252.208 any192.168.229.10448.5 M(99.8)51.8 M(99.8)1.5 G(99.1)413459.6 M292011-08-08 18:49:42.791 1618.604 any192.168.198.6819758( 0.0)24745( 0.0)1.7 M( 0.1)158294672011-08-08 18:54:18.443 1533.128 any192.168.130.2428802( 0.0)8804( 0.0)2.0 M( 0.1)510649231Summary: total flows: 48661443, total bytes: 1.5 G, total packets: 51.9 M,avg bps: 6.6 M, avg pps: 28405, avg bpp: 29Time window: 2011-08-08 18:49:34 - 2011-08-08 19:20:01Total flows processed: 48943560, Blocks skipped: 0, Bytes read: 2545094500Sys: 5.528s flows/second: 8853202.9 Wall: 8.396s flows/second: 5828870.241 / 60

UDP flood42 / 60

UDP flood# netstat -alunpActive Internet connections (servers and established)Proto Recv-Q Send-Q Local AddressForeign Addressudp00 0.0.0.0:384470.0.0.0:*udp00 0.0.0.0:53530.0.0.0:*udp00 0.0.0.0:7460.0.0.0:*udp00 0.0.0.0:7490.0.0.0:*udp00 0.0.0.0:1110.0.0.0:*udp00 0.0.0.0:511880.0.0.0:*udp00 0.0.0.0:6310.0.0.0:*udp00 :::5353:::*udp00 :::47860:::*# ps aux grep perlapache 12237 95.1 0.2192.168.229.104 0 0253562424 ?RPID/Program 1897/avahi-daemon:1897/avahi-daemon:04:27 23:20 perl /tmp/U43 / 60

Detección de anomalı́asLa inspección de cada paquete no siempre es viable en redes de altavelocidadDetecciones basadas en flujos IP es un complemento y una primeraaproximación para detectar ataquesDetección de Intrusos analizando Flujos IPDenial of ServiceScansSPAMBotnetsWorms44 / 60

Ejemplo: DNS & FeederbotEl canal C&C de una Botnet puede utilizar el puerto 531Consultas de DNS a servidores propios, es habitual2Consultas de DNS a servidores públicos, es probable3Alto número de consultas a servidores públicos, es raro4Alto número de consultas de dominios de dudosa denominación,estamos en problemas5Incremento en las consultas DNS sobre TCP respecto de UDP,seguimos en problemasEste tráfico representa un porcentaje ı́nfimo del total y podremosinspeccionar, sin un alto costo, el payload del paquete usandofuturas extensiones de IPFIX45 / 60

Ejemplo: DNS & FeederbotPodemos crear un profile para ver consultas a otros DNSFiltro del profile:dst port 53 and not (host ipv4 dns1 or host ipv4 dns2 or hostipv6 dns1 or host ipv6 dns2)Diferenciamos TCP de UDPproto tcp and dst port 53 and not (host pv4 dns1 or host ipv4 dns2or host ipv6 dns1 or host ipv6 dns2)46 / 60

Flexible NetflowPermite crear registros de flujos para mayor granularidad de análisisSoporta NBAR v2 (Network-Based Application Reconigtion) e IPv6(Mec. Transición)Múltiples flow caches y DB de informaciónMuestreo, exportador, monitor, y registros independientessoporta IPFIX como formato de exportaciónExtiende los IE para obtener más informaciónRFC 6759: Cisco Export Application InformationRFC 5610: Exporting Type Information for IPFIX Information Elements47 / 60

Flexible Netflow!flow record v6 r1match ipv6 traffic-classmatch ipv6 protocolmatch ipv6 source addressmatch ipv6 destination addressmatch transport source-portmatch transport destination-portcollect counter bytes longcollect counter packets long!flow exporter FLOW-EXPORTER-1destination 2001:DB8:2:FFFF::72!sampler SAMPLER-1mode random 1 out-of 2!flow monitor FLOW-MONITOR-1record v6 r1exporter FLOW-EXPORTER-1!interface GigabitEthernet 0/0/0ipv6 address 2001:DB8:2:ABCD::2/48ipv6 flow monitor FLOW-MONITOR-1 sampler SAMPLER-1 input48 / 60

Desempeño en redes de alta velocidadSamplingConsecuenciaDeterminı́stico: 1-de-N Perdemos información !!!!Random: n-de-N Menor uso de la CPUAgregación de flujosDisminuye el tamaño de memoria cacheDisminuye el tráfico de paquetes NetFlowColectorDisminuye el número de paquetes a colectarMenor procesamiento para análisis de ventanas de tiempo49 / 60

Requerimiento de AlmacenamientoAB10 Mbps100 Mbps1 Gbps2 Gbps10 GbpsValores Promedio5 minutosDiarioSemanal500 KB150 MB1 GB5 MB1.5 GB10 GB50 MB15 GB100 GB100 MB30 GB200 GB500 MB150 GB1 TBMensual4 GB40 GB400 GB800 GB4TBAnual50 GB500 GB5 TB10 TB50 TB50 / 60

Tecnologı́as de mejor desempeñoSondaTAP Pasivo, no compromete al routerExportadorHardware dedicado FPGA (10/40/100 Gbps)ColectorHigh Performance Computing (HPC)GPU Indexado de flujosBig DataHadoop Hadoop Distributed File System (HDFS)MapReduce Task and JobsSpark Múltiples Threads de procesamiento paralelo51 / 60

Soluciones Comerciales52 / 60

Soluciones Comercialeswww.endace.com53 / 60

Tecnologı́as de AlmacenamientoSATA Alta capacidad, Bajo desempeño, Bajo costoSSD Capacidad media, Mejor desempeño, Mayor costoNVMe (NVM Express) Alto desempeño, Baja escalabilidad54 / 60

Enterprise-specific Information Elements (EIEs)AppFlow - NetScaler - CitrixtransactionID, connectionID, tcpRTT, httpRequestMethodDesempeño: clientInteractionStartTime, clientInteractionEndTimeDB: dbProtocolName (1 para MS SQL, 2 para MySQL)Plugins - nProbe - NTOPPlugins disponibles en version Pro de nProbeHTTP, HTTPS, DNS, MySQL, Oracle.Generación de logs para análisis de actividadDetect / Data Engine / Portal - KentikPortal Remoto (SaaS) con alertas y análisisDispositivos registrados que exportan flujos, SNMP, BGP peeringTabla de muestreo de flujos. Ej: para 10Gbps 1 en 102455 / 60

Grupos IETFIP Flow Information Export (ipfix) Finalizado en Marzo de 2015!!!!7 Active Internet-Drafts draft-ietf-opsawg-ipfix-bgp-community-01Export BGP community information in IPFIXIETF 98 Chicago, Marzo de 2017RFC 8038: Exporting MIB Variables Using the IP Flow InformationExport (IPFIX) Protocol, Mayo 2017Network Configuration (netconf) YANG data model RESTCONF protocol (HTTP-based)56 / 60

Workshop on Flow-Based Network Management, 37thIRTF NMRG, IETF 93, 2015- TinyIPFIX for WSN (Wireless Sensor Networks)- Seguridad de IPv6- Software Defined Monitoring (SDM) - CESNET- Ingenierı́a de Tráfico: Elephant Flows paths/queues- Mediciones de Tráfico a nivel de flujo en redes OpenFlow- Flujos Enriquecidos / AumentadosInformación L7: HTTP, HTTPS, DNS, DB57 / 60

Producción Cientı́fica58 / 60

ConclusiónUn sistema de monitoreo basado en NetFlow/IPFIX permite:Mejorar la visibilidad de la red en su conjuntoMayor granularidad en el análisis del tráfico IPFacilitar la gestión y la adopción de nuevas polı́ticas y tecnologı́asObservar el desempeño y calidad de la redDiagnosticar en menor tiempo diferentes tipos de anomalı́as enel tráficoVerificar el buen uso y la seguridad de la red59 / 60

FIN¿ Preguntas ?Muchas yAgradecimientosLACNIC / ARIU / ANTEL60 / 60

Presenta gr a cos de Flujos, Paquetes y Tr a co, diferenciando los protocolos TCP, UDP, ICMP y otros. Permite el an alisis sobre ventanas de tiempo Alertas de nidas en base a condiciones que determinan comportamientos an omalos del tr a co y los ujos activos De nici on de Pro les para seguimientos de subredes, m aquinas, puertos, servicios, etc.