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 | Ús | Motiu |
|---|---|---|
| Inspecció ràpida de paquets | lc sniff | L’opció més senzilla, només sortida CLI |
| Monitoratge VoIP en una màquina | lc tap voip | PCAP per trucada, TUI, sense infraestructura |
| Captura i TUI en una màquina | lc tap | Totes les funcions del processador localment |
| Node de perifèria amb captura local i central | lc tap --processor | Mode autònom i reenviament cap amunt |
| Captura distribuïda en diversos segments | lc hunt + lc process | Calen 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