Strongswan VPN接続にローカルの非バインドDNSサーバーを使用する


0

アイデア:VPNソリューションと同じサーバーにインストールされたバインドされていないDNSを使用して、すべてのVPN接続でDNSを使用して広告や同様の不要なサイトをブロックします。

現在、ローカルリクエストに対して非バインドが設定されています。

Strongswan / ipsecを設定して、unboundをDNSサーバーとして使用するにはどうすればよいですか?インターネットにバインドされていない状態で開く必要がありますか、それとも何らかの方法でサーバーを介してVPN接続からローカルにDNSを照会できますか

前もって感謝します!

PS:セットアップに関する追加情報が必要な場合は、お気軽にお問い合わせください。


スプリットトンネリングを使用していますか?または、すべてのクライアントトラフィックがVPNサーバーにトンネルされますか?どのクライアントを使用していますか?
ecdsa

クライアントが接続すると、すべてのトラフィックがVPNサーバー経由でトンネリングされます。クライアントはiOSおよびmacOSです。
b4d

回答:


1

これを行う1つの方法は、クライアントの仮想IPに使用するサブネットからサーバーにIPアドレスを割り当てることです。次に、そのIPアドレスをDNSサーバーとしてクライアントに割り当て、IPアドレスプールからIPを除外します。オプションで、Netfilterのポリシーマッチングモジュール(iptables-extensionsのマニュアルページを参照)を介してそのIPアドレスへのアクセスをフィルタリングし、VPNを介してのみアクセスできるようにします。

たとえば、IPアドレスプールが192.168.8.0/24(たとえばrightsourceip、ipsec.confまたはswanctl.confの「プール」セクションで構成されている場合)192.168.8.1サーバーに(たとえば、任意のインターフェイスでlo)割り当ててから、プールを192.168.8.2/24(クライアントに割り当てられる最初のアドレスは192.168.8.2)です。192.168.8.1DNSサーバーとして割り当てるにはrightdns、ipsec.confまたはswanctl.confのプールセクションで構成します。

サーバーのパブリックIPアドレスを使用し、前述のポリシーマッチングを使用してVPNを介したUDPポート53へのアクセスのみを許可することもできますが、VPNを介してサーバーのパブリックIPにパケットを送信しないため、これはAppleクライアントでは機能しません(そのため、DNSサーバーを公開するか、クライアントのパブリック/ナットIPアドレスからのアクセスを許可するファイアウォールルールを動的に追加する必要があります。


答えてくれてありがとう、論理的に思える、私はそれを試して、調査結果を報告します。
b4d

これを実行しましたが、クライアントは引き続きrightdnsの2番目のDNSエントリを使用します。VPNを「@ 192.168.8.1何かを掘る」ように強制しようとすると、タイムアウトします。「ip addr add 192.168.8.1 dev lo」でループバックインターフェイスにIPを割り当てました。私はiptablesが問題だと信じています。現在、192.168.8.0 / 24と他のすべての間のチェーンのすべてを受け入れています。IPを192.168.8.2/24に置き換えようとしましたが、iptablesは変更を受け入れません。他に何ができますか?
b4d

この場合、INPUTチェーンは関連します(宛先アドレスはローカルです)。FORWARDではありません。
ecdsa

うーん、このルールはキャッチすべきではないでしょうか?すべてを
受け入れる-lo

さて、iptablesのLOGを使用して動作していますが、パケットがドロップされることに気付きました。ルールの追加はすべて修正しました:ACCEPT udp-* * 192.168.8.2/24 192.168.8.1 udp dpt:53 / * VPN経由のDNSアンバウンド* / unbound.confにインターフェースを追加し、アクセス制御を許可することを忘れないでください。ecdsaに感謝します!
b4d
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.