Teltonika TRB140 Parameter http/https - Error sending SMS: HTTPSConnectionPool / Nutzung an der Hardware-Appliance

Hallo Zusammen,
ich versuche mit 2.4.0p16 eine SMS zu versenden was nicht klappt. Hier habe ich zwei Probleme.

Zum Setup:
TRB140 konfiguriert mit User lt. Werk zur Berechtigung (Werk #18076: SMS (using modem API): Use new API endpoint for TRB140 if needed).
LAN=IP-Netz “Monitoring” 10.50.xxx.xxx
USB=IP-Netz “USB” 192.168.1.1 - mit DHCP-Server
Empfang habe ich und kann ich SMS senden und empfangen lt. WebUI, an Gerät mit Windows per USB-IP-Adapter getestet.

Problem 1 - USB-Netzwerk:
Wenn das TRB per USB an der Appliance steckt sehe ich ein neues Interface. Dieses bekommt aber keine IP. Liegt vermutlich an der Konfiguration des Netzwerkes, nur was ist richtig einzurichten?
Ich habe zwei Appliance als Cluster in unterschiedlichen Standorten mit jeweils eigenem TRB.
Muss ich das Cluster auseinanderreisen um die Netzwerkkonfiguration vornehmen zu können?
In der /webconf habe ich kein Modem konfiguriert in den SMS Einstellungen, da ich es per API nutzen will.
In der Konsole sehe ich das, leider ohne IP:
15: enx42db98a6fb21: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 42:db:98:a6:fb:21 brd ff:ff:ff:ff:ff:ff
Ich kann an der Appliance auch keinen dhcp-Client finden. Mit der manuellen Konfiguration in der /etc/network/interfaces funktioniert es aber. Geht diese Änderung verloren wenn über webconf etwas verändert werden sollte?
Ist das so gewollt das die Appliance kein DHCP unterstützt (Firmware 1.7.11)?

Problem 2:
SMS senden über die IP-Adresse des TRB. In der Konfiguration habe ich unter parameters den Modem als https://10.50.xxx.xxx angegeben und “Disable SSL certificate verification” aktiviert. Proxy = Connect without proxy.
Wenn eine Nachricht ausgelöst wird, finde ich diese unter “failed notifications” mit dem Hinweis:
Error sending SMS: HTTPSConnectionPool(host=‘10.50.x.x’, port=443): Max retries exceeded with url: /cgi-bin/sms_send (Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)’)))

Aktiviere ich “Disable SSL certificate verification” nicht, ist die Meeldung:
Error sending SMS: HTTPSConnectionPool(host=‘10.50.17.8’, port=443): Read timed out. (read timeout=5.0)

Beide Meldungen passen nicht zur Ereignis!?

Der check des IP per checkmk httpv2 sagt per http und https - 200 OKimage

Wenn der Parameter für das Modem nur http://10.50.xxx.xxx ist bleibt die Meldung:
Error sending SMS: HTTPSConnectionPool(host='10.50.17.8', port=443): Read timed out. (read timeout=5.0)
Beiden Meldungen bleibt es egal ob über die LAN oder USB-IP zugegriffen wird.

Kann mir das jemand bitte deuten?
Geht die API immer per https auch wenn http hinterlegt ist?

Einige Erkenntnisse zum TRB140:

Der HTTP Request wird auf HTTPS umgeleitet im Default. Das kann unter
SYSTEM –> ADMINISTRATION → ACCESS CONTROL → HTTPS hinten auf Edit → Redirect to HTTPS, abgeschalten werden.

Weiter zur Berechtigung, solange die Berechtigung nicht stimmt erhalte ich Meldung in den failed notifications:
HTTPError sending SMS: 401 Client Error: Unauthorized for url: , b’<!doctype html>\n\n \n <meta\n name=“robots”\n content=“noindex”\n />\n \n <meta\n http-equiv=“X-UA-Compatible”\n content=“IE=edge”\n />\n <meta\n http-equiv=“Cache-Control”\n content=“no-cache, no-store, must-revalidate”\n />\n <meta\n name=“viewport”\n content=“width=device-width,initial-scale=1.0”\n />\n <link\n rel=“stylesheet”\n href=“/brand/colors.css?v=1”\n />\n <link\n rel=“stylesheet”\n href=“/brand/tokens.css?v=1”\n />\n <link\n rel=“icon”\n href=“/favicon.ico”\n />\n \n \n \n <link rel=“modulepreload” crossorigin href="/asset

Wenn die dann passt wird das daraus:
Error sending SMS: HTTPConnectionPool(host='192.168.1.1', port=80): Read timed out. (read timeout=16.0)

Mit Upload des Root-CA und eigenem SSL-Zertifikat für das TRB, klappt es in teilen mit SSL.
Der Hacken “Disable SSL certificate verification“ wird weiter ignoriert mit Meldung:
Error sending SMS: HTTPSConnectionPool(host='192.168.1.1', port=443): Max retries exceeded with url: /cgi-bin/sms_send (Caused by SSLError(SSLCertVerificationError(1, "[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: IP address mismatch, certificate is not valid for '192.168.1.1'. (_ssl.c:1010)")))

Die Meldung an sich bleibt wie bei http, auch wenn die Chain stimmt:
Error sending SMS: HTTPSConnectionPool(host='192.168.1.1', port=443): Read timed out. (read timeout=16.0)

Der Port 80 und 443 sind definitiv offen und erreichbar.
Die Firmware ist die aktuelle Stable: TRB1_R_00.07.18.3

In einer ausgelößten Notifikation steht in der Spalte “Comment”:
/omd/sites/prod/lib/python3.12/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host '192.168.1.1'. Adding certificate verification is strongly advised. See: Advanced Usage - urllib3 0.1.dev50 documentation – warnings.warn( – /omd/sites/prod/lib/python3.12/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host ‘192.168.1.1’. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings – warnings.warn( – /omd/sites/prod/lib/python3.12/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host ‘192.168.1.1’. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings – warnings.warn( – Error sending SMS: HTTPSConnectionPool(host=‘192.168.1.1’, port=443): Read timed out. (read timeout=16.0)`

Hat das evtl. was mit diesem Werk zu tun? Werk #18935: OpenSSL Upgrade Compatibility Fix

Problem 1 ist gelöst: Ich lasse das USB-Netzwerkgerät immer als usbnet0 erkennen per Regel unter /etc/udev/rules.d/10-usbnet.rules
SUBSYSTEM==“net”, ACTION==“add”, ATTRS{idVendor}==“1d12”, ATTRS{idProduct}==“0002”, NAME=“usbnet0”
und habe die Konfig angepasst unter /etc/network/interfaces für “allow-hotplug usbnet0“.
Damit habe ich immer am USB-LAN Adapter die gleiche IP anliegen.

Bei Problem 2 komme ich nicht weiter.
In der Konsole per curl als auch per Powershell übers Netz kann ich eine SMS versenden. Das Skript “sms_api.py“ scheint irgendetwas anders zu machen wenn es vom core gestartet wird und bleibt dann anscheinend hängen (wenn die API des TRB schon gestartet ist), bis der Timeout kommt.
Es bleibt beim:

Error sending SMS: HTTPConnectionPool(host='192.168.1.1', port=80): Read timed out. (read timeout=30.0)

Hat jemand noch eine Idee oder eine funktionierende Konfiguration zum vergleich?

Problem 2 ist auch gelöst: Das TRB bleibt hängen wenn die Rufnummern nicht “stimmt”. Im Test wurde die Rufnummer als 49xxxx hinterlegt (wurde aus checkmk 1.6 übernommen). Damit kommt es zur Timeout Meldung. :innocent:

Wenn das Format +49xxxx ist, klappt es auch mit der SMS!

Und da die Fehlersuche so schön war musste ich gleich eine eigenes Notification Skript einhängen, da der Text für die SMS nicht anpassbar ist (mit 2.4). :joy: :grimacing::tired_face: