プロキシサーバー経由でファイルがダウンロード出来ない問題への対応

2016/03/30 オープンソース

squid-ie6-problem
先日、弊社のお客様より、ブラウザを利用して大きい容量のファイルがダウンロードできないというお問い合わせを頂きました。ダウンロード出来ないファイルはLinuxのインストールメディア用isoファイルで容量が3GB程度あり、ダウンロード中に突然終了してしまうというお話し。
さらに詳しく話を聞いてみると、途中まではダウンロードできるが、ある一定のダウンロード量になると、ダウンロードが突如終わってしまう。

スポンサーリンク


お客様の環境ではインターネットへ接続するためにプロキシサーバーを利用しており、このプロキシ設定を外すと、ダウンロードに成功することから、プロキシサーバーが原因ではと考えておられました。
上記の情報を基に調査を行った結果、プロキシサーバーだけが原因ではないことが分かりました。
ここ最近は、余り合致することのない情報だと思いますが、調査した内容が何かの約に立つ可能性もありますので、原因と対策を紹介したいと思います。。

1.isoファイルがダウンロードできない原因

isoファイルがダウンロードできない原因は、プロキシサーバーだけでなく、ブラウザ側にもありました。お客様の環境で利用しているブラウザが古くサポートが切れているもの、これが原因の一つ、もう一つはプロキシサーバー側の設定でした。

1-1.ブラウザとしてInternet Explorer6を利用していた。

プロキシサーバーを経由して2GB以上のファイルがダウンロードできない原因の一つ目はブラウザにありました。お客様が利用しているブラウザはサポートが終了しているInternet Explorer6で、このブラウザにはあるバグがあります。具体的にはマイクロソフトのKB298618 「Internet Explorer6で2GB以上のファイルがダウンロードできない。」が該当します。
このバグは、httpサーバーとクライアント間で特定の接続状態になっているときに2GB以上のファイルがダウンロードできないという内容。今回の問題はInternet Explorer6を利用していたことにより、このバグの影響があったことが挙げられます。

1-2.keep-aliveが有効になっていた。

原因の二つ目は、Internet Explorer6とプロキシサーバー間でkeep-aliveが有効になっていたことです。1-1に記載したKBでは、2GB以上のファイルがダウンロードできないバグは、WEBサーバ側でkeep-aliveが有効になっている場合と記載されています。

keep-aliveはクライアント側で変更が出来ないので、サーバー側での対処が必要になりますが、プロキシサーバーを経由しない状態で、isoファイルをダウンロード中にパケットキャプチャしてみても、keep-aliveは有効になっていないようです。
上記からプロキシサーバーを経由する場合のみ、keep-aliveが有効になっているのではと考え、調査を進めました。

2.プロキシサーバーを経由した場合のkeep-aliveを調査

Internet Explorer6 にプロキシサーバーを設定してisoファイルをダウンロードし、httpのポート状態のパケットキャプチャを行いました。
その結果、プロキシサーバーとクライアント間でkeep-aliveが有効になっていることが確認できました。webサーバーとクライアント間では、keep-aliveが有効になっていなくても、プロキシサーバーを経由すると、プロキシサーバーからクライアント間で、keep-aliveが有効になってしまうため、結果として、Internet Explorer6のバグであるKB298618に引っかかってしまい、ダウンロードが2GBを超えると、終了してしまうということが分かりました。

3.対応方法

Intetnet Explorer 6を現在、利用している環境は殆どないと思いますので、対応を行う場面はそれ程ないかと思いますが(仮にあったとしても、他のブラウザを利用するなどで回避できます。)
この問題については、プロキシサーバーの設定変更で回避が可能でした。
その方法を紹介します。なお、プロキシサーバーはLinuxにインストールしたsquidというオープンソースのプロキシサービスを利用している前提です。

対応方法としてはプロキシサーバーであるsquidとクライアント間での接続を行う際、デフォルトで有効になっているkeep-aliveを無効にするという設定があるので、この設定を有効にします。
squidの設定ファイルはsquid.confになります。パッケージでインストールしていると、/etc/squidフォルダにあるパターンが多いようです。このsquid.confに以下の記載を追加します。

追加後にsquidを再起動することで設定が有効になります。
この設定を行う場合、keep-aliveが無効になりますので、サーバ – クライアント間のセッションが多数になりサーバ負荷が増加することが考えられます。その点を注意して設定を行って下さい。
Internet Explorer6を利用していなくとも、プロキシサーバーを利用していてkeep-aliveを無効にしたいという場合は上記で対応が可能です。

補足としてInternet Explorer6には、元々、4GB以上のファイルをダウンロードできないという制約がありますので、プロキシサーバーとは関係なく4GB以上のファイルはダウンロードすることはできません。

システムでお困りのお客様

もし、貴社で、

  • サポート切れのサーバやネットワーク機器の入れ替えをしたいが、どうしたらよいかわからない
  • サーバやネットワークの管理を行う社員がいないため困っている
  • 業務に利用している機器のセキュリティが大丈夫か心配
  • 機器の障害で、業務への影響が発生している
  • 社内の要望に対して、どのようなシステムを導入したらよいか解らない

など、サーバーやネットワーク、セキュリティでお悩みの方、新規のシステム導入を検討中の方。
多くのシステム構築を行い、成功させてきた実績をもつ弊社が、その問題を解決します。
お気軽にお問い合わせ頂き、貴社の問題解決にお役立てください。

お問い合わせ・ご相談はこちらから

Facebookでのご購読が便利です。

Twitter・Feedlyでもご購読できます。

Twitterでフォローする Feedlyでフォローする

関連する情報

oss-awstats

シンプルなアクセス解析が出力できるオープンソースソフトウェア awstats

Webサイトのアクセス解析というと、今はGoogle Analytics を利用しているユーザー

450-smtp-error

SMTP 450 Client host rejected: cannot find your hostname エラー

SMTPのスパム対策はスパマーとブロックする側の鬩ぎあいが続いています。ブロックする側は当然スパ

oss-apache

攻撃を受ける前に! Apache インストール後に必要な8つの変更点

Apacheはウェブサーバーの代表的なアプリケーションで、現在、動作しているウェブサーバーでのシ

postfix-security-01

5分間でPostfixのセキュリティを少し向上させる

一昔前はsendmailが良く利用されていました。メールを送信するためのサーバ側プログラム(通常

oss-bind

bind ゾーンファイル “already in use” エラーの対応方法

このところネームサービスとして代表的なアプリケーションである"bind"のセキュリティホールが多

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  • スポンサーリンク