Сегодня веб-мастера часто выбирают виртуальные частные/выделенные серверы (Virtual Private/Dedicated Servers) для размещения своих проектов. Это оптимальный вариант хостинга, когда мощностей shared-сервера уже недостаточно, а на аренду физической машины нет средств или в ней нет необходимости. Управлять VPS/VDS сложнее, чем обычным хостингом, потому что настраивать его приходится самостоятельно. Если вы не обладаете навыками системного администрирования и у вас нет возможности нанять человека с релевантными опытом, настройка VPS с нуля может занять много времени. Чтобы ускорить процесс, воспользуйтесь нашей пошаговой инструкцией. В статье описаны этапы настройки VDS на ОС Linux.

Подключение к VDS

Хостинг предполагает использование удаленного сервера, поэтому для начала нам необходимо подключиться к нему со своего ПК. Связь с VPS, работающим на базе Linux-дистрибутивов, осуществляется посредством протокола SSH. Если на локальной машине, с которой ведется подключение, используется Windows, нужно дополнительно установить бесплатное приложение PuTTY (или аналог).

Запустите утилиту на компьютере. Откроется графический интерфейс. Найдите поле «Имя хоста» и введите туда IP-адрес VDS. Хостинг-провайдер должен был прислать его электронным письмом сразу после активации сервера. Теперь кликните на кнопку «Соединиться». В открывшейся консоли вас попросят авторизоваться: рядом с «login as:» напишите root или тот логин, который указан в email-письме от хостера. Нажмите Enter. На следующей строке впишите или вставьте скопированный пароль из того же имейла. Готово! Можно приступать к настройке.

Если домашняя операционная система тоже относится к Linux-семейству или это macOS, SSH-соединение с виртуальным сервером, а также дальнейшее управление им будет осуществляться напрямую через командную строку. Настраивать VPS мы будем на примере серверных дистрибутивов из ветки Debian (в том числе Ubuntu).

Инструкция по настройке VPS/VDS сервера с нуля.
Изображение от Freepik.

Установка обновлений

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

В Debian и ее подобиях запустить апдейт можно с помощью встроенного менеджера APT. Для этого введите в терминал следующие строки:

apt update 
apt list –upgradable
apt upgrade

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

Добавление нового пользователя

Чтобы настраивать VPS/VDS, требуются права суперпользователя (root-доступ). Они по умолчанию закреплены за учетной записью, которую создал для вас провайдер — и так же по умолчанию она имеет имя root. Это стандарт для Linux-систем, о котором знают все специалисты. По этой причине действовать от имени root-пользователя может быть опасно: если кто-то вас взломает, доступ такого уровня позволит ему делать внутри сервера что угодно. Избежать подобного сценария можно, если создать в системе еще одну «учетку» с нуля для повседневного пользования и передать ей необходимые права.

Сделать это очень просто. Достаточно ввести в консоли команду:

adduser имя

Вместо «имени» подставьте свой вариант — это будет логином для нового пользователя. Далее машина попросит задать пароль и предложит заполнить необязательные поля. Настройка несложная, так что вы справитесь.

Передача привилегий root

Настраивать сервер мы будем от имени созданного юзера, но пока что у него нет на это разрешения. Он может только подключиться к VPS по SSH-протоколу — управление и настройка ему недоступны. Поэтому нужно поделиться с ним возможностями суперадминистратора.

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

usermod -aG sudo имя

Так же, как и в предыдущем пункте, замените «имя» на выбранный ранее логин. Готово! Теперь мы сможем полноценно управлять VDS через нового пользователя. Но сначала проверим, точно ли все работает. Отключите SSH-соединение (можно просто закрыть терминал) и переподключитесь к серверу под новым именем.

Изменение настроек SSH

Поскольку у нас теперь есть возможность удаленно запускать команды без участия root-пользователя, можно смело отключать ему доступ по SSH. Для этого нам нужно внести изменения в конфигурационный файл, ответственный за настройку этого соединения. В составе Debian-дистрибутивов в качестве утилиты для редактирования используется nano. Чтобы открыть файл, введите в терминал:

sudo nano /etc/ssh/sshd_config

После этого найдите строку:

PermitRootLogin yes

Раскомментируйте ее и измените значение «yes» на «no». Эта команда запретит пользователю root подключаться к VPS по протоколу SSH.

В целях безопасности нам необходимо отредактировать еще один момент: номер порта. По умолчанию на всех серверах прослушивается порт 22. Вы можете поменять его на любой из свободных. Рекомендуем выбирать в диапазоне от 49152 до 65535, чтобы избежать конфликтов с другими службами. Для этого найдите строку Port 22, снимите перед ней комментарий и впишите выбранный номер.

Чтобы изменения вступили в силу, перезапустите SSH следующей командой:

sudo service ssh restart

Готово. За несколько шагов мы с нуля настроили базовую защиту VDS. Пора заняться программным окружением, которое позволит нам запустить сайт.

Настройка VPS сервера.
Изображение от Freepik.

Включение веб-сервера Nginx

Для запуска веб-ресурса на сервере с Debian-подобной системой потребуется установить один из стандартных стеков: LEMP (Linux, Nginx, MySQL, PHP) или LAMP (Apache вместо Nginx). Мы остановимся на первом варианте, т. к. веб-сервер энджин-икс более быстрый. Он будет обрабатывать запросы, поступающие на наш VPS с сайта, и обслуживать соединения.

Энджинкс является бесплатным ПО с открытым исходным кодом. Он по умолчанию имеется в репозиториях Дебиан-образов, поэтому его настройка здесь производится одной командой:

sudo apt install nginx

После установки веб-сервер запустится с нуля автоматически.

Установка и настройка MySQL

Следующий компонент LEMP, который мы настроим — система управления базами данных MySQL. Через нее вы будете совершать любое взаимодействие с БД: создание, удаление, редактирование, настройка, извлечение информации и пр. Эта СУБД тоже бесплатна, установить ее можно с помощью команды:

sudo apt install mysql-server

После установки на сервер MySQL необходимо проделать ряд манипуляций со встроенным скриптом безопасности. Для этого введите в терминал:

sudo mysql_secure_installation

Далее VDS запустит серию диалогов, в которых вам нужно будет отвечать Y (yes), N (no) или использовать клавиши, указанные в инструкции на экране (ноль, один, два). Сначала потребуется настроить (или нет) плагин валидации пароля, затем задать сам пароль для root-доступа к MySQL (не к самому серверу!) и подтвердить его. На все последующие вопросы мы рекомендуем давать утвердительный ответ — так вы удалите анонимных пользователей и тестовые базы, запретите удаленный вход для root и перезагрузите правила, чтобы изменения стали активны.

Создание базы данных

Если вы хотите разместить на VPS/VDS динамический веб-сайт, для его работы понадобится БД. Создать ее несложно. Прежде всего нужно войти в консоль MySQL:

mysql -u root -p

Вас попросят ввести пароль, заданный на предыдущем этапе. Чтобы добавить новую базу, используйте команду вида:

CREATE DATABASE название_базы

Как правило, для каждого проекта создается отдельная БД и отдельный пользователь, который будет ею управлять. Добавим нового юзера:

CREATE USER имя@localhost  IDENTIFIED BY 'пароль';

После этого передадим ему привилегии по управлению нашей базой:

GRANT ALL PRIVILEGES ON название_базы* TO имя@localhost  IDENTIFIED BY 'пароль';

Готово! Теперь на вашем сервере есть созданная с нуля база данных. Настройка MySQL завершена.

Подключение PHP

Последний этап настройки LEMP — это подключение интерпретатора языка PHP, на котором написано большинство современных CMS. Он будет обрабатывать код и генерировать динамический контент для веб-сервера. Чтобы PHP мог взаимодействовать и с Nginx, и с MySQL, установите на VPS/VDS два пакета: php-fpm и php-mysql. Команда выглядит так:

sudo apt install php-fpm php-mysql

Подтвердите загрузку, нажав Y и Enter. Сервер автоматически инсталлирует актуальные версии пакетов, поскольку мы обновили их в самом начале. Теперь настроим конфигурационный файл.

Изменение конфигурации

Первым делом нам нужно отредактировать файл php.ini, чтобы закрыть важную уязвимость. В Debian-системах его можно открыть командой:

/etc/php/8.1/fpm/php.ini

Где «8.1» — версия PHP, которая работает на вашем VPS/VDS. На момент написания статьи 8.1.1 является новейшей редакцией. После открытия файла конфигурации можно приступать к настройке. Найдите и раскомментируйте строку:

;cgi.fix_pathinfo=1

Замените единицу на ноль. В результате должно получиться:

;cgi.fix_pathinfo=0

Это позволит избежать несанкционированного доступа к сайту через несуществующие файлы .php.

Добавление каталога для файлов

Следующий этап нашей инструкции по настройке виртуального сервера с нуля заключается в создании корневой директории, которая будет использоваться для загрузки файлов веб-сайта. Чтобы добавить папку, введите в терминал команду следующего формата:

sudo mkdir /var/www/ваш_домен/public_html

Загружать файлы CMS необходимо в public_html. После этого останется только передать привилегии на управление нашему веб-серверу:

sudo chown -R www-data:www-data /var/www/html/*

Заключение

Настраивать VDS/VPS с нуля может быть непросто, если вы никогда ранее этим не занимались. В нашем руководстве описаны только начальные шаги по настройке, с которыми может справиться даже неопытный пользователь. Мы описывали все действия через терминал, но вообще для этого можно использовать панель управления. Если вам нужны более тонкие настройки или вы хотите запустить сервер не для сайта, лучше обратиться за помощью к специалистам.