Archiv der Kategorie: Linux Howto Tutorials

GNU/Linux Howto’s and Tutorials unblog technical contribution for professionals

Verdächtige IP mit Linux Firewall Daemon sperren

Brute-Force Angriffe mit Firewall Daemon blockieren aus Bash Script

Firewall Daemon bietet Schutz vor laufenden Brute-Force Attacken, bei der Erkennung versuchter Angriffe auf den Linux Host. Um den Host permanent zu schützen, können verdächte Anfragen von angreifenden Quellen schnell gesperrt werden. Das folgende bash Script sperrt die IP, diese als Argument übergeben wird und von firewall-cmd auf reject gesetzt wird.

Das Script wurde auf Debian 10 (buster) geschrieben, bei Debian muss firewalld erst installiert werden, so wie auch unter Ubuntu 20. Bei CentOS Linux 7/8 (Core) und Fedora 30 oder höher ist firewalld im Standard und das Script ist anwendbar.

Fail2ban (Fehlschlag führt zum Bann) ist ein in Python entwickeltes IPS und Framework zur Vorbeugung gegen Einbrüche, das auf allen Unixoiden OS läuft, die ein manipulierbares Paketfiltersystem oder eine Firewall besitzen wie iptables oder firewalld unter Linux.

Bei Zeile 13 wird falls vorhanden und ausgeführt, die von Fail2ban verbannten (banned) Adressen nach der manipulation von firewalld, der zuvor aktive Zustand wieder hergestellt. Wird Fail2ban nicht angewandt, können die Zeilen 12 – 14 gelöscht werden.

Mit Übergabe der Source-IP wird das Script in der bash ausgeführt, um auffällige Anfragen durch die Firewall zu sperren.

Die gesperrte IP-Adresse kann mit folgender Kommandozeile in der bash shell wieder entfernt werden.

Die aktuellen Firewall Regeln ausgeben mit diesen Kommandos.

Network Time Protocol Linux Installation

Linux Systemzeit Synchronisation mit Network Time Protocol (NTP)

Network Time Protocol – NTP Synchronisation der Systemzeit mit der Atomzeit der NTP-Server. Dieser Beitrag zeigt die NTP-Service Bereitstellung und Konfiguration in der Linux Befehlszeile. Eine korrekte Systemzeit ist für Computersysteme essentiell und schafft überhaupt die Voraussetzung für ein reibungslosen Beitrieb der interagierenden Dienste. Zur Überprüfung und ändern der Systemzeit dienen folgende Befehlszeilentools.

Zur Abfrage der aktuellen Systemzeit mit date und timedatectl:

Der Zeitabgleich auf einem Server wird von einem NTP-Daemon ausgeführt, mit Synchronisation der Systemzeit für eine ordnungsgemässe Funktion der Systeme. Die Atomzeit kann von NTP-Server im Internet synchronisiert werden, wie zum Beispiel Google Public Network Time Protocol (NTP) time.google.com

Die NTP-Daemon Bereitstellung

Der NTP-Daemon auf Debian Linux basiertem System Installieren:

Der NTP-Daemon auf RHEL/CentOS/Fedora System Installieren:

NTP Pool Server pool.ntp.org versucht den nächstgelegenen verfügbaren Server zu finden. Das Projekt NTP-Pool ist ein dynamischer Pool von Zeitservern. Die NTP Pool Server kann man in /etc/ntp.conf editieren.

Bevor der ntpd-Dienst gestartet werden kann, muss die Systemzeit grob (im Bereich weniger Minuten) eingestellt werden. Das kann manuell mit date oder hier mit timedatectl set-time oder über den NTP Pool mit ntpdate pool.ntp.org gemacht werden.

Nach einigen Minuten kann der Status des Dienstes abgerufen werden. Die Ausgabe des Kommandos ntpq -p sollte in etwa wie folgt aussehen.

Der bereitgestellte NTP-Daemon nun ausführen und in systemd für den automatischen start verlinken:

Die systemd-timesyncd Konfiguration

Der Service systemd-timesyncd ist bei vielen Distributionen bereits installliert. Die Konfigurationsdateien steuern die Zeitsynchronisation des NTP-Netzwerks.

Die Network Time Synchronization für den Service systemd-timesyncd beinhaltet die Datei /etc/systemd/timesyncd.conf

Die Konfigurationsdatei timesyncd.conf kann wie folgt sein.

Damit systemd-timesyncd automatisch gestartet wird, aktiviert der Befehl enable den Service entsprechend:

Bei einem systemd-basierten System führt man folgenden Befehl aus, um den Servicestatus zu überprüfen:

Die Ausgabe auf Zeile 7 und 8 bedeutet, dass der Zeitabgleich nicht ausgeführt wird. Mit folgendem Befehl wird die Synchronisation aktiviert:

Der NTP Servicestatus erneut abfragen, nach einigen Sekunden zeigt die Ausgabe System clock synchronized: yes und NTP service: active:

Die Kerberos-Authentifizierung

Die Kerberos-Authentifizierung ist gegenwärtig die Standard-Authentifizierungstechnologie unter Windows, auch Apple macOS, FreeBSD und Linux Systeme nutzen Kerberos-Implementierungen. Bei der Authentifizierung in einer Umgebung mit Kerberos, kommt eine synchrone Systemzeit für interagierende System eine fundamentale Bedeutung zu.

Die Kerberos Authentifizierung verlangt drei Entitäten, für die Ticket-Autorisierung durch eine dritte Partei, dabei darf die Systemzeit eine bestimmte Drift Limite nicht überschreiten, ein Ticket das durch Kerberos erstellt wird, ist nach einer gewissen Zeit abgelaufen, das Ticket wird ungültig.

Kerberos ist auch für Websites und SSO-Implementierungen plattformübergreifend zum Standard geworden. In Active Directory Domain Services (AD DS), ist bei der Integration von NAS und anderen Geräte, für den Zugriff auf Netzwerkressourcen für eine übereinstimmende Systemzeit zu sorgen. Für die Protokollierung wie Syslog ist die präzise Zeit, der Timestamp für die Auswertung der Ereignisse, und bei der Fehler Analyse bedeutend.

Linux Mint 20 Cinnamon: apt install ntp ntpdate

Linux Zeitzone in Console Festlegen

Zeitzone ändern bei RHEL/CentOS und Fedora

Dieser Beitrag zeigt die Abfrage und das festlegen der Zeitzone in der Befehlszeile bei RHEL/CentOS 8 und Fedora 30. Eine korrekte Systemzeit ist für Computersysteme essentiell und schafft überhaupt die Voraussetzung für ein reibungslosen Beitrieb der interagierenden Dienste. Zur Überprüfung und Bearbeitung der Zeitzoneneinstellung dient das Befehlszeilentool timedatectl.

Hier die Zeitzoneneinstellung Abfrage ohne zusätzliche Argumente:

Die Zeitzoneneinstellung ändern und festlegen:

Abfragen der geänderten Zeitzoneneinstellung:

Die verfügbaren Zeitzonen mit folgendem Command ausgeben:

Da es viele Zeitzonen gibt, wird die Abfrage sehr lange, mit grep die Abfrage eingegrenzt: