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;
}
}