OpenVPN - リダイレクトゲートウェイが機能しない

OpenVPN - リダイレクトゲートウェイが機能しない

パブリック IP を持つサーバーに OpenVPN サーバー (VPN IP = 10.8.0.1) をセットアップしました。また、学校の IP を持つワークステーション (Ubuntu) を研究室に設置し、学校のイントラネット リソースにアクセスできます。

Android フォンと Windows PC がそのリソースにアクセスできるようにしたいので、次の操作を行います。

  • OpenVPN サーバー設定:

    dev tun
    トポロジ サブネット
    サーバー 10.8.0.0 255.255.255.0
    client-config-dir /etc/openvpn/server/ccd
    push "route 10.8.0.0 255.255.255.0"
    push "route-gateway 10.8.0.3"

  • ワークステーションをサーバーに接続し、IP 10.8.0.3 を取得します。その CCD 構成 (クライアント構成に相当) は次のとおりです。

    ifconfigプッシュ10.8.0.3 255.255.255.0

  • ワークステーションでは、iptables を使用し、いくつかの項目を追加しました:

    $ sudo iptables -t filter -S
    -P INPUT ACCEPT
    -P FORWARD ACCEPT
    -P OUTPUT ACCEPT
    $ sudo iptables -t nat -S
    -P PREROUTING ACCEPT
    -P INPUT ACCEPT
    -P OUTPUT ACCEPT
    -P POSTROUTING ACCEPT
    -A POSTROUTING -s 10.8.0.0/24 -o wlx0810752b55c9 -j MASQUERADE

  • 自宅の PC の CCD 構成は次のとおりです。

    ifconfig-push 10.8.0.5 255.255.255.0
    「ルートゲートウェイ 10.8.0.3」を
    プッシュ 「リダイレクトゲートウェイ def1 バイパス DHCP」を
    プッシュ 「DHCP オプション DNS 8.8.8.8」をプッシュ

  • 結果1 PC はインターネットに接続できません。その PC のルート テーブルは次のとおりです。

    ルート印刷 -4
    0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.21 35
    0.0.0.0 128.0.0.0 10.8.0.3 10.8.0.5 291
    128.0.0.0 128.0.0.0 10.8.0.3 10.8.0.5 291

最後の 2 つの項目は、元のデフォルト ゲートウェイを削除せずに、「redirect-gateway def1」が追加したものです。def1 がトラフィックをリダイレクトする理由が気になります。元のデフォルト ゲートウェイがまだ存在し、メトリックがより優れているため、トラフィックが VPN を通過しないからです。

  • 結果 2 私の Android フォンもできません。

    $ busybox ip route show table all
    default via 10.183.93.203 dev ccmni0 table 1002
    default dev tun0 src 10.8.0.4
    10.8.0.0/24 dev tun0 table 1015
    10.8.0.0/24 dev tun0 src 10.8.0.4 ...

ワークステーションがトラフィックを受信して​​いないことを確認しました。

$ sudo tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
$

これについては多くのトピックを検討しましたが、有効な解決策はありませんでした。どなたか助けてください。どんな提案でも大歓迎です!

答え1

サーバーのccdディレクトリのワークステーションファイルにはirouteが含まれているはずです。試してみてください。アクセスサーバーを使用せずに、ここに示すようにLinuxクライアントをゲートウェイとして使用して同じことを実行しようとしています。 https://www.youtube.com/watch?v=b7qr0laM8kA

関連情報