サーバー/ゲートウェイ用

サーバー/ゲートウェイ用

光ファイバー接続を持つ友人の自宅でホストする自家製サーバーをセットアップしています(家庭専用サーバー:HDSと呼ばれます)。しかし、友達のIP接続を直接使用したくありません。専用サーバー(ホーム専用サーバー:HDSと呼ばれる)の接続を使用するには、独自のIPを保護し、優れたDDoS保護を提供し、残りのインターネットとの相互接続の一貫性を向上させます。

この時点で、指定された専用サーバーのセカンダリ(「フェイルオーバー」とも呼ばれる)IPが提供されました。新しくデプロイされたサービスの方向に特定のポート冗長性を追加する必要なく、それ自体がインターフェイスIPであるかのように、フェイルオーバーを介してHDSに直接接続できるように、このIPをHDSのトンネルとして使用したいと思います。

例:
- セカンダリIPが127.1.2.3であるとします。
- HDSのポート22でサービスをホストしています。
- これにより、インターネット上のすべてのクライアントが127.1.2.3:22に接続してHDSに直接接続できます。 - 一方、HDSは2次IPをインターネット接続のためのゲートウェイとして使用します。

問題は、これを説明するのは本当に難しいと確信していますが、これを達成する方法やWebで何を検索するのかわからないということです。これが私がインスピレーションを得るためにここに来た理由です。私の推測(そして希望)は、いくつかのスマートルーティング+ VPN接続であれば、これを達成するのに十分であるということです。

私が達成しようとしている目標を理解するのに役立つ場合は、簡単な図面回路図を作成しました。

ネットワーク図

どんな指針でも感謝します。

ベストアンサー1

まあ、いつものように難しい質問をしたら、仕事で長い一日を過ごした後、自分で答えることができます。

サーバー/ゲートウェイ用

残りの例では、私のサーバーのデフォルト値(インターフェースとパブリックIP)がddddであるとします。

1)フェールオーバーIP(追加IP)を取得します。この場合、f.f.f.f
2)受信したらこのIPを追加します。/etc/network/interfaces

auto eth0:0
iface eth0:0 inet static
address f.f.f.f
netmask 255.255.255.255
broadcast f.f.f.f

次に変更を適用します。/etc/init.d/networking restart

3) openvpn サーバを設定します。市場には多くのチュートリアルがあります。ほとんどは不都合なチュートリアルです。私ができる唯一のアドバイスは、openvpnをインストールした後にヘルプディレクトリにあるデフォルト設定から始めることです。したがって、私たちの目的に合わせて適切なサーバーを実装するには、構成の大部分が必要です。
私の場合、設定ファイル/etc/openvpn/servervpn.conf

# IP and protocols
local d.d.d.d # Listen to your default server IP
port 1194 # Default port, perfectly fine to me
proto udp # Heard there were issues with tcp
dev tap # Can use tun as well
# Certificates and encryption
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
tls-auth ta.key 0
cipher AES-256-CBC
# Tunnel network
server 10.8.0.0 255.255.255.0 # I'm sticking to default range which is fine
comp-lzo
# DNS servers provided by opendns.com.
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
# Keepalive
keepalive 10 120
# Safety
user nobody
group nogroup
persist-key
persist-tun
# Logging
status openvpn-status.log
log-append /var/log/openvpn.log
verb 5
mute 20

その後、サービスを再起動します。設定が完全​​でない場合、エラーは発生せず、ロギングも提供されません。頑張って問題を見つけてください。systemctl restart [email protected]

4)Iptablesフェールオーバーに入るトラフィックをVPNトンネルにリダイレクトし、VPNクライアントからのパケットをネットワークに中継する必要があります。この部分が最も惜しかった部分なのに…楽しくお楽しみください。
ffff をフェールオーバー IP に置き換えます。 10.8.0.0/24 がプライマリ VPN ネットワークなので、プライマリネットワークを使用しない場合は、それに応じて変更してください。
最後のIPは私のVPNクライアントIPです。変更される可能性がありますが、私の場合は10.8.0.4です。

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source f.f.f.f
iptables -t nat -A PREROUTING -d f.f.f.f -j DNAT --to-destination 10.8.0.4

VPNクライアント(ホームサーバー)の場合

1) MAC 割り当てを使用してホームサーバーに固定 IP を割り当てるので、私のローカルホームサーバー IP は 192.168.1.2 ですが、重要ではありません。 2)ポート1194 udpをリダイレクトします(OpenVPNのデフォルトポートですが、すべてのポートが利用可能です)。優先)ローカルサーバーIPを使用します(私の場合は192.168.1.2)。 3) openvpn をインストールし、VPN サーバーに接続します。これに関連する多数のチュートリアルがありますが、/etc/openvpn/client.conf私の場合でも重要な設定は次のとおりです。

client
remote d.d.d.d 1194 # your server main/default IP
dev tap # can use tun as well
proto udp # tcp seems to have issues
remote my-server-1 1194
resolv-retry infinite
user nobody
group nogroup
# Try to preserve some state across restarts.
persist-key
persist-tun
# Certs
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
tls-auth ta.key 1
cipher AES-256-CBC # Might vary depending on how you set it
# Compression
comp-lzo
# Log verbosity
verb 3

その後、クライアントを再起動します。 systemctl restart[Eメール保護]

ファイアウォールポリシーがすべてを許可するように設定されていることを確認し(何をしているのかわからない場合)、続行してください。

サービスがVPN IPまたは0.0.0.0を受信する必要がない限り、フェールオーバーIPがホームサーバーのIPであるかのように機能する必要があります。

この記事が他の人に役立つことを願っています。

このフランス語の記事のおかげで、必要なiptablesを見つけました。ありがとうございます。http://www.guiguishow.info/2013/06/14/vpn-unipersonnel-avec-une-ip-failover-en-sortie-sur-un-dedie-ovh/

おすすめ記事