tshark
это инструмент сетевого анализаwireshark
Следующий инструмент в основном используется для захвата и анализа пакетов в среде командной строки, особенно для глубокого анализа протокола.tcpdump
в сложных ситуациях. В этой статье будут представлены иtshark
Связанные трафик решения.
tshark + elastic stack
Используя tshark, можно не только анализировать существующие файлы pcap, но и выводить другие форматы, а мощные поисковые возможности ES можно комбинировать для достижения возможности записи, анализа и обработки пакетов данных, а также для реализации анализа с возвратом. с инструментами визуализации kibana и даже осуществлять визуальный мониторинг в реальном времени.
Семейный ковш с эластичным штабелем
Самое раннее ведро семейства ELK, производительность logstash подвергалась критике, а затем оно началось заново, с целью сбора и использованияgolang
Создайте набор битов для разных сценариев сбора. Среди них для сетевого трафика разработаныpacketbeat
.
packetbeat
Преимущество в том, что индивидуальныйelasticsearch
изmapping
,kibana
Серия визуальных диаграмм может удовлетворить общий анализ обычных пакетов, таких как tcp, dns и udp. В основном из коробки.
ноpacketbeat
Есть и недостатки.Анализ пакетов заимствован из сеансового анализа.Отдельного анализа каждого пакета нет.Склонность к прикладному уровню, а анализ сетевого уровня недостаточен (особенно при поиске и устранении неполадок). , поддерживаемые протоколы ограничены, только общие протоколы иtshark
Очевидные пробелы есть в более чем 2000 видах плагинов, при столкновении с неподдерживаемыми нужно ждать поддержки или вручную писать плагины, что крайне сложно.
Импортируйте elasticsearch в автономном режиме
tshark
Поддержка импорта файлов json после анализа пакетов pcap.elasticsearch
, поддерживаяelasticsearch
Интерфейс массового импорта_bulk
формат, команда выглядит следующим образом:
tshark -r test_trace.pcap -T ek > test_trace.pcap.json
После этого вы можете передать файл json черезcurl
импорт.
curl -s -H «Тип содержимого: application/x-ndjson» -XPOST «localhost: 9200/foo/_bulk» — data-binary «@/Users/test-elastic/test_trace.pcap.json»
Примечание:
- При импорте может произойти сбой импорта из-за
_bulk
В интерфейсе есть ограничение на размер файла поста, старайтесь не превышать 15МБ, желательно в пределах 10МБ. Если он превышает, рекомендуется использоватьtshark
Условие вывода для создания нескольких файлов json, используйтеcurl
Импортировать последовательно. - Если импорт не удался, вы можете
curl
Добавить-v
Просмотр оперативной информации. - Имя индекса по умолчанию выглядит примерно так
packets-2019-04-23
(дата записи сообщения), которые можно переиндексировать после импорта
Импорт можно просмотреть с помощью такой команды:
завитокhttp://127.0.0.1:9200/packets-2019-04-23/_search/?size=10&pretty=true'
Решение для мониторинга в реальном времени
Главная мысль
- использовать
tshark
Захват пакетов в режиме реального времени и активация политик фильтрации - использовать
tshark
Проанализируйте захваченное сообщение, извлеките указанные поля и запишите в файл csv или используйте формат json для следующего шага.ETL
- использовать
filebeat
Постоянно обнаруживать CSV-файлы и одновременноlogstash
Используется для фильтрации полей и т.п. (если фильтрация не требуется, ее можно пропуститьlogstash
отправить прямо наelasticsearch
) -
logstash
Фильтруйте поля, конвертируйте форматы и т. д., а затем отправляйте их наelasticsearch
- использовать
kibana
Визуализация данных и статистический анализ пакетов
Простая реализация
1. часть акулы
tshark -i phy0.mon -t ad -t ad -lT fields -E separator=, -E quote=d -e _ws.col.Time -e wlan.fc.type -e wlan.fc.type_subtype -e radiotap.dbm_antsignal -e frame.len -e radiotap.datarate > tshark.csv
2. filebeat
Простой файл конфигурации filebeat.yml
filebeat.modules:
- module: system
syslog:
enabled: false
auth:
enabled: true
var.paths: ["/home/tshark.csv"]
name: test
output.logstash:
hosts: ["localhost:5044"]
3. logstash
Файл logstash.yml в основном делится на:
- Слушайте порт 5044 для получения
filebeat
Данные - Разобрать данные в формате csv и разделить поля
- Обработка даты, формат преобразования
- Добавляйте часы, минуты и секунды для удобства индексации
- Преобразование некоторых полей в числовой формат
- Заменить некоторые поля
- вывод в elasticsearch
input {
beats {
port => 5044
}
}
csv {
source => "message"
columns => [ "col.time","frame.type","frame.subtype","rssi","frame.size","data.rate" ]
}
date {
match => [ "col.time", "YYYY-MM-DD HH:mm:ss.SSSSSSSSS" ]
target => "@timestamp"
}
mutate {
add_field => {"[hour]" => "%{+HH}"}
add_field => {"[minute]" => "%{+mm}"}
add_field => {"[second]" => "%{+ss}"}
}
mutate {
convert => [ "rssi", "integer" ]
convert => [ "frame.size", "integer" ]
convert => [ "data.rate", "integer" ]
convert => [ "second", "integer" ]
convert => [ "minute", "integer" ]
convert => [ "hour", "integer" ]
}
if[frame.type]=="0"{
mutate {
replace => [ "frame.type", "Management" ]
}}
if[frame.type]=="1"{
mutate {
replace => [ "frame.type", "Control" ]
}}
if[frame.type]=="2"{
mutate {
replace => [ "frame.type", "Data" ]
}}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
4. elasticsearch
Определения индексов могут быть предварительно импортированыmapping
, это можно проверитьelasticsearch
Документация
5. kibana
Используйте диаграммы, панели и т. д. для визуализации данных, чтобы реализовать функции мониторинга, которые можно использовать в соответствии с потребностями бизнеса ~
резюме
использоватьtshak
Функции синтаксического анализа пакетов и экспорта данных можно гибко обрабатывать в соответствии с требованиями.С помощью инструментов больших данных с открытым исходным кодом можно реализовать инструменты, более подходящие для бизнеса, а также быстрый анализ сети, мониторинг в реальном времени, устранение неполадок, расширенный поиск , ретроспективный анализ, статистика, отчеты и т. д. могут даже заменить коммерческие сетевые системы ретроспективного анализа в некоторых сценариях.
Ссылаться на
- система анализа обратного отслеживания сетевого трафика moloch
- Tshark Logstash Filebeat Kibana Elasticsearch
Воспроизведение запрещено без разрешения