web-dev-qa-db-ja.com

OpenVPNを使用すると、2つのクライアントは、クライアント間をグローバルに使用せずに相互に接続できます。

CentOS6でOpenVPN2.3.7を実行しています。ルーティング(tun)を使用しており、OpenVPNのインスタンスが2つあります。 2番目のインスタンスには、相互に表示したい2つのクライアント、つまりping、アクセスポートなどがあります。これらは両方とも同じサブネット内にあるため、かなり単純なはずです。静的アドレスを使用して構成されます。 ccd。

Server.confでclient-to-clientを有効にせずに、2つのクライアントがOpenVPN LANIPアドレスを介してお互いを認識できるようにしたい。

私はCSFを使用していますが、ファイアウォールとして使用しているiptablesを使用して実行できると確信していますが、iptablesのラッパーです。

クライアントのIPv4アドレスは次のとおりです。

OpenVPN Client #1: 10.8.2.14 
OpenVPN Client #2: 10.8.2.17

クライアント2で実行されているサービスにアクセスできるようにするには、クライアント#1が必要です。応答が必要な場合は、互換性のあるクライアント#2がクライアント#1を確認できると思います。

OpenVPNサーバーでいくつかのFORWARDチェーンルールを試しましたが、2つのクライアント間で通信を取得できません。 OpenVPNサーバーは明らかに両方のクライアントにpingを実行でき、クライアントはOpenVPNサーバーゲートウェイにpingを実行でき、クライアントは明らかにお互いを見ることができません。

私がすでに試したが機能しなかったいくつかのルール:

iptables -A FORWARD -s 10.8.2.14 -d 10.8.2.17 -j ACCEPT
iptables -A FORWARD -s 10.8.2.17 -d 10.8.2.14 -j ACCEPT

クライアント間を有効にせずに、2つのクライアントを相互に表示するためのiptablesのヘルプを探しています。これは、2つのクライアントの特別な要件であり、他の場所では必要ありません。

別の方法は、NATを介してVPNクライアント上のサービスを公開することですが、セキュリティのためにこれを行うことは避けたいと思います。

どんな洞察も役に立ちます!

ありがとう、

ジェームズ

8
James White

逆にすることをお勧めします:enable client-to-client次に、iptablesを使用してすべてのクライアントをブロックしますが、2つは相互に通信できるようにします。

1
pjz

私はこの質問が古いことを知っていますが、まだこのページにアクセスしている可能性のある新しいユーザーにそれを明確にするために:

client-to-clientを使用すると、実際にファイアウォールを使用できなくなります。OpenVPNサーバーからパケットが返されることはないため、サーバーはこれらのパケットをまったく認識しません。したがって、パケットはホストレイヤーに到達していないため、ファイアウォールに到達せず、そのようにルールが役に立たないため、ファイアウォールを使用できます。

1
Matthew