通常のLinuxユーザーはSSHについて知っています。これは、SSHが基本的に任意のサーバーにリモート接続して、コマンドラインを介してSSHを管理できるようにするためです。ただし、SSHが提供できるのはこれだけではありません。デフォルトで暗号化が行われていない場合でも、接続を暗号化するための優れたセキュリティツールとして機能することもできます。
たとえば、SMTPまたは電子メールを介して接続したいリモートLinuxデスクトップがあるが、そのネットワーク上のファイアウォールが現在、非常に一般的なSMTPポート(25)をブロックしているとします。 SSHトンネルを介すると、SMTP構成を別のポートに再構成することなく、SSHを使用するだけで、別のポートを使用してその特定のSMTPサービスに接続できます。さらに、SSHの暗号化機能を利用できます。
OpenSSHサーバーで転送を許可するには、構成でアクティブになっていることを確認する必要があります。これを行うには、 / etc / ssh / ssh_configを編集する必要があります ファイル。
Ubuntu 18.04の場合、このファイルは少し変更されているため、1行のコメントを解除する必要があります:
コメントを外したら、SSHサービスを再起動して変更を適用する必要があります。
SSH転送を許可するようにターゲットを構成したので、ブロックされていないことがわかっているポートを介して物事を再ルーティングする必要があります。 3300のような非常にまれにブロックされたポートを使用してみましょう:
これで、ポート25に到達するすべてのトラフィックが自動的にポート3300に送信されます。別のコンピューターまたはクライアントから、このサーバーをポート3300に接続するだけで、そのまま対話できるようになります。 25ポートへのファイアウォール制限のないSMTPサーバーでした。基本的に、ポート25トラフィックを別の(ブロックされていない)トラフィックに再ルーティングして、アクセスできるようにしました。
逆:リモート転送
ローカルポートを別のポートに転送することについて話しましたが、まったく逆の方法で、リモートポートまたは現在サーバーからローカルポートにアクセスできるものをルーティングしたいとします。
簡単に説明するために、前の例と同様の例を使用してみましょう。このサーバーから、ポート25(SMTP)を介して特定のサーバーにアクセスし、ローカルポート3302を介してそれを「共有」して、他のユーザーがサーバーに接続できるようにします。 3302ポートに接続し、そのサーバーがポート25で認識しているものをすべて確認します。
SSHポートフォワーディングに関するまとめとヒント
ご覧のとおり、このSSH転送は、特定のポートにルーティングするため、非常に小さなVPNのように機能します。これらのコマンドを実行するたびに、SSHを介してサーバーと対話する必要があることを理解しているため、SSHシェルが開きます。これが必要ない場合は、「-N」オプションを追加するだけで十分なので、シェルを開くことはできません。