Hyper-V Bildschirmauflösung für VM virtuelle Maschinen Linux Debian Ubuntu ändern

Um eine Linux basierte VM (virtuelle Maschine) wie Debian/ Ubuntu unter dem Hypervisor von Microsoft Hyper-V in einem richtigen Vollbildmodus betreiben zu können müssen wir ein paar Konfigurationen vornehmen.

Wichtig, sollte schon eine VM gestartet sein, muss diese ausgeschaltet sein!

Als erstes müssen wir die PowerShell auf dem Host-System öffnen und folgenden Befehl inkl. der gewünschten Parameter der Bildschirmauflösung angeben.

Set-VMVideo -VMName "Debian" -ResolutionType Single -HorizonalResolution 1920 -VerticalResolution 1080
Set-VMVideo -VMName „Ubuntu“ -ResolutionType Single -HorizontalResolution 1920 -VerticalResolution 1080

Der „-ResolutionType Single“ ist in diesem Fall notwendig, um die VM zu einer bestimmten Auflösung zu zwingen, dabei wird dem Windows mitgeteilt, dass dies die einzige unterstützte Videoauflösung ist.

Anschließend wird die VM gestartet.

Jetzt folgt noch eine Konfiguration unter Linux Debian /Ubuntu.

Dazu wird die Konsole oder das Terminal geöffnet und folgender Befehl ausgeführt:

sudo nano /etc/default/grub

Danach wird die Zeile: GRUB_CMDLINE_LINUX_DEFAULT=quiet splash um: video=hyperv_fb:1920×1080 erweitert.

GRUB_CMDLINE_LINUX_DEFAULT=quiet splash video=hyperv_fb:1920x1080

Jetzt wird die Änderung mit: Strg+o abgespeichert und mit: Strg+x der Editor nano beendet.

Nun geben wir noch folgenden Befehl ein und starten die virtuelle Maschine neu.

sudo update-grub

Möchte man die VM wieder auf Standardeinstellung zurücksetzen. Dann erfolgt das unter PowerShell mit diesem Befehl :

Set-VMVideo -vmname Debian -ResolutionType Default

Docker Portainer auf Proxmox Virtual Environment 7.2-3 installieren

Die Installation von Docker unter Proxmox ist eigentlich ganz simpel. Es gibt jedoch das ein oder andere zu berücksichtigen. Hier zeige ich, wie ich auf einen Ubuntu 20.04 LTS LXC Container, Docker und Portainer einrichte.

Die Hardware-Grundlage ist ein alter Aopen DE35-HD MiniPC mit Proxmox Virtual Environment 7.2-3 (PvE)

Als erstes wird ein Ubuntu LTS 20.04 Container auf PvE erstellt. Dazu geht man auf: local (pve) und Container Templates.

Anschließend auf Templates geklickt.

Danach in der Suche: “ ubuntu“ eingeben und ubuntu-20.04-standard auswählen und herunterladen.

Nun wird ein neuer Container (Erstelle CT) erstellt (oben rechts ).

In der Eingabemaske wird nun ein Hostname z.b. Docker sowie ein Kennwort vergeben und mit dem Button: „Vorwärts“ bestätigt.

Unter: „Templates“ wird nun das heruntergeladene ubuntu-20.04 ausgewählt und mit dem Button: „Vorwärts“ bestätigt.

Jetzt wird die Größe des Speichers für den LXC Container festgelegt und mit dem Button: „Vorwärts“ bestätigt.

Nun wird die Anzahl der CPU-Kerne für den LXC Container festgelegt und mit dem Button: „Vorwärts“ bestätigt.

Für den Arbeitsspeicher spendiere ich dem LXC Container ein 1 GB und mit dem Button: „Vorwärts“ bestätigt.

Anschließend werden die Netzwerkeinstellungen konfiguriert. Hier vergebe ich eine statische IPv4-Adresse. Als Gateway-Adresse wird in der Regel die IPv4-Adresse des Routers einstellt. IPv6 lasse ich auf automatische Zuweisung des DHCP-Servers stehen und mit: „Vorwärts“ bestätigt.

Als nächstes wird der DNS-Server konfiguriert. Bei den Einstellungen belasse ich die Standardeinstellung und bestätige wieder mit: „Vorwärts“.

Jetzt folgt eine kurze Zusammenfassung der zuvor konfigurierten Einstellungen, die mit dem Button: „Abschließen“ fertiggestellt werden. Nun wird der LXC Container erstellt, wenn alles Fehlerfrei verläuft kommt in der Ausgabe: „Task OK“

Wichtig, das Optionskästchen: „Nach Erstellen starten“ nicht aktivieren!

Damit Docker Portainer auch funktioniert müssen unter Optionen die Features nachträglich bearbeitet werden und „keyctl“ aktiviert werden.

Dazu unter Rechenzentrum den LXC Container: „Docker“ auswählen und die Optionen anklicken.

Nun: „Features“ anwählen und auf: „Bearbeiten“ klicken.

Nun wird das Kontrollkästchen: „keyctl“ aktiviert und mit dem Button: „OK“ werden die Einstellungen übernommen.

Jetzt, können wir unseren zukünftigen Docker LXC Container starten.

Anschließend verbinden wir uns mit der Konsole mit dem Benutzer: root und dem Kennwort welches wir zum Beginn bei der Erstellung des LXC Container vergeben haben.

Nun geben wir den Befehl ein:

apt update && apt upgrade -y

Um Docker installieren zu können müssen wir mit dem Befehl:

adduser docker

und Enter noch einen normalen Benutzer hinzufügen. Es folgt wieder eine Passwort-Vergabe sowie andere Angaben die nicht zwangsläufig angegeben werden müssen. Am Ende wird die Eingabe noch mit y bestätigt.

Jetzt müssen wir den neuen Benutzer noch Rechte erteilen, das machen wir mit dem Befehl:

nano /etc/sudoers

(Das geht nur mit dem Benutzer: root)

Unter # User privilege specification unter root wird folgende Zeile eingefügt:

docker  ALL=(ALL:ALL) ALL

Anschließend wird die Konfiguration mit der Tastenkombination: Strg + o gedrückt und mit Enter gespeichert. Danach verlassen wir den Editor nano mit der Tastenkombination: Strg + x

Jetzt können wir uns als Benutzer: docker anmelden. Dazu geben wir den Befehl:

logout

ein und melden uns als Benutzer: docker an

Als nächstes installieren wir Docker und weitere erforderliche Tools mit dem Befehl:

sudo apt install docker.io curl net-tools

(Passwort ist das von dem Benutzer: root )

Nun wird das Installationsskript für Docker mit Curl und Enter geladen.

curl -fsSL https://get.docker.com -o get-docker.sh

Anschließend wird das Script mit dem Befehl ausgeführt:

sudo sh get-docker.sh

Nun registrieren wir Docker als Service und

sudo systemctl enable docker

danach starten wir Docker

sudo systemctl start docker

Als nächstes installieren wir Docker-Compose. Gib dazu folgenden Befehl ein:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Danach müssen die Rechte vergeben werden. Dazu führen wir die beiden folgenden Befehle nacheinander aus:

sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Damit wir als Benutzer: “docker” Docker ausführen können und dies ohne: sudo funktioniert, müssen wir dem Benutzer: docker noch Rechte geben. Danach melden wir uns ab und wieder als docker an, damit die Rechte zur Geltung kommen.

sudo usermod -a -G docker docker

Jetzt installieren wir Portainer mit folgendem Befehl:

sudo docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer-ce:latest

Portainer ist nun installiert. Um uns per Browser mit Portainer zu verbinden, müssen wir ein konfigurierte IPv4-Adresse + den Port eintragen: https://IPv4-Adresse:9000 anschließend führen wir die Einrichtung aus.

Nach dem Login als Administrator: docker kommen wir zum Quick Setup Wizard der Portainer-Weboberfläche. Neben der lokalen Docker-Umgebung lassen sich entfernte Umgebungen hinzufügen. In meinem Fall wähle ich: Get Started aus.

Nun erscheint die Home-Site der Portainer-Weboberfläche. Dort werden uns die derzeit von Portainer verwalteten Docker-Umgebungen angezeigt.

Damit ist die Installation fertig 🙂

HTTP zu HTTPS in Apache umleiten

Der Apache HTTP Server ist einer der beliebtesten Webserver. Er ist ein Open-Source- und plattformübergreifender HTTP-Server, der einen großen Prozentsatz der Internet-Websites antreibt.

Im Gegensatz zu HTTP, bei dem Anforderungen und Antworten im Klartext gesendet und zurückgegeben werden, verwendet HTTPS TLS/SSL, um die Kommunikation zwischen dem Client und dem Server zu verschlüsseln.

Die Verwendung von HTTPS über HTTP bietet viele Vorteile, z. B.:

  • Alle Daten werden in beide Richtungen verschlüsselt. Infolgedessen können vertrauliche Informationen nicht gelesen werden, wenn sie abgefangen werden.
  • Google Chrome und alle anderen gängigen Browser markieren Ihre Website als sicher.
  • Mit HTTPS können Sie das HTTP/2-Protokoll verwenden, wodurch die Website-Leistung erheblich verbessert wird.
  • Google bevorzugt HTTPS-Websites. Ihre Website wird besser platziert, wenn sie über HTTPS bedient wird.

In dieser Anleitung erfährst Du, wie Du den HTTP-Datenverkehr beim Apache HTTP Server an HTTPS umleitest.

Es gibt mehrere Möglichkeiten, beim Apache auf HTTPS umzuleiten. Wenn Du Root-Zugriff auf den Linux-Server hast, auf dem Apache ausgeführt wird, wäre es natürlich der bessere Weg, die Umleitung in der Konfigurationsdatei des virtuellen Hosts der Domäne einzurichten. Andernfalls kannst Du die Umleitung in der Datei (.htaccess) der Domäne einrichten.


Umleiten von HTTP zu HTTPS mithilfe des virtuellen Hosts

Apache Virtual Hosts definiert die Einstellungen einer oder mehrerer Domänen, die auf dem Server gehostet werden. In der Richtlinie für den virtuellen Host kannst Du den Stamm des Standortdokuments (das Verzeichnis, das die Websitedateien enthält) angeben, eine separate Sicherheitsrichtlinie für jede Site erstellen, verschiedene SSL-Zertifikate verwenden, die Umleitung konfigurieren und vieles mehr.

Wenn ein SSL-Zertifikat in einer Domäne installiert ist, verfügst Du in der Regel über zwei virtuelle Host-Richtlinen für diese Domäne. Die erste für die HTTP-Version der Seite auf Port 80 und die andere für die HTTPS-Version auf Port 443.

Bei Red-Hat-basierten Distributionen wie CentOS und Fedora muss im Verzeichnis:

/etc/httpd/conf.d

eine Konfigurationsdatei zum Beispiel beispiel.conf angelegt werden.

Während bei Debian und seinen Derivaten wie Ubuntu die Dateien im Verzeichnis:

/etc/apache2/sites-available

gespeichert werden. (Beispiel: beispiel.conf)

Um eine Website auf HTTPS umzuleiten, verwenden Sie die Richtlinien wie im folgenden Beispiel: "Redirect“ gezeigt.

(Inhalt der Konfigurationsdatei),

<VirtualHost *:80>
  ServerAdmin webmaster@beispiel.de
  DocumentRoot /var/www/html/beispiel
  ServerName beispiel.de
  ServerAlias *.beispiel.de
  ErrorLog logs/beispiel.de-error_log
  CustomLog logs/beispiel.de-access_log common

  Redirect permanent / https://beispiel.de/
</VirtualHost>

<VirtualHost *:443>
  ServerAdmin webmaster@beispiel.de
  DocumentRoot /var/www/html/beispiel
  ServerName beispiel.de
  ServerAlias www.beispiel.de
  ErrorLog logs/beispiel.de-error_log
  CustomLog logs/beispiel.de-access_log common

  Protocols h2 http/1.1

  # SSL Configuration

  # Other Apache Configuration

</VirtualHost>

Lassen kurz uns den Code erklären. Wir verwenden zwei virtuelle host- Richtlinien, eine für HTTP und eine für die HTTPS-Version.

  • VirtualHost *:80 – Der Apache-Server lauscht auf eingehende Verbindungen am Port 80 (HTTP) für die angegebene Domäne.
  • VirtualHost *:443 – Der Apache-Server lauscht auf eingehende Verbindungen am Port 443 (HTTPS) für die angegebene Domäne.

Die Anweisungen (ServerName ServerAlias geben die Domänennamen des virtuellen Hosts an. Stelle sicher, dass Du (beispiel.de und www.beispiel.de) durch Deine Domainnamen ersetzt.

Die hervorgehobene Zeile innerhalb des virtuellen HTTP-Hosts leitet den Datenverkehr an die HTTPS-Version der Site um.

Redirect permanent / https://beispiel.de/

In der Regel möchtest Du auch die HTTPS-www-Version der Webseite auf das Nicht-www umleiten oder umgekehrt. Hier ist eine Beispielkonfiguration:

<VirtualHost *:80> 
  ServerName beispiel.de
  ServerAlias www.beispiel.de

  Redirect permanent / https://beispiel.de/
</VirtualHost>

<VirtualHost *:443>
  ServerName beispiel.de
  ServerAlias www.beispiel.de

  Protocols h2 http/1.1

  <If "%{HTTP_HOST} == 'www.beispiel.de'">
    Redirect permanent / https://beispiel.de/
  </If>

  # SSL Configuration

  # Other Apache Configuration

</VirtualHost>

Der Code innerhalb des virtuellen HTTPS-Hosts (die hervorgehobenen Zeilen) überprüft, ob der Anforderungsheader die www-Domäne enthält und auf die Nicht-www-Version umleitet.

Wenn Du Änderungen an den Konfigurationsdateien vornimmst, musst Du den Apache-Dienst neu starten oder laden, damit die Änderungen wirksam werden:

Debian und Ubuntu:

sudo systemctl reload apache2

CentOS

service httpd restart

Fedora:

systemctl restart httpd

Umleiten von HTTP zu HTTPS mithilfe von .htaccess

.htaccess ist eine Konfigurationsdatei pro Verzeichnis für den Apache-Webserver. Diese Datei kann verwendet werden, um zu definieren, wie Apache Dateien aus dem Verzeichnis bereitstellt, in dem die Datei abgelegt ist, und um zusätzliche Funktionen zu aktivieren / deaktivieren.

Normalerweise wird die Datei im Stammverzeichnis der Domäne abgelegt, aber Du kannst auch andere Dateien in den Unterverzeichnissen haben..htaccess.htaccess

Diese Methode erfordert, dass das Modul auf dem Apache-Server geladen wird. Dieses Modul wird standardmäßig auf den meisten Servern geladen. Wenn möglich, ziehe es vor, eine Umleitung im virtuellen Host zu erstellen, da dies einfacher und sicherer ist. mod_rewrite

Um den gesamten HTTP-Datenverkehr zu HTTPS umzuleiten, öffne die Stammdatei und füge den folgenden Code hinzu: .htaccess

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://beispiel.de/$1 [L,R=301]

Hier die Erläuterung des Codes:

  • RewriteEngine On – aktiviert die Rewrite-Funktionen.
  • RewriteCond %{HTTPS} off – prüft auf HTTP-Verbindung, und wenn die Bedingung erfüllt ist, wird die nächste Zeile ausgeführt.
  • RewriteRule ^(.*)$ https://beispiel.de/$1 [L,R=301] – HTTP auf HTTPS mit dem Statuscode 301 (Moved Permanently) umleiten. Stelle sicher, dass Du den Domainnamen änderst.

Das folgende Beispiel enthält eine zusätzliche Bedingung, die überprüft, ob die Anfrage mit beginnt. Verwende es, um alle Besucher zu zwingen, die HTTPS-non-WWW-Version der Webseite zu verwenden: www

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.beispiel\.de [NC]
RewriteRule ^(.*)$ https://beispiel.de/$1 [L,R=301]

Beim Bearbeiten der Datei musst Du den Server nicht neu starten, da Apache die Datei bei jeder Anforderung liest..htaccess

Last but not least, bei Apache besteht die bevorzugte Methode zum Umleiten von HTTP auf HTTPS darin, die 301-Umleitung im virtuellen Host der Domäne zu konfigurieren.