Seite 5 von 13

Raspberry Pi Zero W mit Raspbian Lite als Headless Server

Ziel ist es einen Raspberry Pi Zero W (also mit WLAN) ohne Monitor und Tastatur zu installieren.

Zuerst laden wir uns das Betriebssystem ist Rasbian Lite auf unseren PC.

Der Download ist als ZIP-Datei möglich.

Nach dem Entpacken kann man die Datei auf Windows per Win32DiskImager auf eine SD Karte übertragen.

Für Linux gibt es eine Anleitung.

Die ZIP-Datei entpacken und das Image auf eine SD Karte übertragen.

unzip -p 2018-06-27-raspbian-stretch-lite.zip | sudo dd of=/dev/mmcblk0 bs=4M conv=fsync

Nach dem Übertragen müssen wir noch das WLAN und SSH einrichten, damit wir Headless sofort den Raspberry Pi Zero W starten können.

Wir entfernen die SD Karte und stecken die Karte wieder in den PC. Bei vielen Betriebssystem erfolgt das Mounten automatisch.

Auf der SD Karte gibt es zwei Partitionen (boot/root).

Die Boot Partition hat das vfat Format, die Root Partition das ext4 Format.

Die WLAN Einstellungen (SSID, Passwort) werden in der Root Partition hinterlegt.

sudo vim /media/user/rootfs/etc/wpa_supplicant/wpa_supplicant.conf

network={
   ssid="WLAN-SSID"
   psk="WLAN-PASSWORT"
}

Für den automatisch start des SSH Server müssen wir eine leere Datei in der Boot Partition erstellen.

touch /media/user/boot/ssh

Jetzt können wir die SD Karte in den Raspberry Pi Zero W stecken und starten. Monitor und Tastatur ist nicht notwendig.

Jetzt können wir uns per SSH zu dem Paspberry Pi verbinden. Das Kennwort für den Benutzer „pi“ lautet „raspberry“.

ssh pi@192.168.10.123

Mit dem Tool Raspi-Config können wir weitere Einstellungen vornehmen.

sudo raspi-config

Diese Punkte sollten wir ändern.

– Change User Password
– Network Options / Hostname
– Localisation Options / Change Locale
– Localisation Options / Timezone
– Localisation Options / Keyboard Layout
– Localisation Options / Wi-fi Country

Die Pakete sollte man aktualisieren.

sudo apt update
sudo apt dist-upgrade

Die Tools (htop, iotop, iftop und vim) finde ich sehr sinnvoll.

sudo apt install vim htop iotop iftop

Optional kann man diese Installationen entfernen.

sudo apt remove --purge cron logrotate triggerhappy dphys-swapfile fake-hwclock samba-common
sudo apt autoremove --purge

Will man die Lebenszeit der SD Karte verlängern und Fehler bei einem Spannungsverlust vorbeugen, sollte man die Schreibvorgänge auf die Karte unterbinden.

Auf das Swap File sollte wir deshalb verzichten.

sudo systemctl stop dphys-swapfile
sudo systemctl disable dphys-swapfile
sudo rm /var/swap

Die Partitionen können wir auf Read Only (ro) setzen und die Log-Dateien in dem RAM schreiben.

sudo vim /etc/fstab

proc              /proc     proc    defaults              0  0
PARTUUID=xxxx-01  /boot     vfat    ro,defaults           0  2
PARTUUID=xxxx-02  /         ext4    ro,defaults,noatime   0  1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

tmpfs   /var/log  tmpfs  nosuid,nodev,noexec,mode=0755,size=64M   0  0

Das Verzeichnis /tmp wird auch im RAM angelegt. Für Systemd gibt es schon ein Mount, welches wir aktivieren.

sudo ln -s /usr/share/systemd/tmp.mount /etc/systemd/system/
sudo systemctl enable tmp.mount
sudo systemctl start tmp.mount

Einige Dienste schreiben Informationen auf das Dateisystem. Das ermöglichen wir, indem die Ordner auf das Verzeichnis /tmp zeigen.

sudo rm -rf /var/lib/dhcp/ /var/tmp /var/spool /var/lock /var/cache/unbound/resolvconf_resolvers.conf
sudo ln -s /tmp /var/lib/dhcp
sudo ln -s /tmp /var/spool
sudo ln -s /tmp /var/lock
sudo ln -s /tmp /var/tmp
sudo ln -s /tmp/resolv.conf /etc/resolv.conf
sudo ln -s /tmp/resolvconf_resolvers.conf /var/cache/unbound/resolvconf_resolvers.conf

Die automatischen Jobs sollten wir deaktivieren. Dazu entziehen wir Ihnen einfach die Execute Rechte.

sudo chmod -x /etc/{cron.hourly,cron.daily,cron.weekly,cron.monthly}/*

Der Dienst Sshd möchte gerne in Datei /var/log/lastlog schreiben. Diese Datei müssen wir nach einem Neustart in /var/log anlegen.

sudo vim /etc/rc.local

touch /var/log/lastlog /var/spool/rsyslog
chgrp utmp /var/log/lastlog
chmod 664 /var/log/lastlog
bash -c 'mkdir -p /var/log/{apache2,fsch,apt,ConsoleKit,watchdog}'

Das Jounal von Systemd schreibt Daten in /var/log/jounal/. Das müssen wir umstellen auf die Speicherung im RAM Speicher.

sudo vim /etc/systemd/journald.conf

[Journal]
Storage=volatile ## stored only in memory
Compress=yes

Nach dem Neustart ist die SD Karte schreibgeschützt und kann durch einen Stromausfall
nicht mehr beschädigen werden.

sudo reboot

Der Re-Mount als Read-Write ist zur Lautzeit möglich.

sudo mount -o remount,rw /dev/mmcblk0p1 /boot
sudo mount -o remount,rw /dev/root /

VMware ESXi 5.5 mit Embedded Host Client

Ab VMware ESXi 5.5 wird der VMware vShere Client für Windows eingestellt. Als Alternative gibt es einen Web-Oberfläche (HTML5 ohne Flash).

In VMware ESXi 5.5 kann man diesen ESXi Embedded Host Client nachträglich installieren. Aber ESXi 6.5 gehört er mit zum Lieferumfang.

Zuerst laden wir uns den ESXi Embedded Host Client als Datei esxui-offline-bundle-5.x-8122819.zip auf unseren PC und übertragen Ihn mit dem vSphere Client auf den Server.

Per SSH melden wir uns am Server an und verschieben die Datei esxui-offline-bundle-5.x-8122819.zip in das Temp Verzeichnis.

mv /vmfs/volumes/datastore1/esxui-offline-bundle-5.x-8122819.zip /tmp

oder per Download direkt auf den Server.

wget http://download3.vmware.com/software/vmw-tools/esxui/esxui-offline-bundle-5.x-8122819.zip

Jetzt können wir die Installation durchführen.

esxcli software vib install -d /tmp/esxui-offline-bundle-5.x-8122819.zip

Die Seite ist jetzt im Browser zu erreichen unter der Url https://hostname/ui/.

VMware ESXi Client für Linux

Wer noch VMware ESXi 5.x verwendet konnte bisher nur auf den VMware vSphere Client für Windows zurück greifen. Die VMware Remote Console ist eine Alternative für Linux und MacOS.

Ab VMware ESXi 6.0 U3 gibt es den ESXi Embedded Host Client der mit jedem aktuellen Browser (IE, Firefox, Chrome) zusammen arbeitet.

In diesem Beispiel will ich auf ein VMware ESXi 5.1 von Linux zugreifen.

Dafür laden wir die Datei VMware-Remote-Console-10.0.2-7096020.x86_64.bundle für die VMware Remote Console 10.0.2 für Linux herrunter.

Dieser Datei müssen wie Ausführungsrechte geben.

chmod +x VMware-Remote-Console-10.0.2-7096020.x86_64.bundle

Jetzt können wir die Installation starten.

sudo ./VMware-Remote-Console-10.0.2-7096020.x86_64.bundle

Die Verbindung zum VMware Server stellen wir mit VMRC her.

vmrc -h hostname -u root -p passwort123

Kommt es zu dieser Fehlermeldung, so müssen die Einstellungen für SSL verändert werden. ESXi 5.1 unterstützt nur Verbindungen bis TLS 1.0

Verbindung zu mks kann nicht hergestellt werden.
Could not locate vmware-authd executable.

Dazu fügen wir diese Zeite in die Confiuguration von VMware Remote Console ein.

sudo vim /etc/vmware/config

tls.protocols=tls1.0

PowerDNS als Secondary DNS mit SQLite

Wir möchten einen Secondary DNS auf Basis von PowerDNS und SQLite als Backend installieren. Wir verwenden Ubuntu Server 18.04 (bionic) mit PowerDNS 4.1 aus dem Repository.

Installation

Die Installation ist sehr einfach. Die Abhängigkeiten werden automatisch mit installiert.

sudo apt install -y --no-install-recommends pdns-server pdns-backend-sqlite3

Einrichtung

Systemd enthält einen DNS Resolver für die Namensauflösung. Der Dienst läuft auf Port 53, weshalb es zu einem Konflikt kommt. Wir müssten PowerDNS die IP Adresse (10.10.10.2 / fe80::1) des Server mitteilen und nicht auf alle IP Adressen (0.0.0.0) lauschen.

sudo vim /etc/powerdns/pdns.d/pdns.local.conf

local-address=10.10.10.2,fe80::1
local-port=53
version-string=anonymous

master=no
slave=yes

disable-axfr=yes
disable-tcp=no
slave-cycle-interval=60

Nach dieser Änderung sollte der Dienst mit einem DNS Resolver zusammen starten.

Die Datenbank für das Backend muss so konfiguriert werden.

sudo vim /etc/powerdns/pdns.d/pdns.local.gsqlite3.conf

launch=gsqlite3

# Database location
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3
gsqlite3-dnssec=off

Jetzt erstellen wir eine neue Datenbank.

wget -O /tmp/schema.sqlite3.sql https://raw.githubusercontent.com/PowerDNS/pdns/master/modules/gsqlite3backend/schema.sqlite3.sql

sudo sqlite3 /var/lib/powerdns/pdns.sqlite3 < /tmp/schema.sqlite3.sql

Der Import ist auch mit der Command Line Shell so möglich.

sudo sqlite3 /var/lib/powerdns/pdns.sqlite3
.read /tmp/schema.sqlite3.sql
.quit

Die Datenbank braucht die richtigen Rechte auf dem Dateisystem.

sudo chown pdns:pdns /var/lib/powerdns/pdns.sqlite3

In der Tabelle „supermasters“ wird der Hostname (ns2.domain.com) und die IP (10.10.10.1) vom Primary DNS eingetragen.

sudo sqlite3 /var/lib/powerdns/pdns.sqlite3 "insert into supermasters values('10.10.10.1','ns2.domain.com', 'admin');"

Nach einem Neustart vom Dienst sollte alles funktionieren.

sudo systemctl restart systemd-resolved pdns

Fehlersuche

Sollte es nicht auf Anhieb funktionieren, kann man PowerDNS aus als Anwendung starten und sieht auf der Konsole die Fehlermeldungen.

sudo /usr/sbin/pdns_server

Mit dem Tool „dig“ [bind9-dnsutils] kann man die Übertragung der Zone (domain.info) und Erreichbarkeit des Primary (ns1.domain.com) vom Secondary überprüfen.

dig @ns1.domain.com domain.info AXFR

Quellen: Powerdns Backend Sqlite

AVM Fritzbox Paketmitschnitt

Die AVM Fritzbox ermöglicht es den Netzwerkverkehr der IP Pakete zu erfassen und später zu Analysieren.

Zuerst gehen wir mit dem Browser auf die Fritzbox unter http://fritz.box.

Jetzt müssen wir im linken Menü auf „Assistenten“ klicken. Unterhalt von dem Menü „Assistenten“ befindet sich ein Link mit der Aufschrift „Inhalt“. Nach der Auswahl wird einem die Seite „Inhalt“ mit allen Links der Fritzbox angezeigt.

In der linken unteren Ecke befindet sich der Link zum „FRITZ!Box Support“. Diese Seite ist für die Fehleranalyse gedacht.

Wir brauchen auf der Support-Seite den Abschnitt „Paketmitschnitt“. Jetzt kann man einen Mitschnitt an unterschiedlichen Schnittstellen erstellen und später mit dem Tool Wireshark auswerten.

Ubuntu Desktop 18.04 mit xRDP und Sound

In Ubuntu 18.04 ist die xRDP Version 0.9.5 enthalten. Mit dieser Version ist es möglich auch Sound per RDP zu übertragen.

Als Desktop wird bei mir Ubuntu Mate verwendet. Natürlich können Sie auch andere Manager verwenden, aber Wayland ist zur Zeit noch nicht möglich.

Die Installation von XRDP erfolgt mit APT.

sudo apt install xrdp xorgxrdp xrdp-pulseaudio-installer

Für die Wiedergabe des Sound wird Plusaudio verwendet. Leider muss man für XRDP zwei Module selbst compilieren. Dafür brauchen wir die Quellen von Pulseaudio aus dem Archiv.

cd /tmp
apt source pulseaudio
cd pulseaudio-11.1
./configure

Nach erfolgreichem Kompilieren von Pulseaudio, kann man die XRDP Module für Pulseaudio kompilieren und installieren. Das Ubuntu Paket xrdp-pulseaudio-installer enthält die Quellen von
Github.

cd /usr/src/xrdp-pulseaudio-installer/
sudo make PULSE_DIR="/tmp/pulseaudio-11.1"
sudo install -s -m 644 module-xrdp-sink.so /usr/lib/pulse-11.1/modules
sudo install -s -m 644 module-xrdp-source.so /usr/lib/pulse-11.1/modules

Ein wichtiger Hinweis befand sich auf Github. Scheinbar funktioniert die Soundausgabe nur, wenn das Host-System eine reale Soundkarte verbaut hat. Server oder virtuelle Umgebung haben eigentlich keine Soundkarte On-Board. Ohne Soundkarte scheitert aber die Wiedergabe mit Pulseaudio und damit auch die Weiterleitung zum Client per RDP Verbindung.

Weitere Anleitungen:
How to set up audio redirection
Audio Output Virtual Channel-support in XRDP

Eintrag im DNS ansehen

Um die Eintragungen im Nameserver (DNS) anzusehen, gibt es unter Linux und Windows das Tool „nslookup“.

In dem Beispeil verwenden wir den Nameserver dns.quad9.net [9.9.9.9]. Sie können aber auch jeden anderen öffentlichen oder privaten Nameserver verwenden.

nslookup - dns.quad9.net
> set q=ANY
> domain.de
> quit

nslookup -q=ANY domain.de dns.quad9.net

Unter Windows sieht die Eingabe so aus.

nslookup -"set q=all" domain.de dns.quad9.net

Ein anderes Tool ist „dig“. Es gehört aber nicht immer zu jedem Linux dazu und muss ggf. später installiert werden.

dig ANY domain @dns.quad9.net

Microsoft SQL Server 2017 in Docker

In diesem Artikel geht es um den neuen Microsoft SQL Server 2017 Linux für Docker.

Natürlich kann man auch MS SQL 2017 direkt unter Ubuntu installieren. Microsoft stellt dafür die Pakete und Docker Images auf dem Docker HUB bereit.

Als minimale Vorraussetzung wird auf der Festplatten rund 4GB Speicherplatz und 4GB RAM benötigt. Eine laufende Docker Installation setzten wir vorraus.

In den allgemeinen Docker Image von Microsoft sind unterschiedliche SQL Editionen verein. Über einen Docker Parameter wird die jeweilige Edition gesetzt.

SQL Developer edition -> MSSQL_PID=Express
SQL Express edition -> MSSQL_PID=Developer

Mit „docker pull“ starten wir den Download von dem Microsoft SQL Server 2017 vom Docker Hub. Im Anschluss erzeugen wir mit „docker run“ eine laufende SQL Express Instanz am Netzwerkport 1433. Unsere Datenbank soll nicht im Docker Container gespeichert werden, sondern im Verzeichnis /my/data/. Das erleichter spätere Updates vom Container. Das Kennword für den Benutzer „SA“ kann natürlich individuell gestalltet werden.

sudo docker pull microsoft/mssql-server-linux
sudo docker run --name mssql1 -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=KennW@rt1' -e 'MSSQL_PID=Express' -p 1433:1433 -v /my/data:/var/opt/mssql/data -d microsoft/mssql-server-linux:2017-latest
sudo docker ps -a

Damit ist die Installation schon abgeschlossen. Jetzt können wir uns per Kommandozeile auf die Datenbank verbinden.

sudo docker exec -it mssql1 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'KennW@rt1'

Als Beispiel erzeugen wir die Datenbank „TestDB“ mit der Tabelle „Inventory“ und zwei Datensätzen. Per SQL Kommando kann man auch das Kennwort von Benutzer „SA“ ändern.

CREATE DATABASE TestDB
GO
USE TestDB
CREATE TABLE Inventory(ID INT, Name NVARCHAR(50), Quantity INT)
GO
INSERT INTO Inventory VALUES (1, 'banana', 25);
INSERT INTO Inventory VALUES (2, 'orange', 14);
SELECT * FROM Inventory WHERE quantity > 15;
GO
ALTER LOGIN SA WITH PASSWORD='Neues!Kennwort'
GO
QUIT

Microsoft stellt das SQL Server Management Studio Version 17 für Windows als grafisches Tool bereit. Die IDE ist sehr Umfangreich und setzt viele Resourcen vorraus.

Eine alternative IDE stellt HeidiSQL dar.

USB Festplatte in Standby versetzen

Aufgabe ist es die Lebenszeit einer externen Festplatte zu verlängern, indem wir Sie nach einiger Zeit runter fahren.

Dazu brauchen wir das HDParm Tool, mit dem wir die Werte in der Festplatte setzen können. Ist HDParm noch installiert, so machen wir jetzt.

sudo apt install hdparm

Jetzt können wir die Festplatte sofort in Standby setzt.

sudo hdparm -y /dev/sda

Soll die Festplatte automatisch nach 50 Sekunden runter fahren, können wir den Parameterwert -S 10 setzen (10 * 5 Sekunden = 50 Sekunden). Möglich Werte sind von 1 bis 240. Die Einstellung sind nicht statisch und müssen nach einem Neustart wieder gesetzt werden.

sudo hdparm -S 10 /dev/sda

Wir können den Status der Festplatte prüfen.

sudo hdparm -C /dev/sda

Mit einer UDev-Regel können wir die Werte für die USB Festplatte nach dem Anstecken automatisch setzen.

sudo vim /etc/udev/rules.d/50-hdparm.rules

ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/usr/bin/hdparm -B 127 -S 120 /dev/%k"

Der Parameter -B 127 aktiviert das Energiemanagement der Festplatte. Der Parameter -S setzt den Timeout-Wert von 10 Minuten (120*5 Sekunden).

Die UDev-Regeln müssen neu geladen werden.

sudo udevadm control --reload-rules
sudo udevadm trigger

HP iLO Einstellung via VMware Host

Wenn wir die Einstellung von HP iLO (Integrated Lights-Out) von einem VMware Host ändern wollen, brauchen wir zuerst SSH Zugang und die HP ESXi Utilities Offline Bundle für VMware.

Das Offline Bundle enthält unterschiedliche Anwendungen für die Konfiguration der HP iLO oder Raid Kontroller.

hpacucli HP Array Configuration Utility CLI
hpbootcfg HP Boot Configuration Utility
hpssacli HP Smart Storage Administrator CLI
hponcfg HP iLO (Integrated Lights-Out) management controller

Man kann die VIB Packete auf den VMware ESXi Host laden und mit dem Tool esxcli installieren.

esxcli software vib install -f -v /tmp/hponcfg-04-00.10.vib

Haben wir das HPE Custom Image für VMware ESX installiert, sind die HP Tools schon vorhanden und müssen nicht per Hand installiert werden.

Um die Einstellung des HP Integrated Lights-Out Board zu ändern verwenden wir das Programm HPonCFG.

Die iLO Werkeinstellung kann man mit der Option „reset“ zurücksetzen.

/opt/hp/tools/hponcfg --reset

Ein Neustart der iLO wird automatisch durchgeführt. Der Server muss nicht extra neu gestartet werden. Eine Downtime ist nicht notwendig.

Mit dem Programm HPonCFG kann man auch die Netzwerk-Einstellung vom HP iLO in eine XML-Datei exportieren.

/opt/hp/tools/hponcfg -w /tmp/ilo.xml

Die Datei ilo.xml enthält die Netzwerk-Einstellung von der iLO Board.

Man kann auch geziehlt Einstellung der iLO ändern. Dazu braucht man spezielle XML-Dateien. Hier ein Beispiel um das iLO Password zu auf den Wert „NEW-PASSWORD“ zu ändern.


 
  
   
    
   
  
 

Mit dem Programm HPonCFG und Option -f kann man die Einstellung zurück in der iLO speichern.

/opt/hp/tools/hponcfg -f /tmp/reset_admin_password.xml

Weitere Beispiele für die XML Einstellungen bekommt man bei HP Lights-Out XML Scripting Sample als Download.

Weitere Informationen zu dem HP Tools befinden sich in der
Dokumentation.

Copyright © 2025 Weiter.info

Theme von Anders Norén↑ ↑