Kategorie: Software & Anwendungen (Seite 1 von 2)

Ubiquiti UniFi Controller Installation

Im folgenden Artikel beschreibe ich die saubere Installation der UniFi Controller Software als Service unter Windows Server 2019 mit AdoptOpenJDK.

Zur Vorbereitung alle nötigen Komponenten herunterladen:

  • UniFi Network Controller 5.x.y for Windows (Link)
  • AdoptOpenJDK Version 8, LTS, Hotspot (Link)
  • Apache Commons Daemon (Link)

Das Setup des Controllers als Windows Service wird durch die Architektur und die Verwendung von AdoptOpenJDK 64-Bit ein wenig erschwert.

  1. Problem: der von UniFi Service Controller (Apache Commons Daemon Service Runner) wird mit einer Service-Config ausgeliefert, die mit der 64-Bit JVM nicht automatisch zurechtkommt.
  2. Problem: die UniFi Setup-Routine installiert das Verzeichnis des Controllers im Benutzerprofil des ausführenden Users!

Der Support-Eintrag in der UniFi Knowledgebase ist dazu leider auch nur bedingt hilfreich: Run the Controller as Windows Service

Weiterlesen

Ubiquiti UniFi Controller SSL-Zertifikat

Wer den UniFi Controller nicht hinter einem Proxy betreiben will (oder kann) steht früher oder später vor der Herausforderung das mitgelieferte „self-signed“ SSL-Zertifikat zu ersetzen.

Meiner interne UniFi Umgebung läuft unter Windows und fordert über CertBot regelmäßig Let’s Encrypt SSL-Zertifikate an, die aus dem PFX-Archiv in den Java KeyStore des UniFi Controllers kopiert werden müssen. Als Werkzeug dient hier das Java „KeyTool“, welches vom JDK mitgeliefert wird.

Dazu wird der „Alias“ des Zertifikats im PFX-Archiv benötigt, der mit dem KeyTool ausgelesen werden kann:

keytool.exe -v -list -storetype pkcs12 -keystore <Pfad-zum-PFX> -storepass <PFX-Passwort> | findstr Alias

Anschließend kann das gewünschte Zertifikat aus dem PFX in den KeyStore kopiert werden (als KeyStore-Passwort muss das UniFi-Standardpasswort verwendet werden):

del .\keystore /Q

keytool.exe -importkeystore -srckeystore <Pfad-zum-PFX> -srcstorepass <PFX-Passwort> -destkeystore keystore -srcstoretype pkcs12 -deststoretype jks -deststorepass aircontrolenterprise -destkeypass aircontrolenterprise -destalias unifi -srcalias {<Cert-Alias (siehe oben)>}

Anschließend den UniFi Controller neu starten.

Redis Installation unter Debian

Redis (Icon)

Für ein neues Projekt werfe ich gerade einen Blick auf die In-Memory-Datenbank Redis. Die in diesem Beitrag beschriebene Demo-Installation läuft auf einem minimalen Debian 9 Laborsystem und nutzt Redis 3.2 aus dem Standard-Repo.

Weiterlesen

OpenDKIM und Postfix

Postfix Mailserver (Icon)

Beim Versuch, die Mails meines Postfix-Mailservers möglichst simpel mit DKIM zu signieren bin ich auf ein schlecht dokumentiertes Feature von OpenDKIM gestoßen.

Da der Mailserver nur für eine Handvoll Domains und ein sehr überschaubares Mailvolumen genutzt wird war es mir wichtig, die Konfiguration möglichst einfach zu gestalten. Daher wollte ich uA. nur einen Schlüssel für das Signieren aller ausgehenden Mails verwalten.

In der opendkim.conf lässt sich dabei mit den Direktiven „Domain *“ und „KeyFile …“ ein Schlüssel für alle Domains zuordnen. Voraussetzung ist natürlich, dass alle Domains denselben „Selector“ verwenden (können).

Auszug aus der Config:

Selector k201903 # Selector für ALLE Domains
Domain   *
KeyFile  /etc/opendkim/keys/k201903.private # Key für ALLE Domains

Hier noch die vollständige Konfiguration incl. dem Einbinden von OpenDKIM in Postfix als Milter…

Weiterlesen

Apache Tomcat und Active Directory Authentifizierung

Apache Tomcat

Via JNDI-Realm kann Apache Tomcat angewiesen werden, Benutzer, Gruppen und Rollen aus einer LDAP-Quelle, zB. Active Directory zu laden. Die größte Herausforderung liegt darin, die AD-Gruppen zu Tomcat-Rollen zu „mappen“.

Sofern die Rolle der Tomcat Applikation dem Namen der AD-Gruppe entspricht ist das Mapping trivial. Wenn nicht – zB. weil es eine Konvention für AD-Gruppennamen gibt und die Legacy Tomcat-Applikation fix codierte Rollennamen erwartet… siehe Workaround unten.

Weiterlesen

Berechtigungen für nginx Entwicklungsumgebung

CentOS

Eine Warnung gleich zu Beginn: die in diesem Artikel beschriebenen Berechtigungen sind für eine Entwicklungsumgebung gedacht. In einer Produktivumgebung sollten die Berechtigungen weitaus restriktiver gesetzt werden!

Auf meinem CentOS Entwicklungsserver läuft nginx unter dem gleichnamigen Benutzer. Zum Bearbeiten der Dateien verwende ich einen zusätzlichen Benutzer „tom„; dieser ist Mitglied in der „nginx“ Gruppe.
Die Websites werden im Verzeichnis /srv/www abgelegt. Um diese einigermaßen komfortabel via SSH/SFTP vom Client aus bearbeiten zu können sollten „nginx“ als Besitzer und Gruppe der Dateien und Verzeichnisse gesetzt werden. Das Verzeichnis /srv selbst gehört „root:root„, um die Sicherheit geringfügig zu erhöhen:

Weiterlesen

Gzip Kompression mit nginx

Nginx

Um die gzip Kompression unter nginx zu aktivieren sind ein paar Konfigurationseinträge in in der nginx Konfiguration vorzunehmen. Die Konfiguration kann je „server“, „location“ oder direkt im Abschnitt „http“ hinterlegt werden.

Weiterlesen

WebApp in Apache Tomcat konfigurieren und über HTTPd ausliefern

Die Migration eines alten JSP-Projektes auf einen neuen Server hat mich kürzlich dazu gebracht, etwas Zeit in Apache Tomcat zu stecken und die Konfiguration zu dokumentieren. Ausgangspunkt war eine JSP Applikation (WebApp), die über einen bestehenden Apache HTTPd Webserver ausgeliefert werden sollte.

Die folgende Beschreibung bezieht sich auf einen Windows Server, sollte sich unter Linux aber ebenso implementieren lassen.

Weiterlesen

Apache HTTPd mit SSL konfigurieren

Da die Dokumentation zur Verwendung von SSL-Zertifikaten unter Apache HTTPd nicht immer verständlich geschrieben ist hier eine kurze Zusammenfassung der Konfiguration meines Laborsystems.

Die folgenden Schritte wurden auf einem Windows Server durchgeführt, sollten mit geringen Anpassungen aber auch unter Linux funktionieren.

Weiterlesen