専用サーバーでWebサイトをホストするためのセキュリティチェックリスト - Linux


1

私はしばらく検索してきました。しかし、Webサイト/アプリケーション専用のホスティングサーバーに行く際に考慮すべき最も重要な事項を理解するためのスタートアップと高度なチェックリストを見つけることはできません。

私は大学で働いており、そこにIBMサーバーがインストールされています。

  1. OS:CentOSの6.4
  2. アプリケーションの種類:PHP/MYSQL
  3. ターミナルアクセスソフトウェア:SSHでのパテ(私も公開を作成した|プライベートトークン)

私が持っている他のソフトウェアインストールされています:

  1. Virtualmin(LAMPスタックをインストールするために私を助けた)
  2. Memcached

基本的に私はこのチュートリアルで見つけたすべての手順をyoutubeに従っています。 http://www.youtube.com/watch?v=lpJfFZoWeho

しかし、これはセキュリティに関して重要ではありませんでした。

私が知りたいのは、他の初心者のように、ベストなチェックリストがわかり、広範な側面で安全であることを保証することです。

これは、始めたい人のために大きな助けになるでしょう。

1

Red HatにはRHEL 6のセキュリティガイドがあり、CentOSにも適用されます。これはhereです。 CISはまた、hereというかなりまともなチェックリストを提供しています。

ただし、このサーバーがリモートで重要なものであれば、システムの徹底的な監査を行うために専門家を雇うことを強くおすすめします。


1

ソフトウェアにパッチを当ててください。特に、信頼できない情報源(ユーザー、インターネット、あなた以外の人)からの入力を受け入れるソフトウェアを使用してください。

必要なものだけを許可します。例:グローバルインバウンドSSHを許可せず、オフィスのIP範囲からの接続のみを許可します。

ユーザーが危険にさらされる可能性のある構成は避けてください。例:SSH鍵を要求し、パスワードを許可しない。ユーザが悪いパスワードを選ぶのは簡単ですが、悪い秘密鍵を選ぶのはずっと難しいです。

ドキュメントルートが明確に定義されていることを確認し、あなたが意図しより多くのファイルを提供していないデータベースのクエリはSQLインジェクションに耐性がある

を確認してください。

データベースアカウントが

は、ユーザー入力を取得し、実行したり、それを

を評価しているコード内の任意の場所を避けてください(彼らはおそらく例えば、テーブルのドロップを必要とし、作成しない)している権限を最小化あなたの弱点を特定し、保護緩和策を導入してください。例:memcachedには大きなアクセス制御機能がないため、localhostにバインドするか、IPTablesで不要な受信接続をブロックします。

価値のないユーザーに属するデータを削除します。あなたは持っていないものを失うことはできません。

ホスティング環境では、ホストがその環境にアクセスして制御できることも理解しています。回避できないリスクがいくつかあります。彼らが誤動作や間違いを犯すと、データとシステムが危険にさらされます。おそらく状態の秘密、おそらくあなたのサイトのための許容レベルのための罰金ではない。それはあなたが自分でしなければならない判断の呼び出しです。


1

@テリーのアドバイスは非常に堅実です。私はより概念的な見解を提示しましょう。

サーバー上で実行されるすべてのものが考慮され、適切に管理されている場合、サーバーは安全です。これは(それは)トートロジーのように聞こえるが、それはいくつかの一般的な原則を指し:

  • は、必ずソフトウェアベンダーからのセキュリティ更新プログラムを適用します。 Linuxディストリビューションにはそのためのツールがあります。それらを実行させてください。
  • 余分なソフトウェアとは、セキュリティパッチを適用するための余分な作業を意味するため、可能であれば、Linuxディストリビューションベンダーのソフトウェアをインストールしないでください。
  • 不要なものは実行しないでください。新しい空のOSのインストールでは、あなたの操作に厳密には必要でないかなりの数のサービスが生成される傾向があります。具体的には、がリモートで到達可能なサービスがマシンにあるかどうかを確認するにはnetstat -aを使用し、対応するプロセスを見つけるにはlsofを使用してください。
  • いつでも、適切に定義された責任のチェーンがあることを確認してください。何か悪いことが起こった場合、人々は連絡先と方法を知るべきです。システム管理者が明確に定義されていないサーバは、まもなくボットネットの一部になるサーバか、すでに存在するサーバです。あなたが休暇を取るときには、システム管理作業のために記入できる人がいることを確認してください。
  • バックアップを作成します。最後のバックアップを保持するのではなく、いくつかの連続したバックアップを保持してください。これは、事後分析の場合にのみ、攻撃後の回復に多くの手助けをします。サーバーがサービス可用性を実行することが主な目的であることに注意してください。頻繁で包括的なバックアップは、サービスをオンラインにするのに役立ちます。