
Generisches authentifiziertes Datenfeed-Protokoll des Honeynet-Projekts
hpfeeds ist ein leichtgewichtiges, authentifiziertes Publish-Subscribe-Protokoll. Es hat ein einfaches Drahtformat, sodass jeder in kürzester Zeit mit seiner bevorzugten Sprache die Feeds abonnieren kann. Verschiedene Feeds werden durch Kanäle getrennt und unterstützen beliebige binäre Nutzlasten. Das bedeutet, dass die Kanalnutzer über die Datenstruktur entscheiden. Es ist üblich, JSON über hpfeeds zu übertragen.
Dieses Projekt zielt darauf ab, einen modernen, Python-3-kompatiblen Broker bereitzustellen, der auf asyncio basiert, sowie einen Python-3-kompatiblen Client.
Der Basis-Client hat keine Abhängigkeiten. Du kannst ihn mit pip installieren.
pip install hpfeeds
Du kannst eine Befehlszeilen-Tail eines hpfeeds-Kanals mit der folgenden Befehlszeile ausführen:
hpfeeds subscribe --host localhost -p 10000 -i myident -s mysecret -c mychannel
Du kannst auch ein einzelnes Ereignis veröffentlichen:
hpfeeds publish --host localhost -p 10000 -i myident -s mysecret -c mychannel '{"event": "ping"}'
Du kannst die Broker-Abhängigkeiten ebenfalls mit pip installieren:
pip install hpfeeds[broker]
Du kannst einen Broker auch mit Docker ausführen:
docker run -p "0.0.0.0:20000:20000" -p "0.0.0.0:9431:9431" hpfeeds/hpfeeds-broker:latest
Er speichert Zugriffsschlüssel in einer SQLite-Datenbank unter /app/var. Der sqlite-Client ist im Container zur Verwaltung des Zugriffs installiert. Du solltest sicherstellen, dass /app/var ein Volume ist. Deine Clients können sich mit Port 20000 verbinden, und Prometheus kann sich mit Port 9431 verbinden.
Ausführlichere Dokumentation ist unter https://python.hpfeeds.org verfügbar.