最近の更新 | |
---|---|
ドライランのありがたみを改めて知る
| 2024/04/04 |
伊豆半島
| 2024/03/31 |
お出かけチェックリスト
| 2024/03/29 |
Ruby
| 2024/03/27 |
Kubernetes
| 2024/03/22 |
音楽データをDisplayAudioで聞く
| 2024/03/09 |
Redmine
| 2024/02/05 |
git
| 2024/02/02 |
経済
| 2024/01/08 |
どうする家康
| 2023/12/17 |
MX-Linux
| 2023/11/06 |
國體関連学-休学のご連絡
| 2023/08/13 |
Debian
| 2023/08/02 |
CentOS
| 2023/06/13 |
Dell-XPS13
| 2023/05/23 |
ベルト
| 2023/05/18 |
SourceForge
| 2023/04/17 |
確定申告
| 2023/02/19 |
さらば「まぐまぐ」
| 2023/01/09 |
風猷縄学
| 2022/11/23 |
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