Конфигурация сервера#

Настройка и запуск мастерноды подразумевают наличие базового понимания Linux и технологии блокчейн, а также способности внимательно следовать инструкциям. Этот процесс также требует регулярного обслуживания и тщательной защиты, особенно если вы не храните DASH на аппаратном кошельке. Во время настройки необходимо будет принять некоторые решения и дополнительные меры для повышения безопасности.

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

Настройка VPS#

VPS, более известный как облачный сервер, представляет собой полнофункциональную установку операционной системы (обычно Linux), работающей на виртуальной машине. Виртуальная машина позволяет провайдеру VPS запускать несколько систем на одном физическом сервере, что делает его более эффективным и гораздо более дешевым, чем использование одной операционной системы, работающей на «голом металле» каждого сервера.

VPS идеально подходит для размещения мастернод Dash, поскольку обычно обеспечивает гарантированное время безотказной работы, резервирование в случае аппаратного сбоя и статический IP-адрес, необходимый для того, чтобы вы оставались в очереди на оплату мастернода. Хотя запуск мастернода из дома на настольном компьютере технически возможен, он, скорее всего, не будет работать надежно, поскольку большинство интернет-провайдеров выделяют домашним пользователям динамические IP-адреса.

Прежде чем приступить к работе, уделите несколько минут просмотру мастерноды hardware requirements 1, который может помочь вам определиться с выбором VPS-провайдера, наиболее соответствующего вашим потребностям. В качестве примера VPS мы будем использовать хостинг Vultr, хотя популярностью пользуются также DigitalOcean, Amazon EC2, Google Cloud, Choopa и OVH. Сначала создайте учетную запись и добавьте кредит. Затем перейдите в пункт меню Серверы слева и нажмите +, чтобы добавить новый сервер. Выберите местоположение нового сервера на следующем экране:

../../../_images/setup-server-location.png

Экран выбора расположения Vultr-сервера#

В качестве типа сервера выберите Ubuntu 20.04 x64. Мы используем этот LTS-выпуск Ubuntu вместо последней версии, поскольку LTS-выпуски поддерживаются обновлениями безопасности в течение 5 лет, а не 9 месяцев, как обычно.

../../../_images/setup-server-type.png

Экран выбора типа Vultr-сервера#

Выберите размер сервера, в котором имеется как минимум 2ГБ памяти.

../../../_images/setup-server-size.png

Экран выбора размера Vultr-сервера#

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

../../../_images/setup-server-hostname.png

Экран выбора имени хоста и метки для Vultr-сервера#

Vultr теперь выполнит установку вашего сервера. Этот процесс может занять несколько минут.

../../../_images/setup-server-installing.png

Экран инсталляции Vultr-сервера#

Когда инсталляция будет завершена, кликните Manage и обратите внимание на IP-адрес, имя пользователя и пароль.

../../../_images/setup-server-manage.png

Экран управления Vultr-сервера#

Настройте вашу операционную систему#

Начнём с подключения к вашему вновь подготовленному серверу. На Windows для начала скачаем приложение для соединения с сервером, которое называется PuTTY. Отправляйтесь на страницу загрузки PuTTY и выберите там соответствующий вашей системе MSI-установщик. Для Mac или Linux вы можете использовать команду ssh прямо из терминала - просто набрав ssh root@<server_ip> после чего по запросу ввести пароль.

../../../_images/setup-putty-download.png

Страница загрузки PuTTY#

Выполните двойной щелчок по скачанному файлу и установите PuTTY, затем запустите приложение из меню Пуск. Введите IP-адрес сервера в поле Host Name и кликните Open. Вы увидите свидетельство, предупреждающее о том, что к этому серверу вы подсоединяетесь впервые. Будет вполне безопасно, если вы кликните Yes, этим вы доверите соединение с этим сервером в будущем.

../../../_images/setup-putty-alert.png

Оповещение безопасности PuTTY при подсоединении к новому серверу#

Теперь вы подсоединены к серверу и должны увидеть окно терминала. Начните с авторизации на сервере с правами администратора, введите логин и пароль, предложенные вашим хостинг-провайдером.

../../../_images/setup-putty-connect.png

Проверка пароля при первом соединении с VPS#

Настройка пользователей#

Вам необходимо немедленно сменить свой root-пароль и в целях безопасности сохранить его в надёжном месте. Можно скопировать и вставить любую из следующих команд, выбрав её в браузере и нажав Ctrl + C, затем перейти в окно PuTTY и кликнуть правой кнопкой мыши в этом окне. Текст будет вставлен на текущем месте расположения курсора:

passwd root

Введите и подтвердите новый пароль (предпочтительно, чтобы он был длинным и сгенерированным случайным образом). Далее произойдёт создание нового пользователя с использованием следующей команды, заменяющей <username> выбранное вами имя пользователя:

adduser <username>

Вам будет предложено задать пароль. Введите и подтвердите новый пароль (он должен отличаться от вашего root-пароля) и сохраните его в безопасном месте. Также вы можете ввести информацию о пользователе, но эти поля можно не заполнять. После создания пользователя, мы добавим их в sudo-группу, чтобы они могли выполнять команды в качестве root-пользователей:

usermod -aG sudo <username>

Обновление системы#

Теперь, пока мы все ещё с правами администратора, обновим систему с помощью пакета репозитория Ubuntu:

apt update
apt upgrade

Система выдаст список пакетов, которые можно обновить. Нажмите Y и Enter для установки пакетов.

Конфигурация firewall#

Теперь мы установим брандмауэр (и некоторые другие пакеты, которые мы будем использовать в дальнейшем):

apt install ufw python virtualenv git unzip pv

(нажмите Y и Enter для подтверждения)

Выберите соответствующую конфигурацию брандмауэра, указанную ниже, в зависимости от того, какую сеть будет поддерживать ваш мастерноду:

Конфигурация для основной сети#
ufw allow ssh/tcp
ufw limit ssh/tcp
ufw allow 9999/tcp
ufw logging on
ufw enable
Конфигурация для тестовой сети#
ufw allow ssh/tcp
ufw limit ssh/tcp
ufw allow 19999/tcp
ufw allow 26656/tcp
ufw allow 3000/tcp
ufw logging on
ufw enable

(нажмите Y и Enter для подтверждения)

Включить подкачку#

Далее мы добавим память подкачки, включим ее и установим, что она будет включаться при последующих перезагрузках:

fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
nano /etc/fstab

В конце файла добавьте следующую строку (чтобы разделить каждое слово/цифру, нажмите tab), затем нажмите Ctrl + X, чтобы закрыть редактор и потом Y и Enter для сохранения файла.

/swapfile none swap sw 0 0

Ограничить удаленный доступ#

Наконец, чтобы предотвратить атаки взлома паролей методом «грубой силы», установим fail2ban и отключим root-авторизацию через SSH. Эти шаги не являются обязательными, но выполнить их настоятельно рекомендуется. Начнём с установки fail2ban:

apt install fail2ban

Создайте новый файл конфигурации:

nano /etc/fail2ban/jail.local

И вставьте в него следующую конфигурацию:

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Затем нажмите Ctrl + X, чтобы закрыть редактор, а затем Y и Enter, чтобы сохранить файл. Перезапуститесь и активируйте сервис fail2ban:

systemctl restart fail2ban
systemctl enable fail2ban

Далее откройте файл конфигурации SSH, чтобы отключить root-авторизацию через SSH:

nano /etc/ssh/sshd_config

Найдите строку с надписью PermitRootLogin yes и измените её на PermitRootLogin no. Прямо под ней добавьте строку с надписью AllowUsers <username>, заменив <username> именем пользователя, которое вы задали выше. Затем нажмите Ctrl + X, чтобы закрыть редактор, далее Y и Enter, чтобы сохранить файл.

Опционально установите или обновите AppArmor (попробуйте выполнить этот шаг, если у вас возникли проблемы, связанные с AppArmor):

sudo apt install apparmor

Перезагрузка#

Теперь перезагрузите сервер, чтобы применить все необходимые Core обновления:

reboot now

Ваш SSH-клиент (например, PuTTY) отключится при перезагрузке сервера.

Примечание

Хотя данная настройка включает в себя основные шаги по защите сервера от атак, можно сделать гораздо больше. В частности, аутентификация с помощью общего ключа вместо комбинации имя пользователя/пароль. Рекомендуется включить автоматическое обновление системы безопасности <https://help.ubuntu.com/community/AutomaticSecurityUpdates>`_. Другие советы можно найти здесь <https://www.cyberciti.biz/tips/linux-security.html>`__.