web-dev-qa-db-ja.com

着信接続をクライアントに転送するOpenVPNサーバー

シナリオ

  • インターネット上のサーバーでOpenVPNサーバーが実行されています。
  • 自宅のClient-1には、ポート5000(UDPおよびTCP)で実行されているアプリがあり、OpenVPNでサーバーに接続しています(アプリは0.0.0.0にバインドされます)。
  • 職場のClient-2は、同じOpenVPNネットワークに接続せずに、インターネット経由でClient-1のアプリに接続したいと考えています。
  • 両方のクライアントはWindowsを使用しており、サーバーはLinux(Ubuntu)を使用しています。

Client-1 <===TUN0===> SERVER <===ETH0===> Client-2

質問

Eth0インターフェースのポート5000に着信する着信接続要求をClient-1のtun0インターフェースの5000ポートに転送するようにOpenVPNを構成して、Client-1のアプリがUDPとTCPの両方でクライアント-2にコンテンツを提供できるようにするにはどうすればよいですか?

2
Ikon

幸いなことに、私はこれで答えを見つけました ServerFaultの質問

私がこれから取ったいくつかの構成 DigitalOceanチュートリアル

sysctlでポート転送を有効にしても、/etc/ufw/before.rulesiptablesルールを追加する必要がありました。次のようになります。

#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
#   ufw-before-input
#   ufw-before-output
#   ufw-before-forward
#


# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]

-A PREROUTING -i eth0 -p tcp -m tcp --dport 50100 -j DNAT --to-destination [Client-1's vpn address]:50100
-A PREROUTING -i eth0 -p udp -m udp --dport 50100 -j DNAT --to-destination [Client-1's vpn address]:50100

# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES


# Don't delete these required lines, otherwise there will be errors
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
.
.
.
.
.
# allow MULTICAST UPnP for service discovery (be sure the MULTICAST line above
# is uncommented)
-A ufw-before-input -p udp -d 239.255.255.250 --dport 1900 -j ACCEPT


# START OPENVPN RULES
-A FORWARD -d [Client-1's vpn address]/32 -p tcp -m tcp --dport 50100 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d [Client-1's vpn address]/32 -p udp -m udp --dport 50100 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# END OPENVPN RULES


# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

sysctlポート転送を有効にし、IP固有のポート転送iptablesルールを使用すると、50100ポートが開いて、クライアント1のポートに転送されます。

3
Ikon