Wireshark’ın 25. yılı: Her şeyi başlatan e-posta ve çıkarılan dersler
(blog.wireshark.org)- Gerald Combs’un 14 Temmuz 1998’de Ethereal 0.2.0 duyuru e-postasını göndermesi, 25 yıl sonra Wireshark’a uzandı; kişisel bir araç uzun ömürlü bir açık kaynak projesine dönüştü
- O dönemde GUI’li protokol analizörleri daha çok pahalı ticari ürünlerdi; ücretsiz seçenekler tcpdump veya snoop gibi komut satırı araçları olduğundan, kendi yaptığı analizörü açık kaynak olarak yayımladı
- Yayından birkaç gün sonra yamalar gelmeye başladı ve bir geliştirici topluluğu oluştu; Wireshark ağlarda performans, güvenilirlik ve güvenlik iyileştirmeleri ile eğitimde kullanılmaya başlandı
- Uzun vadeli işletim için kullanıcılar, eğitmenler ve geliştiricilerin yanı sıra hukuk, muhasebe ve altyapı desteği de gerekir; gereken destek kapsamı projenin ölçeğine göre değişir
- CACE Technology, Riverbed ve Sysdig’in desteğini alan Wireshark, yakın zamanda bağımsız büyüme için zemin hazırlamak üzere Wireshark Foundation’a taşındı
Ethereal’in yayımlanmasından Wireshark’ın 25. yılına
- Gerald Combs 25 yıl önce
ANNOUNCE: Ethereal 0.2.0başlıklı bir e-posta gönderdi- Ethereal, Ethernet frame’lerinin içeriğini yakalayıp etkileşimli olarak incelemeyi sağlayan bir ağ analizörüydü
- Paket verileri bir dosyadan ya da yerel ağ arayüzünden gerçek zamanlı olarak okunabiliyordu
- Kaynak dağıtımı ve ek bilgiler sunulmuş, görüş ve yamaların memnuniyetle karşılanacağı belirtilmişti
- Projenin adı en başından Wireshark değildi; 2006’da Wireshark olarak değiştirildi
- Yayımlandığı dönemde protokol analizörleri yaygın değildi; GUI analizörleri çoğu zaman pahalı ürünlerdi
- Ağın durumunu kontrol etmek için tcpdump, snoop gibi ücretsiz komut satırı araçları kullanılabiliyordu
- GUI analizörü gerekiyorsa pahalı ticari ürünler satın almak gerekiyordu
- İşinde ihtiyaç duyduğu analizör elinde olmayan Gerald Combs basit bir aracı kendisi geliştirdi ve bunu açık kaynak olarak yayımladı
Topluluğun sağladığı büyüme
- Ethereal’in yayımlanmasından birkaç gün sonra ilk yama geldi ve sonrasında katkılar sürmeye devam etti
- Küçük bir araç olarak başlayan proje, aktif bir geliştirici topluluğuyla buluşunca beklenenden çok daha fazla büyüdü
- Wireshark bugün dünyanın dört bir yanındaki kullanıcılar tarafından ağları daha hızlı, kararlı ve güvenli hale getirmek için kullanılıyor
- Eğitmenler, Wireshark ile yeni nesil güvenlik ve ağ mühendislerine ağların düşük seviyedeki işleyişini öğretiyor
Uzun ömürlü bir açık kaynak projesi için gerekenler
- Bir açık kaynak projesinin büyüyüp sürdürülebilmesi için farklı kategorilerdeki ihtiyaçların birlikte karşılanması gerekir
-
Kullanıcı desteği
- Gerçek kullanıcılar, deneyimli günlük kullanıcılardan yeni başlayanlara kadar çeşitlilik gösterir
- Kullanıcılar zaman zaman yardıma ihtiyaç duyar ve ihtiyaç duydukları destek de birbirinden farklıdır
-
Eğitmen desteği
- Uzmanlar ve deneyimli kullanıcılar, başkalarına projeden daha iyi yararlanmayı öğretebilir
- Eğitmenlerin de sürekli desteğe ihtiyacı vardır
-
Geliştirici desteği
- Kod katkısı yapmak veya projeyi geliştirmek ne kadar kolay olursa, proje ve topluluk o kadar sağlıklı olur
-
Hukuk ve muhasebe desteği
- Fikri mülkiyet hukuku, seyahat masrafı ödemeleri gibi düzenleyici, hukuki ve finansal alanlarda dış yardıma ihtiyaç vardır
- GitHub veya GitLab tek başına bu alanları çözmez
-
Altyapı
- Çevrimiçi varlığı ve iş birliğini mümkün kılan sunuculara, container’lara ve servislere ihtiyaç vardır
- GitHub veya GitLab’ın yeterli olup olmadığı, projenin somut ihtiyaçlarına göre değişir
Destek yapısı proje ölçeğine göre değişir
- Bu beş kategori, açık kaynağın Maslow tarzı ihtiyaç basamaklarıyla tamamen aynı olmasa da benzer bir yapıya sahiptir
- Kullanıcı, eğitmen ve geliştirici sınırları bulanık olabilir
- Genel olarak kullanıcılar ve eğitmenler, geliştiricilerin ortaya koyduğu çıktılara dayanır
- Projenin tamamı için herkesin iş birliği yapabileceği sağlam bir altyapı gerekir
- Her proje için aynı destek modeli gerekli değildir
- Küçük ve tek amaçlı bir görüntü işleme kütüphanesi yalnızca altyapı ve geliştiricilere ihtiyaç duyabilir
- Bu durumda kullanıcı topluluğunun da başka geliştiriciler olması muhtemeldir ve GitHub veya GitLab yeterli olabilir
- Çok özellikli büyük bir görüntü düzenleme uygulaması ise beş kategorinin tamamındaki ihtiyaçlara ve bunları destekleyecek bir iş modeline gerek duyabilir
Wireshark’ın işletim modeli ve Foundation’a geçiş
- Wireshark, büyük bir uygulamaya yakın bir proje olduğu için çok fazla yönetim ve destek gerektirir
- Yakın zamana kadar gerekli kaynaklar, Gerald Combs’un işvereninden projeyi barındırmasını isteme yöntemiyle sağlanıyordu
- CACE Technology, Riverbed ve Sysdig, Wireshark’a GitHub veya GitLab’ın ötesinde kaynaklar sağladı
- Buna örnek olarak protokol analizine adanmış konferans SharkFest verilebilir
- Son birkaç yılda projenin kendi ayakları üzerinde durma ihtiyacı arttı ve Sysdig’in yardımıyla bu yılın başlarında Wireshark Foundation’a taşındı
- Foundation’a geçiş, Wireshark’ın büyümeye devam etmesi ve topluluğunu desteklemesi için temel oluşturdu
25 yıl sonra kalan tavsiyeler
- Gerald Combs, 25 yıl önce o e-postayı gönderirken bugün bu proje hakkında blog yazıyor olacağını düşünmemişti
- Wireshark’ı destekleme ve yönetme deneyimi ona harika bir kariyer ve çok başarılı insanlarla tanışıp birlikte çalışma fırsatı sundu
- Açık kaynak bir proje başlatmak istiyorsanız tereddüt etmemeniz gerektiği mesajını veriyor
- Topluluğun sahip olduğu değerli içgörüleri paylaşabilmesini sağlamak önemlidir
- Yeni bir şey başlatmaktan korkmazsanız, 25 yıl sonra nereye varacağınızı bilemezsiniz
1 yorum
Hacker News yorumları
Wireshark, tüm ağ sorunlarını çivi gibi gösteren o meşhur çekiç misali bir araç
Daha özelleşmiş araçlar olsa bile Wireshark’la üzerine gittiğinizde genelde nedeni bulabiliyorsunuz
Kendine ağ uzmanı deyip de Wireshark’ı hiç kullanmamış ya da anlamayan bu kadar çok insan olmasına hâlâ şaşırıyorum; gerçek bir ağda neler olduğunu anlamak için belki de en önemli araç
Daha dün yükseltilmiş bir Asterisk/FreePBX sistemindeki garip davranışı paket yakalamayla izledim; o olmasa günlerce tahmin yürütmek zorunda kalacağımız bir sorunu, ağda neler olduğuna bakarak hemen daraltabildik
Ağ uzmanı değilim ama ilgili işler yaparken ara sıra kullandım; gücünü hissediyorsunuz ama çok küçük ve somut bir sorun yoksa ilk yaklaşımda insanı bunaltan bir araç
Gerektikçe öğrenilen türden bir araç mı, onu da merak ediyorum
Blog yazısı olarak da çok ilginç olurdu
2013 civarında Amazon’da eski bir Spring/Java uygulamasını/servisini bir Node.js kavram kanıtı olarak bir hafta içinde yapmam gerekiyordu; servisler arası kimlik doğrulama ve Tibco mesajlaşması iç içeydi
Açık bir Tibco istemci implementasyonu bulamadım; tasarrufa önem veren liderlik ilkesi yüzünden resmi spesifikasyonu almak da neredeyse imkânsızdı, oysa yalnızca birkaç isteğin paket yapısına dair ayrıntılara ihtiyacım vardı
Sonunda hangi aracın imdada yetiştiğini tahmin edebilirsiniz; o zamanki Principal Engineer da böyle bir aracın var olmasına şaşırmıştı
1983’te, Ethernet’in hâlâ kalın koaksiyel kablo ve vampire tap kullandığı dönemde Silicon Valley’de bir savunma yüklenicisinde çalışıyordum
Dünya genelindeki DSCS (Defense Satellite Communications System) yer istasyonlarının DECnet LAN’larını 9600 bps şifreli hatlarla bağlayan bir Ethernet köprü ürünü yapıyorduk; kodun bir parçası olarak Ethernet kartını promiscuous mode’a alan bir paket dökücü yazmıştım
Wireshark gibi bir yorumlayıcı yoktu ama ham paketleri terminale onaltılık olarak dökebilmek bile ağ hata ayıklamasında muazzam bir avantajdı
Yeni bir sistem kurduğumda Wireshark ilk yüklediğim araçlardan biri olur
O zamankiyle bugünkü protokol tam olarak aynı mı, “protokol” demek doğru mu onu da bilmiyorum
Ağ konularını daha derin kazımam gerektiğini düşündürüyor
Wireshark’ı yapan kişiyim
Herkesin sıcak sözlerini ve anılarını görmek sabahımı güzelleştirdi
Analizi tek iş parçacıklı gibi görünüyor, önbelleği de yok gibi; 10 Gbps bağlantıda yalnızca birkaç saniyeye denk gelen “sadece” birkaç GB’lık yakalamalarda bile zorlanıyor
En başından beri işimde vazgeçilmez bir araçtı
tcpdump da iyiydi ama bir pakete sağ tıklayıp follow TCP stream dediğinizde tüm konuşmayı 1 saniyede görebilmek oyunun kurallarını değiştiren bir özellikti
“right click->filter out this stream” de aynı şekildeydi; Ethereal/Wireshark’ın tcpdump kayıt dosyalarını okuyabilmesi sayesinde uzaktaki sunucuya ssh ile girip tcpdump çalıştırabiliyor, istemcide Wireshark’la iki taraftaki ağ akışlarını görebiliyorduk
Şüpheli ISP NAT’leri bir bakışta ortaya çıkıyordu; yanlış yapılandırılmış MPLS ağlarını da kanıt olarak gösterebiliyorduk, böylece yönlendirme ekibi sadece “bizim tarafta iyi görünüyor” diyemiyordu
Yalnız yazıdaki bir şeyi düzeltmek isterim. Ethereal ilk ücretsiz GUI ağ paket analizörü değildi; Windows NT döneminde Microsoft’un netmon gibi araçları vardı
Belgelenmiş bir API’si de vardı; destek durumu belirsizdi ama bağlanıp kullanması kolaydı, bu yüzden Ethereal’dan önce onun üzerine bir tcpdump sarmalayıcısı yapmıştım
Longhorn/Vista’nın “yeni nesil” TCP yığını çıkınca o API ve netmon geçersiz kaldı
Sonrasında Microsoft Message Analyzer geldi; ETW tabanlı olarak ağ ve diğer ETW izlerini analiz edebiliyordu, desteklediği DSL ile herhangi bir protokol işleyicisi yazılabiliyordu
Log dosyalarını ayrıştırıp veriyi filtreleyecek/analiz edecek hâle de getirilebiliyordu; herhâlde fazla güçlü ve Windows geliştiricileri için fazla kullanışlı olduğu için Microsoft sonunda onu ortadan kaldırdı
Sonuçta para verip satın aldığınız işletim sistemine dahil bir araçtı
Wireshark, elektronikteki multimetre gibi
Onsuz da dünya döner ama bir şey bozulduğunda yoksa mahvolursunuz
O dönemde adı Ethereal olan bu araç, WebLogic ürün ailesinde Senior Tech Support işinde gerçekten paha biçilmezdi
Müşteriye doğrudan çalıştırıp “büyük JDBC bağlantı havuzundaki tüm bağlantılar, müşterinin bile bilmediği bir ağ güvenlik duvarı tarafından sessizce kesiliyor; bu yüzden sabahın ilk işlemi 1 saat gecikiyor. Havuzdaki tüm bağlantıların zaman aşımına uğrayıp yeniden kurulması gerekiyordu” gibi yanıtlar verebiliyorduk
“Internet Explorer, zaten önbelleğe alınmış kaynakların TCP bağlantısını keserken IBM sunucusundaki WebLogic kurulumunda standart dışı ağ seviyesi hatası oluşuyor” gibi sorunları da yakaladı
Bu iş yüzünden saçlarımın yarısını kaybettim; Ethereal olmasaydı hepsini ve akıl sağlığımın çok daha fazlasını kaybederdim
Müşteri ağlarındaki load balancer’ları desteklerken 10 yılı aşkın süre Wireshark’ı her gün kullandım
pcap ve core dump’lar uğraşması en ilginç verilerdi; libpcap’i öğrenip sonunda kendi sürümümü bile yapmam, ürün teknik desteğinden geliştirmeye geçmemi sağladı
Destek mühendisi olarak girip, daha önce desteklediğim kodu bizzat yazan Principal Software Engineer olarak çıktım; Wireshark ve gdb sayesinde üniversiteye gitmeden gerçekten çok şey kendi kendime öğrendim
Gerçekten harika bir araç ve tamamen ücretsiz
Ağ sorunlarını hata ayıklarken ve cihazların nereye bağlandığını görmek için sık kullanıyorum; birinin dediği gibi ağ için multimetre gibi
WiFi erişim noktasıyla bağlantı kurulumunu öğrenmek için de kullandım; beacon paketlerini ve WiFi paketlerinin hepsini görebiliyorsunuz
Takımda bir Sniffer PC vardı ama çoğu zaman ya birileri kullanıyor olurdu ya da protokol yorumlaması yeterli olmazdı
Gerçekten müthiş bir yazılım
20 yıl önce bir müşteri sahasında ağ ekipmanlarımızın birlikte çalışabilirlik sorununu bulmaya çalışırken takılıp kalmıştık; 2 hafta boyunca protokol yorumlayıcı eklentisi yazmayı deneyince epey kolay yardımcı olduğunu hatırlıyorum
Sonunda bizim hatamızdı; implementasyonu select()’ten epoll()’a geçirirken select() için olan bit maskesi uygulamasını kaldırmamıştık
Özünde 1 bitlik bir bellek bozulması hatasıydı ve sonucu çok geç ortaya çıkabiliyordu
Tuhaf biçimde böyle anılar uzun süre akılda kalıyor
Kariyerimin başlarında güvenlikli bir tesiste wireshark kurulmasına izin verilmediği için can sıkıcı bir ağ hatasını bir hafta boyunca yalnızca tcpdump ile kazımıştım
Sonunda sorun, 10 yıllık GNAT (Ada kütüphanesi) standart kütüphanesindeki berbat bir bug ile ARP yapılandırma hatasının birleşimiydi; o kütüphane hatası aslında 7 yıl önce zaten düzeltilmişti
O hafta o kadar korkunçtu ki daha iyi bir yere geçmemde büyük etkisi oldu; bundan keyif almak için özel bir kişilik gerekiyor
İnsanlar sık sık dünyayı değiştirmeyi hayal eder ama gerçekten dünyayı değiştiren insanlar da vardır