Swap Datei/Image erstellen

Prüfen, ob eine Swap Partition existiert

swapon --show

Wenn kein Swap Speicher auf deinem System konfiguriert ist, ist die Ausgabe leer.

Swap Speicher als Swap Datei/Image hinzufügen

Die Swap Datei/Image legen mir mit dem Kommando dd an. Es ist nicht empfehlenswert fallocate oder cp zum Erstellen dieser Datei zu verwenden!

Wir erstellen eine 2GB Swap Datei:

dd if=/dev/zero of=/swap.img bs=1MiB count=$((2*1024))

Stelle sicher, dass die Datei geschrieben wurde:

ls -l /swap.img

Dateirechte setzen

Die Swap Datei wird nur vom OS verwendet. Daher sollte die Datei nicht von anderen Benutzer außer dem Root änderbar sein.

chmod 600 /swap.img

Swap Datei aktivieren

mkswap /swap.img

Ausgabe

Der Swap Speicher wurde korrekt angelegt. Jetzt kann man ihn aktivieren:

swapon /swap.img

Nach einem Neustart vergisst Linux die Aktivierung des Swap Speichers.

Dauerhaft Swap Speicher aktivieren

vi /etc/fstab

Folgenden Eintrag ergänzen:

/swap.img none swap defaults 0 0

reboot

Ort der Swap-Datei ermitteln

cat /proc/swaps

Empfohlene Swap Größen unter Linux

RAM im System Empfohlene Swap Größe
2 GB oder weniger 2 mal die Größe vom RAM
2 GB bis 8 GB RAM 1 mal die Größe vom RAM
8 GB bis 64 GB RAM 0,5 mal die Größe vom RAM
64 GB oder mehr in Abhängigkeit von der Workload

Linux Leistungsverbesserungen

Swappiness

Wenn sich Linux in einer Desktop-Umgebung langsam anfühlt, z.B. beim Entpacken von großen Dateien oder wenn man an den laufenden Computer zurück kehrt und es eine Weile dauert, bis sich jede Anwendung wieder schnell verhält.

Die Ursache des Problems hat wenig mit der tatsächlichen Leistung des Rechners zu tun, sondern mit dem Festplatten-Caching.

Wenn zu wenig Arbeitsspeicher zur Verfügung steht, kann der Blockcache mit Anwendungen um den übrigen RAM kämpfen. Und der Blockcache kann zusätzlich mit dem Inode/Dentry Cache konkurrieren.
Auf einem Rechner mit wenig RAM versucht Linux aggressiv den Speicher zu leeren, um den Cache zu vergrößern. Dies geschieht normalerweise, indem nicht verwendete Teile von Anwendungen auf die Festplatte ausgelagert werden. Das ist nicht gut, weil Festplatten langsam sind.

Für Datenbank-Workloads (MySQL, MariaDB, …) ist der Swap-Speicher von der Festplatte ebenfalls weitaus langsamer als der direkte Zugriff auf den RAM.

Optimieren über Swappiness

Linux verfügt über eine Swappiness-Einstellung, die das Gleichgewicht zwischen dem Auslagern von Seiten (Speicherblöcken) aus dem RAM in einen vorkonfigurierten Swap-Bereich auf der Festplatte bestimmt.

Die Einstellung liegt zwischen 0 und 100, wobei niedrigere Werte eine geringere Wahrscheinlichkeit des Austauschs bedeuten. Der Standardwert ist normalerweise 60. Dies kann mit folgendem Kommando überprüft werden:

sysctl vm.swappiness

Auf Datenbankservern wie MySQL/MariaDB etc. ist es empfehlenswert, das Auslagern auf den niedrigsten Wert zu setzen, indem man swappiness auf 1 setzt.
Dazu setzt man die Variable vm.swappiness in der Datei sysctl.conf (normalerweise in /etc/sysctl.conf) auf 1.

vm.swappiness=1

Dies wird normalerweise erst nach einem Neustart wirksam. Man kann den Wert ohne Neustart wie folgt ändern:

sysctl -w vm.swappiness=1

Eine komplette Deaktivierung von swappiness ist nicht empfehlenswert, weil das Risiko von OOM (Out-Of-Memory) steigt. OOM tritt auf, wenn die Anforderung an RAM größer ist als der freie Speicher + Swap.

Cache Pressure

Dateisystem-Caches sind wichtiger als alle anderen Caches, daher wollen wir Linux sagen, dass wir Inode/Dentry Caches vor anderen Caches bevorzugen wollen. Es handelt sich dabei um einen prozentualen Wert.

Standardmäßig ist der Wert auf 100%. Umso geringer der Wert, desto mehr zieht der Kernel es vor, Inode/Dentry-Caches im RAM beizubehalten und nicht auszulagern. Beim Wert 0 wird gar kein Speicher/RAM mehr freigegeben, das kann allerdings zu einem Out-of-Memory Problem werden. Man kann den Wert auch erhöhen. Wenn der Wert über 100 angehoben wird, erhöht es das Zurückfordern von Inode/Dentry-Caches so, dass es einen negativen Einfluss auf die Systemleistung haben kann.

Optimieren des VFS Cache Pressure

Wenn man den Inode/Dentry Cache bevorzugen möchte, setzt man den Wert vfs_cache_pressure in der Datei sysctl.conf auf 50.

vm.vfs_cache_pressure=50

Um den Wert zur Laufzeit ohne Neustart anzupassen, führt man folgendes Kommando aus:

sysctl -w vm.vfs_cache_pressure=50

Speichercaches leeren

Pages/Seiten, die über einen Eintrag auf der Festplatte verfügen, werden im schnelleren RAM vorgehalten. Mit der Hilfe von Dentry/Inode-Caches wird ein Dateisystem im Speicher abgebildet. Siehe vfs.txt.

Page-Cache leeren:

echo 1 > /proc/sys/vm/drop_caches

Inode/Dentry-Caches leeren:

echo 2 > /proc/sys/vm/drop_caches

Page-/Dentry-/Inode-Cache leeren:

echo 3 > /proc/sys/vm/drop_caches

Das top-Tool zeigt diese speziellen Caches nicht gesondert an, aber im htop kann man schön sehen, wie viel gerade belegt ist (die Anzeige beim Speicher, h drücken für die Hilfe).

TFTP Server in Debian/Ubuntu installieren

TFTP = Trival File Transfer Protocol.

Debian bietet 3 verschiedene TFTP Server:

  • atftpd – Advanced TFTP Server
  • tftpd-hpa – H. Peter Anvin’s TFTP Server
  • libnet-tftpd-perl – Perl Erweiterung für Trivial File Transfer Protocol

Meine Empfehlung ist H. Peter Anvin’s TFTP Server.

Installation:

apt install tftpd-hpa

Konfiguration liegt in /etc/default/tftpd-hpa:

vi /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME=”tftp”
TFTP_DIRECTORY=”/srv/tftp”
TFTP_ADDRESS=”0.0.0.0:69″
TFTP_OPTIONS=”-4 –secure -vvv”

-4 bedeutet, nutze nur IPv4 Netzwerkadressen.
-vvv loggt alle TFTP Operationen in syslog

Weitere Informationen im Handbuch oder auf der Konsole via man in.tftpd.

Nach Änderung der Konfiguration:

systemctl restart tftpd-hpa.service

 

 

Installation der VirtualBox Guest Addition / Gasterweiterung für Debian 10 Buster

Die Gasterweiterung von VirtualBox bietet folgende Features:

  • Integration der Maus
  • Gemeinsame Ordner (Shares) zum Austausch von Dateien zwischen Host und Gast (VM)
  • Verbesserte und beschleunigte Grafikleistung
  • Nahtlose Windows-Integration
  • Zeitsynchronisation zwischen Host- und Gastsytem
  • Gemeinsame Zwischenablage zwischen Host und Gast (VM)
  • Automatisierte Anmeldungen
  • Kommunikationskanäle zwischen Host und Gast, mit der die VM gesteuert und verwaltet werden kann

Mehr dazu im Handbuch von VirtualBox: Handbuch

Gasterweiterung einlegen

Um die Gasterweiterung (ISO-Datei) einzulegen (mounten), startet man die virtuelle Maschine. Im Menü der VirtualBox klickt man auf “Geräte -> Gasterweiterung einlegen“.

Auf der Konsole binden wir nun das Laufwerk ein:

mount /media/cdrom0

Bevor man mit der Installation beginnt, werden noch weitere Debian Packages benötigt:

apt install dkms linux-headers-$(uname -r) build-essential

Wir starten die Installation:

sh /media/cdrom0/VBoxLinuxAdditions.run

Anschließend starten wir das System neu, um die Module des Kernels neu zu laden

reboot

Wie sperrt man eine IP Adresse unter Linux mit iptables?

Die folgende Anweisung sperrt die IP Adresse 192.168.2.123:

iptables -A INPUT -s 192.168.2.123 -j DROP

Nach einem Neustart gehen alle Regeln, sofern man diese nicht speichert, verloren.

Die folgende Anweisung sperrt die IP Adresse 192.168.2.123 auf einem bestimmten Port z.B. 21:

iptables -A INPUT -s 192.168.2.123 -p tcp --destination-port 21 -j DROP

IP-Sperren wieder aufheben

Mit folgender Syntax wird die Sperre wieder aufgehoben (-D steht für Delete und löscht die Regel wieder):

iptables -D INPUT -s 192.168.2.123 -j DROP

Auflisten bestehender IP-Sperren

Mit folgenden Kommandos können die aktuellen IP’s aufgelistet werden:

iptables -L -n 
iptables -L -n -v 
iptables -L chainName -n -v 
iptables -L spamIps -n -v

 

Festplatten Informationen unter Linux ermitteln

Auflisten der angeschlossenen Festplatten und deren Partitionierung

fdisk -l

Hersteller, Modell, Seriennummer und weitere Informationen der Festplatte auslesen

IDE / ATA Geräte: “/dev/hd[a-t]”
SCSI / SATA Geräte: “/dev/sd[a-z]”

apt-get install hdparm

hdparm -i /dev/sda 

Hinweise zu defekten Festplatten

Kernelmeldungen können per “dmesg” angezeigt werden. Dort auf Meldungen mit “ata” achten.

dmesg | grep ata

Die Gesundheit der Platte mit den smartmontools (Paket unter Debian) prüfen

apt-get install smartmontools

smartctl -H /dev/sda

Wird das Ergebnis “FAILED!” angezeigt, dann ist etwas mit der Festplatte nicht in Ordnung. Bei “PASSED” ist alles in Ordnung.

VirtualBox Guest Additions unter Debian installieren

  1. als Root einloggen
  2. aktualisiere APT-Datenbank mit
    apt-get update
  3. installiere die letzten Sicherheitspatches mit
    apt-get upgrade
  4. installiere die benötigten Pakete mit
    apt-get install build-essential module-assistant
  5. Bereite das System auf das Erstellen eines Kernel Moduls vor mit
    m-a prepare
  6. Klicke in der Oberfläche von VirtualBox im Menü auf “Geräte->Gasterweiterung einlegen…” und binde die CD ein:
    mount /media/cdrom
  7. Führe folgendes Kommando aus und folge den Anweisungen:
    sh /media/cdrom/VBoxLinuxAdditions.run

SSL/TLS Zertifikate von SMTP, IMAP, POP3 und FTP Diensten überprüfen

Validierung des Zertifikats eines MTA’s (Mail Transfer Agent) / SMTP:

openssl s_client -host <Hostname> -port 25 -starttls smtp

… und auf Gültigkeit:

openssl s_client -host <Hostname> -port 25 -starttls smtp | openssl x509 -noout -dates

Validierung des Zertifikats eines POP3 Servers (Post Office Protocol):

openssl s_client -crlf -host <Hostname> -port 995

… und auf Gültigkeit:

openssl s_client -crlf -host <Hostname> -port 995 | openssl x509 -noout -dates

Validierung des Zertifikats eines IMAP Servers (Internet Message Access Protocol):

openssl s_client -crlf -host <Hostname> -port 993

… und auf Gültigkeit:

openssl s_client -crlf -host <Hostname> -port 993 | openssl x509 -noout -dates

Validierung des Zertifikats eines FTP Servers (File Transfer Protocol):

openssl s_client -connect <Hostname>:21 -starttls ftp

… und auf Gültigkeit:

openssl s_client -connect <Hostname>:21 -starttls ftp| openssl x509 -noout -dates

E-Mail mit Anlage(n) von der Kommandozeile / Linux Bash Shell senden

Mit mutt kannst Du ganz einfach eine E-Mail mit Anlagen unter Linux senden:

apt-get install mutt
echo "Das ist mein Nachrichtentext" | mutt -s "Betreff der E-Mail" -a /tmp/attachment1.txt /tmp/attachment2.txt -- email@domain.de

Hinter dem Parameter -a können beliebig viele Anlagen ergänzt werden.