独自のウェブホスティング(物理サーバーまたは再販業者)を持つユーザーへの質問:
サーバーで対処しなければならない一般的なセキュリティ問題はありますか? 無効にすべき厄介なことに関する提案はありますか? 避けるべき、Web ホスティング特有の愚かなセキュリティ上のミスはありますか? Web ホストに影響する最近の脆弱性はありますか?
答え1
PayPal アカウントまたはクレジットカードを持つすべての人にユーザー レベルのアクセス権を与えるという慣行は、それ自体が狂気の沙汰です。私は過去 6 年間の大部分をホスティング業界で働いてきましたが、それでもまだ狂気の沙汰だと思います。
これは、ほとんどのサーバー(共有サーバーまたは非共有サーバー)に対して私が行っていることを、特に論理的な順序なしでリストしたものです。
- 私はディストリビューションが提供するカーネルをほとんど使用しません。grsecurity が許す限り、Linux メインラインと足並みを揃えた独自のカーネル ツリーを維持しています。これはセキュリティ対策だけでなく、最適化対策でもあります。私たちのカーネルには、パラレル / USB / オーディオ サポートのようなものはありません (Web サーバーには必要ないため)。カーネルは、ボード上で必要なものだけを利用するように構築されています。
- 9/10 の悪質なものは、バグのあるユーザー スクリプトによって侵入されます。多くの顧客は、危険になるほど PHP に精通しています。mod_security は私の親友の 1 つで、私は強化されたルール セットのサブスクリプション料金を支払い、ほぼ毎週更新しています。
- 監査は重要なので、OSSEC または同様のものを使用することをお勧めします。
- 私のサーバーはすべてメンテナンス LAN に接続されており、パブリック ネットワークから独立してアクセスできます。状況が悪化し、サーバーがインターネット全体にジャンク パケットを送信して忙しくなった場合、別のアクセス方法があると便利です。また、すべてのサーバーに IP KVM がインストールされています。ハードウェアによっては IPMI もインストールされています。
- 最近、共有サーバーの管理レイヤーとして Xen を使用しています。システムのメモリの 99% を占める単一のゲストを作成します。これにより、ファイル システムの修復やスナップショットなどの作業が簡単に行えます。問題が発生した場合の復旧に非常に役立ちます (共有サーバーから LAN を隠すのにも便利です)。
- 私は、出力に関しては特に厳格な、非常に厳格な iptables ベースのファイアウォールを維持しています。
- システム コンパイラとリンク ツールに誰がアクセスできるかについては、細心の注意を払っています。
- 私はシステムソフトウェアを定期的に更新します。
- 私は定期的にスキャンを行って、Wordpress、PHPBB などの人気アプリケーションの古くて脆弱なバージョンをユーザーが知らないうちに実行していないことを確認しています。
- 私は、クライアントが「インターネットで見つけた」ものを無料でインストールするサービスを提供しています。これは、ホストされているものを監査すると同時に、顧客に付加価値を提供するのに非常に役立ちます。また、安全かつ正しくインストールされることを保証するのにも役立ちます。
- 常に、常に、常に PHP を強化し、PHP にも suexec を使用するようにしてください。/tmp で 'nobody' が所有するボットが見つかることほど最悪なことはありません :)
最後に、最後になりましたが:
- 実際にシステムログファイルを読み取りました。多くのホストは、問題が認識されてから初めて何が悪かったのか調べに駆けつけます。OSSEC のようなツールを使用する場合でも、積極的に行動することが重要です。
答え2
他の人は詳細に説明しているようですが、悪意のある活動の最大の原因はFTP。
特定の IP にロックダウンし、必要のないアカウントに対しては無効にします。要求されない限り、サービスも無効にします。
悪意のあるコードが Web サイトにアップロードされ、世界中にスパムを送信したり、iframe インジェクションで訪問者をリダイレクトしたりした後、私は何十件ものハッキングに対処しなければなりませんでした。ルートまたはシェル アクセスを取得することはめったになく、代わりにサーバーのブラックリストを解除したり、手動でコードを検索したりする大量の手動のハウスキーピング作業が発生します。
ハッキングの主な発生源はサーバー自体ではなく、FTP パスワードを盗聴してそれを母艦に送り返す感染したエンドユーザーの PC であり、その後、別のマシンからそのパスワードを使用してコードをアップロードします。
答え3
私はウェブホスティング会社でしばらく働いていましたが、すべてのユーザーを安全に保つのは悪夢です。特に共有環境では。プライベートサーバーなら、セキュリティの問題がそのシステムだけに限定されるため、追跡がはるかに簡単です。
共有ホスティングで留意すべき点:
- 1 つのサイトのバグが他のすべてのサイトに影響を与える可能性があります。したがって、各ユーザーが実行できる操作を制限し、権限を厳しく制限するようにしてください。これには、ulimit、php 制限などが含まれます。
- システムと個々のサイトを監視します。OSSEC のようなツールは、すべての情報を処理するのに非常に便利です。
- Linux カーネルは、ローカル エクスプロイトに関する追跡が不十分です。そのため、常に最新の状態に保ち、カーネル セキュリティ拡張機能 (grsecurity、SELinux など) を使用するようにしてください。
プライベート サーバーの場合、セキュリティはユーザーに任せますが、ネットワークに適切な QOS、NIDS、および DOS 対策ツールを必ずインストールしてください。