HINWEIS: Eine Aktualisierte Version dieses Beitrages für Ubuntu 20.04 ist >hier< verfügbar
KVM ist eine Virtualisierungstechnik für Linux, welche die Hardwarevirtualisierung aktueller Intel und AMD Prozessoren nutzt und Teil des Linux-Kernels ist. Ich verwende KVM für meine virtuellen Maschinen. In diesem Beitrag beschriebe ich wie KVM unter Ubuntu Linux 16.04 installiert sowie Bridged networkingkonfiguriert werden kann. Mit Bridged networking kann jeder virtuellen Maschine ein eigenes virtuellen Netzwerk Interface zugewiesen werden, welches die VM nach außen als eigenen Host darstellt.
Nachfolgend die von mir auf dieser Seite genutzten WordPress Plugins. Ich werde versuchen diesen Beitrag immer zu aktualisieren, falls ich ein zusätzliches oder altes Plugin nicht mehr verwende.
Contact Form 7
Mit dem Plugin Contact Form 7 lassen sich relativ einfach Formulare Erstellen und in WordPress Seiten Einbinden. Es erlaubt Teile des Formulars als Pflichtangaben zu definieren und beim Absenden des Formulars E-Mails zu versenden. Ich verwende es zum Beispiel auf meiner Kontakt Seite.
Responsive Lightbox
WordPress setzt Standardmäßig einen Link zu den in Beiträgen eingebetteten Mediendateien, mit denen diese in voller Größe betrachtet werden können. Mithilfe des Plugins Responsive Lightbox wird bei einem Klick auf die Mediendatei die aktuelle Seite nicht verlassen, sondern die Mediendatei lediglich in voller Größe vor dem eigentlichen Beitrag angezeigt. So kann die Mediendatei mit einem einfachen Klick wieder ausgeblendet oder zwischen verschiedenen im gleichen Beitrag eingebauten Mediendateien gewechselt werden.
SyntaxHighlighter Evolved
Mithilfe von dem Plugin SyntaxHighlighter Evolvedvisualisiere ich Inhalte von Konfigurationsdateien oder Code-Schnipsel. Es erlaubt unter anderem die Anzeige von Zeilennummern, unterstützt die Syntax diverser Programmiersprachen und erlaubt es einzelne Zeilen hervorzuheben. In dem von mir verwendeten WordPress Theme Sparkling ist in der Standardkonfiguration der Text etwas nach unten verschoben. Wie dies behoben werden kann habe ich im Beitrag Textverschiebung in WordPress Plugin SyntaxHighlighter Evolved beheben beschrieben.
WP-Piwik
Das Plugin WP-Piwik erlaubt es einfach einen Piwik Tracking Code in WordPress einzubinden. Es bietet außerdem die Möglichkeit sich im Dashboard von WordPress die Statistik der letzten Besucher anzeigen zu lassen. Wie es installiert und konfiguriert werden kann habe ich im Beitrag Piwik Tracking-Code in WordPress einfügen beschrieben.
Ich verwende das WordPress Plugin SyntaxHighlighter Evolved zum Darstellen von Konfigurationsausschnitten oder Codebeispielen. Leider ist bei meinem eingesetzten WordPress Theme Sparkling der Text standardmäßig etwas nach unten verschoben.
Diese Verschiebung kann einfach durch nachfolgenden Code im Zusätzliches CSS des Themes behoben werden.
Um das Zusätzliche CSS aufzurufen im Administrationsbereich von WordPress einfach in der Linken Menüleiste auf Design (1), anschließend auf Themes (2) und dort auf Customizer (3) klicken.
Um nun angezeigten Menü ganz unten auf Zusätzliches CSS klicken.
In der nun angezeigten Textbox (1) das oben gezeigte CSS Schnipsel hinzufügen und mit einem Klick auf Speichern & Publizieren (2) übernehmen.
Nach dem Speichern ist die Verschiebung sofort behoben.
WordPress ist ein Content Management System (CMS), welches es erlaubt relativ einfach den Inhalt einer statischen Webseiteoder eines Blogs zu pflegen. Es basiert auf PHP und benötigt einen Webserver sowie eine Datenbank zur Ausführung. Ich beschreibe in diesem Beitrag wie WordPress unter Ubuntu Linux 16.04 mit nginx als Webserver, SSL Zertifikate von Let’s Encrypt sowie MariaDB bzw. MySQL als Datenbank installiert werden kann. Wie diese Dinge Konfiguriert werden können habe ich bereits in folgenden Beiträgen beschrieben
Zuerst sollte wie in den oben verlinkten Beiträgen eine nginx Konfigurationsdatei erstellt sowie ein Let’s Encrypt SSL Zertifikat beantragt werden.
Falls für das Beantragen der SSL Zertifikate ein dummy-Verzeichnis verwendet wurde muss zuerst ein Verzeichnis für die WordPress Dateien angelegt werden.
$ sudo mkdir -p /var/www/com.example.blog
Damit es später möglich ist WordPress über die Webseite zu aktualisieren sollten die Rechte an diesem Ordner dem Benutzer und der Gruppe www-data zugewiesen werden.
Danach muss die nginx Konfiguration unter /etc/nginx/sites/available/com.example.blog durch nachfolgende ersetzt werden – natürlich mit den eigenen Angaben für IP-Adressen, Domains, Pfade etc.
server {
listen 80;
listen [xxx:xxx:xxx::42]:80;
server_name blog.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
listen [xxx:xxx:xxx::42]:443 ssl;
server_name blog.example.com;
ssl_certificate /etc/letsencrypt/live/blog.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.example.com/privkey.pem;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains;";
root /var/www/com.example.blog;
index index.php;
location = /robots.txt {
try_files $uri $uri/ /index.php?$args;
}
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.php?$args;
}
# pass the PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
# snippet for updating letsencrypt certificates
include snippets/certbot-webroot.conf;
}
Nun muss die Konfiguration ggf. noch aktiviert werden.
Damit ist nginx fertig konfiguriert und die WordPress Dateien können heruntergeladen, entpackt und ihre Rechte gesetzt werden. Falls die englische Version von WordPress installiert werden soll muss die Datei https://wordpress.org/latest.zip heruntergeladen werden.
Bevor die Installation gestartet wird muss noch eine Datenbank für WordPress angelegtwerden. Wie eine Datenbank mit zugehörigem Benutzer angelegt werden kann habe ich im Beitrag MySQL oder MariaDB Datenbank über das Terminal erstellen beschrieben.
Installation
Nun, da nginx, Let’s Encrypt und MariaDB bzw. MySQL konfiguriert wurde kann die Installation gestartet werden. Dazu muss einfach die in nginx konfigurierte Domain aufgerufen werden, hier im Beispiel also https://blog.example.com. Auf der nun angezeigten Webseite kann einfach auf „Los geht’s!“ geklickt werden.
Im zweiten Schritt müssen die Verbindungsinformationen zur Datenbank eingegeben werden. Anschließend können diese mit einem Klick auf „Senden“ gespeichert werden.
Der dritte Schritt erlaubt es mit einem Klick auf „Installation ausführen“ die eigentliche Installation von WordPress zu starten.
Im vierten Schritt werden Angaben wie der Titel der Webseite sowie Benutzername und Passwort verlangt. Nachdem dies ausgefüllt wurde kann einfach auf „WordPress Installieren“ geklickt werden.
Der fünfte Schritt besteht lediglich aus einer Bestätigung, dass WordPress erfolgreich installiert wurde. Mit einem Klick auf „Anmelden“ wird der Browser auf die Anmeldeseite von WordPress weitergeleitet.
WordPress wurde damit erfolgreich installiert und kann genutzt werden.
Ich habe gerne einen Überblick darüber wann eine SSH Verbindung auf einen Server aufgebaut wird. Deshalb lasse ich mir bei jeder neuen Verbindung eine E-Mail-Benachrichtigung schicken. Unter Ubuntu Linux 16.04 und anderen auf Debian basierten Linux Distributionen wird PAM (Pluggable Authentication Modules) zum Authentifizieren von Benutzern verwendet. Dies kann relativ einfach so konfiguriert werden, dass bei einer neuen SSH Verbindung ein bestimmtes Skript aufgerufen wird, welches dann eine E-Mail-Benachrichtigung versendet. In diesem Beitrag beschreibe ich, wie PAM so konfiguriert werden und ein Skript zum Versenden der E-Mail-Benachrichtigungen aussehen kann.
Unter neueren Ubuntu Linux Versionen wie 16.04 werden die Netzwerkadapter anders benannt. Ethernet Adapter wurden bisher immer mit eth0, eth1, etc. bezeichnet und WLAN Adapter mit wlan0, wlan1 etc. Seit Version v197 von systemd/udev werden die Namen der Netzwerkadapter vom BIOS vergeben, was in Namen wie enp0s3 resultiert. In diesem Beitrag beschreibe ich wie man wieder zum alten Namensschema zurückkehren kann.
In diesem Beitrag beschreibe ich wie scp genutzt werden kann, um Dateien von oder auf einen Linux Server zu kopieren. Die Befehle sollten für alle Linux Distributionen gleich sein. Unabhängig ob CentOS, Debian, Raspbian oder Ubuntu Linux eingesetzt wird.
Unter einem Alias in Linux versteht man, dass ein bestimmter Befehl unter einem anderen Namen mit ggf. mehr/anderen Parameter ausgeführt wird. Unter Ubuntu Linux 16.04 wird beispielsweise standardmäßig in der Datei .bashrc ein Alias mit dem Namen ll auf ls erstellt, welcher zusätzlich immer noch das Argument -alF ausführt.
Let’s Encrypt stellt kostenfreie SSL Zertifikate bereit, welche über den offiziellen Client certbot abgefragt werden können. Wie Let’s Encrypt SSL Zertifikate unter Ubuntu Linux 16.04 Server für Webseiten bzw. andere Dienste angefragt werden können habe ich in den Beiträgen Let’s Encrypt SSL Zertifikate unter Ubuntu Linux 16.04 Server mittels nginx und webroot Plugin beziehen bzw. Let’s Encrypt SSL Zertifikate für Dienste ohne Website wie postfix oder dovecot unter Ubuntu Linux 16.04 Server mittels nginx und webroot Plugin beziehen beschrieben. Die Zertifikate sind nur 90 Tage lang gültig und müssen spätestens danach erneuert werden. Dies wird durch einen bei der Installation von certbot automatisch angelegten timer erledigt. Dieser prüft alle 12 Stunden, ob ein Zertifikat in den nächsten 30 Tagen abläuft. Ist dies der Fall wird das Zertifikat erneuert. Der Befehl zum Überprüfen wird allerdings als root ausgeführt. In diesem Beitrag beschreibe ich wie die Zertifikate als nicht root Benutzer automatisch erneuert werden können.
Im Beitrag Let’s Encrypt SSL Zertifikate unter Ubuntu Linux 16.04 Server mittels nginx und webroot Plugin beziehen habe ich beschrieben, wie es mithilfe des certbot Tools möglich ist SSL Zertifikate von Let’s Encrypt über nginx und das webroot Plugin zu beziehen. Dieser Mechanismus funktioniert aber nur für Webseiten. Für Dienste, welche keine Webseite über nginx bereitstellen ist dieses Verfahren nicht geeignet. Mit einer leichten Modifikation können aber auch SSL Zertifikate für Dienste ohne Webseiten wie postfix oder dovecot bezogen werden. In diesem Beitrag beschreibe ich die notwendigen Anpassungen dafür.