はじめに
Apache HTTPサーバーのセキュリティは、少なくともLinuxやその他の適切なUnix系オペレーティングシステムで実行している限りにおいては、信頼できます。しかし、今や平凡な静的な読み取り専用Webサイトは絶滅危惧種となりました。最近では、LAMPと呼ばれる一連の技術(つまりLinux、Apache/Lighttpd、MySQL/PostgreSQL/SQLite、Python/PHP/Perl/Ruby)を使って動的Webサイトを提供するのが一般的になっています。これは進歩であるとも、ないとも言えます。
私個人は、平凡な静的HTMLの日々が好きでした。今と比べてブラウザのHTMLサポートやサイトの質に疑問が多かったとはいえ、少なくとも、エラーを吐き散らす役立たずの巨大なスクリプトを実行して私のコンピュータを過労に追い込んだり、ときには完全に固まらせてしまうことはありませんでした。もしCPUサイクルとメモリを食いつぶすような事態になっても、システムのアップグレード費用がかかるぐらいの被害で済みました。しかも、たとえば仮に私がWindowsとIEを使ってネットサーフィンするほど間抜けだったとしても、Webサイトを開いただけでシステムが感染するようなことはありませんでした。しかし、悪人は次々に新しい悪知恵を生み出すものなので、Linuxを使っているからといって安心してはいられません。
おっと、脱線しました。この記事のテーマは、LAMPの適切なセキュリティ対策でした。週末を利用してLAMPスタックをインストールし、動的Webサイトを立ち上げるのはとても簡単です。それもこれも、XAMMPやUbuntuのようなLinuxディストリビューションのおかげであり、PHP(PHP: Hypertext Preprocessor)スクリプト言語の桁外れの人気のおかげです。ですが、この簡単さは必ずしも良いことではありません。他人に指図するのは嫌いなのですが、ネット長者を目指す人には自社サーバーのLAMPスタックを隅々まで学ぶために真面目に時間と労力を投じていただきたいものです。インターネットに接続されたサーバーは、特別にセキュリティに気を配る必要があります。動的Webサーバーは複雑なのでなおさらです。副次的なダメージを受けるリスクも大いにあります。昨今では不正アクセスの裏に大規模な組織犯罪が潜んでおり、マルウェアが詐欺、恐喝、窃盗の入り口になっています。彼らはシステムを破壊するために侵入するのではなく、密かにデータを盗み出し、世界規模のボットネットに取り込むのです。
実行できる最も重要な対策は、PHPを使わないことです。腐った果物を導入する前に、以下に目を通してください。