Quantcast
Channel: Software – Andy's Blog
Viewing all 1827 articles
Browse latest View live

Aktuelle 3CX auf PC Engines APU installieren

$
0
0

Das Installations-Image aus der Umstellungszeit von Askozia-zu-3CX ist mittlerweile veraltet und basiert noch auf Debian 8 Jessie. Man kann es zwar nach wie vor verwenden, darf dann allerdings sowohl für Debian als auch 3CX viele Updates installieren. Das letzte Mal als ich das so gemacht habe, hat es gut zwei Stunden in Anspruch genommen, die kann man sich zum Teil sparen, wenn man das aktuelle 3CX-Debian-Netinst-Image nimmt.

Leider klappt das nur zum Teil, das mit dem Zeit sparen, denn im Gegensatz zur regulären 3CX-Linux-Installation läuft das automatische Setup nach dem Neustart leider nicht weiter. Stattdessen kann bzw. muss man per Hand mit der 3CX-Installation fortfahren. Dazu später mehr.

Grundsätzlich gibt es zwei Möglichkeiten 3CX auf ein APU-Board zu bekommen. Entweder man installiert zunächst ein reguläres Debian und führt dann die restliche Installation von Hand durch oder man startet gleich mit dem 3CX-Debian-ISO. Letztgenanntes kommt für diesen Beitrag zum Einsatz.

USB-Stick vorbereiten

Die folgenden Dateien auf dem Stick müssen angepasst werden:

Im Root des USB-Sticks die Datei „syslinux.cfg“ editieren und am Anfang die folgenden beiden Zeilen einfügen:

CONSOLE 0
SERIAL 0 115200

Im Ordner „isolinux“ die Datei „adtxt.cfg“:

label expert
menu label E^xpert install
kernel /install.amd/vmlinuz
append priority=low vga=off console=ttyS0,115200n8 initrd=/install.amd/initrd.gz ---
include rqtxt.cfg
label auto
menu label ^Automated install
kernel /install.amd/vmlinuz
append auto=true priority=critical vga=off console=ttyS0,115200n8 initrd=/install.amd/initrd.gz --- quiet

Im Ordner „islolinux“ die Datei „txt.cfg“ editieren. Die Zeile mit „append…“ muss wie folgt aussehen:

label install
	menu label ^Install
	kernel /install.amd/vmlinuz
	append vga=off console=ttyS0,115200n8 initrd=/install.amd/initrd.gz auto=true priority=high  url=http://downloads.3cx.com/downloads/debian9iso/preseed_9.5.0.txt --- quiet THREECXMARKER=DEBIAN-3CX-ISO console=ttyS0,115200n8

Im wesentlichen werden über die Änderungen dem System mitgeteilt, das es statt via VGA über die serielle Schnittstelle die Ausgabe erledigen soll.

Zusätzlich für APU(1)-Boards muss noch die Firmware für die Realtek-Netzwerkkarten auf den Stick gepackt werden:

Da ich aktuell kein APU2-Board zur Hand habe, konnte nicht getestet werden, ob evtl. weitere Anpassungen von nöten sind.

Debian installieren (lassen)

  • Das Board mit dem vorbereiteten Stick starten.
  • „Install“ auswählen.
  • „enp1s0“ als Netzwerkschnittstelle auswählen.
  • Per Standard holt sich Debian eine IP-Adresse per DHCP. Möchte man während der Installation eine feste IP-Adresse vergeben, so muss man bei der Abfrage nach dem „Hostname“ „ESC“ drücken, dann „configure network manually“ auswählen, die IP-Adresse, das Gateway und den DNS-Server angeben.
    Wichtig: Die IP-Adresse kann später nicht ohne weiteres bzw. nur mit Backup, Neuinst. und Restore geändert werden. Dies liegt nicht an Debian, sondern an 3CX, da Diese die Änderung der IP-Adresse auf OS-Ebene nicht richtig mitbekommt.
  • „Hostname“ eingeben.
  • „Domain“ eingeben.
  • „Sprache“ (eigentlich steht nur „English“ zur Auswahl) und „Land/Region“ auswählen. Letztgenanntes ist relevant! Um „Europe“ und folglich „Germany“ auswählen zu können, zunächst „other“ auswählen. Die „locales“-Auswahl wie vorgeschlagen lassen.
  • Das „root“-Passwort festlegen und bestätigen.
  • Bei „Partition disks“ „Guided – use entire disk“ auswählen.
  • „sda“ für die mSATA SSD auswählen.
  • „All files in one partition“ auswählen.
  • „Finish partitioning and write changes to disk“ auswählen.
  • Die Sicherheitsabfrage mit „Yes“ bestätigen. Letzte Chance um abzubrechen!
    Die Installation benötigt ein paar Minuten, man muss also ein wenig Geduld haben.
    Es erfolgt ein automatischer Neustart, an dieser Stelle sollte der USB-Stick entfernt werden.

Die eigentliche 3CX-Installation durchführen

Da es wie eingangs erwähnt nicht bis zum Ende mit der automatischen Installation klappt, muss man ein die folgenden Befehle an der Konsole oder via ssh, nachdem man sich als root angemeldet hat, ausführen:

wget -O- http://downloads-global.3cx.com/downloads/3cxpbx/public.key | apt-key add -

echo "deb http://downloads-global.3cx.com/downloads/debian stretch main" | tee /etc/apt/sources.list.d/3cxpbx.list

apt-get update

apt-get install 3cxpbx

apt-get install net-tools

An der seriellen Konsole gibt’s eine kleine Falle. Sieht man über längere Zeit nur folgendes Bild:

Scrollt man am besten mal nach unten und siehe da, das Setup wartet darauf, das man dem Lizenzvertrag zustimmt:

Abschließend noch „1“ drücken um „Using a Web Browser“ auszuwählen.
Ab hier geht’s dann von einem anderen Computer bzw. Web-Browser unter „http://<IP-Adresse des 3CX-Computers>:5015?V=2“ weiter. Nun kann man der Erstkonfiguration folgen:

Erstkonfiguration der 3CX-PBX

Quellen:

3CX – Installieren der 3CX-Telefonanlage unter Debian Linux

3CX – Installing Debian for 3CX on a Mini PC

computing competence – Askozia Hardware für 3CX (Debian) nutzen


VirtualBox: Ausgabe vom Debian-Installer zur seriellen Schnittstelle umleiten

$
0
0

Bei der Arbeit mit PC Engine APU-Boards und dem vielen rumprobieren mit dem Debian-Installer und der Ausgabe auf der seriellen Schnittstelle stellte ich mir die Frage, ob man das nicht auch irgendwie anders testen könnte, statt ständig USB-Stick abziehen, Einstellungen ändern, wieder dran stecken, booten, etc. Kurzum: Ja, es geht.

Bei VirtualBox (und VMware soll’s auch können) kann man für die virtuellen Maschinen serielle Schnittstellen konfigurieren. Soweit nichts neues. Der Trick besteht darin, keine COM-Schnittstelle anzusprechen, sondern eine Pipe. Die wiederum kann von PuTTY oder KiTTY auf der Gegenseite verwendet werden.

Inspiriert durch die Anleitung bei Haiku ging es gleich ans Werk:

Haiku – Guides – Virtualizing Haiku – VirtualBox Serial Debugging on Windows

Eine neue virtuelle Maschine unter VirtualBox anlegen und wie folgt ändern:

  • Zu „Serielle Schnittstellen“ wechseln.
  • Auf der Registerkarte „Port 1“ den Haken setzen bei „Serielle Schnittstelle aktivieren“.
  • „Portmodus“ auf „Host-Pipe“ stellen.
  • Den Haken entfernen bei „Mit Pipe/Socket“ verbinden.
  • Bei „Pfad/Adresse“ z.B. „\\.\pipe\vboxserial“ eingeben.

Sobal die virtuelle Maschine gestartet ist, steht die Pipe zur Verfügung.

  • Das Terminalprogramm (PuTTY, KiTTY,…) seiner Wahl starten.
  • Bei Connection type“ auf „Serial“ stellen.
  • Bei „Serial line“ den gleichen Pfad eintragen wie bei VirtualBox.
  • Auf „Open“ klicken.

Damit es auf der seriellen Schnittstelle etwas zu sehen gibt habe ich kurzerhand eine Debian-Installation gestartet und die Ausgabe umgeleitet:

  • Beim Bootemenü „H“ für „Help“ drücken oder mit den Pfeiltasten auswählen.
  •  „<F8> Special boot parameters for install system.“ drücken.
  • Mindestens „console=ttyS0“, besser „vga=off console=ttyS0“ eingeben und Enter drücken.

Tipp: Da der Installer und das Tastaturlayout noch auf Englisch steht, muss man bei einer deutschen Tastatur folgende Tasten drücken:

console´ttzS0
bzw.
vga´off console´ttzS0

Das vorläufige Ergebnis sieht dann z.B. so aus:

3CX: Gleicher Klingelton bei snom-Telefonen für interne und externe Anrufe

$
0
0

Ein Kunde störte sich an den unterschiedlichen Klingeltönen für interne als auch externe Anrufe bei seinen snom-Telefonen.

3CX gibt per Vorlage folgende Klingelton-Konfiguration vor:

Schaut man ins Web-Interface eines Telefons sieht man folgendes:

Es zeigt sich: Der Standard-Klingelton der 3CX gilt für interne Rufe, nicht aber für Externe.
Das für externe Rufe der Klingelton 2 verwendet wird, ist fest in der Vorlage eingetragen.

Leider gibt es aktuell, außer über die Custom Templates, keine Möglichkeit, den Klingelton bei snom-Telefonen über die Verwaltungsoberfläche zu ändern. Einzig kann man den Standard-Klingelton auf „Ring 2“ setzen, damit für interne und externe Anrufe wenigstens der gleiche vorgegebene Klingelton verwendet wird.

Das Thema wurde bereits bei den 3CX Ideas angesprochen:

Snom ringtone for external calls

Ich habe da gleich mal für gevotet.

Custom Template erstellen und anpassen

In der Vorlage ist dieser Abschnitt für den externen Klingelton verantwortlich:

Am einfachsten zu finden über die Suche nach „alert_external_ring_sound“.
Man kann die Vorlage kopieren und dann den Telefonen zuweisen.

Die Original-Vorlage ist zumindest nicht über die Verwaltungskonsole anpassbar. Tricksen könnte man z.B. via ssh, WinSCP, o.ä. Anbei die Pfade zu den Original-Vorlagen und den Custom Templates unter Linux:

/usr/share/3cxpbx/skel/Data/Http/Templates/phones
/var/lib/3cxpbx/Instance1/Data/Http/Interface/provisioning/<AuthGenDir>/CustomTemplates/phones

Allerdings griffen bei mir die Änderungen, die an der Original-Vorlage vorgenommen wurden (trotz Dienste-Neustart) nicht beim Provisionieren der Telefone.

Vorsicht bei Updates

Werden die Vorlagen im Rahmen von Updates geändert, so sollte man seine eigenen Vorlagen ebenfalls aktualisieren. Das geht dann nur per Hand.

„Problemfall“ Support

Die Custom Templates bieten mächtige Möglichkeit zum Individualisieren der Telefone. Leider bietet 3CX bei deren Einsatz keinen Support an.

Im Dashboard wird vor „Telefone“ ein rotes Ausrufezeichen gesetzt und man erhält beim Klick darauf folgenden Text:

Für von Ihnen genutzte Telefone oder Geräte mit benutzerdefinierter Vorlage besteht keine Unterstützung, sodass Probleme auftreten können.
Eine Übersicht zu unterstützten IP-Telefonen finden Sie hier.

Unter „Telefone“ werden zudem alle Telefone die eine angepasste Vorlage verwenden rot markiert. Selbst wenn man sich an den Support mit einem Problem meldet, welches überhaupt nichts mit den Vorlagen zu tun hat, ist der Call bzw. Case gleich beendet.

Quellen:

3CX – V15 – Creating Custom IP Phone Templates

LANCOM-Router: DHCP-Reservierung konfigurieren

$
0
0

Bei einem von der Telekom bereitgestellten LANCOM-Router sollte bei einem Kunden für einen Untermieter eine DHCP-Reservierung eingerichtet werden.

Diese ist notwendig, damit vom gemeinsam genutzten Multifunktionsgerät auf den PC des Untermieters gescannt werden kann. Mehr als Internet, Drucken und Scannen ist durch entsprechende Firewall-Regeln nicht erlaubt, d.h. die beiden LANs können sonst nicht gegenseitig aufeinander zugreifen.

Soweit so gut, die Firewall-Regeln wurden von der Telekom angelegt, beim Punkt mit der DHCP-Reservierung hieß es dann allerdings, das könne „der LANCOM so nicht“. Damit war der Fall für den Techniker erledigt und er zog von dannen.

Nebenbei bemerkt: Eine statische IP-Konfiguration auf dem PC und einem Notebook kam nicht in Frage, da die Geräte auch außer Haus verwendet werden. Da die Anwenderin technisch nicht so fit ist, war das schlicht keine Option. Beim alten Router den der Kunde zuvor hatte, war das Thema bzw. die Aufgabe überhaupt kein Problem, allerdings wurde im Zuge der All-IP-Umstellung leider der Router getauscht.

Das es dennoch geht, fällt wohl in den Bereich gewusst wie. Schaut man via Suchmaschine trittt man meist auf den unter Quelle verlinkten Beitrag von LANCOM. Irritierend kann sein, das dort nicht von der umgangsprachlichen DHCP-Reservierung die Rede ist. Jedenfalls kann man unter

Konfiguration - IPv4 - BOOTP - Stationen - Hinzufügen

Zuweisungen anlegen. Man gibt folgendes ein:

  • MAC-Adresse ohne Trennzeichen
  • Netzwerk auswählen
  • IP-Adresse eingeben
  • Stationsnamen (Computername, Hostname) eintragen

Boot-Image lässt man leer bzw. so wie es ist. Für das Vorhaben wird es nicht verwendet.

Die bereits verteilten IP- und zugehörigen MAC-Adressen kann man in der DHCP-Tabelle auslesen:

Systeminformation - Gerätestatus - DHCP - DHCP Tabelle

oder

LCOS-Menübaum - Status - TCP-IP - DHCP

Quelle:

LANCOM – Docs – Zuweisung von festen IP-Adressen an bestimmte Stationen konfigurieren

Seucrepoint UTM: Telekom-VoIP-Gespräche brechen nach 15 Minuten ab

$
0
0

Eine Unterbrechung des Telefonats ist salopp ausgedrückt blöd. Den Grund dafür zu finden, kann im Idealfall einfach sein. Jedenfalls kämpften wir nun recht lange mit einem solchen „Abbruch“-Problem bei einem Kunden.

Zunächst wurde man durch unterschiedliche Angaben mehr oder weniger in die Irre geführt. Mal hieß es, es wäre nur beim Chef, mal betraf es Alle. Lange war nicht klar, in welcher Richtung die Gespräche, die abbrachen, geführt wurden. Gemeint ist: Wurde der Kunde angerufen oder hat er angerufen. Ferner gab es je nach Mitarbeiter/in und dem Geschäftsführer unterschiedliche Definitionen von einem längeren Gespräch, diese lagen zwischen drei Minuten bishin zu mehrere Stunden.

Die Bitte dochmal mitzuschreiben, wann mit welchem Teilnehmer und nach welcher Zeit die Gespräche abbrachen zu notieren, wurde leider nicht erfüllt. Nach langem Hin und Her und ein paar Tests zeigte sich dann in folgender Kombination das Problem:

Rief man jemanden an, wurde das Gespräch nach 15 Minuten + wenige Sekunden unterbrochen. Es spielte dabei keinerlei Rolle, ob man in dieser Zeit wirklich sprach oder nicht.

Mit dieser Erkenntnis dass das Limit bei 15 Minuten, sprich 900 Sekunden, lag, konnte schnell der Rückschluss gezogen werden, das es am Session Timer liegt.

Ein wenig Hintergrund, mal grob ausgedrückt: Das System des Angerufenen prüft alle 15 Minuten, ob das Gespräch noch besteht. Zu diesem Zweck wird im Rahmen des SIP-Protokolls ein Re-INVITE gesendet, bleibt dieser unbeantwortet, wird das Gespräch beendet.

Nun blieb die Frage, warum der Re-INVITE unbeantwortet blieb. Das Naheliegenste ist dabei die Firewall, in dieser Umgebung also eine Securepoint UTM. Die Maßnahmen aus dem Beitrag Securepoint UTM und AskoziaPBX halfen leider nicht, geschadet hat es aber auch nicht.

Mir dämmerte dann eine Aussage aus einer Askozia-Schulung. Sinngemäss lautete diese: „Wenn es irgendwelche Probleme mit der VoIP-Telefonie (bei der Telekom) gibt, dann einfach mal alles in der Firewall was von ‚tel.t-online.de‘ kommt Richtung Telefonanlage zulassen.“

Also erstmal wirklich eine solche any-Regel gebaut, getestet und siehe da: Es lebt! Da any-Regeln böse sind, das Ganze dann auf SIP (Port 5060/udp) eingedampft:

Bemerkung: Ggf. muss man noch einen Dienst „sip-tls“ mit Port „5061/udp“ anlegen, sofern verschlüsseltes VoIP zum Einsatz kommt. Bei der Telekom ist das wohl nur bei (manchen) SIP-Trunks der Fall. Wie man im Screenshot sieht, wird eine 3CX-Telefonanlage verwendet, zuvor war es eine Askozia, davor eine von der Telekom, das Problem wanderte immer mit, selbst als noch statt einer Securepoint UTM eine IPFire verwendet und der Kunde nicht durch uns betreut wurde.

3CX bzw. deren Doku als auch der Firewall-Tester geben an, man solle Port 5060/udp (SIP) und Weitere öffnen. Das würde zwar im Rahmen des geschilderten Problems wohl ebenfalls helfen, ist aber in Sachen Sicherheit nicht unbedingt zu empfehlen. Das kommt natürlich ganz darauf an, welche Funktionen und Dienste der 3CX genutzt werden.

Nach einem abschließenden Support-Call mit Securepoint konnte nichts weiter verschlimmbessert werden. Der Supporter meinte sogar, er habe dieses Problem erst zum zweiten Mal gehabt bzw. gehört.

Quelle:

3CX Forums – Calls are dropped after 15 and 30 minutes

Synology Surveillance Station: Nicht-unterstüzte Kamera anbinden

$
0
0

Im Idealfall verwendet man an seinem Synology NAS in Verbindung mit der Surveillance Station durch den Hersteller direkt unterstützte IP-Kameras. Hat man allerdings nicht-unterstütze Bestandskameras oder kommen solche Projekte wie MotionEye hinzu, muss man geringfügig von der Komfortzone abrücken. Keine Sorge, meist ist es einfacher als das es nun klingt.

Gut ist, wenn die IP-Kamera zumindest ONVIF spricht, aber auch Kameras die „nur“ einen MJPEG-Stream liefern können verwendet werden.

Als Beispiel dienen hier einmal eine „Marke-Eigenbau“ IP-Cam auf Basis von MotionEyeOS und eine velleman CAMIP7N. Beide liefern nur MJPEG-Streams, unterstützen kein ONVIF oder RTSP.

Bei MotionEye war es kein Problem, die Adresse des Streams zu bekommen. Diese wird einfach unter „Video Streaming – Streaming URL“ nach einem Klick vorausgewählt zum Kopieren angeboten:

Etwas schwieriger war es mit der Kamera von velleman. Da bei diesem Modell der eigentliche Hersteller nicht bekannt ist, wurde kurz und knapp mittels „Web-Entwickler – Netzwerkanalyse“ des Firefox die richtige Zeile ermittelt:

Ich muss allerdings zugeben, das zuvor diverse andere Adressen die von so mancher China-Cam bekannt sind erfolglos durchprobiert wurden.

Schöner ist’s natürlich, wenn der Hersteller alles dokumentiert hat. Am Beispiel von Instar finden sich die CGI-Befehle und damit die Streaming-URL, in der FAQ des Herstellers:

Instar – Complete CGI Instruction Set

Mit den richtigen Streaming-URLs zur Hand, kann die entsprechende Kamera in der Surveillance Station angelegt werden:

  • Auf „IP-Kamera – Hinzufügen“ klicken.
  • Einen Namen vergeben.
  • Bei „Marke:“ „[Benutzerdefiniert]“ auswählen.
  • Bei „Typ:“ „Streaming – HTTP“ auswählen.
  • Bei Pfad die zuvor erfasste Streaming-URL einfügen.

An dieser Stelle gibt es eine kleine Falle, zumindest was MotionEye betrifft: An die Streaming-URL muss noch „/irgendwas“ angefügt werden, andernfalls streikt der Assistent. Wie im Screenshot zu sehen, habe ich einfach mal „/test“ drangehängt.

Quelle:

Herr Schroedinger learns coding ’n stuff – How I connected my RaspberryPi Zero W (with camera) to my Synology NAS (DS 216 II+) and use it in the Diskstations Surveillance Station

Bvckup 2: Lizenz austauschen

$
0
0

Bei einer Testmaschine auf der unter anderem Bvckup 2 läuft, war die Demo-Lizenz abgelaufen. Der Vollständigkeit halber muss hier erwähnt werden, das es sich nicht um die Test-Lizenz von der Homepage handelt, sondern um Demo-Lizenzen die Reseller wie wir erhalten. Jedenfalls war zunächst nicht klar, wie bzw. wo man diese Lizenz austauschen kann.

Ziel war es, die abgelaufene Demo-Lizenz durch eine Kauf-Lizenz zu ersetzen.

Die Methode die vmtl., da bislang nicht getestet, immer funktioniert, besteht darin, die Lizenz-Datei zu entfernen und das Programm neu zu starten:

  • Bvckup 2 und ggf. den entsprechenden Dienst beenden.
  • Die Datei
    %LocalAppData%\Bvckup2\engine\bvckup2.lic

    entfernen.

  • Das Programm neu starten und den neuen/anderen Lizenzschlüssel eingeben.

Abgelaufene Demo-Lizenz ersetzen

Erhält man die Meldung, das die Lizenz abgelaufen ist und klickt auf „Dismiss“ so öffnet sich ein Dialog bzw. Assistent der im weiteren Verlauf die Eingabe einer neuen Lizenz ermöglicht.

Als kleine Aussicht für die Zukunft lies mich der Bvckup 2-Macher wissen, das die GUI hinsichtlich dieses Themas nochmal überarbeitet werden soll um die Handhabung besser zu machen.

Android: Sprachnotizen aufnehmen

$
0
0

Um die Ansagen für eine Telefonanlage aufzunehmen gibt es meist den klassischen Weg, dies direkt per Telefon vor Ort zu machen. Für einen Kunden sollte das Ganze allerdings aus der Ferne erfolgen und das auch noch so, das man die Ansagen gut bearbeiten kann.

Mangels pasablen Mikrofon vor Ort war der nächst naheliegenste Gedanke, dies per Smartphone zu tun. Zum einen sind die Mikros mitunter gar nicht so schlecht, zum anderen sind meist Funktionen wie Echo- und Rausch-Unterdrückung an Bord und aktiv.

Hat man als Format noch MP3, M4A oder besser noch WAV zur Hand, steht einer späteren Nachbearbeitung, z.B. Normalisierung, Anfang/Ende zurechtschneiden, etc. nichts mehr im Wege.

Mit Glück ist vom Smartphone-Hersteller irgendeine Voice Recorder-, Diktier-, Sprachaufzeichnungs-App vorinstalliert. Wenn nicht, gibt es erschöpfend viele Alternativen. Wie gehabt ist von kostenfrei (mit Werbung) bis kostenpflichtig alles zu haben.

Die ersten Treffer bei APKpure sind a) ziemlich gleich, das ist nicht nur beim Namen so und b) ziemlich arg viel mit Werbung durchsetzt.

Beide Apps heißen Diktiergerät und Diktiergerät:

Besser, weil weniger nervige Werbung und etwas einfacher in der Handhabung ist da Stimmrekorder Plus.

Die Aufnahmen können, wie bei den anderen auch, direkt mittels „Teilen“ per Mail und Co. versendet werden.

Ab Werk wird als *.wav-Datei aufgenommen, dies kann in den Einstellungen auf *.m4a oder *.3gp geändert werden.

Die Aufzeichnungen finden sich z.B. via Dateimanager+ unter „Hauptspeicher – EasyVoiceRecorder“ und können von dort aus mittels FTP, SMB, … kopiert und verschoben werden.


Windows: Relativ günstiger Einstieg in OCR und mehr

$
0
0

Es gibt schon einiges im Bereich der OCR-Anwendungen, von kostenlos, open source bis hin zu richtig teuer ist alles dabei. Welche Anwendung zu einem passt, entscheidet der Anspruch, das Vorhaben und letztlich auch das Ergebnis.

Geht es nur darum, einfach den Text ohne Layout und Formatierung zu erkennen kommt man günstiger bei weg, als wenn mehr erwartet bzw. verlangt wird.

Bei vielen OCR-Anwendungen oder -Suiten geht es primär um PDF, das ist wenig verwunderlich, da häufig direkt vom Scanner ins PDF-Format übertragen wird und vieles ebenfalls per PDF durch die Weltgeschichte geschickt wird, leider oft ohne das diese durchsuchbar oder Textstellen kopierbar sind.

Manchmal geht es aber auch um vorhandene Bilder, bei denen mittels OCR der Text ausgelesen und ggf. weiter verarbeitet werden soll.

Beim Rumspielen mit FreeOCR, IrfanView mit KADMOS Plugin, EASY SCREEN OCR waren die Ergebnisse nicht so wie erwartet und gewünscht. Wobei man fairerweise sagen muss, das beim letztgenannten der Schwerpunkt auf die Anwendung in Verbindung mit Screenshots und Bilder liegt, dabei wird nur der Text ermittelt.

Nach etwas suchen und probieren kam ich letztlich bei Readiris an.

Los geht’s mit der kleinsten Version für 49,00 € über die Pro-Variante für 99,00 € bis hin zur Corporate-Ausgabe für 199,00 €.

Was kostet Readiris 17? (inkl. Versionsvergleich)

Für den Einstieg gibt’s eine Menge Tutorials als Video.

Das Programm kann allerdings noch mehr, als mit PDFs arbeiten und per OCR Texte erkennen. Ein Beispiel wäre die Umwandlung von Text zu Sprache.

Die 10-Tage-Demoversion kann direkt heruntergeladen werden, man muss nicht über das Formular gehen.

Im Gegensatz zu so manch anderen Kandidaten wurden beim Test z.B. deutsche Umlaute erkannt, ferner wird z.B. beim Umwandeln zu Word- oder OpenDocumentText-Datei (ab Pro) auch das Layout „mitgenommen“.

Im Schnitt dürfte (imho) die Pro-Variante am interessantesten sein.

Windows: Easy Screen OCR – Screenshots samt Texterkennung

$
0
0

Wie im Beitrag Windows: Relativ günstiger Einstieg in OCR und mehr erwähnt, wurde mit Easy Screen OCR herumgespielt. Dazu nun ein eigener Beitrag zu diesem Tool.

Screenshot-Programme gibt es viele, aber eines das automatisch den Text erkennt der im Bild enthalten ist stellt wohl eine Ausnahme dar. Easy Screen OCR gibt es für Windows zum Installieren als auch portable. Der Vollständigkeit halber sei auch die MAC-Version erwähnt 😉 Für den Einstieg gibt’s ein How-To.

Für diesen Beitrag wurde die portable Ausgabe des Tools verwendet. Möglich das es Unterschiede zu installierbaren Version gibt.

Die Handhabung ist simple: Entweder per Hotkey oder über das Kontextmenü den Auswahlmodus aktivieren, den gewünschten Bereich markieren und je nach Einstellung wird sofort die Auswahl als Bild und/oder PDF gespeichert und die Texterkennung durchgeführt.

In den Einstellungen kann die Sprache geändert werden. Ab Werk auf steht diese auf Englisch. Damit die Screenshots gespeichert werden (können), muss man in den Einstellungen einen Pfad angeben.

Leider ist das PDF nicht durchsuchbar. Auch ein direktes bzw. automatisches Speichern des erkannten Textes ist nicht vorgesehen, d.h. kopieren & einfügen (in ein anderes Programm) ist angesagt.

Rein als Screenshot-Tool ist Easy Screen OCR eher rudimentär, das Besondere liegt wirklich in der Texterkennung.

Windows: Texterkennung mit IrfanView und dem KADMOS-Plugin

$
0
0

Wie im Beitrag Windows: Relativ günstiger Einstieg in OCR und mehr erwähnt, wurde mit  IrfanView zusammen mit dem KADMOS-Plugin herumgespielt. Dazu nun ein eigener Beitrag zu diesem Lösungsweg in Sachen OCR bzw. Texterkennung.

Für diesen Beitrag wurde die portable Ausgabe von IrfanView verwendet. Das KADMOS-Plugin gibt es zwar „nur“ als Setup, dieses kann allerdings einfach mit 7-Zip entpackt und der Inhalt in den Plugin-Ordner von IrfanView eingefügt werden.

Sobald IrfanView gestartet ist kann man entweder direkt von einem Scanner oder bereits vorhandene Bilder geöffnet werden. Die Texterkennung kann über „Optionen – OCR starten (Plugin)“ oder einen Druck auf „F9“ gestartet werden.

Daraufhin öffnet sich ein neues Fenster in dem zunächst nach Auswahl der Schriftart und Sprache der zu erkennende Text ausgewählt wird. Das Ergebnis sieht dann z.B. wie folgt aus:

Zur Erkennung wurden die ersten zwei Zeilen der eingescannten Windows-Drucker-Testseite ausgewählt. Wie man sieht, ist das Ergebnis „durchwachsen“. Während die erste Zeile unbrauchbar ist, gibt es bei der Zweiten nur einen kleinen Fehler. Fairerweise muss man sagen, das dieses Ergebnis vermutlich dem Kontrast geschuldet ist. Markiert man weitere Bereich, ist die Erkennung besser. Es kommt also immer auch auf die Vorlage darauf an. Bilder sollten mindest 300 DPI an Auflösung haben.

Windows: FreeOCR – Kleine und einfache Schrifterkennung

$
0
0

Der Dritte im Bunde, der im Zuge des Beitrags Windows: Relativ günstiger Einstieg in OCR und mehr genannt wurde ist FreeOCR. Es handelt sich dabei um eine kleine und zugleich einfach zu verwendente Anwendung.

Die Handhabung ist einfach, direkt vom Scanner oder ein Bild oder PDF laden und die Texterkennung starten. Der Text wird dann rechts angezeigt und kann kopiert oder als TXT-, Word- oder RTF-Datei gespeichert werden.

Tipp: Vorher den Beispieltext löschen, da sonst der erkannte Text zum Beispieltext hinzugefügt wird.

Das Speichern im Word-Format klappt nur, sofern die Redmonder Textverarbeitung installiert ist. Speichert man als RTF klappt’s auch z.B. mit einem installiertem LibreOffice.

Im Test war dieses Programm das langsamste. Layout und ähnliches wird nicht übernommen. Die Erkennungsrate ist je nach Vorlage, Scans und Bilder sollten min. 200 besser sogar 300 DPI haben.

Synology DSM 6.2.x in VirtualBox installieren

$
0
0

Vor über drei Jahren wurde das Virtualisieren von Synology’s DSM 5.2 unter VirtualBox beschrieben. Zeit für eine Aktualisierung, denn inzwischen hat sich viel getan.

Vorbereitungen

Bevor es losgehen kann, muss man erstmal was herunterladen, konvertieren und konfigurieren.

Download’s

Jun’s Loader v1.03b (DS315xs/DS317xs): XPEnology Club – Downloads

Jun’s Loader v1.04b (DS918+): XPEnology Community – DSM 6.2 Loader

„synoboot.img“ in *.vdi umwandelt

Damit der Loader direkt und ohne Umwege in VirtualBox verwendet werden kann, wandelt man diesen zuerst in eine virtuelle Festplatte im VirtualBox-eigenen *.vdi-Format um. Der Befehl dazu lautet:

VBoxManage.exe convertdd synoboot.img synoboot.vdi

Optional: *.vdi mit jeweils neuer UUID

VirtualBox identifiziert virtuelle Medien anhand der UUID. Möchte man nun zwei oder mehr DSM’s einrichten, geht das aufgrund der gleichen UUID des Loader-Abbilds nicht. Daher sollte jede „synoboot.vdi“ eine eigene UUID erhalten. Dies geht einfach über folgenden Befehl:

VBoxManage.exe internalcommands sethduuid synoboot.vdi

Optional: Eigene MAC-Adresse im Loader konfigurieren

Möchte man die durch den Loader vorgegebene MAC-Adresse nicht verwenden oder möchte man mehrere virtuelle DSM’s gleichzeitig laufen lassen, so müssen pro Loader neue MAC-Adressen konfiguriert werden.

  • Mit OSFMount die *.img laden.
  • Die erste Partition auswählen.
  • Den Haken entfernen bei „Read-only drive“.
  • Im eingehängten Abbild im Ordner „grub“ die Datei „grub.cfg“ editieren.
  • Zeile 25 „set mac1=…“ anpassen.
  • Die Änderung speichern und das Abbild aushängen.
  • Nun wie oben beschrieben die Datei umwandelt und mit neuer UUID versehen.

Virtuelle Maschine anlegen

Viel hilft viel gilt in diesem Fall für den virtuellen Arbeitsspeicher und den virtuellen Prozessor, das hängt selbstverständlich davon ab, was man innerhalb des virtuellen Synology NAS’es tun möchte. Minimal sollte man folgendes Konfigurieren:

  • Betriebssystem: Linux 2.6 / 3.x /4.x (64-bit)
  • Arbeitsspeicher: 512 MB
  • Virtuelle Festplatten: SATA, Port 0: synoboot.vdi, Port 1 und weitere die eigentlichen Daten-Laufwerke. IDE oder anderes entfernen.
  • Netzwerk auf Bridge stellen und folgende MAC-Adresse, sofern man keine Eigene verwendet, eintragen:Jun’s Loader v1.03b (DS315xs/DS317xs): 0011322CA785
    Jun’s Loader v1.04b (DS918+): 001132123456
  • Alle unnötigen virtuellen Hardware-Anhängsel deaktivieren. Gemeint ist damit z.B. Sound, ggf. USB, usw.

Installation

Nachdem der Loader gestartet ist und man einen Moment gewartet hat kann z.B. über die DHCP-Vergabeliste des Routers oder mittels des Synology Assistenten die IP-Adresse des virtuellen NAS ermittelt werden. Sobald man diese hat, geht die eigentliche Installation via Browser weiter.

Theoretisch kann man die aktuelle Version über den Assi aus dem Internet herunterladen und installieren lassen. In der Praxis geht das in Abhängigkeit der jeweiligen Version mitunter schief, siehe dazu den (über-)nächsten Abschnitt.

Die zu diesem Zeitpunkt (Stand: 13.12.2018) aktuelle DSM-Version 6.2.1 führt nach der Installation und dem automatischen Neustart zu einer Kernel Panic (Absturz), Dritt-Anbieter Netzwerkkarten- und andere Treiber laufen nicht mehr. Das virtuelle NAS ist unbrauchbar.

Im Forum ist zwar nur die Rede von VMware, wie die Tests der vergangenen Tage zeigten, gilt das auch für VirtualBox. Inwieweit z.B. Proxmox VE betroffen ist, wurde nicht untersucht.

Mit Jun’s Loader v1.04b (DS918+) ist es zwar möglich Synology DSM 6.2.1 direkt zu installieren oder eine ältere Installation zu aktualisieren, allerdings ist diese Version schon wieder CPU-abhängig. Bei Ausprobieren klappte es auf einem aktuellerem Core i5 ohne Probleme, mit einem älteren starte der Loader den Kernel nicht (Black Screen).

Optional: Zugriff auf das virtuelle NAS mittels serieller Schnittstelle

Jenseits des Bootmenüs bekommt man in der direkter Ausgabe der virtuellen Maschine nichts mehr zu sehen. Ausführlicher und vor allem für’s Troubleshooting interessanter ist die Ausgabe an der seriellen Schnittstelle. Diese muss zuvor in der Konfiguration der virtuellen Maschine aktiviert sein:

Nach dem Start der virtuellen Maschine kann mittels PuTTY/KiTTY und Co. auf die Schnittstelle zugegriffen werden:
Das „Gesamtkunstwerk“ kann dann so aussehen:

Die Update-Falle

Wie bei der Installation schon angedeutet, ist beim Updaten Vorsicht geboten. Ändert, sich etwas grundlegendes, wie neulich der Kernel in Sachen PCIe, gibt es mit Treibern oder anderen Erweiterungen von Dritten Probleme:

XPEnology Community – Tutorial/Reference: 6.x Loaders and Platforms

XPEnology Community – DSM 6.2.1-23824 – WARNING

Am besten man schaut immer erstmal ins XPEnology-Forum unter

XPEnology Project  – DSM Updates Reporting

bevor man ein Update installieren möchte. Zudem ist es wärmstens zu empfehlen, die automatischen Updates zu deaktivieren. Eine Datensicherung vor jedem Update sollte selbstredend sein.

Zur vorigen Version zurückkehren

Klappt es nicht mit der aktuellen Version des DSM, so muss man ein Downgrade durchführen. Wohl dem, der vor dem Update eine Datensicherung der virtuellen Maschine angefertigt hat, denn so lässt sich einfacher und schneller auf den vorigen Zustand zurückkehren. Ist das nicht der Fall, muss man den Loader sozusagen auf Werkszustand bringen und die vorige Version des DSM installieren.

Über das Synology-Archiv kann man ältere Versionen herunterladen:

https://archive.synology.com/download/DSM/release/6.2/23739/

Damit man diese Installieren kann muss zunächst der Loader auf die vorige Version zurückgesetzt werden:

  • Wie unter Vorbereitungen beschrieben den Loader konvertieren und mit einer neuen UUID versehen.
  • Die bisherige „synoboot.vdi“ freigeben und entfernen.
  • Im Ordner der virtuellen Maschine die bisherige „synoboot.vdi“ ersetzen.
  • Die neue „synoboot.vdi“ der virtuellen Maschine zuweisen.
  • Ggf. die MAC-Adresse anpassen, z.B. beim Wechsel von v1.04b zu v1.03b.
  • Nach dem Boot und dem ersten Aufruf im Browser wird einem die Migration oder Wiederherstellung angeboten.

Zur nächsten Loader-Version wechseln

Der Wechsel des Loaders ist simple:

  • Wie unter Vorbereitungen beschrieben den Loader konvertieren und mit einer neuen UUID versehen.
  • Die bisherige „synoboot.vdi“ freigeben und entfernen.
  • Im Ordner der virtuellen Maschine die bisherige „synoboot.vdi“ ersetzen.
  • Die neue „synoboot.vdi“ der virtuellen Maschine zuweisen.
  • Ggf. die MAC-Adresse anpassen, z.B. beim Wechsel von v1.03b zu v1.04b.
  • Nach dem Boot und dem ersten Aufruf im Browser wird einem die Migration angeboten.

Abschlussbemerkung

Für Produktivumgebungen ist diese heransgehensweise, schon alleine wegen fehlendem Support und der Update-Problematik, natürlich nicht zu empfehlen. Bei so manchen Erweiterungen können keine Lizenzen eingetragen werden. Paradebeispiel ist die Surveillance Station, wenn zusätzliche Kamera-Lizenzen hinzugefügt werden sollen. Für Tests und mal zum Reinschnuppern ist’s auf jeden Fall eine feine Sache.

Quellen:

Noticias3D – Manual instalación Synology DiskStation Manager 6.2 (DSM) en Virtualbox

XPEnology Community – Kurzanleitung Installation DSM 6.0.2

XPEnology Community – Tutorial – Install DSM 6.2 on ESXi 6.7

XPEnology/JunLoader – Installing DSM 6.0 Bare Metal

TecAdmin.net – How to Change the UUID of Virtual Disk (.VDI)

kickinass.net – TerraMaster F2-220 NAS mit XPEnology 6.2

LANCOM vRouter unter VirtualBox einsetzen

$
0
0

LANCOM bietet seine Router nicht nur in Hardware-Form an, sondern auch zum Installieren als virtuelle Maschine. Offiziell wird durch den Hersteller nur VMware ESXi und Hyper-V unterstützt, dennoch ist es möglich den vRouter unter VirtualBox zu nutzen. Das geht sogar einfacher als erwartet.

Zu Beginn muss im Downloads-Bereich des Herstellers folgendes heruntergeladen werden:

vRouter OVA, Version 10.20 RU1 Basispaket zum Deployment eines vRouter in VMware ESXi

Nicht wundern darf man sich darüber, das es sich nur um eine einzelne Datei handelt. Als erstes würde man eine virtuelle Festplatte vermissen. Diese wird während der Installation automatisch erzeugt und befüllt.

  • VirtualBox starten.
  • Auf „Datei – Appliance importieren… klicken.
  • Die zuvor heruntergeladene *.ova auswählen.
  • In der Übersicht kann man die vorgegebennen Einstellungen einsehen.
  • Als nächstes muss dem Lizenzvertrag zugestimmt werden.
  • Nach dem Importieren sollte man die Netzwerkzuordnung anpassen. Die erste Netzwerkkarte ist meist WAN, die Zweite LAN/Intranet. Die Zuordnung kann jederzeit sowohl in VirtualBox und im vRouter geändert werden.
  • Wie bereits erwähnt wird beim ersten Start eine *.vmdk heruntergeladen bzw. erstellt und die Firmware installiert.
  • Nun geht es wahlweise auf der Konsole oder besser via Browser weiter.

Je nachdem was man testen möchte wird ggf. noch eine (Test-)Lizenz benötigt:

30-Tage-Demo Lizenz

Adobe Reader: Schließen oder Schließen

$
0
0

So kurz vor Weihnachten noch mal etwas zum Schmunzeln:

Am Ende der Aktualisierung von Adobe Reader auf einem Kunden-PC konnte man sich zwischen „Schließen“ oder „Schließen“ entscheiden:

Das Ganze ist lediglich ein Anzeigefehler, die linke „Schließen“-Schaltfläche heißt eigentlich „Adobe Reader öffnen“.


Nach Geschwindigkeit sortierte *.m3u-Playlist erstellen

$
0
0

Für die diesjährige Weihnachtsplayliste(n) wollte ich die Musik in aufsteigender Geschwindigkeit wiedergeben. Mit einem DJ-Programm, der Sortierung nach BPM und Automix ist das kein Thema. Wenn man Playlisten z.B. für den VLC media player oder andere vorbereiten möchte, hilft einem das unter Umständen wenig.

Programme zum Bestimmen der Song-Geschwindigkeiten gibt es einige, dünner wird die Auswahl wenn man eben nach dieser sortieren und diese Reihenfolge als Playlist abspeichern möchte.

Fündig wurde ich zum einen bei beaTunes als auch bei VirtualDJ. Kein Glück hingegen hatte ich bei Mixxx, aber vielleicht gibt’s da doch noch irgendeinen Trick, der mir entgangen ist. Dort kann man zwar ebenfalls nach BPM sortieren, allerdings kann man die so sortierte Playlist nicht speichern, die resultierende *.m3u ist alphabetisch sortiert.

Man kann natürlich jede Playlist manuell sortieren, das wäre dann die händische Art und Weise. Bei sehr vielen Titeln kann das aber durchaus zur Mammutaufgabe werden.

beaTunes

Fügt man in beaTunes Ordner mit Musik hinzu, kann man die darin enthaltenen Titel direkt Analysieren (BPM, Tonart, Länge, …) als auch Inspizieren. Ersteres ist für das hier genannte Vorhaben relevant. Dabei kann die Geschwindigkeit automatisch ermittelt oder aus einer Internet-Datenbank ausgelesen werden.

Anschließend erstellt man eine neue Playlist, sortiert nach Geschwindigkeit und exporitert diese als *.m3u-Datei.

Gelungen ist an dieser Stelle, das gefragt wird, ob relative Pfade verwendet werden sollen.

Das Erstellen von automatisch sortierten Playlists ist nur ein kleiner Aspekt von dem was beaTunes leisten kann. Es lohnt sich also die weiteren Funktionen zu testen.

VirtualDJ

In der Free-Ausgabe dieses DJ-Programms wurde mir keine Sidelist oder Automix angezeigt, ferner klappte das sortierte Speichern der Playlist nicht, diese war immer alphabetisch. Denkbar also, das es in dieser Ausgabe nicht möglich ist. Da ich eine Pro-Lizenz mein Eigen nenne, ist diese meine Arbeitsgrundlage. Als OS kommt Windows 10 zum Einsatz, für Mac ist es ähnlich.

Es gibt gleich zwei-drei Möglichkeiten, eine sortierte Playlist zu speichern:

  1. Unter „Listen & Empfehlungen – Playlisten“ eine neue Playlist erstellen.
  2. Die Sitelist(e) oder den Automix speichern.

Diese Wege führen zum gleichen Ergebnis. Anschließend die gewünschten Titel in die Playlist/Sidelist(e) oder den Automix schieben und nach BPM sortieren lassen. Playlisten werden automatisch gespeichert, Sidelist(e) und Automix hingegen muss man manuell speichern. Dazu auf „SIDELIST OPTIONS“ bzw. „AUTOMIX OPTIONS“ klicken und „Speichern…“ auswählen.

VirtualDJ fragt nicht, wo die Playlist gespeichert werden soll, das macht nichts, da diese unter Windows im Ordner „Dokumente\VirtualDJ\Playlists“ abgelegt werden. Dort könenn sie kopiert, verschoben oder bearbeitet werden.

Ein kleiner Nachteil ist der Umstand, das VirtualDJ die Playlisten mit absoluten Pfaden speichert, d.h. hat man auf einem weiteren Gerät eine andere Ordner-Struktur, da reicht schon ein abweichender Benutzername, klappt’s schon nicht mehr.

Abhilfe ist einfach: Die *.m3u-Datei z.B. mit Notepad++ öffnen und den Pfad entfernen oder ändern. Beispiel:

Originaler absoluter Pfad:

C:\Users\andy\Music\2Step\Artful Dodger & Romina Johnson - Movin' Too Fast (Bump & Flex Mix).mp3

Relativer Pfad:

..\2Step\Artful Dodger - Re-Rewind (Radio Edit).mp3

Kein Pfad:

Artful Dodger & Romina Johnson - Movin' Too Fast (Bump & Flex Mix).mp3

Relative Pfade funktionieren genauso gut, ebenso gar kein Pfad, wenn man die Playlist im gleichen Ordner wie die Musikdateien ablegt.

By the way: Die Einträge die mit „#EXTVDJ“ beginnen kann man ignorieren, dabei handelt es sich um Angaben speziell für VirtualDJ, für andere Player haben sie keine Relevanz. Wichtig zu wissen ist allerdings, das VirtualDJ auf diese Angaben zurückgreift, d.h. selbst bei ungültigen Pfaden wird der Song geladen (sofern er anderweitig auffindbar bzw. in der Datenbank vorhanden ist)!

Vorhandene Playlisten kann man durch einen Rechtsklick und „Lade in Sideliste“ bzw. „Lade in AutoMix“ entsprechend laden. Dies ist ein bequemes Hilfsmittel für jede Art von vorbereitetem Set.

Hat man eine Playlist geladen und dann doch Mal die Sortierung verändert und möchte auf den nicht-gespeicherten ursprünglichen Zustand zurück, so geht dies durch einen Rechtsklick auf die Überschriften-Leiste und „Sortierung zurücksetzen“.

Abschlussbemerkung

Es gibt mit hoher Wahrscheinlichkeit noch mehr Tools, mit deren Hilfe das Ziel erreicht werden kann. Nachdem ich mit den vorhandenen Mitteln zurechtgekommen war, hab‘ ich nicht weiter danach geschaut. Tipps und Tricks sind wie immer willkommen.

WinSCP – Verlorene Kennwörter wiederherstellen

$
0
0

Hat man in WinSCP Zugangsdaten gespeichert und möchte oder muss diese nun Auslesen, da man beispielsweise die Kennwörter vergessen hat, so stehen dafür mindestens zwei Möglichkeiten zur Wahl.

Variante 1 – Via Protokollierung

In der grafischen Oberfläche von WinSCP kann die Protokollierung samt Kennwörter aktiviert werden: Unter „Options – Preferences – Logging“ die Haken setzen bei „Enable session logging at level“ und „Log passwords and other sensitive information“.

Quelle: WinSCP – FAQ – Can I recover password stored in WinSCP session?

Variante 2 – Mittels Tool

Sofern WinSCP die Daten in einer *.ini-Datei speichert, kann aus dieser Benutzername und Kennwort extrahiert werden. Zu diesem Zweck greift man auf das Tool winscppwd zurück:

https://bitbucket.org/knarf/winscppwd/overview (Download)

Wie man von der Speicherung in der Registry auf INI umstellen kann wird hier beschrieben:

Blogsdna – How to Retrieve WinSCP Stored Passwords (Windows)

Anschließend öffnet man eine Eingabeaufforderung. Die Syntax für das Tool lautet:

winscppwd.exe WinSCP.ini

*.vhdx zu *.vhd konvertieren

$
0
0

Im Regelfall möchte man meist vom alten *.vhd-Format ins neuere *.vhdx-Format konvertieren. Es kann allerdings auch mal der umgekehrte Weg notwendig sein.

Mit Bordmittel unter Windows, z.B. direkt auf einem Windows Server 2012 R2 Standard mit installierter Hyper-V-Rolle, geht dies via Powershell:

Convert-VHD -Path 'F:\Hyper-V\DEMO01\Virtual Hard Disks\DEMO01.vhdx' -DestinationPath 'F:\Hyper-V\DEMO01\Virtual Hard Disks\DEMO01.vhd'

Quelle: Microsoft – Windows IT Pro Center – Convert-VHD

Mit VirtualBox gelingt das Vorhaben mit

VBoxManage.exe clonehd "F:\Hyper-V\DEMO01\Virtual Hard Disks\DEMO01.vhdx" --format VHD "F:\Hyper-V\DEMO01\Virtual Hard Disks\DEMO01.vhd"

Diese Variante funktioniert beispielsweise auch unter Windows 7.

Bemerkung: Der obige Befehl sorgt dafür, das beide virtuellen Festplatten auch gleich in VirtualBox registriert werden.

Debian 9 Stretch: Apache als Reverse Proxy mit Let’s Encrypt einsetzen

$
0
0

Die nachfolgenden Zeilen beschreiben anhand eines Projekts die Einrichtung von Apache als Reverse Proxy mit Zertifikat(en) von Let’s Encrypt unter Debian 9 Stretch.

Warum ein Reverse Proxy?

Die Haupt-Motivation dahinter ist einfach: Es soll nur der Port 443/tcp (https) in der Firewall freigegeben werden und darüber sollen, in Abhängigkeit der aufgerufenen (Sub-)Domain die entsprechenden Webseiten dargestellt werden.

Ein weiterer Vorteil in diesem Szenario besteht darin, das Port 80/tcp (http) mit der folgenden Konfiguration nur für das Ausstellen der Let’s Encrypt-Zertifikate verwendet wird, aber die eigentliche Webseite per Weiterleitung auf https ausschließlich verschlüsselt erreichbar ist. So läuft man nicht Gefahr, doch mal aus Versehen auf die unverschlüsselte Seite zuzugreifen und z.B. Zugangsdaten unverschlüsselt durch den Äther zu schicken.

Als weiteres kann auf diese Art eine unverschlüsselte Webseite im Nachhinein und ohne dortigen Eingriff verschlüsselt werden. Dies ist hilfreich bei so manchem Embedded Device, das entweder gar kein SSL/TLS kann oder nur ein hardcodiertes self-signed Zertifikat hat, wie z.B. bei manchen IP-Kameras.

Weiter kann mit entsprechender Konfiguration zudem die Sicherheit jenseits von SSL/TLS durch Filtern von Aufrufen erhöht werden. Dies ist allerdings kein Teil dieses Beitrags.

Firewall/Port-Forwarding

Die Ports 80/tcp (http) und 443/tcp (https) müssen auf die IP-Adresse des Reverse Proxies zeigen.

Grundinstallation

Für den vorliegenden Reverse Proxy wurde ein kleines Linux als virtuelle Maschine auf Basis von Debian installiert. Dazu wurde das Netinstall-ISO verwendet, beim Setup wurde der Desktop und Druckserver abgewählt und der SSH-Server aktiviert.

Sofern ssh nicht nach Außen hin verwendet wird, kann man sich überlegen, ob man dies intern für root mit Kennwort zulässt. Alle folgenden Befehle werden als root ausgeführt.

In der Datei

/etc/ssh/sshd_config

die Zeile 32 wie folgt anpassen:

PermitRootLogin Yes

Anschließend die Konfiguration neu laden:

service sshd reload

Apache installieren und mod_proxy aktivieren

Zunächst muss der Apache installiert und das Proxy-Modul aktiviert werden:

apt install apache2

a2enmod proxy
a2enmod proxy_http

service apache2 reload

Dies stellt nur die Minimal-Voraussetzung für dar.

Standard-Webseite deaktivieren

Da der Reverse Proxy selbst keinerlei Webseiten ausliefern soll, schaltet man die Standard-Webseite ab:

a2dissite 000-Default.conf
service apache2 reload

VirtualHosts anlegen

Damit die eingehenden Anfragen für die jeweilige Domain beantwortet werden können, muss wie eine entsprechende Konfiguration her:

Pro Domain eine Datei unter

/etc/apache2/sites-available

anlegen, die folgenden Inhalt bekommt:

<VirtualHost *:80>
ServerAdmin E-Mail-Adresse
ServerName sub.domain.tld
ProxyPreserveHost On 
DocumentRoot /var/www/html
ProxyPass /.well-known !
ProxyPass / http://Ziel-Adresse:Port/
ProxyPassReverse / http://Ziel-Adresse:Port/
</VirtualHost>

Anschließend aktivieren:

a2ensite Dateiname.conf

service apache2 reload

Bemerkung: Um die SSL-Konfiguration braucht man sich nicht zu kümmern, dies erledigt später Certbot, der für das Let’s Encrypt-Zertifikat zuständig ist.

Certbot erstellt automatisch die notwendigen Rewrite-Anweisungen (http -> https), die SSL-Konfigurationsdateien für die VirtualHosts und aktiviert diese. Die SSL-Konfigurationsdateien enthalten „…-le-ssl.conf“ im Namen.

Certbot installieren

Wichtig ist, die Version aus den Backports zu verwenden, da die Version aus den Standard-Paketquellen veraltet ist und damit keine Let’s Encrypt-Zertifikate mehr ausgestellt werden können.

nano /etc/apt/sources

Folgende Zeile hinzufügen und speichern:

deb http://ftp.debian.org/debian stretch-backports main

Certbot installieren und in Apache nutzen:

apt-get install python-certbot-apache -t stretch-backports

certbot –apache

Certbot fragt ab, ob für alle oder für (einen) bestimmten VirtualHost bzw. Domain das Zertifikat ausgestellt werden soll. Letztlich handelt es sich um ein Zertifikat mit „Alternative Names“.

„Catch-all“-VirtualHost einrichten (Optional)

Wird der Reverse Proxy z.B. direkt mit seiner IP-Adresse aufgerufen, wird keine ihm bekannte Domain übergeben, in Folge landet man auf dem ersten konfigurierten VirtualHost.

Bei Debian ist das dann entweder, sofern doch noch aktiviert, „000-default.conf“, also die Standard-Webseite oder die nächst kleinere Nummer bzw. nach alphabetischer Reihenfolge.

Diese Kenntnis kann man nutzen, um dies abzufangen und auf eine bestimmte nennen wir’s mal Standard- oder catch-all-Seite umzuleiten.

Als Beispiel wird der Dateiname „001-catch-all.conf“ verwendet:

<VirtualHost *:80>
ServerAdmin E-Mail-Adresse
ServerName sub.domain.tld
ProxyPreserveHost On 

RewriteEngine on
RewriteRule ^ https://Ziel-Adresse [END,NE,R=permanent]
</VirtualHost>

bzw. „001-catch-all-ssl.conf“:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin E-Mail-Adresse
ServerName sub.domain.tld
ProxyPreserveHost On

SSLCertificateFile /etc/letsencrypt/live/sub.domain.tld/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sub.domain.tld/privkey.pem

RewriteEngine on

RewriteRule ^ https://Ziel-Adresse [END,NE,R=permanent]

</VirtualHost>
</IfModule>

Beide aktivieren und die Änderung laden:

a2ensite 001-catch-all.conf
a2ensite 001-catch-all-ssl.conf
service apache2 reload

Weiterleitung an eine Webseite mit selbst-signiertem Zertifikat (Optional)

Nach Außen nutz man zwar mit Let’s Encrypt ein öffentliches und sauber zu validierendes Zertifikat, aber intern wäre im ungünstigsten Fall die Kommunikation unverschlüsselt. Das mag kein Problem darstellen, wenn z.B. auf dem gleichen Server das Ziel liegt oder eben gewollt der Reverse Proxy SSL abwickeln soll damit der dahinterliegende Webserver entlastet ist.

Im vorliegenden Szenario ist es allerdings so, das die Zielserver in unterschiedlichen Netzen liegen und die Kommunikation intern ebenfalls verschlüsselt ablaufen soll. Damit dieses Ziel unkompliziert erreicht werden kann, werden schlicht selbst-signierte Zertifikate eingesetzt. Die Konfiguration ist im Reverse Proxy einfach:

Die betreffenden Zertifikate ohne privaten Schlüssel nach

/etc/ssl/certs

kopieren und folgende Konfigurationen anlegen bzw. ändern. Da http zu https umgeleitet wird, reicht an dieser Stelle die Rewrite-Regel aus:

<VirtualHost *:80>
ServerAdmin E-Mail-Adresse
ServerName sub.domain.tld
ProxyPreserveHost On 
DocumentRoot /var/www/html
ProxyPass /.well-known !

RewriteEngine on
RewriteCond %{SERVER_NAME} =sub.domain.tld
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Für das Weiterleiten von https mit Let’s Encrypt-Zertifikat zu https mit selbstsigniertem Zertifikat beim Ziel sieht die Konfiguration so aus:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin E-Mail-Adresse
ServerName sub.domain.tld
ProxyPreserveHost On 
DocumentRoot /var/www/html
ProxyPass /.well-known !
ProxyPass / https://Ziel-Adresse:Port/
ProxyPassReverse / https://Ziel-Adresse:Port/

# SSL aktivieren
SSLProxyEngine on

# Domain-Namen-Ueberpruefung deaktivieren
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off

# Pfad und Dateiname zum selbst-signierten Zertifikat des Ziels 
SSLProxyCACertificateFile /etc/ssl/certs/ssl-cert-snakeoil-backend.pem

RewriteEngine on
RewriteCond %{SERVER_NAME} =sub.domain.tld
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
</IfModule>

Anschließend die Änderung laden:

service apache2 reload

Automatische Zertifikatsverlängerung

Da bekanntermaßen die Zertifikate von Let’s Encrypt nur eine Gültigkeit von drei Monaten besitzen, ist es sinnvoll eine automatische Verlängerung zu konfigurieren. Certbot richtet dazu einen Timer in systemd ein. Man braucht sich folglich um nichts weiter zu kümmern.

Weiteres (Sicherheit)

Keine schlechte Idee ist es, den Apache des Reverse Proxies in Sachen Sicherheit weiter zu konfigurieren. Als Denkanstösse kann man auf folgenden Seiten nachlesen:

TechMint – 13 Apache Web Server Security and Hardening Tips (Punkte 1, 2, 4, 6, 7, 8, 11)

netnea – Einen Reverse Proxy Server aufsetzen

Quellen:

Ben’s Thoughts –  Apache as reverse proxy for letsencrypt free https certificates

certbot – Apache on Debian 9 (stretch)

Debian Backports – Instructions

RoseHosting – How to set up Apache Virtual Hosts on Debian 9

DigitalOcean – How To Use Apache HTTP Server As Reverse-Proxy Using mod_proxy Extension

xinotes – Apache reverse proxy with SSL configuration file example

ProfitBricks – Configure Apache as a Reverse Proxy Using mod_proxy on Ubuntu

serverfault – Apache Default/Catch-All Virtual Host?

Let’s Encrypt – Cerbot cron job?

kofler.info – Systemd-Timer als Cron-Alternative

Nextcloud hinter einem Reverse Proxy – Einrichtungswarnung

$
0
0

Betreibt man Nextcloud hinter einem Reverse Proxy begegnet einem evtl. folgende Einrichtungswarnung wann man unter „Einstellungen – Übersicht“ als Admin nachschaut:

Möglicherweise fallen einem aber gar keine Einschränkungen im Betrieb auf. Abhilfe ist, zumindest wenn man Apache als Reverse Proxy einsetzt, einfach:

In der für Nextcloud-betreffenden Konfigurationsdatei folgendes einfügen:

Redirect 301 /.well-known/carddav https://Ziel-Server/remote.php/dav
Redirect 301 /.well-known/caldav https://Ziel-Server/remote.php/dav

Und die Änderungen übernehmen:

service apache2 reload

Wiederholt man nun den Test, erscheint keine Warnung mehr.

Quellen:

Nextcloud – Docs – Issues and troubleshooting – General troubleshooting – Service discovery

Github – nextcloud / server – Issues – [13-0.7 & 14.0.2] /.well-known/caldav and carddav

Nextcloud – Help – [solved] .well-known/caldav check in 13.0.7 explained

Viewing all 1827 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>