Archiv ‘IT’

Samstag, 10. Februar 2018

PC von einem USB-Stick booten meldet „Missing Operating System“ (oder: Lenovo Thinkpad BIOS Updates ohne Windows)

Kürzlich habe ich dank der Funktion dmidecode nicht nur herausgefunden, wie ich aus der Ferne feststellen kann, um welchen Gerätetyp es sich bei einem Laptop-Server konkret handelt …

...
Handle 0x000E, DMI type 1, 27 bytes
System Information
	Manufacturer: LENOVO
	Product Name: 4236MBG
	Version: ThinkPad T420
	Serial Number: XXXXXXX
	UUID: 045E0181-510B-110B-BEFD-D0C20D7188AE
	Wake-up Type: Power Switch
	SKU Number: Not Specified
	Family: ThinkPad T420
...

… sondern auch, dass die BIOSse meiner Thinkpad-Flotte wohl mal aktualisiert werden sollten:

...
BIOS Information
	Vendor: LENOVO
	Version: 6QET69WW (1.39 )
	Release Date: 04/26/2012
...

Erstaunlicherweise unterhält Lenovo seine Support-Seiten vorzüglich und es fanden sich innert weniger Minuten alle Seiten mit BIOS-Updates für meine Thinkpads X200s, X201, T400 und T420.

Da auf den Dingern kein Windows läuft, kann man das Update über diesen Weg vergessen. Glücklicherweise bietet Lenovo auch noch CD-Images (sog. ISOs) an, mit welchem die ca. 40MB Updatedaten auf CDs gebrannt werden können. Der Laptop kann dann von dieser CD gestartet und die Updates installiert werden, d.h. die Anforderung Windows entfällt so.

Erstes Problem: Die Links auf die ISO-Images auf den Seiten mit dem „BIOS Update Utility for Windows“ funktionieren nicht. Hier hilft Google jeweils kurzerhand weiter: „X200s BIOS Update Bootable CD“ findet dann den korrekten Link der Seite.

Nachdem man sich von dort die ISOs heruntergeladen hat und sie bspw. (graphisch) mit Etcher (oder auf dem CLI mit dd) unter macOS auf einen USB-Stick schreiben will, ein weiterer Showstopper: Etcher meldet nach dem Transfer, dass der USB-Stick kein gültiges Dateisystem enthält.

Wie sich mit etwas googeln herausstellt verwendet Lenovo für seine Boot-CDs den El Torito-Standard. Deshalb muss man aus dem .iso mit dem Perl-Script geteltorito.pl das eigentliche Image extrahieren. geteltorito.pl findet sich unter Debian GNU/Linux im Paket genisoimage. Aus der Boot-CD des BIOS-Updates für ein Lenovo Thinkpad X201 extrahiert man das eigentliche ISO-Image folgendermassen:

#!/bin/bash

/Users/mario/Scripts/cd-dvd/geteltorito.pl -o 6quj19us.img 6quj19us.iso

exit 0

Auf der Kommandozeile liest man dann ungefähr Folgendes:

$ extract.sh 
Booting catalog starts at sector: 20 
Manufacturer of CD: NERO BURNING ROM
Image architecture: x86
Boot media type is: harddisk
El Torito image starts at sector 24 and has 65536 sector(s) of 512 Bytes

Image has been written to file "6quj19us.img".

Anschliessend schreibt man das .img folgendermassen auf einen USB-Stick, welcher als /dev/rdisk5 gemountet ist:

#!/bin/bash

dd if=6quj19us.img of=/dev/rdisk5 bs=512k

exit 0

Auf der Kommandozeile liest man dann ungefähr Folgendes:

# write.sh
32+0 records in
32+0 records out
33554432 bytes transferred in 6.970957 secs (4813461 bytes/sec)

Einige der folgenden Links waren für die Auskundschaftung dieser Alternative essentiell, andere (weiter unten) Sackgassen:

Die Grösse des USB-Sticks scheint eine Rolle zu spielen

Während einer Stunde habe ich mir dann die Zähne ausgebissen — sowohl mit Etcher als auch mit dd habe ich diverse Images auf einen uralten SanDisk Cruzer USB-Stick mit 512MB geschrieben. Doch jedes Mal, als ich mein Testgerät, ein Lenovo Thinkpad T400, damit booten wollte, erschien die Fehlermeldung „Missing Operating System“.

Erst als ich den USB-Stick auswechselt und einen LaCie itsaKey mit 4GB verwendete, klappte das booten und updaten der Thinkpads reibungslos.

Derzeit bin ich der Meinung, dass dies irgendwie damit zu tun hat, dass der erste USB-Stick mit 512MB kleiner als eine CD mit 640MB ist und dadurch Probleme mit dem Boot-Programm im MBR entstehen. Oder aber dass vom SanDisk-Stick schlicht und einfach nicht gebootet werden kann, weil die Hardware des USB-Sticks das aus mir unerfindlichen Gründen nicht unterstützt.

Zum Schluss noch ein Screenshot, wie die Partition im Disk Utility.app angezeigt wird — mich erstaunt, dass „Bootable“ als „No“ angegeben wird, wobei ich nicht weiss, ob damit gemeint ist, dass Macs gebootet werden können:

Tags: , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Samstag, 10. Februar 2018

UniFi AC Mesh AP als Bridge nutzen

Die Web-Site und Online-Shops sind in dem Punkt nicht explizit respektive klar, doch ich kann bestätigen, dass man einen UniFi AC Mesh AP einerseits per WLAN mit einem bestehenden UniFi Access Point verbinden und so die Reichweite des originalen Access Points steigern kann, aber andererseits (gleichzeitig) auch ein Netzwerkkabel vom Mesh Access Point zu einem PC ziehen und diesen PC mit einem Netzwerkzugang ausstatten kann.

Aus Sicht des PCs befindet er sich im lokalen Ethernet-Netzwerk; die Pakete werden per WLAN vom Mesh Access Point zum originalen Access Point übertragen und gelangen von dort zu anderen Geräten im Intranet respektive ins Internet.

Ich gehe davon aus, dass man anstelle eines PCs auch einen Switch an den Ethernet-Eingang eines Mesh Access Points hängen und so mehrere Geräte respektive ein ganzes isoliertes LAN mit dem Original-LAN bridgen kann, versucht habe ich das im Gegensatz zum alleinstehenden PC nicht.

Tags: , , ,
Labels: IT

8 Kommentare | neuen Kommentar verfassen

Samstag, 10. Februar 2018

UniFi Controller erkennt einen Repeater als Rogue Access Point

Im letzten Jahr hat ein Bekannter von mir in seinem Haus eine neue Wärmepumpe der Firma Waterkotte installiert, welche Wärme aus einer Quellwasserleitung extrahiert, die das Grundstück durchquert.

Die Wärmepumpe verfügt zeitgemäss auch über einen eingebauten Industrie-Computer (PCEngines APU2C2) mit Netzwerkanschluss, auf welchem ein Web-Server läuft. Darüber lassen sich nicht nur die Vitaldaten des Geräts abfragen, sondern dieses auch steuern.

Wie es aber in älteren Gebäuden so ist, hat im Boilerraum natürlich niemand einen Netzwerkanschluss installiert und auch keine Netzwerkkabel hingezogen. Wie bringt man das Gerät somit ins lokale Netzwerk?

Der lokale Lieferant hatte die Lösung: Der Industrie-PC ist mit einem Ethernet-Kabel an einen D-Link DIR-809 angeschlossen. Der Access Point wiederum ist per WLAN mit dem UniFi Access Point der Wohnung im oberen Stockwerk verbunden. Dies, indem der D-Link Access Point in den Repeater-Modus geschaltet wurde und die WLAN-Zugangsdaten statisch einprogrammiert wurden.

Der Bekannte klagte in der Folge aber über instabile Netzwerkverbindungen — mal war die Wärmepumpe erreichbar, aber oftmals nicht. Nach einigem Debugging dann die Erkenntnis: Der UniFi-Controller im LAN erkennt den Repeater nicht als „normalen“ Client, sondern als Rogue Access Point, d.h. als ein Access Point, der vorgibt, ein anderer Access Point zu sein.

Hat man bei einer ähnlichen Installation dieselbe Vermutung, überprüft man das in der Web-Oberfläche des UniFi-Controllers. Einerseits warnt einem der Controller sowohl in der Oberfläche (Nachrichten-Pop-Up) als auch per E-Mail über Rogue Access Points, die in der Empfangsreichweite von UniFi Access Points mit derselben SSID funken …

… andererseits werden solche Geräte in der Rubrik „Insights“ auch markant mit einem roten Punkt in der Spalte „Rogue“ dargestellt:

Das Problem ist in dem Fall, dass Rogue Access Points vom UniFi Controller automatisch geblockt werden. Dies führte zum Symptom mit den Verbindungsabbrüchen.

Ich habe dann die Funktion benutzt, Rogue Access Points als bekannt zu markieren und den D-Link whitegelistet. Die UniFi-Firmware besitzt diese Funktion offenbar seit Version 5.5.19.

Leider half das aber auch nur temporär; der D-Link Access Point wurde regelmässig wieder als Rogue Access Point klassifiziert und geblockt.

Schlussendlich entschied ich mich dazu, den D-Link Access Point dem Installateur zurückzugeben, (damals) 120 CHF zu investieren und einen UniFi AC Mesh AP im Boilerraum zu installieren.

Am Netzwerkanschluss des Mesh Access Points hängt neben dem PoE-Injektor der Industrie-PC und der Mesh Access Point verbindet sich nun seit Monaten reibungslos mit dem UniFi AP AC Pro.

Keine Unterbrüche, keine Sorgen — mitsamt dem Vorteil, dass im Untergeschoss nun besserer WLAN-Empfang herrscht.

Tags: , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Samstag, 10. Februar 2018

Eine Eaton 3S550IEC USV an Turris Omnia anschliessen

Vor einiger Zeit habe ich mir für unsere Wohnung hier in Bern zwei USVs angeschafft.

Als IT-Supporter der alten Schule kommt mir beim Begriff USV spontan APC in den Sinn. Doch diese Teile sind teuer, weshalb ich mich im letzten Jahr je für eine Eaton 3S550IEC (550VA) sowie eine Eaton 3S700IEC (700VA) entschieden habe.

Im Büro hängt die USV an meiner Synology DS413, welche es mir erlaubt, die Vitaldaten mit Cacti aufzuzeichnen sowie das NAS herunterzufahren, wenn der Strom für längere Zeit ausfällt.

Im Wohnzimmer hatte ich ursprünglich keinen Server stehen, sondern nur einen Turris Omnia. Wie sollte ich also die Daten dieser USV aufzeichnen? Alsbald stellte sich heraus, dass das überhaupt keine Hexerei ist:

Man schliesst die USV per USB-Kabel (B auf A) an einen der USB-Port des Turris Omnia an, installiert über das LuCI-Interface die Pakete nut (Network UPS Tools) sowie nut-driver-usbhid-ups (beide in der Version 2.7.4-2) auf dem Turris Omnia.

Installiert man nut-driver-usbhid-ups nicht, sieht man in den Logs (ich glaube unter /tmp/log/messages, bin mir aber nicht mehr sicher) folgende Fehlermeldung:

2017-10-22T11:00:47+02:00 info upsd[30497]: listening on 0.0.0.0 port 3493
2017-10-22T11:00:47+02:00 warning upsd[30497]: /var/run is world readable
2017-10-22T11:00:47+02:00 err upsd[30497]: Can't connect to UPS [ups] (usbhid-ups-ups): No such file or directory
2017-10-22T11:00:47+02:00 info upsd[30498]: Startup successful

Sobald der Treiber installiert ist, lesen sich die Logs beruhigender:

2017-10-22T11:05:17+02:00 info usbhid-ups[558]: Startup successful
2017-10-22T11:05:17+02:00 info upsd[559]: listening on 0.0.0.0 port 3493
2017-10-22T11:05:17+02:00 warning upsd[559]: /var/run is world readable
2017-10-22T11:05:17+02:00 info upsd[559]: Connected to UPS [ups]: usbhid-ups-ups
2017-10-22T11:05:17+02:00 info upsd[560]: Startup successful

Der wichtigste Part kommt jetzt aber: Nun gilt es, von einem Linux-System die folgenden Konfigurationsdateien als Basis zu nehmen, zu kopieren und für den Turris Omnia zu adaptieren:

/etc/nut/hosts.conf
/etc/nut/nut.conf
/etc/nut/ups.conf
/etc/nut/upsd.conf
/etc/nut/upsd.users
/etc/nut/upsmon.conf
/etc/nut/upsset.conf

Angepasst habe ich schlussendlich nur folgende Dateien:

/etc/nut/upsd.users

[monuser]
		password = s1kr1t
		upsmon master

Mit diesem Benutzer und Passwort kann ich über das Netzwerk mit nut kommunizieren.

/etc/nut/upsd.conf

LISTEN 0.0.0.0

Dank dieser Konfigurationsdatei akzeptiert nut Anfragen von beliebigen Hosts im Netzwerk.

/etc/nut/ups.conf

pollinterval = 5

[ups]
	driver = usbhid-ups
	port = auto

Hier wähle ich den richtigen Treiber für die Kommunikation zwischen Turris Omnia und USV aus sowie lege fest, wie oft der Status der USV abgefragt wird.

/etc/nut/nut.conf

MODE=netserver

Sobald die Dateien installiert sind, startet man nut unter LuCI > System > Startup mit „Restart“ neu.

Der erste Ernstfall

Lustigerweise produzierte ich erst vorgestern Abend den ersten mir bewussten Ernstfall, als ich das Netzteil eines FLEXSON 3 INPUT HDMI SWITCH & AUDIO CONVERTER FOR SONOS PLAYBAR / PLAYBASE in die Steckerleiste einsteckte, den runden, geräteseitigen Ausgang aber noch nicht im Flexson-Gerät selber stecken hatte, sondern irgendwo auf unserem Fernsehmöbel herumliegen hatte – wo es wahrscheinlich mit irgendeinem einem Leiter Kontakt herstellte und so nicht nur das Netzteil grillte (mhmmm, dieser Geruch), sondern auch die Sicherung auslöste und das ganze Wohnzimmer ohne Strom war.

Tags: , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Samstag, 10. Februar 2018

An welchem Port eines UniFi Switches hängt ein Netzwerkgerät?

Hierzu öffnet man die Web-Oberfläche des UniFi-Controllers, wählt „Clients“ an, sucht das Netzwerkgerät in der Liste und klickt es an. In den Detailinfos am rechten Browserrand steht unter „Overview“ nicht nur, dass das Gerät am Switch angeschlossen ist, sondern auch an welchem Port: #Portnummer. Im nachfolgenden Beispiel hängt mein Apple TV an einem Netzwerkkabel, welches an Port 5 meines Switches eingestöpselt ist:

Tags: , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 3. Dezember 2017

Totemo: Informationssicherheit nicht begriffen

Da will ich mir als Empfänger einer verschlüsselten E-Mail ein Konto auf einer Totemo Secure Mail-Appliance einrichten, und dann das:

Fazit: Informationssicherheit nicht begriffen. Ungenügend, setzen.

Tags: , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Samstag, 25. November 2017

Session Replay-Sites auf DNS-Ebene blocken

Vor ein paar Tagen publizierten Sicherheits-Forscher eine Untersuchung (deutsch) über eine Vielzahl von Web-Analyse-Services, welche jede Benutzereingabe auf einer Web-Site abfangen und an den Analyse-Server senden. Sozusagen ein web-site-spezifisches Keylogging.

Gefällt mir ganz und gar nicht.

Die Forscher stellten auch eine Datenbank ins Netz, welche auflistet, welche grössere Web-Site konkret welche Lösung im Einsatz haben.

Da ich seit einer Weile im internen Netzwerk bereits Ad-Sites auf DNS-Ebene blocke (mit der Folge, dass ich im Browser keine SPIEGEL-Artikel mehr lesen kann — Instapaper als funktionierender Workaround), habe ich die von den Forschern entdeckten Services zur offiziellen Block-Liste hinzugefügt.

Hier meine Konfiguration:

// Session Replay Prevention
// https://webtransparency.cs.princeton.edu/no_boundaries/session_replay_sites.html

// Already blocked by http://pgl.yoyo.org/adservers/:
// mouseflow.com
// hotjar.com
// userreplay.net

// Specific subdomains used by some sites investigated
//zone "cdnssl.clicktale.net" { type master; notify no; file "/etc/bind/zones/null.dns"; };
//zone "cdn.clicktale.net" { type master; notify no; file "/etc/bind/zones/null.dns"; };
//zone "cdn.decibelinsight.net" { type master; notify no; file "/etc/bind/zones/null.dns"; };
//zone "cdn.inspectlet.com" { type master; notify no; file "/etc/bind/zones/null.dns"; };
//zone "wu-app.quantummetric.com" { type master; notify no; file "/etc/bind/zones/null.dns"; };
//zone "ws.sessioncam.com" { type master; notify no; file "/etc/bind/zones/null.dns"; };
//zone "cdn.userreplay.net" { type master; notify no; file "/etc/bind/zones/null.dns"; };
//zone "mc.yandex.ru" { type master; notify no; file "/etc/bind/zones/null.dns"; };

zone "clicktale.net" { type master; notify no; file "/etc/bind/zones/null.dns"; };
zone "fullstory.com" { type master; notify no; file "/etc/bind/zones/null.dns"; };
zone "decibelinsight.com" { type master; notify no; file "/etc/bind/zones/null.dns"; };
zone "inspectlet.com" { type master; notify no; file "/etc/bind/zones/null.dns"; };
zone "quantummetric.com" { type master; notify no; file "/etc/bind/zones/null.dns"; };
zone "sessioncam.com" { type master; notify no; file "/etc/bind/zones/null.dns"; };
zone "yandex.ru" { type master; notify no; file "/etc/bind/zones/null.dns"; };

Die gröbsten Missetäter sollten somit nicht mehr ins Haus kommen …

Tags: , , , , , , , , ,
Labels: IT, Linux, Web

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 21. November 2017

Turris Omnia: LuCI-Seite mit den Port-Weiterleitungen lädt im Schneckentempo

Vor einigen Wochen ist mir ein Bug in der LuCI Web-Oberfläche meines Turris Omnia aufgefallen: Die Seite zum Verwalten der Port-Weiterleitungen (ja, ich bin noch ein eingeschworener IPv4-Haushalt) lädt extrem langsam (Wartezeiten von über 2 Minuten). Will man dann auch noch einen bestehenden Eintrag bearbeiten, wartet man bis zu 16 Minuten (!), bis das Bearbeitungsformular geladen ist.

Mittlerweile habe ich einen Bug-Report im offiziellen Forum veröffentlicht, eine Lösung konnte mir aber noch nicht präsentiert werden. Immerhin haben sich bereits zwei Leidensgenossen gemeldet.

Aber aus einem Grund sind wir ja keine Klickibunti-Windows-Admins geworden und haben selbstverständlich auch den SSH-Zugang auf den Router freigeschaltet.

Die Anpassungen an den Firewall-Einstellungen finden sich in der Datei unter /etc/config/firewall. Am Besten kopiert man einfach einen bestehenden Eintrag und passt diesen nach den eigenen Wünschen an, zum Beispiel so:

...
config redirect
	option target 'DNAT'
	option src 'wan'
	option dest 'lan'
	option proto 'tcp udp'
	option src_dport '1234'
	option dest_ip '10.10.10.10'
	option dest_port '1234'
	option name 'sikrit hole'
...

Anschliessend speichert man die Datei und lädt die Firewall neu:

# /etc/init.d/firewall restart

Via: Add a firewall rule

Tags: , , , , ,
Labels: IT, Linux

1 Kommentar | neuen Kommentar verfassen

Freitag, 20. Oktober 2017

Canon Selphy wird bei der Treiberinstallation unter Windows nicht im Netzwerk erkannt

Letzte Woche habe ich für eine Bekannte einen gebrauchten Canon Selphy-Photodrucker gepostet. Das Gerät war im Nu ins heimische Netzwerk integriert und druckte daraufhin direkt vom iPhone übermittelte Photos problemlos aus.

Einzig bei der Installation des Druckertreibers unter Windows 7 kam es zu Komplikationen: Das Installationsprogramm konnte den Drucker partout nicht im Netz erkennen, obwohl er nachweislich eingeschaltet war und das WLAN-Symbol anzeigte.

Nach etwas Google-Recherche dann die Erleuchtung: Der Computer war aus irgendeinem Grund nicht mit dem Netzwerk-Modus „Heimnetzwerk“ unterwegs, sondern im Modus „Öffentliches Netzwerk“.

Damit der Drucker gefunden werden kann, muss die Option „Network Discovery“ aktiviert werden: How to Turn Network Discovery On or Off in Windows 7

  1. Control Panel
  2. Network and Sharing Center
  3. Change advanced sharing settings
  4. Pfeil nach unten beim zutreffenden Netzwerkprofil (dasjenige, das „current profile“ anzeigt)
  5. Klick auf „Turn on network discovery“

Tags: , , , , , , , ,
Labels: IT

5 Kommentare | neuen Kommentar verfassen

Freitag, 20. Oktober 2017

Ubiquiti hat seine Produkte gegen KRACK bereits gepatcht

More to the point, measure your current vendors by how long it takes them to patch. Throw away gear by those vendors that took a long time to patch and replace it with vendors that took a short time.

Quelle: Some notes on the KRACK attack

Im Januar 2016 habe ich meinen ersten Ubiquiti UniFi-Access Point gekauft und bin seither hell begeistert von den Produkten — bei mir kommt nur noch UniFi ins Haus, wenn es um die Versorgung eines Gebäudes mit WLAN geht. Mittlerweile habe ich solche Access Points an drei Standorten ausgerollt.

Als die Kunde von KRACK an die Öffentlichkeit gelangte, hatte ich die Hoffnung, dass Ubiquiti äusserst rasch reagieren würde.

Und das taten sie auch: Innert 24 Stunden standen aktualisierte Firmware-Dateien für die gesamte Produktepalette zum Download und zur manuellen Installation bereit.

Als ich mich heute auf den Controllern an den drei Standorten einloggte dann die frohe Botschaft im GUI des Controllers: Für alle meine Access Points stand Firmware 3.9.3.7537 zur automatisierten Installation bereit.

Das Bauchgefühl hat sich somit als richtig erwiesen: Der Hersteller baut nicht nur tolle Produkte, die man nie mehr hergeben möchte, sondern nimmt auch die Sicherheit seiner Software ernst und aktualisiert diese schnurstracks. Nach knapp zwei Minuten war das Upgrade vorüber und die Access Point frisch gegen KRACK gesichert.

Ubiquiti erhält das Sicherheits-Gütesiegel von mir. Wer es noch nicht getan hat: Kaufen!

Tags: , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen