まえがき:私が探しているのは、上記と同じ形式の明示的な命令です。つまり、「…マシンAでコマンドXを実行し、次にマシンBでコマンドYを実行する…」のようなものです
ラップトップ(マシンA)からマシンBへのソックスプロキシが機能しています。
[A]$ ssh -ND 8888 B
Aのローカルポート8888
でSOCKSプロキシを使用するようにFirefoxを設定すると、Aでのブラウジングが機能します。ここまでは順調ですね。
しかし、マシンBとCの間にソックスプロキシもあります。
[B]$ ssh -ND 8157 C
したがって、BのFirefoxソックスプロキシを8157
に設定して、CにいるかのようにBを参照できます。
Cへの接続を使用しながらFirefoxをローカル(A上)で使用できるように、2つのプロキシをチェーンする方法はありますか?
つまり、どういうわけか、FirefoxのすべてのsockリクエストをAからCまで転送します。AとCはお互いを直接見ることはできませんが、どこでもフルルートSSHアクセスが可能です。すべてのマシンはDebianです。
しないポート80のような単一のポートを転送したいが、完全にチェーンされたSOCKプロキシが必要であることに注意してください。
これが一部のVMで機能することを確認しました。
[A]$ ssh -tt -v -L8888:localhost:8157 user@B ssh -t -D 8157 user@C
[〜#〜] a [〜#〜]から、ローカルで8888から[〜#〜]の8157へのポートフォワードトンネルを開きます。 b [〜#〜]-L8888:localhost:8157
。 Bへの接続を確立すると、リモートコマンドssh -t -D 8157 user@C
が実行され、[〜#〜] c [〜#〜]を介してSOCKSプロキシが提供されます。 。私が読んだことから、「-t」が必要なようですが、それでも理由を理解する必要があります。
これは、A-> BとB-> Cからsshを2回呼び出す最初のホスト上の1つのコマンドであることに注意してください。 。以下で説明するように、これを個別のコマンドに分割することもできます。
ボーナス:3つのプロキシをチェーンするため...
つまり、A->B->C->D->Internet
[hostA]$ ssh -2 -C -D 55557 -L 55556:127.0.0.1:55556 -L 55555:127.0.0.1:55555 user@B
[hostB]$ ssh -2 -C -D 55556 -L 55555:127.0.0.1:55555 user@C
[hostC]$ ssh -2 -C -D 55555 user@D
ホップごとに、チェーン内の前のホストに追加の一致するフォワーダー-L
が必要であることに注意してください。
参照:
sSHを利用したglallenの優れた答えは、仕事を成し遂げるでしょう。ただし、これを実現する適切な方法は、proxychains
プログラムを使用することです。 ProxyChainsは、複数のプロキシサーバーを同時に簡単に活用できる強力なツールです。たとえば、ハッカーがインターネット攻撃を実行しているときに身元を隠すために使用します。世界中の多数のプロキシを連鎖させることにより、法医学捜査官がトラフィックを追跡することは事実上不可能になります。あなたが悪意のあるハッカーであることは言うまでもありません-それは多くの異なるユースケースで機能します。 ;)
ProxyChainsは、一部のLinuxディストリビューション(Kali Linuxなど)にデフォルトでインストールされます。たとえば、Ubuntu/Debianでは、次の手順を実行することで簡単にインストールできます。
Sudo apt-get install proxychains
Proxychainsは、/etc/proxychains.conf
で構成ファイルを探します。インストールしたら、既存のProxychains構成ファイル(存在する場合)をバックアップし、新しいファイルを作成します。
mv /etc/proxychains.conf /etc/proxychains-backup.conf
nano /etc/proxychains.conf
ここで、私が作成したこの構成例を貼り付けます。
strict_chain
proxy_dns
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks4 192.168.1.1 8888
socks4 192.168.1.2 8157
socks4 192.168.1.3 6969
この例では、192.168.1.1
は最初のSOCKSプロキシサーバーのIPアドレス、8888
は最初のSOCKSプロキシがリッスンしているポート、192.168.1.2
は2番目のSOCKSのIPアドレスです。プロキシサーバー、8157
は、2番目のSOCKSプロキシがリッスンしているポートです。
ここで、コマンドラインからproxychains firefox
を実行してFirefoxを起動し、プロキシチェーンを活用します。 (Firefoxが最初に閉じられていることを確認してください。)これで、Firefoxが発信接続を確立するたびに、proxychainsプログラムは、この構成ファイルで指定したすべてのサーバーを介してプロキシされるようにトラフィックをカプセル化します。明確にするために、Firefoxの設定では、プロキシサーバーを指定しないでください。プロキシチェーンがすべてをバックグラウンドで処理します。
トラブルシューティングの目的で、3つすべてを試す前に、最初に一度に1つのプロキシを使用して動作させるようにしてください。;)
参照:
proxychains-ng
のWebサイト(2015年の時点で実際に維持されている元のプロキシチェーンのフォーク): https://github.com/rofl0r/proxychains-ng