Linux CLI wie sucht man nach Dateien?

Wie man unter Linux Dateien findet

Linux bietet eine Vielzahl von Werkzeugen und Befehlen, um Dateien auf Ihrem System zu finden. In diesem Artikel werden wir uns mit einigen der wichtigsten Methoden befassen, um Ihnen dabei zu helfen, die gewünschten Dateien effizient zu lokalisieren.

1. Der ‚find‚ Befehl

Der ‚find‘ Befehl ist vielleicht der bekannteste und am häufigsten verwendete Befehl zum Suchen nach Dateien unter Linux. Er ermöglicht es Ihnen, Dateien basierend auf verschiedenen Kriterien wie Namen, Typ, Größe, Änderungsdatum und vielen anderen zu suchen.

Grundlegende Syntax

find [Pfad] [Optionen] [Ausdruck]

–> Pfad : Der Ort, an dem die Suche beginnen soll. Wenn kein Pfad angegeben ist, beginnt die Suche im aktuellen Verzeichnis.
–> Optionen : Steuern das Verhalten des `find` Befehls.
–> Ausdruck : Bestimmt die Kriterien für die Dateisuche.

Hier ein paar Beispiele:

–> Suche nach einer Datei namens `example.txt` im aktuellen Verzeichnis und allen Unterverzeichnissen:

find . -name "example.txt"

–> Suche nach Dateien, die mit `.txt` enden, im aktuellen Verzeichnis:

find . -type f -name "*.txt"

–> Suche nach Dateien, die in den letzten 24 Stunden geändert wurden:

find . -type f -mtime 0

2. Der ‚locate‚ Befehl

Der `locate` Befehl ist eine schnelle Möglichkeit, Dateien zu finden, indem er eine Datenbank von Dateipfaden durchsucht. Es ist jedoch wichtig zu beachten, dass die Datenbank regelmäßig aktualisiert werden muss, um aktuelle Änderungen widerzuspiegeln.

Grundlegende Syntax

locate [Optionen] [Muster]

Hier zwei Beispiele:

–> Suche nach Dateien, die `example` im Namen haben:

locate example

–> Suche nach Dateien, die mit `.txt` enden:

locate "*.txt"

3. Der `grep` Befehl

Obwohl `grep` hauptsächlich zum Durchsuchen von Dateien nach Textmuster verwendet wird, kann es auch nützlich sein, um Dateien zu finden, die bestimmte Textinhalte enthalten.

Grundlegende Syntax

grep [Optionen] [Muster] [Datei]

Hier zwei Beispiele:

–> Suche nach Dateien, die das Wort `example` enthalten:

grep -rl "example" .

–> Suche nach Dateien, die mit `.txt` enden und das Wort `example` enthalten:

grep -rl "example" --include="*.txt" .

Zusammenfassung

Linux bietet eine Vielzahl von Werkzeugen und Befehlen zum Suchen nach Dateien. Der `find` Befehl ist besonders nützlich für komplexe Suchanfragen, während `locate` und `grep` schnelle und einfache Methoden bieten, um Dateien zu finden. Durch das Verständnis und die Anwendung dieser Befehle können Sie effizient durch Ihr Dateisystem navigieren und die gewünschten Informationen schnell finden.

Docker, eine Übersicht

Docker ist eine Open-Source-Plattform, die es Entwicklern ermöglicht, Anwendungen in isolierten Containern bereitzustellen. Container sind leichte, portierbare und selbstständige Umgebungen, die alle erforderlichen Abhängigkeiten enthalten, um eine Anwendung auszuführen.

Mit Docker können Entwickler Anwendungen schneller entwickeln, testen und bereitstellen, da Container ihre Umgebungen konsistent und reproduzierbar machen. Dies bedeutet, dass die Anwendung in einer beliebigen Umgebung mit Docker-Unterstützung ausgeführt werden kann, ohne dass Anpassungen oder Konfigurationen erforderlich sind.

Ein Container ist eine standardisierte Einheit, die Code, Laufzeit, Systemwerkzeuge und Bibliotheken enthält. Docker verwendet das Konzept von Images, um Container zu erstellen. Ein Image ist eine schreibgeschützte Vorlage, die als Basis für die Erstellung von Containern dient. Image-Dateien sind leichtgewichtig und können versionskontrolliert, geteilt und über das Docker Hub-Repository verteilt werden.

Docker bietet auch eine Vielzahl von Tools und Diensten, um die Verwaltung und Orchestrierung von Containern zu vereinfachen. Docker Swarm ermöglicht die Verwaltung eines Clusters von Docker-Containern und ermöglicht die Skalierung und Verteilung von Anwendungen über verschiedene Hosts hinweg. Kubernetes, ein weiteres populäres Orchestrierungstool, kann auch mit Docker verwendet werden, um komplexere Anwendungen über eine Clusterumgebung hinweg zu verwalten.

Ein weiterer Vorteil von Docker ist die Ressourcenisolierung. Jeder Container hat seine eigene isolierte Umgebung, sodass Anwendungen sicher und effizient auf derselben Hardware ausgeführt werden können, ohne dass sie sich gegenseitig beeinflussen.

Insgesamt revolutioniert Docker die Art und Weise, wie Anwendungen entwickelt und bereitgestellt werden. Es bietet eine konsistente und vorhersehbare Umgebung für Entwickler, um ihre Anwendungen zu erstellen, unabhängig von der zugrunde liegenden Infrastruktur. Dank Docker können Entwickler schneller iterieren, Probleme schneller beheben und Anwendungen reibungsloser bereitstellen.

 

Die Containerisierung mit Docker basiert auf dem Konzept von Containern, die in isolierten Umgebungen ausgeführt werden. Hier ist eine Erklärung, wie Docker dies ermöglicht:

  1. Docker Images: Container werden mithilfe von Docker Images erstellt. Ein Image ist eine schreibgeschützte Vorlage, die alle erforderlichen Anwendungsdateien, Bibliotheken und Abhängigkeiten enthält, um eine Anwendung in einem Container auszuführen. Docker Images werden mithilfe von Dockerfiles erstellt, die alle Anweisungen enthalten, um das Image zu erstellen. Diese Dateien beschreiben Schritt für Schritt, wie das Image gebaut werden soll.

  2. Docker Container: Ein Container ist eine Instanz eines Images, die isoliert von anderen Containern auf einem Hostsystem läuft. Ein Container enthält die Anwendungsdateien sowie alle Abhängigkeiten und den erforderlichen Laufzeit-Bereich. Container sind leichtgewichtig und haben eine schnelle Startzeit, da sie das Betriebssystem des Hosts gemeinsam nutzen und nur die Anwendungsschicht virtualisieren.

  3. Docker Engine: Die Docker Engine ist die Laufzeitumgebung für Docker-Container. Sie verwaltet die Container auf einem Hostsystem und ermöglicht das Erstellen, Ausführen und Verwalten von Containern. Die Docker Engine enthält den Docker Daemon, der im Hintergrund läuft und Container erstellt und verwaltet, sowie die Docker CLI, die ein Befehlszeilentool ist.

 

OpenVPN

OpenVPN ist ein weit verbreiteter VPN-Protokollstandard, der sowohl für Site-to-Site-VPN-Verbindungen als auch für Remote Access VPNs verwendet wird. Sie können sich OpenVPN als eine Software-Technologie vorstellen, die sichere Verbindungsmöglichkeiten für den Zugriff auf ein internes, meist privates Netzwerk in einer unsicheren Umgebung wie dem Internet ermöglicht.
OpenVPN wurde erstmals vom Programmierer James Yonan im Jahr 2001 veröffentlicht. Es ist ein Open-Source-Projekt, das bedeutet, dass der Quellcode öffentlich zugänglich ist und von der Gemeinschaft geprüft und verbessert werden kann. Das erhöht die Transparenz und Sicherheit dieser Software.

OpenVPN verwendet das SSL/TLS-Protokoll, um eine verschlüsselte Verbindung zwischen dem Clienten und dem Server herzustellen. Die Daten, die durch den Tunnel fließen, sind so verschlüsselt, dass sie nur von dem Gerät, das den richtigen Schlüssel hat, entschlüsselt werden können. OpenVPN kann auf jedem Port betrieben werden, was es schwer macht, es zu blockieren.

Sicherheit und Anonymität: Da OpenVPN eine starke Verschlüsselung und eine Vielzahl von Sicherheitsprotokollen bietet, ist es sehr sicher. Es verhindert aktiv viele bekannten Angriffe auf die Sicherheit und Privatsphäre der Nutzer. OpenVPN kann auch verwendet werden, um Ihre IP-Adresse zu verschleiern, was Ihre Online-Identität schützt und Ihnen mehr Anonymität im Netz bietet.

OpenVPN ist kompatibel mit den meisten Betriebssystemen, einschließlich Windows, macOS, Linux und verschiedenen mobilen Betriebssystemen. Damit ist es eine ausgezeichnete Wahl für Benutzer mit unterschiedlichen Betriebssystemanforderungen und -präferenzen.

Einer der großen Vorteile von OpenVPN ist seine hohe Konfigurierbarkeit. Es kann für fast jede Art von VPN-Szenario eingerichtet werden, vom einfachen Heimgebrauch bis hin zu großen Unternehmensnetzwerken.

Zusammenfassend kann man sagen, dass OpenVPN eine flexible und leistungsstarke Lösung für sichere Internetverbindungen darstellt. Es ist eine weit verbreitete und respektierte Option für Benutzer, die hohe Sicherheitsstandards und benutzerdefinierte Netzwerkkonfigurationen anstreben.

OpenVPN funktioniert durch die Einrichtung von sicheren „Tunneln“ für Ihre Internetverbindung. Hier ist eine einfache Darstellung, wie OpenVPN funktioniert:

Authentifizierung: OpenVPN erfordert eine Authentifizierung, um sicherzustellen, dass nur berechtigte Benutzer Zugang zum Netzwerk haben. Dies kann durch Benutzernamen und Passwörter, vorinstallierte Schlüssel oder Zertifikate erfolgen.

Verschlüsselung: Nach der erfolgreichen Authentifizierung werden alle zwischen Ihrem Gerät und dem VPN-Server übertragenen Daten verschlüsselt.

 

Hier die Vorteile vom Netzwerkbefehl – ss –

Wenn es um Netzwerkanalyse und Fehlersuche in Linux geht, sind zwei der am häufigsten verwendeten Befehle ss und netstat. Mit beiden Befehlen können Sie Informationen über Netzwerkverbindungen und Sockets anzeigen, aber sie unterscheiden sich in Bezug auf ihre Funktionen, Geschwindigkeit und Effizienz.
In diesem Artikel vergleichen wir die Befehle ss und netstat in Bezug auf ihre Funktionen, ihre Leistung und ihre allgemeine Nützlichkeit. Wir werden auch einige der Hauptunterschiede zwischen diesen beiden Befehlen untersuchen und Tipps geben, wann jeder der beiden Befehle verwendet werden sollte.

Geschwindigkeit und Wirksamkeit:
Einer der Hauptunterschiede zwischen ss und netstat ist ihre Geschwindigkeit und Effizienz. Der Befehl ss ist schneller und liefert detailliertere Informationen über Netzwerk-Sockets, was ihn zur bevorzugten Wahl für die Netzwerkanalyse und Fehlersuche macht.
ein Beispiel:

time ss -antp

time netstat -antp

Darstellung und Ausgabe:
Die Ausgabe der Befehle ss und netstat unterscheidet sich auch in Bezug auf ihr Format und ihren Detaillierungsgrad. Der ss-Befehl liefert eine übersichtliche und präzise Ausgabe, während der netstat-Befehl detailliertere Informationen liefert, allerdings in einem weniger übersichtlichen Format.
Vergleichen Sie mal die beiden Befehle, wenn Sie diese in der CLI anwenden.
Beispiel:

ss -antp

netstat -antp

Die Optionen:
Der Befehl ss bietet im Vergleich zu netstat auch eine größere Auswahl an Optionen, mit denen Sie die angezeigten Informationen filtern und anpassen können.
Einige der häufig verwendeten Optionen sind:

-a: Zeigt alle Sockets an
-n: Zeigt IP-Adressen und Portnummern in numerischer Form an
-t: Zeigt nur TCP-Sockets
-p: Zeigt die Prozess-ID und den Namen des Programms an, das mit jedem Socket verbunden ist
-u: Zeigt nur UDP-Sockets

Um die Ausgabe des Befehls ss mit den oben genannten Optionen zu filtern, können Sie das folgende Beispiel im Terminal verwenden:

ss -anpt

ss -tulpn

Kompatibilität:
netstat gibt es schon seit langem und ist auf vielen verschiedenen Systemen verfügbar.
Der Befehl ss hingegen ist relativ neu und steht auf älteren Systemen möglicherweise nicht zur Verfügung.

Zusammenfassung:
Sowohl der Befehl ss als auch der Befehl netstat haben ihre eigenen Stärken und Schwächen. ss ist schneller und liefert detailliertere Informationen, weshalb es die bevorzugte Wahl für die Netzwerkanalyse und Fehlerbehebung unter Linux ist. Netstat ist jedoch weiter verbreitet und bietet eine umfassendere Ausgabe.
Zusammenfassend lässt sich sagen, dass sowohl ss als auch netstat wertvolle Werkzeuge für die Netzwerkanalyse und Fehlersuche sind. Es ist wichtig, die Hauptunterschiede zwischen diesen beiden Befehlen zu verstehen und den richtigen Befehl für die jeweilige Aufgabe auszuwählen. Auf diese Weise können Sie die Nützlichkeit beider Befehle maximieren und den größten Nutzen aus Ihrer Netzwerkanalyse und Fehlersuche ziehen.

Vorgehensweise upgrade Debian 11 Bullseye auf Debian 12 Bookworm

Die neueste Veröffentlichung von Debian 12.1 ist jetzt schon etwas länger verfügbar und bietet viele neue Optionen für Server und Endbenutzer.
Wenn man über Debian spricht, sind Stabilität und Vielfalt einige der Dinge, die einem in den Sinn kommen.
Wenn Sie bereits Debian 11 „Bullseye“ verwenden, ist es möglich, direkt vom Terminal aus auf Debian 12 „Bookworm“ zu aktualisieren.
Hier ist eine Anleitung wie Sie vorgehen können.

Upgrade von Debian 11 auf Debian 12 via CLI (Command Line Interface)

1. Vorhandene Pakete aktualisieren
Wenn Sie Debian schon eine Weile benutzen, kennen Sie vielleicht schon die Befehle update/upgrade. Hier können Sie die beiden Befehle zusammen in einer einzigen Anweisung übergeben, um Softwarepakete einfach zu aktualisieren:

sudo apt update && sudo apt upgrade -y

Sobald die Aktualisierungen abgeschlossen sind, entfernen Sie nicht benötigte Pakete, bevor Sie auf Debian 12.1 aktualisieren:

sudo apt --purge autoremove

2. Die Datei sources.list bearbeiten
Nachdem die installierten Pakete aktualisiert und aufgerüstet wurden, müssen Sie die Datei sources.list bearbeiten, um die Details der Paketquellen zu aktualisieren.
Mit dem folgenden Befehl wird die sources.list auf Bookworm aktualisiert, damit Debian die neusten Pakete herunterlädt.

sudo sed -i'.bak' 's/bullseye/bookworm/g' /etc/apt/sources.list

3. Installierte Pakete auf Debian aktualisieren
Da Sie nun die Quellen umgestellt haben, die auf die neuen Debian 12 Repositories zeigen, können Sie jetzt Ihre Pakete aktualisieren.
Sie können dies mit dem Befehl apt update tun:

sudo apt update

Sobald das System aktualisiert ist, können Sie Ihre vorhandenen Pakete aktualisieren, ohne neue Pakete zum Upgrade-Prozess hinzuzufügen:

sudo apt upgrade --without-new-pkgs -y

Folgen Sie während des Aktualisierungsvorgangs den Anweisungen und bestätigen Sie bei Bedarf die Eingaben.

4. Ausführen eines vollständigen System-Upgrades
Nachdem alle Aktualisierungen sauber durgelaufen sind, ist es Zeit für das komplette Upgrade auf Debian 12 „Bookworm“.
Führen Sie den folgenden Befehl aus, um Ihr System auf die neueste Debian-Version zu aktualisieren:

sudo apt full-upgrade -y

Der Upgrade-Prozess dauert ein wenig, bis das System aktualisiert ist.

5. Neu starten in Debian 12
Sobald der upgrade Prozess abgeschlossen ist, starten Sie Ihr System mit dem Befehl reboot neu:

sudo reboot

Während das System neu startet, werden Sie das neue Bild von Debian 12 sehen.
Überprüfen Sie das Upgrade, indem Sie die Versionsnummer des Betriebssystems mit den Befehlen lsb_release und cat aufrufen:

lsb_release -a

oder

cat /etc/debian_version

Ein Hinweis zum Non-Free-Firmware Repositorie:
Wenn Sie beabsichtigen, Debian 12 entweder auf einem Desktop oder einem Server zu verwenden, der unfreie Firmware für Hardware wie WiFi, GPU, Sound, Nvida/AMD GPU, NIC usw. benötigt, wird empfohlen, das unfreie Firmware-Repository einzubinden.
Wenn Sie sich über Ihre Hardware unsicher sind, ist die Empfehlung, das Repositorie hinzuzufügen.

Mit dem Editor ihrer Wahl können Sie die folgende Datei erweitern:

vim /etc/apt/sources.list

Hier sollte an das Ende jeder Zeile – non-free-firmware – hinzugefügt werden.

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware

Das ZFS Dateisystem

ZFS ist heute ein quelloffenes 128-Bit Dateisystem, was kommerziellen Dateisystemen, bei richtiger Hardwarebasis, weitaus überlegen ist. ZFS ( Zettabyte File System ) wurde von der Firma Sun Microsystems seit 2001 entwickelt und 2005 unter der Common Development and Distribution License (CDDL) freigegeben. Da diese nicht mit der GNU General Public License kompatibel ist, kann ZFS nicht in den Linux-Kernel aufgenommen werden. Um dieses Problem zu umgehen, bieten die meisten Linux-Distributionen Methoden zur Installation von ZFS an.

Kurz nachdem Oracle Sun Microsystems aufgekauft hatte, wurde OpenSolaris zu einem Closed-Source-Projekt. Die gesamte weitere Entwicklung von ZFS wurde quelloffen. Viele der ZFS-Entwickler waren über diese Wendung der Ereignisse unglücklich. Zwei Drittel der ZFS-Kernentwickler verließen Oracle aufgrund dieser Entscheidung. Sie schlossen sich anderen Unternehmen an und gründeten im September 2013 das OpenZFS-Projekt. Das Projekt hat die Open-Source-Entwicklung von ZFS vorangetrieben.

ZFS wurde frei von alten Vorstellungen entwickelt. Es entstand ein vollkommen neues System zum Speichern von Daten mit einigen hervorstechenden Zielen: der gesamte Speicher als Pool, hohe Geschwindigkeit, absolute Datenintegrität und einfache Administration.
In der Praxis gibt es kein Limit für die Anzahl an Dateien oder der Dateigröße. Daher sind hoch skalierbare, auf ZFS basierende Systeme oft die erste Wahl für Cloud-Storage- oder Hostinganbieter sowie in virtuellen Umgebungen. Wenn Installationen in den Petabyte-Bereich gehen, wird die Wahl ein 128-Bit Dateisystem sein.
ZFS ist ein fundamental anderes Dateisystem aufgrund der Tatsache, dass es mehr als ein Dateisystem ist. ZFS kombiniert die Rolle eines Dateisystems mit dem Volumemanager, was es ermöglicht, zusätzliche Speichermedien zu einem laufenden System hinzuzufügen und diesen neuen Speicher sofort auf allen existierenden Dateisystemen zur Verfügung zu haben.

ZFS ist ein fortschrittliches Dateisystem. Als solches hat es einige interessante Funktionen. Zum Beispiel:

-Gepoolter Speicher – Pooled storage
-Kopieren-auf-Schreiben – Copy-on-write
-Schnappschüsse – Snapshots
-Überprüfung der Datenintegrität und automatische Reparatur
-RAID-Z
-Maximal 16 Exabyte Dateigröße
-Maximal 256 Quadrillionen Zettabytes Speicherplatz

Schauen wir uns ein paar dieser Funktionen genauer an.

Gepoolter Speicher – Pooled storage
Im Gegensatz zu den meisten Dateisystemen kombiniert ZFS die Funktionen eines Dateisystems und eines Volume Managers. Das bedeutet, dass ZFS im Gegensatz zu anderen Dateisystemen ein Dateisystem erstellen kann, das sich über eine Reihe von Laufwerken oder einen Pool erstreckt. Und nicht nur das: Sie können einem Pool Speicherplatz hinzufügen, indem Sie ein weiteres Laufwerk hinzufügen. ZFS übernimmt die Partitionierung und Formatierung.

Kopieren-auf-Schreiben – Copy-on-write
Copy-on-write ist eine weitere interessante (und coole) Funktion. Wenn in den meisten Dateisystemen Daten überschrieben werden, sind sie für immer verloren. Bei ZFS wird die neue Information in einen anderen Block geschrieben. Sobald der Schreibvorgang abgeschlossen ist, werden die Metadaten des Dateisystems so aktualisiert, dass sie auf die neuen Informationen verweisen. Dadurch wird sichergestellt, dass die alten Daten erhalten bleiben, wenn das System abstürzt (oder etwas anderes passiert), während der Schreibvorgang läuft. Es bedeutet auch, dass das System nach einem Systemabsturz kein fsck ausführen muss.

Schnappschüsse – Snapshots
Copy-on-write führt zu einer weiteren ZFS-Funktion: Snapshots. ZFS verwendet Schnappschüsse, um Änderungen im Dateisystem zu verfolgen. „Der Schnappschuss enthält die ursprüngliche Version des Dateisystems, und das Live-Dateisystem enthält alle Änderungen, die seit der Erstellung des Schnappschusses vorgenommen wurden. Es wird kein zusätzlicher Speicherplatz verwendet. Wenn neue Daten in das Live-Dateisystem geschrieben werden, werden neue Blöcke zum Speichern dieser Daten zugewiesen.“ Wenn eine Datei gelöscht wird, wird auch der Verweis auf den Snapshot entfernt. Snapshots sind also hauptsächlich dazu gedacht, Änderungen an Dateien zu verfolgen, nicht aber das Hinzufügen und Erstellen von Dateien.

Snapshots können als schreibgeschützt gemountet werden, um eine frühere Version einer Datei wiederherzustellen. Es ist auch möglich, ein Rollback des Live-Systems auf einen früheren Snapshot durchzuführen. Alle Änderungen, die seit dem Snapshot vorgenommen wurden, gehen dabei verloren.

Überprüfung der Datenintegrität und automatische Reparatur
Jedes Mal, wenn neue Daten in ZFS geschrieben werden, wird eine Prüfsumme für diese Daten erstellt. Wenn diese Daten gelesen werden, wird die Prüfsumme überprüft. Wenn die Prüfsumme nicht übereinstimmt, dann weiß ZFS, dass ein Fehler entdeckt wurde. ZFS wird dann automatisch versuchen, den Fehler zu korrigieren.

RAID-Z
ZFS kann RAID handhaben, ohne dass zusätzliche Software oder Hardware benötigt wird. Es überrascht nicht, dass ZFS seine eigene Implementierung von RAID hat: RAID-Z. RAID-Z ist eigentlich eine Variante von RAID-5. Es wurde jedoch entwickelt, um den RAID-5-Schreiblochfehler zu überwinden, bei dem die Daten und Paritätsinformationen nach einem unerwarteten Neustart inkonsistent werden“. Für die Grundstufe von RAID-Z (RAID-Z1) benötigen Sie mindestens zwei Festplatten für die Speicherung und eine für die Parität. RAID-Z2 erfordert mindestens zwei Speicherlaufwerke und zwei Laufwerke für die Parität. RAID-Z3 erfordert mindestens zwei Speicherfestplatten und drei Festplatten für die Parität. Wenn Laufwerke zu den RAID-Z-Pools hinzugefügt werden, müssen sie in Vielfachen von zwei hinzugefügt werden.

Enormes Speicherpotenzial
Als ZFS entwickelt wurde, sollte es das letzte Wort bei Dateisystemen sein. Zu einer Zeit, als die meisten Dateisysteme 64-Bit waren, beschlossen die ZFS-Schöpfer, direkt auf 128-Bit zu springen, um es zukunftssicher zu machen. Das bedeutet, dass ZFS „die 16 Milliarden Milliarden Mal höhere Kapazität als 32- oder 64-Bit-Systeme bietet“.

Wenn Sie ZFS verwenden wollen, können Sie dies mit FreeBSD, OmniOS oder OpenIndiana tun.
Es gibt aber auch fertige Storage NAS Systeme wie XigmaNAS oder TrueNAS die optimiert für File Systeme sind.
Aber auch Debian bietet eine hervorragende Möglichkeit über die Backports OpenZFS für Linux zu installieren und Rock Solid / Hochverfügbar zu betreiben.

Welche Information liefert der UNIX Befehl netstat ?

1. Netzwerk-Verbindungen:
netstat kann eine Liste der aktiven Netzwerkverbindungen auf einem System anzeigen, sowohl der eingehenden als auch der ausgehenden. Dazu gehören Informationen über die IP-Adressen, die Portnummern, das verwendete Protokoll (TCP oder UDP) und den Status der Verbindungen (abhörend, hergestellt usw.).

2. PORTS überwachen:
Mit netstat kann eine Liste der Ports angezeigt werden, auf denen das System auf eingehende Verbindungen wartet. Dies ist nützlich, um festzustellen, welche Dienste oder Anwendungen aktiv auf Netzwerkanforderungen warten.

3. Routing-Tabellen:
netstat kann die Routing-Tabelle anzeigen, das bedeutet eine Reihe von Regeln, die festlegen, wie Netzwerkpakete an ihre Ziele weitergeleitet werden. Dies hilft dabei, Verbindungsprobleme zu diagnostizieren und zu verstehen, wie die Daten im Netzwerk weitergeleitet werden.

4. Netzwerkschnittstellen-Statistiken:
Das Tool kann Statistiken für Netzwerkschnittstellen liefern, einschließlich Informationen über die Anzahl der gesendeten und empfangenen Pakete, Fehler, Kollisionen und mehr. Dies ist nützlich für die Überwachung des Zustands und der Leistung der Schnittstelle.

5. Netzwerkprotokoll-Statistiken:
netstat kann detaillierte Statistiken über Netzwerkprotokolle wie TCP, UDP und andere liefern. Diese Statistiken enthalten Messwerte wie die Anzahl der übertragenen Pakete, Wiederholungen, Fehler und mehr.

6. Zugehörige Prozesse:
In einigen Varianten des Befehls kann netstat die Prozess-ID (PID) und den zugehörigen Prozessnamen für jede Netzwerkverbindung anzeigen. Auf diese Weise können Sie feststellen, welche Prozesse das Netzwerk nutzen und Probleme im Zusammenhang mit bestimmten Anwendungen beheben.

7. Netzwerkstatus:
Mit netstat können Sie überprüfen, ob bestimmte Ports offen oder geschlossen sind, was bei der Sicherheitsanalyse und der Systemhärtung hilfreich ist.

8. Filtern und Suchen:
netstat ermöglicht es Ihnen, nach bestimmten Arten von Verbindungen zu filtern und zu suchen, z. B. nach bestehenden Verbindungen, lauschenden Ports oder Verbindungen, die mit einem bestimmten Prozess verbunden sind.

Hier sind ein paar nützliche ’netstat‘ Befehlsbeispiele
Verwenden Sie diese, um Ihr Netzwerk zu diagnostizieren, zu sichern und zu optimieren.

1. netstat -tuln
Überprüft alle lauschenden TCP- und UDP-Ports mit numerischen Adressen. Nützlich für die Fehlersuche im Netzwerk und die Sicherheitsanalyse.

2. netstat -an
Zeigt alle aktiven Netzwerkverbindungen an, sowohl lauschende als auch bestehende. Hervorragend geeignet, um die Netzwerkaktivität zu überwachen und mögliche Probleme zu erkennen.

3. netstat -r
Zeigt die Routing-Tabelle an und hilft Ihnen, die Wege zu verstehen, die Ihre Netzwerkpakete nehmen. Unerlässlich für die Diagnose von Verbindungsproblemen und die Optimierung des Verkehrsflusses.

4. netstat -s
Zeigt eine detaillierte Zusammenfassung der Netzwerkstatistiken an, einschließlich protokollspezifischer Daten wie Fehler, erneute Übertragungen und mehr. Nützlich für die Überwachung der Leistung und die Fehlersuche.

5. netstat -ant | grep ESTABLISHED
Filtert Verbindungen, um nur bestehende TCP-Verbindungen anzuzeigen. Ideal zur Überwachung aktiver Verbindungen und zur Erkennung potenzieller Sicherheitsbedrohungen.

6. netstat -tuln | grep LISTEN
Zeigt alle lauschenden Ports auf Ihrem System an. Praktisch, um zu überprüfen, welche Dienste offen und zugänglich sind, was zur Sicherheit Ihres Rechners beiträgt.

7. netstat -atun
Zeigt sowohl lauschende als auch nicht lauschende TCP- und UDP-Verbindungen an. Nützlich, um einen umfassenden Überblick über die Netzwerkaktivität zu erhalten.

8. netstat -p
Gibt die PID (Prozess-ID) und den Namen des Programms an, das jeden Socket verwendet. So können Sie die Netzwerkaktivitäten bestimmten Prozessen zuordnen, was bei der Fehlersuche hilfreich ist.

9. netstat -i
Zeigt Netzwerkschnittstellenstatistiken an, die Daten wie Pakete und Fehler enthalten. Unverzichtbar für die Diagnose von Problemen mit Netzwerkschnittstellen.

10. netstat -anp | grep
Findet Netzwerkverbindungen, die mit einem bestimmten Prozess verbunden sind. Wertvoll für die Identifizierung von Prozessen, die Netzwerkressourcen beanspruchen, oder von verdächtigen Aktivitäten.

Linux „Screen“ Einführung

screen

Haben Sie schon einmal die Situation erlebt, dass Sie eine lang laufende Aufgabe auf einem entfernten Rechner ausführen und plötzlich Ihre Verbindung abbricht, die SSH-Sitzung beendet wird und Ihre Arbeit verloren geht? Nun, das ist uns allen schon einmal passiert, nicht wahr? Glücklicherweise gibt es ein Dienstprogramm namens „screen„, mit dem wir die Sitzungen wieder aufnehmen können.

Einführung

Screen oder GNU Screen ist ein Terminal-Multiplexer. Mit anderen Worten, es bedeutet, dass Sie eine Screen-Sitzung starten und dann eine beliebige Anzahl von Fenstern (virtuelle Terminals) innerhalb dieser Sitzung öffnen können. Prozesse, die in Screen laufen, laufen auch dann weiter, wenn ihr Fenster nicht sichtbar ist, selbst wenn die Verbindung unterbrochen wird.

Linux GNU „Screen“ installieren

Das Bildschirmpaket ist heutzutage auf den meisten Linux-Distributionen vorinstalliert. Sie können überprüfen, ob es auf Ihrem System installiert ist, indem Sie es eingeben:

 $ screen --version
 Output: Screen version 4.06.02 (GNU) 23-Oct-17

Wenn Sie keinen Bildschirm auf Ihrem System installiert haben, können Sie ihn einfach mit dem Paketmanager Ihrer Distribution installieren.

Linux „Screen“ unter Debian und Ubuntu installieren

 $ sudo apt update && sudo apt install screen -y

Linux „screen“ unter Fedora und CentOS installieren

 $ sudo yum install screen

Linux „screen“ starten

Um eine Screen-Sitzung zu starten, geben Sie einfach screen in Ihre Konsole ein:

 $ screen

Dadurch wird eine screen-Sitzung geöffnet, ein neues Fenster erstellt und eine Shell in diesem Fenster gestartet.

Nun, da Sie eine screen-Sitzung geöffnet haben, können Sie eine Liste von Befehlen durch Eintippen erhalten:

 Strg+a ? 

Eine benannte screen-Sitzung starten:

Benannte Sitzungen sind nützlich, wenn Sie mehrere screen-sitzungen ausführen. Um eine benannte Sitzung zu erstellen, führen Sie den Bildschirmbefehl mit den folgenden Argumenten aus:

 $ screen -S session_name Es ist immer eine gute Idee, einen markanten Sitzungsnamen zu wählen.

Arbeiten mit Linux-Screen-Fenstern

Wenn Sie eine neue screen-Sitzung starten, wird ein einzelnes Fenster mit einer Shell darin erzeugt.
Sie können mehrere Fenster (Regionen) innerhalb einer Sreen-Sitzung haben.
Um ein neues Fenster mit dem Shell zu erzeugen, tippen Sie Strg+a c, ihm wird die erste verfügbare Nummer aus dem Bereich 0…9 zugewiesen.

Im Folgenden sind einige Befehle zur Verwaltung von Linux Screen Fenstern aufgeführt:

  • Ctrl+a c – Ein neues Fenster erstellen
  • Ctrl+a " – Alle Fenster auflisten/anzeigen
  • Ctrl+a 0 – Wechsele zu Fenster mit der Nr. 0 (nach Nummer)
  • Ctrl+a A – Aktuelles Fenster umbenennen
  • Ctrl+a S – Aktuelles Fenster in zwei horizontale (Regionen) Splitten
  • Ctrl+a | – Aktuelles Fenster in zwei vertikale (Regionen) Splitten
  • Ctrl+a tab – Umschalten des Eingabefokus auf das nächste gesplittete Fenster (Region)
  • Ctrl+a Ctrl+a – Umschalten zwischen dem aktuellen und dem vorherigen Fenster (Region)
  • Ctrl+a Q – Alle Fenster bis auf das aktuelle mit dem Fokus schliesen
  • Ctrl+a X – Aktuelles Fenster (Region) schliesen
  • Von der Linux screen-sitzung abkoppelnSie können sich jederzeit durch Eingabe aus der Bildschirmsitzung lösen: Ctrl+a d Das Programm, das in der Screen-Sitzung läuft, läuft weiter, nachdem Sie sich von der Sitzung gelöst haben.Wiederherstellen einer laufenden Screen-SitzungUm Ihre Bildschirmsitzung fortzusetzen, verwenden Sie den folgenden Befehl: $ screen -rFalls Sie mehrere screen-sitzungen auf Ihrem Rechner laufen haben, müssen Sie die ID der screen-sitzung nach dem -r Schalter anhängen.
    Um die screen Sitzungs-ID zu finden, listen Sie die aktuell laufenden screen-sitzungen mit auf:

     $ screen -ls 
    Output:  There are screens on:
    19635.pts-0.aveek-desktop   (Detached)
    19666.pts-0.aveek-desktop   (Detached)
    2 Sockets in /run/screens/S-aveek. Wenn Sie sie screen-sitzung 19666.pts-0 wiederherstellen möchten, geben Sie den folgenden Befehl ein:
     $ screen -r 19666

    Linux-Screen anpassen

    Wenn screen gestartet wird, liest es seine Konfigurationsparameter aus /etc/screenrc und ~/.screenrc, falls die Datei vorhanden ist. Man kann
    die Standardeinstellungen von Screen entsprechend unseren Präferenzen mit Hilfe der .screenrc-Datei ändern.

    Grundlegende Linux Screen benutzung
    Im Folgenden finden Sie die grundlegendsten Schritte für den Einstieg in Screen:

    1. Geben Sie an der Eingabeaufforderung Folgendes ein – $ screen
    2. Führen Sie das gewünschte Programm aus.
    3. Verwenden Sie die Tastenfolge Strg-a + Strg-d, um sich von der screen-Sitzung zu lösen.
    4. Um die Screen-Sitzung wieder fortzusetzen geben Sie folgendes ein – $ screen -r

    Fazit

    In diesem Tutorial haben Sie gelernt, wie man Gnu Screen benutzt.
    Jetzt können Sie mit dem Dienstprogramm Screen beginnen und aus einer einzigen Sitzung mehrere Screen-fenster erstellen, zwischen den Fenstern navigieren, screen-sitzungen lösen und wieder aufnehmen.

    Es gibt noch viel mehr über Gnu Screen auf der Seite Screen-Benutzerhandbuch zu erfahren.

    Aternative zu Screen sind Tmux oder Byobu

SO FINDEN SIE DNS EINTRÄGE MIT DEM DIG BEFEHL

Linux Pinguin

dig steht für „Domain Information Groper“ („Abtaster für Domain-Informationen“) und ist ein 
leistungsstarkes 
und flexibles Befehlszeilentool zum Abfragen von DNS-Nameservern.
Es führt DNS Abfragen durch und zeigt die Antworten an, die von den abgefragten Nameservern zurückgegeben wurden.
Die meisten Administratoren verwenden den Befehl dig, um DNS-Probleme aufgrund seiner Flexibilität, Benutzerfreundlichkeit und Übersichtlichkeit der Ausgabe zu beheben.
Sie können verschiedene DNS-Einträge abfragen, z.B. A, AAA, NS, MX, PTR, CNAME, SOA, TXT, SPF, DKIM usw.
Alternativ können Sie DNS-Einträge mit dem Befehl host oder dem Befehl nslookup anzeigen.

Die allgemeine Syntax für den Befehl dig lautet wie folgt:

dig [Optionen] [TYP] [Domainname.de]

So suchen Sie einen Domain-A-Eintrag (IP-Adresse) unter Linux mit dem Befehl dig

$  dig veek.it

; <<>> DiG 9.11.5-P4-5.1-Debian <<>> veek.it
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36155
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;veek.it.			IN	A

;; ANSWER SECTION:
veek.it.		86400	IN	A	188.68.47.235

;; Query time: 106 msec
;; SERVER: 192.168.178.1#53(192.168.178.1)
;; WHEN: Sa Nov 30 22:28:00 CET 2019
;; MSG SIZE  rcvd: 52

In der ‚ANSWER SECTION‘ (ANTWORT ABSCHNITT) konnen Sie sehen das der Nameserver (NS) von veek.it die IP-Adresse 188.68.47.235 besitzt.

dig verwendete den lokalen DNS-Cache-Server (SERVER), um die angegebenen Domäneninformationen über den Port 53 abzurufen.

Verwenden Sie den Befehl dig gefolgt vom Domänennamen mit zusätzlichen Abfrageoptionen, um nur die erforderlichen Werte des Domänennamens zu filtern.

$  dig veek.it +noall +answer

; <<>> DiG 9.11.5-P4-5.1-Debian <<>> veek.it +noall +answer
;; global options: +cmd
veek.it.		85548	IN	A	188.68.47.235

So suchen Sie einen Domain Nameserver Eintrag unter Linux mit dem Befehl dig

$  dig veek.it NS +noall +answer              

; <<>> DiG 9.11.5-P4-5.1-Debian <<>> veek.it NS +noall +answer
;; global options: +cmd
veek.it.		9781	IN	NS	ns3.domainoffensive.de.
veek.it.		9781	IN	NS	ns2.domainoffensive.de.
veek.it.		9781	IN	NS	ns1.domainoffensive.de.

So benutzen Sie die DNS Rückwärtssuche (Domain Reverse DNS „PTR“) unter Linux mit dem Befehl dig

Geben Sie auch mal die IP-Adresse der Domain mit dem Befehl host ein, um den Reverse-DNS-Eintrag (PTR) der Domain zu ermitteln.

$  dig -x 188.68.47.235 +noall +answer 

; <<>> DiG 9.11.5-P4-5.1-Debian <<>> -x 188.68.47.235 +noall +answer
;; global options: +cmd
235.47.68.188.in-addr.arpa. 84851 IN	PTR	a2feb.netcup.net.

So finden Sie alle möglichen Datensätze für eine Domain unter Linux mit dem Befehl dig

$  dig veek.it ANY +noall +answer

; <<>> DiG 9.11.5-P4-5.1-Debian <<>> veek.it ANY +noall +answer
;; global options: +cmd
veek.it.		84440	IN	A	188.68.47.235
veek.it.		86352	IN	MX	10 mxext1.mailbox.org.
veek.it.		86352	IN	MX	10 mxext2.mailbox.org.
veek.it.		86352	IN	MX	20 mxext3.mailbox.org.
veek.it.		8840	IN	NS	ns2.domainoffensive.de.
veek.it.		8840	IN	NS	ns1.domainoffensive.de.
veek.it.		8840	IN	NS	ns3.domainoffensive.de.

So suchen Sie nur einen Domain MX-Eintrag unter Linux mit dem Befehl dig

$  dig veek.it MX +noall +answer

; <<>> DiG 9.11.5-P4-5.1-Debian <<>> veek.it MX +noall +answer
;; global options: +cmd
veek.it.		86246	IN	MX	10 mxext1.mailbox.org.
veek.it.		86246	IN	MX	10 mxext2.mailbox.org.
veek.it.		86246	IN	MX	20 mxext3.mailbox.org.

So suchen Sie mit einem bestimmten Nameserver (quad9nach einem Domainnamen

$  dig 9.9.9.9 veek.it          

; <<>> DiG 9.11.5-P4-5.1-Debian <<>> 9.9.9.9 veek.it
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 14209
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;9.9.9.9.			IN	A

;; AUTHORITY SECTION:
.			500	IN	SOA	a.root-servers.net. nstld.verisign-grs.com. 2019113002 1800 900 604800 86400

;; Query time: 1 msec
;; SERVER: 192.168.190.1#53(192.168.190.1)
;; WHEN: Sa Nov 30 23:06:45 CET 2019
;; MSG SIZE  rcvd: 111

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11718
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;veek.it.			IN	A

;; ANSWER SECTION:
veek.it.		84075	IN	A	188.68.47.235

;; Query time: 0 msec
;; SERVER: 192.168.190.1#53(192.168.190.1)
;; WHEN: Sa Nov 30 23:06:45 CET 2019
;; MSG SIZE  rcvd: 52
$  host 9.9.9.9      
9.9.9.9.in-addr.arpa domain name pointer dns9.quad9.net.

Ich hoffe ich konnte ihnen einen kleinen Überblick über die DNS Abfragemöglichkeiten geben. Wenn Sie auf der CLI (Command-Line Interface) man dig eingeben, werden Sie weitere Möglichkeiten entdecken um dig auszureizen.

SO ERSTELLEN SIE EINEN SUDO-BENUTZER UNTER DEBIAN

Debian 10 Buster

Der Befehl sudo (kurz für Super-User do) ist ein Programm, mit dem Benutzer Befehle mit den Sicherheitsberechtigungen eines anderen Benutzers ausführen können, standardmäßig des Root-Benutzers.

Hier zeige ich Ihnen auf der CLI (Command-line Interface / Kommandozeile), wie Sie einem Benutzer sudo-Zugriff gewähren.

Sie können dieses Benutzerkonto verwenden, um Verwaltungsbefehle auszuführen, ohne sich als Root-Benutzer bei Ihrem Debian-Server anmelden zu müssen.

Fügen Sie als root den Benutzer der sudo-Gruppe hinzu

Standardmäßig erhalten Mitglieder der Gruppe ‚ sudo ‚ auf Debian-Systemen sudo-Zugriff. Um einen Benutzer zur sudo-Gruppe hinzuzufügen, verwenden Sie den Befehl ‚ usermod ‚

$  usermod -aG sudo Benutzername

Testen Sie den sudo-Zugriff

Wechseln Sie zum hinzugefügten Benutzer:

$  su - Benutzername

Verwenden Sie nun den Befehl sudo, um den whoami Befehl auszuführen:

$  sudo whoami

Wenn der hinzugefügte Benutzer sudo Zugriff bekommen hat, lautet die Ausgabe des whoami Befehls – root –

Wie benutzt man sudo?

Um sudo zu verwenden, stellen Sie dem Befehl einfach sudo und Leerzeichen voran:

$  sudo apt update

Wenn Sie sudo zum ersten Mal in einer Sitzung verwenden, werden Sie aufgefordert, das Benutzerkennwort einzugeben:

[sudo] password for Benutzername:

Fazit:

Sie haben gelernt, wie Sie einen Benutzer zur Gruppe sudo hinzufügen. Sie können sich jetzt mit diesem Benutzerkonto bei Ihrem Debian-Server anmelden und sudo verwenden, um Verwaltungsbefehle auszuführen.