ブログに戻る

SOCKSトンネルを使用してVPNなしでウェブトラフィックをルーティングする

SOCKSトンネルを使用してVPNなしでウェブトラフィックをルーティングする

ウェブ上でのフットプリントを保護することに関して言えば、おそらく耳にしたことがあるでしょう、VPNについて。VPNは、コンピュータとインターネットの間の仲介者として機能します。すべてのトラフィックはVPNサーバーを通過するため、IPアドレスと位置情報が効果的にマスクされます。

しかし、VPNだけが唯一のプロキシサーバーの形態ではありません。SOCKS(Socket Secure)は、クライアントに代わってネットワークトラフィックをルーティングすることにより、ファイアウォールを介してサーバーと通信できるようにする同様のネットワークプロトコルです。VPNと比較して、SOCKSはネットワーク構成の柔軟性と制御性が高くなります。VPNクライアントをインストールできない場合や、VPNプロバイダーを信頼できない場合に便利です。

このガイドでは、SSH SOCKS 5プロキシトンネルを確立し、ウェブトラフィックをそのトンネル経由でルーティングする方法を説明します。

前提条件

デモンストレーションでは、Ubuntuデスクトップを実行しているローカルマシンと、Ubuntuサーバーを実行しているリモートマシンを使用しました。スムーズに動作させるには、事前にSSHが設定されている必要があります。SOCKSプロキシを使用しているため、接続をテストするにはそれを使用できるアプリが必要です。Firefoxは最適な例です。これは、SOCKS 5プロキシトンネルをサポートする現代のウェブブラウザです。

Windowsを使用している場合は、WSL (Windows Subsystem for Linux)を使用してローカルのLinux環境をセットアップするか、PuTTY(Telnetやrloginなどのさまざまなネットワークプロトコルを実装できるオープンソースアプリ)を使用します。

SOCKSトンネルの設定

  • SOCKSトンネルのセットアップ (macOS/Linux)

ローカルコンピュータでは、安全な接続を確保するためにSSHキーを設定する必要があります。SSHキーはリモートシステムにも登録されている必要があります。このガイド(SSHキーベースの認証の設定)で、そのプロセスを詳しく説明しています。

次のSSHコマンドは、リモートサーバーへのSOCKSトンネルを確立します:

コマンドを分解してみましょう:

  • -i: 接続に使用するSSHキーをSSHに指示します。

  • -D: SOCKSトンネルを確立したいことをSSHに指示します。ポートについては、ポート 1024を使用しています。これは固定値ではありません。以下の間の任意のポートを選択できます: 1024 から 65536.

  • -f: SSHプロセスがバックグラウンドでフォークされます。

  • -C: SSHはリモートサーバーに送信する前にデータを圧縮します。これにより、データ消費量を節約し、実効帯域幅を増やすことができます。

  • -q: ツールをクワイエットモードで実行します。

  • -N: トンネル確立後にコマンドを送信しないことをSSHに指示します。

実行したら、プロセスが正常に開始されたかどうかを確認できます。次のコマンドは、実行中のすべてのSSHプロセスに関する情報を出力します:

Routing grep ssh

これで、ターミナルウィンドウを安全に閉じることができます。SSHプロセスはバックグラウンドから意図した通りに機能します。

  • SOCKSトンネルのセットアップ (Windows)

Windowsユーザーの場合、PuTTYを使用するのがより簡単な解決策です。まず、PuTTYをダウンロードする:

Routing download putty

インストールしたら、PuTTYを起動します:

Routing putty screen1

左側のパネルのSessionタブから、サーバーのHost Name (or IP address)を入力します。Connection typeについては、SSHを選択します。次に、Connection >> SSH >> Tunnelsに移動します。ここで、Destinationフィールドの下で、スクリーンショットに示すオプションを選択します:

Routing putty screen2

次に、Openをクリックします。SSH経由でリモートサーバーに接続するためのターミナルウィンドウがポップアップ表示されます。リモートサーバーにログインします:

Routing putty screen 3

SOCKSトンネルの実装

これでトンネルが設定されました。SOCKSをサポートするすべてのアプリがこのトンネルを使用できます。デモンストレーションとして、Firefoxは素晴らしい例です。

まず、Firefoxを開きます。右上隅からメニューアイコンをクリックします。設定:

ubuntu screen1

に移動します。次に、プロキシを検索します。設定Firefoxのインターネット接続方法の設定:

firefox preferences

内)をクリックします。その後、手動プロキシ設定を選択します。SOCKSホストには、 localhostまたは 127.0.0.1を使用します。次に、ポートには、SOCKSトンネル専用に設定したポートを入力します。SOCKS_v5:

firefox proxy conf

を選択するのを忘れないでください。最後に、SOCKS v5の接続時にはDNSもプロキシを使用するオプションにチェックを入れます。OKをクリックして続行します。

次に、新しいタブを開いて任意のウェブページにアクセスしてみてください。たとえば、CheckMyIP.

からIPアドレスを確認できます。

SSHトンネルへのプロキシ接続が不要になったら、Firefoxのプロキシ設定から安全に無効化できます。

Routing firefox reverting proxy conf

ウィンドウから、システムのプロキシ設定を使用するを選択し、OKをクリックします.

SOCKSトンネルの終了

  • macOS/Linuxでのトンネルの終了

トンネルを終了するには、SSHプロセスを手動で強制終了(kill)する必要があります。SSHプロセスのPID(プロセスID)が必要です。次のコマンドを実行すると、実行中のすべてのSSHプロセスのPIDが表示されます。

トンネルを作成したコマンドで実行されているSSHプロセスを確認します。そのプロセスを強制終了します。

オプションが定義されていない場合、 killコマンドは、ターゲットプロセスに一般的な SIGTERM シグナルを送信します。詳細については、こちらのチュートリアルでLinuxのプロセス管理について学ぶことができます.

  • Windowsでのトンネルの終了

PuTTYのウィンドウを閉じると、トンネル接続が終了します。

トラブルシューティング

SOCKSを使用してトラフィックをルーティングする際に発生する可能性のある、一般的な問題は以下の通りです。

  • ファイアウォール

ファイアウォールの制限により接続を確立できない場合、ファイアウォールがポート 22への接続をブロックするように設定されている可能性があります。これは、SSHがリモートシステムへの接続に使用するデフォルトのポートです。一部のポートはデフォルトで開いたままになっています。たとえば、ポート 80(一般的なウェブトラフィック)やポート 443 (TLS、セキュアなウェブトラフィック)などです。

SSHサーバーがウェブコンテンツを提供していない場合は、デフォルトポートのいずれか( 80 または 443 )を、ポート 22 の代わりに使用できます。ポート 443 はデフォルトで暗号化されたトラフィックを想定しているため、これを使用することをお勧めします。また、送信トラフィックも暗号化されます。変更を行うには、SSH設定ファイルを修正する必要があります。テキストエディタでファイルを開きます。

SSHはその目的に応じて複数のポートを使用できます。設定ファイルを下にスクロールして、ポートのセクションを見つけます。

Routing sshd config

変更が完了したら、ファイルを保存してエディタを閉じます。変更を適用するためにSSHサービスを再起動します。

新しいポートが機能しているか確認するために、新しいポートを使用してリモートサーバーへの接続を試みます。

接続に成功した場合は、SSHトンネリングにポート 443 を安全に使用できます。SOCKSトンネルを確立するための修正されたコマンドは以下の通りです。

ここで、フラグ -pは、SSHにポート 443.

最後に

現代において、プライバシーとセキュリティは最大の懸念事項の一部です。安全でないネットワーク上にいる場合でも、安全にブラウジングする方法はたくさんあります。ほとんどの場合、VPNを使用すればネットワークトラフィックに対して十分なセキュリティが得られます。一方で、VPNを使用できない場合や信頼できない場合、SOCKSトンネルが必要なセキュリティを提供してくれます。また、SOCKSトンネルを使用することで、セットアップを完全にコントロールすることができます。

ハッピー・コンピューティング!

author

Pranay Kapgate

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。