Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Analyse von TCP IP-Paketen auf bestimmte Inhalte im Datenbereich

Frage Netzwerke Netzwerkprotokolle

Mitglied: gechger

gechger (Level 1) - Jetzt verbinden

13.12.2012 um 08:54 Uhr, 4052 Aufrufe, 6 Kommentare

In meinem aktuellen Projekt soll bei einer Prüfung des Datenbereiches von TCP/IP Paketen bei bestimmten definierten Inhalten eine Reaktion erfolgen. Gesucht wird zunächst das passende konzept.

Guten Morgen liebe Administrator-Gemeinde,

heute habe ich eine sehr spezielle Frage im Bereich TCP/IP. Nach tagelanger Recherche habe ich (hoffentlich) einige Ansätze für mein Projekt bekommen, frage aber lieber nach, ob ich mich da in eine Sackgasse bewege, um nicht noch mehr Zeit zu investieren. Kurze Beschreibung des Projektes:

Zum Testen habe ich einen Ubuntu Server aufgesetzt, es läuft Apache und PHP darauf, ebenfalls Wireshark zur Analyse. Der Server ist im Internet und lauscht auf Port 4000 auf bestimmte Informationen. Um diese Informationen geht es.

Geräte senden über GPRS/Internet über Port 4000 TCP/IP Pakete an meinen Webserver. Die kommen auch an, Wireshark dokumentiert dies. Ich brauche aber nur bestimmte Pakete, die ich filtern muß.
Schritt 1: Prüfung der Pakete auf Inhalt, gesucht wird eine definierte Seriennummer.
Schritt 2: Suche der Seriennummer in einer MySQL-Datenbank
Schritt 3: Falls erfolgreich, Rücksendung einer Freigabe in einem TCP/IP-Datenbank an das Gerät
Schritt 4: Gerät sendet TCP/IP-Datenpaket mit Life-Daten
Schritt 5: Diese Life-Daten werden umgewandelt und in einer MySQL-DB abgelegt

Zur Zeit versuche ich Schritt 1 umzusetzen. Wie prüfe ich am sinnvollsten die Pakete?
Ich könnte den Port 4000 in ein eigenes Root-Verzeichnis senden lassen, dort eine .htaccess Datei plazieren, die die Pakete an ein Skript sendet.
Das könnte PHP sein, wo ich über die Socket-Skripts versuchen könnte, die TCP/IP-Pakete auseinander zu nehmen. Ich könnte aber auch versuchen, die Bits zu zählen, um über die String-Skripts an die nötigen Informationen zu gelangen. Oder es gibt noch eine viel einfachere Lösung?

In JAVA scheint es auch entsprechende Funktionen zu geben. Das Ganze muß hoch effektiv sein, da später im Lifebetrieb einige 100 Geräte in 30 Sekunden-Abständen Daten loswerden sollen.

Es wäre mir eine große Hilfe, wenn mir einer von Euch helfen könnte, das Konzept zu definieren. Bei der Umsetzung mag es dann später noch weitere Fragen geben, aber zunächst ist das Konzept wichtig.

Vielen Dank für jede Hilfe
Chris
Mitglied: maretz
13.12.2012 um 09:42 Uhr
Moin,

erste Frage: Was verstehst du unter "Paket"? Es kann ja zum einen ein komplettes Informations-Paket sein (z.B. bei Positionsdaten ein Satz mit den Lat/Lng-Werten usw.). Oder meinst du wirklich ein einzelnes IP-Paket - hier müsstest du dann ja darauf Rücksicht nehmen das ein Paket fragmentiert worden sein kann…

Jetzt hast du natürlich die Option z.B. mittels Netcat einfach den Datenstrom abzugreiffen, in ne Datei zu loggen und dann mit einem zweiten Netcat die Dateien wieder in die Pipe zu senden. Nicht schön - aber machbar.

Alternativ könntest du einfach deinen Listener-Prozess ansehen - wenn du hier die Möglichkeit hast da in den Programmcode zu gucken dann wäre das m.E. der Platz an dem ich suchen würde.

Wenn du allerdings unter Echtzeit-Bedingungen arbeiten musst (je nachdem wie relevant die Daten sind die da kommen - beim autonomen Fahrzeug kann es ja durchaus relevant sein ob ich die Position des Fahrzeuges *jetzt* habe - oder vor 1 Sekunde (dann habe ich ggf. schon 15 Meter abweichung….)) dann wirst du mit beiden Wegen nix werden… Hier musst du dann schon mehr Aufwand betreiben - bis hin dazu das du das Programm im ASM schreibst und auf nem eigenen Chip laufen lässt ;).

Um da nen sinnvollen Tipp zu geben müsstest du halt schon die Randbedingungen erklären -> mit den Infos wäre noch so ziemlich alles möglich…

Schönen Gruß

Mike
Bitte warten ..
Mitglied: marinux
13.12.2012 um 10:07 Uhr
Hi,

siehe z.B. http://ask.wireshark.org/questions/9682/trigger-an-executable-file-once ...
oder
http://www.snort.org/

Damit kannst du direkt mitschneiden und triggern.

Gruß
Bitte warten ..
Mitglied: gechger
13.12.2012 um 10:46 Uhr
Hallo
vielen Dank für die schnellen Antworten.

Zur Erläuterung:
ich protokolliere den Dialog in Wireshark (Follow TCP-Stresm), sehe die Aushandlung des Dialoges und erkenne beim [PSH,ACK] des Client, daß nach dem TCP-Header Daten enthalten sind (Im Bereich > 256 Bit). Darin steht die Seriennummer. Alle Pakete vorher enthalten keine Informationen im Datenbereich.

Es geht mir also darum, das Paket zu greifen, wo in dem Datenbereich etwas drin steht, zu prüfen, ob der Inhalt gültig ist, und dann eine Antwort zum Client zu senden. Alle anderen Pakete sollen ignoriert werden. Wenn ein Paket fragmentiert wäre, kann keine Freigabe an den Client gesendet werden. Dieser probiert es dann gleich wieder, solange bis ein gültiger Datensatz ankommt.

Sekundengenau muß die Information nicht zur Verfügung stehen, die Zeit des Datensatzes wird zwar sekundengenau erfasst und versendet, muß aber nicht zwingend in der folgenden Sekunde sichtbar sein. Das Holen der Daten erfolgt immer mit etwas zeitlichem Versatz (kleinster Aktualisierungs-Intervall: 1 Minute). Es geht tatsächlich um Ortungsdaten von Fahrzeugen, wobei uns eher die Orte wichtig sind, wo das Fahrzeug steht. Für den Bereich "Einsatzsteuerung" reicht diese Aktualisierungsrate.

Freundliche Grüße
Chris
Bitte warten ..
Mitglied: gechger
13.12.2012 um 10:49 Uhr
Hallo Marinux,

wenn ich den Link richtig verstehe, dann kommt dort LUA zum Einsatz. Dann könnte ich doch sicher mit dem MySQL-Proxy auch arbeiten? Der unterstützt doch LUA?

Freundliche Grüße
Chris
Bitte warten ..
Mitglied: marinux
13.12.2012 um 10:59 Uhr
Hi,

bezüglich der Anbindung externer Programme kann ich Dir leider nichts sagen, da habe ich so gut wie keine Erfahrung. Ich wollte Dir nur aufzeigen, dass es möglich ist direkt mit Netzwerksniffern Events auszulösen, was in Deinem Fall viel Arbeit sparen sollte

Gruß
Bitte warten ..
Mitglied: aqui
14.12.2012 um 11:52 Uhr
Und filtern tust du die Pakete über iptables aber das geht maximal bis zum Layer 4. Content in höheren Layern kann iptables nicht filtern da musst du was anderes nehmen.
Bitte warten ..
Ähnliche Inhalte
LAN, WAN, Wireless
gelöst Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (19)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Netzwerkmanagement
SquidProxy ruft bestimmte Seiten im Intranet nur mit der IP auf (1)

Frage von M.Marz zum Thema Netzwerkmanagement ...

E-Mail
gelöst Exchange 2016 - Empfang und Versand über unterschiedliche IP (6)

Frage von ArnoNymous zum Thema E-Mail ...

Server-Hardware
gelöst Empfehlung KVM over IP Switch (8)

Frage von Androxin zum Thema Server-Hardware ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

Frage von Brotkasten zum Thema Festplatten, SSD, Raid ...

Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

SAN, NAS, DAS
+100tb Storagelösung (11)

Frage von Data-Fabi zum Thema SAN, NAS, DAS ...