web-dev-qa-db-ja.com

SSHアクセスがある場合、サーバーを保護し、(危険な)ユーザーアクションを監視するにはどうすればよいですか?

コンテキスト:

  • 中小企業。ほとんどがWebアプリケーションのソフトウェアハウスですが、一部のデスクトップソフトウェアも含まれます。
  • 多くの外部の協力者。サーバーにアクセスできるさまざまな外部ユーザー。
  • LinuxおよびXenを仮想化ソリューションとして使用する単一の物理サーバー-各VMには特定の用途があり、アクセスが制御されています。外部ユーザーはそのうちの2つにアクセスできます
  • (仮想)サーバーは、LAMPスタック、電子メール、DNSなど、さまざまなサービスを提供します。この質問は、ローカルユーザーアクセスに関する私の懸念に関係します。
  • ユーザーは2つのVMにSSH接続できます

要件

  • Web(PHP、Ruby on Railsなど))とスタンドアロンアプリケーション(gcc、g ++など)の両方の一般的な開発ツールにユーザーがアクセスできるようにします。これには、コンパイラなどだけでなく、現在、彼らは完全なシェルアクセス権を持っています。
  • ユーザーはサーバーでソース管理を使用できる必要があります:svnおよびgit
  • 一部のユーザーはMySQLデータベースにアクセスできます

質問

次のことを行うためにどのような手順を実行する必要がありますか?

  1. 可能な場合は完全なシェルをユーザーに提供するか、安全な方法で上記の要件を満たす同等のソリューションを提供します
  2. 可能であれば危険なアクティビティの監視を自動化します(Sudo/su通知など)
  3. ユーザーがサーバーでパッチを適用する前に0day特権エスカレーションエクスプロイトを手にした場合の影響を最小限に抑える-これは可能ですか?
13
tomeduarte

ユーザーがサーバーにSSHを使用する必要がある場合、サーバールートを保護するための便利なツールは chroot です。これにより、実際に王冠を与えることなく、サーバールートの機能をユーザーに提供できます。

あるいは、とにかく仮想マシンを使用するので、仮想サーバーインスタンスを提供してみませんか?

これらの両方で、ファイルの変更をチェックするために監視ツール( tripwire など)を実行できます。ロギングはユーザーの環境外で行う必要があります。

/ etc/sudoersのエントリを使用すると、suでユーザーが実行できるアクティビティを制限できます。

9
Rory Alsop

また、ユーザーをbash 4(他のシェルの削除)の使用に制限し、すべてのコマンドを記録して、別のログサーバーにコピーを送信することもできます。

Bash:History to Sysloghttp://blog.rootshell.be/2009/02/28/bash-history-to-syslog/

これは、ユーザーのアクティビティを監査し、さらに重要なことに、誰かが何か悪いことをしたときにフォレンジックを実行するのに役立ちます。私はまた、完全な法的開示を行います。すべての活動は記録および監査され、違反者は起訴されます。

[〜#〜] ossec [〜#〜] (ホストベースの侵入検知システム)を展開することも役立ちます。悪いことを検出して警告するための多くの組み込みルールがあります。 OSSECは、すべてのSudo/suアクティビティを警告できます。

7
Tate Hansen

トンネリング、ポート転送を忘れないでください。デフォルトでは、sshd_configファイルのAllowTcpForwardingはyesであり、ユーザーは任意のポートを転送できます。想像以上のトラブルが発生する可能性があります。 (これは理想的なstackexchangeスタイルの回答ではありませんが、適切な回答を見つけることができませんでした。ポート転送を数文で要約することは困難です)アクセスを許可する前に、ポート転送について詳しく学ぶ必要があります。

簡単に言えばポート転送

SSHでは、単一のSSH接続を介してデータストリームを多重化できます。これらのストリームの1つ以上をport forwardにすることができます。これにより、攻撃者のクライアントコンピューターのポートへのトラフィックは、SSH接続を介して指定されたホストの指定されたポートサーバーから。つまり、シェルサーバーがMySQLサーバーなどにアクセスできる場合、SSHボックスに接続するユーザーは誰でもMySQLサーバーに直接アクセスできます。その後、SSHボックスで提供したソフトウェアに限定されるのではなく、独自のクライアントツールを使用できます。

6
Nathan B.