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

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

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

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

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

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

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

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

  Какое последнее обновление Minecraft?

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

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

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

Создать и подключиться к новому VPS

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

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

  Как засеять миры в Minecraft Bedrock Edition в Windows 10

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

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

Тип

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

Нажмите

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

Выбрать

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

  Нажмите

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

Найдите публичный IP-адрес IPv4 вашего экземпляра.

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

Щелкните значок

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

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

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

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

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

cd ~/Documents/

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

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

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

ssh -i keyfile.pem [email protected]

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

  Как найти исходную ценность для мира Minecraft в Windows 10

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

Настроить 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 и попробовать присоединиться. Если это не сработает, убедитесь, что порты открыты в группах безопасности вашего экземпляра.