web-dev-qa-db-ja.com

別のホストを介してホストのネットワークトラフィックをルーティングする方法

私は企業ネットワークのシステム管理者ではありませんが、両方にrootアクセスできる2つのLinuxワークステーション(ホストAとB)を持っています。

両方のホストはお互いをうまく見ることができます(ssh、pingなどが一方から他方へと動作します)。ただし、ホストAのみが企業のファイアウォールの外に到達してインターネットなどにアクセスできます。ホストBはできません。

質問:システム管理者を介さずに、ホストBのすべての(HTTPだけでなく)送受信ネットワークトラフィックをホストA経由でルーティングするにはどうすればよいですか?現在、ホストBにNATを使用する必要があるかどうか、ホストAをプロキシサーバーにするか、ホストAをルーターにする必要があるかどうかはわかりません。

ホストBでroute add -Host <HostA> gw <HostA's Gateway>コマンドを発行しようとしましたが、機能しませんでした。ホストBからping www.google.comを実行できませんでした。このルーティングの件についての無知をご容赦ください/ネットワーキング。

9
Harry

これを行うには複数のソリューションがあります。

簡単な方法:NAT

転送を許可してAをルーターにします:sysctl net.ipv4.ip_forward=1置くnet.ipv4.ip_forward=1 /etc/sysctl.confで永続化します。

次に、Aで、次のように入力してnat trafic:iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

最後にB:すべてのトラフィックをA経由でルーティングします。

ip route del default  
ip route add default via IP_of_A

その他の解決策:Proxify

ただし、プロキシを使用するには、すべてのコンポーネントをセットアップする必要があります。

Bで、次のコマンドを使用してAへのSSH接続を開きます。

ssh -D8000 -N -f user@IP_of_A 

これにより、Bでプロキシsockが開き、A経由ですべてのトラフィックがリレーされます。たとえば、Webブラウザーを使用する場合は、ポート8000​​でリッスンする127.0.0.1でプロキシsock v5をセットアップする必要があります。ipをセットアップする必要はありません。ルートへの転送またはタッチ。

16
DrGkill

ファイアウォールを無効にする必要があると思います。

service iptables stop

ホストAとホストBの両方でそれが必要かどうかはわかりませんが、「宛先ホスト禁止」メッセージが渡されました

1
Eric