web-dev-qa-db-ja.com

SSHリモートアクセスVPNトンネル

私は2台のマシンを両方ともCentOSlinuxを実行しており、1台は実際のIPアドレス(foo)を持つ公開マシンです。もう1つは、非常に制限の厳しいファイアウォールの背後にあるクライアントのサイトにあり、実際のIPはなく、ポートをナッティングしたり開いたりする可能性はありません(バー)。

私はbarからfooにsshできますが、明らかにその逆はできません。

理想的には、ファイルを送信したり、リモートで作業したりできるように、fooからbarにsshできるようにしたいと思います。これを機能させるための最善の方法についてのヘルプやアドバイスをいただければ幸いです。インターネット上で、 ssh経由でVPN接続をセットアップすることは可能であるはずですが、それを理解することはできません。

ジョナ

4
Jona

Centosでは、答えは次のようになります。

バー(制限されたマシン)で、次のコマンドを実行します。

ssh -N -R 1234:localhost:22 foo.theinternet.com

次に、foo(開いているマシン)で次のコマンドを実行します。

ssh -p 1234 localhost

これには改良が必要だと思いますが、グーグルを始めるには十分だと思います。

私を正しい軌道に乗せてくれたpkaedingに感謝します。

2
Jona

これはあなたのためにそれをするべきです(バーから):

ssh -R2222:localhost:22 foo

次に、fooで:

ssh localhost -p 2222

最初の接続でリモートポートフォワードが開かれ、fooのポート2222がbarのポート22に転送されます。したがって、fooのポート2222にsshを実行すると、実際にはbarに接続していることになります。次に、そのssh接続を介して必要な転送を追加し、他のポートを転送できます。

2
pkaeding

Wippien または Remobo のように機能するものを探しているようですが、これらは高価なHamachiクライアントに触発されています。

1
djangofan

フルトンネルであるtunデバイスを作成できます。要件は次のとおりです。おそらくクライアントとサーバーの両方でのルートアクセス、およびSSHの最近のバージョン。

サーバー/ etc/ssh/sshd_config

PermitRootLoginはいPermitTunnelはい

クライアント/ etc/ssh/ssh_config

トンネルはい

接続:ssh -w any:any.。

これにより、クライアントとサーバーの両方にtun0デバイスが作成されます。 IPを設定する必要があります。

サーバ

ifconfig tun0 192.168.55.1 pointopoint 192.168.55.2

クライアント

ifconfig tun0 192.168.55.2 pointopoint 192.168.55.1

今ルート、NAT、何でも...

とにかく、barからfooに自動的に接続するためにこの方法をお勧めしません。非対話型の方法で。 TCPセッションが終了すると、自動的にリスポーンしません。おそらく、リスポーンさせることができます: http://www.deer-run.com/~hal/sysadmin /SSH-SyslogNG.html

必ずしもSSHに基づくのではなく、2つのホスト間にVPNを作成する方法があるはずです。

1
LatinSuD

いくつかのオプションがあり、検索するとこのサイトで多くの答えを見つけることができます。 転送ポート できます。 sshを socksプロキシ として使用できます。または、実際にはpppのようなものを使用してssh上で tunnel ip .

0
Zoredache