仮想プライベートサーバーがあり、サーバーがVPNサービスに接続されているときにWebサーバーを実行したい
プロバイダーへのVPN接続が確立されていない場合、このサーバー、ssh、scp、httpなどでやりたいことが何でもできます。
openvpnが実行され、プロバイダーのVPNサービスに接続されると、サーバーにアクセスできなくなります。もちろん、正当な理由があります。
写真はこんな感じです:
My VPS ------------
+----------------+ /
| | / Internet / 101.11.12.13
| 50.1.2.3|----------------- cloud /----<--- [email protected]
| | /
| 10.80.70.60| /
+----------------+
: _____________/
: :
: :
: :
: :
+------------------+ :
| 10.80.70.61 | :
| | :
| | :
| 175.41.42.43:1197|..............:
| 175.41.42.43:yy|
| ..... |
| 175.41.42.43:xx|
+------------------+
Legend
------ Line No VPN connection present
...... Line VPN connection established
明確にすること:
- 上下のすべてのIPアドレスとポート番号は架空のものです
- ポート番号xx、yy、およびその間の行は、私の
仮定であり、事実として私が知っているものではありません。 - 毎分実行するcronジョブを設定して、私の別のVPSにpingを実行し、apache2を実行します。apache2ログで、VPNがアクティブな場合に発信元IPアドレスが50.1.2.3から175.41.42.43に変化するのを確認できます。正常に動作しています
OpenVPNログはこれらを示しています:
UDPv4 link remote: [AF_INET]175.41.42.43:1197
[ProviderName] Peer Connection Initiated with [AF_INET]175.41.42.43:1197
TUN/TAP device tun0 opened
do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
sbin/ip link set dev tun0 up mtu 1500
/sbin/ip addr add dev tun0 local 10.80.70.60 peer 10.80.70.61
この時点で、myhome
からsshを実行できるようにしたいと思います。 My VPS
へ 写真では、VPNが稼働していてPuTTYを使用している間。
過去に、私の職場の1つで、3つの@
を持つ1つの非常に安全なサーバーにSSH接続するという非常に奇妙なシーケンスが与えられました。 文字列のサイン。それで、私が想像するようにボックスからボックスへとジャンプしていましたが、ジャンプボックスはいくつかのバージョンのWindows OSとそれらのプロプライエタリアプリを実行していたため、何が起こっているのかを確認することはできませんでした。だから私はあまり注意を払いませんでした。今、私は気づき始めています。私は同じまたは同様の状況にある可能性があります。
ダイアグラムやログスニペットのIPアドレスとポートを使用して、誰かがこのトンネルを通過してサーバーにアクセスする方法を教えてもらえますか?
承認された回答:
VPNサービスが起動すると、sshパケットはVPSのパブリックIP 50.2.1.3ではなくVPN経由でルーティングされるため、VPSからロックアウトされます。
関連:どのエディションのSQLServerがディスク上にありますか?サーバーを想定しましょう:
- パブリックIPは50.1.2.3です(セットアップ例による)
- パブリックIPサブネットは50.1.2.0/24です
- デフォルトゲートウェイはおそらく50.1.2.1です
- eth0はデバイスからゲートウェイへ
iproute2を使用して次の手順を実行します。
ip rule add table 128 from 50.1.2.3
ip route add table 128 to 50.1.2.0/24 dev eth0
ip route add table 128 default via 50.1.2.1
次に、OpenVPNクライアント構成を実行します:openvpn --config youropenvpn-configfile.ovpn &
これで、サーバーがVPNサービスに接続されている間にサーバーにSSH接続できるようになります。
非ssh:22セッションからのパブリックIPへのアクセスを制限するには、適切なiptableフィルターを追加する必要があります。