web-dev-qa-db-ja.com

新しいUbuntuサーバーの保護

Ubuntuを新しくインストールしたとしましょう。Railsアプリケーションサーバーとして使用するためにセキュリティで保護するには、どのような手順を踏む必要がありますか?

37
Codebeef

Ubuntu固有の微調整は考えられませんが、すべてのディストリビューションに当てはまるものをいくつか次に示します。

  1. 不要なパッケージをすべてアンインストールします
  2. SSHで公開鍵のみの認証を使用する
  3. SSH経由のrootログインを無効にする(Ubuntuには適用されません)
  4. PHP(php.ini-recommended)のプロダクション設定を使用します
  5. ソケットのみを使用するようにMySQLを構成する

もちろん、このリストは完全なものではなく、完全に安全になることは決してありませんが、実際にはすべてのエクスプロイト[〜#〜] i [〜#〜]が見られます。

また、私が見たエクスプロイトは、ほとんどの場合、安全でない構成ではなく、安全でないユーザーコードに関連しています。最小限のサーバー構成でのデフォルト構成はかなり安全な傾向があります。

25
Can Berk Güder

私が早い段階で行う1つの簡単なことは、インストール DenyHosts です。定期的に/ var/log/secureを調べ、失敗したログインを探し、2、3回失敗した後、IPをブロックします。最初のno-such-userの後、2回目のrootでの試行時、および実際のユーザーを数回試行した後にブロックするように設定しました(失敗した場合でも、SSH公開鍵を使用してログインする必要があります)。

17
Alister Bulman

UbuntuはDebianをベースにしており、 Securing Debian Manual は、Debianベースのディストリビューションで、システム全体を調べ、すべての部分をチェックするのに非常に役立つことがわかりました。それは基本的にあなたの質問に対する本当に、本当に包括的な答えです。

10
Mike McQuaid

私は通常、ルートキットをスキャンしてさまざまな重要なシステムバイナリの整合性チェックを行うRKHunterをインストールします。これは標準のリポジトリにあり、cronから毎日実行されます。これは完璧ではなく、セキュリティ面でも優れていますが、追加する手間が少なく、保護手段を提供します。

5
Tim Howland

Logcheckをインストールしますが、通常のイベントからメッセージを受信しないように調整してください。そうしないと、電子メールを無視する癖が付きます。

Netstatを使用してリッスンしているプロセスを確認し、実行する必要のないものが実行中でないことを確認します。多くのデーモンは、すべてのインターフェースではなく、内部IP(またはlocalhost)でのみリッスンするように構成できます。

4
Mikeage

Canが提案することを行う...

ホストをNmapし、すべての重要でないサービスを無効にします。必要に応じてiptablesを使用します。

3
Jauder Ho

/tmp/varなどのさまざまなディレクトリに個別のパーティションを使用し、可能であればnosuidnodevおよびnoexecを使用してそれらをマウントします。

3

サーバーのあるインターネットの近くに行く場合は、snortなどの侵入検知システムをインストールします。

3
Timo Geusch

ファイアウォールの提案。

ファイアウォールの使い方と、ボックスを適切にロックする概念を学びます。デフォルトのポートを変更することは、ほとんど役に立たないことです。適切なアプリケーションとファイアウォールの構成がはるかに重要です。

どちらもUbuntuリポジトリにあります。

FireHOL

すばらしいドキュメントがあり、構文を学ぶのが非常に簡単です。ゲートウェイ/ファイアウォールを20分でセットアップできました。私がこれから離れた唯一の理由は、それが維持されていないように見えることです(2年前の最後のリリース)。機能しないという意味ではありませんが...

Ferm

別のものです。 iptablesに似た構文ですが、概念は同じです。 FireHOLよりも多くのコミュニティが維持されていますが、ピックアップに時間がかかります。

Shorewall

私が現在使用しているものです。そのドキュメントは豊富で、その構成フォーマットは表形式です。ファイアウォール/ゲートウェイ構成を実行するために必要なすべてのファイル(6)を理解するのに、約1時間半かかりました。それは非常に強力です。ヒント:さまざまな設定ファイルのmanページは本当に役に立ちます!

これらはすべて、構成ファイルからファイアウォール構成を読み込みます。非常に効果的で、iptablesよりもすぐに使いやすく、(私の意見では)ufwよりも使いやすく、管理が簡単です。

その他:

  • 次に、SSHキーの使用に関する推奨事項を示します。

  • IDSをセットアップします。

  • AppArmorについて学んでください。実行可能ファイルのファイルアクセスを、指定したディレクトリと必要なファイルのみに制限します。 RHELの世界のSELinuxに似ています。多くのよく使われているプログラム用に事前設定された「プロファイル」をインストールして有効にします。

3

ここで他の提案と同様に、私は明白であるが完全性のために言及する価値がある3つに言及します。

  1. ファイアウォールが必要ないと思われる場合は、もう一度考えてください。 ufwはシンプルですが、Ubuntu用に設計されており、iptablesに基づいています
  2. パッケージを更新します。少なくとも、すべてのセキュリティパッチを適用します。
  3. サーバーを保護するために行ったこととその理由を文書化します。ログの監視、構成のテスト、および必要なセキュリティ更新のレポートを行うための構成(自動化)プロセスを含めます。
2
mas