konata.net の鯖はpfを導入していて、鯖に送られる余計なパケットはここで落とされる。
鯖の前にはNECのWR8700Nがいて、やっぱり余計な通信は落としてる。

今のところ、SSLの443番ポートはkonata.netの鯖に回していて、
鯖のpfで、勤務先のIPだった場合は、stoneを通したSSLトンネルからSSHで接続が出来るようになっている。
それ以外のIPの場合はApacheが要求を受け取り、SSL対応ページを返す。
(とは言っても、SubversionれんたるのSVNとやり取りする時以外には使っていないけど。)

で、こっからが本題。
先日、勤務先でProxy鯖が落ちて復旧まで別回線でアクセスする事になったのだけれど。
当然、この別回線のIPはkonata.netの鯖に登録されていない。
ということで、勤務先からのSSL/SSH通信ができなくなってしまった。

とりあえず、その日は諦めて、帰った後IPを追加で登録してSSHで接続できるようには
なったのだけれど、この状態は結構頼りない。

というわけで、動的にポートを開ける仕掛けを作ることにした。
紆余曲折して実装した機能は以下のとおり。

1、konata.netの特定アドレス(秘密)に特定の件名を書いたメールを送る。
2、送信者のメールアドレスと、件名が条件に合致した場合、設定用Web画面の
  URLが書かれたメールを送信者に送る。
  なお、URLはランダム値を含んでおり、メール受信者以外には判らない(はず)
3、URLにアクセスすると、HTTPのBASIC認証で、ID・パスワードの確認をする。
4、Web画面からID・パスワード、443番ポートの転送先、ポート開放時間を入力する。
5、4、が有効な場合、REMOTE_ADDRからのアクセスについて、ポート転送が
  有効になる。
  役目を終えたWeb画面のURLは即時に使えなくなる。
6、一定時間後、ポート転送が有効になるので、443番ポートにSSH・RDP等でアクセス

流石にやり過ぎなような気もするけれど、まぁ、穴を開けるんだからこのくらいの
仕掛けは必要だろう。
本来は、3と4についてはSSLで暗号化しないと危険なのだけれど、
勤務先からも穴を開けたいが為に、HTTPを使っている。
1のメールの方も暗号化をかけた方がいいのかもしれない。

まぁ、企業と違って取られて困るデータがあるわけではないので、
ある程度の所で利便性と折り合いを付けなければいけないけれど。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です