Подготовка сервера для установки нод
Телеграм канал о нодах и тестнетах: Kopeyka DAO
Статья содержит в себе основную информацию по подготовке сервера для установки нод.
Покупаем и готовим сервер
Покупка сервера
Мы рекомендуем хостинг для серверов play2go по причине отличного соотношения цена/качество. Тариф выбираем либо согласно гайду, либо предварительно посчитав требования выбранных для установки нод.
Если нужен сервер с меньшими ресурсами - идём в раздел Promo:
При покупке сервера для нод обязательно следует учитывать тот факт, что ноды в некоторых случаях приходится держать годами. Выбирайте по стоимости с умом!
Подключение к серверу по SSH
Для того, чтобы работать с сервером, нужно к нему подключиться. Делается это при помощи SSH - Secure Shell - технологии, позволяющей дистанционно управлять операционной системой.
Скачиваем SSH-клиент. Лично я предпочитаю Tabby - удобный софт с кучей возможностей. Подходит Windows, macOS и Linux.
Важный момент. Заполняем хост (IP-адрес) и имя пользователя, которое получили при покупке сервера на хостинге. Порт остаётся по умолчанию. Нажимаем на кнопку “Установить пароль” и пишем туда тот, что получили при покупке сервера на хостинге.
Далее сохраняем профиль. При подключении к серверу появится pop-up с предложением сохранить отпечаток хоста. Соглашаемся.
Настройка сервера
В первую очередь сервер настраивается из соображений безопасности.
Генерация SSH-ключей
Для начала сгенерируем SSH-ключи для нашего устройства.
В командной строке на устройстве выполняем следующую команду:
ssh-keygen -t ed25519
На все запросы нажимаем Enter, ничего не указывая. На устройстве в указанной директории создаётся пара ключей - публичный и приватный.
Пара SSH-ключей - способ аутентификации без использования пароля. SSH-ключи исключают практически все недостатки паролей - их невозможно подобрать, их нельзя подсмотреть при обычных условиях.
Приватный ключ бережём как зеницу ока! Приватный ключ хранится у вас и используется при подключении к серверу, публичный хранится на серверах, к которым нужно иметь доступ.
Пара ключей генерируется один раз и используется для всех ваших серверов.
Установка зависимостей
Переходим обратно в Tabby на вкладку с сервером. Обновляем системные пакеты:
sudo apt-get update && sudo apt-get upgrade -y
Устанавливаем минимальный набор зависимостей на наш сервер:
sudo apt-get install -y sudo vim tmux htop git curl wget unzip zip gcc build-essential make ncdu jq
Создание пользователя
Создаём нового пользователя с правами суперпользователя. Подключаться к серверу мы будем под ним по SSH-ключу, а у остальных пользователей заберём доступ и запретим подключение к серверу по паролю.
useradd имя_пользователя -d /home/имя_пользователя -m -G users -s /bin/bash
passwd имя_пользователя
Выдаём права суперпользователя новому пользователю:
usermod -a -G sudo имя_пользователя
Имя пользователя настоятельно рекомендуется писать на латинице, без использования спецсимволов и в нижнем регистре.
Аутентификация SSH-ключей
Записываем сгенерированный в пункте 1 публичный SSH-ключ в файл с авторизованными ключами.
Следуйте гайду строго! Если на этом этапе что-то сделать неправильно, вы можете навсегда потерять доступ к серверу.
Файла по умолчанию не существует. Создаём его мы в домашней директории, то есть в директории нашего пользователя в директории .ssh (~/.ssh). Файл называем authorized_keys.
sudo vim ~/.ssh/authorized_keys
Вход в режим редактирования в vim осуществляется нажатием клавиши a латинской. Выход - нажатием esc.
Открываем в текстовом редакторе на устройстве файл с публичным ключом id_ed25519.pub и копируем содержимое. Вставляем в файл authorized_keys.
Сохраняем файл и выходим из vim следующим образом:
Нажимаем esc, пишем :wq и нажимаем Enter
Настройка конфига SSH
Далее настраиваем конфиг SSH. Поменяем порт сервера, выдадим нашему пользователю доступ, запретим логин для рутированных пользователей и подключение к серверу по паролю.
sudo vim /etc/ssh/sshd_config
И снова будьте осторожны. Здесь нельзя ошибаться, иначе можно потерять доступ к серверу.
Нужно найти и поменять следующие строки. Если строк нет, нужно их дописать.
Port 52225 PermitRootLogin no AllowUsers имя_пользователя PasswordAuthentication no
Меняя порт, можно указать любой на ваше усмотрение, который далёк от часто используемых и ни с чем не пересекается.
Сохраняем файл и выходим из vim, перезапускаем процесс sshd.
sudo systemctl restart sshd
Осталось переподключиться к серверу по SSH-ключу.
Выбираем метод аутентификации по ключу.
Не забудьте поменять порт на новый, который указывали в конфиге.
Добавляем наш приватный ключ с устройства. Файл с приватным ключом называется id_ed25519
Подключаемся к серверу. Снова появится pop-up с предложением сохранить отпечаток хоста - соглашаемся.
Заключение
Теперь на сервер установлены основные программы, зависимости и настроен SSH - в общем, он готов для установки на него нод. SSH настраивается для того, чтобы к серверу не подключились злоумышленники и нежелательные лица, если получат доступ к паролю.
0x4C3EB159d7155f5f4B1d70E42BCD690a91a5cf4B