nDiki : SOCKS

SOCKS

RFC1928

関連情報

2005年2月13日 (日)

Tor で hidden service

Tor: An anonymous Internet communication system を試してみる。 Torは匿名接続を提供するシステム。 アプリケーションで Tor クライアント(あるいはサーバ)をSOCKSサーバとして指定すると、いくつかの Tor サーバを経由して目的のサービスに接続されるようになる。 途中の経路は時間とともにどんどん変わっていく(らしい)。

インストール

Debian パッケージになっているので apt-get。

Privoxy と連携させて Web閲覧

もともと普段から使用している Privoxy の config に、

 forward-socks4a / localhost:9050 .

という設定を追加して再起動Privoxy がローカルサーバで動いている Tor 経由で接続するようになる。

 Firefox -> Privoxy(localhost:8118) -> Tor(localhost:9050)
         -> Tor server -> ... -> Tor server -> Web サーバ

という感じに複数の Tor サーバを経由して目的にサーバに接続されるようになる。

Web サーバアクセスログを見ながら何度かHTTPアクセスをしてみると、IP アドレス(経路の最後の Tor server)が変わっていくのがわかる。

使用感

かなりレスポンスが悪くなる。 現状では常時設定しておくのは辛い感じ。

Tor では名乗りを上げない限り(待ち受けポートを開けた上で、ディレクトリサーバに登録する)サーバにはならない。 このため、Tor server が絶対的に足りていないのかもしれない。

hidden service

Tor の面白い機能の一つに匿名サービスを提供する機能がある。 Web サーバSSHサーバなどを匿名で晒すことができる。

この時動かす tor は Tor サーバである必要はなく Tor クライアントでかまわない。

/etc/tor/torrc に

 HiddenServerDir /var/lib/tor/hidden_http_service/
 HiddenServicePort 80 127.0.0.1:80

を追加して、tor を再起動

/var/lib/tor/hiden_http_service/hostname というファイルに ****************.onion というホスト名が書かれているので、Tor + Privoxy 経由で http://****************.onion/ にアクセスすると、先ほどの tor が動いているサーバの Web サーバのページが見える。 hidden service を提供している tor は NAT の中にいてもOK(のようだ)。

閲覧者側に Tor (とPrivoxyなど)がインストールしてあれば、ダイナミックDNSに登録したりしなくても好きなタイミングで Web サーバにアクセスしてもらえるようになる。 面白い。

ローカルの Apache に 「ServerAlias *.onion」な Virtual Host の設定を追加して、Tor 経由専用のWebサイトも実験的に準備しておいてみた(例によって Wiki)。

スポンサード リンク
[ 2月13日全て ]

2006年6月3日 (土)

FoxyProxy と autossh で社内 Web ページを閲覧

メンテナンス等のため社内 Web サイトを社外から閲覧する必要がある場合 SSHport forwarding を使ってアクセスしていたのだが、その都度 Firefoxproxy を変更したりするのが面倒だった。

そんな折 FoxyProxy という Firefox 拡張機能があることを知った。 これは登録された URL パターン毎に、自動的に proxy を切り替えてくれるという優れもの。 これは便利。

autosshport forwarding (SOCKS サーバ)を開いておくようにして、社内のホスト名/IP アドレスURLの時はそこを経由するようにしておくと、いつでも Firefox から閲覧できるようになる。

 autossh -N -f -D8090 <中継するホスト名>
[ 6月3日全て ]

2007年1月6日 (土)

connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続

以前社外から社内 Web サイトへのアクセスは autossh + FoxyProxy を使って SOCKS 経由で直接できるように設定した (記事)。 また UnisonSubversion もそれぞれ SSH port forwarding 経由で直接アクセスできるようにしてある (Unison の記事Subversion の記事)。

しかし社外から社内サーバへの SSH 接続(やファイル転送)は、以前として一旦中継ホストに接続(転送)してから再度接続(転送)していて面倒であった。

調べたところ Shun-ichi GOTO氏の SSH プロキシコマンド connect.c を使うと SOCKS サーバ経由で直接接続できるようなので設定してみた。

 [クライアント:8090] -- SOCKS -- [ゲートウェイ] -- [社内サーバ]
                                 gw.example.com    192.168.1.x

インストール

Debian なので apt-get で。

 apt-get install connect-proxy

SSH の設定

~/.ssh/config に以下の行を追加。

 Host 192.168.1.*
   ProxyCommand /usr/bin/connect-proxy -S localhost:8090 %h %p

192.168.1.* に接続する際は、connect-proxy を使ってローカルホストの 8090 ポートの SOCKS を通るようにする設定。

SSHSOCKS サーバにする

autossh を使って SSHSOCKS サーバを立てる

 autossh -N -f -D8090 gw.example.com

これで準備 OK。

使ってみる

SSH 接続
 ssh 192.168.1.x

で接続を確認。

Konqueror (KDE)
 fish://192.168.1.x/

で直接ブラウズ、読み書き可能なことを確認。

Unison

普通に 192.168.1.x と同期できることを確認。

CVS

普通に 192.168.1.x 上のリポジトリに対して cvs update できることを確認

Subversion

普通に 192.168.1.x 上のリポジトリに対して svn update をかけるとアップデートし終わって最後に

 FATAL: output (local) failed, errno=32

というエラーがでる。

便利

Subversion だけちょっと気がかりだれど、その他はうまく行っている感じ。

これでかなり手軽に接続、転送できるようになった。 便利、便利。

追記 (2009年2月23日)

一時的に connect.c を通らないで直接接続する際には 'ssh -o ProxyCommand=none' とする。

 例:
 SVN_SSH='ssh -o ProxyCommand=none' svn update
[ 1月6日全て ]

2010年12月7日 (火)

今日のさえずり: 間違えて、いる方の Git リポジトリ rm -rf した

2010年12月06日

2010年12月07日

[ 12月7日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.048657s / load averages: 0.66, 0.61, 0.53
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker