Зачем закрывать порты
При использовании BungeeCord-сборок на вашем сервере запущено несколько игровых серверов: сам BungeeCord и серверы Spigot (обычно это Выживание, Мини-игры и так далее). Сама система работает так — игрок заходит на BungeeCord и его перекидывает на нужный сервер Spigot, в зависимости от настроек. И перед тем, как попасть на основной сервер, игрок проходит авторизацию (плагин для BungeeCord или плагин на отдельном Spigot сервере для авторизации).

Если все серверы Spigot доступны для подключения любому человеку извне, а не только локально через BungeeCord, то злоумышленник может зайти напрямую на сервер выживания или мини-игры, минуя BungeeCord и авторизацию. Вот почему важно закрыть порты Spigot серверов от внешнего доступа, чтобы попасть на них можно было только «сквозь» прокси-сервер BungeeCord

Как закрыть порты
Эта инструкция написана для операционных систем Debian и Ubuntu. На других операционных системах семейства Linux могут быть незначительные отличия.

Как открыть порты для сервера майнкрафт в 2022 году

Важно! Эта инструкция требует наличия SSH root доступа. Если у Вас есть только панель управления майнкрафт серверами, обратитесь в поддержку для закрытия портов.

Для закрытия портов будем использовать системную утилиту iptables.

Важно! Перед тем, как закрывать порты, рекомендую проверить правила iptables командой iptables -L. Возможно, вы уже устанавливали какие-то правила. Инструкция по удалению ненужных правил есть в конце.

Правила iptables считываются последовательно сверху вниз, поэтому
1. Разрешаем доступ для локальных подключений к любому порту.
Это важно, потому что BungeeCord должен иметь возможность подключаться к серверам Spigot.

iptables -A INPUT -s 127.0.0.1 -j ACCEPT iptables -A INPUT -s 0.0.0.0 -j ACCEPT

. ВМЕСТО 0.0.0.0 ПОДСТАВЬТЕ IP ВАШЕГО СЕРВЕРА (без порта). НАПРИМЕР: 216.58.215.46
ПРИМЕЧАНИЕ:
Если Вы используете несколько VDS или выделенных серверов для своего проекта, разрешите доступ для каждого сервера.
Например:

iptables -A INPUT -s 127.0.0.1 -j ACCEPT iptables -A INPUT -s 87.240.180.136 -j ACCEPT iptables -A INPUT -s 216.58.215.46 -j ACCEPT

2. Закрываем доступ к портам из всех мест, кроме разрешенных

iptables -A INPUT -p tcp —dport 25566 -j DROP iptables -A INPUT -p tcp —dport 25567 -j DROP iptables -A INPUT -p tcp —dport 25568 -j DROP

и так далее…
ПРИМЕЧАНИЕ:
Если Вы хотите закрыть сразу диапазон портов, вы можете указать его в виде 25566:25590
Например:

iptables -A INPUT -p tcp —dport 25566:25590 -j DROP

ПРИМЕЧАНИЕ:
Закрывать порты самого BungeeCord не нужно, он должен быть доступен из любого места (а не только из разрешенных), чтобы игроки могли подключиться

3. Сохраняем правила
Это очень важный пункт. Если не сохранить правила, они сбросятся при перезапуске VDS или выделенного сервера.

Читайте также:  Как пропитанный корпус в minecraft

Если Вы закрываете порты впервые и еще не пользовались утилитой iptables-persistent, ее нужно установить:

ЗАЩИТА сервера Майнкрафт. Основные методы защиты в Minecraft. Часть 1.


apt-get install iptables-persistent

При установке Вас спросят, сохранить-ли правила iptables. Оба раза отвечайте Yes.

Если утилита iptables-persistent уже установлена, то для сохранения правил воспользуйтесь командой:

dpkg-reconfigure iptables-persistent

И опять-таки оба раза отвечайте Yes.

Дополнительная информация
Удаление ненужных правил
Для начала необходимо получить список правил с номерами, для этого воспользуйтесь командой

iptables -L —line-numbers

Для удаления правила воспользуйтесь командой

iptables -D INPUT N

вместо N подставьте номер нужного правила.
Например:
iptables -D INPUT 9

Источник: hosting.kitchen

Minecraft Как установить BungeeCord | BotFilter на VDS

Если вы собрались создавать сервер или даже несколько серверов, то вам понадобится анти-бот.

В этой статье будет описан процесс установки на ваш vds/vps сервер (Debian 9). Предполагается, что вы уже знакомы с основами установки обычного сервера и у вас уже установлены основные программы (в том числе java), а также имеется доступ к sudo или root аккаунту, поэтому опустим этот момент.
Примечание: BotFilter — это прокси-сервер основанный на BungeeCord, который позволяет фильтровать входящих на ваш сервер ботов при помощи капчи и др. методов.

Для начала, скачайте сам BotFilter —

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

— и поместите его в удобное для вас место. Затем запустите его командой:

java -jar BungeeCord-BotFilter(ваша версия).jar

После запуска, в папке с BotFilter появится файл конфигурации прокси-сервера config.yml, а также конфиг бот-фильтра BotFilter/config.yml.
В config.yml на интересуют только несколько параметров:

ip_forward: true listeners: #тут нужно указать сервера с авторизацией из списка ниже (servers:) #если будет недоступен один, то игрока перекинет на другой priorities: — auth — auth2 #ip и порт, по которому будет доступен сервер #можете указать 0.0.0.0:25565 host: 0.0.0.0:25565 #список всех ваших серверов, включая сервер авторизации и лобби servers: auth: motd: ‘Сервер авторизации’ #адрес к которому будет выполнено подключение #если сервер находится на одной vds с прокси-сервером, то ставьте 127.0.0.1:порт #иначе ставьте ip сервера другой машины address: 127.0.0.1:25566 #если true, то на сервер смогут войти только игроки с правами bungeecord.server restricted: false Lobby: motd: ‘Лобби’ address: 123.456.7.8:25565 restricted: false

В конфиге BotFilter/config.yml можно изменить тип проверки (капча или падение или оба сразу), максимальный пинг, вход по разрешенным странам и многое другое. В самом файле достаточно комментариев, чтобы самостоятельно разобраться и настроить его.

Настройка брандмауэра и серверов.

Откройте файл настроек сервера Minecraft server.properties. В нем нас интересуют строчки:
server-ip:
server-port: 25565

Читайте также:  Как скрафтить тарелку в Майнкрафт

Если ваш сервер Minecraft стоит на той же машине, что и BotFilter, то server-ip укажите 127.0.0.1, иначе ip той машины. Порт укажите любой свободный.

Открываем spigot.yml. В нем нужно указать:
bungeecord: true

Далее нужно настроить доступ к IP и порту сервера. Настраивать будем машину, на которой стоит сервер с Minecraft’ом. Сначала разрешаем локальный трафик командой:
iptables -A INPUT -i lo -j ACCEPT

Затем разрешаем доступ для ip BotFilter (только если он находится на другой машине):
iptables -A INPUT -s 0.0.0.0 -j ACCEPT
вместо 0.0.0.0 укажите ip машины с BotFIlter.

Теперь нужно закрыть порт майнкрафт сервера, чтобы на него нельзя было зайти без прокси-сервера:
iptables -A INPUT -p tcp —dport 25565 -j DROP
вместо 25565 укажите порт из server.properties

На этом установка будет закончена и вы сможете подключиться к своему серверу.

Источник: g-f.su

Как закрыть порты в linux

Успешно применять этот инструмент могут не только продвинутые пользователи Linux, но и новички. В этом руководстве представлено описание базовых настроек конфигурации этого мощного файрвола.

Что такое iptables

Как сказано выше, iptables является утилитой, выполняющей функции межсетевого экрана. Настройка iptables производится в командной строке, с помощью правил iptables можно разрешать или блокировать прохождение трафика. Когда происходит попытка установления соединения с текущей машиной, iptables просматривает список правил в списке, чтобы понять, как нужно поступить в этом случае. Если правила нет, то выполняется действие по умолчанию.

Как правило, itpables предустанавливается на всех Linux-дистрибутивах. Чтобы обновить утилиту, или установить ее, если по каким-то причинам она отсутствует в базовой поставке, нужно воспользоваться следующей командой:

sudo apt-get install iptables

Существует три типа правил iptables — input, forward и output.

Input — Такие цепочки используются для контроля поведения входящих соединений. К примеру, если пользователь попробует подключиться к серверу по SSH, то iptables сравнит его IP-адрес со своим списком, чтобы разрешить или запретить доступ.

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

Output — Такие цепочки используются для исходящих соединений. К прмиеру, если пользователь пытается отправинг запрос ping к сайту 1cloud.ru, iptables изучит цепочку правил, чтобы понять, что нужно делать в случае ping и этого сайт, и только потом разрешит или запретит соединение.

Читайте также:  Мощные пушки в Майнкрафт

Важный момент

Даже в случае пинга внешних хостов, нужно не только отправить пакеты к ним, но и получить ответ. При работе с iptables важно помнить, что многие протоколы передачи данных требуют двусторонней коммуникации. Поэтому нужно настраивать правила соответствующим образом — случаи, когда новички забывают разрешить работу с сервером по SSH случаются очень часто.

Рассмотрим вариант закрытия всех портов на сервере minecraft

nano /usr/local/sbin/my-firewall.sh

Скопируйте и вставьте следующее содержимое (подсказка: чтобы вставить в терминал, используйте Ctrl + Shift + V):

#!/bin/bash set -ex # Очищаем все правила iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -t raw -F iptables -t raw -X # Default policy: блокировать все входящие соединения iptables -P FORWARD DROP iptables -P INPUT DROP iptables -P OUTPUT ACCEPT # Разрешить ранее установленные соединения iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT # Разрешить loopback соединения iptables -A INPUT -i lo -j ACCEPT # ICMP (ping) разрешаем пинг iptables -A INPUT -p icmp -j ACCEPT # SSH (port 22/TCP,UDP) разрешаем ssh соединения #iptables -A INPUT -p tcp —dport 22 -j ACCEPT #iptables -A INPUT -p udp —dport 22 -j DROP # MINECRAFT (port 25565/TCP) разрешаем подкючение к порту 25565 iptables -A INPUT -p tcp —dport 25565 -j ACCEPT # Block all UDP — блокируем все подключения по протоколу UDP iptables -A INPUT -p udp -s 0.0.0.0/0 -j DROP

Измените права доступа к файлу, чтобы только пользователь root мог запускать скрипт:

# chmod 744 /usr/local/sbin/my-firewall.sh

Вот и все! Теперь, когда вам нужно настроить iptables, просто запустите скрипт:

# /usr/local/sbin/my-firewall.sh

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

Запуск iptables при загрузке

Чтобы наш брандмауэр был идеальным, не хватает только одного: правила должны быть установлены во время загрузки вместе с операционной системой, сетью и службами.

В дистрибутивах systemd, таких как openSUSE и Linux Kamarada, лучший способ запустить сценарий, такой как my-firewall.sh, во время загрузки — это создать службу.

Например, создайте службу systemd с именем my-firewall.service в папке /etc/systemd/system/ с помощью вашего любимого текстового редактора:

# nano /etc/systemd/system/my-firewall.service

Скопируйте и вставьте следующее содержимое:

[Unit] After=network.target [Service] ExecStart=/usr/local/sbin/my-firewall.sh [Install] WantedBy=default.target

Настройте права доступа к файлам:

# chmod 664 /etc/systemd/system/my-firewall.service

Установите и включите службу, чтобы она запускалась при следующей загрузке:

# systemctl daemon-reload # systemctl enable my-firewall

Если вы хотите протестировать свою службу перед перезагрузкой, запустите:

# systemctl start my-firewall # iptables -L

Вот и все! В следующий раз, когда вы перезагрузите систему, systemd запустит службу, которая запускает скрипт, настраивающий iptables.

Источник: survivalhost.wiki