Software/Framework in Linux zum Filtern von HTTP-Verkehr?

Ich habe mitmproxy zum Filtern von HTTP-Verkehr verwendet. mitmproxy ist einfach und in Python geschrieben. Es startet einen neuen Thread, um jede neue HTTP-Anforderung zu verarbeiten.

Hier sind einige Dinge, die ich aus diesen Anfrageabläufen erhalten muss:

  1. URL
  2. Parameter
  3. IP der Anfrage
  4. MAC der Anfrage
  5. Analysieren Sie den Inhalt und erledigen Sie etwas Logistik

mitmdump wird vom Projekt mitmproxy geliefert und funktioniert in der Befehlszeile. Ausgiebig habe ich es auf diese Weise verwendet:

mitmdump -T -s ./my_written_request_handler.py(Es lauscht auf Port 8000, und ich habe früher iptablesden gesamten HTTP-Verkehr an diesen Port weitergeleitet.)

Ich habe alle Anfragen in diesem Handler bearbeitet ./my_written_request_handler.py, aber ich fand es weniger effizient. Vielleicht, weil es in Python ist!

Ich möchte also ein neues, einfach und effizientes Tool oder Framework, um diese Aufgabe zu erledigen.

Wird eine Firewall diese Aufgabe ohne Proxy erledigen?

Antworten (1)

Ich denke, HAProxy ist eine Ihrer besten Wetten, wenn Sie eine effiziente Möglichkeit suchen, den Datenverkehr mit vielen Regeln unter Linux zu filtern. Sie sagen, dass Haproxy im Laufe der Jahre zum „De-facto-Standard- Open-Source- Load-Balancer geworden ist , jetzt mit den meisten Mainstream-Linux-Distributionen ausgeliefert wird und häufig standardmäßig auf Cloud-Plattformen bereitgestellt wird“. Es gibt es schon eine ganze Weile und kann schwierig sein, aber es lohnt sich.

Aus ihrer Dokumentation über „ Was HAProxy ist und was nicht “ kann ich Folgendes entnehmen, das Ihre wichtigste Anforderung erfüllen würde:

HAProxy ist [auch] ein HTTP-Fixing-Tool : Es kann die URL oder jeden Anfrage- oder Antwort-Header ändern / reparieren / hinzufügen / entfernen / neu schreiben . [...] HAProxy ist [auch] ein inhaltsbasierter Schalter : Er kann jedes Element aus der Anfrage berücksichtigen, um zu entscheiden, an welchen Server die Anfrage oder Verbindung weitergeleitet werden soll. [...]