Unifi-Controller Installation

Ich beschreibe hier die Installation eines Unifi-Controllers in einem LXC-Container mit Debian 9. Warum Debian 9? Stand 03/2020 MUSS Debian 9 oder Ubuntu 16.04 eingesetzt werden, obwohl aktuellere Versionen vorhanden sind. Das beruht auf der Abhängigkeit zu MongoDB-Server 3.6, weil von unifi noch eine Option eingesetzt wird, die MongoDB-Server 4. nicht mehr hat.

Die Installation beruht auf der Standard-Dokumentation unter UniFi – How to Install & Upgrade the Controller on Windows, macOS or Linux.

Vorbereitungen

Ggf. muss ein Proxy für den Download des Paketes eingetragen werden. Der folgende Befehl setzt den Proxy nur für die aktuell Session.

export {http,https,ftp}_proxy="http://proxy:3128/"

Installation

Die folgenden Schritte beinhalten das Downloaden und Installieren des Paketes. Die Installation per dpkg wird wahrscheinlich fehlschlagen, weil Abhängkeiten fehlen. Diese werden per forcierter Installation nachgeladen.

cd ~
wget https://dl.ui.com/unifi/5.12.35/unifi_sysvinit_all.deb
dpkg -i unifi_sysvinit_all.deb
apt install -f

Reverse Proxy

Folgende Punkte sprechen in meinen Augen für den Einsatz eines Reverse-Proxy’s

  • Aufruf im Browser ohne Portangabe (8080)
  • Nutzung eines anderen Namens, als der des Hosts
  • Verwendung eines eigene SSL-Zertifikates, das nicht bei jedem Update neu in den Tomcat eingespielt werden muss

Hier Virtual-Host-Konfiguration für nginx:

server {
    listen       80;
    server_name  unifi unifi.intra.your-domain.com unifi.gast.your-domain.com;
 
    return 301 https://$server_name$request_uri;
}
 
server {
        listen 443;
        server_name unifi unifi.intra.your-domain.com unifi.gast.your-domain.com;
 
        ssl_certificate           /etc/nginx/ssl/unifi.intra.your-domain.com.chain.pem;
        ssl_certificate_key       /etc/nginx/ssl/unifi.intra.your-domain.com.key;
        root /var/www/html;
        ssl on;
        ssl_session_cache  builtin:1000  shared:SSL:10m;
        ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
        ssl_prefer_server_ciphers on;
 
        access_log            /var/log/nginx/unifi.access.log;
 
        location / {
 
                proxy_set_header        Host $http_host;
                proxy_set_header        X-Forwarded-Host $host;
                proxy_set_header        X-Forwarded-Server $host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto $scheme;
                proxy_set_header        X-Scheme $scheme;
                proxy_set_header        Referer "";
                proxy_set_header        Upgrade $http_upgrade;
                proxy_set_header        Connection "upgrade";
 
                # Fix the "It appears that your reverse proxy set up is broken" error.
                proxy_pass          https://unific.mgmt.your-domain.com:8443;
                proxy_read_timeout  90;
 
                proxy_redirect      https://unific.mgmt.your-domain.com:8443 https://$server_name;
        }
 
}
Veröffentlicht in Unifi