| 最近の更新 | |
|---|---|
| 夢
| 2025/10/21 |
| お出かけチェックリスト
| 2025/08/30 |
| 韓国
| 2025/08/18 |
| 音楽データをDisplayAudioで聞く
| 2025/08/18 |
| 飛行機はなぜ飛ぶか
| 2025/08/18 |
| 養老孟司
| 2025/08/18 |
| 駅探(3646)
| 2025/08/18 |
| 騙す方が悪いのか・騙される方が悪いのか?
| 2025/08/18 |
| 高麗神社
| 2025/08/18 |
| 鴨川シーワールド
| 2025/08/18 |
| 黒岩一美
| 2025/08/18 |
| 網野善彦
| 2025/08/18 |
| 縄文聖地巡礼
| 2025/08/18 |
| 老荘
| 2025/08/18 |
| 聖方位
| 2025/08/18 |
| 自分のためにやるからこそ、それがチームのためになる
| 2025/08/18 |
| 自転車
| 2025/08/18 |
| 自転車のライトに泣く
| 2025/08/18 |
| 落合史観の用語補足
| 2025/08/18 |
| 落合莞爾
| 2025/08/18 |
| gw.x.jp: | インターネットから会社イントラネットに個人 ssh ログインだけ許されている gateway マシン。 |
| priv.x.jp: | 会社イントラネットドメイン名 |
家やモバイルから会社のイントラネットに入る手段として、OpenVPN, IPv6, 及び gw.x.jp への ssh ログインが提供されている。
OpenVPN は以下の問題がある:
IPv6 がよさげなのだが、正式サービスではないようだ。 ということで、開けてもらった ssh ログインを利用して VPN 的な事ができないか 調べてみた。
IPv6 を使うと VPN も簡単ということなので、まずは IPv6 で何が出来るか、 というところから勉強。
ifconfig すると inet6 のアドレスが既に割り当てられている。 これは、自環境 OS (Ubuntu 10.04)が既にそのように対応しているからだろう:
$ ifconfig
...
wlan0 Link encap:イーサネット ハードウェアアドレス xx:yy:zz:aa:bb:cc
inetアドレス:192.168.x.y ブロードキャスト:192.168.x.y
マスク:255.255.255.0
inet6アドレス: xxxx:yyy:zzz:a:bbb:cccc:dddd:eeee/64
範囲:グローバル
inet6アドレス: fe80::xxx:yyyy:zzzz:aaaa/64 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
RXパケット:872 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:112 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:102675 (102.6 KB) TXバイト:17745 (17.7 KB)IPv4 では DHCP が IPアドレスを割り当てていたが、IPv6 では DHCPがなくてもIPアドレスが割り当てられるようだ( http://www.kanadas.com/investigation-j/2007/11/ipv6_9.html DHCPを使うこともできるようだ)。
"Listen 80" とだけしてある場合、IPv4/v6 に関わらずアクセスできる、と 書いてあるのだが、動作しない。
で、/etc/apache2/ports.conf に ip6 localhost を追加して:
Listn [::1]:80
restart すると、http://[::1]/ で動作するようになった。そういうもの?
IPv6 を使った ssh アクセスって何だろう?ということで調査している段階。
$ ssh -6 xxxx:yyy:zzz:a:bbb:cccc:dddd:eeee/64 # → ok
ローカルアドレスを使う場合、IF名が必要。%記法は ssh 仕様?:
$ ssh -6 fe80::x:y:z%wlan0
ssh の -w オプションで 'tunnel device forwarding' が出来るとのことだが、 ローカルとリモートで共に root 権限が必要ということで断念。
ssh でここまで出来る、という例: http://magazine.redhat.com/2007/11/27/advanced-ssh-configuration-and-tunneling-we-dont-need-no-stinking-vpn-software/ だが、途中で -D オプションが良さげということが分かったのでそちら(次節)に。
ssh -Dオプションを使うと socks として動作するので、ブラウザで socks 指定することで、社内 web にアクセスできる:
$ ssh -v -N -D 1080 gw.x.jp
ブラウザで socks 設定をすると、それだけで社内webにアクセスできる:
ホスト localhost ポート 1080
ssh login も可能(DNSは効いてないので、会社内の私のデスクトップマシンホスト名 'houzuki' を指定してもだめ。IPを直接指定。これで2時間ハマった):
$ tsocks ssh 192.168.x.y
gw.x.jp の DNS を /etc/resolv.conf に書いたが、効かないようだ。 が、/etc/hosts に 192.168.x.y のホスト名を書くと:
$ cat /etc/hosts ... 192.168.x.y houzuki
以下でアクセスできる!:
$ tsocks ssh houzuki
ここで、tsocks は任意のネットワークコマンドを socks 対応するツール。 apt-get install tsocks でインストールできる。
git のリモートリポジトリへのアクセスも、tsocks で動作する。
$ cat .git/config ... [remote "origin"] url = http://MYNAME@git.priv.x.jp/PROJ ...
の場合、/etc/hosts に git.priv.x.jp を登録するか DNS 検索できるようにすると 以下で git アクセスできる:
$ tsocks git pull