Thread overview
İnternet Trafiğini Denetlemek
Apr 14, 2016
İbrahim
Apr 14, 2016
İbrahim
Apr 18, 2016
İbrahim
Jul 06, 2016
kerdemdemir
Jul 28, 2016
İbrahim
Jul 31, 2016
kerdemdemir
April 14, 2016

Selamün Aleyküm;
Ben internet trafiğini denetlemek istiyorum. Bildiğimiz üzere gerek mobil işletim sistemlerinde gerek pc işletim sistemlerinde bazı uygulamalar internet kullanarak indirme ve/veya yükleme yaparlar. Ben de sistemde kullanıcının kurduğu bu uygulamalar nelerdir ve ne kadar internet harcıyorlar uygulamamda göstermek istiyorum. Ayrıca bu uygulamaların internet kullanımını kısıtlamak istiyorum. Bunu nasıl yapabilirim? Yani bunu yapabilmek için hangi kütüphaneleri veya sdk'ları kullanmak gerekiyor? Ben C++ / Qt ile yapmak istiyorum ama zorunlu değil. Bu işin genel mantığı nedir? Teşekkürler!

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 14, 2016

Mobilde bu iş bilidğim kadarıyla tam gelişmemiş. Tabii ki benim bildiğim kadarıyla öyle.
Alıntı:

>

acehreli:
Geçmekte olan IP paketlerine bakılıyor.

Bu tam olarak ne demek?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 14, 2016

Geçmekte olan IP paketlerine bakılıyor. İşletim sisteminde bunu sağlayan olanaklar var. Ama artık yazmaya hiç gerek yok çünkü bu işi yapan ücretsiz araçlar da var. "monitor and analyze internet traffic" diye aratınca bulunuyor.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 14, 2016

Ağ kartı, yerel ağdaki trafiğin kendisine yönlenmiş olmayanlarını da görebilir. Ağa bu biçimde bağlanmaya promiscuous mode deniyor.

Tabii bu işin yalnızca gözlemleme tarafını hallediyor. Bu bilgiden yola çıkarak firewall vs. ayarlar değiştirilebilir.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 18, 2016

Tekrardan merhaba;
Ben bu işi Android tarafında yapmak için TrafficStats (http://developer.android.com/reference/android/net/TrafficStats.html) adlı sınıfı buldum (Java ile kullanılıyor). Ama bu sınıfta en fazla yapabildiğimiz şey gördüğüm kadarıyla hangi uygulama ne kadar internet verisi tüketiyor onu göstermek. Tamam ama benim bir de bu uygulamalara veri kullanımı konusunda kısıtlama getirmem gerekli lakin bunu nasıl yapacağım? İnternette Android ile ilgili böyle bir şeye rastlamadım. Acaba istediğimiz şeyi yapamayacak mıyız ki? Ayrıca bunu java yerine C++'da veya başka dillerde kullanma şansımız hiç yok mu? Tüm sınıflar malum Java sınıfları :). JNI falan var ama neredeyse tüm Java sınıflarını C++'a gömmek gerekiyor.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 18, 2016

Bu konu beni aşıyor. Belki "data limiter" gibi sözcüklerle aratılabilir.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 06, 2016

İbrahim Merhaba,

Bu işi 3 sene yapmış biri olarak sorularına cevap verebilirim diye düşünüyorum.

Eğer Trafik dinleyici(Network Sniffer) yapmak istiyorsan en alt seviyede kullanılan kütüphane libpcap'tir.
https://sourceforge.net/projects/libpcap/, http://www.tcpdump.org/. Bu kütüphaneyi kullanarak işletim sistemini atlayarak direk FPGA ile(network kartı) haberleşebilirsin. Bu kütüphane ile network kartı bende dinlemek istiyorum diye istekde bulunursan işletim sistemine yollanan her paketin bir kopyasıda senin programına gönderilir. Bu konu biraz derin tabi tamam paketleri aldın ama TCP/IP katmanını yazman gerekicektir. Artık arkanda bir işletim sistemi yok çünkü. Senin sorduğun kadar konuyu derinleştirebileceğimi umuyorum. Örn https parse etmek istiyosan OpenSLL veya HTTP parse etmek istiyosan LibHTTP gibi kütüphaneler tavsiye edebilirim.

Eğer kod yazmadan bir şeyler yapmak istersen "WireShark" programını indir. Kurduğun bilgisayardaki paketleri direk gözlemleyebildiğini göreceksin.

Daha performanslı bir şey lazımsa https://www.snort.org/ gibi açık kaynaklı programları deneyebilirsin. Bunlar ciddi miktarda trafik dinleyebilirler saniyede gigabytelar seviyesinde.

Tabi önemli olan dinlemek istediğin trafiğe nasıl ulaşıcağın. Biz network operatörlerine çalıştığımız için Örn vodafone bize networkunde bütün trafiğin geçtiği çok güçlü bir server veriyordu bunu izinsiz yapman imkansız. Küçük çaplı networkleri korsan yollarla yapma işleri apayrı konular ve etik olmadığı için paylaşmayacağım.

Saygılarımla
Erdem.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 28, 2016

@kerdemdemir Teşekkürler. Peki bu kütüphaneler ile internet ağını dinleyebiliriz lakin buna müdahale edebilir miyiz?
Mesela X uygulaması kişinin sisteminde 500MB internet yedikten sonra (yani kişinin interneti 500MB gitmiş) bu X uygulamasının artık interneti kullanmamasını sağlayabilir miyiz? Yani interneti yemeyi bıraktırabilir miyiz? Teşekkürler.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 28, 2016

Ben bu konunun yalnızca adını biliyorum: "traffic shaper", "bandwith limiter", vs. diye aratabilirsin.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 31, 2016

Evet edebiliriz. Ali hocamın bahsettiği "Traffic Shaper" yazmıştım ben.

Internet trafiğini iki şekilde alabilirsin a paketi gönderen olduğunu düşünelim örn. youtube.com.
b bizim dinleyicimiz(man in the middle) c de videoyu oynatmak isteyen kişi.

1 - Capture modunda, bize paketin bir kopyası gelir.

a ------------- |----------------- c
|
|
b

Bu durumda şunu yapıp paketi engelleyebiliriz:

a ------------- |----------------- c
| | |
| | |
--------------- b------------------
TCP(Reset) HTTP(Redirection 307)

Bu durumda a'nın paketini alır almaz a'ya TCP reset gönderebiliriz ve C'ye eğer söz konusu HTTP request'i ise
307 gönderebiliriz. Bu durumda bu TCP oturumu sonlandırılmış olur.

2 - Inline modunda

a ------------- b----------------- c

Inline modu riskli bir moddur. Eğer senin makineye bir şey olursa bütün internet kesilebilir.
Burumda sadece a 'ya reset gönderip. Paketi "drop" etme olasılığımız vardır. Çünkü artık C ye bir kopyası gitmez.

b makinesinde genelde kurallar koyulur. İşte 192.168.10.23 Ip li makine bittorrent hızı 100Kb yi geçmesin veya 1 ayda 500 mb yi geçmesin gibi. Bu kuralları okuyan b makinesindaki programımız her IP için paketleri ayrı ayrı inceler ve o IP nin ne kadar trafik kullandığını(bazen protocol bazlı) filan bellekte tutar. Sonra en sonunda eğer
kurallardan fazla kullanım olursa yukardaki işlemlerle bağlantıyı sonlandırır.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]