web-dev-qa-db-ja.com

Debian Apacheの保護PHPサーバー

私はDebian Apache PHPサーバーを持っています。クラシックなインストールプロセスの後でそれを保護したいと思っています。

私の通常の手順は次のとおりです。

  • リストアイテム
  • すべてのパッケージを更新する
  • named、portmap、lwresdなどの不要なサービスをすべて削除します...
  • 起動iptablesスクリプトを追加します。22と80を除くすべてを内部でブロックし、外部はすべて許可します。 SYNパケットチェックを強制、フラグメントパケットチェックを強制、XMASパケットをドロップ、すべてのNULLパケットをドロップ、WAN上のローカルIPをドロップ、すべてICMPタイプ0および8のみ.
  • SSH:rootログインとパスワード認証を削除します。代わりにキーを使用してください。有効なユーザー名のみを許可してください。プロトコル2のみ
  • PHP:expose_php=Off、制限PHP使用するモジュール、訪問者にエラーを表示しない:display_errors=Offおよびlog_errors=Onallow_url_fopen=Offallow_url_include=Offと危険な関数を削除
  • Apache:ServerSignature OffServerTokens Prod
  • 追加パッケージのインストール:fail2ban(SSHブルートフォース保護)、chkrootkit(ルートキット検出)、logwatch(毎日のログケア)、munin(リソースの監視)、apticron(新しい更新の監視)

他に何か見えますか?

8
hotips

ホストベースのIDS を構成し、署名データベースにデータを入力して、Apacheで提供されるコンテンツをすべて削除することをお勧めします。また、ファイルを読み取るためにrootである必要がないように、ロギングに関する権限モデルをオーバーホールします。

サーバーで何をしているのかに応じて、実行したいことがいくつかあります。Apacheのタイムアウトと最大投稿サイズを確認し、open_basedirをPHPに設定します(通常のパフォーマンス調整とともに)) 。

3
symcbean

Ubuntu用ですが、要点を把握するのに役立ちます: http://www.thefanclub.co.za/how-to/how-secure-ubuntu-1204-lts-server-part-1-基本

1
djozsef

Www-dataとWebルート内のSSHユーザーの権限を編集することを忘れないでください。

これが何らかのWebアプリケーションであり、エンドユーザーがファイルをアップロードできる場合は、アップロードしたものが実行可能でないことを確認する必要があります。巧妙なハッキングの中には、.jpg画像に偽装したバイナリを、不正なアクセス許可を持つサーバーにアップロードすることが含まれます。

これは、権限に関する優れた投稿です(ベストアンサーを参照)。 https://serverfault.com/questions/357108/what-are-the-best-linux-permissions-to-use-for-my-website

1

SELinux (設定したい場合)。 Red Hatガイド は、Debianでの設定方法とほぼ完全に互換性があります。

0
Kenzo