本番用のセキュアなLAMPサーバー


10

Linux、Apache、MySQL、PHPサーバー(またはPerl)をプロダクション用に保護する手順は何ですか?

LinuxのMySQLパスワードとrootパスワードを設定する以外に、他にどのような(たぶんそれほど明白ではない)手順を実行する必要がありますか?

また、私が余分な偏執狂になるつもりだった場合、通常は必要ないかもしれませんが、どのようなステップを踏めますか?

これは基本的な単一サイトでの使用向けですが、安全でなければなりません。


姉妹サイトのApache Hardening
Marcin

回答:


13

これらの推奨事項は私の頭の上にありませんし、包括的であることを意図していません。

Bastilleをご覧ください。Linuxのベストプラクティスを実装する一連のスクリプトです。

平文プロトコルで認証データを送信しないでください。たとえば、FTPを無効にします。Apache経由で認証データを送信する場合は、SSLを使用します。

GUIインターフェイスを含む不要なソフトウェアを無効にして削除します。

SUIDビットが設定されているファイルを監査して削除します。(これにより、非ルート機能が大幅に制限されます。個々の変更の影響を理解してください。)

書き込み可能なパブリックディレクトリを監査し、書き込み可能なビットを削除します。(/ tmpはそのままにします。)

ルートとしてデーモンを実行しないでください。

セキュリティのベストプラクティスについて、ソケットをリッスンするすべてのマルチユーザーソフトウェアを詳細に調査します。

システムへのユーザーの追加を回避することは、最良のアプローチの1つです。マルチユーザーシステムでは、細部に注意を払う必要があります。

パスワード標準を適用します。例:10文字以上、英数字以外の文字、文字と数字を使用。これは、パスワードファイルが侵害された場合に、ブルートフォースをより困難にするためです。システムを介してこれを実施します。

認証に5回失敗した後、最低10分のロックアウトでユーザーをロックアウトします。ユーザーが過去5つのパスワードを使用できないように、パスワード履歴を保持します。

大規模な環境の場合、リスクを分離するために複数のサブネットでネットワーク分離を使用することは絶対的な要件です。小規模な環境の場合、ローカルシステムでファイアウォールを実行して公開を制限することをお勧めします。たとえば、IPへのSSHのみを許可します。tcpwrappersは追加のレイヤーにも使用できます。(/etc/hosts.allow、/etc/hosts.deny)

そしてもちろん、すべてのソフトウェアを最新の状態に保ちます。特に公開デーモン。

SSHの場合:

  • SSHプロトコルを無効にする1
  • ルート認証のみを許可without-password(キーペアのみ)

Apacheの場合:

  • 不要なモジュールを無効にする
  • .htaccessおよびパブリックディレクトリを無効にする
  • FollowSymlinkと不要なオプションを無効にする
  • PHPが必要ない場合は、インストールしないでください。

MySQLの場合:

  • デフォルトのユーザーを無効にします。
  • ワイルドカードホストは使用しないでください。
  • すべてのユーザーに固有のホストを設定してください。
  • 必要な場合を除き、tcpをリッスンしないでください。(通常、不可避です。)
  • アプリケーションのユーザー権限をできるだけ制限します。(SELECT、INSERT、UPDATE、DELETEは書き込みに、SELECTは読み取りに最適です)

特にセキュリティのためにphp.iniのチューニングを調査することをお勧めします。デフォルトでは、より危険なソフトウェアです。

バスティーユ


PHPのチューニングについては、cyberciti.biz
tips /

2

ここでは、あなたのditributionに応じて、あなたのセットアップのためのベースとして使用して変更することができてよかっ記事は次のとおりです。http://it.toolbox.com/blogs/rayheffer/how-to-build-a-secure-lamp-web- server-with-centos-5-36786


しかし基本的に、明示的に必要のないモジュールを読み込まないで、すべてのバージョン番号とデバッグ/情報ページを非表示にし、強化されたパスワードを使用してアプリケーションごとにmysqlユーザーを作成し、常に通常のユーザーアカウントを使用してサーバーで作業し、それらをsudoにします。ルート権限が必要な場合は、iptablesのようなファイアウォールを使用し、ボックス内に絶対に必要なものに基づいてポートのみを開いてください。さらに、最新のパッチにより、非常に安全なセットアップが提供されます。
Alexandre Nizoux 2010年

この記事は良くありません。selinuxの無効化、mysqlの強化については何も、不要なapacheモジュールの無効化...
sumar

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.