Я пытаюсь приписать сетевой трафик c в дампе tshark с зарегистрированным пользователем, с которым связан соответствующий трафик c.
Я запускаю сервер Ubuntu на корпоративном сервере. сеть, в которой пользователи входят через RDP или S SH с переадресацией x. Мое приложение написано на bash и использует tshark для регистрации всего сетевого трафика c с помощью следующей команды:
tshark -b filesize:1024 -w traffic.pcap
У меня есть некоторое время l oop, которое выполняется на задании chron для анализа через файлы pcap извлеките нужные мне поля и сохраните их в json:
for f in *.pcap
do
tshark -r $f -T json > $f.json
cat $f.json | jq .[]._source.layers | jq -r '.frame_time_epoch[],.frame_number[],.tcp_stream[],.ip_src[],.tcp_srcport[],.ip_dst[],.tcp_dstport[],.frame_len[],.frame_protocols[],.http_host[],.http_request_uri[],.http_request_method[],.http_user_agent[],.http_referer[],.dns_qry_name[],.dns_resp_name[],.ssl_handshake_extensions_server_name[],.x509sat_uTF8String[],.x509ce_dNSName,"END"' > injest.json
done
Вывод json, который выглядит следующим образом, затем отправляется в настроенный мной кластер Elasticsearch:
{
"layers": {
"frame.time_epoch": ["1579755811.545369005"],
"frame.number": ["3508"],
"tcp.stream": ["0"],
"ip.src": ["10.0.10.10"],
"tcp.srcport": ["22"],
"ip.dst": ["1.1.1.1"],
"tcp.dstport": ["54116"],
"frame.len": ["102"],
"frame.protocols": ["eth:ethertype:ip:tcp:ssh"]
}
}
Я хотел бы знать, могу ли я в любом случае добавить Linux имя пользователя, добавленное к захвату пакета, или в качестве дополнительного поля в конечном json перед отправкой в ELK.
Другими словами, если оба пользователя 'user_a' и 'user_b' зарегистрированы на сервере, я бы хотел, чтобы их соответствующие inte rnet traffi c регистрировали там имена пользователей. Это вообще возможно с Tshark? Я читал, что iptables может «помечать» traffi c, но я не уверен, как именно он работает, и если он достигнет sh того, что я пытаюсь сделать.