Просмотр Исходного

*Устанавливаем tshark в base:*

{panel}
yum install \-y wireshark
{panel}

*Включаем сбор дампов по cron:*

{panel}
Добавляем в /etc/crontab строчку:

45 * * * * root /app/reductor/usr/local/Reductor/bin/revisor_dump.sh 1.1.1.1 eth1 3600 1

Где 1.1.1.1 - ip-адрес Ревизора, eth1 - интерфейс, принимающий зеркало
{panel}

*Ждем сбор дампа.* По умолчанию он сохраняется в /var/revisor_dump/

После того, как дамп собран, открываем отчет Ревизора с зафиксированными нарушениями. В нем нас интересует url/ip и время пропуска.

Скачиваем сформированный, например, в час ночи дамп с Редуктора на машину с установленным tshark:

{panel}
scp /var/revisor_dump/1.1.1.1/2017.03.16/01/duplex.pcap root@2.2.2.2:/home/user/dump/duplex.pcap
{panel}

*Приступаем к анализу:*

*1. Нам необходимо найти tcp-stream по которому был зафиксирован пропуск. Сделать это можно с помощью tshark:*

{panel}
tshark \-T fields \-e tcp.stream \-e frame.time \-e ip.src \-e ip.dst \-e \_ws.col.Info \-e http.host \-r /home/user/dump/duplex.pcap \| grep grep kasparov.ru
{panel}

Допустим, пропуск был зафиксирован в 03:04:34, ищем GET запрос по времени

{panel}
user@carbonsoft ~ $ tshark \-T fields \-e tcp.stream \-e frame.time \-e ip.src \-e ip.dst \-e \_ws.col.Info \-e http.host \-r /home/user/dump/duplex.pcap \| grep grep kasparov.ru

4937 May 16, 2017 03:04:33.277118000 \+05 93.188.207.254 52.0.182.227 GET / HTTP/1.1 www1.kasparov.ru
4942 May 16, 2017 03:04:33.424510000 \+05 93.188.207.254 52.0.80.30 GET / HTTP/1.1 www1.kasparov.ru
{color:#ff0000}{*}4944 May 16, 2017 03:04:34.935537000 \+05 93.188.207.254 54.236.109.144 GET / HTTP/1.1 www1.kasparov.ru{*}{color}
4946 May 16, 2017 03:04:35.224281000 \+05 93.188.207.254 52.22.237.157 GET / HTTP/1.1 www1.kasparov.ru
user@carbonsoft ~ $
{panel}

В левой колонке видим tcp-stream 4944, дату и время.

*2. Сортируем дамп по tcp-stream:*

{panel}
user@carbonsoft ~ $ tshark \-R "tcp.stream eq 4944" \-2 \-T fields \-e frame.time \-e frame.number \-e ip.src \-e ip.dst \-e \_ws.col.Info \-e http.host \-r /home/user/dump/duplex.pcap
May 16, 2017 03:04:34.794475000 \+05 1 93.188.207.254 54.236.109.144 33819 → 80 [SYN] Seq=0 Win=1460 Len=0 MSS=1460 SACK_PERM=1 TSval=37755423 TSecr=0 WS=1
May 16, 2017 03:04:34.934989000 \+05 2 93.188.207.254 54.236.109.144 33819 → 80 [ACK] Seq=1 Ack=1 Win=1460 Len=0 TSval=37755437 TSecr=3815877753
May 16, 2017 03:04:34.935537000 \+05 3 93.188.207.254 54.236.109.144 GET / HTTP/1.1 www1.kasparov.ru
May 16, 2017 03:04:34.935581000 \+05 4 54.236.109.144 93.188.207.254 HTTP/1.1 302 Moved Temporarily (text/html)
May 16, 2017 03:04:34.935587000 \+05 5 54.236.109.144 93.188.207.254 80 → 33819 [RST, ACK] Seq=1 Ack=254 Win=252 Len=0
May 16, 2017 03:04:34.936544000 \+05 6 93.188.207.254 54.236.109.144 33819 → 80 [ACK] Seq=254 Ack=333 Win=1460 Len=0 TSval=37755437 TSecr=3815877753
May 16, 2017 03:04:34.938385000 \+05 7 93.188.207.254 54.236.109.144 33819 → 80 [RST, ACK] Seq=254 Ack=333 Win=1460 Len=0 TSval=37755437 TSecr=3815877753
May 16, 2017 03:04:35.076308000 \+05 8 93.188.207.254 54.236.109.144 33819 → 80 [RST] Seq=254 Win=0 Len=0
May 16, 2017 03:04:35.079443000 \+05 9 93.188.207.254 54.236.109.144 33819 → 80 [RST] Seq=254 Win=0 Len=0
May 16, 2017 03:04:35.079687000 \+05 10 93.188.207.254 54.236.109.144 33819 → 80 [RST] Seq=254 Win=0 Len=0
user@carbonsoft ~ $
{panel}

Видим что со стороны Редуктора была сработка, сформирован редирект и отправлен tcp-rst:

{panel}
May 16, 2017 03:04:34.935537000 \+05 3 93.188.207.254 54.236.109.144 GET / HTTP/1.1 www1.kasparov.ru
May 16, 2017 03:04:34.935581000 \+05 4 54.236.109.144 93.188.207.254 HTTP/1.1 302 Moved Temporarily (text/html)
May 16, 2017 03:04:34.935587000 \+05 5 54.236.109.144 93.188.207.254 80 → 33819 [RST, ACK] Seq=1 Ack=254 Win=252 Len=0
{panel}

В данном случае ответ Редуктора по каким-то причинам не дошел до Ревизора. Необходимо снимать дампы на промежуточном оборудовании и искать "слабое звено".

{color:#ff0000}{*}После сбора дампа необходимо удалить, либо закомментировать с помощью символа "#" строчку в crontab, во избежание переполнения жесткого диска.*{color}