Um mit einer externen IP-Adresse "inhouse" mehrere Server anzusprechen, wird ein Proxy-Server für die Namens-Weiterleitung eingesetzt. Dieser erlaubt auch Weiterleitungen und/oder Zusammenfassungen von verschiedenen Domain-Namen zu einem anderen Namen. Ob diese Zieldomain dann im eigenen Netz liegt oder extern, spielt keine Rolle mehr.
Um dies einzurichten, gehen Sie die nachstehenden Positionen durch.

  1. Holen Sie von der Canonical-Webseite die neueste Server-Edition als ISO-Image auf den PC.
  2. Auf einer virtuellen Umgebung starten Sie einen neuen virtuellen Computer von diesem ISO-Image. Sollten Sie einen physischen Computer nutzen, erstellen Sie aus diesem ISO-Image ein Abbild auf einen USB-Stick. Starten Sie dann den physischen Computer mit diesem Stick.
  3. Gehen Sie durch die Installation und passen Sie ggf. die notwendigen Parameter an. Installieren Sie die Funktion Docker noch nicht in der Grundinstallation, das kann später zu Problemen führen.
  4. Melden Sie sich an der Konsole mit dem neu erstellten Benutzer an.
  5. Um Ubuntu zu aktualisieren, geben Sie die die beiden nachstehenden Befehle ein
    sudo apt-get update
    sudo apt-get upgrade
  6. Um Webmin zu installieren muss zuerst eine ASCII-Datei kopiert werden. Geben Sie dazu den nachstehenden Befehl ein
    curl -fsSL https://download.webmin.com/jcameron-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/webmin.gpg
  7. Nun muss das Webmin-Repository hinzugefügt werden, damit Ubuntu Webmin auflösen kann. Öffnen Sie dazu die Date sources.list mit dem Befehl
    sudo nano /etc/apt/sources.list
  8. Scrollen Sie ans Ende und fügen Sie die nachstehende Zeile ein
    deb [signed-by=/usr/share/keyrings/webmin.gpg] http://download.webmin.com/download/repository sarge contrib
  9. Beenden Sie den Editor mit Ctrl + X und speichern Sie mit Yes
  10. Damit Webmin installiert werden kann, führen Sie nachstehenden Befehl aus
    sudo apt-get update
  11. Installieren Sie nun Webmin mit dem Befehl
    sudo apt install webmin -y
  12. Nun installieren wir FirewallD und deaktivieren UFW. Geben Sie der Reihe nach die folgenden Befehle ein
    sudo apt install firewalld
    sudo systemctl enable firewalld
    sudo systemctl start firewalld
    sudo firewall-cmd --state 
    (Kontrolle ob Dienst läuft)
    sudo firewall-cmd --add-port=10000/tcp --permanent
    sudo firewall-cmd --add-port=80/tcp --permanent
    (für Webseiten)
    sudo firewall-cmd --add-port=81/tcp --permanent
    (für nginx)
    sudo firewall-cmd --add-port=443/tcp --permanent
    (für Webseiten)
    sudo firewall-cmd --add-port=9000/tcp --permanent
    (für Portainer)
    sudo firewall-cmd --reload

    sudo ufw disable
  13. Jetzt können Sie mit dem Browser und der IP-Adresse auf Webmin zugreifen
    https://<meine Server-IP>:10000
  14. Damit sich auch der User root einloggen kann, muss dieser freigegeben werden. Gehen Sie oben auf die Lasche Webmin, dann im Menü auf System und Users and Groups. Klicken Sie auf den User root.
  15. Vergeben Sie dem Benutzer ein Passwort. Fügen Sie dem Benutzer die Gruppen admcdromdiplxdplugdev und sudo hinzu. Nun kann sich der User root ebenfalls einloggen.
  16. Damit sich der User root auch über SSH einloggen kann, gehen Sie oben auf die Lasche Webmin, dann im Menü auf Servers und SSH Server.
  17. Klicken Sie nun auf Authentication und wählen Sie bei Allow login by root die Auswahl Yes aus. Speichern Sie mit einem Klick auf Save.
  18. Klicken Sie jetzt noch auf dem SSH Server Hauptbild auf Apply Changes. Nun kann sich der Benutzer root auch mit SSH einloggen.
  19. Jetzt können wir Docker installieren. Dazu nachstehende Befehle eingeben
    - sudo apt-get update
    - sudo apt-get install ca-certificates curl gnupg
    - sudo install -m 0755 -d /etc/apt/keyrings

    - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

    - sudo chmod a+r /etc/apt/keyrings/docker.gpg
    - echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    - sudo apt-get update
    - sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  20. Um zu testen, ob Docker läuft, kann der nachstehende Befehl eingegeben werden. Es wird dann eine hello-world Seite angezeigt
    sudo docker run hello-world
  21. Damit wir Docker mit einer grafischen Oberfläche betreiben können, installieren wir Portainer. Dazu geben Sie nacheinander die aufgeführten Befehle ein.
    - docker volume create portainer_data
    - docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
    - docker ps (um zu prüfen, ob Docker mit Portainer läuft)
    Anmeldung nun mit http://<meine Server-IP>:9000
  22. Es erscheint nun ein Anmeldebild mit dem Usernamen admin. Vergeben Sie ein neues Passwort und Sie können Portainer verwenden.
  23. Jetzt sind wir in Portainer und möchten gerne Nginx Proxy Manager installieren.
  24. Klicken Sie dazu in der Übersicht auf der rechten Seite auf Live connect. Dadurch wird die Menüsteuerung auf der linken Seite erweitert und Sie stehen auf dem Dashboard.
  25. Unter dem Menüpunkt Networks finden Sie drei vorgegebene Netzwerke, wovon eines als bridge definiert ist. Sie müssen daran nichts ändern, dieses Netzwerk verwenden wir später bei der Einrichtung von nginx.
  26. Nun erstellen wir über den Menüpunkt Volumes ein Laufwerk, das die Daten vom Nginx Proxy Manager speichern soll.
    Klicken Sie auf Add volume, vergeben Sie einen Namen (z.B. nginx_proxy_manager) und lassen Sie den Rest auf den vorgegebenen Werten.
  27. Jetzt geht es über den Menüpunkt Container zur Erstellung des Nginx Containers. Klicken Sie dort auf Add container. Vergeben Sie z.B. den Namen nginx-proxy-manager
  28. Bei Image tippen Sie jc21/nginx-proxy-manager:latest ein
  29. Klicken Sie jetzt auf +publish a new network port und fügen Sie die Ports 80, 81 und 443 hinzu. Bei allen ist es TCP
  30. Bei Advanced container settings gehen Sie zu Volumes und klicken dort auf +map additional volume
  31. Bei container geben Sie /data ein und wählen darunter das unter Position 26 erstellte Volume aus. Erstellen Sie einen zweiten Eintrag mit dem Container /etc/letsencrypt und wählen Sie dasselbe Volume aus.
  32. Gehen Sie jetzt bei Advanced container settings auf Network und wählen Sie dort das Netzwerk mit bridge aus.
  33. Bei Advanced container settings und Restart Policy wählen Sie Always aus.
  34. Jetzt können Sie etwas weiter oben im Bild auf Deploy the container klicken. Dadurch wird die gewünschte Software vom Internet heruntergeladen und im vorgegebenen Volume und Container abgelegt und installiert.
  35. Nginx können Sie nun mit http://<meine Server-IP>:81 aufrufen.
  36. Beim ersten Anmeldebild ist der Standarduser admin, mit der Mailadresse admin@example.com, sowie dem Passwort changeme. Bei der ersten Anmeldung ändern Sie die Mailadresse und das Passwort.