Frage Ich verbiete versehentlich SSH-Verbindung zu einem Remote-Server ... Was kommt als nächstes?


Sagen wir es nochmal, wir alle machen Fehlerund ich habe gerade eins gemacht.

Eine kurze Geschichte: Ich habe ein paar Dinge auf einem VPS (Debian) gemacht, das ich gemietet habe, als ich merkwürdiges Verhalten bemerkt habe. Verwendung der netstat Befehl sah ich eine nicht autorisierte Verbindung durch SSH. Ich wusste nicht, was ich tun sollte, also beschloss ich, seine Verbindung zu schließen iptables:

iptables -A INPUT -p tcp --dport ssh -s IP -j DROP

Aber ich bin müde, und ich schrieb

iptables -A INPUT -p tcp --dport ssh -j DROP

und ich trat mich (und alle anderen) raus ...

Wie behebe ich das?


60
2018-04-22 14:42


Ursprung


mögliches Duplikat von Ist es möglich, dass SSH auf einen Server mit einem falsch konfigurierten Subnetz zugreift? - kasperd
Nein, weil er alle ssh-Pakete auf der Maschine blockiert. In einem falsch konfigurierten Subnetz würden Sie nur für diese MAC-Adresse tcpdump, das Subnetz, auf dem es sich befindet, abrufen und dann eine virtuelle nic im selben Subnetz konfigurieren und mit ihr sprechen. - jfalcon aka Don Fanning
Nun, Sie haben zumindest den Zugang für die nicht autorisierte Person entfernt. - α CVn
Für das nächste Mal vielleicht der Schalter des Toten Mannes wäre praktisch. - Wayne Conrad
Wer ist dein Gastgeber? Viele VM-Hosts bieten eine serielle Konsole, mit der Sie in Fällen, in denen Sie von einem Remote-Standort aus nicht erreichbar sind, SSH verwenden können. - Frank


Antworten:


Es gibt mehrere Alternativen:

  • Prüfen Sie, ob sie IPMI / "KVM" / Konsolenzugriff auf den Server haben, mit dem Sie sie steuern können, als ob Sie eine physische Tastatur daran angeschlossen hätten.
  • Wenn sie das nicht anbieten, sehen Sie, ob Sie die VM auf eine Wiederherstellungs-Linux-CD booten können (einige Anbieter bieten dies an) und korrigieren Sie dann die Firewall-Regeln und booten Sie dann wie gewohnt.
  • Wenn Sie keinen Konsolenzugriff haben, können Sie vor dem Starten der Wiederherstellung oder dem Anhängen des Volumes an eine andere VM (wie im Fall Amazon, Antwort des Benutzers 3550767) versuchen, Ankh2054s Antwort auf einen Neustart zu versuchen, wenn Sie die Regeln nicht gespeichert haben ( wahrscheinlich der Fall, seit du dich rausgeschmissen hast, bevor du eine Chance hast zu sparen). Verwenden Sie das Control Panel oder bitten Sie jemanden, es mit einem nicht-graziösen Reset / Poweroff (aka Hard-Reboot oder Hard-Shutdown) neu zu starten, falls das Init-Skript die Regeln automatisch speichert, wenn es neu gestartet wird (credit @jfalcon, @joshudson).

    Wiegen Sie die Nachteile davon aus (z. B. Daten, die während des Neustarts geschrieben werden, gehen möglicherweise verloren und eine Dateisystemprüfung ist möglicherweise beim Booten erforderlich, sodass die Systemstartdauer länger ist. Diese Verzögerung ist jedoch möglicherweise geringer als das Starten der Wiederherstellung).


60
2018-04-22 14:44



Abhängig vom vps-Server kann es keinen Remote-Zugriff geben, den er erreichen kann. Systeme wie VMware, KVM, Xen, etc .. haben Konsolen, sind aber nicht für den öffentlichen Verbrauch eingerichtet. schließt das erlaubt diese Form der öffentlichen Kontrolle ist openstack. - jfalcon aka Don Fanning
das heißt, wenn es in amazon / google space ist, könnte er das laufwerk abfotografieren und es von einer anderen virtuellen maschine aus mounten, um die reparatur durchzuführen. - jfalcon aka Don Fanning


Wenn Sie die IPtables-Regel noch nicht gespeichert haben, können Sie Server auf VPS neu starten (falls verfügbar) und die Regel sollte verschwinden.


47
2018-04-22 14:47



es sei denn, das init-Skript speichert die iptables beim Herunterfahren. - jfalcon aka Don Fanning
@jfalcon: Deshalb kannst du sie bitten, den virtuellen Stecker zu ziehen. - joshudson
@jfalcon Das ist auch der Grund, warum es keine gute Idee ist, beim Herunterfahren automatisch zu speichern. Das Speichern sollte eine bewusste Entscheidung des Systemadministrators sein, nicht etwas, das blind vom System ausgeführt wird. - α CVn
@joshudson: Du musst dem Neustart-Affen genau sagen, was zu tun ist und erzwinge das Ausschalten. Nicht nur ein Herunterfahren auslösen. - jfalcon aka Don Fanning
@ MichaelKjörling: Diese Philosophie ist auch falsch. Das ist ein VPS, also ist er wahrscheinlich Sandboxing seine Anwendungen und er hat keine Kontrolle darüber, wer den Netzschalter betätigt. Und Sie haben keine Ahnung, wie das VPS-Hosting ihre Builds konfiguriert hat. Es ist nichts falsch mit dem Speichern beim Herunterfahren. Sein Fehler war sein Fehler. Der schlaue Zug wäre in erster Linie gewesen, SSH auf einen Nicht-Standard-Port zu setzen oder fail2ban zu verwenden, anstatt mit einer panischen Reaktion zu reagieren. - jfalcon aka Don Fanning


Dafür gibt es Personal-Hotlines. Rufen Sie den Dienstanbieter an, und lassen Sie einen der Operatoren die Regel für Sie entfernen.


30
2018-04-22 15:55





Eine allgemeine Möglichkeit, eine fehlerhafte Instanz zu reparieren, besteht darin, sie herunterzufahren und das Root-Volume an eine funktionierende Instanz anzuhängen. Sie können dann das Volume dort bereitstellen und Protokolle anzeigen oder Konfigurationsdateien bearbeiten. Sie können dann das Volume trennen und es in einer eigenen Instanz starten.


3
2018-04-22 23:14



True für AWS VPSes; nicht allgemein zutreffend. - MadHatter
@MadHatter Die genauen Details können variieren, aber wenn ein VPS-Anbieter keine Methode zum Booten mit einem bekannten Arbeitsabbild anbietet, von dem aus Sie das Root-Dateisystem mounten und reparieren können, dann würde ich erwarten, dass sie nach dem Kunden aus dem Geschäft gehen über diese Einschränkung erfahren. - kasperd
Normalerweise tun sie dies, indem sie Konsolenzugriff anbieten, so dass Sie im Einzelbenutzermodus oder von Notfallmedien booten können (normalerweise als ISO abstrahiert). Ich behaupte, dass dies in der Tat viel normaler ist als die ungewöhnliche Art von AWS, das Problem zu behandeln, wo ein zweites VPS (vorübergehend) eine Voraussetzung ist. - MadHatter
@MadHatter Welcher der beiden Ansätze seltsam erscheint, hängt sehr wahrscheinlich davon ab, was Ihnen am vertrautesten ist. Und jeder Ansatz macht den Job erledigt. Was am häufigsten ist, kann ich nicht wirklich kommentieren, da ich bisher nur einen solchen Zugriff auf einen einzelnen VPS-Provider benötigt habe. - kasperd
@ kasperd: Nein, welches du verwendest hängt davon ab, was ein bestimmter VPS-Provider unterstützt; Es ist keine Frage der Wahl. Wenn Sie AWS verwenden, mounten Sie das Volume auf einem anderen VPS. Wenn Sie einen normaleren VPS-Anbieter verwenden, booten Sie Einzelbenutzer oder Notfallmedien. Ich mache diesen Punkt nicht zu einem Schwanz (na ja, nicht ganz), sondern weil es wichtig ist zu schätzen, dass man herausfinden muss, welche Methode (n) der Anbieter unterstützt, dann benutze sie. Der Versuch, die AWS-Methode beispielsweise mit Hetzner zu verwenden wird einfach nicht funktionieren, weil ein Hetzner vserver den FS eines anderen nicht sehen kann (afaik). - MadHatter


Formale Antwort: Gehen Sie zum VPS Management Panel, holen Sie sich den lokalen Zugang (virtual KVM) oder rufen Sie sie an.

Erklärung der Schritte / Regeln um zu verhindern, dass sie erneut fallen:

  1. Es gibt Änderungen an IP-, Routing- und Firewall-Regeln, die schief gehen und Ihren Zugriff blockieren können.
  2. und es gilt auch für dedizierte Netzwerkgerätekonfiguration, nicht nur für VPSs

Also, es sei denn, Sie sind 100% sicher, dass Sie wiederherstellen können .. Ich empfehle, immer eine Möglichkeit, um Netzwerk-Konfiguration in den vorherigen Zustand zurückzusetzen .. wie, öffnen Hintergrundsitzung mit entweder screen, nohup, oder tmux, sogar cron kann dafür arbeiten und hinzufügen iptables -F oder andere gewünschte Mittel, um irgendetwas in den vorherigen Zustand zurückzusetzen.


3
2018-04-23 10:33