Настройка коммерческой панели ISPmanager на VPS

ISPmanager — это популярная платная панель управления хостингом, предназначенная для упрощения администрирования серверов на базе Linux. Она предоставляет пользователям интуитивно понятный интерфейс, который позволяет легко управлять виртуальными и выделенными серверами, а также веб-приложениями. Благодаря широкому набору функций, таких как управление доменами, базами данных и почтовыми ящиками, ISPmanager подходит как для опытных системных администраторов, так и для новичков. Альтернативные варианты для ISP вы можете найти в статье Обзор ТОП 10 Панелей Управления Хостингом VPS.

ISPmanager 6 системные требования и установка

Оцените функционал ISPmanager заказав VPS у хостинг провайдера PQ c бесплатной лицензией на первый месяц использования.

Панель управления хостингом ISPmanager устанавливается на выделенный сервер или виртуальную машину на базе гипервизорной виртуализации KVM или контейнерной виртуализации, например OpenVZ.

Поддерживаемые операционные системы (ОС) с архитектурой x64:

  • AlmaLinux 8, 9;
  • Debian 10, 11;
  • Ubuntu 20.04 (рекомендуется), 22.04;
  • VzLinux 8;
  • Rocky Linux 8.

Полная установка описана в официальном руководстве ISP.

wget https://download.ispmanager.com/install.sh -O install.sh
sh install.sh

После окончания установки панель управления ISPmanager Lite доступна по адресу:

https://<IP-адрес сервера>:1500/ispmgr
  • Конфигурационные файлы MySQL расположены в директории /etc/mysql/mysql.conf.d/ для Ubuntu 22, что можно увидеть в файле /etc/mysql/my.cnf

Лог-файлы панели управления находятся в директории /usr/local/mgr5/var/:

  • /usr/local/mgr5/var/ispmgr.log — основной лог ISPmanager;
  • core.log — лог COREmanager;
  • pkg.log — лог установки, удаления и обновления пакетов панели управления;
  • /usr/local/mgr5/var/ihttpd.log — лог встроенного веб-сервера ihttpd;
  • backup2*.log — логи модуля резервного копирования;
  • usermove.log — лог импорта пользователя.

По умолчанию приоритетный веб домен (домен по умолчанию) в ISPmanager не настроен.

Веб-серверы могут обслуживать несколько веб-доменов на одном IP-адресе. В Apache используется механизм виртуальных хостов (VirtualHost), в nginx - несколько секций server в конфигурационном файле, имеющих разные имена, но привязанных к одним и тем же IP-адресам. В ситуации, когда на IP-адрес веб-сервера приходит запрос с указанием имени веб-домена, не обслуживаемого веб-сервером, Apache и nginx определяют веб-домен, используемый по умолчанию, и обрабатывают запрос в соответствии с настройками этого веб-домена.

Для указания веб-домена по умолчанию в Apache и nginx предусмотрены соответствующие директивы. В панели указать веб-домен по умолчанию можно, включив флаг Приоритетный в форме редактирования веб-домена. Для задания домена по умолчанию вы должны обладать правами root.

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

ISPmanager хранятся бэкапы и хостов и баз данных Движок БД MySQL в локальной директории /backups_ispmanager. Подробное видео о создании резервных копий, в том числе и Mysql:

Я по старинке, также для ISPmanager настраиваю утилиту Автоматического резервирование БД MySql при помощи AutoMySQLBackup для бэкапа MySQL - мне так удобнее.

Обновление SSL сертификата.

Каждый день в 1:30 утра система проверяет, какие сертификаты должны быть обновлены. Процедура обновления начинается за 7 (или менее дней) до истечения срока действия сертификата.

Вы также можете запустить процесс обновления вручную с помощью функции letsencrypt.check.update. Вызовите функцию через утилиту mgrctl со следующими параметрами:

/usr/local/mgr5/sbin/mgrctl -m ispmgr letsencrypt.check.update force_update=yes cert_name=%cert name% user_name=%user name%
Количество сертификатов на домен ограничено, поэтому не обновляйте сертификаты вручную слишком часто.

При обновлении сертификата с DNS-проверкой будут генерироваться новые TXT-записи. Если используется внешний DNS-сервер, записи не будут добавлены автоматически, а сертификат не будет обновлен.

Файл SSL журнала /usr/local/mgr5/var/ispmgr.log

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

Зайдите в Настройки → Настройка логирования

  1. Нажмите Ctrl и выберите 3 строки: ssl, rpc, core_modules.
  2. Нажмите на максимум.

Столкнулся с проблемой в ISPmanager - для пользователей ftp не выводит список файлов. Ошибка:

Команда:	MLSD
Ответ:	150 Opening BINARY mode data connection for MLSD
Ответ:	425 Unable to build data connection: Operation not permitted

Проблема была в ProFTPd. Похоже, что недавнее изменение в правилах обработки TLS ProFTPd по умолчанию требует повторного использования сеансов SSL, чего не делает FireFTP.

Исправление просто, добавьте следующее в proftpd.conf и перезапустите ProFTPd:

TLSOptions NoSessionReuseRequired

В ISPmanager можно настроить защиту сайта от DDOS-атак. Она нужна для блокировки IP-адресов, с которых поступает большое количество запросов. Включение защиты доступно, только если установлен веб-сервер Nginx.

Для работы защиты используется модуль ngx_http_limit_req_module, который позволяет ограничить скорость обработки запросов по заданному ключу или запросов, поступающих с одного IP-адреса.

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

При настройки в панели ISPmanager 6 фаервола (iptables) я думал, что будет удобно использовать веб-интерфейс и не нужно как в случае с Fastpanel использовать командную строку. Но как всегда меня смогли удивить:( Используйте консоль для настройки фаервола.

Конфигурационные файлы с правилами iptables вы можете увидеть изучив файл /usr/local/mgr5/etc/scripts/restore_iptables_ipset.sh, который содержит в моем случае информацию:

#!/bin/sh
ipset -R -! < /etc/ispipset.conf
iptables-restore < /etc/ispiptable.conf
ip6tables-restore < /etc/ispip6table.conf

Адрес источника все ip задаются в формате:

  • IPv4: 0.0.0.0/0
  • IPv6: ::/0

Из коробки в панели уже настроены правила для icmp и настроен fail2ban для ssh. Но установить правило по умолчанию запретить все из веб-интерфейса нельзя! Но зная последовательность правил (смотрите скриншот), которые создали программисты ISP, мы все же можем закрыть нужные нам порты для доступа из вне.

Алгоритм закрытия SSH протокола (порт 22). Нам нужно чтобы SSH порт был доступен только с определенных IP.

  1. Создаем первое правило вида "Частично разрешить" (смотрите скриншот) в котором указываем IP или сеть с которой разрешен доступ. Будет создано 3 правила, одно из которых заблокирует SSH порт для всего остального мира.
  2. Правила разрешение для остальных IP и/или сети создавайте стандартное, просто "Разрешить".

Второй вариант настройки брендмауэра ISP менеджера

  1. Через веб-интерфейс разрешаем все что нам нужно: порты, IP и/или сети
  2. На этом шаге логинемся по SSH и устанавливаем правило по умолчанию для входящих пакетов - блокировать все
    sudo iptables -P INPUT DROP
    sudo ip6tables -P INPUT DROP

Также рекомендую добавить правила для работы ping (icmp):

# Это правило позволит вашему серверу принимать все ICMP-пакеты, что включает в себя как эхо-запросы (ping), так и другие типы ICMP-сообщений.
iptables -A INPUT -p icmp -j ACCEPT
 
# Это правило позволит вашему серверу принимать все ICMPv6-пакеты, что включает в себя такие сообщения, как эхо-запросы (ping) и другие типы ICMPv6-сообщений.
ip6tables -A INPUT -p icmpv6 -j ACCEPT

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

# для IPv4
iptables-save -f /etc/ispiptable.conf
# для IPv6
ip6tables-save -f /etc/ispip6table.conf

Вот теперь, безопасную настройку фаервола можно считать законченной. Напомню лишний раз, прежде чем использовать iptables-save очень внимательно протестируйте свои правила, убедитесь что у вас есть доступ к VNC вашего сервера для сброса настроек фаервола!

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

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