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, 3924 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
TCP IP Druckerport auf Win 7 Client von IP ändern auf DNS Hostname (9)

Frage von pixel0815 zum Thema Batch & Shell ...

Netzwerke
Hilfe ! Aufgabe TCP IP Header Analysieren (11)

Frage von Cat7Boy zum Thema Netzwerke ...

Windows Server
IP-Einstellungen werden falsch angezeigt (5)

Frage von schlumpf90 zum Thema Windows Server ...

Firewall
gelöst Site-to-Site-VPN und Cisco VPN-Client von gleicher IP (2)

Frage von TripleDouble zum Thema Firewall ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...