web-dev-qa-db-ja.com

マルチクラフト:GREトンネルを介したポートフォワーディング

この1週間、VPSから専用マシンへのGREトンネルを利用して、DOS攻撃からサーバーを保護しようとしてきましたが、あまり成功しませんでした。

ビジュアル:

User --> VPS --> Dedicated Server

私はいくつかのガイドに従いました [〜#〜] buyvm [〜#〜] および Minecraft DDOS Protection そして必要に応じてそれを修正しました。

私がこれまでにしたこと:

両方のマシンに、次のカーネルモジュールがロードされます

ip_gre
ip_nat_pptp
ip_conntrack_pptp

さらに、ipv4ポート転送が両方のマシンで有効になっています。

専用マシンでのGREの設定:

ip tunnel add veridian mode gre remote VPS_EXTERN_IP local DEDICATED_EXTERN_IP ttl 255
ip link set veridian up
ip addr add 10.10.10.1/24 dev veridian

これにより、インターフェイスが生成されます。

veridian  Link encap:UNSPEC  HWaddr 3F-8D-F2-FA-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.10.10.1  P-t-P:10.10.10.1  Mask:255.255.255.0
          inet6 addr: fe80::200:5efe:3f8d:f2fa/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP  MTU:1476  Metric:1
          RX packets:4016 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3970 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:338404 (338.4 KB)  TX bytes:359357 (359.3 KB)

VPSでのGREの設定

ip tunnel add gre1 mode gre remote DEDICATED_EXTERN_IP local VPS_EXTERN_IP ttl 255
ip link set gre1 up
ip addr add 10.10.10.2/24 dev gre1

これにより、インターフェイスが生成されます。

gre1      Link encap:UNSPEC  HWaddr 68-83-98-C8-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.10.10.2  P-t-P:10.10.10.2  Mask:255.255.255.0
          inet6 addr: fe80::200:5efe:6883:98c8/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP  MTU:1476  Metric:1
          RX packets:3743 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3811 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:314188 (314.1 KB)  TX bytes:335587 (335.5 KB)

専用サーバーのソースルートテーブルへのVPSインターフェイスIPの追加:

echo '100 VERIDIAN' >> /etc/iproute2/rt_tables
ip rule add from 10.10.10.0/24 table VERIDIAN
ip route add default via 10.10.10.2 table VERIDIAN

何が機能するか

ここから、VPSから専用サーバーに正常にpingを実行できます

ping 10.10.10.1

およびその逆

ping 10.10.10.2

さらに、VPSでNATエントリを設定すると、

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j SNAT --to-source VPS_EXTERN_IP

次のコマンドを実行して、専用サーバーからVPSの外部IPを正常に取得できます。

curl http://www.cpanel.net/showip.cgi --interface 10.10.10.1

動作しないもの-ポートフォワーディング

私が今実行しているVPSで:

iptables -t nat -A PREROUTING -p tcp -d VPS_EXTERN_IP --dport 25565 -j DNAT --to-destination 10.10.10.1:25565

iptables -A FORWARD -p tcp -d 10.10.10.1 --dport 25565 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

VPSの外部IPアドレスを介してゲームサーバーに接続しようとしましたが、成功しませんでした。

私はこれと一週間以上戦ってきました。どんな助けでも大歓迎です。

更新

上記のすべてが正しいです。

もう少しデバッグすると、ゲームインスタンスに外部IPが設定されている場合、ゲームサーバーのラッパーデーモン(Multicraft)がローカルホスト接続をブロックすることがわかりました。

解決策は、IPを0.0.0.0に設定することであり、ポート転送は完全に機能します。

Multicraft

3
Brian McDonald

表示されているドキュメントには記載されていないため、IP転送を有効にするのを忘れたと想定します。

次のコマンドを実行して、これが実際に当てはまることを確認します。

sysctl net.ipv4.ip_forward

IP転送が実際に無効になっている場合は、次のように表示されます。

net.ipv4.ip_forward = 0

これが問題である場合は、次を実行します。

sysctl -w net.ipv4.ip_forward=1

おそらくあなたの問題は、ポートが開いていないか、ファイアウォールがポートをブロックしていることです。
nmapを使用して、VPSから専用マシンにこれを簡単にテストできます。

nmap -A 10.10.10.2/24 -p 25565

クライアントマシンから外部からアクセス可能なマシンへも同じ方法で行いますが、10.10.10.2をVPS外部アドレスに置き換えます。

1
Reaces