\r\n\r\n

awsで自宅のminecraftサーバーをddos攻撃から守る

あなたのIPアドレスを公開することなく、自宅でマインクラフトサーバーを運営したいと思いませんか?できますよ!amazonwebservicesを使用して無料のプロキシを設定するだけで、サービス拒否攻撃からサーバーを保護することができます。その方法をお教えします...。

自宅からIPアドレスを明かさずにMinecraftサーバーを運営したい?できますよ!amazonwebservicesを使用して無料のプロキシを設定するだけで、サービス拒否攻撃からサーバーを保護することができます。その方法をお教えします。

このガイドは Minecraft だけでなく、あらゆるゲームサーバーに適用されます。このガイドが行うのは、特定のポートにトラフィックをプロキシすることだけです。Minecraftのポート25565を、ゲームサーバーが動作しているポートに変更すればよいのです。

どうしたんだ?

Minecraft サーバーをホストし、インターネットに公開すると仮定すると、サーバーを運営するのは難しくありません。インストールも簡単で、使用する処理スレッドも1つだけ、さらに大幅に変更したサーバーでも、オンラインプレーヤーが数人しかいない場合は2~3GB以上のRAMを必要としません。サーバーをホストするために誰かにお金を払わなくても、古いラップトップや、デスクトップ上のバックグラウンドで簡単にサーバーを動かすことができます。

しかし、そこに接続してもらうためには、自分のIPアドレスを教える必要があります。これには、いくつかの問題があります。特に、ルーターにデフォルトの管理者パスワードが残っている場合は、セキュリティ上の大きなリスクとなります。また、分散型サービス拒否(DDOS)攻撃にもさらされ、Minecraft サーバーが停止するだけでなく、攻撃が収まるまでインターネットが遮断される可能性もあります。

ルーターに直接接続することを許可する必要はありません。その代わりに、Amazon Web Services、Google Cloud Platform、Microsoft Azureのいずれからも、小さなLinuxボックスを借りることができます(いずれも無料ティアがあります)。このサーバーは Minecraft サーバーをホストするほどの性能は必要なく、接続を転送してくれるだけです。これにより、自分のIPアドレスではなく、プロキシサーバーのIPアドレスを提供することができます。

誰かがあなたのサーバーに接続したいので、AWS プロキシの IP アドレスを Minecraft クライアントに入力したとします。パケットはポート 25565 (Minecraft のデフォルトポート) でプロキシに送信されます。プロキシはポート25565のトラフィックにマッチするように設定され、自宅のルーターに転送されます。これは裏側で起きていることで、連絡した本人も知らないことです。

その際、ルーターがポートフォワーディングを行い、実際のパソコンに接続できるようにする必要があります。お客様のコンピュータはサーバーを実行し、クライアントからのパケットに応答します。プロキシサーバーはパケットを書き換えて、プロキシサーバーが応答しているように見せかけるのです。クライアントは何が起こっているのかわからず、ただプロキシがサーバーを動かしているシステムだと思い込んでいるのです。

自宅のルーターがパソコンを守るように、サーバーの前にもう一台ルーターを追加するようなものです。しかし、この新しいルーターはamazon web service上で動作し、すべてのAWSサービス(AWS-Shieldと呼ばれる)でトランスポート層の完全なDDOS緩和を無料で受けることができます。攻撃を検知した場合、サーバーに影響を与えることなく、自動的に攻撃を緩和することができます。何らかの理由で止まらない場合は、いつでもインスタンスを停止して、家への接続を切ることができます。

プロキシを扱うには、sslhというユーティリティを使用します。SSH (通常はポート22) と HTTPS (ポート443) を同じポートで動作させたい場合、問題が発生します。sslh が前面に出て、ポートを目的のアプリケーションにリダイレクトすることで、問題を解決します。しかし、ルーターと同じようにトランスポート層で実装されています。つまり、Minecraftのトラフィックをマッチングして、お客様のホームサーバーに転送することができるのです。デフォルトでは、sslhはnon-transparentです。つまり、パケットを書き換えて自宅のIPアドレスを隠します。このため、Wiresharkのようなもので誰もそれを嗅ぎつけることはできません。

新しいvpsを作成し、接続する

まず、すでにプロキシサーバーを設定していますが、これはLinuxの経験があれば確かに簡単ですが、必要ではありません。

Amazon Web Servicesにアクセスし、アカウントを作成する。デビットカードやクレジットカードの情報が必要ですが、これは重複してアカウントを作成されるのを防ぐためで、作成されたインスタンスには料金はかかりません。無料期間は1年なので、使い切ったら必ず電源を切ってください。Google Cloud Platformには、希望すれば無料のf1マイクロインスタンスが用意されています。また、Googleは年間300ドルのクレジットを提供しており、それを使ってきちんとしたクラウドサーバーを運営することができます。

AWSは帯域幅に課金されます。1GBは無料で利用できますが、1GBを超えるごとに0.09ドルの税金を支払います。現実的には考えないかもしれませんが、請求書に20セントの請求があったら、気をつけたいものです。

アカウント作成後、AWSの仮想サーバープラットフォームである「EC2」を検索し、AWSが新しいアカウントでEC2を有効にするのを待つ必要がある場合があります。

Instances」タブから「Start Instance」を選択し、スタートアップウィザードを起動します。

OSはデフォルトの「amazonlinux2ami」または「ubuntuserver18.04lts」を選択することができます。Nextをクリックすると、インスタンスタイプを選択する画面が表示されます。Free Tierのインスタンスであるt2.microを選択します。このインスタンスは、AWSの無料ティアで24時間365日稼働させることができます。

次のページで「起動」を選択すると、次のようなダイアログボックスが表示されます。新しいキーペアを作成する」をクリックし、「キーペアをダウンロードする」をクリックします。これはインスタンスのアクセスキーになりますので、なくさないように、ドキュメントフォルダに大切に保管しておいてください。ダウンロードしたら、"Launch Instance "をクリックします。

インスタンス]ページに戻ります。インスタンスのIPv4パブリックIP(サーバーのアドレス)を調べます。アドレスを探すためにこのページに戻り続けるのが面倒な場合は、AWSのエラスティックIP(リブート処理中に変更されない)、あるいは無料のドメインドット.tkを設定することも可能です。

アドレスを保存しておくと便利です。まず、インスタンスのファイアウォールを編集して、25565番ポートを開放します。 "Security Groups "タブから、インスタンスが使用しているグループ(おそらく launch-wizard-1 )を選択し、"Edit "をクリックします。

新しいカスタムTCPルールを追加し、ポート範囲を25565に設定します。ソースは「Anywhere」または「0.0.0.0/0」に設定します。

変更を保存し、ファイアウォールを更新します。

これからサーバーにSSH接続してプロキシを設定します。macOS/Linuxをお使いの方は、ターミナルを開いてみてください。Windowsの場合は、PuTTYなどのSSHクライアントを使用するか、Linux用のWindowsサブシステムをインストールする必要があります。後者の方がより一貫性があるのでお勧めです。

まず、キーファイルがあるドキュメントフォルダにcdディスクを焼いてください。

cd ~/Documents/

Windows Subsystem for Linuxをお使いの場合、Cドライブは/mnt/C/にありますので、ドキュメントフォルダ:にcdを焼く必要があります。

cd /mnt/c/Users/username/Documents/

iフラグを使用して、SSHに鍵ファイルを使用して接続することを伝えます。ファイルは.pem拡張子を持っているので、以下を含む必要があります。

ssh -i keyfile.pem [email protected]

0.0.0.0」をご自分のIPアドレスに置き換えてください。AWS Linuxではなく、Ubuntu Serverをご利用の場合は、ユーザー "Ubuntu" で接続してください。

アクセス権が与えられ、コマンドプロンプトがサーバープロンプトに変更されるのが確認できるはずです。

sslhの設定

AWS-Linuxではyum、Ubuntuではapt-getでインストールできます。

sudo yum install epel-release sudo yum install sslh

インストール後、設定ファイルをnanoで開き

nano /etc/default/sslh

RUN=パラメータを "yes "に変更する。

デーモンの最終行の下に、次のように入力します。

DAEMON_OPTS="--user sslh --listen 0.0.0.0:25565 --anyprot your_ip_address:25565 --pidfile /var/run/sslh/sslh.pid

あなたのIPアドレス」を「あなたの家のIPアドレス」に置き換えてください。自分のIPがわからない場合は、「IPアドレスとは」で検索してください。" をGoogleで検索すると、はい、マジです。

この設定は、sslh プロキシがポート 25565 ですべてのネットワークデバイスをリッスンするようにします。Minecraft クライアントが別のポート番号を使用している場合、または別のゲームをプレイしている場合は、別のポート番号に置き換えてください。通常、sslhを使用すると、異なるプロトコルをマッチングして、異なる場所にルーティングすることができます。しかし、今回の目的では、可能な限りのトラフィックをマッチングして、あなたの \u ip_address: 25565 に転送したいだけです。

Control+X、Yの順に押してファイルを保存します。以下を入力して、sslhを有効にします。

sudo systemctl enable sslh sudo systemctl start sslh

systemctl がシステムで利用できない場合、代わりに service コマンドを使用する必要があります。

sslhが実行されているはずです。ご自宅のルーターがポートフォワーディングを行い、25565のトラフィックをコンピューターに送信していることを確認してください。コンピュータに固定IPアドレスを与えて、変更されないようにするとよいでしょう。

ユーザーがサーバーにアクセスできるかどうかを確認するには、オンラインステータスチェッカーにプロキシのIPアドレスを入力してください。また、プロキシのIPをMinecraftクライアントに入力して参加することもできます。うまくいかない場合は、インスタンスのセキュリティグループのポートが開いていることを確認してください。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ