オープンソースを活用したWebセキュリティ対策

2009年11月16日(月)
桜井 剛

Squidでアクセス管理をしよう

企業内部からのWebの不正利用を防ぐことも、Webのセキュリティ対策では重要です。特に、すべてのクライアントのWebアクセス履歴を保存するくことで、不正に対する抑止効果や問題発生時の原因追及などが可能になります。

これを可能にするのがプロキシ・サーバーです。プロキシ・サーバーを導入することで、企業のWebアクセスを一元化でき、各ユーザーのアクセス履歴を取得できるようになります。プロキシ・サーバーもオープンソース・ソフトウエアで導入してみましょう。

オープンソースで提供されているプロキシ・ソフトウエアとしては、「Squid」が有名です。2009.11現在の安定版の最新は3系が3.0-STABLE19、2系が2.7-STABLE7です。ライセンスはGPLv2となっています。

CentOS 5の場合、RPM互換のパッケージ管理システムであるyumコマンドを使って、配布パッケージ・バージョン「2.6-STABLE21」の導入が可能です。

インストール直後はlocalhostからのアクセスに限って許可されている状態なので、下記の記述をSquidの設定ファイル「/etc/squid/squid.conf」に追加して、ネットワーク経由のアクセス許可を設定してください。※下記の例は、ネットワーク・アドレスが「192.168.1.0/24」の場合です。

アクセス制御リストを追加したらSquidサーバーを起動します。標準のポート番号は3128/TCPです。

サーバーが立ち上がったら、Webブラウザのプロキシ設定を行って接続してみます(図3)。Internet Explorer 8の場合は、「[ツール]→[インターネットオプション]→[接続]→[LANの設定]」から設定します。

アクセス解析やアクセス禁止も設定してみよう

Squidを経由したアクセス履歴は、「/var/log/squid/access.log」にすべて記録されます。また、CentOS 5の標準のログ管理方法では、1日1回ログのローテーションを行って、最大7日間保管します。このあたりは設定次第で変更が可能なので、運用に合わせて設定します。

ちなみに、アクセス・ログを集計するツールもオープンソースで提供されています。今回は、CentOS 5のディストリビューションにも含まれている、「webalizer」を紹介します。2009.11現在の最新バージョンは2.21-02で、ライセンスはGPLv2となっています。

CentOS 5の場合、yumコマンドを使って配布パッケージ・バージョン「2.01-10」の導入が可能です。

Squidのアクセス・ログを解析するためには、設定ファイル「/etc/webalizer.conf」の変更が必要です。変更個所は2カ所です。

(変更前1)


(変更後1)

(変更前2)


(変更後2)

上記の設定が完了したら、下記のコマンドを実行すると集計が始まります。集計結果は「/nfs/contents1/ibc/thinkit.jp/usage」に保存されます。

また、特定サイトへのアクセスを禁止したい場合も、簡単なものであれば、Squidの設定ファイルに追記するだけで対応できます。Squidの設定ファイルに記述を追記して、サーバーを再起動します。例えば、「hde.co.jp」へのアクセスをブロックしたい場合の例は以下の通りです。

以上、Squidを使った対策を説明しましたが、より詳細なアクセス履歴の取得や検索、アクセス・コントロールなどを行いたい場合は、商用アプリケーションやアプライアンス製品を導入が解決策となります。その際も、システム規模や対策したい内容に応じて、メール・セキュリティと同様に検討していくことが大切です。

株式会社HDE
インターネット黎明期より、ネットワーク構築やWebシステムの開発に携わり、2005年より株式会社HDE(http://www.hde.co.jp/)にて、メールセキュリティ製品の開発マネージャとして活躍。最近はHDEラボ(http://lab.hde.co.jp/)を運営し、Pythonやオープンソース関連の技術情報を広く公開している。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています