Tipp: Regular Expressions mit sed 2
In diesem letzten Teil der Serie lernen wir weitere
Funktionen von sed kennen.
Als Beispiel dient uns dieses Mal eine Konfigurationsdatei des
DHCP-Servers. Sie ist unter dem Namen dhcpd.conf gespeichert und
enthält die eine oder andere Unstimmigkeit.
option domain-name-servers 172.16.1.1;
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.1.1.10 172.1.1.254;
option broadcast-address 172.1.1.255;
option routers 172.16.1.1;
option time-servers 172.16.1.1;
option lease-time 86400;
}
Im Artikel lassen wir sed den geänderten Dateiinhalt ausgeben, gehen
aber davon aus, dass die Änderungen ebenfalls in die Datei geschrieben
werden und damit beim nächsten Aufruf vorhanden sind. Dieses Verhalten
erreichen wir mit der Kommandozeilenoption -i, die wir
bereits im ersten Teil der Serie kennengelernt haben.
Tipp: Sicherer Serverzugriff mit OpenSSH
Bereits vor Aufkommen des Internets war es für Administratoren wichtig, über das Netzwerk – also ohne Zugriff auf eine direkt angeschlossene Tastatur – Server und Rechner zu warten. Die ersten hierfür entwickelten Protokolle waren ‘Telnet’ und ‘rsh’ (Remote Shell), die die Daten (inklusive Login-Daten) unverschlüsselt und damit – nach heutigen Maßstäben – unsicher übertragen.
Der Wunsch nach Sicherheit brachte die Entwickler dazu, ein Protokoll zu entwickeln, das sämtliche Daten inklusive Anmeldung verschlüsselt überträgt.
Tipp: SSL Verschlüsselung von Webseiten prüfen
Den folgenden Dialog hat jeder schon in seinem Browser gesehen:
Diese Warnung erscheint immer wenn der Administrator einer Website auf dem über SSL abgesicherten Server kein durch ein Trustcenter beglaubigtes Zertifikat hinterlegt hat oder dieses aus einem anderen Grund nicht gültig ist.
Über das ‘Zertifikat’ (‘Certificate’ oder kurz ‘Cert’) prüft der Webbrowser, ob der Schlüssel des Servers unverändert und der Servername korrekt ist.
Tipp: SSL-Zertifikate im Webserver
Mit den letzten Artikeln dieser Reihe haben wir
mit openssl Zertifikate erzeugt und überprüft. In diesem
Artikel konfigurieren wir unsere Webserver, um mit den
Zertifikaten unsere Webseiten abzusichern.
Die im Artikel angesprochenen Cipher zur Verschlüsselung der Webseiten sind keine sicheren Cipher, sie dienen nur dazu die Positionen zu zeigen an denen Cipher eingefügt werden sollten. Es macht keinen Sinn innerhalb einer Dokumentation sichere Cipher vorzugeben. Daher möchten wir hier auf das BetterCrypto.org
Tipp: SSL-Zertifikate mit OpenSSL erzeugen
Mit dem letzen Artikel dieser Reihe haben wir das Thema OpenSSL begonnen und uns Möglichkeiten angesehen, bestehende Zertifikate von Webseiten auf der Konsole zu überprüfen.
Um Webseiten mit einer SSL-Verschlüsselung versehen zu können, muss hierfür neben dem Schlüssel des Servers (‘Key’) ein Zertifikat (‘Cert’) erzeugt werden, das die Validität des Schlüssels bestätigt.
Selbstsigniertes Zertifikat
Die einfachste Art, ein solches Zertifikat zu erzeugen, ist,
openssl die ganze Arbeit in einem Schritt erledigen zu
lassen. Der folgende Aufruf erzeugt den Schlüssel und das
Zertifikat in einem Arbeitsschritt. Der Schlüssel ist
2048 Bit lang, und das Zertifikat hat eine Gültigkeit von 365 Tagen.
Tipp: Stream EDitor - sed
Die Manual Page (man 1 sed) bezeichnet den sed als ‘Stream-EDitor zum Filtern und
Transformieren von Text’, womit das Einsatzgebiet genau beschrieben ist.
Einfaches Ersetzen von Text
Bevor wir einen Text bearbeiten, legen wir ihn als Datei an,
um daran unsere Filter- und Transformationsoperationen auszuführen. Damit er nicht zu lang wird und wir
die Ergebnisse der Ausgaben nicht immer kürzen müssen, benutzen wir den
folgenden Inhalt für die Datei /tmp/datei.txt
Tipp: Suchen mit find
Das Zentrale Tool für die Suche nach Dateien auf einem Linux System ist der Befehl find.
Viele Anwender haben im ersten Moment Probleme mit find, da er sich nicht wie z. B. der
Befehl locate direkt mit dem dem gesuchten Dateinamen aufrufen lässt.
Aber fangen wir vorne an. Der einfachste Aufruf ist der Befehl ohne Parameter.
tux@linux ~ $ find
.
./Videos
./Dokumente
./.xinitrc
./.bash_logout
./Downloads
./.bash_profile
./.xsession
./Bilder
./Bilder/Camping
./Bilder/Camping/GISL9002.CR2
./Bilder/GISL9000.CR2
./Bilder/GISL9001.CR2
./Desktop
./.bashrc
./.zshrc
In diesem Fall listet find alle Dateien des lokalen Verzeichnisses (.) inklusive der
versteckten Dateien. Da es für versteckte Dateien in Linux Dateisystemen keine Attribute
gibt, wurde festgelegt, dass alle Dateien deren erstes Zeichen ein . ist von Befehlen wie
ls nicht angezeigt und damit versteckt werden.
Tipp: System neustarten ohne init und systemd
Nach einem Ausfall der Festplatte auf einem Server kann es vorkommen, dass die normalen Wege einen Neustart durchzuführen nicht mehr funktionieren.
# reboot
bash: /sbin/reboot: Input/output error
# shutdown -r now
bash: /sbin/shutdown: Input/output error
# telinit 6
bash: /sbin/telinit: Input/output error
Das Problem mit der Festplatte verhindert das Laden der Befehle und macht sie somit unnutzbar.
Wennn nun kein physikalischer Zugriff oder eine Netzkonsole zur Administration des Servers zur Verfügung steht ist meist ein eine Fahrt zum Server oder die Nutzung des Services vor Ort nicht zu umgehen.
LPI and Homeautomation Webinar
Das Webinar wird ein praktischer Schulungskurs sein, auf den sich die Teilnehmer vorbereiten können. Wer teilnehmen möchte, kann sich vor dem Webinar ein kurzes Tutorial und Links zu Hardware herunterladen, die man für den Einstieg in die eigene Homeautomation benötigt. Während des Webinars wird dann praktisch vermittelt, wie man das System einrichtet und benutzt.
Themenabend GRUB2
Für dem Themenabend am 25.05.2020 wurde das Thema GRUB2 (GRand Unified Bootloader) vorgeschlagen. Hintergrund war das Problem, dass nicht ganz klar war an welchen Schrauben man drehen kann um die Boot-Konfiguration manuell anzupassen. Dazu haben wir und die folgenden Bereiche angeschaut:

- Bootvorgang
- Nutzung der GRUB2 Console
- Editieren eines Eintrags während des Bootvorgangs
- Konfigurationsdateien (
/boot/grub/grub.cfgund/etc/default/grub) - Scripte für die Erstellung der Konfiguration (
/etc/grub.d/) - Tools für die Installation der Konfiguration (
grub-mkconfig) und des Bootloaders (grub-install) - Unterschiede zwischen BIOS und UEFI - Boot.
Darüber hinaus war ein wichtiges Thema die Absicherung des Bootvorgangs durch Setzen eines Kennworts. Dafür haben wir uns die Anleitung für Ubuntu angeschaut (https://help.ubuntu.com/community/Grub2/Passwords).