< Return to Video

35C3 ChaosWest - Network monitoring via SSH und ELK

  • 0:00 - 0:17
    35C3 Vorspannmusik
  • 0:17 - 0:24
    Herald: So ihr seid alle hier, weil ihr
    mehr über SSH und Netzwerkhardware
  • 0:24 - 0:29
    Monitoring erfahren wollt. Das ist sehr
    schön, wir freuen uns sehr und ich freue
  • 0:29 - 0:33
    mich auch sehr, dass Heiko Borchers hier
    ist, er ist Fachinformatiker für
  • 0:33 - 0:37
    Systemintegration an der Uni Düsseldorf
    und freier Journalist, ist eine spannende
  • 0:37 - 0:41
    Kombination finde ich und außerdem im
    FrOSCon Team und er lädt euch alle
  • 0:41 - 0:46
    herzlich ein, auch zur FrOSCon zu kommen
    dieses Jahr im August und jetzt fängt er
  • 0:46 - 1:02
    an mit seinem Vortrag. Dankeschön.
    Heiko: Ja hallo, wie der Herald mich schon
  • 1:02 - 1:04
    so schön vorgestellt hat, ich bin Heiko
    Borchers und ich werde euch jetzt ein
  • 1:04 - 1:10
    bisschen was erzählen über SNMP, Python
    Paramiko und ELK und was man da machen
  • 1:10 - 1:16
    kann, wenn das eigentliche Netzwerkmanager
    nicht so will, wie man selber möchte. Ja
  • 1:16 - 1:20
    das ist das allgemeine, wer ich bin, wurde
    ja schon schön erklärt. Dann werde ich
  • 1:20 - 1:24
    kurz mal über das allgemeine Umfeld
    sprechen, wie Enterprise WLAN aussieht.
  • 1:24 - 1:31
    Tatsächlich so ungefähr auch wie das WLAN
    hier auf dem Congress. Ganz kurz auf die
  • 1:31 - 1:39
    SNMP Grundlagen eingehen. Was benutzt
    wurde an Hard- und Software, bis hin zur
  • 1:39 - 1:45
    Umsetzung. Und ja über mich habt ihr ja
    gehört, braucht man nicht mehr viel zu
  • 1:45 - 1:51
    sagen. Mein Arbeitgeber , bei dem ich das
    Projekt gemacht habe, ist die Heinrich
  • 1:51 - 1:58
    Heine Universität in Düsseldorf, ungefähr
    30.000 Studierende, 10.000 WLAN Devices im
  • 1:58 - 2:04
    Schnitt am Tag und ein kompletter
    Wildwuchs an Hardware, teilweise noch
  • 2:04 - 2:13
    legacy HP, was 802 11n WLAN macht,
    langsames WLAN und ja. Insgesamt verwalten
  • 2:13 - 2:20
    wir da jetzt momentan sogar etwas über
    1000 WLAN Access Points und versorgen
  • 2:20 - 2:27
    damit eine Fläche von 1,3
    Quadratkilometern ca. Ganz kurz zu SNMP.
  • 2:27 - 2:33
    Simple Network Management Protocol. Soll
    eigentlich die Überwachung von fast allen
  • 2:33 - 2:37
    Netzwerkgeräten ermöglichen, teilweise
    kann man damit auch Netzwerkgeräte
  • 2:37 - 2:44
    konfigurieren, aber SNMP hat ja inhärent
    ein paar Nachteile. Erstmal die Vorteile:
  • 2:44 - 2:50
    es ist einfach zu konfigurieren, das ist
    herstellerübergreifend und die Pakete
  • 2:50 - 2:56
    sehen sehr strukturiert aus. Wäre also
    schön, wenn man das nehmen kann, aber es
  • 2:56 - 3:02
    hat Nachteile. Die 3 Wichtigsten sind: es
    ist langsam, es ist fehlerbehaftet, u. a.
  • 3:02 - 3:07
    unser WLAN Controller, der mich zu dem
    Projekt gebracht hat, stürzte gerne mal
  • 3:07 - 3:13
    ab, wenn man ihn per SNMP abfragt und das
    ist tatsächlich auch unsicher. Bis SNMP
  • 3:13 - 3:16
    Version 3 gab es gar keine
    Authentifizierung, Verschlüsselung. Man
  • 3:16 - 3:20
    musste nur wissen wie die public group
    heißt und dann konnte man alles mitlesen
  • 3:20 - 3:24
    und bei manchen Geräten sogar
    Einstellungen ändern. Ist so ein bisschen
  • 3:24 - 3:35
    doof. Enterprise WLAN funktioniert halt
    ein bisschen anders als das WLAN Zuhause.
  • 3:35 - 3:38
    Zuhause hat man vielleicht 2 3 Access
    Points, die kann man noch per Hand
  • 3:38 - 3:45
    konfigurieren. 900 Access Points wird
    schwierig das per Hand zu machen. Kann man
  • 3:45 - 3:49
    versuchen, aber da ist man dann
    wochenlang, monatelang daran, die APs alle
  • 3:49 - 4:01
    einzeln zu konfigurieren. Und ja unser HP
    wireless Controller, der HP 870, bin ich
  • 4:01 - 4:07
    mir ziemlich sicher, der schlimmste WLAN
    Controller, weil er bei unseren SNMP
  • 4:07 - 4:11
    Abfragen, wenn wir da ein vernünftiges
    Monitoring rausziehen wollten, ungefähr
  • 4:11 - 4:16
    eine CPU Last von 100% hatte und dann ab
    und zu sich auch einfach abgeschaltet hat,
  • 4:16 - 4:22
    wodurch dann alle Studierenden aus dem
    WLAN flogen, alle Mitarbeiter und das war
  • 4:22 - 4:33
    dann so ein bisschen unglücklich. Das ist
    der angesprochene Controller, einer von 2.
  • 4:33 - 4:36
    Inzwischen werden die bei uns Gott sei
    Dank jetzt ausgetauscht gegen exakt
  • 4:36 - 4:43
    dieselbe Hardware die wir auch hier auf
    dem Congress verwenden, also Aruba. Unsere
  • 4:43 - 4:52
    3 Haupt Access Points, die neueren Modelle
    davon . Insgesamt haben wir jetzt aktuell
  • 4:52 - 4:58
    8 verschiedene Access Points auf dem
    Campus im Einsatz und dort ist halt alles
  • 4:58 - 5:01
    ein bisschen schwierig zu managen.
    Deswegen habe ich mir gedacht, wie kann
  • 5:01 - 5:05
    man das automatisieren? Wie kann man auch
    die Überwachung automatisieren? Und bin
  • 5:05 - 5:09
    dann irgendwann drauf gekommen, das geht
    doch sicher auch per SSH. Ich kann ja mich
  • 5:09 - 5:17
    auf dem Controller auch per SSH anmelden.
    Das war so das Überwachungstool was HP uns
  • 5:17 - 5:23
    geliefert hat, das IMC. Man sieht da oben
    an diesem komplett grünen Kreis, da
  • 5:23 - 5:31
    sollten eigentlich die verschiedenen
    Hersteller der WLAN Devices stehen, Heinz
  • 5:31 - 5:35
    hier hat sich mal wieder gedacht: braucht
    man nicht, alle WLAN Geräten, die
  • 5:35 - 5:41
    verbunden sind, sind einfach von Vendor
    unknown. Reicht, wenn man wissen will, wie
  • 5:41 - 5:44
    viele Geräte da sind, aber wenn man jetzt
    auch das WLAN gerade so ein bisschen
  • 5:44 - 5:51
    optimieren will, wäre es ganz schön zu
    wissen, ob ich jetzt nur Apple Geräte habe
  • 5:51 - 5:56
    oder ob ich vielleicht noch irgendwelche
    Nischenhersteller supporten muss, wird da
  • 5:56 - 6:02
    auch schon schwierig. Das andere ist
    Observium. Das ist gerade ein bisschen
  • 6:02 - 6:07
    sehr pixelig. Theoretisch sollte man da
    einen Grafen sehen, der sogar sehr schön
  • 6:07 - 6:12
    periodisch ist, wann wie viele Studenten
    bzw. wann wie viele Geräte im WLAN
  • 6:12 - 6:18
    verbunden sind, aber exakt diese Anzeige
    war es dann auch, die unseren Controller
  • 6:18 - 6:23
    ab und zu zum Absturz gebracht hat. Dann
    habe ich mir halt gedacht, baue ich mal
  • 6:23 - 6:33
    was mit unserem ELK Stack, SPLUNK, die
    Enterprise Variante halt und Python. Die
  • 6:33 - 6:37
    Anfänge waren ein ganz einfaches
    Shellscript, was bzw. ein ganz einfaches
  • 6:37 - 6:48
    Pythonskript, was 3 Befehle kann. Es soll
    mir die MAC-Adressen raussuchen, die
  • 6:48 - 6:54
    individuellen. Erst wollen wir die vom AP
    dann die Signalstärke, die Datenrate und
  • 6:54 - 6:58
    zu welchem AP der jeweilige Nutzer gerade
    verbunden ist zeigen. Damit wir im
  • 6:58 - 7:01
    Zweifelsfall auch nachvollziehen können,
    wenn der Nutzer Probleme hat, wo steht er
  • 7:01 - 7:09
    gerade, wo müssen wir nachbessern. Das
    Ganze ist dann mit Python gebaut, mit
  • 7:09 - 7:14
    Paramiko, das ist eine SSH Library. Der
    brauchte ich dann einfach nur sagen: das
  • 7:14 - 7:19
    ist die IP Adresse vom WLAN Controller,
    das ist der SSH Befehl den du ausführen
  • 7:19 - 7:26
    sollst und dann ließ mir bitte mal den
    Output, den der Controller gibt, ein.
  • 7:26 - 7:33
    Problem war, dass ist eine menschenlesbare
    Tabelle. Menschenlesbare Tabellen sind
  • 7:33 - 7:41
    nicht so schön in Monitoringsysteme zu
    bringen. Deswegen dann halt noch das
  • 7:41 - 7:45
    komplette parsen der Tabelle. Erstmal
    alles an Leerzeichen rausschmeißen, alles
  • 7:45 - 7:52
    was schön aussieht, kommt weg und dann das
    ganze für jeden Access Point ein Objekt in
  • 7:52 - 8:02
    Python erstellen, was die entsprechenden
    Daten enthält. So das Obere ist halt die
  • 8:02 - 8:08
    menschenlesbare Tabelle. Enthält den
    Access Point Namen, den State, Model,
  • 8:08 - 8:16
    Seriennummer und dann nochmal der Access
    Point Name, die Radio ID, Channel und die
  • 8:16 - 8:27
    restlichen interessanten Daten aus dem
    Netz aus dem WLAN über einen separaten SSH
  • 8:27 - 8:34
    Befehl.Und am Ende kommt dann so ein
    relativ schönes, simples json bei raus,
  • 8:34 - 8:38
    was da was dann eigentlich gegen jedes
    Monitoringsystem geworfen werden kann, was
  • 8:38 - 8:42
    man so hat, was json versteht, womit man
    dann sich seine Grafen selber basteln
  • 8:42 - 8:50
    kann. Das Problem ist die Probleme die uns
    aufgefallen sind ist der Datenschutz. Es
  • 8:50 - 8:57
    war ja eben der Vortrag hier über das
    Tracking von Nutzern im WLAN, ich hab es
  • 8:57 - 9:01
    bei mir selber mal ausprobiert, das Script
    so im maximal invasiven Modus laufen
  • 9:01 - 9:06
    lassen. Man hat gesehen, wann ich mir
    Kaffee holen gegangen bin, wann ich zur
  • 9:06 - 9:11
    Mittagspause gegangen bin, wie lange ich
    auf dem Weg in die Mensa gebraucht habe,
  • 9:11 - 9:15
    war nicht so optimal. Deswegen speichern
    wir jetzt tatsächlich nur noch den
  • 9:15 - 9:19
    Vendorteil von der MAC Adresse, dass wir
    nur noch den Hersteller wissen, aber nicht
  • 9:19 - 9:27
    mehr welches Gerät es am Ende ist. Dann
    die Dauer des Scriptes. Der Controller
  • 9:27 - 9:31
    glaubt halt, dass da ein Mensch hinter
    sitzt, deswegen versucht er das auch so
  • 9:31 - 9:39
    auszugeben, dass ein Mensch quasi live
    mitlesen kann, Zeile für Zeile. Das habe
  • 9:39 - 9:43
    ich dem Controller auch nicht abgewöhnen
    können leider. Und ja die Zuverlässigkeit
  • 9:43 - 9:50
    der Controller, sie stürzten halt auch
    gerne mal so ab. Meine Ideen für die
  • 9:50 - 9:57
    Zukunft sind das Script ist inzwischen
    Open Source. Ich wollte es jetzt mal
  • 9:57 - 10:02
    demnächst anpassen, gucken ob man da noch
    schöne Sachen für OpenWrt machen kann.
  • 10:02 - 10:06
    Vielleicht Sachen, die im OpenWrt
    Webinterface nicht rausfallen, dann über
  • 10:06 - 10:11
    SSH kriegen kann. Wir wollten noch gucken,
    an der Uni, dass wir eine Campuskarte
  • 10:11 - 10:15
    machen, auf der die Access Points
    eingetragen sind, damit wir sehen
  • 10:15 - 10:18
    wenigstens, wo sind Ballungsgebiete? Wo
    müssen wir mehr Access Points aufhängen
  • 10:18 - 10:27
    oder eine andere Infrastruktur bauen? Und
    der bessere Schutz für die Privatsphäre
  • 10:27 - 10:33
    ist inzwischen umgesetzt. Wir nehmen nur
    noch den Vendorteil der MAC Adresse und
  • 10:33 - 10:37
    schmeißen den Rest weg, so ist der
    einzelne Nutzer nicht mehr zu tracken,
  • 10:37 - 10:45
    sondern wir wissen nur noch: es sind 30%
    Apple User bei uns, 20% Samsung und der
  • 10:45 - 10:56
    Rest verteilt sich auf andere Hersteller.
    Dann danke ich für eure Aufmerksamkeit.
  • 10:56 - 11:04
    Meine Quellen sind eigentlich Wikipedia,
    Herstellerbilder und die Quelltexte sind
  • 11:04 - 11:10
    selber geschrieben. Präsentation könnt ihr
    auch abrufen , die URL müsste im Fahrplan
  • 11:10 - 11:17
    eigentlich mit drin stehen. Wenn ihr an
    dem Script weiter entwickeln wollte, das
  • 11:17 - 11:25
    hat einige schöne Sachen, die man halt
    auch für sein Heimnetzwerk nutzen kann und
  • 11:25 - 11:28
    damit bin ich dann auch durch.
  • 11:28 - 11:31
    Applaus
  • 11:31 - 11:37
    Herald: Dankeschön! Wir haben jetzt noch
    ein paar Minuten für Fragen. Wenn ihr
  • 11:37 - 11:43
    welche habt, stellt euch wie immer hinter
    die Mikrofone. Wir sollten auch einen
  • 11:43 - 11:50
    Signal Angel haben. Wir haben keinen
    Signal Angel, wie schade. Ah der hat keine
  • 11:50 - 11:54
    Fragen, ok. Es stehen Menschen hinter den
    Mikrofonen, ich freue mich. Dann fang doch
  • 11:54 - 11:57
    bitte an.
    Mikrofon: Ja, vielleicht nur als
  • 11:57 - 12:03
    Ergänzung: SNMP steht eben auch für
    Security Is Not My Problem. Deshalb die
  • 12:03 - 12:08
    Frage: wie authentifiziert sich denn das
    Pythonscript per ssh? Geht das per RSA key
  • 12:08 - 12:12
    oder, also per public-private-key, oder
    ist da ein haupthinterlegtes Passwort in
  • 12:12 - 12:17
    dem Script drin?
    Heiko: In dem Fall geht das noch über ein
  • 12:17 - 12:23
    hinterlegtes Passwort und einen read-only
    user Account. Der kann tatsächlich nur die
  • 12:23 - 12:29
    lesenden Befehle auf dem Controller
    ausführen. Man kann aber auch per public-
  • 12:29 - 12:32
    private-key sich anmelden. Das stellt
    Paramiko einem frei.
  • 12:32 - 12:37
    Mikrofon: Ok, danke!
    Herald: So, das zweite Mikrofon. Näher ran
  • 12:37 - 12:42
    bitte
    Mikrofon: Also bei dem SNMP was ihr
  • 12:42 - 12:45
    verwendet habe für die Controller
    Herald: Noch näher ran bitte!
  • 12:45 - 12:51
    Mikrofon: Bei dem SNMP was ihr verwendet
    habt bei den Controllern, ist das ähnlich
  • 12:51 - 12:56
    wie bei den neuen Aruba Controllern?
    Heiko: Ich hab mit den neuen Aruba noch
  • 12:56 - 12:58
    nicht viel gearbeitet.
    Mikrofon: Ok.
  • 12:58 - 13:05
    Heiko: Aber es ist tatsächlich SNMP v1 und
    funktioniert wie gesagt so schlecht. Wenn
  • 13:05 - 13:09
    man einen kompletten SNMP walk macht und
    sich alle Daten ausgeben kann, kommt der
  • 13:09 - 13:14
    Controller auf 100% CPU Last und rebootet
    irgendwann und damit sind halt werden halt
  • 13:14 - 13:18
    auch alle aktiven Verbindungen gedroppt.
    Mikrofon: Ok, dann ist das so wie bei
  • 13:18 - 13:21
    Huawei auch.
    Herald: So, ich sehe jetzt keine weitere
  • 13:21 - 13:28
    Frage. Herzlichen Dank und das ist dein
    Applaus!
  • 13:28 - 13:32
    Applaus
  • 13:32 - 13:36
    35C3 Abspannmusik
  • 13:36 - 13:53
    Untertitel erstellt von c3subtitles.de
    im Jahr 2022. Mach mit und hilf uns!
Title:
35C3 ChaosWest - Network monitoring via SSH und ELK
Description:

more » « less
Video Language:
German
Duration:
13:53

German subtitles

Incomplete

Revisions