openvpnを使用してサイト間を別のサーバーにトンネリングしてWebサーバーを非表示にします。
アーキテクチャは次のとおりです。
SERVER1 SERVER2
WEBSERVER <=> (OPENVPN CLIENT) <=> PEOPLE
(OPENVPN SERVER) Private IP: 10.8.0.2
Private IP: 10.8.0.1
もちろん、SERVER1とSERVER2はどちらもパブリックIP(WANに接続されています)を持ち、プライベートIPはVPNとの接続に使用されるIPを表します。
人々はSERVER1パブリックIPを隠し、SERVER2を介してSERVER1のWebサーバーにアクセスしたいと思います。
openvpnを使用してサイト間トンネルを作成したため、SERVER2はopenvpnプライベートIPを使用してSERVER1のWebサーバーにアクセスできますが、SERVER2パブリックIPからはアクセスできません。
助けてくれてありがとう!
IP出力
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 9a:63:f1:37:d8:f5 brd ff:ff:ff:ff:ff:ff
inet PUBLIC_IP/20 brd PUBLIC_IP
scope global eth0
valid_lft forever preferred_lft forever
inet 10.19.0.5/16 brd 10.19.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 2a03:b0c0:3:e0::c4:6001/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::9863:f1ff:fe37:d8f5/64 scope link
valid_lft forever preferred_lft forever
40: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.0.2 peer 10.8.0.1/32 scope global tun0
valid_lft forever preferred_lft forever
ベストアンサー1
Server2(ポート80および/または443)への着信トラフィックをServer1のOpenVPNトンIPアドレスにリダイレクトする必要があります。
これを行う方法はいくつかあります。私は個人的に過去に次のことをしました。
オプション1: Server2でWebサーバーを実行し、両方のポートに対してすべての要求を「ローカル」IPアドレス10.8.0.1に転送します。 Webサーバーはリクエストをキャッシュすることもできますが、これは有利だと思います。
オプション2: IP転送を使用します(オーバーヘッドを減らす)。サーバー2から:
sysctl net.ipv4.ip_forward=1
その後、フォワード(*):
iptables -t nat -A PREROUTING -p tcp -d PUBLIC_IP --dport 80 -j DNAT --to-destination 10.8.0.1:80
以下を偽装する必要があります。
iptables -t nat -A POSTROUTING -j MASQUERADE
機能する場合は、最初のオプションを次の場所に保存してください/etc/sysctl.conf
。
net.ipv4.ip_forward = 1
IPテーブルルールを保存します。ディストリビューションによって異なります! CentOS 7では:
mv -i /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
iptables-save > /etc/sysconfig/iptables
systemctl stop firewalld
systemctl mask firewalld
yum install iptables-services
systemctl enable iptables
過去数年間、ファイアウォールとディストリビューションの間に多くの変化があったため、状況は異なる可能性があります。
(*) ポート以上が必要な場合は、範囲を使用できます。
iptables -t nat -A PREROUTING -p tcp -d PUBLIC_IP --dport 80:1080 -j DNAT --to-destination 10.8.0.1:80-1080