個人でのProxyサーバ利用用途
Proxyサーバを建てたいということで、利用用途を考えていました。
まずサイト高速化であったり冗長化、移行の易化のためにリバースプロキシを建てるのが浮かんだのですがあくまで普通のProxyサーバが建てたかったの一旦思考から除外しました。
今回は一旦情報の整理を行います。
Proxyサーバを経由する利点
まずはなぜProxyを利用するのかという点です。
具体的に自分が使っていないので、あくまで受け売りになりますが大体以下。
・通信元の匿名化
・通信のフィルタリング
・キャッシュによる通信量軽減と見た目上の高速化
・通信障害の回避
他はサイトによりまちまちでしたが、個人的にはレジューム機能があるのかなと思いました。
ただおそらくこれは利用するミドルウェアによるのでProxyそのものの機能ではないです。
個人で使うときのメリットってほぼほぼ匿名化の部分なんじゃないかと感じます。
では非常に簡単にですが、それぞれ私の理解を記載したいと思います。
通信元の匿名化
通常の通信は [クライアント] -> [サーバ] という形で行われるため、サーバはこの後クライアントへレスポンスを返すために相手の「位置」を知っています。これがIPアドレスになるわけです。
しかしProxyを通すと通信は以下のようになります。
[クライアント] -> [Proxy] -> [サーバ]
こうするとサーバにとってのクライアントはProxyになりますので、サーバからはクライアントマシンのIPは必要がなくなりますし、やりとりもされません。
つまりクライアントの位置を知られずに済むということです。
IPアドレスだけではあまり情報を知られることはありませんが、場合によっては住んでいる都道府県や市区町村程度までなら検索することができるのでProxyを通すことでこれを隠すことがでますね。
よくネットを利用した犯罪が行われるときに串を通す、といいますが串とはproxyサーバのことです。
余談ですが、私も過去高校生エンジニアの子とskypeでチャットしたことがありますが、その子が作成していたちょっとした攻撃ツールで私の家宛にパケット送られまくって回線が潰されたことがあります。
IPが漏れてしまうとそういう気紛れな嫌がらせをされることがあるので、それを防ぐことができますね。
末恐ろしい子供です。
通信のフィルタリング
これはおそらく個人で使うことはないでしょう。
ただし個人でもお子さんがいる場合には、通信をproxy経由にすることでお子さんがエロサイトを閲覧することを防ぐことができるかもしれません。
会社で運用する場合には業務に利用する必要のないサイトを制限するなどが可能です。
キャッシュ
これは一度通信した内容をproxyサーバにキャッシュさせることで通信を高速化するというものです。
個人的には回線が高速になり、マシンパワーも十分ある今の時代にそこまでしてキャッシュする意味があるのかと感じます。
またキャッシュ期間をどうするかによりますが、接続先サイトが更新されていたのにキャッシュされてしまっていると新しいコンテンツが閲覧できないのが不便です。
キャッシュ期間が長いとその可能性が高まりますし、短いのでは意味がない、さらにブラウザ自体にもキャッシュがあるのでもうそれ必要なんだっけ? という自分への問いかけに答えられなかったです。
しかし会社などで利用する場合には、全接続のうちいくつかの上位サイトで通信の大きな割合を占めてしまうこともあるらしいので効果が見込めそうだとも思いました。
少し別になりますが、先ほど少し触れたレジューム機能というものはもしかしたら少し便利かもしれません。
これは一度切断されて途中で終わってしまったダウンロードなどを続きから再開したりできる機能みたいです。
これはsquidというミドルウェアには用意されています。squidはかなりメジャーなミドルウェアです。
ただこれも普段はダウンロードをブラウザからしか行わないので、ブラウザのアドオンや元々の機能で十分な気がしています。
通信障害の回避
普段の通信経路が死んでしまっているときに、proxy経由の経路を利用することで通信が可能になる可能性があるということですね。
普段ネットを利用していて通信障害に遭遇した感じることは滅多にないので、あまりこれをメインに導入しようとは思いません。
導入を踏みとどまっている理由
導入を検討していたのに踏みとどまっているのは、おそらく「一般人」共通の問題ですが回線が固定IPじゃないからです。
固定IPがないということはIP制限をかけるのが難しいということになります。
固定IPにするにはプロバイダにお金を払って固定で振ってもらわないといけなかったりするので、高いですし面倒です。
squid(proxyのミドルウェア)では、proxyを利用できる接続をIPなどで制限できます。
私はどうしてもそれが使いたい。
IP以外の制限方法
とはいえないものはないので、他の方法を考えるしかありません。
他には以下がありそうでした。
・認証による制限
・ドメインによる制限
認証による制限はよくありますね。
IP/PWを正しく入れた人にしか使えないというものです。
ただパソコンによる気合いと根性で突破可能なのであまり気が進みません。
ドメインによる認証も固定IPがないとやりづらいのですが、これはDDNSを利用することでなんとかなるのではと考えています。
まだ試していないので不明ですが、そのうち試してみようと思います。
しかしそこまでしてIPを隠したいのかという話もあって悩んでいます。
結局他のサーバも私名義で借りているため、匿名化したところで外からは私名義のサーバが通信しているだけです。
IPが流出しないので意味がないわけではないのですが、仮に自分の家の回線が攻撃されるのを防いでも我がproxyサーバのIPで攻撃されてもなぁという。
whois自体は代行サービスで私の情報は出ていないので、まぁ多少意味あるし勉強が目的でし建てるのもありでしょうかね。
屋内に建てたくない理由
通信の匿名化ができなければ、個人的に感じるメリットはほぼほぼなくなります。
さらに屋内にはクライアントマシン以外にはraspberry pi2と、うるさすぎて停止しているデスクトップ型の鼻毛鯖しかありません。
あまり余計なものを入れたくないのと、うるさいから起動したくないのでメリットに対するデメリットが大きいです。
総括
一般ご家庭のproxyサーバはあまり旨味を感じない。
あとはもうほんと趣味と勉強がてらDDNSをお試しですね。
あとがき
私としてはここに時間をかけるのであれば、rasberry pi2をもう一個買ってどこぞで見つけたfedoraインストール方法を試して家の中で小さなネットワーク構築をしつつDNSを建てることがしたいですね。
DDNSは正直全くやりたいとは思っていないのですが、やってみましょうかね。
またproxyを調べていたら、最近外に充実しているフリーwifiを安全に利用するのにproxyサーバが便利と書いてあったような記憶がありましたが、未だに理由がわかりません。
フリーwifiに繋いだ時点で、そこから先の経路とかどうでもいい気がするのですが……。
今回お世話になったサイト
今回はいろいろなページをみましたが、以下の2つのサイトが非常にわかりやすく内容も充実していると思いました。
Cyber Syndrome | proxyサーバ入門
素晴らしい情報提供を行ってくださっているサイト運営者の方に日々感謝です。