Удалённая настройка выделенного VPS сервера Linux

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

Некоторые не просто не знаю, что, как и в какой последовательности, но и как вообще к удалённому серверу подключиться! Данная статья даст простые и исчерпывающие ответы, включая конкретный порядок действий.

Перед прочтением настоятельно рекомендую ознакомиться со-следующими материалами:

Исходные данные – что имеем вначале: зарегистрированный аккаунт у европейского хостера (почему именно европейского – описывал в предыдущих статьях), и доступ в личный кабинет.

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

  • Оперативная память 2Gb;
  • Одно ядро процессора от 2Ghz;
  • Дисковое пространство 20Gb на SSD RAID10;

У европейского хостера OVH.COM такой тариф обойдётся в €2.99 в месяц, или примерно в 230 рублей.  Считаю это самым шикарным предложением из всех, какие только встречал, более подробно об этом уже писал в этой статье — Преимущества выделенного VPS/VDS сервера.

В комплекте к тарифу идут такие плюшки, как защита от DDoS на уровне сетевого шлюза, KVM-интерфейс, uptime 99,5%, и куча других ништячков.

Данных параметров – хватит за глаза для сайтов с нагрузкой до 10 тыс. визитов в сутки, сервер даже не вспотеет. Но если нужна будет нагрузка побольше – можно в любой момент сделать upgrade тарифа, и хостер просто выделит дополнительные ресурсы (память, ядро процессора, дисковое пространство) вообще без лишних телодвижений с вашей стороны, без переустановки системы и ПО.

На этапе оформления заказа на покупку тарифа, хостер запросит, какую операционную систему развернуть на сервере. Настоятельно рекомендую Ubuntu 18.04 LТS – самый оптимальный вариант для VPS, предназначенного для публикации сайтов.

Почему именно Ubuntu 18.04: свежая стабильная версия операционной системы на базе Linux, с актуальным кодом без дыр в безопасности. Ничего лишнего, в наличии всё необходимое – ядро, оболочка bash, программы для администрирования, и предустановленный ssh-сервер.

В серверной версии нет графического окружения, юзерских программ, типа офиса и браузера, и прочего мусора, которые на сервере вообще ни к чему.

Итак, хостер развернул виртуальный образ ОС у себя на оборудовании, к вам на почту упало письмо с данными для доступа: ip-адрес или домен третьего уровня, вроде vps12345.ovh.com, логин root и пароль к нему. Эти данные нужны для подключения к VPS-серверу по защищённому протоколу SSH.

Естественно, для подключения понадобится ssh-клиент. Настоятельно рекомендую использовать встроенный Bash on Ubuntu в Windows 10, либо расширение Secure Shell для Google Chrome в Windows 7. Ничего более удобного я пока-что не встречал, о ненавистной мне Putty даже не заикаюсь, отстой из отстоев.

Альтернативный вариант подключения – через KVM-консоль в веб-интерфейсе панели менеджера, в ЛК хостера. Кстати, это единственный вариант связаться с сервером, если переведёте его в защищённый режим, при котором сетевой интерфейс VPS-сервера отключается, и сервер становится недоступен из-вне.

Ок, вы запустили ssh-клиент, ввели данные для подключения (адрес, логин, пароль), и первый раз подключились к серверу. Поздравляю! Полдела сделано. А дальше что? Дальше начинается самое интересное. Начинаем настройку системы, установку и конфигурацию серверного ПО.

Тема весьма обширная, поэтому постараюсь вкратце, и самые основные моменты.

ЗАЩИЩАЕМ SSH! Самый первый и самый главный шаг – защита от взлома и перебора паролей двумя простыми действиями. Первым делом открываем файл конфигурации ssh-сервера/etc/ssh/sshd_conf – и меняем там номер порта на рандомный: Port 1234. Не забываем перезагрузить демон sshd, чтобы изменения вступили в силу!

Потом – прописываем в фаерволе через iptables правило, запрещающее доступ к этому порту всем, кроме нас. Таким образом, мы отсечём 99% всех попыток подбора и взлома. Более подробно защита ssh описана в отдельной статье — Защита SSH на VPS-сервере.

ШАГ НОМЕР ДВА: русифицируем систему/оболочку и консоль. Мало кто из начинающих знает английский, да и работать на родном языке приятнее и комфортнее.

Для этого выполняем сначала — sudo dpkg-reconfigure locales – устанавливаем русскую локализацию системы, затем — sudo dpkg-reconfigure console-setup – настраиваем русский язык в консоли. Обращаю ваше внимание: все команды выполняются с правами sudo (от имени супер-пользователя).

ШАГ ТРЕТИЙ: глобальное обновление системы и всех установленных пакетов. Для этого набираем в консоли: sudo apt update && sudo apt upgrade.

Данные команды сначала обновят списки репозиториев и доступных в них пакетов, а потом при наличии новых версий пакетов и ядра – установят последние. Естественно, на вопрос «Хотите продолжить?» надо ответить утвердительно.

После этого сервер можно перезагрузить командой reboot (хоть и не обязательно) и заново залогиниться по ssh уже по новому порту, который переписали в шаге первом. После авторизации вы должны увидеть приветствие на русском языке, и краткую информацию о системе.

admin@DIRECT-MARKET:~$ ssh proxy
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-88-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

System information as of Thu Mar 5 01:21:20 MSK 2020

System load: 0.91 Processes: 105
Usage of /: 27.9% of 19.21GB Users logged in: 0
Memory usage: 22% IP address for ens3: 247.39.93.87
Swap usage: 0%

* Multipass 1.0 is out! Get Ubuntu VMs on demand on your Linux, Windows or
Mac. Supports cloud-init for fast, local, cloud devops simulation.

https://multipass.run/

* Latest Kubernetes 1.18 beta is now available for your laptop, NUC, cloud
instance or Raspberry Pi, with automatic updates to the final GA release.

sudo snap install microk8s --channel=1.18/beta --classic

Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud

* Canonical Livepatch is available for installation.
- Reduce system reboots and improve kernel security. Activate at:
https://ubuntu.com/livepatch

Могут быть обновлены 0 пакетов.
0 обновлений касаются безопасности системы.

Можно установить локальное время сервера и часовой пояс. Обычно для России это MSK (+3 GMT). Не буду описывать столь банальные вещи, гугл вам в помощь.

Теперь мы имеем обновлённую, русифицированную систему, с более-менее защищённым SSH.

ШАГ НОМЕР ЧЕТЫРЕ – установка хостинг-панели и серверного ПО. Необходимо уделить особое внимание этому процессу, ибо от него будет зависеть удобство использования и администрирования всего VPS-сервера. Поэтому, лучше сделать как следует, с первого раза, чем потом переделывать всё с нуля.

Здесь стоит сделать небольшое отступление в теорию. Основное предназначение VPS-сервера — это хостинг сайтов и их баз данных, а так-же сопутствующих сервисов (DNS, MAIL, FTP, PROXY, VPN).

При этом, я настоятельно рекомендую часть инфраструктуры выносить за пределы VPS на внешние ресурсы, например настройки DNS — на cloudflare.com, приём и хранение почты — на сервера MAIL.RU для бизнеса, а от FTP вообще категорически отказаться в пользу SFTP, всё это во-первых, значительно снизит нагрузку на сервер, а во-вторых, значительно повысит уровень безопасности.

Итого, на VPS-сервере стоит развёртывать классический LEMP-набор: веб-сервер Nginx в связке с обработчиком PHP-FPM, и сервер баз данных MySQL с веб-интерфейсом для управления phpMyAdmin, хотя вполне можно обойтись и без последнего.

Почтовый сервер если и ставить — то только исключительно для МАССОВЫХ и ПЕРИОДИЧЕСКИХ почтовых рассылок из-под админки сайта, через какой-нибудь плагин. Т.е. SMTP будет работать только на отправку, а не на приём.

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

Отправку единичных писем, оповещений, подтверждений регистрации можно тоже организовать с внешнего сервиса.

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

Существует множество решений, однако, опытный администратор может вообще обойтись без хостинг-панели, администрируя всё через консоль ssh-клиента, а начинающему рекомендую устанавливать бесплатную VestaCP. В комплекте с установкой хостинг-панели Vesta происходит и установка серверного ПО, в т.ч. и основной набор LEMP.

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

После запуска на VPS-сервере скрипт подключит нужные репозитории, загрузит необходимые установочные пакеты, и произведёт их установку, попутно задав несколько вопросов. На всё уйдёт минут 15-20.

После этого, вам на почту снова упадёт письмо, с данным для доступа к хостинг-панели (адрес, логин, пароль), по которым можно уже подключиться и начать наводить красоту на сервере. Если письма нет во-входящих — обязательно проверьте папку СПАМ, т.к. почтовый сервер пока-что ещё не настроен на VPS, и письмо с кривыми рабочими заголовками ваш почтовый сервис может запросто забраковать.

В хостинг-панели вы сможете задать новых пользователей, добавлять домены и базы данных, почтовые аккаунты, правила фаерволла, прочие настройки. Естественно, на этом общая настройка не заканчивается, и нужно ещё много чего допиливать ручками, через консоль, в частности файлы конфигурации Nginx и прочего софта, но это уже предмет обсуждения другой статьи.

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

Ну и естественно, если вам нужны услуги по удалённой установке и настройке выделенного VPS/VDS сервера Linux, а времени, знаний или желания заморачиваться этим нет — вы всегда можете обратиться ко-мне, консультирую бесплатно!