
Bitte lesen Sie diese Frage sorgfältig durch.
Ich habe einen Remote-SSH-Login auf einem Server und habe keine Sudo-Berechtigungen. Ich möchte auf diesem Server einen Listener erstellen. Damit jede eingehende Verbindung in meiner Konsole angezeigt wird, d. h.myname@anyip-Konsole.
Also, wie mache ich das?
Antwort1
Sie möchten also die anderen Benutzer des Servers ausspionieren?
Ohne Root-Rechte können Sie das nicht effektiv tun. Am nächsten kommen Sie dem, indem Sie den netstat -an
Befehl wiederholt ausführen und die Ausgabe analysieren. Wenn das System Container oder eine andere Isolationstechnologie verwendet, netstat
zeigt der Befehl möglicherweise nur die Verbindungen für Ihren Container an. Auf einem Server mit gehärteter Sicherheit ist der netstat
Befehl möglicherweise sogar nur für Administratoren zugänglich.
Mit Root-Rechten könnten Sie beispielsweise eine iptables
Protokollierungsregel einrichten, die dazu führt, dass für alle neuen eingehenden Verbindungen eine Protokollnachricht erstellt wird. Anschließend könnten Sie den Syslog-Daemon so konfigurieren, dass diese Nachrichten in eine bestimmte Datei geschrieben oder über das Netzwerk an ein anderes System gesendet werden. Wenn Sie die Protokollnachrichten über das Netzwerk senden, müssten Sie in dem System, an das Sie die Nachrichten senden, einen Empfänger für die Protokollnachrichten einrichten.
Auf einem Server mit mehreren Benutzern können viele gleichzeitig eingehende Verbindungen stattfinden. Einige davon sind tatsächlich interne Verbindungen zwischen Prozessen innerhalb desselben Servers. Insbesondere Java-Prozesse verwenden viele „Netzwerkverbindungen“, um zwischen verschiedenen Prozessen innerhalb desselben Servers zu kommunizieren. In einer solchen Situation wären die gesuchten Informationen in einer überwältigenden Menge von Nachrichten über Verbindungen verborgen, die für Sie unwichtig sind. Daher kann es für Sie von Vorteil sein, Ihre Informationsanfragen spezifischer zu gestalten.
Wenn ich fragen darf, zu welchem Zweck benötigen Sie die Informationen über eingehende Verbindungen? Möglicherweise ist es möglich, die Informationen für Ihren speziellen Bedarf auch auf andere Weise zu erstellen.
Wenn Sie beispielsweise die Netzwerkverbindungen des Servers für eine Art Übergabe der Verwaltungsverantwortung zuordnen müssen, können Sie zunächst netstat -na -A inet
und verwenden netstat -na -A inet6
, um alle TCP/UDP-Ports zu identifizieren, die eingehende Verbindungen empfangen können. Bei TCP-Ports suchen Sie einfach nach Ports im LISTEN
Status; bei UDP-Ports müssen Sie alle aufgelisteten Ports überprüfen, um festzustellen, ob sie für eingehende oder ausgehende Pakete verwendet werden.
Sobald Sie eine Liste der tatsächlich auf dem System aktiven Dienste haben, können Sie die Dinge ausschließen, die Sie nicht interessieren. Wenn der Server beispielsweise von einem Hosting-Anbieter an einen anderen übergeben wird, sind die von der Serverüberwachungsinfrastruktur des alten Anbieters verwendeten Ports nicht sehr interessant, da der alte Anbieter seine Überwachungsprogramme wahrscheinlich vor der tatsächlichen Übergabe entfernt und der neue Anbieter wahrscheinlich seine eigenen Überwachungstools installiert.
Der nächste Schritt könnte darin bestehen, die Protokolle der betreffenden Dienste zu überprüfen: Wenn Sie auf die Protokolle zugreifen können und diese die von Ihnen benötigten Informationen enthalten, ist dies möglicherweise die beste Option. Wenn Sie nicht über den erforderlichen Zugriff verfügen, wird eine Anfrage zum Lesezugriff auf die alten Protokolle eines bestimmten Dienstes beim Serveradministrator möglicherweise besser aufgenommen als eine umfassende Anfrage zur Überwachung aller eingehenden Verbindungen.
Mit ein wenig Skripting können Sie die Protokolle nach Nachrichten durchsuchen, die auf eingehende Verbindungen hinweisen ( grep
), die Informationen zur Verbindungsquelle heraussuchen (mit sed
oder awk
einem anderen Tool Ihrer Wahl) und anschließend Duplikate entfernen (mit sort
gefolgt von uniq
). Wenn Sie alle vorhandenen Protokolle auf diese Weise verarbeiten, haben Sie möglicherweise eine bessere Chance, Verbindungen zu erkennen, die nur selten auftreten (z. B. einmal pro Woche oder Monat), als wenn Sie nur ein paar Tage lang alle eingehenden Verbindungen überwachen.