(UNIX)本番サーバーを正常に引き継ぐためのヒント


10

何ヶ月も放置された後、電子メールの炎と管理の戦いが発生し、現在のシステム管理者が解雇され、「サーバー資格情報」を私に手渡されました。このような資格情報は、ルートパスワードのみで構成されています。手順、ドキュメント、ヒント、何もありません。

私の質問は次のとおりです。彼がブービートラップを残したと仮定して、ダウンタイムを最小限に抑えてサーバーを適切に引き継ぐにはどうすればよいですか。

詳細は次のとおりです。

  • 地下のサーバーファームにある1つの運用サーバー。ubuntuサーバー9.x、おそらくgrsecパッチ(前回管理者に聞いたときの噂)
  • すべての内部ドキュメント、ファイルリポジトリ、wikiなどを含む1つの内部サーバー。繰り返しますが、ubuntuサーバー、数年前のものです。

両方のサーバーにパッチが適用され、最新の状態になっていると仮定します。そのため、正当な理由がない限り(つまり、上層部に説明できる場合を除き)、ハッキングを試みたくないと思います。

本番サーバーには、ホストされているいくつかのWebサイト(標準のapache-php-mysql)、LDAPサーバー、ZIMBRA電子メールスイート/サーバーがあり、稼働しているいくつかのvmwareワークステーションを知ることができます。何が起こっているのかわかりません。おそらく1つはLDAPマスターですが、それは大まかな推測です。

内部サーバーには、内部wiki / cms、本番サーバーから認証情報を複製するLDAPスレーブ、さらにいくつかのVMwareワークステーション、および実行中のバックアップがあります。

私はサーバーファームの管理者に移動し、サーバーをポイントして、「sudoそのサーバーをシャットダウンしてください」と伝え、シングルユーザーモードでログインして、自分のやり方で進むことができます。内部サーバーについても同様です。それでも、それはダウンタイム、上層部の混乱、古いシステム管理者が私を攻撃して「参照してください?あなたは私の仕事をすることはできません」と他の迷惑です、そして最も重要なこととして私は潜在的に数週間の無給の時間を失う必要があります。

スペクトルの反対側では、何が起こっているのかを理解するために、サーバーにrootとしてログインしてサーバーを介してログインできます。サプライズを引き起こすリスクはすべて残されています。

私は真ん中の解決策を探しています:何が起こっているのか、そしてどのようにしているかを理解しながら、すべてをそのままの状態で実行し続けることを試み、最も重要なのは、残されたブービートラップのトリガーを回避することです。

あなたの提案は何ですか?

これまでのところ、内部サーバーで「練習」し、ネットワークを切断し、ライブCDで再起動し、ルートファイルシステムをUSBドライブにダンプし、切断された分離された仮想マシンにロードして、以前のsysadminの方法を理解することを考えました考えている(a-la「あなたの敵を知る」)。本番サーバーで同じ偉業を引き出すことはできますが、完全なダンプは誰かに気付かれます。おそらく、rootとしてログインし、crontabを確認し、.profileで起動されたコマンドを確認し、最後のログをダンプするなど、思いついたすべてのことを実行できます。

そして、それが私がここにいる理由です。どんなに小さなヒントでも、どんなものでも大歓迎です。

時間も問題です。数時間または数週間でトリガーが発生する可能性があります。悪いハリウッド映画の1つに感じますね。


5
なぜシステム管理者は解雇されたのですか?これは勝ち目のない状況のようです。あなたが何をすべきか、そして正確に何がサーバー上にあるのかわからない場合、これはうまく終わりません。
cstamas

@cstamas sysadminが起動されたのは、実行したすべての要求(つまり、ユーザーをメーリングリストに追加したり、電子メールエイリアスを作成したりするなど)にかかる時間が、t = 1日とt = 2か月の間のランダム変数であったためです(含む)。そして彼は決してそれを認めなかった。さらに、ここでは詳しく説明しませんが、その他の悪い動作もたくさんあります。
lorenzog

@lorenzogが意味をなすようになりました。簡単な作業ではないようです。すでにすばらしい答えがあります。幸運を!
cstamas

1
@serverhorror:いいえ、私がこの会社に入る前に彼らは彼を雇っただけで、今では彼は十分ではないことが判明しました。以前から彼を知っていたので、「彼と取引する」という仕事をしました。想定に注意してください。
lorenzog

1
@lorenzog:これはあなたのことではありません。重要なのは、文書化されていないインフラストラクチャの状況が発生する可能性があることは、実際にはマネージャーの責任である(それが誰であっても)-先ほど述べたように、攻撃だけではない(主観的な観察が許可された)
Martin M.

回答:


12

他の人が言ったように、それは緩い状況のように見えます。

(最後から)

  • 完全に新しい展開

もちろん、サーバーを停止して、インストーラーに魔法をかけてもらうことはできません。

一般的なプロセス

  • バックアップサーバーの予算を取得します(データのストレージのようにバックアップします)
  • データのスナップショットを作成し、何かを行う前にそこに配置します
  • 管理者の承認を得てください!
  • 要件のリストを収集します(Wikiが必要か、誰がVMWareインスタンスを使用しているかなど)。
    • 管理
    • ユーザーから
  • 管理者の承認を得てください!
  • 1週間、リストにないサービスをシャットダウンします(一度に1つのサービス -外部サービスをシャットダウンしたいが、同じホスト上のアプリケーションからまだ使用されている可能性がある場合は、iptablesが役立ちます)
    • 無反応?->最終バックアップ、サーバーから削除
    • 反応?->サービスのユーザーと話す
    • 管理者が承認した新しい要件 Geetを集めてください!
  • リストにないサービスはすべて1か月間停止し、反応はありませんか?-> rm -rf $service(厳しいように聞こえますが、私が言っているのはサービスの廃止です)
  • 予備サーバーの予算を取得する
  • 一度に1つのサービスをスペアに移行する
  • 管理者の承認を得てください!
  • 移行したサーバーをシャットダウンする(電源を切る)
  • より多くの人々があなたに向かって叫びに来るのを見つけてください->そう、あなたは残り物を見つけた
  • 新しい要件を収集する
  • 再起動してサービスを移行
  • 1か月後にあなたの後に来る人がなくなるまで、最後の4つのステップを繰り返します
  • サーバーを再デプロイします(そして、管理者がサインオフします!)
  • すすぎ、プロセス全体を繰り返します。
    • 再デプロイされたサーバーは新しいスペアです

あなたは何を得ましたか?

  • すべてのサービスのインベントリ(管理者向け)
  • ドキュメンテーション(管理のために何かを書き留める必要があるので、適切にそれを行い、あなたと管理のために何かを作ってみませんか)

そこに行って、それはまったく面白くない:(

なぜあなたはそれを経営陣によって承認する必要があるのですか?

  • 問題を可視化する
  • あなたが解雇されないことを確認してください
  • リスクを説明する機会
    • 彼らがあなたにそれを望まないのは問題ありませんが、結局のところ、投資に価値があるかどうかを判断するのに十分な情報を得た後で彼らが決定するのは彼らの決定です。

ああ、そして開始する前に全体的な計画を彼ら提示してください

それはなりますが、ドキュメントを持っていない場合にかかわらず、再デプロイメントの多くの時間を要しました。バックドアについて考える必要はありません。ドキュメントがない場合、IMHOはローリング移行が会社に価値をもたらす健全な状態に到達する唯一の方法です。


それは非常に良い見方です。ありがとうございました。私は確かにあなたのアドバイスに従います:物事を管理者からサインオフさせ、サーバーのゆっくりとした再配備を行います。害はありますが、それは最善の合理的な行動のように聞こえます。
lorenzog

適切なドキュメントで私はこれをお勧めします:serverfault.com/questions/25404/…(一般的なトピックも参照)は非常にうまく機能します(少なくとも私にとって)
Martin M.

4

前の管理者が何か悪いものを残したと信じる理由がありますか、それともたくさんの映画を見るだけですか?

私は面白くなることを求めているのではなく、あなたがどんな種類の脅威があると思うか、そしてそれがどれほどの確率であるかについての考えを得ようとしています。何らかの深刻な破壊的な問題が実際に存在する可能性が非常に高いと思われる場合は、ネットワーク侵入が成功したかのように扱うことをお勧めします

いずれにせよ、上司は、これに対処する際のダウンタイムの中断を望まない-システムに障害がある場合(実際の障害か不正な管理者)、そして彼らの態度が現実的であるかどうか、ここで実際に問題が発生する可能性の評価。

他に何をするにしても、次のことを考慮してください。

今すぐシステムのイメージを撮ってください。他に何をする前に。実際、2つ取り、1つを脇に置いて、システムで何が起こっているかを把握するまで、再度触れないでください。これは、システムを引き継いだときのシステムの記録です。

「2番目」のイメージセットを一部の仮想マシンに復元し、これらを使用して何が起こっているかを調査します。特定の日付以降にトリガーされることが心配な場合は、仮想マシンで1年ほど前に日付を設定します。


私たちは最善を尽くしたわけではないので、何かが潜んでいるのではないかと疑う理由はあります。以前のシステム管理者は親友で、大学時代はルームメイトだったので、ソフトウェア開発とプロジェクト管理の道のりを歩んでいる間、彼が後でシステム管理者になるために使用したトリックの多くを「教えました」。個人的な感情が関係しているため(彼は私をなんとか解雇したと非難した)、合理的な行動は期待できません。それを父親と息子の関係として考えてください。息子は父親に自分の良さをある程度証明したいと考えています。
lorenzog

4

まず第一に、あなたがこれに余分な時間を投資するつもりなら、私は実際にそれに支払われることをお勧めします。あなたの言葉から判断すると、あなたは無給の残業を事実として受け入れたようです-私の意見では、それはそのようであるべきではありません古いシステム管理者またはおそらく両方の組み合わせ)。

サーバーを停止し、シングルユーザーモード(init = / bin / shまたはgrubで1)で起動して、rootのログインで実行されるコマンドを確認します。ここではダウンタイムが必要です。データを保持できるようにするには、ダウンタイムがないことを経営陣に明確に伝えます。

その後、正当に見えても、すべてのcronjobを調べます。また、ダウンタイムを意味する場合でも、できるだけ早くフルバックアップを実行してください。必要に応じて、完全バックアップを実行中のVMに変換できます。

次に、新しいサーバーまたは対応するVMを手に入れられる場合は、実際にサービスを1つずつ新しいクリーンな環境に移行します。知覚されるダウンタイムを最小限に抑えるために、これをいくつかの段階で行うことができます。基本システムへの信頼を取り戻しながら、サービスに関する多くの必要な詳細な知識を得ることができます。

それまでの間、ツールをchkrootkitとして使用してルートキットを確認できます。サーバーでnessusを実行して、古い管理者が使用しているセキュリティホールを探します。

編集:私はあなたの質問の「優雅な」部分に私が対処できなかったと思います。最初のステップ(シングルユーザーモードでログイントラップを確認する)はおそらくスキップできます。古いシステム管理者にrootパスワードを与えてログインを設定すると、rm -rf /すべてのファイルを自分で削除するのとほとんど同じなので、おそらくそれをしても意味がありません。バックアップの部分ごとrsyncに、最初のバックアップのほとんどをオンラインで実行してダウンタイムを最小限にできるように、ベースのソリューションを使用してみてください。


0

これらのサーバーで実行されるアプリの学習に時間を費やします。いつ何が何であるかがわかったら、新しいサーバーをインストールできます。これがバックドアであると思われる場合は、シングルモードで起動するか、サーバーと外部ネットの間にファイアウォールを設置することをお勧めします。


0

セキュリティについて偏執的です。偏執狂する必要はありません。(あなたがブービートラップについて話すb'cos)。インストールされているソフトウェアのリストを確認します。実行中のサービス(netstat、psなど)を確認し、cronジョブを確認します。アカウントを削除せずに以前のsys adminユーザーアカウントを無効にします(シェルにnologinをポイントすることで簡単に実行できます)。ログファイルを確認します。これらの手順と、サーバーの使用を推測できる会社のニーズに関する知識があれば、大きな問題がなくてもサーバーを維持できるはずです。


1
そもそもセキュリティの問題ではないことに同意します(そうでなければ、古い管理者を雇うべきではありませんでした)。しかし、それはどれだけの付加価値を与えることができるかについてです。私は残りのすべてについて完全に同意しません。物事を管理するための何らかのインベントリがなければ、正気な方法はありません。あなたが何かが仕事をやめる前に聞いたことがないので、ユーザーはしばらくして来てあなたを襲います。結局のところ、すべてのユーザー可視サービスの背後にはかなりのインフラストラクチャがあります。そして、それらのサービスに関するドキュメントすらありません...
マーティンM.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.