qnapのnasをsshポートフォワーディングに利用する

2019年4月16日

sshポートフォワーディングをnasに肩代わりさせる方法について調べてやってみたのでメモ。

sshで接続できるか確認

何はともあれsshで接続できないといけないので、まずはqnapの公式ページを参考に、nasのsshが有効になっているか確認。sshが有効になっていたら、Macの場合はターミナル、windowsならコマンドプロンプトを起動してsshでログイン。qnapのnasの管理者アカウントが「admin」、nasのIPアドレスが「192.168.0.100」であればこんな感じ。


$ ssh admin@192.168.0.100

ログインできたら、そのままqnapのnasからポートフォワーディングしたいサーバーにsshで接続してみる。VPSサーバー(サーバー:XXXXXX.sakura.ne.jp、ユーザー:user111、sshポート:10022)に接続する例で。


$ ssh -p 10022 user111@XXXXXX.sakura.ne.jp

接続できることが確認できればいいので、サーバーへのssh接続は一旦切断する。


$ exit

nasへのssh接続は切らないでそのままで次へ。

qnapのnasからsshポートフォワーディングで接続

このページを見ると、nasの「sshd_config」の編集が必要で、再起動でリセットされるからその都度上書きするとイイよっていう内容だったけど、実際は何も変えなくても動いてしまった笑。なので、その部分は省略。
nasとvncサーバー間をsshで暗号化して自分のMacからsshを通して接続するケースを考えてみる。
(自分のMac → nasの15901ポート →ssh通信→ サーバーの5901ポート)

sshポートフォワーディングについてはここを参考に↓

sshポートフォワーディングについてのまとめ

sshでポートフォワーディングをするために必要なオプション「L」と、ローカル(ここで言うローカルはnasのことね)以外からの接続も転送するためのオプション「g」をつける。一応、ここではうまく接続できない時の原因探索をしやすくするためにデバッグメッセージを表示させるオプション「v」もつける。で、nasの転送元ポート(15901)からvncを設定したさくらインターネットのサーバーのvnc待ち受けポート(5901)に接続。


$ ssh -v -g -L 15901:localhost:5901 -p 10022 user111@XXXXXX.sakura.ne.jp

自分のMacから、画面共有(VNCクライアント)を使って「vnc://192.168.0.100:15901」に接続して、リモートのVNCサーバーに接続できれば成功。あとはこれをバックグラウンドで動かすオプション「f」と「N」、通信を圧縮するオプション「C」をつけて、デバッグメッセージを表示するオプション「v」を外して実行。


$ ssh -C -f -N -g -L 15901:localhost:5901 -p 10022 user111@XXXXXX.sakura.ne.jp

これでできたー!

参考

Tipsvps

Posted by ucci1372