VPNに接続されたサーバーへのSSH

VPNに接続されたサーバーへのSSH

私のサーバーはVPNに接続する必要がありますクライアントOpenVPN スクリプト (HMA 製) を実行すると、ローカル マシンから SSH 経由のサーバーへの接続が失われます。接続できなくなり、VPN プロセスを手動で終了する必要があります。さらに、その間、非表示の TOR サービス (.onion ページ) は利用できません。

サーバーが VPN に接続されている間に、TOR ページが利用可能で SSH 経由で接続できる可能性はありますか?

答え1

問題は、OpenVPN によってデフォルト ゲートウェイが変更され、非 VPN インターフェイスから入ってくる接続がすべて切断されることです。Linux は、実際のインターフェイスから入ってきたパケットへの応答を VPN インターフェイスから送信します。OpenVPN を開始する前に、適切なルートを設定する必要があります。

以下の方法は私の場合はうまくいきます。iptables と ip (iproute2) を使用します。以下では、OpenVPN が起動する前のデフォルト ゲートウェイ インターフェイスが「eth0」であると想定しています。その目的は、eth0 への接続が確立されたときに、eth0 がデフォルト ゲートウェイ インターフェイスではなくなった場合でも、接続の応答パケットが再び eth0 に戻るようにすることです。

接続マーク、ファイアウォール マーク、ルーティング テーブルには同じ番号を使用できます。私は、それらの違いをより明確にするために、異なる番号を使用しました。

# set "connection" mark of connection from eth0 when first packet of connection arrives
sudo iptables -t mangle -A PREROUTING -i eth0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234

# set "firewall" mark for response packets in connection with our connection mark
sudo iptables -t mangle -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321

# our routing table with eth0 as gateway interface
sudo ip route add default dev eth0 table 3412

# route packets with our firewall mark using our routing table
sudo ip rule add fwmark 4321 table 3412

===

アップデート:

上記は Debian Jessie では問題なく動作します。しかし、古い Wheezy システムでは、ルーティング テーブル エントリに「via」を追加する必要があることがわかりました。

# our routing table with eth0 as gateway interface
sudo ip route add default dev eth0 via 12.345.67.89 table 3412

「12.345.67.89」は元の非 VPN ゲートウェイである必要があります。

答え2

私も同様の問題を抱えています。私の Ubuntu デスクトップは VPN 上にあり、通常の SSH 接続はホーム ネットワークの外部からは機能しません。

ただ、今思いついたことがあります。そのコンピューターにポートはまだ転送されていますか?

VPN は VPN サイトから新しい IP アドレスを割り当てるため、ルータは接続する IP アドレスを見つけることができなくなります。

どのアドレスに接続するかを知るには、VPN ホストによって割り当てられた新しい IP アドレスを知る必要があると思います。

私は、既知の修正方法ではなく、知識に基づいた推測のみを提供しています。そのため、うまくいかなくても私を非難しないでください。 :)

さらに調査を進めたところ、VPN がポート 80 をリダイレクトしており、SSH トンネルが通常ポート 22 を使用するため、VPN 経由でポートを転送する必要があることがわかりました (私の考えでは)。ポート 22 を VPN 経由で転送して、ポート 80 で VPN に接続すると、SSH トンネルに必要な転送ポート (つまり PuTTy) にリダイレクトされるようにする必要があると思います。

これが正しいやり方かどうか、まだ 100% 確信が持てません。誰かが確認してくれると嬉しいです。

関連情報