Вверх

Защитите свой домашний сервер Minecraft от DDOS-атак с помощью AWS

4 февраля 2021 |

Защитите свой домашний сервер Minecraft от DDOS-атак с помощью AWS

The Minecraft logo.

Хотите запустить сервер Minecraft из дома, не раскрывая свой IP-адрес? Ты можешь! Просто настройте бесплатный прокси с Amazon Web Services, чтобы защитить свой сервер от атак типа «отказ в обслуживании». Мы покажем вам, как это сделать.

Это руководство будет работать для любого игрового сервера, а не только для Minecraft. Все, что он делает, — это прокси-трафик на конкретный порт. Вам просто нужно изменить порт 25565 Minecraft на тот порт, на котором работает ваш игровой сервер.

Как это работает?

Допустим, вы хотите разместить сервер Minecraft и сделать его открытым для Интернета. Управлять одним не так уж и сложно. Их легко установить, они используют только один поток обработки, и даже сильно модифицированные серверы занимают не более 2–3 ГБ оперативной памяти при наличии нескольких игроков в сети. Вы можете легко запустить сервер на старом ноутбуке или в фоновом режиме на своем настольном компьютере, вместо того, чтобы платить кому-то другому за размещение его для вас.

Но чтобы люди могли подключиться к нему, вы должны предоставить свой IP адрес. Это создает несколько проблем. Это серьезная угроза безопасности, особенно если на вашем маршрутизаторе по-прежнему установлен пароль администратора по умолчанию. Это также оставляет вас уязвимым для распределенных атак типа «отказ в обслуживании» (DDOS), которые не только остановят ваш сервер Minecraft, но и могут отключить ваш интернет, пока атака не прекратится.

Вы этого не сделаете. должны позволить людям подключаться напрямую к вашему роутеру. Вместо этого вы можете арендовать небольшую коробку Linux в Amazon Web Services, Google Cloud Platform или Microsoft Azure — все они имеют бесплатные уровни. Этот сервер не обязательно должен быть достаточно мощным для размещения сервера Minecraft — он просто перенаправляет соединение за вас. Это позволяет вам выдавать IP-адрес прокси-сервера вместо своего собственного.

Допустим, кто-то хочет подключиться к вашему серверу, поэтому он вводит IP-адрес вашего прокси-сервера AWS в свой клиент Minecraft. Пакет отправляется на прокси-сервер через порт 25565 (порт по умолчанию для Minecraft). Прокси-сервер настроен для сопоставления трафика порта 25565 и пересылки его на ваш домашний маршрутизатор. Это происходит за кулисами — подключающийся даже не знает.

Затем ваш домашний маршрутизатор должен быть перенаправлен на порт, чтобы перенаправить соединение дальше на ваш настоящий компьютер. Ваш компьютер запускает сервер и отвечает на пакет клиента. Он пересылает его обратно на прокси, а затем прокси перезаписывает пакет, чтобы он выглядел так, как будто отвечает прокси. Клиент не догадывается, что это происходит, и просто думает, что прокси — это система, на которой запущен сервер.

Это похоже на добавление еще одного маршрутизатора перед сервером так же, как домашний маршрутизатор защищает ваш компьютер. Однако этот новый маршрутизатор работает на Amazon Web Services и обеспечивает полную защиту от DDOS на транспортном уровне, которая предоставляется бесплатно с каждым сервисом AWS (так называемый AWS Shield). Если атака обнаружена, она автоматически нейтрализуется, не беспокоя ваш сервер. Если по какой-то причине он не остановлен, вы всегда можете отключить экземпляр и разорвать соединение с вашим домом.

Для обработки прокси-сервера вы используете утилиту sslh. Он предназначен для мультиплексирования протоколов. Если вы захотите запустить SSH (обычно порт 22) и HTTPS (порт 443) на одном и том же порту, у вас возникнут проблемы. sslh находится впереди и перенаправляет порты в намеченные приложения, решая эту проблему. Но он делает это на уровне транспортного уровня, как маршрутизатор. Это означает, что мы можем сопоставить трафик Minecraft и перенаправить его на ваш домашний сервер. sslh по умолчанию непрозрачен, что означает, что он перезаписывает пакеты, чтобы скрыть ваш домашний IP-адрес. Это делает невозможным для кого-либо обнаружить его с помощью чего-то вроде Wireshark.

Создание и подключение к новому VPS

Для начала вы настроили прокси-сервер. Это определенно легче сделать, если у вас есть некоторый опыт работы с Linux, но это необязательно.

Перейдите в Amazon Web Services и создайте учетную запись. Вы должны предоставить информацию о своей дебетовой или кредитной карте, но это только для предотвращения создания дублирующихся учетных записей, с вас не взимается плата за экземпляр, который вы создаете. Уровень бесплатного пользования истекает через год, поэтому обязательно отключите его, когда закончите с ним. В Google Cloud Platform есть экземпляр f1-micro, доступный бесплатно в любое время, если вы предпочитаете его. Google также предлагает кредит в размере 300 долларов на год, который вы действительно можете использовать для запуска надлежащего облачного сервера.

AWS взимает небольшую плату за пропускную способность. Вы получаете 1 ГБ бесплатно, но сверх этого облагается налогом 0,09 доллара США за ГБ. На самом деле, вы, вероятно, не будете вдаваться в подробности, но следите за этим, если увидите, что на вашем счете 20 центов.

После создания учетной записи введите в поиске «EC2». Это виртуальная серверная платформа AWS. Возможно, вам придется немного подождать, пока AWS включит EC2 для вашей новой учетной записи.

Type EC2 in the search bar on AWS's virtual server platform.

На вкладке «Экземпляры» выберите «Запустить экземпляр», чтобы открыть мастер запуска.

Click Instances, and then select Launch Instance.

Вы можете выбрать по умолчанию «Amazon Linux 2 AMI» или «Ubuntu Server 18.04 LTS »в качестве ОС. Нажмите «Далее», и вам будет предложено выбрать тип экземпляра. Выберите t2.micro, который является экземпляром уровня бесплатного пользования. Вы можете запускать этот экземпляр круглосуточно и без выходных на уровне бесплатного пользования AWS.

Select t2.micro.

Выберите «Проверить и запустить». На следующей странице выберите «Запустить», и вы увидите диалоговое окно ниже. Нажмите «Создать новую пару ключей», а затем «Загрузить пару ключей». Это ваш ключ доступа к экземпляру, поэтому не теряйте его — поместите в папку «Документы» для надежного хранения. После загрузки нажмите «Запустить экземпляры».

 Click Create a New Key Pair, and then click Download Key Pair. After it downloads, click Launch Instances.

Вы вернетесь на страницу экземпляров. Найдите общедоступный IP-адрес IPv4 вашего экземпляра, который является адресом сервера. При желании вы можете настроить AWS Elastic IP (который не изменится при перезагрузке) или даже бесплатное доменное имя с dot.tk, если вы не хотите снова и снова возвращаться на эту страницу, чтобы найти адрес.

Look for your instance's IPv4 Public IP.

Сохраните адрес на будущее. Во-первых, вам нужно отредактировать брандмауэр экземпляра, чтобы открыть порт 25565. На вкладке «Группы безопасности» выберите группу, которую использует ваш экземпляр (возможно, launch-wizard-1), а затем нажмите «Изменить».

Click the Security Groups tab, and then select the group (probably Launch-Wizard-1) your instance is using.

Добавьте новое настраиваемое правило TCP и установите диапазон портов на 25565. Источник должен быть установлен на «Anywhere» или 0.0.0.0/0.

Add a new Custom TCP rule and set the port range to 25565. The source should be set to 0.0.0.0/0 (or Anywhere).

Сохраните изменения, и брандмауэр обновится.

Теперь мы собираемся подключиться к серверу по SSH, чтобы настроить прокси. Если вы используете macOS / Linux, вы можете открыть свой терминал. Если вы работаете в Windows, вам необходимо использовать SSH-клиент, например PuTTY, или установить подсистему Windows для Linux. Мы рекомендуем второе, так как оно более последовательное.

Первое, что вам нужно сделать, это cd в папку с документами, где ключевой файл:

cd ~ / Documents /

Если вы используете подсистему Windows для Linux, ваш диск C находится по адресу / mnt / c /, и вам нужно перейти к папке с документами по компакт-диску:

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

Используйте флаг -i, чтобы сообщить SSH, что вы хотите использовать ключевой файл для подключиться. Файл имеет расширение .pem, поэтому вы должны включить его:

ssh -i keyfile.pem ec2-user@0.0.0.0

Заменить «0.0.0.0 ”с вашим IP-адресом. Если вы создали сервер Ubuntu, а не AWS Linux, подключитесь как пользователь «ubuntu».

Вам должен быть предоставлен доступ, и ваша командная строка изменится на приглашение сервера.

Настройте SSLH

Вы хотите для установки sslh из диспетчера пакетов. Для AWS Linux это будет yum, для Ubuntu — apt-get. Возможно, вам придется добавить репозиторий EPEL в AWS Linux:

sudo yum install epel-release sudo yum install sslh

После его установки откройте файл конфигурации с помощью nano:

nano / etc / default / sslh

Измените параметр RUN = на «yes»:

Под последней строкой DAEMON введите следующее:

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

Замените your_ip_address своим домашним IP-адресом. Если вы не знаете свой IP-адрес, выполните поиск «какой у меня IP-адрес?» в Google — да, серьезно.

Эта конфигурация заставляет прокси-сервер sslh прослушивать все сетевые устройства на порту 25565. Замените его другим номером порта, если ваш клиент Minecraft использует что-то другое или вы играете в другую игру. Обычно с sslh вы сопоставляете разные протоколы и маршрутизируете их в разные места. Однако для наших целей мы просто хотим сопоставить весь возможный трафик и перенаправить его на your_ip_address: 25565.

Нажмите Control + X, а затем Y, чтобы сохранить файл. Введите следующее, чтобы включить sslh:

sudo systemctl enable sslh sudo systemctl start sslh

Если systemctl недоступен в вашей системе, вам, возможно, придется использовать вместо этого служебную команду.

sslh теперь должен бегать. Убедитесь, что ваш домашний маршрутизатор выполняет переадресацию портов и отправляет на ваш компьютер трафик 25565. Вы можете назначить своему компьютеру статический IP-адрес, чтобы он не менялся.

Чтобы узнать, могут ли люди получить доступ к вашему серверу, введите IP-адрес прокси в онлайн-средство проверки статуса. Вы также можете ввести IP-адрес своего прокси в своем клиенте Minecraft и попробовать присоединиться. Если это не сработает, убедитесь, что порты открыты в группах безопасности вашего экземпляра.

Защитите свой домашний сервер Minecraft от DDOS-атак с помощью AWS


Напишите пару строк: