QNAP TS-112 をproxyサーバーにしてみた
QNAP TurboNASのアプリの使用方法を書いているホームページは少ないので、ちょっと苦労してしまった
昨夜は午前3時頃に中途覚醒してしまいました。CPAPのせいで咽喉がとても渇いていたのでスポーツドリンクを一口飲んで再び眠ろうとしたのですが、眠りかけると自分のイビキで目を覚まし、またスポーツドリンクを飲んで・・・を朝まで繰り返していました。年末からの風邪と正月でリズムが狂ってしまったかも。
QNAP TS-112 に Squidというアプリケーションをインストールしてproxyサーバーにしてみました。目的は Webブラウジングの高速化と、少しセキュリティ対策。Squid はWebページをキャッシュするので、再度同じページにアクセスした際には表示が高速化されるとの事です。しかし QNAP TurboNAS での Squid の設定、使用方法について書いているホームページは非常に少ないのですね。Linux や Windows での設定、使用方法なら山ほど見つかるのだけど・・・
先ずはQNAPホームページにあるチュートリアルを読みます。Squidのインスート自体は App Centerから追加するだけなので実に簡単。Squidを起動すると新しいページが1枚開き、NASの管理者認証を通ると Squidの設定ページが表示され、ここで設定をすることになります。先ずはシンプル設定モードで基本設定をすれば、最小限の設定は完了という事のようですね。シンプル設定モードでは、
- ポート番号
- Cache Memory
- Cache Directory
- User Access
の4項目を設定するだけ。1つめのポート番号の説明には
デフォルト HTTP サービスポートは 3128 です。また、ルーター上でリモートアクセス用にこのポートを手動で開く必要があります。
と書かれてあります。しかし Squidの設定について解説している多くのホームページでは、ポート番号は 8080等にするのが一般的だとか、3128 のままだとセキュリティ上よろしくないような事が書かれてありました。QNAP TurboNAS の Squid の場合どうすべきでしょうか?
結論はポート番号を 8080にするのはダメです。理由は、QNAP TurboNAS 管理Web画面のポート番号に 8080が使用されており、これと衝突してしまうからです。そのため、ここはデフォルトの 3128のままか、8080でない別のポート番号に設定すべきですね。
次に『ルーター上でリモートアクセス用にこのポートを手動で開く必要があります。』についてですが、これ必要でしょうか?ポート 3128番を使った通信は PCのWebブラウザ等と Squidとの間だけだから、ルーターのWAN側ポート 3128番を開ける必要は無いと思うのだけど。いや、むしろ開けたら危険だと思う。と言うわけで、結局ルーターのポートを開けるような事はしていませんが、問題なく使えているようだから良しとしましょう。
2つめの項目Cache Memoryは、メモリが許せば大きく取りたいところですが、何せ実メモリ256MBという小さなNASなので、デフォルトよりちょっとだけ増やして16MBにしました。
3つめの項目Cache Directoryは、Cache Memoryから溢れた分を保存するHDD容量でしょう。これは余裕があるので 128MBにしました。
4つめの項目はチュートリアルに書かれてあるとおり "Grant access to system user accounts" を選択。これで [Apply] ボタンを押して基本設定は完了。試しに、Mac OS X の「システム環境設定」→「ネットワーク」→「詳細...」→「プロキシ」タブで以下のようにプロキシを設定(Webプロキシサーバには NASのIPアドレス。ユーザ名とパスワードには NASにユーザ登録してあるアカウントを入力。また、プロキシを使用しないホストとドメインに、自分のLANのIPアドレスをカンマで区切って追加しておく。)したところ、
Safariで Webブラウジングしてみて正常に表示される事が確認できました。また存在しない URLを入力すると Squidのエラー画面が表示されたので、ちゃんと Squidを通っている事も確認できました。
さて、これでめでたく設定完了!と言うわけには行かないようで、次はマニュアル設定モードで更に詳細な設定をしなければならないのですね。と言うのもproxyサーバーの「匿名性」を高める設定をするのが普通みたいなのです。どうやらWebブラウザでホームページを閲覧すると、その度に様々な情報(ホスト名、IPアドレス等)を吐き出しているそうな。ENV Checker - 環境変数チェッカーで見ると、どれだけの情報が外に吐き出されているのかを見ることができます。これらの情報が漏れ出さないようにし、かつproxyを使っている事すら分からないようにしてセキュリティを確保するのが良いそうな。これによって、悪意を持って情報収集しようとしているホームページに誤ってアクセスしたとしても、そこに情報が残らなくなるのかな?(実は良く分かっていない ^^;)
匿名化するための Squidの設定は色々あるようなのですが、ワタシはあちこちのホームページを見て、マニュアル設定モードの「Manual configuration」枠内に表示されている Squid設定ファイル(squid.conf)の一番最後に以下のように追加してみました。
#
# invisible setup
#
visible_hostname unknown
forwarded_for off
header_access Referer deny all
header_access User-Agent deny all
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
reply_header_access X-Forwarded-For deny all
reply_header_access Via deny all
reply_header_access Cache-Control deny all
|
ただ、ここまで匿名化してしまうと一部のホームページではアクセスを拒否してしまう事があるようです。ワタシの場合、郵貯のインターネットバンキングへのログインができなくなりました。これは「プロキシ」タブの「保護された Web プロキシ(HTTPS)」は、プロキシを使用しないようチェクを外すことで対処しました。あまり匿名性を高めるのも善し悪しのようです。
また、「Manual configuration」枠内にはシンプル設定モードで設定したポート番号やCache Memoryの設定もあるのですが、シンプル設定モードで設定した筈の値が反映されていません。しかし、これは気にする必要は無いみたいです。どうやらシンプル設定モードの設定は「Manual configuration」の内容よりも優先されるようになっている様子です。
|