== Перехват SIP-трафика на плате VE-01 == [[span(style=color: #FF0000, ''Внимание! Данное руководство предназначено для опытных пользователей. Выполнение некорректных команд на плате может привести к потере работоспособности платы. '')]] В актуальном ПО платы VE-01 и VE-02 имеется программа tcpdump, с помощью которой можно захватить трафик. === Захват Sip трафика === 1. Подключиться к плате VE по ssh ([[mc-04:wiki:Mc04putty_ve]]). 2. Выполнить команду типа: {{{ tcpdump -v -s1514 port 5060 and host 192.168.0.105 }}} здесь после host нужно указать IP адрес дальней стороны (устройства которое пытается связаться с платой VE-01) - Провести эксперимент и наблюдать вывод пакетов SIP в консоль. - По окончанию эксперимента прервать выполнение команды tcpdump(нажать CTRL+C), затем выделить весь текст начиная с запуска команды tcpdump и до конца вывода и скопировать его в буфер (в putty копирование производится нажатием левой кнопки мыши на выделенный текст). - Вставить текст из буфера в текстовый файл. 3. Должно получиться что-то подобное: {{{ root@comcerto:/tmp# tcpdump -v -s1514 port 5060 and host 192.168.0.105 tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 1514 bytes 06:16:04.512319 IP (tos 0x68, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 32) 192.168.0.105.5060 > 192.168.0.147.5060: SIP, length: 4 06:16:04.853344 IP (tos 0x68, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 1004) 192.168.0.105.5060 > 192.168.0.147.5060: SIP, length: 976 INVITE sip:100@192.168.0.147:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.105:5060;branch=z9hG4bK4227904688 From: "123" ;tag=4009663443 To: Call-ID: 1_3246133754@192.168.0.105 CSeq: 1 INVITE Contact: Content-Type: application/sdp Allow: INVITE, INFO, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE Max-Forwards: 70 User-Agent: Yealink SIP-T21P_E2 52.80.14.2 Supported: timer Session-Expires: 180;refresher=uac Min-SE: 90 Allow-Events: talk,hold,conference,refer,check-sync Supported: replaces Content-Length: 315 v=0 o=- 20167 20167 IN IP4 192.168.0.105 s=SDP data c=IN IP4 192.168.0.105 t=0 0 m=audio 11926 RTP/AVP 8 0 102 18 101 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:102 G726-32/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=ptime:30 a=sendrecv a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 06:16:04.865300 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 468) 192.168.0.147.5060 > 192.168.0.105.5060: SIP, length: 440 SIP/2.0 407 Proxy Authentication Required Via: SIP/2.0/UDP 192.168.0.105:5060;branch=z9hG4bK4227904688 Proxy-Authenticate: Digest nonce="1560492964:155384d9f42e21d611ff2f4a6548f523",algorithm=MD5,realm="192.168.0.147",qop="auth,auth-int" To: ;tag=a5126e6b From: "123";tag=4009663443 Call-ID: 1_3246133754@192.168.0.105 CSeq: 1 INVITE Server: repro 1.10.2 Content-Length: 0 06:16:04.870323 IP (tos 0x68, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 305) 192.168.0.105.5060 > 192.168.0.147.5060: SIP, length: 277 ACK sip:100@192.168.0.147:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.105:5060;branch=z9hG4bK4227904688 From: "123" ;tag=4009663443 To: ;tag=a5126e6b Call-ID: 1_3246133754@192.168.0.105 CSeq: 1 ACK Content-Length: 0 06:16:04.882345 IP (tos 0x68, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 1260) 192.168.0.105.5060 > 192.168.0.147.5060: SIP, length: 1232 INVITE sip:100@192.168.0.147:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.105:5060;branch=z9hG4bK3315518714 From: "123" ;tag=4009663443 To: Call-ID: 1_3246133754@192.168.0.105 CSeq: 2 INVITE Contact: Proxy-Authorization: Digest username="123", realm="192.168.0.147", nonce="1560492964:155384d9f42e21d611ff2f4a6548f523", uri="sip:100@192.168.0.147:5060", response="ede18207ecfb6d870a9e4acb97174604", algorithm=MD5, cnonce="0a4f113b", qop=auth, nc=00000001 Content-Type: application/sdp Allow: INVITE, INFO, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE Max-Forwards: 70 User-Agent: Yealink SIP-T21P_E2 52.80.14.2 Supported: timer Session-Expires: 180;refresher=uac Min-SE: 90 Allow-Events: talk,hold,conference,refer,check-sync Supported: replaces Content-Length: 315 v=0 o=- 20167 20167 IN IP4 192.168.0.105 s=SDP data c=IN IP4 192.168.0.105 t=0 0 m=audio 11926 RTP/AVP 8 0 102 18 101 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:102 G726-32/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=ptime:30 a=sendrecv a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 06:16:04.956783 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 591) 192.168.0.147.5060 > 192.168.0.105.5060: SIP, length: 563 SIP/2.0 180 Ringing Via: SIP/2.0/UDP 192.168.0.105:5060;branch=z9hG4bK3315518714 Record-Route: Contact: To: ;tag=1425527049 From: "123" ;tag=4009663443 Call-ID: 1_3246133754@192.168.0.105 CSeq: 2 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK Server: repro 1.10.2 Supported: replaces, timer, 100rel User-Agent: eXosip/4.1.0 P-Asserted-Identity: Content-Length: 0 06:16:10.526388 IP (tos 0x68, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 360) 192.168.0.105.5060 > 192.168.0.147.5060: SIP, length: 332 CANCEL sip:100@192.168.0.147:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.105:5060;branch=z9hG4bK3315518714 From: "123" ;tag=4009663443 To: Call-ID: 1_3246133754@192.168.0.105 CSeq: 2 CANCEL Max-Forwards: 70 User-Agent: Yealink SIP-T21P_E2 52.80.14.2 Content-Length: 0 06:16:10.539300 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 306) 192.168.0.147.5060 > 192.168.0.105.5060: SIP, length: 278 SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.0.105:5060;branch=z9hG4bK3315518714 To: ;tag=24766014 From: "123" ;tag=4009663443 Call-ID: 1_3246133754@192.168.0.105 CSeq: 2 CANCEL Server: repro 1.10.2 Content-Length: 0 06:16:10.572847 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 349) 192.168.0.147.5060 > 192.168.0.105.5060: SIP, length: 321 SIP/2.0 487 Request Cancelled Via: SIP/2.0/UDP 192.168.0.105:5060;branch=z9hG4bK3315518714 To: ;tag=1425527049 From: "123" ;tag=4009663443 Call-ID: 1_3246133754@192.168.0.105 CSeq: 2 INVITE Server: repro 1.10.2 User-Agent: eXosip/4.1.0 Content-Length: 0 06:16:10.577410 IP (tos 0x68, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 307) 192.168.0.105.5060 > 192.168.0.147.5060: SIP, length: 279 ACK sip:100@192.168.0.147:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.105:5060;branch=z9hG4bK3315518714 From: "123" ;tag=4009663443 To: ;tag=1425527049 Call-ID: 1_3246133754@192.168.0.105 CSeq: 2 ACK Content-Length: 0 10 packets captured 11 packets received by filter 0 packets dropped by kernel }}} == Установка tcpdump(актуально только для старых прошивок плат VE, где его нет) == === 1. Скопировать файлы === [raw-attachment:libpcap_1.0.0-1_c300evm.ipk libpcap_1.0.0-1_c300evm.ipk] и [raw-attachment:tcpdump_4.0.0-1_c300evm.ipk tcpdump_4.0.0-1_c300evm.ipk] в каталог {{{/tmp}}} на плате VE-01 (Сделать это можно, например [mc-04:wiki:Mc04winscp_ve с помощью программы WinScp] ) === 2. Подключиться к SSH консоли === Например, [mc-04:wiki:Mc04putty_ve программой Putty] ( перед подключением в Putty нужно установить большее количество строк в выводе консоли {{{Настройки->Window->Lines of scrollback}}}, по умолчанию там значение 2000, для нашего эксперимента это маловато, можно увеличить раз в 10. ) === 3.Выполнить следующие команды === 3.1. Перейти в каталог /tmp {{{cd /tmp}}} 3.2. Установить пакеты из каталога /tmp {{{opkg install libpcap_1.0.0-1_c300evm.ipk tcpdump_4.0.0-1_c300evm.ipk}}} Вот пример успешного выполнения команд: {{{ root@comcerto:~# cd /tmp root@comcerto:/tmp# opkg install libpcap_1.0.0-1_c300evm.ipk tcpdump_4.0.0-1_c300evm.ipk Installing libpcap (1.0.0-1) to root... Installing tcpdump (4.0.0-1) to root... Configuring tcpdump Configuring libpcap }}}