linux — 41 Artikel

Samba - Windows-Freigaben unter Linux

Samba macht Linux-Verzeichnisse für Windows-Clients über das SMB-Protokoll zugänglich. Praktisch für Heimnetzwerke oder wenn man Dateien zwischen Linux-Server und Windows-Rechner teilen will. Installation Einfache öffentliche Freigabe Konfiguration. Am Ende eintragen. Passwortgeschützte Freigabe Sam…

NFS-Share zwischen Linux-Servern einrichten

NFS ist der klassische Weg um Verzeichnisse zwischen Linux-Servern zu teilen. Einfacher als Samba und ohne Windows-Abhängigkeiten. Server einrichten Freizugebendes Verzeichnis anlegen. Export konfigurieren. — lesbar und schreibbar. — Schreiboperationen warten auf Disk-Bestätigung, sicherer. — besser…

VPS-Auswahl - worauf man achten sollte

Es gibt Dutzende VPS-Anbieter. Hier was ich nach Jahren Erfahrung für relevant halte. Was wirklich zählt Netzwerk-Performance und -Stabilität ist wichtiger als rohe CPU-Leistung. Ein VPS mit 1 Gbps Uplink und guter Peering-Anbindung ist für die meisten Webprojekte besser als mehr RAM bei einem Anbie…

tmux.conf - die wichtigsten Einstellungen

Die Standard-tmux-Konfiguration ist funktional aber unbequem. Mit einer wird es deutlich angenehmer. Konfigurationsdatei Prefix-Taste ändern Strg+B ist weit weg. Viele wechseln auf Strg+A (wie screen) oder Strg+Space. Mouse-Support Scrollen, Panes mit der Maus auswählen und Größe ändern. Neustart oh…

strace - was ein Prozess wirklich macht

zeigt jeden Systemaufruf den ein Prozess macht. Wenn man nicht versteht warum ein Prozess langsam ist, warum er eine Datei nicht findet, oder warum er auf etwas wartet — gibt die Antwort. Grundlagen Nur interessante Syscalls zeigen Timing — wo wird Zeit verbracht Output von : Wenn oder dominieren: e…

PHP pcntl - Prozesse und Signale in CLI-Scripts

ist PHP's Interface zur Unix-Prozessverwaltung. Für Daemon-Prozesse, parallele Verarbeitung in CLI-Scripts und sauberes Signal-Handling unverzichtbar. Voraussetzung ist nur in CLI verfügbar, nicht in FPM oder Apache-Modulen. Signal-Handling Signale sind Nachrichten an laufende Prozesse. SIGTERM ist …

rkhunter - nach Rootkits und Manipulationen suchen

rkhunter scannt das System nach bekannten Rootkits, verdächtigen Datei-Berechtigungen und manipulierten System-Binaries. Kein aktiver Schutz aber ein nützliches Audit-Tool. Installation Erste Datenbank initialisieren Beim ersten Start muss rkhunter den aktuellen Zustand als Referenz speichern. Das d…

iptables vs nftables

iptables ist seit Jahrzehnten das Standard-Firewall-Tool unter Linux. nftables ist der Nachfolger und seit Debian 10 und Ubuntu 20.04 der Standard. Die Frage ist ob man noch iptables lernen oder gleich auf nftables setzen soll. Aktueller Stand Auf modernen Systemen ist meist nur noch ein Wrapper der…

netstat und ss - Netzwerkverbindungen analysieren

netstat ist auf älteren Systemen der Standard, auf modernen Debian/Ubuntu-Versionen ist der Nachfolger. Beide zeigen offene Ports, aktive Verbindungen und lauschende Dienste. ss — der moderne Weg Alle lauschenden Ports. TCP, nur lauschende, ohne Namensauflösung, zeigt den Prozess. Alle aktiven Verbi…

screen und tmux - persistente Sessions auf dem Server

Wer längere Prozesse auf einem Server startet kennt das Problem: SSH-Verbindung bricht ab, Prozess ist weg. screen und tmux lösen das indem sie Sessions vom Terminal entkoppeln. screen — schnell und überall dabei screen ist auf den meisten Systemen vorinstalliert. Neue Session starten. Oder gleich m…

journalctl - systemd Logs richtig lesen

Wer auf einem modernen Debian oder Ubuntu arbeitet bekommt seine System-Logs über journalctl. Das klassische funktioniert noch aber journalctl kann deutlich mehr. Live-Log verfolgen Wie aber für alle Dienste zusammen. Logs eines bestimmten Dienstes Nur Fehler anzeigen Prioritätsstufen: , , , , , , ,…

LUKS - Partitionen und Datentraeger verschluesseln

LUKS ist der Standard für Festplatten-Verschlüsselung unter Linux. Wichtig für Backupfestplatten, externe Laufwerke oder VPS-Volumes mit sensiblen Daten. Voraussetzung Neues Volume verschlüsseln Erst alle Daten sichern — dieser Schritt löscht alles auf dem Laufwerk. Bestätigen mit (Großbuchstaben) u…

Cronjob-Monitoring - fehlgeschlagene Jobs erkennen

Cronjobs scheitern lautlos. Kein Alert, keine E-Mail, nichts. Die Datenbank wird seit drei Wochen nicht gesichert und niemand weiß es. Das Grundproblem macht keinen Unterschied zwischen erfolgreich und fehlgeschlagen. Der Job läuft, exit code 1, fertig — bis jemand manuell nachschaut. Output per E-M…

Makefile fuer Serveraufgaben

Makefiles sind eigentlich für Build-Prozesse gedacht aber sie eignen sich hervorragend als Sammlung von Shortcuts für wiederkehrende Serveraufgaben. Grundaufbau erklärt dass diese Targets keine Dateien sind sondern immer ausgeführt werden sollen. Aufrufen Variablen Abhängigkeiten zwischen Targets fü…

KVM Snapshots erstellen und wiederherstellen

Wer virtuelle Maschinen mit KVM betreibt sollte vor größeren Änderungen einen Snapshot machen. Geht schnell und erspart im Zweifelsfall eine Menge Arbeit. Voraussetzung: VM im qcow2-Format Snapshots funktionieren nur mit qcow2-Images, nicht mit raw. Das Format einer laufenden VM prüfen. Dann die Dat…

Speicherverbrauch unter Linux aufspueren mit du und ncdu

Irgendwann ist die Festplatte voll und man weiß nicht warum. hilft dabei den Übeltäter zu finden. Schneller Überblick: wo ist der Platz hin Zeigt alle eingehängten Dateisysteme mit ihrer Auslastung. Die größten Verzeichnisse finden Das zeigt die 20 größten Verzeichnisse im Root-Bereich sortiert nach…

PHP Scripts als Cronjob betreiben

PHP-Scripts im Browser aufzurufen und als Cronjob zu betreiben sind zwei verschiedene Paar Schuhe. Im CLI-Modus gibt es kein HTTP, keine Session, keine $_GET-Parameter und andere Timeouts. Einfachster Weg: php-cli direkt aufrufen Absoluter Pfad zu php und zum Script, Ausgabe ins Log umleiten. Im Scr…

Eigene systemd Services erstellen

Wer ein Script oder eine Anwendung dauerhaft laufen lassen will macht das am saubersten als systemd-Service. Automatischer Start beim Booten, automatischer Neustart bei Absturz, Logs über journalctl — das bekommt man alles umsonst. Service-Datei erstellen sorgt dafür dass der Dienst erst startet wen…

Lynis - Security-Audit fuer den eigenen Server

Lynis scannt das eigene System und gibt eine detaillierte Liste mit Sicherheitsproblemen und Verbesserungsvorschlägen aus. Kein Tool das automatisch repariert — aber eines das zeigt wo man hinschauen sollte. Installation Oder die aktuelle Version direkt von der Quelle. Scan starten Läuft einige Minu…

inotifywait - auf Dateiänderungen reagieren

inotifywait wartet auf Änderungen im Dateisystem und reagiert sofort darauf. Praktisch um automatisch etwas auszuführen wenn eine Datei geändert, erstellt oder gelöscht wird. Installation Einfache Verwendung Auf eine einzelne Datei warten. Verzeichnis überwachen läuft dauerhaft statt nach dem ersten…

SSH Key-Authentifizierung einrichten

Wer sich noch mit Passwort per SSH einloggt sollte das ändern. Key-Authentifizierung ist sicherer und auf Dauer auch bequemer. Schlüsselpaar erstellen Das machen wir lokal auf unserem Rechner, nicht auf dem Server. ed25519 ist aktuell die beste Wahl, RSA mit 4096 Bit geht aber auch. Der Befehl fragt…

sudo absichern - sudoers richtig konfigurieren

sudo gibt Benutzern die Möglichkeit Befehle als root auszuführen. Standardmäßig darf ein Benutzer in der sudo-Gruppe alles als root — das ist oft mehr als nötig. sudoers bearbeiten Immer über visudo, niemals direkt die Datei öffnen. visudo prüft die Syntax bevor es speichert und verhindert damit das…

Kernel-Parameter mit sysctl tunen

Der Linux-Kernel hat hunderte einstellbarer Parameter. Für Server gibt es ein paar die sich fast immer lohnen anzupassen. Aktuellen Wert lesen Temporär setzen Gilt bis zum nächsten Neustart. Dauerhaft in /etc/sysctl.conf Sofort anwenden ohne Neustart. Für Datenbank-Server Für stark genutzte Webserve…

rsync - Dateien effizient sichern und synchronisieren

rsync ist eines der nützlichsten Werkzeuge auf einem Linux-System. Es überträgt nur was sich geändert hat, kann verschlüsselt über SSH arbeiten und eignet sich sowohl für lokale Backups als auch für die Synchronisierung zwischen Servern. Einfaches lokales Backup Der Slash am Ende von ist wichtig. Mi…

at und batch - einmalige zeitgesteuerte Jobs

Cron ist für wiederkehrende Jobs. Für einen einzelnen Job der einmal zu einem bestimmten Zeitpunkt laufen soll ist die bessere Wahl. Installation Job einplanen Dann den Befehl eingeben und mit abschließen. Zeitangaben Direkt aus dem Script heraus Alle geplanten Jobs anzeigen Job löschen Die Nummer k…

fail2ban fuer Nginx konfigurieren

fail2ban kennen viele für SSH, es funktioniert aber genauso gut für Nginx. Wer einen Login-Bereich hat der im Internet erreichbar ist sollte Brute-Force-Versuche unterbinden. Voraussetzung: fail2ban ist installiert Filter erstellen Wir erstellen einen Filter der fehlgeschlagene Logins erkennt. Das M…

logwatch - Server-Logs taeglich per Mail

logwatch liest die System-Logs aus und schickt täglich eine Zusammenfassung per Mail. Man bekommt einen Überblick über SSH-Logins, fehlgeschlagene Versuche, Dienst-Neustarts und mehr ohne selbst in die Logs zu schauen. Installation Konfiguration Die wichtigsten Optionen. liefert eine kompakte Zusamm…

Cronjob laeuft nicht - was tun

Cronjobs die lokal funktionieren aber als Cron nicht laufen sind ein klassisches Ärgernis. Meistens liegt es an einem von drei Dingen: Umgebungsvariablen, Pfade oder Berechtigungen. Zuerst: läuft cron überhaupt? Output irgendwo hinschreiben Der häufigste Fehler ist dass man nie sieht was der Cron tu…

chroot - Benutzer auf ein Verzeichnis beschraenken

Mit chroot lässt sich ein Benutzer auf ein bestimmtes Verzeichnis einschränken. Praktisch für SFTP-Zugänge bei denen der Benutzer nur seinen eigenen Bereich sehen soll. SFTP mit chroot über SSH Das geht ohne viel Aufwand direkt über den OpenSSH-Server. Benutzer und Verzeichnis anlegen. Das chroot-Ve…

SSH Tunneling und Port-Forwarding

SSH kann mehr als nur eine Remote-Shell öffnen. Mit Tunneling lassen sich Ports weiterleiten und Dienste erreichbar machen die eigentlich nicht öffentlich sind. Lokaler Tunnel — Remote-Port lokal verfügbar machen Ein Dienst läuft auf dem Server auf Port 8080 aber ist von außen nicht erreichbar. Mit …

SSH ProxyJump - durch Bastion-Hosts verbinden

Viele Infrastrukturen haben einen öffentlich erreichbaren Bastion-Host hinter dem die eigentlichen Server nur intern erreichbar sind. Mit ProxyJump springt man in einem Schritt durch. Einmaliger Befehl SSH verbindet zuerst zum Bastion-Host und tunnelt die Verbindung von dort zum Zielserver weiter. M…

Automatische Security-Updates mit unattended-upgrades

Sicherheitsupdates manuell einspielen vergisst man. unattended-upgrades macht das automatisch und beschränkt sich dabei auf Security-Patches, fässt aber keine großen Versionssprünge an. Installation Konfiguration Die wichtigsten Zeilen. Alles andere kann so bleiben wie es ist. ist wichtig. Kernel-Up…

Linux Benutzer und Gruppen verwalten

Benutzer und Gruppen richtig zu verwalten ist Grundlage für ein ordentlich gesichertes System. Hier die Befehle die man regelmäßig braucht. Benutzer anlegen erstellt das Home-Verzeichnis, setzt die Shell. Für Dienst-Benutzer ohne Login-Shell. markiert ihn als System-Benutzer ohne Home-Verzeichnis. B…

swap auf einem VPS einrichten

Viele günstige VPS-Anbieter liefern ihre Server ohne swap aus. Bei wenig RAM kann das dazu führen dass Prozesse einfach gekillt werden sobald der Speicher knapp wird. Ein bisschen swap als Puffer schadet nicht. Zuerst prüfen wir ob schon swap aktiv ist. Wenn nichts zurückkommt richten wir es ein. Fü…

Linux Netzwerk-Grundlagen - ip, route und Co

Das alte und sind auf modernen Systemen durch ersetzt. Hier die Befehle die man regelmäßig braucht. Interfaces anzeigen IP-Adresse setzen (temporär) Interface hoch/runter Routing-Tabelle Standard-Gateway anzeigen. Route hinzufügen. Standard-Gateway setzen. Verbindungen prüfen kombiniert ping und tra…

ulimit - Prozesslimits verstehen und setzen

Unter Linux hat jeder Prozess Limits für offene Dateien, Threads, Speicher und mehr. Diese Limits sind oft der Grund warum Dienste unter Last seltsam verhalten. Aktuelle Limits anzeigen Zeigt alle Limits des aktuellen Benutzers. Besonders relevant sind und . Das häufigste Problem: zu wenige offene D…

UFW Grundkonfiguration auf Debian und Ubuntu

UFW ist das Frontend für iptables das bei Debian und Ubuntu mitgeliefert wird. Die Bedienung ist deutlich einfacher als direkt mit iptables zu arbeiten und für die meisten Anwendungsfälle völlig ausreichend. Zuerst prüfen wir ob UFW überhaupt installiert ist. Falls nicht, installieren wir es schnell…

proc - was das Pseudo-Dateisystem verraet

ist kein echtes Dateisystem. Es liegt nicht auf Disk. Der Kernel stellt es als Interface bereit — jede Datei darin ist eine Live-Ansicht in den Systemzustand. Prozess-Informationen Jeder laufende Prozess hat ein Verzeichnis unter . System-weite Infos Netzwerk-Statistiken Kernel-Parameter live lesen …

logrotate konfigurieren

Log-Dateien wachsen ohne Ende wenn man nichts dagegen tut. logrotate ist auf jedem Debian und Ubuntu dabei und kümmert sich automatisch darum. Wie es funktioniert logrotate läuft täglich als Cronjob und prüft die Konfigurationsdateien unter . Für jeden Dienst gibt es dort eine eigene Datei. Eigene L…

systemd Timer - der modernere Cronjob

systemd Timer sind der Nachfolger von Cron auf modernen Linux-Systemen. Besser ins Logging integriert, abhängigkeitsfähig und einfacher zu debuggen. Aufbau: zwei Dateien Für jeden Timer braucht man eine - und eine -Datei. holt verpasste Ausführungen nach wenn der Server während des geplanten Zeitpun…

SSH Login mit wenigen Handgriffen absichern

In wenigen Schritten lässt sich SSH gegen die meißten Angriffe absichern. Hier mal eine kleine Auflistung der grundlegenden Dingen die man einfach umsetzen kann und die demnoch wirkungsvoll sind. Loginversuche mitloggen und ggf. IP sperren (Bruteforce) Sofern noch nicht vorhanden installieren wir Fa…