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