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.
- Holen Sie von der Canonical-Webseite die neueste Server-Edition als ISO-Image auf den PC.
- 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.
- 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.
- Melden Sie sich an der Konsole mit dem neu erstellten Benutzer an.
- Um Ubuntu zu aktualisieren, geben Sie die die beiden nachstehenden Befehle ein
sudo apt-get update
sudo apt-get upgrade - 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 - 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 - 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 - Beenden Sie den Editor mit Ctrl + X und speichern Sie mit Yes
- Damit Webmin installiert werden kann, führen Sie nachstehenden Befehl aus
sudo apt-get update - Installieren Sie nun Webmin mit dem Befehl
sudo apt install webmin -y - 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 - Jetzt können Sie mit dem Browser und der IP-Adresse auf Webmin zugreifen
https://<meine Server-IP>:10000 - 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.
- Vergeben Sie dem Benutzer ein Passwort. Fügen Sie dem Benutzer die Gruppen adm, cdrom, dip, lxd, plugdev und sudo hinzu. Nun kann sich der User root ebenfalls einloggen.
- 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.
- 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.
- Klicken Sie jetzt noch auf dem SSH Server Hauptbild auf Apply Changes. Nun kann sich der Benutzer root auch mit SSH einloggen.
- 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 - 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 - 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 - Es erscheint nun ein Anmeldebild mit dem Usernamen admin. Vergeben Sie ein neues Passwort und Sie können Portainer verwenden.
- Jetzt sind wir in Portainer und möchten gerne Nginx Proxy Manager installieren.
- 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.
- 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.
- 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. - 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
- Bei Image tippen Sie jc21/nginx-proxy-manager:latest ein
- 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
- Bei Advanced container settings gehen Sie zu Volumes und klicken dort auf +map additional volume
- 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.
- Gehen Sie jetzt bei Advanced container settings auf Network und wählen Sie dort das Netzwerk mit bridge aus.
- Bei Advanced container settings und Restart Policy wählen Sie Always aus.
- 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.
- Nginx können Sie nun mit http://<meine Server-IP>:81 aufrufen.
- 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.