Schlagwort-Archive: Linux

KVM Hypervisor auf CentOS7

KVM ist eine Open-Source Hardware Virtualisierungssoftware, mit dieser Linux-basierte und Windows-basierte virtuelle Maschinen gleichzeitig ausgeführt werden können. KVM wird als Kernel-basierte Virtuelle Maschine bezeichnet und ist eine alternative zu VMware ESXi und Xen, dabei wird durch die Installation des KVM-Pakets das KVM-Modul in den aktuellen Kernel geladen und aus einer Linux-Maschine ein Hypervisor gebildet.

In diesem Beitrag wird gezeigt, wie ein KVM Hypervisor auf CentOS 7.x und RHEL 7.x installiert wird, um danach virtuelle Maschinen zu installieren.

INSTALLATION

Bevor man mit der KVM-Installation fortfährt, überprüft man ob die CPU des Systems die Hardware-Virtualisierung unterstützt. Dazu folgendes Command ausführen in der root Shell  

Es sollte in der Ausgabe das Wort vmx oder svm erscheinen, ansonsten unterstützt die CPU keine Virtualisierung. Möglicherweise lohnt sich ein gang in das System BIOS um die VT-x Boot Einstellung zu aktivieren.

Die KVM-Pakete und die zugehörigen Module werden installiert.

Der KVM Service kann nun aktiviert und gestartet werden.

Wir überprüfen ob die KVM Module auch wirklich gestartet wurden.

Falls eine Minimal CentOS 7 oder RHEL 7 Installation vorliegt, startet der virt-manager nicht, wir müssen also noch X-Window installieren.

Starte den Server neu und versuche dann, den virtual manager zu starten.

Bevor wir beginnen VMs zu deployen, erstellen wir zunächst ein Bridge Interface. Die Bridge-Schnittstelle ist erforderlich, wenn man zum Hypervisor von ausserhalb des Netzwerks auf virtuelle Maschinen zugreifen möchte. In unserem Beispiel heisst das Ethernet Interface ifcfg-eth0.

Bearbeite nun die Interface-Datei ifcfg-eth0 und trage folgendes ein:

Bearbeite die Bridge-Datei ifcfg-br0 und lege folgendes fest:

Starte den Netzwerkdienst neu um die Bridge zu aktivieren.

Überprüfe das Bridge Interface mit dem folgenden Befehl:

 Wer es lieber den Network-Manager machen lässt, der kann das Bridge Interface wie folgt erzeugen:

Virtuelle Maschinen können nun entweder über die Befehlszeile mit dem Befehl virt-install oder über das GUI virt-manager erzeugt werden.

Im GUI gehe hierzu auf die Option Datei und klicke auf New virtual Maschine.

Die virtuelle Maschine wird nun mit Hilfe des Wizard erzeugt.

Virtuelle Maschinen aus der Befehlszeile erstellen:

Aus dem virtual Manager werden die VMs hochgefahren und verwaltet, es wird der Status und die Systemlast angezeigt, ähnlich wie man es von vSphere kennt.

Abbildung: KVM virtual Manager

Weiter ist virt-manager aus Cygwin in Windows 10 ausführbar, hierzu muss Cygwin64 mit dem Xorg-Server und virt-manager installiert sein, mit dem virt-manager verbindet man zum KVM Hypervisor.

Abbildung: Cygwin virt-manager Verindung
Abbildung: Cygwin virt-manager

 

Check Python Version

Check Python Version and query OS Platform using Python.

Python should output the entire OS environment.

 

Google-Suche im Linux Terminal

Google-Suche ist die am meisten verwendete Suchmaschine im World Wide Web ( WWW ), um Informationen von Millionen von Servern im Internet zu sammeln.

Viele nutzen hauptsächlich die Google-Suche über ein grafischen Webbrowser. Für die Kommandozeilen-Geeks die Aufgaben im Terminal bewältigen möchten, war der Zugriff auf die Google-Suche bis anhin nicht möglich, mit dem Befehlszeilen-Tool Googler ist dies nun möglich.

Googler von Arun Prakash Jana, ist ein leistungsstarkes Kommandozeilen-Tool auf der Basis von Python, für den Zugriff auf Google (Web & News) und die Google-Site-Suche im Linux-Terminal. Googler ist für die Script Verarbeitung und Automatisation vielseitig einsetzbar.

INSTALLATION

Die Installation auf Ubuntu kann direkt aus dem Repository gemacht werden.

Eine andere alternative um die neuste Googler Version von herunterzuladen und zu installieren.

Python 3 ist erforderlich um googler nutzen zu können. Auf Ubuntu 16.04 ist Python per Standard installiert, ansonsten wird Python 3 wie folgt installiert.

Python Version überprüfen.

Python 3 und Googler Installation für CentOS.

Die Google Suche aus dem Linux Terminal.
$ googler -n 5 mojito recipe to self made

Der omniprompt dient zur Eingabe von optionen.
Ein ? gibt hilfe aus, mit n geht es zur nächsten Seite.

 

Nextcloud Installation auf Synology

Mit der Synology Diskstation kommen viele Packete vorinstalliert, weitere zusätzliche Packete können aus dem DSM Packet Manager installiert werden. Möchte man Nextcloud auf der Synology NAS haben, muss man derzeit noch manuell vorgehen. Hier wird

synology

beschrieben wie auf einer DS215 mit DSM 6 in wenigen schritten das Open Source Packet, Nextcloud 12 installiert werden kann. Das vorgehen sollte mit jeder Synology DS möglich sein.

Pre-Installation
Installation
CalDAV Integration
Absicherung und Konfiguration

Zur Vorbereitung sind einige Dienstpackete wie gewohnt aus dem DSM Packet-Zentrum zu installieren.

Pre-Installation

Die Packete PHP 5.6 und PHP 7.0, Apache 2.4, phpMyAdmin, MariaDB und Web Station werden installiert.

Es wird der Terminal Zugang zur Synology DS benötigt, wie der SSH Daemon aktiviert wird, steht im Beitrag hier.

Um sich mit PuTTY gleich als root bei der Diskstation einloggen zu können, braucht es folgenden Befehl um root Zugang zu aktivieren. Oder man führt jeweils sudo aus.

Download von Nextcloud und entpacken des ZIP-Archives mit anschließender Besitzer und rechte Vergabe. Die Document_Root ist hier /volume1/web/nextcloud.

Es muss ein MySQL root-Passwort vergeben werden.

Das MySQL-root Passwort kann natürlich auch aus dem DSM geändert werden.

Nun wird die DSM Web Station geöffnet um die Webserver Konfiguration und ein Virtueller Host zu erstellen.

Web Station Allgemeine Einstellungen

Web Station PHP-Einstellungen. Im Feld PHP open_basedir muss none stehen.

Web Station Virtueller Host erstellen.

Installation

Nun kann im Bowser die URL geöffnet werden https://ip_adresse_od_hostname/nextcloud

Das Administrator-Konto kann ein beliebiger Name sein, dieser steht nicht im Zusammenhang mit den Synology Benutzer. Es wird MySQL/MariaDB gewählt, das MySQL-root Kennwort ist das zuvor vergebene Passwort.

Nach ca. 2 min. ist die Installation abschlossen und es erscheint die Intro-Seite.

Soll nun unsere eigene Nextcloud aus dem Internet erreichbar sein, muss eine statische NAT Port Weiterleitung zur internen Synology Diskstation auf der Firewall gemacht werden. Ferner muss die unter nextcloud/config liegende Datei config.php angepasst werden. Im array wird eine weitere Zeile mit unserem FQDN hinzugefügt, dieser zuvor in der DNS Zone foo.io eingetragen wurde.


CalDAV Integration

Mit CalDAV Synchronizer for Outlook ist es möglich den Outlook Kalender, das Adressbuch und die Aufgaben einfach zu synchronisieren, damit ist jeder Desktop und Mobile Client über die private Nextcloud integriert.

Das freie Outlook Plugin von der Fachhochschule Technikum Wien, das zwischen Outlook und CalDAV Server synchronisiert, unterstützt die Outlook-Versionen 2016, 2013, 2010 und 2007. Der Download gibt es auf Github und bei Sourceforge.

Absicherung und Konfiguration

Zur Absicherung der Synology DS die aus dem Internet erreichbar ist, sollten die Zugriffsrechte  eingeschränkt werden, mit folgendem chmod command:

Desweiteren sollte HTTPS verwendet werden, Nextcloud empfiehlt folgende Einstellung an der Apache Webserver Konfiguration vorzunehmen:

Hierdurch wird der Aufruf der Webseite von http auf https (SSL) umgeleitet, in der Virtuellen Host Konfiguration unter ServerName hinzufügen:

Damit beim versuch eine HTTP Verbindung aufzubauen diese abgewiesen wird, kann das Module mod_headers.c hinzugefügt  werden.

Den Suchmachinen Crawler soll mitgeteilt werden, das unsere Nextcloud Webseite nicht indiziert werden soll. Die Textdatei robots.txt kommt dabei in die Document Root, im Verzeichnis /volume1/web/nextcloud zu stehen.

Mit  Copy  Paste die Textdatei robots.txt erstellen.

Zur Performance Optimierung kann der PHP opcache konfiguriert werden. Die Werte wie folgt in die PHP Konfiguration user-settungs.ini hinzufügen:

Durch   Copy Paste in der Datei user-settings.ini anfügen.

Nun muss die Synology DS nur noch neu gestartet werden damit die Konfiguration aktiv ist.

Anhang

Mit Apache 2.4 und PHP 7 läuft Nextcloud einiges performanter, daher empfiehlt sich die Web Station für den Virtual Host von Nextcloud mit den aktuellen Web Services zu betreiben.

Abbildung: Synology Web Station

htaccess und Dynamische IP Adressen

Der Apache Webserver ermöglicht die Zugriffsteuerung über htaccess, auch um Autorisierten Zugang auf Webseiten zu ermöglichen. Mit der Apache direktive Allow from ist es möglich eine bestimmte IP von der Anmeldeaufforderung auszuschliessen. Dabei ist die Übergabe von Hostnamen und FQDN leider nicht möglich. Anhand des folgenden Scriptes wird die Dynamische IP eines Hostname ausgelesen und in die htaccess-Datei eingetragen.

Der Shell Script zur Auflösung der IP Adresse und schreiben in die htaccess-Datei. Die folgenden Zeilen in der Konsole mit copy & paste einfügen, dies erzeugt den Shell Script.

 Copy Paste

Der Script schreibt hier auf einem CentOS Host die htaccess-Datei um. Bei Zeile Allow from mit der Marke #DDNS wird der Hostname ausgelesen, auf der nächsten Zeile mit der Marke #DDNS-IP wird die aufgelöste IP des Host geschrieben. Die Pfad Variable htpath kann DocumentRoot oder ein Unterverzeichnis sein, dabei bearbeitet der Script alle vorkommenden .htaccess-Dateien rekursive ab htpath.

Die htaccess-Datei wird im Webverzeichnis gespeichert dieses geschützt werden soll. Mit cd in das gewünschten Verzeichnis wechseln und die folgenden Zeilen mit copy & paste in der Konsole einfügen, dies erzeugt die .htaccess-Datei.

 Copy Paste

Die Zeilen mit #DDNS und #DDNS-IP (mit #) dienen zur Markierung.

Der Script muss noch  ausführbar gemacht werden.

Damit die Auflösung der Dynamischen IP laufend aktualisiert wird, kann mit crontab -e ein Cron job erstellt werden.

Nach restart des Cron Daemon ist der job aktive.

Hinweis:
Ab Apache 2.4 lautet die direktive von zuvor Allow from nun Require.
Apache 2.x mod_access_compat

Apache 2.4 mod_authz_host

Die von mod_access_compat bereitgestellten Allow-, Deny- und Order-Direktiven sind veraltet und werden in den zukünftigen Version nicht mehr unterstützt. Es wird empfohlen die neuen Direktiven zu verwenden.