Tipps zur ordnungsgemäßen Übernahme eines (UNIX) Produktionsservers

10

Nach Monaten der Vernachlässigung, E-Mail-Flammen und Management-Kämpfen wurde unser aktueller Systemadministrator gefeuert und mir "die Server-Anmeldeinformationen" übergeben. Solche Anmeldeinformationen bestehen aus einem Root-Passwort und nichts anderem: keine Prozeduren, keine Dokumentation, keine Tipps, nichts.

Meine Frage ist: Angenommen, er hat Sprengfallen zurückgelassen, wie übernehme ich die Server mit so wenig Ausfallzeiten wie möglich?

Hier sind die Details:

  • ein Produktionsserver in einer Serverfarm im Keller; Ubuntu Server 9.x wahrscheinlich mit Grsec-Patches (Gerüchte, die ich das letzte Mal gehört habe, als ich den Administrator gefragt habe)
  • Ein interner Server, der die gesamte interne Dokumentation, das Datei-Repository, die Wikis usw. enthält. Wieder ein Ubuntu-Server, einige Jahre alt.

Angenommen, beide Server sind gepatcht und auf dem neuesten Stand, also würde ich lieber nicht versuchen, mich einzumischen, es sei denn, es gibt einen guten Grund (dh das kann dem oberen Management erklärt werden).

Auf dem Produktionsserver sind einige Websites gehostet (Standard-Apache-PHP-MySQL), ein LDAP-Server, eine ZIMBRA-E-Mail-Suite / ein ZIMBRA-E-Mail-Server und, soweit ich das beurteilen kann, einige VMware-Workstations, die ausgeführt werden. Keine Ahnung, was da drin passiert. Wahrscheinlich ist einer der LDAP-Master, aber das ist eine wilde Vermutung.

Der interne Server verfügt über ein internes Wiki / CMS, einen LDAP-Slave, der die Anmeldeinformationen vom Produktionsserver repliziert, einige weitere VMware-Workstations und ausgeführte Sicherungen.

Ich könnte einfach zum Administrator der Serverfarm gehen, auf den Server zeigen, ihnen sagen, dass sie sudodiesen Server bitte herunterfahren sollen, sich im Einzelbenutzermodus anmelden und mich damit abfinden. Gleiches gilt für den internen Server. Trotzdem würde das Ausfallzeiten bedeuten, das obere Management wäre verärgert, und der alte Systemadministrator würde auf mich zurückschießen und sagen: „Sehen Sie? Sie können meinen Job und andere Belästigungen nicht erledigen, und vor allem müsste ich möglicherweise ein paar Wochen unbezahlte Zeit verlieren.

Am anderen Ende des Spektrums konnte ich mich einfach als Root anmelden und mich über den Server bewegen, um zu verstehen, was passiert. Mit allen Risiken, Überraschungen auszulösen.

Ich suche nach einer Lösung in der Mitte: Versuchen Sie, alles so zu halten, wie es ist, während Sie verstehen, was und wie passiert, und vor allem vermeiden, dass Sprengfallen zurückbleiben .

Was sind deine Vorschläge?

Bisher habe ich darüber nachgedacht, mit dem internen Server zu „üben“, das Netzwerk zu trennen, mit einer Live-CD neu zu starten, das Root-Dateisystem auf ein USB-Laufwerk zu laden und es auf eine getrennte, isolierte virtuelle Maschine zu laden, um die frühere Systemadministration zu verstehen Denken (a-la 'kenne deinen Feind'). Könnte das gleiche Kunststück mit dem Produktionsserver schaffen, aber ein vollständiger Speicherauszug würde jemanden auffallen lassen. Vielleicht kann ich mich einfach als root anmelden, crontab überprüfen, das .profile auf Befehle überprüfen, die gestartet wurden, das letzte Protokoll sichern und alles, was mir in den Sinn kommt.

Und deshalb bin ich hier. Jeder noch so kleine Hinweis wäre sehr dankbar.

Zeit ist auch ein Problem: In einigen Stunden oder Wochen können Auslöser auftreten. Fühlt sich an wie einer dieser schlechten Hollywood-Filme, nicht wahr?

Lorenzog
quelle
5
Warum wurde der Systemadministrator gefeuert? Dies sieht nach einer Situation ohne Gewinn aus. Wenn Sie nicht sicher sind, was zu tun ist und was genau auf den Servern ist, wird dies nicht gut enden.
Cstamas
@cstamas Der Systemadministrator wurde ausgelöst, da für jede Anfrage (dh Hinzufügen eines Benutzers zur Mailingliste oder Erstellen eines E-Mail-Alias ​​usw.) die Zeit eine Zufallsvariable zwischen t = 1 Tag und t = 2 Monaten war ( inklusive). Und das hat er nie zugegeben. Plus eine Reihe anderer schlechter Verhaltensweisen, auf die ich hier nicht näher eingehen werde.
Lorenzog
@ Lorenzog jetzt macht es Sinn. Sieht so aus, als wäre es keine leichte Aufgabe. Es gibt bereits gute Antworten. Viel Glück!
Cstamas
1
@serverhorror: Nein, sie haben ihn einfach eingestellt, bevor ich zu dieser Firma kam, und jetzt stellte sich heraus, dass er nicht gut genug war. Da ich ihn von früher kannte, hatte ich die Aufgabe, mit ihm umzugehen. Gehen Sie vorsichtig mit Ihren Annahmen um.
Lorenzog
1
@ Lorenzog: Hier geht es nicht um dich. Der Punkt ist, dass es tatsächlich die Schuld des Managers ist (wer auch immer das ist), dass die Situation einer undokumentierten Infrastruktur sogar eintreten könnte - wie gesagt: keine Straftat, nur Beobachtung (eine subjektive Beobachtung gewährt)
Martin M.

Antworten:

12

Wie andere gesagt haben, sieht das nach einer lockeren Situation aus.

(Beginnend am Ende)

  • Komplett neue Bereitstellung

Natürlich können Sie nicht einfach die Server herunterfahren und das Installationsprogramm zaubern lassen.

Allgemeiner Prozess

  • Holen Sie sich das Budget für einen Sicherungsserver (Sicherung wie im Speicher für die Daten)
  • Erstellen Sie Schnappschüsse der Daten und platzieren Sie sie dort, bevor Sie etwas unternehmen
  • Lassen Sie sich vom Management abmelden!
  • Sammeln Sie eine Liste der Anforderungen (ist das benötigte Wiki, wer die VMWare-Instanzen verwendet, ...)
    • Vom Management und
    • Von Benutzern
  • Lassen Sie sich vom Management abmelden!
  • Fahren Sie nicht aufgeführte Dienste für eine Woche herunter (jeweils ein Dienst - iptables ist möglicherweise Ihr Freund, wenn Sie nur externe Dienste herunterfahren möchten, aber den Verdacht haben, dass sie möglicherweise noch von einer Anwendung auf demselben Host verwendet werden).
    • Keine Reaktion? -> Endgültige Sicherung vom Server entfernen
    • Reaktion? -> Sprechen Sie mit den Nutzern des Dienstes
    • Sammeln Sie neue Anforderungen und Geet, die vom Management genehmigt wurden!
  • alle nicht gelisteten Dienste für einen Monat ausgefallen und keine Reaktion? -> rm -rf $service(klingt harsch, aber ich meine die Außerbetriebnahme des Dienstes)
  • Holen Sie sich das Budget für einen Ersatzserver
  • Migrieren Sie jeweils einen Dienst in den Ersatzdienst
  • Lassen Sie das vom Management abzeichnen!
  • Fahren Sie den migrierten Server herunter (Ausschalten)
  • Finde heraus, dass mehr Leute dich anschreien -> yay, du hast gerade die Reste gefunden
  • neue Anforderungen sammeln
  • Starten Sie erneut und migrieren Sie die Dienste
  • Wiederholen Sie die letzten 4 Schritte, bis für einen Monat keine Personen mehr nach Ihnen kommen
  • Stellen Sie den Server erneut bereit (und lassen Sie ihn vom Management abzeichnen!)
  • Spülen und wiederholen Sie den gesamten Vorgang.
    • Der neu bereitgestellte Server ist Ihr neues Ersatzserver

Was hast du gewonnen?

  • Inventar aller Dienstleistungen (für Sie und das Management)
  • Dokumentation (schließlich müssen Sie etwas für das Management aufschreiben, warum nicht richtig machen und etwas für Sie und das Management machen)

Wurde dort das gemacht, macht es überhaupt keinen Spaß :(

Warum müssen Sie es vom Management abzeichnen lassen?

  • Machen Sie die Probleme sichtbar
  • Stellen Sie sicher, dass Sie nicht gefeuert werden
  • Gelegenheit, Risiken zu erklären
    • Es ist in Ordnung, wenn sie nicht wollen, dass Sie es tun, aber es ist schließlich ihre Entscheidung, zu treffen, nachdem sie genug Input erhalten haben, um zu beurteilen, ob sich die Investition lohnt.

Oh, und präsentieren Sie ihnen den Gesamtplan, bevor Sie beginnen , mit einigen Schätzungen darüber, was im schlimmsten und besten Fall passieren wird.

Es wird viel Zeit unabhängig von Umschichtungen kosten , wenn Sie Dokumentation nicht haben. Sie müssen nicht an Hintertüren denken. Wenn Sie keine Dokumentation haben, ist eine fortlaufende Migration der einzige Weg, um einen vernünftigen Zustand zu erreichen, der einen Mehrwert für das Unternehmen bietet.

Martin M.
quelle
Das ist eine sehr gute Perspektive. Vielen Dank. Ich werde auf jeden Fall Ihren Ratschlägen folgen: Dinge vom Management abzeichnen lassen und Server langsam neu bereitstellen. Es wird weh tun, aber es klingt nach der besten vernünftigen Vorgehensweise.
Lorenzog
Durch die richtige Dokumentation schlage ich Folgendes vor : serverfault.com/questions/25404/… (siehe auch das allgemeine Thema) funktioniert sehr gut (zumindest für mich)
Martin M.
4

Haben Sie Grund zu der Annahme, dass der vorherige Administrator etwas Schlechtes hinterlassen hat, oder schauen Sie sich einfach viele Filme an?

Ich möchte nicht scherzhaft sein, ich versuche eine Vorstellung davon zu bekommen, welche Art von Bedrohung Ihrer Meinung nach vorhanden ist und wie wahrscheinlich sie ist. Wenn Sie der Meinung sind, dass die Chancen sehr hoch sind, dass tatsächlich ein ernsthaft störendes Problem vorliegt, würde ich vorschlagen, es so zu behandeln, als wäre es ein erfolgreicher Netzwerkeinbruch .

In jedem Fall möchten Ihre Vorgesetzten nicht, dass Ausfallzeiten unterbrochen werden, während Sie sich damit befassen. Wie stehen sie zu geplanten Ausfallzeiten, um Systeme aufzuräumen, im Vergleich zu ungeplanten Ausfallzeiten, wenn ein Fehler im System vorliegt (ob ein echter Fehler oder ein Fehler)? Rogue Admin) und wenn ihre Einstellung realistisch ist im Vergleich zu Ihrer Einschätzung der Wahrscheinlichkeit, dass Sie hier wirklich ein Problem haben werden.

Was auch immer Sie tun, beachten Sie Folgendes:

Machen Sie sich jetzt ein Bild von den Systemen . Bevor Sie etwas anderes tun. Nehmen Sie zwei und legen Sie eine beiseite und berühren Sie sie erst wieder, wenn Sie wissen, was, wenn überhaupt, mit Ihrem System passiert. Dies ist Ihre Aufzeichnung darüber, wie das System war, als Sie es übernommen haben.

Stellen Sie den "zweiten" Satz von Images auf einigen virtuellen Maschinen wieder her und verwenden Sie diese, um zu prüfen, was gerade passiert. Wenn Sie befürchten, dass Dinge nach einem bestimmten Datum ausgelöst werden, legen Sie das Datum in der virtuellen Maschine etwa ein Jahr vor.

Rob Moir
quelle
Ich habe Grund zu der Annahme, dass möglicherweise etwas lauert, da wir uns nicht zu den besten Bedingungen getrennt haben. Der vorherige Systemadministrator war ein guter Freund, wir waren während des Studiums Mitbewohner und ich "brachte" ihm viele der Tricks bei, die er später als Systemadministrator verwendete, während ich den Weg der Softwareentwicklung und des Projektmanagements beschritt. Da es sich um persönliche Gefühle handelt (er beschuldigte mich, ihn gefeuert zu haben), kann ich kein vernünftiges Verhalten erwarten. Nehmen Sie es als eine Vater-Sohn-Beziehung, in der der Sohn dem Vater bis zu einem gewissen Grad seine Güte beweisen möchte.
Lorenzog
4

Wenn Sie zusätzliche Zeit in dieses Projekt investieren möchten, würde ich Ihnen zunächst raten, dafür tatsächlich bezahlt zu werden. Es scheint, dass Sie unbezahlte Überstunden als Tatsache akzeptiert haben, gemessen an Ihren Worten - meiner Meinung nach sollte es nicht so sein, und besonders nicht, wenn Sie wegen der Schuld eines anderen in einer solchen Notlage sind (sei es das Management, der alte Systemadministrator oder wahrscheinlich eine Kombination aus beiden).

Fahren Sie die Server herunter und starten Sie im Einzelbenutzermodus (init = / bin / sh oder 1 bei grub), um nach Befehlen zu suchen, die bei der Anmeldung von root ausgeführt werden. Hier sind Ausfallzeiten erforderlich. Machen Sie dem Management klar, dass es keine andere Wahl gibt als Ausfallzeiten, wenn Sie sicher sein möchten, dass Sie Ihre Daten behalten können.

Schauen Sie sich danach alle Cronjobs an, auch wenn sie echt aussehen. Führen Sie außerdem so bald wie möglich vollständige Sicherungen durch - auch wenn dies Ausfallzeiten bedeutet. Sie können Ihre vollständigen Sicherungen in laufende VMs umwandeln, wenn Sie möchten.

Wenn Sie dann neue Server oder fähige VMs in die Hände bekommen können, würde ich die Dienste tatsächlich nacheinander in neue, saubere Umgebungen migrieren. Sie können dies in mehreren Schritten tun, um wahrgenommene Ausfallzeiten zu minimieren. Sie erwerben dringend benötigte fundierte Kenntnisse der Dienste und stellen gleichzeitig Ihr Vertrauen in die Basissysteme wieder her.

In der Zwischenzeit können Sie mit Tools wie chkrootkit nach Rootkits suchen . Führen Sie nessus auf den Servern aus, um nach Sicherheitslücken zu suchen, die der alte Administrator möglicherweise verwendet.

Bearbeiten: Ich glaube, ich habe den "anmutigen" Teil Ihrer Frage nicht so gut angesprochen, wie ich konnte. Der erste Schritt (in den Einzelbenutzermodus wechseln, um nach Anmeldefallen zu suchen) kann wahrscheinlich übersprungen werden - der alte Systemadministrator, der Ihnen das Root-Passwort gibt und die Anmeldung für a rm -rf /einrichtet, entspricht fast dem Löschen aller Dateien selbst wahrscheinlich macht das keinen Sinn. Gemäß dem Sicherungsteil: Versuchen Sie, eine rsyncbasierte Lösung zu verwenden, damit Sie den größten Teil der anfänglichen Sicherung online durchführen und Ausfallzeiten minimieren können.

Eduardo Ivanec
quelle
0

Ich werde Zeit investieren, um zu lernen, welche Apps auf diesen Servern ausgeführt werden. Nachdem Sie wissen, was was ist, können Sie jederzeit einen neuen Server installieren. Wenn Sie der Meinung sind, dass dies eine Hintertür sein könnte, ist es eine gute Idee, einfach im Einzelmodus zu booten oder eine Firewall zwischen den Servern und dem externen Netz zu haben.

silviud
quelle
0

Sie werden paranoid in Bezug auf Sicherheit. Es besteht keine Notwendigkeit, paranoid zu werden. (Weil du über Sprengfallen sprichst). Gehen Sie die installierte Softwareliste durch. Sehen Sie, was der Dienst ausführt (netstat, ps usw.), siehe Cron-Jobs. Deaktivieren Sie das vorherige sys admin-Benutzerkonto, ohne das Konto zu löschen (einfach durch Zeigen der Shell auf nologin). Sehen Sie sich die Protokolldateien an. Ich denke, mit diesen Schritten und aufgrund Ihres Wissens über die Unternehmensanforderungen, anhand derer Sie die Verwendung der Server erraten können, sollten Sie in der Lage sein, sie ohne größere Fehler zu warten.

Bagavadhar
quelle
1
Ich bin damit einverstanden, dass es in erster Linie nicht um Sicherheit geht (sonst hätten sie den alten Administrator überhaupt nicht einstellen sollen). Aber es geht darum, wie viel Wert man hinzufügen kann. Über den Rest bin ich völlig anderer Meinung. Es gibt einfach keinen vernünftigen Weg ohne irgendeine Art von Inventar, um Dinge zu verwalten. Der Benutzer wird nach einiger Zeit kommen und Sie schlagen, weil etwas, das Sie noch nie zuvor gehört haben, nicht mehr funktioniert. Schließlich steckt hinter jedem sichtbaren Dienst des Benutzers eine gewisse Infrastruktur. Und es gibt nicht einmal Dokumentation über diese Dienste ...
Martin M.