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!