Защита сервера BungeeCord от внешнего подключения (IPtables)
Описание:
Всем привет! Сразу предупрежу, в этой статье много букв, но оно того стоит, поверьте. А именно как на дедике юзать брандмауэр, ибо при установке BungeeCord'a на выделенный сервер — встаёт вопрос, как защитить серв от несанкционированного доступа на сервер. То есть нужно работать в первую очередь с портами, и закрывать к неиспользуемым портам доступ из вне.
Если вы используете ОС Linux для своего сервера (что всегда рекомендуется да и вообще принято в серверной среде), то уже пол дела можно сказать сделано. Нужно использовать в этом случае iptables.
Iptables — это небольшая системная утилита командной строки для ОС Linux позволяющая управлять фаерволом. В принципе настроить защиту межсетевого экрана очень легко, и Вы должны просто следовать инструкции ниже.
Вы просто заменяете значения $BUNGEE_IP на IP и переменную $SERVER_PORT на порт вашего сервера. Если Ваш Майнкрафт сервер находится на одной машине (сервере) вместе с BungeeCord то IP адрес сервера можете писать 127.0.0.1
ВАЖНО: У Iptables есть одна особенность, для использования утилиты Iptables требуются привилегии суперпользователя. То есть у Вас должен быть root права на сервере.
Начнём с самых азов. Подключаетесь к Вашему выделенному серверу любым доступным Вам способом.
Установка iptables:
Установить Iptables на сервер очень просто. Я добавляю вам несколько команд, выбирайте для себя команду, которая подходит к вашему дистрибутиву Linux.
Дистрибутив Debian и Ubuntu:
sudo apt-get install iptables
Дистрибутив RedHat/CentOS:
sudo yum install iptables
Брандмауэр с iptables:
Вот здесь уже следите внимательно за командами, здесь нужно менять IP адрес и порт
iptables -I INPUT ! -s $BUNGEE_IP -p tcp --dport $SERVER_PORT -j DROP
В качестве альтернативы, если у вас запущено несколько серверов Minecraft вместо написания правила для каждого сервера и его порта, вы можете использовать следующую команду, чтобы добавить диапазон портов, который будет заблокирован брандмауэром. Замените $START_PORT и $END_PORT на желаемый диапазон портов, не забывайте двоеточие между ними.
iptables -I INPUT ! -s $BUNGEE_IP -p tcp --dport $SERVER_PORT:$END_PORT -j DROP
Сохранение правил iptables:
Теперь необходимо сделать так, чтобы все правила для портов и IP адресов сохранились, и вступали всегда при перезагрузке сервера, то есть нужно всё сохранить. Для этого используем команды:
Для дистрибутива Debian и Ubuntu:
apt-get install iptables-persistent
dpkg-reconfigure iptables-persistent
Для дистрибутива CentOS 7 и RHEL:
iptables-save
Для дистрибутива RedHat и CentOS:
/etc/init.d/iptables save
Как сбросить настройки утилиты iptables?
Если вы накосячили или что то пошло не так, вы запутались или просто захотели подключиться к серверу, то можете в любой момент сбросить все настройки iptables. Для этого вводим команду:
iptables --flush
Если у вас вообще ничего не получается... То просто установите плагины для этих портов. Но спешу Вас предупредить — плагины никогда не будут лучше системного брандмауэра или даже наоборот.
Список плагинов, которые можно использовать в замен стандартного брандмауэра:
IPWhitelist
OnlyProxyJoin
Но ещё раз говорю — эти плагины легко обойти.