web-dev-qa-db-ja.com

VPN接続でサーバーにSSH接続できません

これはかなりめちゃくちゃです、私は知っています。それをすべて説明させてください。

ルーターに動的DNSが設定されています。ポート転送後、目的のアプリケーションに接続できることを確認しました(ポート1337で何かを実行し、適切なマシンにポートを転送すると、外部から問題なく接続できます)。

さて、MacbookをVPNに接続し、上記のように何かを実行すると、期待通りに動作します。 しかし、Ubuntu Server 16.04を実行しているマシンをVPNに接続して何かを実行するか、sshで接続したい場合、失敗します。ルーターのSSH接続に使用しているポートを転送しました。また、Webサーバーをホストしようとしましたが、これも失敗しました。

この問題について何ができますか?これは私には意味がありません。

Ubuntu Serverマシンについて:openvpnクライアントとsshサーバーが構成され、ファイアウォールが実行されておらず、iptablesが編集されておらず、イーサネット経由でルーターに接続されているクリーンインストールです。

編集:ルーティングテーブルは次のとおりです。 http://Pastebin.com/ay6fpLcL

OK、解決策を見つけることができました。

ラッパーなしのopenvpnパッケージの使用:

これらの2行を.ovpnファイル(または自動接続している場合は.conf)に追加します。

script-security 2
up /etc/openvpn/up.sh

次に、実行可能権限(755/700)で/etc/openvpn/up.shを作成します。

#!/bin/sh
ip rule add from <your-server-ip> table 128
ip route add table 128 to <your-server-subnet> dev <your-interface>
ip route add table 128 default via <server-gateway>

例えば、ここに私の設定があります:

#!/bin/sh
ip rule add from 192.168.1.26 table 128
ip route add table 128 to 192.168.1.0/24 dev eno1
ip route add table 128 default via 192.168.1.1

異なるVPNクライアント/異なる構成を使用する:

必要な手順を予測することはできませんが、通常、VPN接続が確立されるたびにup.shスクリプト(上記)を実行する必要があります。

同じ問題を抱えている人の助けになることを願っています。乾杯!