結論から言いますと、BungeeCordからマイクラサーバーまでは、ファイヤーウォールでアクセス制限を設定してください
(公式マニュアルに記載があります)
構成
HAproxy -> BungeeCord ->Minecraft Server(Spigot)
上記のサーバーをすべて別々の筐体でグローバルIPアドレスを振ってます。
- 2021/10/23
AM 1:40風呂上がりに、緊急対応を要請するメッセージを確認詳細を確認するべく、チャットログを参照
どうやら、運営のIDでログインしてきたが、ログの確認をして別の箇所経由でログインしてることが判明
- AM 1:50応急処置
原因は把握しているため、その対応を行う
ファイヤーウォールで該当ポートをBungee CordのIPアドレスのみ許可して他は遮断するアクセス制限を実施
- AM 2:10ログの解析
被害やIPアドレスが残ってないか確認を行った。
[09:27:19] [Server thread/INFO]: /XXX:XXX:XXX:XXX:xxxxx lost connection: If you wish to use IP forwarding, please enable it in your BungeeCord config as well!
上記のログを発見した。
このログを示してるのは直接入ろうと試みている事がわかる[09:27:34] [Server thread/INFO]: XXXXXXXXX[/1.1.1.1:xxxxx] logged in with entity id 351903 at ([world]122.47030346257655, 256.0428968390133, -42.8425672738779)
その後、数人の運営のIDを偽装してログインしていることがわかる。
荒らしの始まりであった…. - AM 3:20無駄に空いていたファイヤーウォールの調整完了
何が起きていたか
重要なのは、ファイヤーウォールが原因である
SpigotでBungeeCordの受信待ちをする際、BungeeCordのIPアドレスを入れる必要がない仕様である
また、BungeeCord本体でonlineモードも切り替えることもでき、それを無効化した物を、攻撃者は用意してたと思われる。
ポート開放だけしているBungeeCordの受信待ちをしているMinecraftサーバーに対して、オンラインモードを無効化したシステムを使うと再現できると思われる
解決策
BungeeCordの受信待ちをしているMinecraftサーバーは、IPアドレス制限でポート開放を行う
(機種・OSによって変わるため自分たちで調べてほしい)
IPアドレスを隠すにしても、限界があるので、そこは許容することにした。
今回は、ファイヤーウォールに対して特定のIPアドレス時のみ通信許可をするアクセス制限で対応した。
Copyright secured by Digiprove © 2021
コメント