Archiv ‘IT’

Mittwoch, 31. März 2021

Cacti motzt über cactiNotifyDeviceFailedPoll

SNMPAGENT WARNING: No notification receivers configured for event: cactiNotifyDeviceFailedPoll (CACTI-MIB), severity: medium

Die Lösung: Aus irgendeinem Grund wurde in der Administrationsoberfläche folgende Einstellung aktiviert, die man nun deaktivieren sollte, wenn man die Fehlermeldung nicht mehr im Log sehen möchte:

  1. Console
  2. Configuration
  3. Settings
  4. Poller
  5. SNMP Agent Support von Enabled auf Disabled setzen

Quelle: about snmpagent warning

Tags: , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 28. März 2021

Mit gehärtetem SSH-Client kann man sich nicht mehr auf UniFi-Geräte einloggen

$ ssh us-8-60w
Unable to negotiate with 10.1.2.3 port 22: no matching MAC found. Their offer: hmac-sha1

Bummer. Ich musste meine gehärtete ~/.ssh/config folgendermassen abschwächen, um mich per SSH wieder auf den Access Point einloggen zu können:

...
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com,hmac-sha1
...

Siehe auch SSH Into Ubiquiti Access Point

Die lokal verfügbaren MACs zeigt man folgendermassen an:

$ $ ssh -Q mac
hmac-sha1
hmac-sha1-96
hmac-sha2-256
hmac-sha2-512
hmac-md5
hmac-md5-96
umac-64@openssh.com
umac-128@openssh.com
hmac-sha1-etm@openssh.com
hmac-sha1-96-etm@openssh.com
hmac-sha2-256-etm@openssh.com
hmac-sha2-512-etm@openssh.com
hmac-md5-etm@openssh.com
hmac-md5-96-etm@openssh.com
umac-64-etm@openssh.com
umac-128-etm@openssh.com

Tags: , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 28. März 2021

Auf einem UniFi Switch die Vitaldaten eines SFPs auslesen

Dieses Anliegen ist zum Glück deutlich besser dokumentiert als bei einem EdgeRouter ER-X-SFP, generell aber etwas komplizierter umgesetzt:

Nachdem man sich per SSH auf den UniFi Switch mit SFP-Modul eingeloggt hat, gibt man folgende Befehle ein:

# telnet localhost
(UBNT) >show fiber-ports optics all

                                    Output    Input
Port      Temp  Voltage  Current     Power    Power   TX     LOS
           [C]   [Volt]     [mA]     [dBm]    [dBm]   Fault
--------  ----  -------  -------   -------  -------   -----  ---
0/9       42.9    3.284     34.3    -5.983   -8.520   No     No

Quelle: SFP/SFP+ info on UniFi switches

Nachtrag

Um anzuzeigen, was genau für SFPs im Switch verbaut sind, verwendet man folgenden Befehl (Achtung, es handelt sich um einen anderen Switch als den obigen):

# swctrl sfp show
Port  Vendor Name      Serial Number    Part Number      Rev  Compliance
----  ---------------- ---------------- ---------------- ---- ----------------
   9  UBNT             X20061111111     UF-RJ45-1G       1.0  1000T           
  10  UBNT             X20061111112     UF-RJ45-1G       1.0  1000T

Quelle: Ubiquiti US-16-XG 10GbE switch command line

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

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 28. März 2021

Auf einem ER-X-SFP die Vitaldaten eines SFPs auslesen

Nirgends sauber dokumentiert, habe ich es nach einigen Stunden Recherche geschafft, die Temperatur, die Spannung, den Strom sowie die Sende- und Empfangsstärke eines in einem ER-X-SFP verbauten Fiber7-SFPs auszulesen:

/usr/sbin/ubnt-hal getSfp eth5
connector=LC
vendor=FLEXOPTIX       
oui=38-86-02
part=S.B1312.10.XDL  
rev=A   
serial=1234567
date=170110  
temp=67.601 C
voltage=3.23 V
current=17.03 mA
tx_power=0.15 mW
rx_power=0.23 mW
tx_fault=no
rx_los=no

Diesen goldenen Tipp erhielt ich von diesem Kommentar im Community-Thread Support for g.fast SPF. Was /usr/sbin/ubnt-hal sonst noch kann, ist im (leider seit 2013 nicht mehr aktualisierten) Artikel Undocumented EdgeOS commands beschrieben.

Wieso ich wusste, dass das geht? Im Router GUI werden diese Daten angezeigt, wenn man mit der Maus über den im Header graphisch dargestellten SFP-Port fährt. Das GUI holt diese Daten über die Websockets-Schnittstelle /ws/stats, welche von lighthttpd auf den Socket /tmp/ubnt.socket.statsd zeigt. Leider habe ich nicht herausgefunden, wie ich diesen Socket von der Kommandozeile aus ansprechen kann.

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

Keine Kommentare | neuen Kommentar verfassen

Freitag, 29. Januar 2021

Welcher Linux-Prozess schreibt am meisten Daten auf die Festplatte?

Ganz einfach, dafür installiert man sich unter Debian GNU/Linux am Besten das Tool iotop:

# apt-get install iotop

Sofort habe ich das soeben installierte Tool gestartet, wurde aus der sich ständig wechselnden Ausgabe aber nicht schlau.

Nach einigen Recherchen im Netz fand ich dann die Startparameter, um die (jedenfalls von mir) gesuchte Diagnose-Funktionalität herbeizuzaubern:

# iotop --accumulated --only --processes
  • --accumulated Summiere alle Lese- und Schreibaktivitäten eines Prozess fortlaufend
  • --only Zeige nur Prozesse, welche auch tatsächlich von der Festplatte lesen oder auf sie schreiben
  • --processes Führe nur Prozesse auf, nicht aber Threads

Nachgelesen unter man iotop.

Anschliessend hilft es vermutlich, mittels Cursor rechts resp. Cursor links diejenige Spalte auszuwählen, nach welcher man die Ausgabe sortieren möchte. Für meinen Anwendungszweck war das natürlich die Spalte DISK WRITE. Die ausgewählte Spalte erkennt man an der Fettschrift sowie dem rechtsstehenden Grösser als.

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

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 1. Dezember 2020

Mehrere Unix Timestamps auf der macOS Kommandozeile in Daten umwandeln

Voraussetzung: MacPorts und das Utility gdate (unter Linux: date) (Teil des Pakets coreutils) sind installiert.

$ python -mjson.tool < netatmo.json | grep utc | cut -d ":" -f 2 | awk '{print $1}' | xargs -I '{}' gdate -d "@{}"
Mon Nov 30 22:28:06 CET 2020
Mon Nov 30 22:27:57 CET 2020
Mon Nov 30 22:28:03 CET 2020
Mon Nov 30 22:27:38 CET 2020
Mon Nov 30 22:28:03 CET 2020
Mon Nov 30 22:28:03 CET 2020
Mon Nov 30 22:28:03 CET 2020
Mon Nov 30 17:07:34 CET 2020
Mon Nov 30 17:07:21 CET 2020
Mon Nov 30 17:07:21 CET 2020
Mon Nov 30 20:03:52 CET 2020
Mon Nov 30 20:03:52 CET 2020
Mon Nov 30 20:03:52 CET 2020
Mon Nov 30 20:03:52 CET 2020
Mon Nov 30 20:03:46 CET 2020
Mon Nov 30 22:07:42 CET 2020
Mon Nov 30 22:07:00 CET 2020
Mon Nov 30 22:07:07 CET 2020

Im vorliegenden Fall nahm mich Wunder, wann meine Netatmo-Sensoren das letzte Mal einen Wert an den Server übertragen hatten.

Mindestens zwei Stationen mit einer handvoll Sensoren haben den Wert seit gestern nicht mehr aktualisiert. Ich vermute auf Grund dieses Absturzes.

Hierzu lud ich über die Netatmo API das JSON mit den Daten aller meiner Stationen herunter, gab das JSON schön formatiert aus (ein Key-Value Pair pro Zeile), selektierte die Zeilen mit dem Attribut time_utc, isolierte deren Wert — die Unix Timestamp (ein Integer), entfernte die Leerzeichen vor und nach dem Wert und übergab die Liste der Werte mittels xargs dem Tool gdate zur Umwandlung in ein menschenlesbares Datum.

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

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 17. November 2020

Dateigrössen-Limite bei WhatsApp?

The maximum file size allowed for all media (photos, videos or voice messages) to be sent or forwarded through WhatsApp is 16 MB on all platforms

Quelle: I get a message that my video is too long and it won’t send

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

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 30. September 2020

PHPMailer 5.2.28 kann über SMTP keine Mails versenden: „key too small“

Für ein Projekt möchte ich ein Web-Formular als E-Mail versenden. Um die sensitiven Daten besonders gut zu schützen, möchte ich das E-Mail direkt vom Hosting Web-Server auf den Ziel-Mailserver senden und den lokalen SMTP des Hostinganbieters nicht mit den Daten in Berührung kommen lassen. Und die Übermittlung des E-Mails an den SMTP-Server müsste auch noch verschlüsselt erfolgen.

Leider verfügt der Ziel-SMTP-Server über ein (mittlerweile) schwaches Zertifikat, denn PHPMailer respektive OpenSSL weigert sich, verschlüsselt mit dem SMTP-Server zu kommunizieren:

...
2020-09-30 19:48:46 Connection failed. Error #2: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small [../PHPMailer-5.2.28/class.smtp.php line 374]
...

PHPMailer gibt diese Debug-Meldungen direkt an den Browser aus, wenn man bei der Initialisierung der Klasse folgende Option aktiviert:

...
$mail = new PHPMailer();
...
$mail->SMTPDebug = SMTP::DEBUG_LOWLEVEL;
...

Andere, weniger geschwätzige Optionen sind: SMTP::DEBUG_CLIENT, SMTP::DEBUG_SERVER, SMTP::DEBUG_CONNECTION. SMTP::DEBUG_OFF unterdrückt jegliche Debug-Meldungen.

Das Problem ist, dass der vom Server verwendete Diffie Hellman-Key zu kurz ist; im vorliegenden Fall ist er nur 1024 bit lang. Dies erlaubt Logjam-Attacken.

Überprüfen kann man die Key-Länge mit folgendem Befehl:

$ openssl s_client -connect mailserver.tld:25 -starttls smtp
...
Server Temp Key: DH, 1024 bits
...

Beim Debugging habe ich auch noch den Web-Service www.checktls.com entdeckt, der mir bestätigt hat, dass der Server grundsätzlich verschlüsselt spricht.

Nun, entweder überzeugt man den Betreiber des SMTP-Servers, die Verschlüsselungskonfiguration anzupassen respektive einen neuen Schlüssel zu generieren.

Falls dies keine Option ist, und man das Risiko in Kauf nehmen möchte, gibt es aber noch folgende Möglichkeit:

...
$mail = new PHPMailer();
...
$mail->SMTPSecure = 'tls';
$mail->SMTPOptions = array(
    'ssl' => array(
        'security_level' => 0
    )
);
...

Die Option security_level gibt es seit PHP 7.2 und OpenSSL 1.1.0. Mögliche Werte sind in der offiziellen Dokumentation nachzuschlagen. 0 bedeutet sinnbildlich NULL Sicherheit.

DIESER WORKAROUND ERFOLGT AUF EIGENE GEFAHR! Ich würde das nur machen, wenn man sich wirklich bewusst ist, was man tut.

Tags: , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 16. September 2020

Debian: Repository changed its ‚Codename‘ value

Heute verweigerte apt-get seinen Dienst:

# apt-get upgrade
...
Reading package lists... Done                                                                            
E: Repository 'https://dl.ubnt.com/unifi/debian stable InRelease' changed its 'Codename' value from 'unifi-5.14' to 'unifi-6.0'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.

Das Problem löst man, in dem man vor apt-get upgrade folgenden Befehl ausführt:

# apt-get update --allow-releaseinfo-change

Quelle: APT codename change from unifi-5.5 to unifi-5.6 errors

Tags: , ,
Labels: IT, Linux

1 Kommentar | neuen Kommentar verfassen

Mittwoch, 16. September 2020

fr24feed 1.0.26-4 hat Probleme mit IPs, IPv6 und dem Web-Server

Kürzlich wurde auf meinem Pi24-Horchposten die neueste Version von fr24feed installiert: 1.0.26-4, Built on Sep 14 2020 08:32:40 (HEAD-bd20105.git/Linux/static_armel).

Umgehend reagierten meine monit Netzwerksensoren:

Connection failed Service pi24.domain.tld 

	Date:        Mon, 14 Sep 2020 19:03:03
	Action:      alert
	Host:        HOST
	Description: failed protocol test [HTTP] at [10.1.2.3]:8754 [TCP/IP] -- HTTP error: Regular expression doesn't match: No match

Your faithful employee,
Monit

Als ich auf das Web-Interface zugreifen wollte erschien auch tatsächlich folgende Fehlermeldung:

For security reasons the web interface is only availble from private class networks or after you have manually specified the bind-interface setting in /etc/fr24feed.ini

Please set it to bind-interface="0.0.0.0" to accept traffic from all interfaces or to the IP address of your preferred network interface!

For further assistance please contact support@fr24.com

Komisch! Nun gut, ich fügte also bind-interface="0.0.0.0" ans Ende der Datei /etc/fr24feed.ini und bootete den Pi24 neu. Das schaffte keine Abhilfe.

Selbst wenn ich auf dem Pi24 selber ein wget localhost:8754 respektive wget 127.0.0.1:8754 machte, erschien die Fehlermeldung.

Ich tüftelte noch eine Weile lang herum, und entdeckte dabei folgendes: Die neuste Version von fr24feed bindet sich aus irgendeinem Grund nur an IPv6:

$ netstat -tulpn
...
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp6       0      :::8754                   :::*                    LISTEN      -                   
...

Ein Eintrag für denselben Port beginnend mit tcp fehlte.

Das CHANGELOG zeigt auf, dass die Kollegen aktuell an den Netzwerkfunktionalitäten von fr24feed rumbasteln und dabei bereits mehrere Male nachbessern mussten. Offenbar ist auch die neuste Version noch nicht ganz koscher.

Ein Blick in das Log von fr24feed zeigte folgende Einträge:

2020-09-14 20:10:02 | ______  _  _         _      _                    _              _____    ___ 
2020-09-14 20:10:02 | |  ___|| |(_)       | |    | |                  | |            / __  \  /   |
2020-09-14 20:10:02 | | |_   | | _   __ _ | |__  | |_  _ __  __ _   __| |  __ _  _ __`' / /' / /| |
2020-09-14 20:10:02 | |  _|  | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / /  / /_| |
2020-09-14 20:10:02 | | |    | || || (_| || | | || |_ | |  | (_| || (_| || (_| || |  ./ /___\___  |
2020-09-14 20:10:02 | \_|    |_||_| \__, ||_| |_| \__||_|   \__,_| \__,_| \__,_||_|  \_____/    |_/
2020-09-14 20:10:02 |                __/ |                                                         
2020-09-14 20:10:02 |               |___/                                                          
2020-09-14 20:10:02 | [main][i]FR24 Feeder/Decoder
2020-09-14 20:10:02 | [main][i]Version: 1.0.26-4/generic
2020-09-14 20:10:02 | [main][i]Built on Sep 14 2020 08:32:40 (HEAD-bd20105.git/Linux/static_armel)
2020-09-14 20:10:02 | [main][i]Running on: pi24-raspbian9
2020-09-14 20:10:02 | [main][i]Local IP(s): 
2020-09-14 20:10:02 | [main][i]Copyright 2012-2020 Flightradar24 AB
2020-09-14 20:10:02 | [main][i]https://www.flightradar24.com
2020-09-14 20:10:02 | [main][i]DNS mode: PING
2020-09-14 20:10:03 | [main][i]Automatic updates are ENABLED
2020-09-14 20:10:04 | ERROR: rmmod: ERROR: Module dvb_usb_rtl28xxu is not currently loaded
2020-09-14 20:10:04 | info | [httpd]Server started, listening on ::2020-09-14 20:10:04 | [e]PacketSenderConfiguration::fetch_config(): Unable to fetch configuration for yoda receiver
2020-09-14 20:10:06 | [d]TLSConnection::ctor(): Enable verify_peer in production code!
2020-09-14 20:10:06 | [main][i]Reader thread started
2020-09-14 20:10:06 | [main][i]Socket server started
2020-09-14 20:10:06 | [main][i]MLAT data feed started
2020-09-14 20:10:06 | [reader][i]Initializing reader
2020-09-14 20:10:06 | [reader][i]Connecting to DVBT receiver via (exe:///usr/bin/dump1090-mutability  --raw --mlat)
2020-09-14 20:10:06 | [bs][i]Initializing server
2020-09-14 20:10:06 | [bs][i]Starting server on 0.0.0.0:30003
2020-09-14 20:10:06 | [mlat][i]Waiting for MLAT configuration
2020-09-14 20:10:06 | [master][i]Starting processing thread
2020-09-14 20:10:06 | [reader][i]Connected to the receiver, configuring
2020-09-14 20:10:06 | [reader][i]Configured, processing messages
2020-09-14 20:10:07 | terminate called after throwing an instance of 'char const*'

Interessant sind folgende Zeilen:

...
2020-09-14 20:10:02 | [main][i]Local IP(s): 
...
2020-09-14 20:10:04 | info | [httpd]Server started, listening on ::
...
2020-09-14 20:10:07 | terminate called after throwing an instance of 'char const*'

Komisch! Dem Problem konnte ich nicht auf den Grund gehen, wieso fr24feed die IP des Raspberry Pis nicht herausfinden konnte. strace könnte hier wohl weiterhelfen, doch das ging mir dann doch etwas zu weit. Schlussendlich hatte ich genug und entschied ich mich für ein Downgrade auf eine „last known good“ Version:

$ wget "https://repo.feed.flightradar24.com/rpi_binaries/fr24feed_1.0.25-3_armhf.deb" --no-check-certificate
# dpkg -i fr24feed_1.0.25-3_armhf.deb

Damit die neueste Version am nächsten Tag nicht erneut installiert wird, habe ich auch noch /etc/cron.d/fr24feed_updater angepasst:

47 9 1 * * root /usr/lib/fr24/fr24feed_updater.sh >> /var/log/fr24feed_update.log 2>&1

Hoffen wir, dass es bis zum 1. Oktober eine neue Version gibt, die mein Problem behebt.

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

Keine Kommentare | neuen Kommentar verfassen