Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Conceptes bàsics

Aquest capítol tracta els conceptes fonamentals que cal entendre abans de capturar trànsit amb lippycat. Si ja coneixeu la captura de paquets (per exemple, per experiència amb tcpdump o Wireshark), podeu llegir-lo per sobre i continuar amb Instal·lació i configuració.

Paquets i protocols

El trànsit de xarxa es compon de paquets, unitats de dades discretes que s’envien entre amfitrions. Cada paquet conté capes de protocol imbricades:

Ethernet → IP → TCP/UDP → Application (HTTP, SIP, DNS, ...)

lippycat captura paquets a la capa d’enllaç i analitza cada capa de protocol, extraient informació significativa segons el mode de protocol que utilitzeu.

Protocols que analitza lippycat

ProtocolSubordreQuè captura
DNSlc sniff dnsConsultes, respostes i tipus de registre
TLSlc sniff tlsNegociacions, certificats i conjunts de xifratge
HTTPlc sniff httpPeticions, respostes i capçaleres
Correu electròniclc sniff emailSessions SMTP/IMAP/POP3
RADIUSlc sniff radiusMissatges d’autenticació/comptabilització i associació de peticions
VoIPlc sniff voipSenyalització SIP i fluxos multimèdia RTP

Interfícies de xarxa

Una interfície de xarxa és el punt on la vostra màquina es connecta a una xarxa. Exemples habituals:

  • eth0 / ens33 — Ethernet per cable
  • wlan0 — Sense fil
  • lo — Bucle local (només trànsit local)
  • any — Captura simultània en totes les interfícies

Per veure les interfícies disponibles:

lc list interfaces

Permisos de captura

La captura de paquets requereix privilegis elevats perquè implica llegir tot el trànsit d’una interfície, i no només el destinat a la vostra aplicació.

Opció 1: executar com a root

sudo lc sniff -i eth0

Opció 2: concedir una capacitat (recomanada per a producció)

sudo setcap cap_net_raw+ep /usr/local/bin/lc

Això concedeix únicament la capacitat específica necessària, d’acord amb el principi de privilegi mínim.

Filtres BPF

Els Berkeley Packet Filters (BPF) permeten indicar al nucli quins paquets ha de capturar, reduint la càrrega de CPU mitjançant el filtratge al nivell més baix, abans que els paquets arribin a l’espai d’usuari.

Capturar només trànsit DNS:

lc sniff -i eth0 -f "port 53"

Capturar només trànsit cap a un amfitrió concret o des d’aquest:

lc sniff -i eth0 -f "host 10.0.0.1"

Combinar filtres:

lc sniff -i eth0 -f "host 10.0.0.1 and port 5060"

Els filtres BPF utilitzen una sintaxi estàndard compartida amb tcpdump i Wireshark. Consulteu l’Apèndix C: referència de filtres BPF per veure patrons habituals.

Format PCAP

PCAP (Packet Capture) és el format de fitxer estàndard per emmagatzemar paquets capturats. Els fitxers escrits per lippycat es poden obrir amb Wireshark, analitzar amb tshark o reproduir amb tcpreplay.

Escriure els paquets capturats en un fitxer:

lc sniff -i eth0 -w capture.pcap

Llegir un fitxer PCAP a la TUI:

lc watch file capture.pcap

lippycat admet diversos modes d’escriptura de PCAP:

  • PCAP unificat — Tots els paquets en un fitxer
  • PCAP per trucada — Un fitxer per trucada VoIP (SIP Call-ID)
  • PCAP amb rotació automàtica — Fitxer nou en arribar a un llindar de mida o temps

Anàlisi de protocols

Més enllà de la simple captura de paquets, lippycat fa anàlisi de protocols: entén l’estructura i la semàntica dels protocols que supervisa:

  • DNS: analitza els tipus de consulta, els codis de resposta i les dades dels registres
  • TLS: extreu SNI, cadenes de certificats, negociació de xifratge i empremtes JA3/JA3S/JA4
  • VoIP: segueix els diàlegs SIP, correlaciona fluxos RTP i calcula mètriques de qualitat de les trucades
  • HTTP: reconstrueix parelles de petició/resposta dels fluxos TCP (amb desxifratge TLS opcional)
  • Correu electrònic: segueix sessions SMTP, IMAP i POP3 amb correlació de remitent/destinatari
  • RADIUS: descodifica missatges UDP visibles d’autenticació/comptabilització i associa respostes amb peticions

Aquesta anàlisi es fa en temps real durant la captura i es mostra tant al mode CLI com al mode TUI.

El model distribuït

lippycat pot funcionar com un sistema distribuït per capturar trànsit en diversos segments de xarxa:

graph LR
    h1["Hunter<br>(edge)"]
    h2["Hunter<br>(edge)"]
    p["Processor<br>(central)"]
    out["TUI / PCAP / Analysis"]

    h1 -->|gRPC| p
    h2 -->|gRPC| p
    p --> out
  • Els nodes Hunter capturen paquets a la perifèria de la xarxa i els transmeten mitjançant gRPC
  • Els processadors reben, agreguen i analitzen paquets de diversos nodes Hunter
  • Tap combina tots dos rols per a desplegaments en una sola màquina

Aquesta arquitectura es tracta detalladament a la Part III: captura distribuïda. De moment, n’hi ha prou amb saber que tots els conceptes de captura local (interfícies, filtres, protocols) també s’apliquen al mode distribuït.