Wireshark Kullanımı ve 5 Adımda IP Telefon (VoIP) Trafiği İzleme

 

 

Bu yazımda size Wireshark programından bahsedeceğim ve bu programın VoIP iletişiminde SIP trafiğinin analizini nasıl sağladığını, püf noktalarına değinerek ve örneklerle göstererek açıklayacağım. Teknik olarak bu uygulamaya ihtiyacı olmayanlar için ise, biraz daha renkli bir içerik kazandırmak için görüşmelerin nasıl dinlenebildiğini de bir örnekle göstereceğim. Görüşmelerin dinlenmesi zaman zaman ses sorunları ile ilgili analizler için kullanılabilmektedir.

 

 

Wireshark kullanımını zaten bilen kişiler direk ikinci başlığa, yani 5 Adımda Wireshark ile SIP VoIP Trafiği Analizi bölümüne geçebilirler.

 

Wireshark Nedir, Nasıl Kullanılır?

 

Wireshark network trafiğinin, bir grafik ara yüz üzerinden izlenmesini sağlayan, pek çok zaman hayat kurtarıcı öneme sahip bir programdır. Uygulamanın kurulu olduğu bilgisayar üzerinden anlık network trafiği izlenebileceği gibi, Wireshark daha önce kaydedilmiş dosyaların incelenmesi amacı ile de kullanılabilir.

 

Ücretsiz bir program olan Wireshark’ın kuracağınız işletim sistemine uygun sürümünü http://www.wireshark.org/ sitesinden indirebilirsiniz.

 

Uygulama indirilip kurulduğunda, bu uygulama ile birlikte Windows yüklü bilgisayara WinPcap isimli bir uygulama daha kurulacaktır. WinPcap, kurulu olduğu bilgisayarın anlık Ethernet trafiğinin yakalanmasını sağlayan programdır. Wireshark bu uygulamadan gelen veriyi kullanarak size grafik bir ara yüz üzerinden Ethernet trafiğini izleme/inceleme fırsatı sunar.

 

 

 

 

Uygulama başlatıldığında yukarıdakine benzer bir ekran açılacaktır. Burada Start bölümünün altında bilgisayarda algılanan Ethernet kartları listelenecektir. Bu kartlardan biri seçilir ve ardından Start butonuna tıklanırsa uygulama ilgili Ethernet kartının network trafiğini loglamaya başlar:

 

 

 

 

 

Burada üst bölümde akan trafik anlık olarak görülebilir, hangi adresten hangi adrese, ne zaman, hangi protokolde paketler gittiği izlenebilir. Alt taraftaki bölümde ise her bir paketin içeriği değişik katmanlarda incelenebilir (Sizde alt tarafta üçüncü bir pencerede Byte şeklinde paket içerikleri de gösteriliyor olabilir, ben bir işime yaramadığı için bu bölümü View  altındaki Packet Bytes seçim kutusunu kaldırarak kapattım).

 

Filter bölümüne çok çeşitli filtreler girerek sadece ilgilenilen trafiğin gösterilmesi sağlanabilmektedir. Filter, çok önemli bir bölüm, çünkü çoğu zaman incelenecek trafiğin dışında pek çok paket bilgi kirliliği yaratır ve inceleme yapılmasını güçleştirir. and, or gibi ifadelerle birden fazla filtreyi birlikte kullanabiliyorsunuz.

 

Burada basit bir örnek analiz yapalım ve DNS sunucunun düzgün çalışıp çalışmadığını beraber Wireshark üzerinden görelim:

 

Wireshark’ı Ethernet kartımı seçip başlattıktan sonra bilgisayarımdan bir komut satırı açtım ve komut olarak

 

ping www.cozumpark.com

 

girdim.

 

Wireshark’ta Filter bölümüne gereksiz trafik gösterilmesin, sadece DNS trafiği görüntülensin diye dns yazdım ve Enter tuşuna bastım. Ardından istediğim logu görünce yukarıdaki kırmızı X ile gösterilen Stop ( ) tuşuna basarak log alımını durdurdum:

 

 

 

İlgili logu aldığım bilgisayarın IP adresi 192.168.76.133 ve DNS sunucunun adresi 192.168.76.133. Bunları trafik bölümünde Source ve Destination sütunlarında görebiliyorum. Gördüğüm kadarı ile bilgisayarım DNS sorgusunu DNS sunucuya gönderiyor, ardından DNS sunucusundan yanıt geliyor. Ayrıca Info bölümünde cozumpark IP adresinin DNS sunucusundan 188.132.200.15 olarak geldiğini görebiliyorum.

 

Burada; IP adresinin çözülüp çözülmediğini komut satırından zaten görebiliyordum, diyebilirsiniz. Fakat sizin yaşayacağınız sorunda farklı uygulamalardan farklı adres tipleri için sorgular yapılıyor olabilirdi. Wireshark kullanılarak tüm sorunlar için benzeri şekilde neler olup bittiğini network üzerinden, yani kaynağından görebilmekteyiz.

 

5 Adımda Wireshark ile SIP VoIP Trafiği Analizi

 

SIP şu an Dünya’daki en güçlü ve kolay geliştirilebilen VoIP protokolüdür. Artık güncel pek çok IP iletişim sistemi SIP altyapısı kullanılarak geliştirilmektedir. Benim de ürün yönetimi tarafında çalıştığım Karel iletişim sistemleri ve diğer güncel IP iletişim sistemleri, esneklik ve uyumluluk yeteneklerini bu protokol sayesinde geliştirebilmektedirler. Makalenin bu bölümünde size Wireshark ile nasıl SIP VoIP trafiğinin analizinin yapılabildiğini anlatacağım.

 

Burada anlattığım analizler sayesinde; sistemlerde yaşanan sorunların nedenlerinin saptanması ve çözülmesi, farklı sistemlerin mükemmel uyumla çalıştırılması, yeni yazılımların/özelliklerin geliştirilmesi ve bazen de gerekli sebeplerle görüşmelerin izlenmesi/dinlenmesi sağlanabilir. Burada ben sadece SIP trafiği ile ilgili bilgi paylaşıyorum fakat aslında çok benzer yöntemlerle farklı protokollerin de aynı uygulama ile izlenmesi/dinlenmesi mümkün ve gayet kolaydır.

 

Adım 1: İzlemek istediğimiz veriye ulaşmak için altyapıyı sağlama

 

Tümleşik İletişim Sistemi ve tüm IP iletişim sistemleri, network üzerinde çalıştıkları için network trafiğini izlemek için ya izleyeceğimiz sisteme erişimimiz olması gerekmektedir ya da ilgili sistemin bağlı olduğu switch’te dinleme yapabilmeniz gerekmektedir.

 

Bu dinleme işlemi için; akıllı switch üzerinde görüşmenin geçtiği bir portu bilgisayarınızın bağlı olduğu porta mirror etmeniz gerekmektedir. Ardından yukarıda Wireshark kullanımında gösterdiğim gibi Wireshark’ı başlatabilir ve dinlemeyi gerçekleştirebilirsiniz. Burada dikkat etmeniz gereken son önemli bir husus daha vardır. Eğer bu şekilde switch trafiğini mirror etmenize rağmen network trafiğini (sniff edemiyorsanız” da sıklıkça kullanılır) dinleyemiyorsanız, Wireshark’ın Capture Options bölümünde Capture all in promiscous mode seçeneğinin seçili olup olmadığını kontrol edin. Bu parametre başka Ethernet kartlarının trafiğini görebilmek için mutlaka seçili olmalıdır.

 

Adım 2: Wireshark’ta bir telefon görüşmesi yakalama

 

Network tarafını ayarladıktan sonra artık Wireshark başlatılabilir. Bundan sonra görüşme yapıldığında eğer konfigürasyonda bir sorun yoksa çağrının loglarda görülebilmesi gerekmektedir. Ben işlemleri kolaylaştırmak için kendi bilgisayarım üzerinde yazılım tabanlı bir telefon uygulaması (Karel YT500) başlatıyorum ve uygulama SIP iletişim sistemine otomatik kaydoluyor. Yazılım tabanlı telefon uygulaması YT500 ile telefon görüşmesi, anlık mesajlaşma, video görüşme, video konferans, sesli konferans gibi işlemleri gerçekleştirmek mümkündür. Yapacağınız bir telefon görüşmesinin aslında teknik olarak herhangi bir IP telefon ile yapacağınız görüşmeden bir farkı olmadığı için bu uygulamayı kullanıyorum.

 

Aslında Wireshark, bu uygulamanın/IP telefonun kayıt aşamasındaki sorunlarını algılamak için de kullanılabilirdi, ama makalenin çok dışına çıkmamak için bu yazıda sadece bir çağrının(görüşmenin) incelenmesini göstereceğim.

 

 

 

 

Yazılım tabanlı telefon uygulamasının arayüzü yukarıdaki gibi. Diğer taraftan Wireshark’ı Ethernet trafiğini izlemek için başlatıyorum.

 

 

 

 

Telefon uygulamasından arayacağım numarayı tuşluyor ve çağrıyı başlatıyorum:

 

 

 

 

Çağrı sırasında akan bu mavi paketler RTP protokolü wireshark tarafından algılandığı ve mavi ile otomatik renklendirildiği için görülmektedir. RTP ses paketlerinin taşındığı protokoldür. Info bölümünde gördüğümüzG.711 PCMU ise ses paketlerinin taşındığı kodek bilgisini içerir. G.711 kodeği ses paketlerine herhangi bir sıkıştırma işlemi gerçekleştirmez. Bu nedenle hem CPU/DSP kullanımı çok düşüktür hem de dinlenmesi çok kolaydır (bu sebepten dolayı görüşmeyi bu kodekle gerçekleştirdim).

 

İletişim sırasında herhangi bir şifreleme de kullanmadığım için görüşmeleri kolaylıkla analiz edebileceğiz.

 

Görüşme tamamlanınca Wireshark’ı analize başlamak için durduruyoruz:

 

 

 

 

Görüşmenin sona erdiğini mavi paketlerin artık akmamasından da görebilirsiniz. Artık telefon görüşmesini yakalamış olduk.

 

Adım 3: SIP IP Telefon Görüşmesinin Analizi

 

Şimdi elimizde görüşme olduğuna göre analiz kısmına geçebiliriz. Öncelikle SIP trafiğini yakalayıp yakalamadığımızı görmek için Filter kısmına sip yazıyor ve Enter tuşuna basıyorum:

 

 

 

 

Yukarıda çeşitli SIP mesajlarının yakalandığını görebiliyoruz. Wireshark UDP SIP mesajlarını da Mavi renkle göstermektedir.

 

En üstteki INVITE sip:100ucap.karel.com.tr satırından 100 numarasına 192.168.76.133 IP adresinden bir çağrı başlatıldığını görebiliyoruz. Alt penceredeki Session Initiation Protocol bölümünü sağ tıklayıp Expand Allyaparsak, bu mesajla ilgili her türlü ayrıntılı bilgiyi wireshark üzerinden görebiliriz. Genelde sorun çözümü için bu bölümlerin ayrıntılı incelenmesi gerekiyor.

 

Bu noktada öncelikle SIP ile ilgili bazı temel bilgileri sizinle paylaşmak istiyorum. Çağrı sorunlarını algılayabilmek için öncelikle SIP ile yapılmış sorunsuz bir çağrının nasıl işlediğini görmemiz gerekiyor.

 

Çağrının analizini yapmak için Wireshark üzerinde az önce yaptığımız SIP filtresini kaldıralım ve tekrar Enter tuşuna basalım. Ardından Telephony Sekmesinden VoIP Calls seçeneğine tıklayalım.

 

 

 

 

Bu menüde Wireshark bize yeteneklerini gösteriyor ve bize yakalanan paketlerdeki telefon görüşmelerini otomatik olarak algılayıp gözler önüne seriyor:

 

 

 

 

Bize kalan sadece hangi çağrıyı izleyeceğimizi seçmek ve gerçekleştirmek/yapmak istediğimiz seçeneğe tıklamak.

 

Yukarıda sadece bir çağrı bulundu, yakalanan paketlerde daha fazla çağrı olsaydı, tümünü alt alta görecektik. Çağrıda From kısmından kimin (Onur Erisgen’in 6143 numarasından) çağrıyı başlattığını görebiliyorum, Tokısmından da aranan numarayı (yani 100’ün arandığını) görebiliyorum. Ben çağrıyı seçtikten sonra önce Flow seçeneğine tıklayarak çağrının işleyişini göstermek istiyorum:

 

 

 

 

Flow seçeneği bize çağrının akışını çok temiz bir şekilde gösteriyor. Çağrıyı bu şekilde temiz görebilmemiz için

 

INVITE:                mesajı çağrı başlatmak için kullanılan mesaj tipidir (Başka amaçlarla da kullanılır, bu konu dışı). Sağ taraftaki bölümden hangi numaradan hangi numaraya çağrı başlatılmak istendiği görülüyor. SDP çağrıyı gönderenin hangi ses kodeklerini desteklediğini, hangi IP adresinden/porttan ses (yani RTP) paketlerini göndereceğini belirttiği bölümdür.

 

100 Trying:         Karşı tarafın Invite mesajını aldığını ve işlemi başlattığını belirten mesajdır.

 

407 Proxy Authentication Required:     Karşı tarafın authentication yapılmadan çağrı kurulmasına izin vermediğini gösterir. Çağrıyı başlatanın bu mesajla gelen key ile SIP şifresini MD5’laması ve onu içeren bir Invitemesajı ile tekrar çağrı başlatması gerekir.

 

ACK:                      Çağrıyı başlatan bu isteği ACK mesajı ile onaylar.

 

INVITE:                SIP şifresi içeren yeni bir çağrı aynı bilgilerle tekrar başlatılır.

 

100 Trying:         Karşı taraf bu mesajı ile ilgili işlem başlattığını 100 Trying mesajı ile belirtir.

 

200 OK:                Karşı tarafın çağrıyı cevapladığı bilgisi çağrıyı başlatılana belirtilir. Bu mesajın da içeriğinde SDP bölümü vardır. SDP çağrının hangi kodekle gerçekleştirildiğini (ilk gelen SDP’ye göre bu belirlenir ve ortak kodek seçilir) ve hangi IP adresinden/porttan görüşmenin gerçekleştirileceğini belirtir.

 

Not: Bizim aradığımız yer bir anons numarasıydı, karşı tarafta bir IP telefon olsaydı, 200 OK mesajından önce 180 Ringing mesajı gelirdi. Böylece arayan kişi çalıyor tonu duyardı.

 

RTP (g711U):     g711u kodekli ses paketleri uzak taraftan (192.168.124.124’ten) çağrıyı başlatan tarafa gönderilmeye başlanır.

 

ACK:                      Karşı tarafın ACK mesajını göndermesi çağrıyı almaya hazır olduğunu gösteriyor. Bazı sistemler bu ACK mesajı gelmeden çağrıyı başlatmazlar. Bazıları ise ACK mesajı gelmezse bir süre sonra sorun olduğunu algılayıp çağrıyı sonlandırırlar.

 

RTP (g711U):     192.168.76.133 IP adresinden de ses paketleri g711U kodeği ile gönderilmeye başlanmış. Bazen hatalı kodek görülebiliyor veya ses paketlerinin farklı bir IP adresine gönderildiği görülebiliyor. Bu tarz sorunlar bu logla kolayca anlaşılıp sorunun çözümü bulunabiliyor.

 

BYE:                      192.168.76.133 IP adresi görüşmeyi sonlandırıyor. Bazen çağrılar kendi kendine kesilebilir. Bu gibi durumlarda görüşmeyi hangi tarafın sonlandırdığını buradaki logda olduğu gibi bir log alarak kolayca çözebiliyoruz.

 

200 OK:                Karşı taraf çağrının sonlandırılma işlemini algıladığını ve işlemi gerçekleştirdiğini belirtiyor.

 

Adım 4:                Görüşmenin Dinlenmesi

 

SIP çağrının analizi ile genelde sorunlar çözülür. Fakat bazen ses kalitesi ile ilgili sorunlar da karşımıza çıkabiliyor. Bu gibi durumlarda görüşmeyi dinlemek için de Wireshark kullanılabilir.

 

Şimdi bu işlem için Flow penceresini kapatıyorum ve VoIP Calls penceresinden Player butonuna tıklıyorum.

 

 

 

Ardından çıkan pencerede Decode butonuna tıklıyorum ve aşağıdaki gibi Wireshark ses paketlerini çözüyor:

 

 

 

Burada her iki yönü de seçip Play butonuna tıkladığımızda görüşmeyi bilgisayarımız üzerinden dinleyebiliriz ve giden gelen seste bir problem olup olmadığını inceleyebiliriz.

 

 

 

 

 

Adım 5: Görüşmelerin dinlenmesini, çağrıların izlenmesini engelleme:

 

Bu makalede açıkladığım uygulamalar; çoğu zaman iyi niyetle sorunların tespit edilmesi, giderilmesi amacıyla gerçekleştirilirler.

 

Kurumunuzdaki iletişim sisteminde, bir sebeple, teknik olarak bu uygulamaların gerçekleştirilmesini engellemek istiyorsanız iletişim sisteminizin ve ilgili bileşenlerinin bunu destekleyebilmesi gerekmektedir.

 

Daha önceki makalemde kurulumunu anlattığım Karel UCAP tümleşik iletişim sistemi ve bileşenleri; SIP mesajlarının, yani çağrı bilgilerinin izlenmesini engelleyebilmek için SIP over TLS protokolünü desteklemektedir. Böylece sunucu tarafındaki ilgili sertifikaya sahip olmayan kişilerin SIP mesajlaşmalarını çözebilmesi mümkün olmamaktadır.

 

Ayrıca ses paketlerinin network üzerinde dinlenmesini engellemek için de SRTP desteği bulunmaktadır. SRTP sayesinde network trafiğinde taşınan ses paketleri şifrelenecek ve araya giren kişinin paketleri dinlemesi mümkün olmayacaktır.

 

Yine UCAP sisteminin bir başka özelliği de şudur; pek çok iletişim sisteminden farklı olarak bu sistemde iki IP telefon arasındaki veya bir dış hatla bir IP telefon arasındaki görüşmedeki ses paketleri sunucu üzerinden geçmemektedir. Böylece bir şekilde sunucuya sızan bir kişi bile ses paketlerini dinleyemeyecektir.

 

Son olarak bir not daha eklemek istiyorum:

 

SRTP kullanılmamış olsa bile sıkıştırılmış veya HD görüşmeleri yukarıda anlatılan şekilde direk dinleyemeyebilirsiniz. Bu tarz görüşmeleri dinlemek aslında yine de mümkündür. Tek gerekli olan şey; ilgili kodeğin wireshark veya başka bir uygulama üzerinden oynatılabilecek şekilde bilgisayara kurulmuş olmasıdır.

 

Herkese mutluluklar ve bol VoIP’li günler diliyorum.

Exit mobile version