|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (45)
просмотр истории страницы*Устанавливаем tshark в base:* |
*Включаем сбор дампов по cron* |
|
{code} yum-install -y wireshark {code} |
Для этого, добавляем в /app/reductor/etc/crontab строчку: |
|
*Включаем сбор дампов по cron:* |
{panel} |
|
{code} Добавляем в /etc/crontab строчку: |
45 * * * * root /usr/local/Reductor/bin/revisor_dump.sh 1.1.1.1 eth1 3600 1 |
|
45 * * * * root /app/reductor/usr/local/Reductor/bin/revisor_dump.sh 1.1.1.1 eth1 3600 1 |
{panel} |
|
Где 1.1.1.1 - ip-адрес Ревизора, eth1 - интерфейс, принимающий зеркало |
{code} Где |
* 1.1.1.1 - IP-адрес Ревизора/Carbon Reductor Satellite (необходимо указать IP Вашего Ревизора); * eth1 - интерфейс, принимающий зеркало (необходимо указать интерфейс, принимающий зеркало на Вашем сервере); * 3600 - время сбора дампа в секундах; * 1 - тип трафика (0 - весь трафик, 1 только http/https/dns). |
|
*Ждем сбор дампа.* По умолчанию он сохраняется в /var/revisor_dump/ |
|
После того, как дамп собран, открываем отчет Ревизора от АС "Ревизор" с зафиксированными нарушениями. В нем нас интересует url/ip и время пропуска. Также при анализе стоит учитывать, что существует поле "Адрес перенаправления". Это именно тот адрес, на который обращался АС "Ревизор". |
|
Скачиваем сформированный, например, в час ночи дамп с Редуктора на машину с установленным tshark: |
*Скачиваем сформированный, например, в три часа ночи дамп с Carbon Reductor на машину с установленным tshark/wireshark.* |
|
{code} {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 |
\#scp /app/reductor/var/revisor_dump/1.1.1.1/2017.03.16/03/duplex.pcap root@2.2.2.2:/home/user/dump/duplex.pcap |
{code} {panel} |
|
*Приступаем к анализу:* |
|
*1. Нам необходимо найти tcp-stream по которому был зафиксирован пропуск. Сделать это можно с помощью tshark:* |
|
{code} 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 {code} |
Для примера возьмем пропуск в четвертом часу "www1.kasparov.ru" |
|
Допустим, пропуск был зафиксирован в 03:04:34, ищем GET запрос по времени |
{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 "kasparov.ru" {panel} |
|
{code} 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 |
Допустим, пропуск был зафиксирован в 03:04:34, ищем GET запрос по времени. |
|
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 4944 May 16, 2017 03:04:34.935537000 +05 93.188.207.254 54.236.109.144 GET / HTTP/1.1 www1.kasparov.ru 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 ~ $ {code} |
|
В левой колонке видим tcp-stream 4944, дату и время. |
{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 "kasparov.ru" |
|
*2. Сортируем дамп по tcp-stream:* |
4937 May 16, 2017 03:04:33.277118000 \+05 1.2.3.4 52.0.182.227 GET / HTTP/1.1 www1.kasparov.ru 4942 May 16, 2017 03:04:33.424510000 \+05 1.2.3.4 52.0.80.30 GET / HTTP/1.1 www1.kasparov.ru {color:#000000}{*}4944 May 16, 2017 03:04:34.935537000 \+05 1.2.3.4 54.236.109.144 GET / HTTP/1.1 www1.kasparov.ru{*}{color} 4946 May 16, 2017 03:04:35.224281000 \+05 1.2.3.4 52.22.237.157 GET / HTTP/1.1 www1.kasparov.ru {panel} |
|
{code} 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 ~ $ {code} |
В левой колонке видим tcp-stream с IP-адресом,который указан в отчете АС "Ревизора" и время совпадает, а именно {color:#000000}{*}54.236.109.144{*}{color}{color:#000000}, следовательно наш tcp-stream{color} 4944. |
|
Видим что со стороны Редуктора была сработка, сформирован редирект и отправлен tcp-rst: |
Также возможен случай, когда в сервер с Carbon Reductor не попал GET-запрос, тогда стоит искать по ip-адресу ресурса, который всегда фигурирует в файле отчёта агента: |
|
{code} {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 |
\# 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 "52.0.182.227" |
{code} {panel} |
|
В данном случае ответ Редуктора по каким-то причинам не дошел до Ревизора. Необходимо снимать дампы на промежуточном оборудовании и искать "слабое звено". |
Признаком того, что проблема с отсутствием GET-запроса в конкретном стриме - наличие пакета, который tshark пометит как +"TCP Previous segment not captured"+ |
|
Проблема в таком случае +в копировании трафика для зеркала+ или +в его доставке+ (где-то в сети на пути прохождения трафика есть "узкое" место) до Carbon Reductor. *2. Смотрим в дампе конкретный стрим, который мы нашли ранее:* {panel} \# 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 1.2.3.4 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 1.2.3.4 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 1.2.3.4 54.236.109.144 GET / HTTP/1.1 www1.kasparov.ru May 16, 2017 03:04:34.935581000 \+05 4 54.236.109.144 1.2.3.4 HTTP/1.1 302 Moved Temporarily (text/html) May 16, 2017 03:04:34.935587000 \+05 5 54.236.109.144 1.2.3.4 80 → 33819 [RST, ACK] Seq=1 Ack=254 Win=252 Len=0 May 16, 2017 03:04:34.936544000 \+05 6 1.2.3.4 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 1.2.3.4 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 1.2.3.4 54.236.109.144 33819 → 80 [RST] Seq=254 Win=0 Len=0 May 16, 2017 03:04:35.079443000 \+05 9 1.2.3.4 54.236.109.144 33819 → 80 [RST] Seq=254 Win=0 Len=0 May 16, 2017 03:04:35.079687000 \+05 10 1.2.3.4 54.236.109.144 33819 → 80 [RST] Seq=254 Win=0 Len=0 {panel} Видим что со стороны Carbon Reductor была реакция, сформирован REDIRECT 302 и отправлен tcp-rst: {panel} May 16, 2017 03:04:34.935537000 \+05 3 1.2.3.4 54.236.109.144 *GET / HTTP/1.1 www1.kasparov.ru* May 16, 2017 03:04:34.935581000 \+05 4 54.236.109.144 1.2.3.4 *HTTP/1.1 302 Moved Temporarily (text/html)* May 16, 2017 03:04:34.935587000 \+05 5 54.236.109.144 1.2.3.4 80 → 33819 *[RST, ACK]* *Seq=1 Ack=254 Win=252 Len=0* {panel} В данном случае ответ Carbon Reductor по каким-то причинам не дошел до Ревизора. Необходимо снимать дампы на промежуточном оборудовании и искать "слабое звено". |
{color:#ff0000}{*}После сбора дампа необходимо удалить, либо закомментировать с помощью символа "#" строчку в crontab, во избежание переполнения жесткого диска.*{color} |