FastPanel: установка и тюнинг на VPS/VDS для эффективного управления

FASTPANEL одна из лучших панелей в настоящее время: Обзор ТОП 10 Панелей Управления Хостингом VPS.

Установка FASTPANEL проста и описана в официальной документации. И в большинстве случаев вам этого хватит. Ниже описаны настройки которые вам могут понадобиться для ускорения работы в первую очередь ваших сайтов.

Установим Fastpanel с самого начала на последнюю Ubuntu 24.04 LTS на VPS от заказанный у PQ. Для установки Фастпанели требуется виртуальный (VPS) или выделенный сервер с root-доступом. Список поддерживаемых операционных систем я сократил, ибо анонсированная разработчиками Fastpanel поддержка CentOS 7 вызывает только умиление у некроадминов :-) Короче устанавливайте не ниже этих ОС:

  1. Ubuntu 22.04, 24.04
  2. Debian 11, 12
  3. Rocky Linux: 8
  4. AlmaLinux: 8.

Плюсы Fastpanel:

  1. Удобная настойка почтового сервера и DNS.

Минусы (проверялось на Ubuntu 22 LTS):

  1. По умолчанию база данных MySQL Server version: 8.0.39. К счастью разработчики предусмотрели вариант смены базы данных при установке панели, например на mariadb 10.6. На 2024 год для Wordpress рекомендуется MariaDB версии 10.5 или выше. Но мне не удалось сменить версию БД (смотрите ниже пункт)
  2. Чудеса с нас настройкой фаервола (iptables). Только самые элементарные правила, без учета IP. Настроить конечно можно, но через консоль Linux.

Мой выбор в сфере VPS-хостинга пал на PQ Hosting, Aeza (AÉZA) и DigitalOcean. Приятно, что эти провайдеры ценят своих клиентов и сохраняют выгодные условия даже при изменении базовых тарифов. Они предлагают широкий выбор конфигураций, что позволяет подобрать оптимальный вариант под любые нужды. Кроме того, у них часто проводятся акции и действуют специальные предложения для постоянных клиентов, что позволяет значительно сэкономить на аренде сервера. У них отличная техническая поддержка, которая всегда готова помочь с любыми вопросами.

Помним?!!!

Любую панель управления хостингом можно установить только на чистую операционную систему без предустановленного программного обеспечения. Установка на сервер с преднастроенным ПО невозможна!

apt update
apt full-upgrade
reboot

Если будет обновлено ядро, рекомендую перезагрузить ОС, а потом продолжить процесс установки. Для перезагрузки используйте команду reboot.

Установим wget для скачивания инсталлятора Fastpanel.

apt install -y -qq wget curl

Если имя вашего сервера соответствует домену вашего сайта, который вы будите добавлять в виде сайта в Fastpanel - смените имя сервера. Если этого не сделать, Fastpanel может не разрешить добавить ваш домен.

Посмотреть текущее имя сервера, можно командой hostname.

hostname -f

Сменить имя сервера в Linux командой:

hostnamectl set-hostname mydomain

После окончания установки Fastpanel, добавьте ваш домен и только после этого ,если вы планируете использовать это домен для рассылки почты, измените имя сервера на правильное. И перезагрузите сервер, чтобы изменения были восприняты потовым сервером.

Подготовка к установке самое важной, как корабль снарядишь так долго он и проплывет:)

По умолчанию FastPanel устанавливает MySQL 8.0. Мне такой их выбор мне не нравится. Разработчики предусмотрели смену базы данных, ну что ж проверим.

wget http://repo.fastpanel.direct/install_fastpanel.sh && bash install_fastpanel.sh --help | grep 'Available versions'
 
Available versions: default|mariadb10.6|mariadb10.11

Для установки нужно версии базы данных используем ключ -m с необходимым параметром:

bash install_fastpanel.sh -m mariadb10.6

Все чудесно я написал, но фокус не удался, все равно установился Mysql 8.0. Жесть.

Радость! Значит панель развивается и ошибки фиксятся. Сегодня устанавливал Fastpanel на Ubuntu Server 24.04 LTS Noble Numbat удалось установить нужную версию базы данных

Available versions: default|mariadb10.11|mysql8.0|percona8.0
 
bash install_fastpanel.sh -m mariadb10.11

Приступим непосредственно к установке Fastpanel по умолчанию, если нужно выбрать специфическую версию базы данных смотрите пункт выше. Запуск установки:

wget http://repo.fastpanel.direct/install_fastpanel.sh -O - | bash -

Ждем окончанию установки и получаем данные для доступа (ссылку, логин, пароль) к панели.

Congratulations! FASTPANEL successfully installed and available for you at https://1.2.3.4:8888
Login: fastuser
Password: password

Чтобы заказать лицензию, вам необходимо создать аккаунт на сайте. Проще всего перейти на веб-интерфейс вашей Fastpanel, которая предложит вам: Для выпуска лицензии введите email. Информация о созданной лицензии и учетной записи, а также ссылка для активации лицензии будут высланы на указанный почтовый адрес.

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

Я считаю для стандартных сайтов связка Nginx и PHP-FPM является самой быстрой. Поэтому в настройках сайта выбираю режим PHP-FPM, а Apache вообще выключаю из автозагрузки:

В этом разделе просто для информации описаны какие режимы работы PHP поддерживает Fastpanel. Возможно вам нужен какой-либо из них, я же предпочитаю как писал выше Nginx и PHP-FPM.

Вы можете выбрать один из следующих режимов работы:

  • Модуль Apache (mod_php). В этом режиме используется серверная версия PHP и выбрать альтернативную версию невозможно. В качестве фронтенд-сервера используется Nginx, в качестве бэкенда — Apache. Скрипты обрабатываются модулем mod_php. Apache работает в режиме MPM-ITK.
  • CGI. Можно выбирать альтернативные версии PHP. В качестве бэкенда используется Apache, для каждого запроса создается отдельный PHP-процесс.
  • FastCGI. Можно выбирать альтернативные версии PHP. В качестве фронтенд-сервера используется Nginx, в качестве бэкенда — Apache. Скрипты обрабатываются модулем mod_fcgid. В отличие от CGI, для каждого скрипта не запускается отдельный процесс, благодаря чему меньше расходуются ресурсы и увеличивается скорость работы сайты. В случаях, когда требуется альтернативная версия PHP, рекомендуется выбирать этот режим.
  • PHP-FPM (Nginx + PHP-FPM). Можно выбирать альтернативные версии PHP. В качестве фронтенд-сервера используется Nginx, в качестве бэкенда — PHP-FPM. В этом режиме не обрабатывается файл .htaccess. Все настройки .htaccess необходимо указывать в конфигурации Nginx.
www-data soft nofile 65535
www-data hard nofile 65535

или если не уверены от какого пользователя запущен вебсервер, добавьте так

* soft nofile 65535
* hard nofile 65535
www-data soft nofile 65535
www-data hard nofile 65535
#!/bin/bash
 
cat > /etc/sysctl.conf << TUNES
net.core.netdev_max_backlog=30000
net.core.somaxconn=65535
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_max_syn_backlog = 720000
net.ipv4.tcp_max_tw_buckets = 720000
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75
net.core.wmem_max = 134217728
net.core.rmem_max = 134217728
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.ipv4.tcp_rmem = 4096 65536 33554432
net.ipv4.tcp_wmem = 4096 65536 33554432
net.ipv4.tcp_moderate_rcvbuf =1
net.ipv4.tcp_no_metrics_save = 0
net.ipv4.tcp_congestion_control=htcp
net.netfilter.nf_conntrack_max = 134217728
net.nf_conntrack_max = 134217728
net.ipv4.ip_forward=1
TUNES
sysctl -p /etc/sysctl.conf

В документации Fastpanel написано, что через веб можно разрешать/блокировать по IP адресу, но у меня сейчас под рукой Ubuntu 24.04 и там такой возможности нет. Можно настраивать доступ только по портам и все.

Кстати UFW установить нельзя, потому что удалятся основной сервис fastpanel2.

Минимальная безопасная настройка iptables Fastpanel через веб-интерфейс показана на скриншоте. Правила по умолчанию в меню "Глобальные настройки" Запрещено все, что не разрешено. Проблемы возникающие при такой настройке:

  • Если вы используете IPv6, все будет заблокировано в том числе и ping для это протокола.
  • Нет возможности разрешить доступ к SSH и панели только с определённых IP

Хорошо, нельзя так нельзя UFW:( Смотрим как Fastpanel реализовывает работу с iptables. Значит они запускают сервис netfilter-persistent. И мы можем вручную добавить свои правила, например FASTPANEL по умолчанию использует порт 8888, и мы можем разрешить доступ к нему только для одного IP-адреса и ограничить доступ для любого другого IP-адреса. Для этого в конфигурационный файл /etc/iptables/rules.v4 добавьте строки (IP 10.10.10.10 замените на свой):

-A fastpanel_rules -s 10.10.10.10/32 -p tcp -m tcp --dport 8888 -j ACCEPT
-A fastpanel_rules -p tcp -m tcp --dport 8888 -j DROP

Полный листинг настроек для IPv6 /etc/iptables/rules.v6. Добавляем правило для ICMP и IP с которых разрешаем доступ ко всем портам. Соответственно закрываем доступ для остальных по SSH и к Fastpanel

# Generated by ip6tables-save v1.8.10 (nf_tables) on Mon Nov 18 11:09:05 2024
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:fastpanel_rules - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -j fastpanel_rules
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p ipv6-icmp -m comment --comment "ICMP6" -j ACCEPT
#-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 135 -j ACCEPT
#-A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 136 -j ACCEPT
#-A fastpanel_rules -p tcp -m tcp --dport 8888 -j ACCEPT
#-A fastpanel_rules -p tcp -m tcp --dport 22 -j ACCEPT
-A fastpanel_rules -p tcp -m tcp --dport 80 -j ACCEPT
-A fastpanel_rules -p tcp -m tcp --dport 443 -j ACCEPT
-A fastpanel_rules -s 2a09:xxxx:x:xx::x -j ACCEPT
-A fastpanel_rules -s 2a02:xxxx:xxxx:xxxx::x -j ACCEPT
-A fastpanel_rules -s 2a03:xxxx:xxxx::xxxx:xxxx -j ACCEPT
COMMIT
# Completed on Mon Nov 18 11:09:05 2024

Полный листинг настроек для IPv4 /etc/iptables/rules.v4.

# Generated by iptables-save v1.8.10 (nf_tables) on Mon Nov 18 11:09:05 2024
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:fastpanel_rules - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -j fastpanel_rules
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
#-A fastpanel_rules -p tcp -m tcp --dport 8888 -j ACCEPT
#-A fastpanel_rules -p tcp -m tcp --dport 22 -j ACCEPT
-A fastpanel_rules -p tcp -m tcp --dport 80 -j ACCEPT
-A fastpanel_rules -p tcp -m tcp --dport 443 -j ACCEPT
-A fastpanel_rules -s xxx.xxx.xxx.50/32 -j ACCEPT
-A fastpanel_rules -s xxx.xxx.0.0/19 -j ACCEPT
COMMIT
# Completed on Mon Nov 18 11:09:05 2024

Для применения новых правил перезапустите службу netfilter:

systemctl restart netfilter-persistent.service

По умолчанию Fastpanel разрешает доступ к своей панели управления, к почтовым ящикам RoundCube, phpmyadmin по IP и самоподписанным SSL сертификатом. На это ругаются браузеры. Можно приаккуратить такое поведение. Вы можете обращаться к панели по протоколу HTTPS — для этого потребуется добавить в качестве адреса панели домен (или поддомен) и выпустить для него SSL-сертификат.

  1. Перейдите в раздел «Настройки» — «Основные» и выберите вкладку «Адреса панели».
  2. Нажмите «Добавить адрес» и введите домен или поддомен, по которому вы хотите открывать панель. У домена в качестве A-записи должен быть указан IP-адрес вашего сервера.
  3. Нажмите «SSL» и выберите вариант «Let's Encrypt».

Теперь вы почтовый ящик можете открыть в браузере не вызывая его гнев:) по ссылке https://yourdomain.com:8888/webmail/

Для того чтобы настроить почту на сервере с панелью Fastpanel во первых нам нужен DNS сервер. Вы его можете установить в Fastpanel и настроить, но я рекомендую для избежания задержек с ответом и других проблем использовать DNS сервера регистратора домена, в данном случае это NameCheap.

  1. В панели Fastpanel установите приложение bind9. Для этого перейдите в раздел «Настройки» — «Приложения» и найдите в списке bind9 и кликните на значок установки.
  2. В Fastpanel перейдите в раздел «Управление» — «Почта». Кликните на «Новый домен». Введите ваш домен и сохраните изменения.
  3. В Fastpanel перейдите в раздел «Управление» — «DNS-домены». Если вашего домена там нет создайте. И далее кликните на «DNS-записи».
  4. Настройка DNS для домена (напоминаю, что я эти настройки делаю у регистратора домена NameCheap, а не в Fastpanel). На стороне держателя NS-серверов пропишите для домена DNS-записи (A, MX, DKIM, SPF, DMARC), используя указанные в Fastpanel значения.
  5. В целом, на этом настройку можно завершить и перейти к созданию ящиков. Если ваш почтовый домен совпадает с доменом сайта, созданного в Fastpanel, и для него уже выпущен SSL, вам остается сделать только 1 шаг, перейдите в раздел «Управление» — «Почта». Кликните на значок шестеренки у почтового домена. В пункте «Сертификат» выберите выпущенный SSL и нажмите «Сохранить».
  6. Создание почтового ящика. Перейдите в раздел «Управление» — «Почта» и кликните на «Почтовые ящики». Кликните на «Новый ящик». Заполните поля и нажмите «Сохранить».

Реквизиты для настройки почтовых клиентов можно получить, кликнув на значок рядом с именем ящика. Если вы настроили SSL сертификат, вы также можете использовать порты с шифрованием: IMAP — 993, SMTP — 465, POP3 — 995.

Почтовые записи в DNS обычно обновляются в течении 1 часа. Пробуем отослать письма на gmail и отвечаем на него. Проверили почту в обе стороны. Это хорошо, но мало:) Далее проверяем сервисом https://www.mail-tester.com и стараемся достичь результат в 10 баллов.

Если не знали, да еще забыли:) пароль для входа в Fastpanel, но у вас есть доступ SSH. Пароль можно заменить как для обычного пользователя командой passwd

passwd fastuser

Или через многофункциональную утилиту mogwai которая входит в Fastpanel

mogwai chpasswd --username=fastuser --password=YOUR_PASSWORD

Я обычно захожу по SSH и запускаю бинарный файл из поставки Фастпанели. Как видите в листинге, после запуска происходи обновление репозиториев и установка новых версий пакетов.

root@best:~# /usr/local/fastpanel2/app/updater
[2024-07-31T11:33:50-04:00]  INFO Retrieve FASTPANEL installed package list
[2024-07-31T11:33:50-04:00]  INFO CMD: dpkg '-l'
[2024-07-31T11:33:50-04:00]  INFO package: fastpanel2, current version: 1.10-ubuntu24.04p539, candidate version: 1.10-ubuntu24.04p548
[2024-07-31T11:33:51-04:00]  INFO CMD: apt-get 'update'
[2024-07-31T11:34:00-04:00]  INFO Start update 'fastpanel2' package
[2024-07-31T11:34:00-04:00]  INFO CMD: apt-get 'update'
[2024-07-31T11:34:09-04:00]  INFO CMD: apt-get 'install' 'fastpanel2' '-y' '-o' 'Dpkg::Options::=--force-confdef' '-o' 'Dpkg::Options::=--force-confold' '--force-yes' '--allow-unauthenticated'
[2024-07-31T11:35:29-04:00]  INFO Package 'fastpanel2' have been updated successful
root@best:~#

Надеюсь вам это руководство пригодилось. Дам еще совет, если вы установили на свой сервер какую либо панель, то все изменения старайтесь делать только через панель! И только в исключительных случаях используйте консоль SSH для правки конфигурационных файлов.

📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!