OpenVPNASサーバーのIPTableとポート転送

OpenVPNASサーバーのIPTableとポート転送

CentOS 7(CentOS 7には関連付けられていません)で実行されている新しいOpenVPNasサーバーがあります。高価な商用VPNをパブリック固定IPに置き換えようとしています。 OpenVPNasサーバーはプライベートVPNサーバーとして機能するため、商用サーバーを交換するには、いくつかのポートを固定の内部VPNアドレスに転送するだけです。

VPNクライアントを設定し、サーバーからクライアントの静的IPに、固定IPからサーバーのパブリックIPにpingできます。

サーバーIPの次のポートを内部VPNに転送/ NAT /最もしたいと思います。

公開TCP 80はサーバーの公開です:80 - > 172.28.28.28:80
パブリックUDPポート2074-2093
パブリックTCPポート15425-15427
パブリックUDPポート5198-5200
パブリックTCPポート5198-5200

route別の/コマンドを試しましたが、iptablesまだ魔法の弾丸を見つけることができませんでした。私はこれが簡単なプロセスだと思いますが、解決策は私を混乱させます。 SSH を使用すると、サーバーは VPN ポート 80 に接続でき、VPN の Web インターフェースを介してクライアントのポートを取得できます。したがって、デフォルトのルーティングは期待どおりに機能します。

サーバーページのポート80に向かうパケットを転送するためにルーティングする魔法の方法はわかりません。

[root@vpn ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

[root@vpn ~]# ルーティング -n
カーネルIPルーティングテーブル
Ifaceを使用したターゲットゲートウェイGenmaskマークメトリックリファレンス
0.0.0.0 209.182.218.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 有 1002 0 0 eth0
172.27.224.0 0.0.0.0 255.255.252.0 ユー 0 0 0 as0t0
172.27.228.0 0.0.0.0 255.255.252.0 ユー 0 0 0 as0t1
172.27.232.0 0.0.0.0 255.255.252.0 ユー 0 0 0 as0t2
172.27.236.0 0.0.0.0 255.255.252.0 ユー 0 0 0 as0t3
172.28.28.28 0.0.0.0 255.255.255.255 語 0 0 0 as0t0
209.182.218.0 0.0.0.0 255.255.255.0 有 0 0 0 eth0

[root@vpn ~]# IP ルーティングリスト
デフォルト値は 209.182.218.1 dev eth0 です。
169.254.0.0/16 dev eth0 スコープリンクメトリック 1002
172.27.224.0/22 dev as0t0プロトタイプカーネル範囲リンクsrc 172.27.224.1
172.27.228.0/22 dev as0t1プロトタイプカーネル範囲リンクsrc 172.27.228.1
172.27.232.0/22 dev as0t2プロトタイプカーネル範囲リンクsrc 172.27.232.1
172.27.236.0/22 dev as0t3プロトタイプカーネル範囲リンクsrc 172.27.236.1
172.28.28.28 dev as0t0オリジナルスタティック
209.182.218.0/24 dev eth0プロトタイプカーネルスコープリンクsrc 209.182.218.187

[root@vpn ~]# ifconfig
as0t0: フラグ=4305 mtu 1500
        inet 172.27.224.1ネットマスク255.255.252.0ターゲット172.27.224.1
        inet6 fe80::4da2:53e9:7fba:8f11 prefixlen 64scopeid 0x20
        指定なし 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 200
        RXパケット219バイト13438(13.1KiB)
        RXエラー0ドロップ0オーバーフロー0フレーム0
        TXパケット250バイト202093(197.3KiB)
        TXエラー0ドロップ0オーバーフロー0キャリア0クラッシュ0

as0t1: フラグ=4305 mtu 1500
        inet 172.27.228.1ネットマスク255.255.252.0ターゲット172.27.228.1
        inet6 fe80::d557:1adc:c34c:4954 prefixlen 64scopeid 0x20
        指定なし 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 200
        RXパケット0バイト0(0.0B)
        RXエラー0ドロップ0オーバーフロー0フレーム0
        TXパケット3バイト144(144.0B)
        TXエラー0ドロップ0オーバーフロー0キャリア0クラッシュ0

as0t2: フラグ=4305 mtu 1500
        inet 172.27.232.1 ネットマスク 255.255.252.0 対象 172.27.232.1
        inet6 fe80::be1a:bfd3:3c25:20f9 prefixlen 64scopeid 0x20
        指定なし 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 200
        RXパケット0バイト0(0.0B)
        RXエラー0ドロップ0オーバーフロー0フレーム0
        TXパケット3バイト144(144.0B)
        TXエラー0ドロップ0オーバーフロー0キャリア0クラッシュ0

as0t3: フラグ=4305 mtu 1500
        inet 172.27.236.1ネットマスク255.255.252.0ターゲット172.27.236.1
        inet6 fe80::bfed:3f81:6938:bbc7 prefixlen 64scopeid 0x20
        指定なし 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 200
        RXパケット0バイト0(0.0B)
        RXエラー0ドロップ0オーバーフロー0フレーム0
        TXパケット3バイト144(144.0B)
        TXエラー0ドロップ0オーバーフロー0キャリア0クラッシュ0

eth0: フラグ=4163mtu 1500
        inet 209.182.218.187 ネットマスク 255.255.255.0 ブロードキャスト 209.182.218.255
        inet6 fe80::216:3eff:fecc:ddf3 prefixlen 64 範囲 ID 0x20
        イーサネット 00:16:3e:cc:dd:f3 txqueuelen 1000 (イーサネット)
        RXパケット11673バイト1350674(1.2MiB)
        RXエラー0ドロップ14オーバーフロー0フレーム0
        TXパケット5295バイト1099520(1.0MiB)
        TXエラー0ドロップ0オーバーフロー0キャリア0クラッシュ0

チャジャン: フラグ=73 mtu 65536
        inet 127.0.0.1 ネットマスク 255.0.0.0
        inet6::1 prefixlen 128scopeid 0x10
        Loop txqueuelen 1000(ローカルループバック)
        RXパケット9バイト748(748.0B)
        RXエラー0ドロップ0オーバーフロー0フレーム0
        TXパケット9バイト748(748.0B)
        TXエラー0ドロップ0オーバーフロー0キャリア0クラッシュ0

ベストアンサー1

OpenVPN-ASにインターフェイスに動的または固定パブリックIPが割り当てられているとします。イーサネット0、ファイアウォールルールを作成するときにインターフェイス名を使用します。このアプローチでは、両方のケースでルールが機能します。この場合、構成する必要があります。ターゲットNAT

VPNサーバーにトンネルインターフェイスがある場合Tun0IPは172.28.28.1IPを持つ内部Webサーバー172.28.28.28リスニングポート80

$ sudo iptables -t nat -A PREROUTING -p tcp -m tcp   -d eth0   --dport 80 -j DNAT --to-destination 172.28.28.28
$ sudo iptables -t nat -A POSTROUTING -o tun0  -p tcp -m tcp   -d 172.28.28.28  --dport 80 -j SNAT --to-source 172.28.28.1

おすすめ記事