web-dev-qa-db-ja.com

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

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

私の質問は、彼がブービートラップを残したと仮定して、ダウンタイムをできるだけ少なくしてサーバーを適切に引き継ぐにはどうすればよいですか?

詳細は次のとおりです。

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

両方のサーバーにパッチが適用されており、最新であると想定します。そのため、正当な理由がない限り(つまり、上級管理職に説明できる場合を除いて)、ハッキングを試みたくありません。

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

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

サーバーファームの管理者に移動し、サーバーをポイントして、「Sudoそのサーバーをシャットダウンしてください」と伝え、シングルユーザーモードでログインして、それを使用することができます。内部サーバーについても同じです。それでも、それはダウンタイム、上級管理職の動揺、古いシステム管理者が私に反撃することを意味します。あなたは私の仕事をすることができません」と他の迷惑、そして最も重要なことに、私は潜在的に数週間の無給の時間を失う必要があります。

スペクトルの反対側では、サーバーを介してルートおよびインチとしてログインし、何が起こっているのかを理解しようとすることができます。驚きを引き起こすすべてのリスクが残されています。

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

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

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

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

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

10
lorenzog

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

(最後から)

  • 完全に新しい展開

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

一般的なプロセス

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

何を得ましたか?

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

そこに行って、それはまったく楽しいことではありません:(

なぜあなたはそれを管理者によって承認される必要があるのですか

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

ああ、そして始める前に全体的な計画を彼らに提示してください、最悪の場合と最良の場合に何が起こるかについてのいくつかの見積もりを添えて。

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

12
Martin M.

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

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

その後、合法的に見えても、すべてのcronジョブを調べます。また、ダウンタイムを意味する場合でも、できるだけ早く完全バックアップを実行してください。必要に応じて、完全バックアップを実行中のVMに変えることができます。

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

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

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

4
Eduardo Ivanec

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

私はファセットになることを求めているのではなく、あなたがどのような脅威があると思い、それがどれほどありそうかを理解しようとしています。ある種の深刻な破壊的問題が実際に存在する可能性が非常に高いと思われる場合は、それを処理することをお勧めします ネットワークへの侵入が成功したかのように

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

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

今すぐシステムrの画像を撮ります。あなたが何かをする前に。実際、2つ取って、1つを脇に置き、システムで何が起こっているかがわかるまで、もう一度触れないでください。これは、システムを引き継いだときのシステムの状態の記録です。

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

4
Rob Moir

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

0
silviud

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

0
bagavadhar