Настройка VPS-сервера от А до Я на основе Debian 8 (Jessie) и панели Vesta

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

Первая часть руководства будет посвящена деятельности, связанной с установкой служб, панели VestaCP и основам, связанным с безопасностью. Мы изменим пароль root по умолчанию для сервера VPS. Далее мы установим некоторые базовые инструменты, которые будут полезны при дальнейшей работе с сервером VPS и панелью VestaCP. Мы исправим проблему отсутствия польских символов (это происходит на серверах от OVH). Далее мы установим панель VestaCP вместе с необходимыми сервисами. Мы изменим пароль для пользователя с правами администратора. Мы изменим порт SSH по умолчанию. Мы обновим OpenSSL до версии 1.0.2l или 1.1.0f (необязательно). Мы включаем службы, которые по умолчанию отключены для брандмауэра. Мы обновим fail2ban до версии 0.9.6 или 0.9.7 (необязательно). В конце мы установим расширенный брандмауэр CSF версии 10.19.

В дополнение к установке панели VestaCP вместе со службами по умолчанию все остальные действия являются необязательными. Вы можете пропустить любую часть учебника, если решите, что вам не нужно устанавливать / обновлять / изменять. Я также предупреждаю вас, что некоторые службы обновляются до версий, которые отсутствуют в репозиториях со стабильными версиями (jessie и jessie / updates), но расположены в jessie-backports и нестабильных репозиториях. Некоторые службы обновлены до версий, утвержденных как стабильные только для Debian 9 (растяжка). Поэтому, если вас беспокоит стабильность / функциональность такого сервиса, пропустите выбранный фрагмент.

Весь процесс, включенный в учебник из трех частей, основан на VPS, арендованном у OVH. Я не могу гарантировать, что все будет работать и у вас, тем более, если у вас есть VPS от другого поставщика услуг. Однако по определению весь процесс должен быть идентичен. VPS-серверы, к которым у меня есть доступ, расположены в разных дата-центрах OVH, но это не должно иметь значения (за исключением одного исключения, о котором позже). Если у вас также есть VPS-сервер из OVH, выберите свой сервер на панели OVH, затем нажмите кнопку «Переустановить VPS-сервер» справа. В списке выберите систему «Debian 8 (Jessie) (64 бит)» и польский язык для выбранной установки. Я написал минуту назад, что между серверами VPS и OVH может быть одно небольшое отличие. Даже при выборе польской версии может оказаться, что при установке возникнут проблемы с польскими символами. Мы исправим это. Некоторые серверы VPS имеют эту проблему, другие нет. Я понятия не имею, от чего это зависит, потому что даже VPS от польского дата-центра может отличаться в этом отношении.

Я использую традиционно для подключения к серверу VPS через SSH в Windows PuTTY Я использую Android на Android JuiceSSH в платной версии, но достаточно быть бесплатным. Подключитесь к серверу, используя логин и пароль (логин и пароль, отправленные по электронной почте из OVH) или ключ SSH. Я использую последний вариант, потому что он более удобен для меня. В случае OVH ключ SSH может быть добавлен на сервер двумя способами - через панель OVH и традиционно путем импорта его через SSH. Для этого я использую JuiceSSH, потому что платная версия позволяет быстро вставить фрагмент с ключом SSH. Это делается один раз, после чего вы можете войти на VPS-сервер без ввода пароля. Как только вы войдете на сервер, вы увидите следующий экран.

Как только вы войдете на сервер, вы увидите следующий экран

Пароль для пользователя root, сгенерированного с компьютера при установке сервера VPS в OVH, имеет 8 символов. Этот пароль нелегко взломать, но я уверен, что меняю его дольше, также сгенерированный. Этот автоматический пароль от OVH отправляется в почтовый ящик, поэтому в случае несанкционированного доступа к почте злоумышленник также получит root-доступ к серверу VPS. Вот почему я меняю свой пароль. Мы делаем это с помощью следующей команды.

ПАРОЛЬ

После изменения пароля самостоятельно (сгенерируйте пароль, пусть это не будет test123), мы удостоверимся, что у нас установлен Debian 8 (jessie).

cat / etc / debian_version

В моем случае эта команда возвращает 8.8, как показано ниже.

8, как показано ниже

Теперь мы обновим список сервисов / приложений, доступных в репозиториях по умолчанию, сохраненных в /etc/apt/sources.list, и установим несколько инструментов, которые будут полезны для нас в этом уроке.

apt-get update apt-get install mc -y apt-get install nano -y apt-get установить curl-y

Команда apt-get install используется для установки служб / приложений. Mc - это Midnight Commander, файловый менеджер, похожий на Windows Total Commander. Это облегчает навигацию по дереву категорий, чем использование команд cd и ls . Nano, с другой стороны, является дружественным (для Linux) текстовым редактором. Альтернативой является vim, вы также можете использовать редактор, встроенный в Midnight Commander. Нет ничего проще, чем Nano. Напротив, cURL - это библиотека программирования, которая используется установщиком VestaCP. Использование -y приведет к тому, что нам не придется каждый раз подтверждать установку дополнительных элементов.

Использование -y приведет к тому, что нам не придется каждый раз подтверждать установку дополнительных элементов

Вы помните, как я писал, что иногда возникают проблемы с польскими установками Debian из OVH? Речь идет о проблеме с польскими символами. Посмотрим, все ли у вас в порядке, или вам нужно что-то исправить. Мы запустим Midnight Commander.

Sudo Mc

Если все выглядит так, как должно, вы можете пропустить раздел ниже и перейти непосредственно к установке панели VestaCP. Для меня Midnight Commander выглядит следующим образом.

Для меня Midnight Commander выглядит следующим образом

Итак, мы покидаем Midnight Commander с помощью F10 и начинаем чинить кусты. Сначала отредактируйте файл /etc/locale.gen

nano /etc/locale.gen

Не должно быть хеша (#) перед строкой en_US.UTF-8 UTF-8. Однако, вероятно, перед строкой pl_PL.UTF-8 UTF-8 есть хеш. Вы должны удалить его.

Вы должны удалить его

Затем сохраните файл, используя комбинацию клавиш ctrl + o, и выйдите, используя комбинацию xtrl + x. Uruchamiamy / usr / sbin / locale-gen.

/ Usr / SBIN / национальная_версия поколения

Появляется сообщение «Генерация локалей» (это может занять некоторое время) ... Через некоторое время мы завершили генерацию информации.

Через некоторое время мы завершили генерацию информации

Мы еще раз проверим, как выглядит Midnight Commander.

Sudo Mc

Теперь все признаки должны быть в порядке. Для меня это выглядит так.

Для меня это выглядит так

Мы покидаем Midnight Commander с помощью F10.

Перейдите к основной части руководства, то есть установите панель VestaCP со всеми необходимыми сервисами. Мы входим на сайт https://vestacp.com/install/ и мы заполняем поля в форме 3 - имя хоста, адрес электронной почты и пароль. Имя хоста - это адрес вашего VPS-сервера по умолчанию. Важные сообщения от VestaCP придут на ваш адрес электронной почты. Первым будет информация о завершенной установке панели VestaCP, а также введенные вами адрес панели VestaCP, логин и пароль. Мы не меняем настройки по умолчанию формы установщика VestaCP. Мы предоставляем услугу квот только с да.

Еще одно замечание относительно выбранного пароля. Мы все равно изменим их, но я рекомендую выбрать длинный сгенерированный пароль, потому что установщик VestaCP назначит этот пароль пользователю root базы данных MySQL. Вы не хотите иметь рут MySQL с паролем test123. После заполнения 3 обязательных полей нажмите «Создать команду установки», и фактически появятся 2 команды, которые мы должны вставить в SSH. Я не считаю первую команду, потому что она касается регистрации SSH как root на VPS-сервере, и это позади.

curl -O http://vestacp.com/pub/vst-install.sh bash vst-install.sh --nginx да --apache да --phpfpm нет - по имени да --remi да --vsftpd да - proftpd нет --iptables да --fail2ban да - квота да - exim да да --dovecot да --spamassassin да --clamav да --mysql да --postgresql нет --hostname vps123456.ovh.net --email vesta @ lesiu.eu - пароль rsQJWsbz3N25d7rW

В PuTTY это выглядит так. Нажмите ввод, и мы начнем процесс установки.

Через некоторое время информация о перечисленных службах, по-видимому, устанавливается на наш VPS-сервер установщиком VestaCP. Простой вопрос: если мы хотим продолжить, мы нажимаем y , вводим, и процесс установки службы начинается с панели VestaCP.

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

Теперь мы можем проверить, обновлял ли процесс установки панели VestaCP и саму систему Debian 8 (jessie) в той же версии, конечно.

cat / etc / debian_version

Для меня эта команда теперь возвращает 8,9, до установки панели VestaCP было 8,8. Debian 8.9 был выпущен 22 июля 2017 года. Подробнее об этой версии можно узнать в в том числе Ньюси ,

Давайте изменим пароль для пользователя с правами администратора, который мы указали при установке. В этом нет необходимости, но я предпочитаю использовать разные пароли для администратора VestaCP и корня MySQL. Мы подключаемся к панели, используя данные, только что отображенные установщиком VestaCP (проще скопировать пароль из полученного электронного письма). Затем в правом верхнем углу нажмите на admin и введите новый пароль. Традиционно я рекомендую вам создать длинный пароль и сохранить его в безопасном месте. Здесь вы также можете добавить другие данные, такие как адрес электронной почты, имя, фамилия, язык по умолчанию, DNS-серверы по умолчанию и тип доступа SSH (включая исключение доступа SSH для данного пользователя).

Теперь мы изменим SSH-порт нашего VPS-сервера. Порт SSH по умолчанию - 22, и именно через порт 22 большинство ботов / торговых автоматов пытаются добраться до выделенных серверов и VPS. Для целей данного руководства я выберу порт 1234 для SSH, но вы можете выбрать любой. Я рекомендую что-то высокое, например, 4154.

nano / etc / ssh / sshd_config

Затем мы модифицируем строку с портом 22. Вместо этого значения мы даем выбранный порт. В моем случае это 1234.

Мы сохраняем изменения, используя комбинацию клавиш ctrl + o, затем выходим, используя ctrl + x. Служба SSH еще должна быть перезапущена.

перезапуск службы sshd

Нам все еще нужно изменить порт SSH в брандмауэре, установленном VestaCP. На панели нажмите «Брандмауэр», и порт SSH изменится с 22 на тот, который вы выберете. Я изменяю на 1234 в учебнике. Я сохраняю изменения.

Настал черед первого обновления службы за пределами репозиториев Debian 8 по умолчанию (jessie). Это конкретно об OpenSSL. По умолчанию, с VestaCP, пакет OpenSSL установлен в версии 1.0.1t. Это красивая, более не разработанная версия. На сегодняшний день в репозиториях Debian 8 у нас все еще есть версии 1.0.2l и 1.1.0f. Оба выпущены 25 мая 2017 года. Первый находится в репозитории jessie-backports, второй - в нестабильном репозитории. Как следует из названия, это не официальные версии Debian 8 jessie. Мы устанавливаем их на свой страх и риск. Выбор версии за вами, вы устанавливаете их очень похоже. Я выбираю OpenSSL 1.1.0f. Во-первых, потому что это более новая и более высокая версия (помните, однако, что это не всегда последняя версия), во-вторых, потому что это OpenSSL 1.1.0f, который используется по умолчанию для Debian 9 (stretch).

Ниже приведены инструкции по обновлению OpenSSL до версии 1.0.2l. Первая строка добавляет репозиторий jessie-backports в список /etc/apt/sources.list. После добавления этого хранилища вы должны перезагрузить список, используя apt-get update . Затем мы проверяем с помощью политики apt-cache openssl, какую версию мы установили, что доступно в стабильном репозитории, а что в jessie-backports. Сейчас мы делаем установку OpenSSL из выбранного репозитория, то есть jessie-backports. В конце мы проверяем версию OpenSSL после нашего обновления, используя команду openssl version .

echo 'deb http://ftp.debian.org/debian jessie-backports main' >> /etc/apt/sources.list apt-get update политика apt-cache openssl apt-get install -t jessie-backports openssl -y версия openssl

Ниже приведено заявление об обновлении OpenSSL для версии 1.1.0f. Первая строка - добавить нестабильный репозиторий в список /etc/apt/sources.list. После добавления этого хранилища вы должны перезагрузить список, используя apt-get update . Затем мы проверяем с помощью политики apt-cache openssl, какую версию мы установили, что доступно в стабильном хранилище, а что в нестабильном. Сейчас мы делаем установку OpenSSL из выбранного репозитория, то есть нестабильно. В конце мы проверяем версию OpenSSL после нашего обновления, используя команду openssl version .

echo 'deb http://ftp.pl.debian.org/debian/ нестабильный основной вклад несвободный' >> /etc/apt/sources.list apt-get update политика apt-cache openssl apt-get install -t unstable openssl -y версия openssl

После обновления OpenSSL до версии 1.1.0f команда openssl version возвращает следующую информацию.

Тогда мы идем на fail2ban. Это по умолчанию для VestaCP, очень распространенного брандмауэра. Как правило, после новой установки Debian 8 (jessie) и VestaCP на VPS-сервер fail2ban находится в версии 0.8.13-1 и контролирует следующие службы: vesta, ssh, exim, dovecot. В панели администрирования VestaCP мы включим оставшиеся сервисы в межсетевой экран fail2ban. Для этого выберите Сервер -> fail2ban -> вкладка Настройка. В файле конфигурации для служб, которые имеют значение = false, измените значение на true . После сохранения сервис fail2ban автоматически перезагружается. Эти настройки можно изменить по своему усмотрению либо через панель VestaCP, либо отредактировав файл /etc/fail2ban/jail.local через SSH. Если вы сторонник использования SSH вместо панели, просто не забудьте перезагрузить службу после модификации с помощью команды service fail2ban restart . Теперь мы собираемся обновить межсетевой экран fail2ban. Не беспокойтесь, наши изменения в файле конфигурации будут сохранены, потому что jail.local используется для настройки в соответствии с потребностями администратора. Мы могли бы взять экспериментальную версию 0.10.x, но, по моему мнению, будет безопасно установить версию fail2ban, которая для Debian 9 (stretch) помечена как стабильная, или 0.9.6-2. Если для обновления мы используем нестабильные репозитории, которые мы уже добавили в /etc/apt/sources.list, мы установим более новую версию. На данный момент нестабильные репозитории для Debian 8 (jessie) имеют версию 0.9.7-2. Ниже я представлю метод установки для обеих версий, с установкой версии 0.9.7-2 в двух вариантах - из файла .deb и из нестабильных репозиториев. Так что вы можете выбрать вариант для себя.

Вкратце опишу следующие шаги. Используя команду mkdir , создайте папку для копирования в / usr / local, чтобы создать копию сервисов, которые мы будем обновлять. Затем, используя команду cp , мы рекурсивно ( -r ) копируем все содержимое папки / etc / fail2ban в только что созданный каталог. Остановим службу fail2ban с помощью команды service fail2ban stop и командой apt-get remove -purge fail2ban удалим весь брандмауэр. Затем мы обновляем список служб / инструментов, которые находятся в репозиториях, определенных в /etc/apt/sources.list. Однажды мне пришло в голову, что система попросила установить пакет python3 во время установки fail2ban. Я не знаю, почему это произошло, но если это случилось с вами, установите его с помощью команды apt-get install python3 . Затем измените папку на / usr / local / src с помощью команды cd . Используя wget, мы загружаем пакет межсетевого экрана fail2ban с расширением .deb. Мы устанавливаем с помощью команды dpkg -i . Затем отредактируйте файл /etc/fail2ban/jail.conf с помощью редактора Nano. Стоит потратить некоторое время, чтобы узнать о fail2ban. В начале я рекомендую изменить значение bantime, которое составляет 600 секунд (10 минут). Я изменяю это на 3600 (1 час). Я пишу Ctrl + O, выход Ctrl + X с Nano. Конечно, я запускаю команду update-rc.d fail2ban default , которая позволит нам запустить межсетевой экран fail2ban после перезагрузки системы. На 90% установщик fail2ban делает это сам, но бездействие испортит эту команду. Команды службы fail2ban status и fail2ban-client будут отображать статус службы и все тюрьмы, то есть службы, включенные в брандмауэр.

mkdir / usr / local / copy cp -r / etc / fail2ban / usr / local / copy / fail2ban service fail2ban stop apt-get remove --purge fail2ban apt-get update # apt-get install python3 -y cd / usr / local / src wget http://ftp.pl.debian.org/debian/pool/main/f/fail2ban/fail2ban_0.9.6-2_all.deb dpkg -i fail2ban_0.9.6-2_all.deb nano / etc / fail2ban / jail. conf -> bantime 3600 ctrl + o ctrl + x # update-rc.d fail2ban по умолчанию служба fail2ban статус fail2ban-клиент статус

Выполнив все вышеперечисленные шаги, мы должны получить следующий эффект.

Выполнив все вышеперечисленные шаги, мы должны получить следующий эффект

Если вы хотите иметь более новую версию fail2ban на сервере, вместо 0.9.6-2, установите fail2ban 0.9.7-2. Инструкции ниже.

mkdir / usr / local / copy cp -r / etc / fail2ban / usr / local / copy / fail2ban service fail2ban stop apt-get remove --purge fail2ban apt-get update # apt-get install python3 -y cd / usr / local / src wget http://ftp.pl.debian.org/debian/pool/main/f/fail2ban/fail2ban_0.9.7-2_all.deb dpkg -i fail2ban_0.9.7-2_all.deb nano / etc / fail2ban / jail. conf -> bantime 3600 ctrl + o ctrl + x # update-rc.d fail2ban по умолчанию служба fail2ban статус fail2ban-клиент статус

Для сторонников установки fail2ban из нестабильных репозиториев Debian, пожалуйста, ознакомьтесь с краткими инструкциями ниже. Запустите команду apt-cache policy fail2ban, чтобы проверить, какая версия в настоящее время находится в нестабильных репозиториях.

Запустите команду apt-cache policy fail2ban, чтобы проверить, какая версия в настоящее время находится в нестабильных репозиториях

Мы выполняем первую команду, если мы еще этого не сделали, и у нас нет нестабильных репозиториев, содержащихся в файле /etc/apt/sources.list. Фактически, разница между установкой fail2ban 0.9.7-2 из файла .deb и из нестабильных репозиториев сводится к разнице в команде 1 ( dpkg -i и apt-get install ). Я пишу все еще раз, потому что учебник должен был быть скопирован и вставлен для непрофессионала.

echo 'deb http://ftp.pl.debian.org/debian/ нестабильный основной вклад несвободный' >> /etc/apt/sources.list mkdir / usr / local / copy cp -r / etc / fail2ban / usr / local / copy / fail2ban service fail2ban stop apt-get remove --purge fail2ban apt-get update политика apt-cache fail2ban apt-get install -t нестабильная fail2ban -y (необязательно) служба fail2ban статус fail2ban-client status

У нас есть последний шаг первой части урока, традиционно необязательный. В частности, речь идет об установке расширенного межсетевого экрана ConfigServer Security & Firewall (CSF) версии 10.19 или более поздней. Автор этой части урока Стивен Салливан , Сценарий и модификации являются его авторством. Если вы хотите, установите версию, которую Стивен Салливан сделал доступной в блоге. Мой немного модифицирован. Я немного перебрал файлы, удалил ненужные символы и изменил место вкладки CSF на панели VestaCP.

Краткое описание следующих шагов. Мы рекурсивно копируем всю папку с файлами панели VestaCP / usr / local / vesta в папку / usr / local / copy / vesta. Мы меняем папку, в которой мы находимся, используя команду cd . Мы загружаем скрипт .sh с помощью wget , который установит для нас последнюю версию усовершенствованного брандмауэра CSF. Мы меняем права доступа с помощью chmod на 777. Затем запускаем скрипт csf-install.sh и ждем, пока все установится на нашем VPS-сервере. Теперь с помощью редактора nano мы изменим файл /etc/csf/regex.custom.pm.

cp -r / usr / local / vesta / usr / local / copy / vesta cd wget https://www.lesiu.eu/vesta/csf-install.sh chmod 777 ./csf-install.sh ./csf-install .sh nano /etc/csf/regex.custom.pm

Примерно в середине этого файла находится пустое поле с местом для собственных определений. Вставьте следующую строку.

if (($ lgfile eq $ config {FTPD_LOG}) и ($ line = ~ / FAIL LOGIN: Client \ "(\ S +) \" /)) {return ("Неудачный вход в систему с FTP", $ 1, "vsftpd_vps", "5", "20:21", "1"); }

Мы пишем Ctrl + O, оставляем Ctrl + X.

Теперь нам нужно добавить порт 8083, на котором установлена ​​панель VestaCP для настройки CSF. Мы редактируем файл /etc/csf/csf.conf и находим строку из TCP_IN, куда добавляем порт 8083. В верхней части также есть значение TESTING, установленное в 1. Это означает, что брандмауэр CSF находится в тестовом режиме. Для него должно быть установлено значение TESTING на 0. Вышеупомянутые два изменения могут быть внесены в панель VestaCP. Я сделал это в Нано. Теперь вам нужно запустить CSF и LFD (Login Failure Daemon). В панели VestaCP на верхней панели справа есть ссылка на все опции CSF. Состояние брандмауэра: включено и работает должно отображаться на зеленом фоне. Это означает, что брандмауэр работает, но вам нужно позаботиться о его правильной конфигурации.

nano /etc/csf/csf.conf

Это почти все. Теперь я рекомендую удалить репозиторий jessie-backports и нестабильный выпуск из файла /etc/apt/sources.list. Вы можете удалить их, вы можете исключить их, используя хэш (#). Не забудьте запустить команду apt-get update после изменения файла /etc/apt/sources.list.

nano /etc/apt/sources.list

Этого будет достаточно, когда речь заходит о первой части урока. Я надеюсь, что все прошло гладко. Если благодаря моей работе вы сможете сэкономить время и / или деньги, возможно, вы решите поддержать мою маленькую дочь в борьбе с очень тяжелым и редким заболеванием - https://pomagam.pl/lilusia и https://www.facebook.com/PomocDlaLilusi/ ,

Я начал этот «цикл» уроков с предположения, что будет 3 части, основанные на системе Debian 8 (Джесси) и панели Vesta. Тем временем, однако, появилась новая, стабильная версия системы - Debian 9 (Stretch) и была представлена ​​в предложении OVH, которое я использую. Поэтому я отказался от дальнейшей работы, связанной с настройкой системы Debian 8 (Jessie) вместе с панелью Vesta. Я создал учебник от А до Я о том, как настроить Debian 9 (Stretch) с панелью Vesta , Он состоит из 2-х частей - автоматической и ручной - на выбор. Больше подробностей прямо в учебнике. Добро пожаловать.

PS. Если это воля читателей, я закончу текущее руководство по Debian 8 (Jessie) о PHP-FPM, но я вставлю сами команды без скриншотов.

Вы помните, как я писал, что иногда возникают проблемы с польскими установками Debian из OVH?