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