Main テクニカル

リモートからのアクセスに便利なSSHポートフォワーディング(トンネリング)の設定

前回に引き続き、ちょっと便利な小技を紹介いたします。
外部ネットワークから目的のネットワーク内部(自宅LAN等)にアクセスする場合に、VPNネットワークを使っても良いのですが、SSHポートフォワーディング(トンネリング)でもVPNの様にセキュアに外部ネットワークからのアクセスを可能にします。ただし、標準状態のQNAPではSSHポートフォワーディング(トンネリング)が許可されておらず、下記の通り設定を変更する必要があります。

設定方法

SSHポートフォワーディング(トンネリング)を有効化するには、QNAPにSSH等でログインして下記コマンドを入力するだけです。あとはSSHクライアントからポートの転送設定をするだけでポートフォワーディングが使用可能となります。

# setcfg LOGIN “SSH AllowTcpForwarding” TRUE
# setcfg LOGIN “SSH PermitTunnel” TRUE

ちなみに、無効化するには反対の設定をするだけです。

# setcfg LOGIN “SSH AllowTcpForwarding” FALSE
# setcfg LOGIN “SSH PermitTunnel” FALSE

ということで設定は以上です。とても簡単ですね?是非お試しください。
ここから先はSSHポートフォワーディング(トンネリング)の利点や使用例について書きます。そんなことは分かっているよ、という方は読み飛ばしていただいて結構です。
その他、QNAP Clubでは皆様の便利な使い方なども募集しておりますので、良いネタをお持ちの方で情報をシェアいただける方は、フォーラムへ投稿いただけると非常に嬉しいです。

SSHの特徴:高いセキュリティと利便性

リモートからアクセスする方法は他にもありますが、この方法のメリットは何でしょうか?
もともとSSH(Secure Shell)は、既存のTelnet等に対してよりセキュアにリモートアクセスをする目的で開発されており、QNAPでも管理用のリモートセッション用途や、ファイル転送(SCP/SFTP)にも使えるアクセス方法です。

QANP標準のアクセスポートを活用

QNAPのNASの機能を外部ネットワークから十分に活用するには、少なくとも以下の2つのポートを開ける必要があると考えています。※セキュリティ上、ポート番号は10000番台以上の推測しにくいものに設定することを推奨します。

  • Web管理用(SSL)のポート
  • CLI管理用(SSH)のポート

リモートからLAN内部へアクセスする方法は数多く提供されておりますが、殆どのケースでは専用にポートを開ける必要があります。しかし、この方法であれば管理用に開けているSSHポートを、ファイル転送にもリモートアクセスにも、同じポートをそのまま利用することが可能となるため、開放するポートを絞ることでセキュリティを高めることが出来ます。

標準のアクセス保護機能を利用可能

リモートアクセスサービスを有効にする際に怖いのはブルートフォースアタック等の不正侵入ですが、SSHのアクセスについてはQNAP標準の「IPアクセス保護」や「アカウントアクセス保護」機能を使用する事で、想定される各種攻撃からサービスを保護することが可能です。

公開鍵認証方式に対応

よりセキュリティを高めたい方は、SSHを公開鍵認証方式にしておけば、更にセキュリティを高めることが可能です。(詳しくは、先人の記録を「QNAP SSH 公開鍵」などで検索してください。)

対応するクライアントが多い

SSHのクライアントは基本的にどのプラットフォーム上にも存在するため、接続クライアントが無くて困ることはありません。PCからでもモバイル機器からでも、お好みのものを使用いただければ結構です。有名なところでは以下のクライアント等があります。

ネットワーク構成の柔軟性の高さ

SSHポートフォワードに限定されることではありませんが、基本的にTCP/UDPのデータをどの宛先にも転送できます。サーバー側で多段Proxy等を組むことも可能なので、SSHポートが利用可能でネットワークの知識さえあれば、どこからでも/どこへでもアクセス可能です。ただし、SSHポートフォワーディング(トンネリング)を有効にするという事は、セキュリティのリスクを高める点にご留意ください。

具体的な使用例

まずはSSHポートフォワーディング(トンネリング)の基本的な使用方法について説明します。
前提:設定したSSHポートへ、外部からアクセス出来るようにルーターの設定(ポート開放)がされていること。

  1. SSHクライアントでQNAPのNASに外部からログインする
  2. SSHクライアントのフォワーディング設定で以下を設定する
    A. 転送元のポート番号を指定(クライアント側)
    B. 転送先LAN内のIPアドレスとポートを指定
    このAとBのセットを一つの転送設定として、必要な分の転送設定をすれば準備完了です。(複数指定可能)
  3. 転送ポートを使用したいクライアントを起動しアクセスする
    SSHクライアントは起動したまま、アクセスに使用するクライアントを起動します。アクセスする際に、アドレスはlocalhost(127.0.0.1)、ポートは上記Aで設定したポート番号にアクセスすると、上記Bで設定したアドレスとポートにアクセスしていることになります。
  4. 使用終了したら、SSHをログアウトすることでポートは閉じられます

この方法を使えば、大抵のアクセスはリモートから使用可能となります。ただし、既に使用されているポートについては転送設定が出来ませんのでご了承ください。

QTS上の他の機能(ポート)への転送

例えば、QNAP上でMySQLサーバーを動かしており、phpMyAdminへのアクセスをしたい場合、普段からオープンにしている状態は推奨されません。なので、SSH経由で明示的に繋ぎに行った場合のみアクセスできるようにすることが出来ます。
この方法を使えば、基本的にQNAP NASへのアクセスは、SSLとSSHのポートだけ開放しておけば良いことになります。(ただし毎回SSH接続が必須となりますが。)

ゲートウェイルーターの設定画面にLAN側からアクセス

LANのゲートウェイとなっているルーターは、通常外部から設定画面にアクセスすることは出来ません。(推奨されていません)しかし、この方法を使うことでどこからでも設定変更や再起動をすることが可能となります。
例えば、一時的にポートを開ける設定をしたい場合も、この方法でリモートの外出先からルーターの設定を変更することが出来ます。
※誤ってSSH用に設定したポートを閉じてしまわない様にご注意ください。

LAN内のPCへのアクセス

LAN内のPCへのアクセスをしたい場合、SSHのシェルからWakeOnLanでPCを起動して、VNC等のプロトコルでリモート操作をするといった事も可能となります。緊急時には、外出先でスマートフォンからPCを操作したりすることが出来るようになります。ただ最近ではルーターのポートを開けずにPCの遠隔操作ができる便利な方法がいろいろあるので、そこまで必要ではないかもしれません。

LAN内のプリンターへのアクセス(FAX送信)

これも、Googleクラウドプリント等があるので、そこまで必要なケースはあまり無いかもしれませんが、プリンターにFAX機能がある場合はこの方法は有意義です。FAXで資料を送って欲しいという事がこのご時世でもたまにありますが、近くにFAXが無い場合はリモートから自分のLAN内にあるFAXプリンターにアクセスして、Word等からFAXを送信することが可能です。

などなど、発想次第でいろいろな活用方法があります。
セキュリティを高めつつ、リモートから便利にアクセスして機能を活用したい方は、それぞれのプロトコル向けにポートを開放するのではなく、利用する際に一時的にポートを転送するといった方法は如何でしょうか?

他のリモートからのアクセス方法について

いろいろ説明いたしましたが、このSSHポートフォワーディング(トンネリング)以外にも、QNAPのユニットは標準でも以下の多くのリモートアクセス方法を提供しています。

  • QBelt
  • PPTP
  • L2TP/IPSec(PSK)
  • OpenVPN

また、Dockerを使用してSoftEther等のVPNサービスを稼働させることも可能です。SoftEtherを使えば、外部ネットワークから同じLAN上に居るかのようなアクセスも可能となります。
それぞれの方法に利点もありますので、必要に応じてお好きな方法でアクセスいただければ良いかと思います。

次回は、SSHの基本的なもう一つの使用法としてのリモートファイル操作について書きたいと思います。

avatar

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  Subscribe  
更新通知を受け取る »