web-dev-qa-db-ja.com

VPSインストールを保護するにはどうすればよいですか?

ブログや個人プロジェクトをホストするためにWebminをインストールする予定のVPSインストールを保護する基本的な手順は何ですか?

16
JFW

この同様の質問に対するdanlefreeの答えは、ここで非常に関連しています: 管理されていないVPSはどれくらい難しいですか?

サーバーの保護は、1回限りのタスクではありません。

最初の1回限りのタスクは次のとおりです。

  • SSHdの強化(このためのヒントやチュートリアルが多数あります。 this は、検索で最初に登場した格好良いものでした。
  • 不要なサービスがオフになっていることを確認します(または、アンインストールすることをお勧めします)。
  • 公に利用する必要のないサービスがそうでないことを確認してください。たとえば、ローカルインターフェースでのみリッスンするようにデータベースサーバーを構成するか、外部接続の試行をブロックするファイアウォールルールを追加します。
  • Webサーバープロセス(およびその他のサービス)のユーザーが、それらに関係のないファイル/ディレクトリへの読み取りアクセス権を持たず、選択したファイル/ディレクトリへの書き込みアクセス権を必要としない限り、他のユーザーへの書き込み権がないことを確認する(たとえば、アップロードされた画像を受け入れるため)。
  • 適切な自動バックアップルーチンを設定してオンラインバックアップを保持し(別のサーバーまたは自宅に保存することをお勧めします)、コンテンツが他の場所にコピーされ、サーバーに最悪の事態が発生した場合に回復できるようにします(完全に回復不能なクラッシュまたはハッキング)
  • サーバーにインストールしたすべてのツールについて学ぶ(ドキュメントを読んで、おそらくテスト環境、たとえばローカルVMにインストールしてください)仮想ボックスの下で、さまざまな構成を試して、それらを壊して修正します)それにより、問題が発生した場合に修正することができます(または、少なくとも適切に診断して、他の誰かが問題を修正できるようにします)。将来のある時点でこれに費やした時間に感謝します!

進行中のタスクは次のとおりです。

  • ベースOSのセキュリティ更新プログラムがタイムリーに適用されるようにします。 apticron などのツールを使用して、適用する必要のある更新を常に把握できます。自動的に更新を適用するセットアップを避けます-実行する前に(debian/ubuntuの場合)aptitude safe-upgradeを変更する内容を確認したいので、サーバーに何をしようとしているかがわかります。
  • 手動でインストールするライブラリ/アプリ/スクリプト(つまり、組み込みのパッケージ管理を使用したディストリビューションの標準リポジトリからではない)への更新も、タイムリーにインストールされていることを確認してください。そのようなlibs/apps/scriptsには、更新のアナウンスのための独自のメーリングリストがある場合があります。または、定期的にWebサイトを監視して、最新情報を入手する必要があります。
  • パッチを当てたパッケージではなく、構成の変更によって修正する必要がある、またはパッチを当てたパッケージが作成され、テストされ、リリースされるまで回避する必要があるセキュリティの問題に関する情報を保持します。ディストリビューションを管理している人々が運営するセキュリティ関連のメーリングリストを購読し、そのような問題を報告する可能性のあるテクノロジーサイトに注目してください。
  • 余分な妄想のために何らかの形のオフラインバックアップを管理する。サーバーをホームマシンにバックアップする場合は、定期的にコピーをCD/DVD/USBスティックに書き込みます。
  • バックアップをときどきテストするため、バックアップが正しく機能していることがわかります。テストされていないバックアップは適切なバックアップではありません。サーバーを停止させたくない場合、データが数か月間適切にバックアップされていないことを確認します。

すべての優れたLinuxディストリビューションは、(少なくともインストールCD /イメージが押された/リリースされてからリリースされたセキュリティパッチを取り込むと、少なくとも最初の更新セットの後)合理的な安全な状態でインストールされます。仕事は難しくありませんが、期待以上にうまくやるには時間がかかります。

13
David Spillett

Linux VPSの素晴らしいところは、すぐに使えることです。ただし、ホストと話し合い、セキュリティを強化または最適化するかどうかを確認することを最初に推奨します。コントロールパネル(webmin、cpanelなど)を備えたほとんどのVPSは「管理」されており、多くのことを行います。特に、あなたが何をしているのかよくわからない場合は、これが最良の選択だと思います。

自分でいる場合は、まずAPF(Advanced Policy Firewall?)やCSF(ConfigServer Firewall)などのファイアウォールを見てください。 CSFにはログイン失敗検出のオプションがあり、ログインしようとして何度も失敗すると、IPアドレスが自動的に禁止されます。 Linuxはトラフィックをリッスンしていないポートで応答しないため、これらが「必要」であるかどうかはわかりませんが、確かに心の一部を提供します。また、さまざまなトラフィック用に多数のポートを開いている場合は、おそらくファイアウォールが必要です。

おそらくもっと重要なことは、インストールするアプリケーションが最新であることを確認することです。サーバーOSでのエクスプロイトを介した場合よりも、Wordpressエクスプロイトを介してハッキングされるサイトの数が多くなります。カスタムコーディングスクリプトを使用している場合は、連絡先フォームのようなばかげたものを不注意に開いたままにしたくないため、セキュリティにも注意を払ってください。

4
elconejito

VPSを含む任意のマシンの保護は正確なレシピではありませんが、2つの主要なVPSプロバイダーのチュートリアルから始めることができます: Linode Library および Slicehost Articles

3
intlect
  • 不要なサービスを削除します( netstat はあなたの友達です)

  • サービス広告を無効にします(バージョン番号を明らかにすると、 Scriptkiddies に最適です)

  • 管理用(パブリックではない)ポート番号を不明瞭なものに変更します(22のSSHは継続的にスキャンされます)

  • クォータと制限を作成します: cgroupslimits.confqos など-そして積極的に監視します-Web開発者のコ​​ードまたはDDoS攻撃がサイトを破壊し、ボックスに到達できない場合は遅すぎます修正する

  • 一部のディストリビューションには、 SELinux / AppArmor / etcベースのアプリのプロファイル、それらを使用する

最初の3つは、WebMinを介して(ある方法で)実行できます。ただし、 ServerFault を調べてください。

2
Metalshark

あなたはwebminに言及しているので、Linuxボックスになるでしょう。そのサーバーにインストールする特定のLinuxディストリビューションのドキュメントを確認してください。

CentOSについては、これを参照してください http://wiki.centos.org/HowTos/OS_Protection

1
Cristi

ほんのいくつかのポイント。 -SSHポートを変更します。 -ファイルのディレクトリ一覧を無効にします。 -サーバー署名、トークンを削除します。 -ファイアウォールをインストールする

もっとたくさんのことがあります。

1
Vamsi Krishna B