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 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…
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…
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…
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…
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 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 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 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…
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…
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 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…
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…
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ü…
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…
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 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…
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 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 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…
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 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…
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 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…
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 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 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…
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…
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 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 …
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…
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…
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…
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ü…
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…
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 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…
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 …
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 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…
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…