0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SSLトンネルを繋いでLocalネットへ接続 (セキュリティ注意)

Posted at

 DBの CDC関連のサービスを検討をしていると常に Local DBへのアクセスがネックになってしまい。。。
で、やむなく検証環境を期間限定で構築した際の、ちょいワル技術です。

<絶対に悪用しないでくださいね>

        - ssh アクセス可能
          Cloud Server
            +-----+
            |     |
 出先#A     +-----+    Private #B
 +-----+       |        +-----+
 |     |-------+--------|     |
 +-----+                +-----+
- 外部へアクセス可能      - LocalDB 稼働                    
                       - 外部からはアクセス不能 
                       - 外部へはアクセス可能
                       - この環境はにはアクセス可能  

こんな状況は良くあります。
 case 1) 例えば #B が会社で、#A が自宅
 case 2) その逆で #Bが自宅で、#A が会社

 こんな時、もし自由にアクセスできるクラウドサーバがあったなら Firewall を解除することなく、またセキュリティチェックに引っかかることもなく#A から #B の DBを直接操作する方法があったりします。

 セキュリティ上は本当に良くないことなのですが、Local DB とpublic DB の CDC (Change Data Capture) などを実験するときには便利だったりします。
 方法は #A と #B の双方からクラウドサーバに ssh トンネルを確立するだけです。
 利用するクラウドサーバは、なんでもOKです

前提)
 CloudServer Host名     = anycloud.com
 CloudServer ユーザ名     = hack
 CloudServer上の空きPort番号 = 3333
 Praive#B のDB Port番号    = 3306 (mysql)
 出先#A の空きPort番号     = 9999

  1. まず Private #B にアクセスできるときに以下のコマンドを実施します
    ssh -R 3333:localhost:3306 -N hack@anycloud.com [-i SshKeyFile]

  2. 出先にて以下のコマンド実施します
    ssh -L 9999:u-software.tk:3333 -N hack@anycloud.com

  3. 例えばDB がMySQL なら、#A から以下のコマンドでアクセスできてしまいます
    mysql -h 127.0.0.1 -P 9999 -u {DB-User} -p [DatabaseName]

#A---CloudCloud---#B の二つのsshトンネルを構築して、 Cloud側の終端ポートを同じにすることで二つのトンネルが繋がってしまうことを利用しています。

とても便利な方法ではあるのですが、トンネル2本が繋がると完全なセキュリティホールなので、利用には細心にも細心の注意を払ってご利用ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?