Mise à niveau vers Pro

Домашний сервер.

Wall
2023-04-12 11:20:08

I. Подготовка

Итак, перед нами стоит определённая задача и мы точно знаем чего хотим получить в итоге на выходе.

Перед тем, как установить сервер нам нужно определиться с ресурсами аппаратной части и предварительно установить "чистую" операционную систему.

Предполагается, что мы на сервер будем устанавливать панель HestiaCP (о ней в IV разделе), требования к аппаратно-программному комплексу разработчики рекомендуют следующие:

*Hestia работает только на процессорах AMD64/x86_64 и ARM64/AArch64. Также требуется 64-битная операционная система! Не поддерживаются процессоры на базе i386 или ARM7.


Я буду использовать безвентилляторный мини-ПК: Intel Celeron J1900 4x2.0Ggz 64-bit, RAM 4Gb, mSATA SSD 256Gb, 1xLAN 1Gb, покупал как-то на Алике. 

В качестве ОС будем использовать последний дистрибутив Debian 11.6 (bullseye). Идём на официальный сайт, находим свою архитектуру и качаем ISO образ netinstall (установка по сети) ~ 150-280 MB. У меня так:

Следующий шаг - нам необходимо подготовить загрузочный USB носитель (флешку). Берём любую ненужную флешку, форматируем её в FAT32 утилитой HPUSBDisk, взять можно здесь на сервере.

Далее, когда флешка отформатирована нам необходимо записать скачаный ранее образ дистрибутива ISO на эту флешку и сделать её загрузочной. В этом нам поможет наиболее упоминаемая утилита Unetbootin, взять можно так-же здесь на сервере. Пользоваться очень просто. Открываем программу, внизу ставим галочку "Образ диска", загружаем сам файл *.iso из директории куда он был скачан, жмём кнопку Ok. Начнётся запись образа на диск...

Набираемся терпения и ждём окончание процесса.

Всё, наша загрузочная флешка готова! На самом деле это могуть делать множество и других утилит, в том числе и родной UltraISO.

Теперь когда у нас есть загрузочная флешка и подготовлен ПК (компьютер должен быть подключен к сети с доступом в Интернет, на роутере должен быть включён и наcтроен DHCP, флешка должна быть вставлена в рабочий USB порт), включаем его и заходим в BIOS, выбираем раздел BOOT и включаем приоритет загрузки с USB в первую очередь (флешка должна определиться в BIOS). Сохраняем настройки и перезагружаем компьютер. Если всё Ок, ждём появления приветственного окна Grub и дальнейшее приглашение к установке системы. Подготовка закончена, можно приступать к установке операционной системы.

Wall
2023-04-13 03:06:36

II. Установка системы

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

Выбираем язык интерфейса. В моём случае я выбираю Русский, Enter.

Выбираем локацию, Enter.

Выбираем раскладку клавиатуры, Enter.

Выбираем клавиши переключения локали, Enter.

Enter.

Назначаем имя компьютера, Enter.

Назначаем имя домена, Enter.

Назначаем пароль для root, Enter.

Подтверждаем пароль root, Enter.

Добавляем пользователя, Enter.

Подтверждаем пользователя, Enter.

Назначаем пароль для пользователя, Enter.

Подтверждаем пароль пользователя, Enter.

Настраиваем часовой пояс, Enter.

Выбираем способ разметки диска, Enter.

Выбираем диск для разметки, Enter.

Определяем как будут храниться файлы, Enter.

Заканчиваем разметку, Enter.

И записываем изменения на диск. Enter.

Нет. Просто жмём Enter.

Выбираем страну репозиториев, Enter.

Выбираем истоник репозиториев. Enter.

Просто жмём Enter.

Нет. Enter.

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

Здесь убираем рабочий стол и ставим флаг на SSH-сервер+Стандартные системные утилиты (снятие флагов кнопкой "пробел"). Рабочий стол нам не нужен, должно выглядеть так. Enter. Начинается процесс установки системы.

Предлогается установить загрузчик Grub на диск. Соглашаемся, Enter.

Указываем куда именно установить загрузчик Grub.

Завершение установки, Enter.

Перезагружаемся и попадаем в нашу заветную командную строку!!!

Система установлена!!! Можно переходить к основным настройкам.

Wall
2023-04-13 05:33:37

III. Основные настройки

1. Итак, наш сервер находится за NAT. В первую очередь необходимо настроить сетевое подключение. Мы помним, что при установке системы IP адрес нам был выдан DHCP сервером. Нам необходимо его поменять на статический. Определяем какой в нашей локальной сети незадействованный IP для его дальнейшего назначения сетвой карте.
С помощью терминального редактора nano (в моём случае) открываем файл конфигурации сетевой карты командой:
# nano /etc/network/interfaces

 

Меняем настройки как на скриншоте (IP, маска, шлюз соответственно ваши). enp0s3 - это название сетевой карты, у вас оно также может отличаться.

После того, как сделали изменения, файл конфигурации необходимо сохранить. В редакторе nano это делается следующим образом: Ctrl+O , Enter. После чего выходим из редактора Ctrl+X.

Перезапускаем службу командой:

# /etc/init.d/networking restart

Проверяем наши настройки сети:

# ip a

 

Отлично, наша сеть настроена. Идём далее...

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

Чтобы снизить этот риск, необходимо добавить нового обычного пользователя, а затем назначить пользователю привилегии root для выполнения повседневных административных привилегий, когда это необходимо. Это возможно, введя sudo перед командой, которая временно повысит права пользователя.

По умолчанию пакет sudo не установлен, поэтому установим его командой:

# apt install sudo

После установки sudo добавим пользователя:

# adduser  username (пусть будет alex: # adduser alex)

После добавления пользователя, будет предложено создать для него пароль, подтвердить пароль, на остальные предложения просто жмём Enter.

Добавим этого пользователя в группу sudo.

# usermod -aG sudo username (# usermod -aG sudo alex)

Теперь у пользователя alex есть привилегии root. В дальнейшем этим пользователем мы и будем работать в системе.

3. Поскольку далее мы будем управлять нашим сервером удалённо по SSH, есть смысл настроить и его. Первым делом поменяем стандартный порт 22 на свой, у меня он будет 2525. C помощью редактора nano открываем файл конфигурации ssh командой:

# nano /etc/ssh/sshd_config

Находим строчку #Port 22 раскомментируем её и поменяем порт на свой (у меня 2525).

Должно выглядеть так: Port 2525.

Как известно протокол SFTP (SSH File Transfer Protocol) использует SSH соединение с удалённым компьютером. С его помощью можно в удобной среде работать с файлами операционной системы, например через программу WinSCP для windows. Но как правило не получается получить полный доступ к файлам, так как  программа не имеет прав доступа, а как зайти под рутом (root) непонятно, ведь протокол SSH по своим дефолтным настройкам безопасности не разрешает сразу зайти под рутом.
Решение этой проблемы есть, достаточно в настройках SSH-демона изменить директиву PermitRootLogin.
Опускаемся ниже до строчки #PermitRootLogin prohibit-password.

Так-же её раскомментируем и заменим на PermitRootLogin yes.

Сохраняем Ctrl+O , Enter и выходим Ctrl+X. Перезагружаем службу ssh командой:

# /etc/init.d/ssh restart

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

На этом общие настройки закончены. Перезагружаемся...

# reboot

и оставляем этот ПК в покое. Теперь у нас есть возможность работать с сервером с удалённого компьютера.

 

Wall
2023-04-13 07:55:00

IV. Выбор и установка компонентов сервера

Есть множество вариантов установок компонентов от ручной установки типа LAMP(Linux+Apache+MySQL+PHP), до готовых комплексных решений в виде панелей управления сервером (хостингом). В своём примере я остановлюсь на бесплатной панели управления сервером HestiaCP.

После установки панели мы получаем полноценный собственный хостинг + почтовый сервер.

Возможности HestiaCP:

    - Создание и управление DNS-записями, пользователями, FTP ресурсами, базами данных, почтовыми ящиками
    - Поддержка SSL-сертификатов Let's Encrypt
    - Наличие файлового менеджера
    - Планировщик заданий Cron
    - Поддержка быстрого способа установки популярных веб-приложений: WordPress, Drupal, Joomla, Opencart, Prestashop, Laravel и Symfony
    - Резервное копирование

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

Преимущества продукта:

    - Удобный и функциональный интерфейс
    - Большое сообщество пользователей и разработчиков продукта
    - Регулярные обновления и устранение багов

На маршрутизаторе необходимо пробросить порты в зависимости от их в дальнейшем использования:

    80, 443, 8083 - доступ к сайтам и панели управления
    25,110,143,465,587,993,995 - порты для хождения почты

Установка HestiaCP

Скаиваем скрипт установки панели из репозитория командой:

#wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh

- если в процессе установки вознили проблемы с SSL, то:
#apt-get update && apt-get install ca-certificates

- после чего запустить установку:
#bash hst-install.sh

Ждём ~10-15 минут... Получаем отличную панель.

Первый вход в панель. Открываем браузер, в строке пишем https://<Ваш_IP-адрес>:8083, открывается окно авторизации.

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

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

ИТОГ: Незначительные затраты и мы получили отличный функциональный сервер с панелью управления! Если имеется в наличии "железо" с подходящей архитектурой, затраты можно вообще свести к нулю.

UPD: Ну а вот и добавил домен + HTML страничка в качестве теста. Всё работает!

#HestiaCP