Protokollieren von SSH-Verbindungsversuchen mit öffentlichem Schlüssel mit nftables

Protokollieren von SSH-Verbindungsversuchen mit öffentlichem Schlüssel mit nftables

Frage

Wie kann ich die Protokollierung von SSH-Versuchen mit SSH-Public-Key-Authentifizierung und Nftables am besten einrichten? Und wie kann ich dies am besten testen?

Ich möchte dies tun, ohne ein Paket zu installieren, das „sich einfach darum kümmert“, da dies für mich eine Lernübung ist.

Beschreibung

Ich habe ein ziemlich leeres neues System eingerichtet, um Netzwerkkonzepte zu testen und zu lernen. Auf dem System läuft Arch Linux. nftables ist einsatzbereit und ich kann mich mit SSH-Public-Key-Authentifizierung bei diesem System anmelden. Das Testsystem verwendet auch sshd.socket, falls das von Bedeutung ist.

Mir ist jedoch aufgefallen, dass eine der Nftable-Regeln anscheinend nicht wie erwartet abmeldet:

log prefix "REJECTED" reject with icmpx type port-unreachable

Diese Regel steht am Ende der Eingabekette in meiner nftables.conf, daher sollte der gesamte abgelehnte Eingabeverkehr hier landen (glaube ich).

Vielleicht teste ich das falsch, aber wenn ich es ausführe, journalctl -k | grep "REJECTED"sehe ich keine Einträge, nachdem ich versucht habe, mich über einen anderen Computer anzumelden. Ich sehe jedoch einen Eintrag, wenn ein anderer Computer mit dem richtigen Schlüssel mehr als zweimal in einer Minute versucht, sich anzumelden.

Außerdem stelle ich fest, dass ich mit dieser Nftable-Regel (über der obigen Ablehnungsregel platziert) erfolgreiche SSH-Anmeldungen sehen kann:

tcp dport ssh limit rate 2/minute log prefix "SSH connection" accept

Beim Ausführen journalctl -k | grep "SSH"werden diese Verbindungen wie erwartet angezeigt.

Antwort1

Sie können auf Netzwerkebene weder feststellen (noch protokollieren), bei welcher TCP-Verbindung die Anmeldung fehlgeschlagen ist und mit welcher Methode. Der SSH-Daemon stellt fest, wann eine Anmeldung fehlschlägt, und protokolliert dies. Danach lässt er entweder einen erneuten Versuch zu oder schließt die Verbindung (normalerweise nach einer bestimmten Anzahl fehlgeschlagener Versuche).

Fehlgeschlagene Anmeldeversuche werden im Authentifizierungsprotokoll gespeichert /var/log/auth.log. Dort finden Sie Protokolleinträge sowohl für fehlgeschlagene als auch für erfolgreiche Anmeldungen.

Auf Netzwerkebene können Sie neue Verbindungen zum SSH-Daemon protokollieren. Das folgende Beispiel stammt direkt aus nftablesWiki-Dokumentation:

tcp dport 22 ct state new log prefix \"New SSH connection: \" accept

verwandte Informationen