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

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

Commercial masternode hosting services are available if you prefer to delegate day-to-day operation of your masternode to a professional operator. When using these hosting services, you retain full control of the masternode collateral and pay an agreed percentage of your reward to the operator.

Настройка VPS#

A VPS, more commonly known as a cloud server, is fully functional installation of an operating system (usually Linux) operating within a virtual machine. The virtual machine allows the VPS provider to run multiple systems on one physical server, making it more efficient and much cheaper than having a single operating system running on the «bare metal» of each server.

A VPS is ideal for hosting a Dash masternode because they typically offer guaranteed uptime, redundancy in the case of hardware failure and a static IP address that is required to ensure you remain in the masternode payment queue. While running a masternode from home on a desktop computer is technically possible, it will most likely not work reliably because most ISPs allocate dynamic IP addresses to home users.

Before beginning, take a few minutes to review the masternode hardware requirements which may help you decide which VPS provider best suits your needs. We will use Vultr hosting as an example of a VPS, although DigitalOcean, Amazon EC2, Google Cloud, Choopa and OVH are also popular choices. First create an account and add credit. Then go to the Servers menu item on the left and click + to add a new server. Select a location for your new server on the following screen:

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

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

Select Ubuntu 20.04 x64 as the server type. We use this LTS release of Ubuntu instead of the latest version because LTS releases are supported with security updates for 5 years, instead of the usual 9 months.

../../../_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#

Set up users#

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

passwd root

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

adduser <username>

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

usermod -aG sudo <username>

Update the system#

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

apt update
apt upgrade

The system will show a list of upgradable packages. Press Y and Enter to install the packages.

Configure the firewall#

We will now install a firewall (and some other packages we will use later):

apt install ufw python virtualenv git unzip pv

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

Choose the appropriate firewall configuration below based on which network your masternode will support:

Mainnet configuration#
ufw allow ssh/tcp
ufw limit ssh/tcp
ufw allow 9999/tcp
ufw logging on
ufw enable
Testnet configuration#
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 для подтверждения)

Enable swap#

Next, we add will add swap memory, enable it, and set it to be enabled on subsequent reboots:

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

Restrict remote access#

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

apt install fail2ban

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

nano /etc/fail2ban/jail.local

And paste in the following configuration:

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

Then press Ctrl + X to close the editor, then Y and Enter save the file. Restart and enable the fail2ban service:

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, чтобы сохранить файл.

Optionally install or update AppArmor (try this step if you are having problems related to AppArmor):

sudo apt install apparmor

Reboot#

Now, reboot the server to apply any necessary kernel updates:

reboot now

Your SSH client (e.g. PuTTY) will disconnect when the server reboots.

Примечание

While this setup includes basic steps to protect your server against attacks, much more can be done. In particular, authenticating with a public key instead of a username/password combination. Enabling automatic security updates is advisable. More tips are available here.