Конфигурация сервера#
Настройка и запуск мастерноды подразумевают наличие базового понимания Linux и технологии блокчейн, а также способности внимательно следовать инструкциям. Этот процесс также требует регулярного обслуживания и тщательной защиты, особенно если вы не храните DASH на аппаратном кошельке. Во время настройки необходимо будет принять некоторые решения и дополнительные меры для повышения безопасности.
Коммерческие услуги хостинга мастернода предоставляются в том случае, если Вы предпочитаете передать повседневную эксплуатацию своего мастернода профессиональному оператору. При использовании этих услуг хостинга Вы сохраняете полный контроль над обеспечением мастерноды и выплачиваете оператору оговоренный процент от Вашего вознаграждения.
Настройка VPS#
VPS, более известный как облачный сервер, представляет собой полнофункциональную установку операционной системы (обычно Linux), работающей на виртуальной машине. Виртуальная машина позволяет провайдеру VPS запускать несколько систем на одном физическом сервере, что делает его более эффективным и гораздо более дешевым, чем использование одной операционной системы, работающей на «голом металле» каждого сервера.
VPS идеально подходит для размещения мастернод Dash, поскольку обычно обеспечивает гарантированное время безотказной работы, резервирование в случае аппаратного сбоя и статический IP-адрес, необходимый для того, чтобы вы оставались в очереди на оплату мастернода. Хотя запуск мастернода из дома на настольном компьютере технически возможен, он, скорее всего, не будет работать надежно, поскольку большинство интернет-провайдеров выделяют домашним пользователям динамические IP-адреса.
Внимание
Отключение IPv6 настоятельно рекомендуется для предотвращения проблем со связью, которые наблюдались при работе нод на некоторых VPS-провайдерах. Мы рекомендуем отключить его через мастер настройки VPS-провайдера при первоначальном создании сервера.
Прежде чем приступить к работе, потратьте несколько минут на ознакомление с требованиями к оборудованию для мастернод и эвонод, которые могут помочь вам решить, какой VPS-провайдер лучше всего подходит для ваших нужд. Мы будем использовать хостинг Vultr в качестве примера VPS, хотя DigitalOcean, Amazon EC2, Google Cloud, Choopa и OVH также являются популярными вариантами. Сначала создайте учетную запись и добавьте средства. Затем перейдите в пункт меню Servers слева и нажмите +, чтобы добавить новый сервер. Выберите местоположение для нового сервера на следующем экране:
В качестве типа сервера выберите Ubuntu 24.04 x64. Мы используем этот LTS-выпуск Ubuntu вместо последней версии, поскольку LTS-выпуски поддерживаются обновлениями безопасности в течение 5 лет, а не 9 месяцев, как обычно.
Выберите размер сервера в соответствии с аппаратными требованиями для мастернод или эвонод:
Введите имя хоста и метку для вашего сервера. В данном примере в качестве имени хоста мы будем использовать dashmn1
.
Vultr теперь выполнит установку вашего сервера. Этот процесс может занять несколько минут.
Когда инсталляция будет завершена, кликните Manage и обратите внимание на IP-адрес, имя пользователя и пароль.
Настройте вашу операционную систему#
Начнём с подключения к вашему вновь подготовленному серверу. На Windows для начала скачаем приложение для соединения с сервером, которое называется PuTTY. Отправляйтесь на страницу загрузки PuTTY и выберите там соответствующий вашей системе MSI-установщик. Для Mac или Linux вы можете использовать команду ssh прямо из терминала - просто набрав ssh root@<server_ip>
после чего по запросу ввести пароль.
Выполните двойной щелчок по скачанному файлу и установите PuTTY, затем запустите приложение из меню Пуск. Введите IP-адрес сервера в поле Host Name и кликните Open. Вы увидите свидетельство, предупреждающее о том, что к этому серверу вы подсоединяетесь впервые. Будет вполне безопасно, если вы кликните Yes, этим вы доверите соединение с этим сервером в будущем.
Теперь вы подсоединены к серверу и должны увидеть окно терминала. Начните с авторизации на сервере с правами администратора, введите логин и пароль, предложенные вашим хостинг-провайдером.
Настройка пользователей#
Вам необходимо немедленно сменить свой root-пароль и в целях безопасности сохранить его в надёжном месте. Можно скопировать и вставить любую из следующих команд, выбрав её в браузере и нажав Ctrl + C, затем перейти в окно PuTTY и кликнуть правой кнопкой мыши в этом окне. Текст будет вставлен на текущем месте расположения курсора:
passwd root
Введите и подтвердите новый пароль (предпочтительно, чтобы он был длинным и сгенерированным случайным образом). Далее произойдёт создание нового пользователя с использованием следующей команды, заменяющей <username>
выбранное вами имя пользователя:
adduser <username>
Вам будет предложено задать пароль. Введите и подтвердите новый пароль (он должен отличаться от вашего root-пароля) и сохраните его в безопасном месте. Также вы можете ввести информацию о пользователе, но эти поля можно не заполнять. После создания пользователя, мы добавим их в sudo-группу, чтобы они могли выполнять команды в качестве root-пользователей:
usermod -aG sudo <username>
Обновление системы#
Теперь, пока мы все ещё с правами администратора, обновим систему с помощью пакета репозитория Ubuntu:
apt update
apt upgrade
Система выдаст список пакетов, которые можно обновить. Нажмите Y и Enter для установки пакетов.
Отключение IPv6#
Мы рекомендуем отключить IPv6, чтобы избежать возможных проблем со связью. Если вы не можете сделать это через настройки конфигурации сервера вашего VPS-провайдера, воспользуйтесь следующими шагами, чтобы отключить его через операционную систему.
Проверьте, включен ли IPv6:
ip a | grep inet6
Если получено несколько записей inet6, откройте sysctrl.conf:
sudo nano /etc/sysctl.conf
Добавьте следующие строки в конец файла, затем нажмите Ctrl + X, чтобы закрыть редактор, затем Y и Enter, чтобы сохранить файл.:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Загрузите изменения:
sudo sysctl -p
Наконец, проверьте, был ли успешно отключен IPv6. При выполнении команды на этот раз не должно появиться никаких записей:
ip a | grep inet6
Конфигурация firewall#
Теперь мы установим брандмауэр (и некоторые другие пакеты, которые мы будем использовать в дальнейшем):
apt install ufw python3 virtualenv git unzip pv
(нажмите Y и Enter для подтверждения)
Выберите соответствующую конфигурацию брандмауэра, указанную ниже, в зависимости от того, какая сеть, тип ноды вам необходим:
ufw limit ssh/tcp
ufw allow 9999/tcp
ufw logging on
ufw enable
ufw limit ssh/tcp
ufw allow 443/tcp
ufw allow 9999/tcp
ufw allow 26656/tcp
# Uncomment the following line if using ZeroSSL
# ufw allow 80/tcp
ufw logging on
ufw enable
ufw limit ssh/tcp
ufw allow 1443/tcp
ufw allow 19999/tcp
ufw allow 36656/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>`__.