Первые шаги после создания VPS: настройка, защита, мониторинг

VPS можно создать в один клик в панели управления. Доступ к VPS возможен по паролю или ключу, брандмауэр позволяет защитить сервер от нежелательного трафика, а нагрузку и все процессы удобно отслеживать в отдельном разделе “Статистика нагрузки аккаунта”.

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

До создания

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

В нашем маркетплейсе приложений мы подготовили ряд образов с часто используемым ПО, что позволяет снизить количество необходимых действий после создания. Среди самых популярных готовых решений в нашем маркетплейсе – Hestia CP, ispmanager, Docker, n8n и др.

Если это ваш первый опыт управления VPS-сервером, стоит обратить внимание на готовые решения с предустановленной панелью управления – например, Ispmanager, FASTPANEL или HestiaCP. Они предоставляют удобный графический интерфейс для работы с различными компонентами сервера и упрощают разворачивание сайта. Также на готовые решения с панелями управления мы можем бесплатно перенести ваши сайты с виртуального хостинга.

Дополнительно стоит упомянуть и Portainer – графический интерфейс для работы с контейнерами, подробнее о работе с ним вы можете прочитать в нашей статье.

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

Приложения для VPS

Затем заполните соответствующие поля и завершите создание сервера.

Первые шаги при работе с чистой ОС

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

В рамках данной статьи мы будем приводить различные консольные команды – для их выполнения потребуется подключиться к серверу по SSH. 

Для этого потребуется установленный клиент openssh. В Windows 11, MacOS и ряде дистрибутивов Linux он предустановлен. Если по какой-то причине он отсутствует в системе, для установки можно выполнить команду:

В Windows 11:

winget install Microsoft.OpenSSH.Beta

В Ubuntu/Debian:

sudo apt install openssh-client

В Arch Linux и его производных:

sudo pacman -S openssh

В Fedora:

sudo dnf install openssh

Для подключения к серверу воспользуйтесь командой:

ssh root@ip_сервер

Для авторизации используйте пароль, отправленный на контактную почту аккаунта при создании сервера.

Настройка авторизации по ключу

Доступ к серверу по паролю хоть и удобен с точки зрения подключения с нескольких устройств, однако более подвержен брутфорс-атакам по сравнению с использованием авторизации по ключу.

Сперва потребуется сгенерировать пару ключей на машинах, с которых будет осуществляться доступ к серверу. Для генерации ключей откройте приложение терминала на вашем устройстве, после чего введите команду:

ssh-keygen -t ed25519 -a 100

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

Добавить ключ на сервер можно прямо в процессе установки. Если вы раньше не добавляли ваш ключ для других серверов, нажмите “Добавить новый SSH-ключ” и вставьте содержимое файла ~/.ssh/id_ed25519.pub в поле “Публичная часть вашего ключа”:

Добавление SSH ключа

Если ключ уже добавлен, выберите его в списке предложенных перед созданием сервера.

А если сервер уже создан, скопируйте публичную часть ключа на него. Сделать это можно как с помощью файлового менеджера, так и с помощью команды scp, передав путь до файла ключа и адрес сервера:

scp ~/.ssh/id_ed25519.pub root@ip_сервера:~/

Затем подключитесь к серверу и добавьте ключ в доверенные, выполнив команду:

cat id_ed25519.pub >> ~/.ssh/authorized_keys

Далее попробуйте подключиться к серверу повторно, подключение должно пройти без запроса пароля. В случае успеха можно перейти к следующему этапу – отключению авторизации по паролю.

Отключение авторизации по паролю в SSH

Безусловно, существуют способы защиты от перебора пароля, например, fail2ban или CrowdSec. Однако всё равно случаются ситуации, когда к серверу получают доступ таким способом. При настроенной авторизации по ключу можно исключить менее безопасный способ входа, для этого создайте файл /etc/ssh/sshd_config.d/01_nopasswd.conf со следующим содержимым:

PasswordAuthentication no

И перезагрузите службу SSH:

systemctl restart sshd

После перезагрузки демона sshd авторизация по паролю должна быть отключена, проверить это можно следующей командой:

sshd -T | grep -i passwordauth

В случае успеха вывод должен быть таким:

[root@hxjfeucezr ~]# sshd -T | grep -i passwordauth
passwordauthentication no

Перед отключением от сервера проверьте во втором окне терминала, что авторизация по ключу всё еще успешно работает.

Включение брандмауэра

Настройка брандмауэра позволяет защитить сервер от нежелательного трафика, блокировать и разрешать запросы на основе заданных правил. Существует большое количество решений для ОС Linux, однако мы остановимся на двух вариантах – ufw и firewalld.

UFW

Данное решение зачастую выбирают при использовании Ubuntu, более того – в современных версиях дистрибутива ufw предустановлен, однако по умолчанию выключен.

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

ufw allow ssh

Если вы планируете размещать сайты на VPS, также потребуется открыть порты 80 и 443:

ufw allow 80
ufw allow 443

После чего включить сервис:

ufw enable

На данном этапе на сервере будут закрыты все порты, кроме 22 и, опционально, 80/443 – если ваше приложение требует дополнительные открытые порты, подробнее прочитать о работе с ufw вы можете в нашей статье.

Firewalld

Firewalld зачастую используют в дистрибутивах семейства RHEL – AlmaLinux, RockyLinux, CentOS и Fedora. Он позволяет разбивать сеть на зоны и задавать правила на их основе. 

Установить firewalld в дистрибутивах на основе RHEL можно командой:

sudo dnf install firewalld

При желании его можно использовать и в дистрибутивах на основе Debian – с помощью команды:

sudo apt install firewalld

По умолчанию разрешен доступ к сервисам ssh, cockpit и dhcpv6-client, для начала работы firewalld включите его сервис командой:

sudo systemctl enable --now firewalld

Если вам необходимо разрешить доступ к портам 80/443 для размещения сайтов на VPS, добавьте соответствующие правила командами:

firewall-cmd --zone=public --add-service https
firewall-cmd --zone=public --add-service http

После чего сохраните конфигурацию командой:

firewall-cmd --runtime-to-permanent

Подробнее о работе с firewalld вы можете прочитать в нашей статье.

Мониторинг сервера

Каждому, кто администрирует сервер, полезно выполнять мониторинг – чтобы быть в курсе состояния сервера и иметь возможность оперативно реагировать в случае возникновения проблем, а также заранее планировать расширение ресурсов при повышении нагрузки.

Существует множество решений для продвинутого и детального мониторинга VPS, однако они также потребуют дополнительной настройки. Поэтому пока начнем с более простого варианта, доступного сразу после создания сервера. Речь о мониторинге в панели управления.

Создав сервер и выбрав его в списке доступных, вам будут показаны графики загрузки процессора и потребления оперативной памяти.

статистика VPS

Для получения более подробной информации о сервере нажмите на любой из графиков – откроется страница статистики сервера, где вы сможете увидеть:

  • Нагрузку на процессор.
  • Load Average – среднюю нагрузку за определенный промежуток времени (обычно 1, 5 и 15 минут), таким образом, можно понять характер нагрузки, был ли это моментный всплеск или увеличенная нагрузка имеет постоянный характер.
  • Потребление оперативной памяти.
  • Занятое дисковое пространство.
  • Трафик (внешний/внутренний, входящий/исходящий).
  • Нагрузку на I/O.

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

Однако мониторинг не ограничивается красивыми графиками – помимо просмотра статистики сервера, вы также можете настроить отправку уведомлений при достижении определенных критериев. Для этого нажмите на кнопку “Мониторинг” в карточке вашего сервера в панели управления, после чего создайте набор правил, добавив ваш сервер в него:

Мониторинг сервера

При достижении условий, указанных в правиле, вам будет отправлено уведомление на контактный email, а при необходимости вы также можете настроить отправку уведомлений в Telegram в настройках вашего аккаунта – так вы сможете быстро отреагировать на аномалии в работе сервера.

Полезные ссылки и ресурсы

После выполнения описанных шагов по настройке ваше приключение администратора только начинается – чтобы помочь в этом нелегком деле, мы собрали список ресурсов, которые могут помочь:

  1. База знаний нашего облака – в ней вы сможете найти большое количество статей, посвященных работе с нашими облачными сервисами, установке различного ПО и настройке сервера.
  2. Утилита TLDR: иногда не совсем понятно, как работать с консольными утилитами, а времени на изучение мануала во время администрирования сервера не хватает. Тут может помочь данная утилита, показывающая наиболее частые примеры использования команд с описанием:
tldr ip

  Показывать и управлять маршрутизацией, устройствами, политиками маршрутизации и туннелями.
  Некоторые подкоманды, такие как `address`, имеют собственную документацию.
  Больше информации: <https://manned.org/ip.8>.

  Показать детальную информацию об интерфейсах:

      ip [a|address]

  Показать краткую информацию о сетевом уровне для интерфейсов:

      ip [-br|-brief] [a|address]

  Показать краткую информацию о канальном уровне для интерфейсов:

      ip [-br|-brief] [l|link]

  Показать таблицу маршрутизации:

      ip [r|route]

  Показать соседей (ARP-таблицу):

      ip [n|neighbour]

  Включить/выключить интерфейс:

      sudo ip [l|link] [s|set] интерфейс up|down

  Добавить/Удалить IP-адрес для интерфейса:

      sudo ip [a|address] add|delete ip_адрес/маска dev интерфейс

  Добавить маршрут по умолчанию:

      sudo ip [r|route] [a|add] default via ip_адрес dev интерфейс
  1. Документация дистрибутивов – в ней можно найти рекомендации по настройке используемого дистрибутива, в том числе пошаговые руководства:

Заключение

В России увеличивается спрос на виртуальные мощности, а рынок облачной инфраструктуры переживает фазу активного роста. По прогнозам iKS Consulting, к 2028 году объем российского рынка облачных инфраструктурных сервисов достигнет 464 млрд руб.

Если раньше российские компании готовы были закупать самостоятельно серверы или даже строить свои центры обработки данных, занимать под это в банках или использовать собственные средства, то теперь очень многие ищут решения на аутсорсе. 
Дмитрий Денщиков, директор направления облачных сервисов IT-интегратора “Телеком биржа”

Сегодня виртуальный сервер незаменим для DevOps-инженеров, разработчиков, системных администраторов, дата-саентистов и даже трейдеров.

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

Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью или наши продукты с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.

0
166