web-dev-qa-db-ja.com

OpenVPNクライアントルーターを構成する方法

タブレット(ワイヤレス)とブルーレイ(有線)をUbuntu 12.10の他の国の有料VPNサービスに接続できるように、OpenVPNルーターを設定しようとしています。 DD-WRT(遅すぎる)とPFSenseの仮想インスタンス(制限が大きすぎる)を使用してこれを正常に完了しました。

私はLinuxを初めて使用しますが、このプロジェクトは90%完了しています。ハードウェアは2つの有線イーサネットポートで、そのうちの1つは従来のホームルーターに接続され、ワイヤレスカードです。

これまでのところ..

  1. Hostapdを使用して、ワイヤレスを真のマスターアクセスポイントとして機能するように設定します
  2. ワイヤレスLANとローカルLANの間にブリッジ(私が思うに)を作成しました
  3. ブリッジにアドレスを正常に割り当てるDHCPサーバーをセットアップします-ワイヤレスと有線の両方がそれらを取得しています。
  4. 起動時にトンネル接続が正常に作成されるようにOpenVPNをセットアップします。

現在の動作では、すべてのトラフィックがUbuntuマシンからVPNサーバーにルーティングされます。他のデバイスには接続性がなく、それが問題です。

私の質問/目標:

OpenVPNが実際のUbuntuコンピューターからのトラフィックではなく、VPNトンネルを介してブリッジ(192.168.10.xの下のデバイス)からのトラフィックのみを誘導するようにルーティングを構成するにはどうすればよいですか?

OpenVPNはいくつかのルートを自動的に設定しますが、設定したブリッジを無視するようです。

iptablesおよびrouteに関するドキュメントをたくさん読みましたが、私にはほとんど意味がありません。複数のチュートリアルにもかかわらず、routeコマンドからの結果の読み方がまだわかりません。また、OpenVPN構成ファイルのroute-noexecおよびroute-upでこれを達成できると思いますが、何も成功していません。

構成ファイルと設定がどこにあるかについての私の知識は限られています。上記のタスクには少なくとも30時間の調整が必要だったので、簡単に行ってください:)

ありがとう!

編集

ブリッジトラフィックを誘導するソリューションを以下に投稿しましたが、UbuntuコンピューターのトラフィックがVPNを通過するのを防ぎません。

12
jbrookover

これが理想的かどうかはわかりませんが、少なくとも機能しています。完璧な世界では、UbuntuコンピューターのトラフィックはVPNを経由せず、Ubuntuコンピューターに接続されたデバイスのみがルーティングされます。とにかく、ここに解決策があります。

openvpn.confファイル内

script-security 2
up "/path/to/external/script.sh"

/path/to/external/script.shファイル内

iptables -A FORWARD -o tun0 -i br0 -s 192.168.10.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

上記では、tun0はOpenVPNによって作成されたトンネル、br0はローカルワイヤレスとローカルLANの間のブリッジ、192.168.10.0/24はローカルLANのサブネット/ DHCPプールです。

このスクリプトが何をするのかわかりませんが、インターネット接続の共有に関するいくつかのサイトからまとめました。

より良いものを提供したい場合や、UbuntuコンピューターのトラフィックがVPNを通過するのを防ぐ方法を説明したい場合に備えて、この回答は未チェックのままにします。

1
jbrookover

ネットワーク上のすべてのデバイスが通過するように、ルーター自体をVPNサーバーに接続するように簡単に構成できます。これは、ルーターのソフトウェアWebインターフェースから実行できます。

PCに接続されたデバイスがインターネットにアクセスできるようにするには、そのPCから他のユーザーへのインターネット共有を行う必要があります。

0
Islam