前回はL2TP/IPsecでVPN接続したけど、今回はあらかじめprivate network内のマシンからpublic network内のマシンにssh逆ポートフォワードしておけば、public network側のマシンのポートからprivate network内のマシンに入れるよねってのを実際にやってみたのだ。
ネットワーク構成
[Surface3] [ubuntu 14.04]
| .102 | .104
----------------------- public:192.168.100.0/24
| .101 | .103
[iMac] [VyOS]
| .200 | .1
---------------------- private:172.16.1.0/24
| .201
[RPi]
[XXX]...マシンの名前
- ubuntu 14.04はSurface3上の仮想マシン(HyperV ブリッジ接続)
- VyOSはiMac上の仮想マシン(Virtualbox ブリッジ接続 x 2)
- private -> public はNATで出ていく
- public側のルータはWiMaxルータだよ
と、構成上はともかく、実際のネットワーク接続は物理/仮想マシンが入り乱れたカオスな状態。
逆ポートフォワード
で、どういうssh接続をしたいかというと、あらかじめRPi(172.17.6.201:22)からubuntu 14.04(192.168.100.104:10022)に逆ポートフォワードしておき、Surface3(192.168.100.102)からubutntu 14.04の10022番にssh接続すると、RPiに接続するという感じ。
[RPi]--------[ubuntu 14.04]-----[surface3]
|_______________↑ ↑______________|
22 -> 10022 ssh -p 10022 pi@192.168.100.104
デフォルトのsshdの設定だと、逆ポートフォワードした時にIPを127.0.0.1(localhost)
にバインドしちゃうから、これを0.0.0.0(任意のIP)
にバインドするよう設定変更する。
ubuntuの/etc/ssh/sshd_config
:
...
# 追加
Match User yukaary
GatewayPorts yes
そんで設定を反映。
$ sudo service reload ssh
RPiにiMacからsshログインして以下のコマンドを実行。
ssh -f -N -R 10022:127.0.0.1:22 yukaary@192.168.100.104
yukaary@192.168.100.104's password: <ubuntu 14.04のパスワード>
これで完了。ubuntu 14.04側でTCPポートの状態を見てみる。
yukaary@yukaary-ubuntu-ein:~$ sudo netstat -tapn
[sudo] password for yukaary:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10022 0.0.0.0:* LISTEN
...(省略)...
よしよし。ちゃんと待ち受けているね。ssh接続するとどうなるのか!!
$ ssh -p 10022 pi@192.168.100.104
Linux raspberrypi 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Mar 6 13:43:33 2015 from localhost
pi@raspberrypi ~ $
192.168.100.104:10022 --> 172.17.6.201:22
という感じに繋がったのです。L2TP/IPsecに比べると、10022番しか空いてないから自由度は落ちるわけですがー。単に別ホスト(組織)の内部ネットワークに入りたかったら、こういう方法もあるということだったので試してみた。
No comments:
Post a Comment