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

Mode autònom amb lc tap

El mode Tap combina captura local de paquets amb totes les funcions del processador en un sol procés. És l’opció adequada quan voleu PCAP per trucada, servei TUI, accions d’ordres o reenviament cap amunt, però no necessiteu la complexitat de nodes Hunter i processador separats.

La fórmula: tap = process + hunt - gRPC

Tot el que pot fer hunt (captura, filtratge GPU, detecció de protocols) i tot el que pot fer process (escriptura PCAP, servei TUI, accions d’ordres, interfície virtual), sense el transport gRPC entre tots dos.

flowchart LR
    subgraph Tap["lc tap (single process)"]
        direction LR
        C[Capture<br>+ Filtering] --> A[Protocol<br>Analysis]
        A --> W[(PCAP Writing)]
        A --> V[Virtual<br>Interface]
    end

    NIC["Network<br>Interface"] --> C
    TUI[TUI Client] <-->|gRPC| Tap
    A -.->|optional| UP[Upstream<br>Processor]

Quan utilitzar Tap

EscenariÚsMotiu
Inspecció ràpida de paquetslc sniffL’opció més senzilla, només sortida CLI
Monitoratge VoIP en una màquinalc tap voipPCAP per trucada, TUI, sense infraestructura
Captura i TUI en una màquinalc tapTotes les funcions del processador localment
Node de perifèria amb captura local i centrallc tap --processorMode autònom i reenviament cap amunt
Captura distribuïda en diversos segmentslc hunt + lc processCalen diversos punts de captura

La pregunta clau: necessiteu capturar des de diverses màquines? Si és així, utilitzeu hunt + process. Si no, tap és més senzill.

Modes de reenviament cap amunt i proves locals

Quan s’estableix --processor, --forward-mode packets és el valor per defecte per compatibilitat. Envia paquets en brut perquè el processador superior pugui crear PCAP, servir vistes de paquets, injectar en una interfície virtual i fer l’anàlisi canònica.

--forward-mode events, en canvi, fa l’anàlisi canònica al node Tap i només envia metadades normalitzades. Els bytes dels paquets en brut i el contingut dels fitxers mai no entren al transport d’esdeveniments. Per tant, les funcions superiors dependents de paquets no estan disponibles, però els escriptors PCAP locals, la rotació, la sortida per trucada i les accions posteriors a l’escriptura del node Tap continuen funcionant:

sudo lc tap -i eth0 -P central:55555 --forward-mode events \
  --auto-rotate-pcap --auto-rotate-pcap-dir /var/lib/lippycat/pcap \
  --event-spool-dir /var/lib/lippycat/event-spool --tls-ca ca.crt

Utilitzeu aquesta topologia per retenir proves forenses a la perifèria tot centralitzant metadades menys reveladores. La transmissió fiable d’esdeveniments utilitza un spool recuperable; memory-only pot perdre esdeveniments admesos en cua si el processador falla. Protegiu tant els PCAP com els spools d’esdeveniments amb permisos restringits, xifratge i límits de retenció. La negociació d’esdeveniments provoca un tancament segur llevat que --event-fallback-to-packets permeti explícitament el recurs. El mode de paquets per defecte continua sent interoperable amb versions superiors que només admeten paquets.

Operació del spool fiable d’esdeveniments cap amunt

Doneu a cada node Tap el seu propi directori de spool i superviseu tant el límit configurat com l’espai lliure del sistema de fitxers. Les càrregues útils dels registres codificats estan limitades a 4 MiB fins i tot quan l’emmagatzematge total del spool és il·limitat; si no es pot desar un esdeveniment o el seu informe exacte de pèrdua, el reenviament s’atura en lloc d’ocultar la pèrdua. Per veure el comportament de recuperació i la resposta segura als errors d’inici o durabilitat, consulteu Emmagatzematge i recuperació del spool d’esdeveniments.

Ús bàsic

Registres estructurats de protocols

Tap comparteix la cadena de registre estructurat del processador. tap dns, tap http i les altres subordres de protocol hereten les opcions de l’ordre pare:

sudo lc tap dns -i eth0 --insecure \
  --log-dir /var/log/lippycat --log-streams conn,dns

El registre està desactivat per defecte. En reenviar cap amunt, el valor per defecte --log-emit-stage terminal només emet al processador terminal. Consulteu Registres estructurats de protocols per veure esquemes de camps, comportament TSV/JSONL, rotació, observacions de límit inferior i controls de privadesa.

TLS està activat per defecte per a la interfície de gestió (connexions TUI):

Captura autònoma amb TLS:

sudo lc tap -i eth0 --tls-cert server.crt --tls-key server.key

Per a proves locals sense TLS:

sudo lc tap -i eth0 --insecure

Connectar la TUI al node Tap:

lc watch remote -P tap-host:55555 --tls-ca ca.crt

Alternativament, connectar sense TLS:

lc watch remote -P localhost:55555 --insecure

lc watch remote es pot connectar directament amb --processor (-P) o llegir els processadors i nodes Tap de destinació d’un fitxer YAML de nodes. Consulteu Monitoratge remot amb la TUI per veure el format de fitxer i els camins de cerca per defecte.

Subordres de protocol

Com sniff i hunt, tap té subordres específiques de protocol.

VoIP (tap voip)

El mode Tap més habitual. El PCAP per trucada està activat per defecte:

Captura VoIP amb filtratge d’usuari SIP:

sudo lc tap voip -i eth0 --sip-user alicent --insecure

Captura VoIP amb TLS i un directori PCAP per trucada:

sudo lc tap voip -i eth0 \
  --per-call-pcap-dir /var/voip/calls \
  --tls-cert server.crt --tls-key server.key

Captura VoIP restringida a un port SIP:

sudo lc tap voip -i eth0 --sip-port 5060 --insecure

Captura selectiva de contingut multimèdia a Linux:

sudo lc tap voip -i eth0 --sip-user alicent \
  --rtp-ebpf --sip-port 5060 --insecure

Amb --rtp-ebpf, els extrems RTP/RTCP s’aprenen de l’SDP de les trucades coincidents; --rtp-port-range és innecessari. --sip-port és opcional i restringeix la captura de senyalització. El contingut multimèdia es captura només després de la selecció i la publicació dels extrems, de manera que l’RTP anterior no es desa en buffers. Un interval RTP configurat explícitament continua restringint els extrems apresos. Consulteu Captura selectiva de contingut multimèdia amb eBPF.

Captura VoIP d’alt rendiment:

sudo lc tap voip -i eth0 --tcp-performance-mode high_performance --insecure

El PCAP per trucada crea fitxers SIP i RTP separats per a cada trucada:

20250123_143022_abc123_sip.pcap    # SIP signaling
20250123_143022_abc123_rtp.pcap    # RTP media

Les accions d’ordres VoIP funcionen igual que al processador:

sudo lc tap voip -i eth0 \
  --voip-command '/opt/scripts/process-call.sh %callid% %dirname%' \
  --insecure

DNS (tap dns)

Captura DNS amb detecció de túnels i alertes:

Captura DNS amb alertes de túnels:

sudo lc tap dns -i eth0 \
  --tunneling-command 'echo "ALERT: %domain% score=%score%" >> /var/log/tunneling.log' \
  --tunneling-threshold 0.7 \
  --insecure

Captura DNS amb ports personalitzats:

sudo lc tap dns -i eth0 --dns-port 53,5353 --udp-only --insecure

HTTP (tap http)

Captura HTTP amb filtratge d’amfitrió, camí i mètode:

Captura HTTP amb filtratge d’amfitrió:

sudo lc tap http -i eth0 --host "*.example.com" --insecure

Captura HTTP amb desxifratge HTTPS:

sudo lc tap http -i eth0 --tls-keylog /tmp/sslkeys.log --insecure

TLS (tap tls)

Captura de negociacions TLS amb empremtes JA3/JA3S/JA4:

Captura TLS amb filtratge SNI:

sudo lc tap tls -i eth0 --sni "*.example.com" --insecure

Correu electrònic (tap email)

Captura SMTP, IMAP i POP3 amb filtratge d’adreces:

Captura de correu només SMTP:

sudo lc tap email -i eth0 --protocol smtp --insecure

Captura de correu amb filtratge de remitent:

sudo lc tap email -i eth0 --sender "*@suspicious.com" --insecure

RADIUS (tap radius)

El mode RADIUS combina la captura local d’autenticació/comptabilització amb sortides del processador com PCAP, registres estructurats i visualització TUI remota:

sudo lc tap radius -i mirror0 --radius-port 1645,1646 \
  --log-dir /var/log/lippycat --log-streams radius --insecure

Els criteris exactes de compte, MAC, atribut i línia amb àmbit utilitzen les mateixes opcions que sniff radius i hunt radius. La captura RADIUS ordinària no requereix una compilació LI; el lliurament X2 autoritzat opcional es configura independentment. Consulteu Captura RADIUS i POI per veure la configuració completa.

Escriptura PCAP

Tap admet els tres modes PCAP del processador (consulteu el Capítol 8 per obtenir detalls):

PCAP unificat:

sudo lc tap -i eth0 --write-file /var/capture/all.pcap --insecure

PCAP per trucada, activat per defecte per a tap voip:

sudo lc tap voip -i eth0 \
  --per-call-pcap --per-call-pcap-dir /var/capture/calls --insecure

PCAP amb rotació automàtica:

sudo lc tap -i eth0 \
  --auto-rotate-pcap --auto-rotate-pcap-dir /var/capture/bursts \
  --auto-rotate-idle-timeout 30s --auto-rotate-max-size 100M --insecure

Les accions d’ordres (--pcap-command, --voip-command) funcionen igual que al processador.

Servei TUI

Els nodes Tap ofereixen una API de gestió gRPC a --listen (per defecte: :55555), que permet als clients TUI connectar-se per al monitoratge en temps real:

Iniciar el node Tap amb TLS:

sudo lc tap voip -i eth0 --tls-cert server.crt --tls-key server.key

Connectar la TUI des d’un altre terminal:

lc watch remote -P tap-host:55555 --tls-ca ca.crt

Per al desenvolupament local, utilitzeu --insecure tant al node Tap com a la TUI:

sudo lc tap voip -i eth0 --insecure
lc watch remote -P localhost:55555 --insecure

Reenviament cap amunt

Els nodes Tap poden reenviar trànsit capturat a un processador central, actuant com nodes de perifèria en un desplegament jeràrquic:

Un node Tap de perifèria captura localment i reenvia al processador central:

sudo lc tap voip -i eth0 \
  --processor central-processor:55555 \
  --tls-cert edge.crt --tls-key edge.key --tls-ca ca.crt

Això combina l’escriptura PCAP local i l’accés TUI a la perifèria amb l’agregació central.

Telemetria del buffer de captura

Tap utilitza canals normal, prioritari SIP i de sortida combinada. Amb sip_buffer_size: 0, la capacitat SIP coincideix automàticament amb buffer_size; un valor positiu la sobreescriu explícitament.

sip_priority_classified compta cada paquet reconegut i encaminat pel camí prioritari SIP, inclosos els que després es degraden o es descarten definitivament. capture_buffer_sip_demotions compta paquets classificats retinguts al canal normal després d’omplir-se el canal SIP i no és una pèrdua de paquets. capture_buffer_sip_drops compta paquets classificats rebutjats per tots dos canals d’entrada i és una pèrdua definitiva de paquets. Utilitzeu els tres parells de longitud/capacitat dels canals per localitzar l’etapa saturada.

flowchart LR
    subgraph Edge["Edge Tap Node"]
        T[Local Capture]
        LP[(Local PCAP)]
        T --> LP
    end

    subgraph Central["Central Processor"]
        P[Aggregation]
        CP[(Central PCAP)]
        P --> CP
    end

    T -->|gRPC/TLS| P
    TUI1[Local TUI] <-->|gRPC| T
    TUI2[Central TUI] <-->|gRPC| P

Interfície virtual

Exposar trànsit filtrat a eines de tercers mitjançant una interfície de xarxa virtual:

Capturar i exposar trànsit en una interfície virtual:

sudo lc tap voip -i eth0 --virtual-interface --insecure

Supervisar amb Wireshark:

wireshark -i lc0

Alternativament, executar tcpdump:

tcpdump -i lc0 -w filtered.pcap

Requereix la capacitat CAP_NET_ADMIN. Consulteu --vif-name, --vif-type, --vif-buffer-size per a la configuració.

Fitxer de configuració

Totes les opcions de tap es poden establir a ~/.config/lippycat/config.yaml:

tap:
  interfaces:
    - eth0
  bpf_filter: ""
  buffer_size: 10000
  sip_buffer_size: 0 # Automatic: match buffer_size
  batch_size: 100
  batch_timeout_ms: 100
  listen_addr: ":55555"
  id: "edge-tap-01"
  processor_addr: "" # Empty for standalone, set for upstream forwarding

  per_call_pcap:
    enabled: true
    output_dir: "/var/capture/calls"
    file_pattern: "{timestamp}_{callid}.pcap"

  auto_rotate_pcap:
    enabled: false
    output_dir: "/var/capture/bursts"
    idle_timeout: "30s"
    max_size: "100M"

  pcap_command: "gzip %pcap%"
  voip_command: ""
  command_timeout: "30s"
  command_concurrency: 10

  tls:
    cert_file: "/etc/lippycat/certs/server.crt"
    key_file: "/etc/lippycat/certs/server.key"

  voip:
    sip_user: ""
    udp_only: false
    sip_ports: ""
    tcp_performance_mode: "balanced"
    tcp_reassembly_shards: 1