私の主な目的は次のとおりです。サーバーにVPNサーバーをインストールし、そのサーバー上のWebサイトには、同じサーバー上でVPNを使用しているユーザーのみがアクセスできるようにする必要があります。
まず、2つのサーバーの場合が機能します。
つまり、AとBの2つのサーバーがあります。PPTP VPNサーバーはAにインストールされ、nginxはBにあります。
Nginxサイトの許可ルールを次のように設定しましたが、正常に機能します。
allow ip_of_a;
deny all;
ただし、Aのサイトに接続しようとすると(vpnサーバーにもnginxサーバーがあります)、リモートIPは元のIPとして表示され、VPN経由で接続したときに取得したIPではなく、nginxで403Forbiddenページが表示されます。 。エラーログには、VPNのIPではなく、元のIPからの接続試行が表示されます。
VPNは、与えられたIPではなく元のIPを認識していることを理解していますが、この状況には回避策が必要です。
VPNは、フォームのローカルIPに許可10.80.80。*を割り当てるので、フォームの別の許可を設定します
allow 10.80.80.0/24;
それはトリックをしませんでした。
VPNが提供するローカルIPを直接追加しようとしましたが、やはり機能しませんでした。
allow 10.80.80.100;
これはどういうわけかpptpサーバーから修正する必要がありますか、それともnginxルールから修正できますか?
編集:VPNに接続する前後のクライアント(OS X)のルーティングテーブル:
前:
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 18 0 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 17 12724964 lo0
169.254 link#4 UCS 0 0 en0
192.168.1 link#4 UCS 3 0 en0
192.168.1.1 0:25:9c:4a:c6:44 UHLWIir 19 28906 en0 1000
192.168.1.126 0:88:65:5c:6a:f4 UHLWIi 0 33 en0 440
192.168.1.129 127.0.0.1 UHS 1 0 lo0
192.168.1.255 ff:ff:ff:ff:ff:ff UHLWbI 0 24 en0
後:
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.99.99.99 UGSc 16 0 ppp0
default 192.168.1.1 UGScI 11 0 en0
10 ppp0 USc 1 0 ppp0
10.99.99.99 10.99.99.100 UHr 17 8 ppp0
SERVER_IP_HERE 192.168.1.1 UGHS 1 299 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 17 12724968 lo0
169.254 link#4 UCS 0 0 en0
192.168.1 link#4 UCS 3 0 en0
192.168.1.1 0:25:9c:4a:c6:44 UHLWIir 13 28987 en0 988
192.168.1.126 0:88:65:5c:6a:f4 UHLWIi 0 33 en0 428
192.168.1.129 127.0.0.1 UHS 0 0 lo0
192.168.1.255 ff:ff:ff:ff:ff:ff UHLWbI 0 38 en0
説明されているように、VPNサーバーはデフォルトでWebトラフィックをリダイレクトしません ここ 、行を追加します
Push "redirect-gateway def1"
openvpn.confで、VPNサーバーIPをリモートIPとして使用できるようになり、それを使用してWebサーバーでパスできるようになります。
実際には、DNSサーバーを設定する必要はありません。私は次のシナリオを試しました
VPNサーバー
エイリアスを作成する
# ifconfig eth0:1 192.168.127.10 netmask 255.255.255.255 up
Nginxをエイリアスアドレスに構成します
server {
listen 192.168.127.10:80;
server_name site1.example.net;
location / {
root /var/www/html;
}
}
Iptablesを構成する
# iptables -t nat -I PREROUTING -p tcp -d xxx.xxx.xxx.xxx --dport 80 -j DNAT --to-destination 192.168.127.10:80
ここで、xxx.xxx.xxx.xxxサーバーAのパブリックIPアドレスとサイトのIPアドレス