Linux allgemein

In diesem Kapitel dokumentiere ich Informationen rund um Linux, die eher allgemeiner Natur sind und nichts im speziellen mit Arch Linux zu tun haben.

Warnmeldung "kauditd_printk_skb: .. callbacks suppressed" im Protokoll

Diese Warnmeldung gibt die Anzahl der Unterdrückten Warnmeldungen, die vom Netzwerk kommen, aus.

Das ist ein Mechanismus des Kernels um das System u.a. vor  "Denial-of-Service"-Angriffen zu schützen.

sudo sysctl -a | grep net.core.message_

Es gibt dazu zwei Parameter, die dieses Mechanismus steuern:

net.core.message_burst
net.core.message_cost

Erläuterungen dazu:

Diese Parameter werden verwendet, um die Warnmeldungen einzuschränken, die vom Netzwerkcode in das Kernelprotokoll geschrieben werden.  Sie erzwingen eine Ratenbegrenzung, um einen Denial-of-Service-Angriff unmöglich zu machen.  Ein höherer message_cost -Faktor führt zu weniger Nachrichten, die geschrieben werden.  Message_burst steuert, wann Nachrichten verworfen werden.  Die Standardeinstellungen begrenzen Warnmeldungen auf eine alle fünf Sekunden.

Die aktuellen Werten können wie folgt ermittelt werden:

sudo sysctl -a | grep net.core.message_

Möchte man die Werte ändern geht das mit folgenden Befehlen:

sudo sysctl -w net.core.message_cost=0
sudo sysctl -w net.core.message_burst=0

Achtung: In einer produktiven Umgebung sollte man diese Werte nicht anpassen!!

Private Key und Zertifikat mit openssl erstellen

Für die verschlüsselte Übertragung von Syslog-Nachrichten an einen zentralen Log-Server (Graylog) werden private Schlüssel und Zertifikate benötigt.

Diese können wie folgt erstellt werden:

Privater Schlüssel

openssl genrsa -des3 -out privat.key 4096

Es wird dazu ein Passwort abgefragt, das später beim Erzeugen von Zertifikaten benötigt wird.

Zertifikat

openssl req -x509 -new -nodes -key private.key -sha256 -days 9999 -out zertifikat.pem

 

 

Eigene IP-Adresse(n) ermitteln

Unter Linux kann man mit folgendem Befehl die eigene(n) IP-Adresse(n) ermitteln:

ifconfig

 

Speicherverbrauch auf Datenträgern analysieren

Auf einem Server ohne GUI

Auf Systemen ohne GUI kann man zu Ermittlung der Belegung der Datenträger das Tool Ncdu nutzen. Es wird im Terminal wie folgt ausgeführt:

sudo ncdu

Direkt nach dem Start scannt das Tool ab dem aktuellen Verzeichnis sämtliche Dateien im aktuellen und in den Unterverzeichnissen und stellt das Ergebnis im Terminal dar.

Man kann mit den Cursor-Tasten und der Enter-Taste durch die Verzeichnisse navigieren.

Auf Systemen mit Plasma-Desktop (KDE)

Auf Systemen mit Plasma-Desktop kann das Tool Filelight dazu genutzt werden, Datenträger hinsichtlich Speicherverbrauch zu analysieren.

 

Eigenes Script mittels systemd starten

Es ist relativ einfach ein eigenes Script mit dem systemd beim Systemstart starten zu lassen. Dieses geschieht mit dem bekannten Befehl "sytemctl start".

Zunächst muss eine Service-Datei für den Dienst angelegt werden:

[Unit]
Description=Wireguard Verbindung WG1 aktiv halten

Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
ExecStart=python3 /home/thomas/scripts/python/wg1_active.py
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Mit dieser Service-Datei wird ein von mir geschriebenes Python-Script beim Systemstart gestartet.

Mit dem Script wird eine Wireguard-Verbindung "am Leben" gehalten.

Die Service-Datei darf nicht ausführbar sein.

Ort für die Service-Datei (unter Arch Linux):

/etc/systemd/system

 

 


Quelle: https://secinfinity.net/so-fuhren-sie-ein-linux-programm-beim-start-mit-systemd-aus/

 

SSH-Zugriffe (Port 22) nur aus dem internen Netz zulassen

Ich habe eine VPN-Verbindung zwischen einem externen Server und einem Raspberry Pi in meinem Heimnetz. Dadurch kann man sich vom Server aus per SSH mit dem Raspberry Pi verbinden (natürlich müssen Benutzer und Passwort ebenfalls bekannt sein).

Um dies zu verhindern kann man mit Hilfe der IPTables-Firewall eine Regel auf dem Raspberry Pi erstellen, die diese verhindert.

Erster Schritt: Zugriff vom internen Netz zulassen:

iptables -A INPUT -s 192.168.0.0/16 -p tcp -m tcp --dport 22 -j ACCEPT

Zweiter Schritt: Sämtliche Zugriffe von Außen sperren:

iptables -A INPUT -p tcp -m tcp --dport 22 -j DROP

Diese Befehle ändern die Einstellungen zunächst temporär. Damit dieses permanent aktiv ist muss unter Ach Linux noch folgender Befehl eingeben werden:

iptables-save -f /etc/iptables/iptables.rules

 

 


Quellen: 

  1. https://www.gutefrage.net/frage/wie-kann-ich-meinen-ssh-port-von-aussen-blockieren-mit-iptables
  2. https://wiki.archlinux.org/title/iptables

Kommandozeilen Befehle

Um den geeigneten Befehl für die Kommandozeile zu finden, kann folgende Seite sehr gut helfen:

CMD Generator