Mit macOS 10.15 Geräte von Cisco konfigurieren oder aktualisieren

Um von einem Rechner mit macOS 10.15 über die Konsole Cisco Geräte (wie ASA Firewall, Router, Switch, usw.) zu konfigurieren oder die Firmware zu aktualisieren sind ein paar Kniffe notwendig. Ich habe mir hier mal die beiden wichtigsten aufgeschrieben. Vielleicht nützen diese ja noch mal jemand anderem.

Kopieren von Firmware oder Software von einem Rechner mit macOS 10.15 auf ein Cisco Gerät

Auf die meisten Geräten von Cisco wird eine neue Firmware mit dem Befehl „copy“ übertragen. Um eine Datei aus dem Downloadordner des Users kristian von einem Mac Rechner mit der IP-Adresse 172.30.25.201 zu kopieren, würde man den folgen copy Befehl eingeben:

copy scp://kristian@172.30.25.201:Downloads/asdm-openjre-7131.bin disk0:

Damit das Gerät von Cisco die Datei von dem Rechner mit macOS runterladen kann, muss die „Dateifreigabe“ und die „Entfernte Anmeldung“ aktiviert sein. Diese findet man in den Systemeinstellungen und Freigaben.

Konfiguration des Cisco Gerätes über die Konsole

Man kann die meisten Geräte von Cisco über die Konsole konfigurieren. Diese funktioniert über ein mitgeliefertes USB-Kabel auch dann, wenn die Netzwerkkonfiguration nicht funktioniert oder nicht vorhanden ist.

Da ein man auf einem aktuellen Mac keinen USB-Anschluss mehr hat, benötigt man einen Adapter. Wenn man das USB-Kabel an diesem Adapter anschließt, taucht das Cisco Gerät als USB-Gerät im Ordner /dev auf. Mit dem folgenden Befehl kann man den Namen der USB-Gerätes identifizieren:

ls /dev/*usb*

Bei mir heißt das USB-Gerät z.B. “ /dev/cu.usbmodem142101″. Um mit dem Terminal auf diese Konsole zu kommen, muss ich dann nur den folgenden Befehl eingeben:

screen /dev/cu.usbmodem142101 -f 9600,cs8,-parenb,-cstopb,-hupcl

Installation von Ansible auf einem Windows System

Was ist Ansible? Dies war die Frage, die mir meine Windows-Administratoren stellten, als ich mit der Idee einer Automatisierung von Windows mit Ansible um die Ecke kam. Eine durchaus berechtigte Frage, zumal die Automatisierung und Provisionierung von Windows durch Scripts aktuell noch nicht sehr verbreitet ist. Vielmehr gibt es hier eher grafisch gesteuerte Software wie den System Center Configuration Manager oder Windows Server Update Services.

Ansible ist ein Open-Source Automatisierungs-Werkzeug zur Orchestrierung und allgemeinen Konfiguration und Administration von Computern. Mit der Hilfe von Ansible kann man wiederkehrende Aufgaben bequem simultan auf mehreren System ausführen, ohne dass auf dem jeweiligen System eine zusätzliche Software verwendet wird. Dazu logt sich Ansible via SSH oder RPC auf dem zu administrierenden System ein und führt  vorher definierte Aufgaben aus. Diese Aufgaben werden in sog. Playbooks gespeichert. Playbooks werden im YAML-Format erstellt, erkennbar durch die Endung .yaml. Weitere Infos zur Syntax und Notation von YAML sind in der Ansible-Dokumentation zu finden.

Verwendung von Ansible unter Windows

Ansible basiert auf Python. Dabei erfolgt der eigentliche Zugriff auf das Windows Zielsystem dann ausschließlich über RPC. Ein Zugriff auf UNIX oder Linux erfolgt ausschließlich über SSH. Somit muss auf einem Windows, Linux oder Unix Zielsystem keinerlei zusätzliche Software installiert werden.

Für das Ausführen der Ansible-Skripte auf dem Quellsystem wird logischer Weise Python benötigt. Unter Linux wird ein Python eigentlich immer mitgeliefert. Deshalb kann dort Ansible einfach installiert und gestartet werden. Bei einem Windows System muss zunächst Python installiert werden, bevor man Ansible installiert. Ansonsten läßt sich Ansible nicht starten.

Da ich meinen Windows-Administratoren nicht zumuten wollte mit Linux zu arbeiten, habe ich mich dafür entschieden eine Administrations-Maschine mit Windows aufzusetzen, auf der man die Ansible Skripte direkt starten kann. Hier folgt die Anleitung für die Installation.

Anleitung für die Installation von Ansible unter Windows

Für die Installation der benötigten Software öffnet man unter Windows als Administrator die PowerShell. Hierfür drückt man einfach die Windowstaste, gibt „PowerShell“ ein und wählt nach einem Rechtsklick auf „Windows PowerShell“ den Menüpunkt „Als Adminsitrator ausführen“ aus. Anschließend gibt man in dem Fester mit der PowerShell den folgenden Befehl ein:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Nach der Eingabe möchte der Rechner neu starten. Nach einem Neustart kann man sich bei Windows 10 im Store ein Linux Distribution aussuchen und diese installieren. Dazu öffnen man den Windows Store (dazu wieder einfach die Windows Taste drücken und „Store“ eingeben). Anschließend kann man im Windows Store entweder nach Linux, oder direkt nach der gewünschten Distro suchen und diese installieren.

Bei Windows 2019 Server gibt es leider keinen Store. Hier muss die Linux Distribution von Hand bei Microsoft runtergeladen und installiert werden. Eine Anleitung für die Installationen und eine Liste der Linux Distributionen findet man bei Microsoft auf der Seite https://docs.microsoft.com/en-us/windows/wsl/install-manual. Um die Debian Distribution per PowerShell runterladen und entpacken zu lassen, kann man z.B. die folgenden drei Befehl in einer als „Administrator“ gestarteten PowerShell eingeben:

Invoke-WebRequest -Uri https://aka.ms/wsl-debian-gnulinux -OutFile C:/Debian.appx -UseBasicParsing
Rename-Item C:/Debian.appx C:/Debian.zip
Expand-Archive C:/Debian.zip C:/Debian

Wenn die Befehle ausgeführt wurden, befinden sich die Installationsdaten von Debian Linux in dem Verzeichnis c:\Debian. Die eigentliche Installation startet man dann durch das ausführen der Datei Debian.exe in diesem Verzeichnis als Administrator. Es öffnet sich ein Fenster, in welchem die Installation durchläuft. Nach Abschluss der Installation wird man aufgefordert einen Benutzernamen für den Standardbenutzer und ein dazugehöriges Passwort einzugeben. Danach ist man in einer BASH Shell und kann das Debian Linux Benutzen.

Damit Linux von überall aufrufbar ist, sollte die Umgebungsvariable PATH noch entsprechend erweitert werden. Dies kann man mit den folgenden beiden PowerShell Befehlen machen:

$userenv = [System.Environment]::GetEnvironmentVariable("Path", "User")
[System.Environment]::SetEnvironmentVariable("PATH", $userenv + "C:\Debian;", "User")

Danach kann man sich in einer Kommandozeile die als Administrator gestaltet wurde jeder Zeit durch die Eingabe von „debian.exe“ eine Linux Bash starten.

Als erstes sollte man das installierte Debian auf den aktuellen Stand bringen. Dazu gibt man den Befehl „sudo -s“ ein und man wird um eine erneute eingäbe des Benutzerpasswortes gebeten. Nach der Eingabe erhält man eine root-shell. Wenn man in diese den folgenden eingibt, wird das Debian aktualisiert:

sudo apt update && sudo apt upgrade

Danach wird Python benötigt, da es die Grundlage von Ansible ist. Um Python zu installieren muss der folgende Befehle in eine root-Shell des Linux eigegeben werden:

apt-get -y install python-pip python-dev libffi-dev libssl-dev

Zum Schluss kommt dann die Installation von Ansible. Um immer die neuste Version von Ansible zu installieren, empfehle ich diese über das Python Paketverwaltungsprogramm (kurz Pip) zu machen. Dies geschieht durch die eingäbe des folgenden Befehlt in einer root-shell den Linux:

pip install ansible

Nachdem die Installation durchgelaufen ist, sollte Ansible funktionieren. Für alle weiteren Informationen empfiehlt sich ein Blick in die Ansible Dokumentation.

Let’s Encrypt Zertifikate für Postfix und Dovecot einrichten

In letzter Zeit wird die Verwendung der kostenlosen Zertifikate von Let’s Encrypt immer beliebter. Deshalb ist es naheliegend, diese auch für Verschlüsselung der Mails bei Postfix zu verwenden. Im folgenden sind die wenigen Schritte für die Einrichtung erklärt, die bei einem Ubuntu 18.04 notwendig sind.

Installation

Let’s Encrypt können mit dem certbot erzeugt werden. Die Installation des Programms bei Ubuntu 18.04 erfolgt mit den folgendenBefehlen.

sudo apt update
sudo apt install python-certbot-apache

Erzeugung eines Zertifikates

Das Zertifikat wir mit dem Programm certbot erzeugt. Da die Verifizierung des Host über den Webauftritt erfolgt. Ist es zwingend erforderlich, dass ein Apache auf dem Server installiert ist. Das Programm certbot macht dann die notwendigen Anpassungen an der Konfiguration des Apache Webservers. Mit der Option -d werden die Hostnamen angegeben, für welche das Zertifikat ausgestellt werden soll. Dabei ist es möglich das Zertifikat gleich für mehrere Hostnamen auszustellen. Nach dem ausführen des Programms certbot werden zudem einige Fragen gestellt, deren Beantwortung für das anpassen der Konfiguration des Apache Webservers notwendigen sind. Mit dem folgenden Befehl testet man z.B. das Ausstellen eines Zertifikates für die Hostnamen www.purrucker.de, purrucker.de imap.purrucker.de und smtp.purrucker.de. 

sudo certbot --apache --staging -d www.purrucker.de -d purrucker.de -d imap.purrucker.de -d smtp.purrucker.de

Wenn alles funktioniert, kann man das Kommando ohne die Option „–staging“ ausführen. Dann fordert certbot beim Let’s-Encrypt-Projekt die generierten Zertifikate an, lädt diese herunter, installiert alle erforderlichen Dateien in das Verzeichnis /etc/letsencrypt, verändert die Apache-Konfiguration und startet Apache schließlich neu.

Einbindung des Zertifikates

Die Einbindung des Zertifikates in den Apache Webserver hat das Programm certbot erledigt. Bei Postfix und Dovecot muss die Einbindung jedoch von Hand erfolgen. Bei Postfix fügt man dazu die beiden folgenden Zeilen in die Datei /etc/postfix/main.cf ein.

smtpd_tls_cert_file= /etc/letsencrypt/live/www.purrucker.de/fullchain.pem
smtpd_tls_key_file= /etc/letsencrypt/live/www.purrucker.de/privkey.pem

Bei Dovecot benötigt man die drei folgenden Zeilen in der Datei /etc/dovecot/conf.d/10-ssl.conf.

ssl = yes
ssl_cert = </etc/letsencrypt/live/www.purrucker.de/fullchain.pem
ssl_key  = </etc/letsencrypt/live/www.purrucker.de/privkey.pem

Danach müssen beide Programme einmal neu gestartet werden.

service postfix restart
service dovecot restart

Automatische Erneuerung des Zertifikates

Das Let’s Encrypt Zertifikat ist grundsätzlich immer nur drei Monate gültig. Deshalb ist es notwendig, dieses regelmäßig zu erneuern. Um dies nicht immer von Hand machen zu müssen, sollte man sich dazu einen wöchentlichen Cronjob anlegen. Dazu einfach die Datei /etc/cron.weekly/letsencrypt mit folgendem Inhalt anlegen und ausführbar machen.

#!/bin/sh
# Datei /etc/cron.weekly/letsencrypt
certbot renew
result=$(find /etc/letsencrypt/live/ -type l -mtime -1 )
if [ -n "$result" ]; then
  systemctl restart postfix
  systemctl restart dovecot
fi

Debug einer IPSec Anbindung auf einer Cisco ASA

Die ASA (Adaptive Security Appliance) Firewalls von Cisco zeigen in der Standardeinstellung nur wenige Meldungen zu einem Aufbau eines IPSec VPN-Tunnels an. Wenn eine solche Verbindung nach der Einrichtung nicht funktioniert, kann es jedoch sinnvoll sein den Loglevel zu erhöhen und alle Meldungen anzuzeigen. Damit im Anschluss nicht zu viele Meldungen angezeigt werden, sollten die Meldungen vorher aber auf einen bestimmten IPSec VPN-Tunnel beschränkt werden. 

Beispiel

Gehen wir zum Beispiel mal davon aus, dass die Phase 1 bei einer IPSec Verbindung nicht aufgebaut wird und bei dieser das Protokoll IKEv2 verwendet wird.

Mit den folgenden drei Befehlen bringt man die Konsole der Cisco ASA dazu nur noch die Meldungen für den VPN-Tunnel zu der angegebenen IP-Adresse anzuzeigen und schaltet das höchste Loglevel für IKEv2 ein. Danach werden alle Meldungen zu dem Aufbau der Phase 1 des IPSec Tunnels zu der angegebenen IP-Adresse auf der Konsole angezeigt.

debug crypto condition peer <ip adresse>
debug crypto ikev2 protocol 255
debug crypto ikev2 platform 255

Ausstellen von Zertifikaten mit einer Gültigkeit von mehr als zwei Jahren bei Microsofts interner Zertifizierungsstelle

Warum können länger gültige Zertifikate sinnvoll sein?

Viele aktuelle Serversysteme von Microsoft und Drittanbietern benötigen Zertifikate. Dadurch wird der Einsatz einer internen Zertifizierungsstelle in einem Active Directory nahezu unerlässlich. Microsoft hat für diesen Zweck die „Active Directory-Zertifikatsdienste“ entwickelt, die man bei den Windows-Servern als Rolle hinzufügen kann.

Bei den Active Directory-Zertifikatsdiensten ist die maximale Gültigkeit eines Zertifikates auf 2 Jahre beschränkt. Dies kann sehr arbeitsaufwändig werden, wenn man viele Server betreibt, welche die Zertifikate manuell eingespielt bekommen. Deshalb kann es sinnvoll sein, die maximale Gültigkeit zu erhöhen.

Wodurch wird die maximale Gültigkeit eines Zertifikates beschränk?

Die Beschränkung der maximalen Gültigkeit eines Zertifikates bei den Active Directory-Zertifikatsdiensten wird durch den Parameter mit dem Namen ValidityPeriodunits in der Registry auf dem Server mit der Zertifizierungsstelle gesteuert. Dieser Parameter enthält die Anzahl von Jahren, die ein ausgestelltes Zertifikat maximal gültig sein darf und hat bei einer normalen Installation den Wert 2.

Wie kann ich die maximale Anzahl von Jahren erhöhen, die ein Zertifikat gültig sein darf?

Der Wert der Parameters ValidityPeriodunits kann mit der Hilfe des Kommandozeilentools certutil angezeigt oder geändert werden.

Um sich den aktuellen Wert des Parameters ValidityPeriodunits anzeigen zu lassen, gibt man in einer Kommandozeile mit Administrationsrechten den folgenden Befehl ein.

certutil -getreg ca\ValidityPeriodunits

Wenn man den Wert des Parameters ValidityPeriodunits auf zehn Jahre erhöhen möchte, gibt man den folgenden Befehl ein.

certutil -setreg ca\validityperiodunits 10

Wenn der Wert geändert wurde, müssen die Active Directory-Zertifikatsdienste neu gestartet werden, um die Änderungen zu aktivieren. Dies kann man durch die eingäbe der beiden folgenden Befehle in einer Kommandozeile mit Administrationsrechten erreichen.

net stop certsvc
net start certsvc

IPv6 auf einem Ubuntu 18.04 Server deaktivieren

Selbst in der heutigen Zeit bereiten Server die sowohl eine IPv4 als auch eine IPv6 Adresse haben manchmal Probleme. Deshalb kann es nützlich sein, wenn man die IPv6 Adressen eines Server komplett deaktiviert. Bei Ubuntu 18.04 LTS geht das wie folgt.

Man legt die Datei /etc/sysctl.d/01-disable-ipv6.conf mit dem folgenden Inhalt an und startet den Server hinterher neu.

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Powerbank für Notebooks mit USB-C

Da ich viel unterwegs bin, hatten meine Notebooks schon immer sehr leistungsstarke Akkus. Dennoch kam es immer wieder vor, dass mir unterwegs der Strom ausging. Bei meinem iPad und iPhone konnte dann immer eine Powerbank aushelfen. Für das laden des Notebooks reichte die Leistung des Stroms von USB-A jedoch nicht aus.

Inzwischen gibt es neuere Powerbanks mit USB-C Anschlüssen. Bei USB-C gibt es das Feature „USB Power Delivery“. Wenn die Powerbank diese Feature unterstützt, kann das Angeschlossene Gerät eine Ladung mit einer Leistung von bis zu 100 Watt aushandeln. Diese Leistung langt dann auch für Notebooks.

Ich habe seit kurzem ein Apple MacBook Pro mit 15“, dass über USB-C geladen wir. Deshalb konnte ich es kaum erwarten das laden des Notebooks über eine Powerbank zu testen. Ein Recherche im Internet ergab, dass bei leibe nicht alle USB-C Powerbanks das Feature „USB Power Delivery“ unterstützen. Zudem konnte ich kaum eine Powerbank finden, die eine Leistung von 100 Watt bereitstellen konnte. Und wenn eine Powerbank 100 Watt konnte, war sie sehr groß und teuer.

Meine Entscheidung

Schlussendlich habe ich mich für die „Xlayer Powerbank PLUS MacBook
20100“ entschieden. Diese hat ein moderates Preis-Leistungs-Verhältnis und kann über „USB Power Delivery“  immerhin 45 Watt für ein Gerät zum laden bereit stellen. Dabei kann die Powerbank eine Leistung von 20100 mAh bei 3,6 Volt erbringen und kommt damit auf eine Kapazität von 72.4 Wh. Somit hat sie eine Kapazität von unter 100 Wh und darf mit in Flugzeuge genommen werden. Eine Eigenschaft die für mich sehr wichtig ist.

Technische Details:

  • Abmessung: 172 x 66 x 23(L x W x H)
  • Kapazität: 72.4 Wh (3.6V/20100 mAh)
  • Eingang: Type C: 5V/3A, 9V/2A, 12V/2A, 14.5V/1.5A, 20V/1.5A
  • Ausgang: 2 x Type A: (5V/2,4A); Type C: 5V/3A, 9V/3A, 12V/3A, 14.5V/3A, 20V/2.25A
  • Akku-Typ: Lithium Polymer
  • Gewicht: 460 g
  • Display: LED-Batterie-Ladestandanzeigen
  • Anschlüsse: Type C (Eingang / Ausgang), 2 x USB-A (Ausgang)

Wie ist die Powerbank im Täglichen Einsatz?

Mich überzeugt die Powerbank durch ihr schickes Design und die hochwertige Verarbeitung bei einem guten Preis-Leistung-Verhältnis. Somit kann ich die Powerbank rundum empfehlen. Sie ist in der Lage meinen MacBook Pro 15“ 2017 auf eine Ladung von ca. 75% zu bringen. Das entspricht bei meiner typischen Arbeit einer Laufzeitverlängerung von ungefähr 7-8 Stunden. Mein iPad und iPhone konnte ich mit der Powerbank sogar fast drei Tage betreiben, ohne eine Steckdose zu benötigen. Somit ist die Powerbank in der Lage mich ca. einen ganzen Tag mit Strom für meine Mobilgeräte zu versorgen und ermöglicht mir somit wesentlich mehr Unabhängigkeit von Steckdosen.

Wo gibt es die Powerbank zu kaufen?

Falls Euch der Artikel gefallen habt und die Powerbank kaufen möchtet, könnt Ihr das über den folgenden Link zu Amazon machen. Es handelt sich dabei um einen Affiliate-Link und Ihr unterstütz mich damit.

Erster Test von Ubuntu 18.04 LTS

Ich habe mir gerade den RC (Release Candidate) von Ubuntu 18.04 LTS angesehen. Das LTS steht bei Ubuntu für Long Term Support und bedeutet, dass es 5 Jahre lang Sicherheitsupdates für die Release von Ubuntu geben wird. Die LTS Version erscheint aktuell alle zwei Jahre und ist durch den langen Zeitraum mit Sicherheitsupdates besonders für Server interessant.

Upgrade auf die neue Version von Ubuntu

Da bei einem Release Candidate ein Einsatz in der Produktion noch nicht sinnvoll ist, gibt es bei den üblichen Hostern und Rechenzentren aktuell natürlich noch kein Image für die Installation des neuen Ubuntu 18.04. Um es dennoch auf einen Server zu bekommen, muss man eine älter Installation aktualisieren. Um die neue Version von Ubuntu auf einen Server in einem Rechenzentrum zu bekommen, habe ich einfach bei einem Server mit einer Installierten Version 16.04 LTS die Datei /etc/apt/sources.list editiert und alle „xenial“ durch „bionic“ ersetzt.

#######################################################################################
# Hetzner APT-Mirror
#
deb http://mirror.hetzner.de/ubuntu/packages  bionic           main restricted universe multiverse
deb http://mirror.hetzner.de/ubuntu/packages  bionic-backports main restricted universe multiverse
deb http://mirror.hetzner.de/ubuntu/packages  bionic-updates   main restricted universe multiverse
deb http://mirror.hetzner.de/ubuntu/security  bionic-security  main restricted universe multiverse
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu/ bionic main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial main restricted
 
## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
 
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://de.archive.ubuntu.com/ubuntu/ bionic universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial universe
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates universe
 
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://de.archive.ubuntu.com/ubuntu/ bionic multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
 
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
 
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu xenial partner
# deb-src http://archive.canonical.com/ubuntu xenial partner
 
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

Danach noch ein schnelles Update der lokalen Paketquellen mit dem folgenden Befehl.

sudo apt update

Und und schon konnte ich die Aktualisierung auf Version 18.04 LTS starten.

sudo apt dist-upgrade

Nachdem die Installation durchgelaufen war und ich den Server neu gestartet hatte, begrüßte mich der Login der neuen Ubuntu Version mit „Welcome to Ubuntu Bionic Beave“.

Mein erster Eindruck

Ubuntu hat wie üblich bei der LTS Version keine großen Experimente gewagt und aller Komponenten auf den aktuellen Stand gebracht. Cononical legt den Fokus bei den LTS-Versionen auf die Stabilität. Dies sieht man z. B. an dem X-Server. Als X-Server kommt immer noch der X-Server von x.org zu Einsatz, obwohl Canonical auf den schnelleren und moderneren X-Server Wayland setzt. Auf die Einführung des neuen Wayland wurde bei Ubuntu 18.04 LTS aber noch bewußt verzichtet, da es bei Wayland mit einigen X-Anwndungen noch Probleme gibt.

Alle Kernkomponenten und auf den aktuellen Stand gebracht worden. In der folgenden Tabelle habe ich mal einige Versionen von Kernkomponenten im Vergleich zu der vorherigen LTS-Version 16.04 zusammengefasst, die für mich immer besonders wichtig sind.

Softwarename Version bei 16.04 LTS Version bei 18.04 LTS
gcc (The GNU Compiler Collection) 5.4 7.3
Apache 2.4.18 2.4.29
php 7.0 7.2
perl 5.22.1 5.26.1
python  3.5.2 3.6.5
MariaDB 10.0.34  10.1.29

Fazit

Das neue Ubuntu 18.04 LTS macht einen soliden und stabilen Eindruck. Alle für mich wichtigen Komponenten wurden auf den aktuellen Stand gebracht und es gab für mich keine großen Überraschungen. Einige Geschwindigkeitstests mit Rechenintensiven Aufgaben haben ergeben, dass das neue Ubuntu um ca. 3-5 % schneller geworden ist. Dies dürfte an dem deutlich neueren GCC liegen. Insgesamt hat Canonical also ein etwas neueres, ein etwas umfangreicheres und ein etwas schnelleres LTS an den Start gebracht. Wenn sich das System in der Praxis jetzt noch als stabil erweist, hat Cononical einen guten Job gemacht.

Bei einem Linux unter VMware im laufenden Betrieb eine Festplatte einbinden

Oft ergibt sich die Notwendigkeit auf einem Server mit Linux im laufenden Betrieb eine neue Festplatte anzuschließen. Z.B. wenn der Server virtuell unter VMware läuft und man diesem eine neue Festplatte zuordnet hat und diese ohne Neustart des Servers einbinden möchte.

Um dies bei einem Server mit Linux zu machen benötigt man als erstes die Nummer des HBA (Host Bus Adapter). Diese findet man am besten über das sysfs raus.  Jeder HBA hat ein Verzeichnis unterhalb des Ordners /sys/class/scsi_host/.  Der HBA mit der Nummer 0 hat somit den Ordner /sys/class/scsi_host/host* usw.. In jedem dieser Ordner existiert eine Datei mit dem Namen proc_name. In dieser befindet sich der name des Treibers des jeweiligen HBA. Mit dem Wissen das der Treiber für den LSI Controller von VMware mptspi heißt, muss man jetzt nur noch den HBA, der einen Treiber mit diesem Namen hat. Um nicht in allen Dateien von Hand nachzusehen, kann man dies am besten den Befehl grep fürs ich erledigen lassen. Mit dem folgten Befehlt erhält man eine Ausgabe aller HBA, die die Buchstabenfolge mpt enthalten.

grep mpt /sys/class/scsi_host/host*/proc_name

Wenn die Ausgabe wie folgt aussieht, hat der HBA die Nummer 32.

/sys/class/scsi_host/host32/proc_name:mptspi

Nachdem man die Nummer des HBA rausgefunden hat, muss man den HBA seine Geräte neu scannen lassen. Mit dem folgenden Befehl bittet man den HBA mit der Nummer 32, seine Geräte im laufenden Betrieb neu zu scannen.

echo "- - -" > /sys/class/scsi_host/host32/scan

Danach sollte man mit dmesg sich die Kernelmeldungen ausgeben lassen. Ganz unten bei der Ausgabe sollte der Fund der neuen Festplatte gemeldet werden. Wenn die letzten Zeilen z.B. wie folgt aussehen, ist die Festplatte als Device /dev/sdb von Linux erkannt worden.

Mar  1 14:52:07 portal kernel: [ 1287.033631] scsi 32:0:1:0: Direct-Access     VMware   Virtual disk     2.0  PQ: 0 ANSI: 6
Mar  1 14:52:07 portal kernel: [ 1287.033641] scsi target32:0:1: Beginning Domain Validation
Mar  1 14:52:07 portal kernel: [ 1287.034017] scsi target32:0:1: Domain Validation skipping write tests
Mar  1 14:52:07 portal kernel: [ 1287.034020] scsi target32:0:1: Ending Domain Validation
Mar  1 14:52:07 portal kernel: [ 1287.034046] scsi target32:0:1: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5 ns, offset 127)
Mar  1 14:52:07 portal kernel: [ 1287.034346] sd 32:0:1:0: [sdb] 104857600 512-byte logical blocks: (53.7 GB/50.0 GiB)
Mar  1 14:52:07 portal kernel: [ 1287.034422] sd 32:0:1:0: [sdb] Write Protect is off
Mar  1 14:52:07 portal kernel: [ 1287.034425] sd 32:0:1:0: [sdb] Mode Sense: 61 00 00 00
Mar  1 14:52:07 portal kernel: [ 1287.034444] sd 32:0:1:0: [sdb] Cache data unavailable
Mar  1 14:52:07 portal kernel: [ 1287.034447] sd 32:0:1:0: [sdb] Assuming drive cache: write through
Mar  1 14:52:07 portal kernel: [ 1287.034908] sd 32:0:1:0: Attached scsi generic sg2 type 0
Mar  1 14:52:07 portal systemd-udevd[1657]: Process '/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'' failed with exit code 2.
Mar  1 14:52:07 portal kernel: [ 1287.042034] sd 32:0:1:0: [sdb] Attached SCSI disk

Wenn die Festplatte als /dev/sdb erkannt wurde, können wir mit dem einrichten einer Partition weiter machen. Dazu muss zunächst eine Partitionstabelle auf der Festplatte angelegt und dann eine Partition erstellt werden. Dies kann man für die Festplatte /dev/sdb aus unserem Beispiel z.B. mit dem folgenden Befehlt erreichen.

cfdisk /dev/sdb

Nach eingäbe dieses Befehlt wird man zunächst gefragt welche Partitionstabelle man anlegen möchte. Ich empfehle die neuere und modere gpt anstelle der älteren dos zu wählen. Danach kann man in einem kleinen Menü eine neue Partition anlegen und speichern. Auf dieser Partition kann man dann mit mkfs ein Dateisystem anlegen und dieses kann man dann mit dem Befehlt mount in das laufende Linux einbinden. Und voilà, die neue Platte steht ohne Neustart zur verfügung.

VMware-Tools oder lieber open-vm-tools verwenden?

Die VMware-Tools sind Programme und Treiber, mit denen die Gastbetriebssysteme in einer virtuellen Maschine unter VMware zusätzliche Funktionalitäten erhalten. Durch diese wird die Arbeit erleichtert und die Leistung verbessert. Seit dem Jahr 2007 hat VMware weite Teile der VMware Tools als Open Source Software unter dem Namen open-vm-tools (Open Virtual Machine Tools) freigegeben.

Bei aktuellen Linux Distributionen sind die open-vm-tool in den Repositorys enthalten und können bequem über das Paket Management installiert werden.  Bei Ubuntu sind die open-vm-tools z.B. seit Version 14.04 mit dabei. Bei Debian ab der Version 7.

Bei der Installation eines Gastbetriebssystems stellt sich somit heute immer die Frage: Soll man die originalen VMware-Tools oder die open-vm-tools der jeweiligen Distribution installieren?

VMware empfiehlt in dem Knowledge Base Artikel 2073803 nach Möglichkeit die bei den Linux-Distributionen mitgelieferten open-vm-tools und nicht die VMware Tools von VMware zu verwenden. Hier heißt es dazu: „VMware recommends using OVT redistributed by operating system vendors.“

Fazit

Wenn man Linux als Betriebssystem bei einer virtuellen Maschine unter VMware verwendet, sollte man wenn möglich immer die open-vm-tools aus den Repositorys der verwendeten Distribution benutzen. Bei Windows und Linux-Distributionen die keine open-vm-tools in ihrem Repository bereitstellen, sollte man die WMware-Tools von VMware installieren.

Einzelnachweise

Installationsanleitungen