web-dev-qa-db-ja.com

ダイナミックDNSを使用してssh経由でVPN内のマシンに接続します

ダイナミックDNS(no-ip)を使用して「静的」ホスト名を取得するようにローカルネットワークにルーターを設定しました。ポート22をローカルPCに転送しましたが、sshを使用してリモートでログインできます。また、使用する必要のあるサーバーに到達するために、VPNネットワークに接続するマシンも必要です。残念ながら、VPNを起動するとすぐに切断され、静的ホスト名を使用して再接続できなくなります。ルーターが応答するため、ホスト名にpingを実行できますが、到達する必要のあるマシンにSSHで接続できません。

 ssh: connect to Host myhostname.no-ip.biz port 22: Connection timed out

VPNを使用してVPNに接続していますが、これは大学が提供するカスタムビルドです。彼らは、通常のvpncクライアントには互換性がないと述べています。また、次のような構成ファイルも提供します

IPSec gateway vpn.uni-mannheim.de
IPSec ID doniluma
IPSec secret wlan
IKE Authmode hybrid
CA-File uni-ma.pem
Xauth username myusername

そして証明書ファイル。ルーティングなどを調整する可能性があるので、vpnc-connectでVPNを初期化した後に(再)接続できますか?

4
feob

VPNCのマニュアルページから:

_   The vpnc daemon by itself does not set any routes, but it calls vpnc-script to do this job. vpnc-script displays a connect banner.  If
   the  concentrator  supplies  a network list for split-tunneling these networks are added to the routing table.  Otherwise the default-
   route will be modified to point to the tunnel.  Further a Host route to the concentrator is added in the later case.   If  the  client
   Host needs DHCP, care must be taken to add another Host route to the DHCP-Server around the tunnel.
_

したがって、トラフィックは大学に向けられている可能性が高く、ファイアウォールが制限されている場合は、ポート22が外部で閉鎖される可能性があります。したがって、接続のデフォルトルートを設定しないように、ネットワーク管理者にVPNサーバー設定を変更するように依頼するか、クライアントの動作を変更する必要があります。どうやらそうするオプションはありません(または少なくとも私はそれを見つけませんでした)が、回避策を見つけました ここ 。/etc/vpnc/vpnc-scriptのコピーを作成し、元のファイルを編集します。私のバージョンでは、set_default_route()関数の宣言が2つあります。デフォルトルートを変更しないようにするには、それらを変更する必要があります。最初のものは次のようになります。

_    set_default_route() {
        $IPROUTE route | grep '^default' | fix_ip_get_output > "$DEFAULT_ROUTE_FILE"
#        $IPROUTE route replace default dev "$TUNDEV"
        $IPROUTE route flush cache
    }
_

そして2番目

_set_default_route() {
    DEFAULTGW="`get_default_gw`"
    echo "$DEFAULTGW" > "$DEFAULT_ROUTE_FILE"
#    route $route_syntax_del default $route_syntax_gw "$DEFAULTGW"
#    route add default $route_syntax_gw "$INTERNAL_IP4_ADDRESS" $route_syntax_interface
}
_

注意してください、私はそれらの変更をテストしなかったので、あなたはそれらを少し変更する必要があるかもしれません。

0
Maxxer