ファイヤーウォールの越え方

概要

普通に学生生活をしていると、外部のCVSレポジトリにアクセスしなければならないなど、一時的に内部から外部に対してファイヤーウォールを越えていろいろやる必要が出てくる。
その際に、簡単にできる方法を記述してみた。
なお、今回想定している範囲は内部から外部に対してTCPコネクションを張る方法です。

OpenSSH over firewall

取り合えずは一番良く使うであろうSSHで越える方法。
最初にOpenSSHがインストールされてること前提としています
UN*Xを使ってる人なら最近はデフォルトで入っているでしょう。 M$のWindowsを使ってる人はwww.cygwin.comに行ってCygwinをインストールするときのオプションで、OpenSSHをインストールするようにするほうが楽かもしれません。

取り合えず外部のメールを読みたい(任意のTCP接続)

この技はメールだけじゃなくて、自分からTCPコネクションを張りたい場合全てに使えます
また、中継ホストと自分のパソコンの間は暗号化されるので同じ部署にストーカーがいても安心してメールを受信できます(笑)
ほかにも、データを圧縮して転送できるので、少しだけメールを読む速度があがるかもしれません。

tcpserverを使う

DJBさんのtoolであるtcpserver(http://www.emaillab.org/djb/tools/ucspi-tcp/top.html)を使うと、UNIXマシンでファイヤーウォールを越えて、みんなでその接続を使うということが1行でできます。

tcpserver 自分のマシンIP 公開するポート /usr/local/bin/connect -[S|H] プロクシ:ポート 接続先IP 接続先ポート
tcpserverの引数は、それを実行するマシンのIP、みんなにどのポートにつないでもらうか、上記で紹介したconnectコマンド、及びconnectに必要な引数です。

ほかにも

stoneなんかが良く使われてるらしいです。
SOCKSを使えるなら、任意のアプリケーションをsocks対応にするためのツールが出回っています。
SSHでトンネリングして、VPNなんて張るとカッコいいかもしれませんが、やりすぎるとあなたのネットワークのセキュリティが著しく低下します。