Tüm HTTP istekleri apache ile nasıl boşaltılır


27

Tüm HTTP isteklerini apache ile bırakmak mümkün mü? Gelen isteklerin tüm HTTP başlıklarını izlemem gerekiyor. Bu nasıl yapılır?

Yanıtlar:


30

Apache yerine istediğin şeyin , paket dinleyicisi olarak da bilinen paket analizcisi olabileceğini düşünüyorum . En popüler olanlardan ikisi muhtemelen ikisi de ücretsiz olan ve Windows ve * nix işletim sistemleri için sürümleri olan TCPDump ve Wireshark . Bunlar, Apache'nin gördüğü şeyi değil, bir arayüze gelen tüm trafiği size gösterecektir. Ancak, http için 80 gibi belirli bir bağlantı noktasını sınırlamak için filtreler kullanabilirsiniz.

tcpdump:
Sunucudan çalıştırılan aşağıdaki komut size 80 numaralı bağlantı noktasına yönelik tüm paketleri gösterecektir:

sudo tcpdump -s 0 -X 'tcp dst port 80'

X büyük harf anahtarı yükü hex ve ASCII olarak boşaltır. 0 anahtarlı s, tüm paketi almak anlamına gelir. 'tcp dst portu 80' sadece tcp başlığında port 80'e yönelik paketleri filtrelemek ve göstermek anlamına gelir.

Wireshark:
Daha kullanıcı dostu bir sürüm için, çalışan bir GUI'niz varsa, wireshark'ı (resmen eterik olarak bilinir) düşünün.


1
Teşekkürler Kyle, HTTP başlık bilgisini tcpdump'ın çıkışından nasıl çıkartabilirim?
Alex

1
Alex: Biliyor musun, Wireshark bunu çok daha kolaylaştıracak. Dökümü bir dosyaya kaydetmek için -r dosya adını kullanabilir ve ardından masaüstünüzde wireshark ile açabilirsiniz.
Kyle Brandt

Cevapları da isterseniz, 'dst'i bırakın.
Kyle Brandt

1
-Asadece metin için (altıgen boşaltma yok):sudo tcpdump -A -s 0 'tcp dst port 80'
Brent Faust


8

Temel paket koklama, tcpdump ve grep hibritleri ile kolaydır. Bazı senaryolarda, web tarayıcılarının web sunucuları ile nasıl iletişim kurduğunu ve HTTP başlıklarını incelemek istediğinizi düşünüyorsanız.
Bu örnekte, şöyle bir web sunucusunda bir ngrep çalıştırın:

$ ngrep port 80

http isteğini 80 numaralı bağlantı noktasındaki "GET /" isteğine göre filtrelemeyi de seçebilirsiniz:

$ ngrep -q '^GET .* HTTP/1.[01]'

Müşteri tarafında, Tamper Data adında yararlı bir araç var, bu bir Firefox Uzantısıdır ve size giden HTTP isteklerini görüntüleme, kaydetme ve hatta değiştirme gücü verir.
Daha fazla bilgiyi burada bulabilirsiniz.


7

Tcpdump veya wireshark kullanmak yerine, tcpflow kullanın. Bu tcpdump yerine bir damla, ancak her bağlantının her iki tarafı için bir dosya oluşturur, bu yüzden akışı kendiniz çözmek için denemek zorunda değilsiniz.


Bunun için teşekkürler. Mod_negotiate kullanıyorum ve curl (), tarayıcılar. Kırılması zor bir somun.
mckenzm

0

Apache yerleşik bir işlevselliğe sahiptir; Sadece artırmak günlük düzeyinin için trace7ya trace8:

LogLevel trace8

Bunun çok fazla veri boşaltacağını unutmayın . Uyarıldın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.