Практическое руководство: Настройка комплексной безопасности сервера через Webmin
Данное руководство описывает пошаговый процесс развертывания многоуровневой системы безопасности (ОС $\rightarrow$ OpenCms $\rightarrow$ Apache OFBiz) с использованием исключительно графического интерфейса и модулей панели Webmin.
Мы разберем, как защитить систему от четырех ключевых векторов угроз: физического доступа, вторжения из локальной сети (LAN), атак со стороны провайдера/интернета и аппаратных сбоев.
ЭТАП 1: Безопасность на уровне ОС kUbuntu и самой панели Webmin
Защита хост-системы и управляющего интерфейса — это критически важный первый шаг. Все настройки на этом этапе выполняются через стандартные модули Webmin.
1.1. Защита от физического доступа к серверу
Вектор угрозы: злоумышленник имеет физический доступ к корпусу сервера, пытается загрузиться с флешки для сброса паролей или войти в консоль восстановления GRUB.
-
Создание хэша пароля GRUB (через Webmin):
-
Перейдите в Tools (Инструменты) $\rightarrow$ Command Shell (Командная строка).
-
В поле ввода команды выполните:
grub-mkpasswd-pbkdf2. -
Введите ваш будущий сложный пароль GRUB. Скопируйте сгенерированную строку хэша (начинается с
grub.pbkdf2.sha512...).
-
-
Защита загрузчика GRUB паролем (Безопасный метод без блокировки автозапуска):
⚠️ КРИТИЧЕСКИЙ РИСК ДЛЯ HEADLESS-СЕРВЕРА: Если вы просто укажете суперпользователя в GRUB, система по умолчанию заблокирует все пункты меню. При любой перезагрузке (например, после отключения электричества) сервер зависнет на этапе загрузки, требуя ввести логин и пароль с физической клавиатуры.
Как сделать правильно: Нам нужно заблокировать паролем только вход в консоль GRUB (клавиша
c) и редактирование параметров ядра (клавишаe), но разрешить системе загружаться в стандартном режиме автоматически и без ввода пароля (--unrestricted).-
В Webmin перейдите в Tools $\rightarrow$ File Manager (Файловый менеджер).
-
Вместо редактирования системных скриптов, воспользуйтесь стандартным пользовательским конфигуратором. Перейдите по пути
/etc/grub.d/и откройте файл40_customво встроенном редакторе (двойной клик или правая кнопка мыши $\rightarrow$ Edit). -
Добавьте в конец файла следующие строки:
# Определение суперпользователя GRUB set superusers="admin" # Привязка сгенерированного хэша пароля к пользователю admin password_pbkdf2 admin <вставьте_ваш_скопированный_хэш_grub> -
Сохраните файл (кнопка Save).
-
Теперь проверьте, поддерживает ли ваша ОС автоматический бесконсольный запуск. В Ubuntu/kUbuntu generator меню автоматически добавляет параметр
--unrestrictedк стандартным пунктам меню, если видит настроенных суперпользователей. -
Перейдите в Command Shell и примените изменения командой:
sudo update-grub -
Проверка безопасности (Обязательно до перезагрузки!):
Выполните команду поиска ограничений в сгенерированном файле:
grep -E "menuentry|unrestricted" /boot/grub/grub.cfgWhat you should see in output: Рядом с вашим дефолтным ядром (первая строка
menuentry 'Ubuntu' ...) должен обязательно присутствовать флаг--unrestricted. Это гарантирует, что обычный запуск пройдет автоматически, а пароль потребуется только при попытке взлома меню загрузки.
-
-
План спасения (Если вы всё же заблокировали сервер):
Если после перезагрузки сервер требует пароль для обычной загрузки, а вы его забыли или ошиблись в хэше:
-
Загрузитесь с любого Live-USB (kUbuntu/Ubuntu).
-
Откройте terminal, смонтируйте системный NVMe-накопитель сервера:
sudo mount /dev/nvme0n1p3 /mnt -
Откройте файл
/mnt/etc/grub.d/40_customи удалите или закомментируйте строки сsuperusersиpassword_pbkdf2. -
Примените изменения к GRUB на смонтированном диске. Для этого привяжите виртуальные файловые системы хоста к точке монтирования и выполните обновление внутри среды
chroot:# Связываем системные директории Live-USB со смонтированной системой for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done # Если у вас /boot вынесен на отдельный раздел (например, sda1), смонтируйте его: # sudo mount /dev/sda1 /mnt/boot # Переходим в chroot-окружение сервера и принудительно обновляем grub sudo chroot /mnt update-grub # Корректно размонтируем всё перед выходом sudo umount -R /mnt -
Перезагрузитесь. Сервер снова станет доступен в штатном режиме.
-
1.2. Защита от вторжения через провайдера (Защита панели Webmin)
Вектор угрозы: Webmin работает на стандартном порту 10000, открытом в интернет, подвергаясь атакам брутфорса и сканированию.
-
Смена стандартного порта Webmin (Безопасный алгоритм без потери доступа):
⚠️ КРИТИЧЕСКИЙ РИСК БЛОКИРОВКИ И КОНФЛИКТА: Поскольку в системе активен брандмауэр UFW, стандартный графический модуль Webmin "Linux Firewall" (iptables) использовать запрещено — они будут перезаписывать правила друг друга.
Все действия с брандмауэром выполняются через встроенную в Webmin веб-консоль Command Shell (Командная строка). Это безопасно, быстро и гарантирует корректность правил UFW.
-
Шаг А: Открываем новый порт в брандмауэре через Webmin.
-
В левом меню Webmin перейдите в раздел Tools (Инструменты) $\rightarrow$ Command Shell (Командная строка).
-
В поле ввода команды введите следующую строку для открытия нового скрытого порта (например,
10099) и перезапуска правил:sudo ufw allow 10099/tcp comment 'Webmin New' && sudo ufw reload -
Нажмите кнопку Execute command (Выполнить). Убедитесь, что система вернула ответ об успешном добавлении правила и перезапуске брандмауэра.
-
-
Шаг Б: Меняем рабочий порт в настройках Webmin.
-
In the left-hand menu, navigate to Webmin $\rightarrow$ Webmin Configuration (Конфигурация Webmin) $\rightarrow$ Ports and Addresses (Порты и адреса).
-
В поле Listen on port (Слушать на порту) измените стандартное значение
10000на ваш новый скрытый порт10099. -
Нажмите кнопку Save (Сохранить). Служба Webmin автоматически перезапустится на новом порту.
-
-
Шаг В: Подключаемся по новому адресу.
-
Откройте новую вкладку в вашем браузере и введите адрес с новым портом:
https://192.168.0.19:10099/. -
Убедитесь, что панель управления успешно загружается, и вы можете войти в систему.
-
-
Шаг Г: Закрываем старый порт в брандмауэре.
-
Только после успешного входа по новому порту
10099вернитесь в Webmin $\rightarrow$ Tools $\rightarrow$ Command Shell. -
Введите команду для удаления правила брандмауэра для старого неиспользуемого порта
10000:sudo ufw delete allow 10000/tcp && sudo ufw reload -
Нажмите Execute command. Старый порт теперь надежно закрыт для внешней и внутренней сети.
-
-
-
Настройка двухфакторной аутентификации (2FA/TOTP в Webmin 2.x):
💡 Что делать, если в системе не установлен необходимый Perl-модуль:
Webmin скроет или заблокирует метод TOTP защиты, если в самой системе kUbuntu не установлен модуль
Authen::OATH.Чтобы исправить это, перейдите в Webmin $\rightarrow$ Tools $\rightarrow$ Command Shell и выполните команду:
sudo apt update && sudo apt install libauthen-oath-perl -y-
Включение 2FA для вашего администратора (Webmin 2.641+):
-
Перейдите в раздел Webmin $\rightarrow$ Webmin Users (Пользователи Webmin).
-
Кликните по вашему имени пользователя (например,
adminилиsurvrus). -
Найдите строку Two-factor authentication provider (Провайдер двухфакторной аутентификации).
-
Выберите в выпадающем списке TOTP Authenticator (Time-based One-Time Password) и нажмите кнопку Save внизу страницы.
-
Webmin отобразит страницу настройки с QR-кодом и текстовым Secret Key (например,
AJT6M6D5BZIJXJAX). -
Критически важно: Скопируйте и надежно сохраните этот текстовый Secret Key в вашем менеджере паролей (Bitwarden/KeePassXC). Он позволит восстановить доступ к Webmin при поломке или утере смартфона.
-
Отсканируйте QR-код мобильным приложением-аутентификатором (Aegis, Google Authenticator, 2FAS) и подтвердите активацию.
-
-
-
Сценарии безопасного доступа к Webmin из интернета (Вместо жесткой блокировки по IP):
Если вам жизненно необходим доступ к Webmin из внешней сети (интернета), стандартная блокировка "IP Access Control" (разрешающая только подсеть
192.168.0.0/24) сделает это невозможным.Выберите один из трех сценариев для безопасного удаленного администрирования:
-
Сценарий А: Прямой доступ из интернета (Базовый уровень защиты).
-
Если у вас нет постоянного VPN-туннеля, вы можете оставить доступ к Webmin открытым для всех внешних IP-адресов.
-
Как сделать: В модуле Webmin Configuration $\rightarrow$ IP Access Control оставьте переключатель в режиме Allow from all addresses (Разрешить со всех адресов).
-
Как защититься в этом случае:
-
Ваш скрытый порт
10099защитит от массовых автоматических сканеров портов. -
Включенный 2FA (TOTP) делает подбор пароля бесполезным (злоумышленник не войдет без одноразового кода на вашем телефоне).
-
В системе должен обязательно работать Fail2ban (уже защищает службу Webmin, блокируя IP-адрес атакующего на 24 часа после 3 неудачных попыток ввода пароля).
-
-
-
Сценарий Б: Доступ через собственный защищенный VPN-туннель (Рекомендуемый / Профессиональный уровень).
-
Самый надежный подход: порты управления сервером (Webmin, SSH) полностью закрыты для интернета на роутере. Для входа на server вы сначала включаете VPN на вашем Mac, Linux или смартфоне, а затем открываете Webmin по его локальному IP:
https://192.168.0.19:10099. -
Как сделать: Настройте службу WireGuard VPN (на Сервере 1 или вашем роутере) с виртуальной подсетью (например,
10.8.0.0/24). -
В настройках Webmin IP Access Control выберите Only allow from listed addresses и введите:
192.168.0.0/24 10.8.0.0/24 127.0.0.1 -
Нажмите Save. Доступ открыт только для домашней сети и ваших VPN-клиентов из любой точки мира.
-
-
Сценарий В: Доступ через Cloudflare Tunnel с авторизацией Zero Trust (Максимальный уровень).
-
Если сервер находится за NAT провайдера (нет белого IP), настройте cloudflared для публикации Webmin.
-
В панели Cloudflare Zero Trust настройте правило авторизации (Access Application): при попытке открыть веб-панель из интернета, Cloudflare сначала потребует ввести одноразовый пин-код, высылаемый на вашу личную почту, и только после этого перенаправит трафик в защищенный туннель до Webmin. IP Access Control на самом сервере при этом может оставаться в локальном режиме.
-
-
1.3. Защита от атак из локальной сети (LAN)
Вектор угрозы: компрометация одного из домашних/офисных устройств, сканирование портов SSH и Samba внутри сети.
-
Ограничение и перевод службы SSH на ключи:
-
Перейдите в Servers (Службы) $\rightarrow$ SSH Server (SSH-сервер).
-
Откройте вкладку Authentication (Аутентификация).
-
Установите параметры:
-
Allow authentication by password? (Разрешить вход по паролю?) $\rightarrow$ No (Вход будет возможен только по ранее импортированным SSH-ключам).
-
Permit login by root? (Разрешить вход root?) $\rightarrow$ No (Запрещает прямое подключение суперпользователя).
-
-
Нажмите Save.
-
Перейдите во вкладку Access Control (Контроль доступа). В полях Port (Порт) смените стандартный порт
22на альтернативный (например,2222). Нажмите Save, а затем нажмите Apply Changes (Применить изменения) в верхнем правом углу модуля.
-
-
Настройка брандмауэра (UFW через Webmin Command Shell — Сценарий А):
-
Перейдите в Tools (Инструменты) $\rightarrow$ Command Shell (Командная строка).
-
Для реализации Сценария А (Прямой доступ из интернета с защитой через 2FA и Fail2ban) выполните последовательно команды для открытия портов управления внешнему миру:
# Устанавливаем дефолтную политику: блокировать входящие, разрешить исходящие sudo ufw default deny incoming sudo ufw default allow outgoing # Открываем веб-трафик (HTTP/HTTPS) для всех sudo ufw allow 80/tcp comment 'Apache HTTP' sudo ufw allow 443/tcp comment 'Apache HTTPS' # СЦЕНАРИЙ А: Открываем порты управления для доступа из интернета (WAN/LAN) # Безопасность гарантируется сменой портов, 2FA и Fail2ban sudo ufw allow 2222/tcp comment 'SSH WAN/LAN' sudo ufw allow 10099/tcp comment 'Webmin WAN/LAN' # ВРЕМЕННЫЙ ДОСТУП К ERP OFBIZ: # Открываем порт 8443 для возможности беспрепятственно работать с ERP по внешнему IP 89.229.203.98 # ([https://89.229.203.98:8443/catalog/control/FindProduct](https://89.229.203.98:8443/catalog/control/FindProduct)) до момента настройки прокси-сервера. sudo ufw allow 8443/tcp comment 'OFBiz Temporary Direct HTTPS' # Локальные службы (Samba) по-прежнему строго изолируем внутри локальной сети 192.168.0.0/24 sudo ufw allow from 192.168.0.0/24 to any port 137 proto udp comment 'Samba NetBIOS Name LAN' sudo ufw allow from 192.168.0.0/24 to any port 138 proto udp comment 'Samba NetBIOS Datagram LAN' sudo ufw allow from 192.168.0.0/24 to any port 139 proto tcp comment 'Samba Session LAN' sudo ufw allow from 192.168.0.0/24 to any port 445 proto tcp comment 'Samba AD SMB LAN' # Перезапускаем брандмауэр для применения правил sudo ufw reload -
Нажмите кнопку Execute command (Выполнить). Теперь ваш сервер kUbuntu защищен надежным сетевым экраном, настроенным под прямой доступ из интернета.
-
1.4. Защита от аппаратных сбоев
Вектор угрозы: внезапное отключение электроэнергии (повреждение баз данных), незамеченный износ ячеек памяти системного SSD.
-
Настройка SMART-мониторинга дисков:
-
Перейдите в Hardware (Оборудование) $\rightarrow$ SMART Drive Status (Статус дисков SMART).
-
Выберите ваш системный SSD и диски внешнего «зоопарка».
-
Активируйте регулярные фоновые тесты накопителей. При выявления критических ошибок (деградации ячеек SSD или появлении битых секторов на HDD WD Passport) Webmin отправит вам уведомление на почту.
-
-
Интеграция ИБП (UPS) для безопасного выключения:
-
Подключите ИБП к серверу по USB-кабелю.
-
Перейдите в System (Система) $\rightarrow$ Software Packages (Программные пакеты). Установите пакет
apcupsdилиnut. -
Перейдите в Tools $\rightarrow$ File Manager и откройте конфигурационный файл ИБП
/etc/apcupsd/apcupsd.conf. -
Убедитесь, что параметры автовыключения настроены на безопасный предел батареи (например,
BATTERYLEVEL 15). -
Результат: При долгой аварии по питанию система сама корректно размонтирует MergerFS, завершит процессы СУБД, Tomcat и OFBiz, предотвращая порчу данных.
-
ЭТАП 2: Безопасность на уровне OpenCms (Tomcat) через Webmin
Наша цель — полностью изолировать процессы Java-приложения от операционной системы и ограничить сетевую видимость Tomcat внутренними интерфейсами.
2.1. Изоляция процессов и лишение прав root
Вектор угрозы: взлом OpenCms через веб-уязвимость (например, загрузку файлов) дает злоумышленнику права root на сервере, если Tomcat запущен некорректно.
-
Создание изолированной группы и пользователя:
-
Проще всего это сделать одной быстрой командой в Tools $\rightarrow$ Command Shell:
sudo groupadd tomcat && sudo useradd -s /usr/sbin/nologin -g tomcat -d /opt/opencms/tomcat -r tomcat -
Примечание: Использование системного шелла
/usr/sbin/nologinгарантирует, что злоумышленник не сможет залогиниться под учетной записьюtomcat.
-
-
Смена владельца файлов Tomcat через Webmin:
-
Перейдите в Tools $\rightarrow$ File Manager.
-
Найдите папку установки Tomcat (например,
/opt/opencms/tomcat/). -
Кликните правой кнопкой мыши по папке и выберите Info (или Properties / Свойства).
-
В полях Owner (Владелец) и Group (Группа) выберите созданного пользователя
tomcatи группуtomcat. -
Отметьте галочку Apply to subfolders (Применить к подпапкам / рекурсивно) и нажмите Save.
-
-
Привязка службы в Systemd:
-
В File Manager откройте файл службы
/etc/systemd/system/tomcat.service. -
Убедитесь, что в секции
[Service]прописаны строки:User=tomcat Group=tomcat -
Перейдите в System $\rightarrow$ Bootup and Shutdown (Загрузка и выключение). Выделите службу
tomcatв списке и нажмите Restart (Перезапустить).
-
2.2. Защита локальных сетевых портов
Вектор угрозы: обращение злоумышленника к Tomcat напрямую по порту 8080 в обход Reverse Proxy Apache и правил SSL.
-
Биндинг порта 8080 на 127.0.0.1:
-
В File Manager откройте файл
/opt/opencms/tomcat/conf/server.xml. -
Найдите XML-тег
<Connector port="8080"и добавьте внутрь параметрaddress="127.0.0.1":<Connector port="8080" protocol="HTTP/1.1" address="127.0.0.1" connectionTimeout="20000" redirectPort="8443" /> -
Сохраните файл. Перезапустите службу Tomcat через модуль Bootup and Shutdown.
-
Результат: Теперь порт 8080 физически закрыт для внешней сети и доступен только для локального прокси-сервера Apache.
-
2.3. Безопасность веб-интерфейса и сессий
Вектор угрозы: подбор паролей к стандартной панели управления Tomcat /manager или перехват сессионных кук администратора в локальной сети.
-
Удаление дефолтных приложений через File Manager:
-
Перейдите в папку
/opt/opencms/tomcat/webapps/. -
Выделите и безвозвратно удалите каталоги:
manager,host-manager,examples,docs.
-
-
Защита Cookies в веб-конфигурации:
-
В File Manager откройте файл
/opt/opencms/tomcat/conf/web.xml. -
Найдите блок
<session-config>и приведите его к следующему защищенному виду:<session-config> <session-timeout>30</session-timeout> <cookie-config> <http-only>true</http-only> <secure>true</secure> </cookie-config> </session-config> -
Результат: Флаг
http-onlyзапрещает JavaScript читать ваши куки авторизации (защита от XSS-атак), аsecureгарантирует передачу куки сессии только внутри зашифрованного HTTPS-соединения.
-
-
Перезапуск сервера Tomcat для применения изменений:
-
Для того чтобы новые параметры безопасности сессионных кук вступили в силу, необходимо перезапустить сервер Tomcat. Выполните это одним из следующих способов:
-
Способ А: Через Command Shell (Командная строка Webmin):
sudo systemctl restart tomcat -
Способ Б: Через графический интерфейс Webmin:
Перейдите в System (Система) $\rightarrow$ Bootup and Shutdown (Загрузка и выключение), найдите в списке службу
tomcat, установите напротив неё флажок и нажмите кнопку Restart (Перезапустить) внизу страницы.
-
-
ЭТАП 3: Безопасность на уровне Apache OFBiz и баз СУБД через Webmin
ERP-система OFBiz хранит коммерческие секреты, MRP-планы и расчеты себестоимости. Наша задача — изолировать СУБД и предотвратить перегрузку сервера при сложных расчетах.
3.1. Изоляция и защита встроенной СУБД Apache Derby
Вектор угрозы: несанкционированный локальный доступ к файлам базы данных или некорректные права доступа, позволяющие другим пользователям/службам читать или изменять критические данные.
Поскольку ваш Apache OFBiz работает на встроенной (embedded) СУБД Apache Derby, она не запускает отдельный независимый сетевой процесс и по умолчанию не слушает внешние порты (такие как 5432 или 3306). Это обеспечивает великолепную сетевую изоляцию "из коробки". Однако файлы таблиц физически лежат на диске, и их защиту необходимо организовать на уровне операционной системы.
-
Ограничение прав доступа к файлам Derby через File Manager:
-
Перейдите в Tools $\rightarrow$ File Manager.
-
Найдите папку базы данных по пути расположения вашего проекта:
/srv/Ofbiz/IG/runtime/data/derby/. -
Кликните правой кнопкой мыши по папке
derbyи выберите Info (или Permissions / Свойства). -
В полях Owner (Владелец) и Group (Группа) убедитесь, что установлена выделенная учетная запись
ofbiz:ofbiz(см. шаг создания пользователя вofbiz.service). -
В разделе прав доступа (Permissions) установите маску
0700(rwx------) для каталогов и0600(rw-------) для вложенных файлов. Это полностью заблокирует возможность чтения и копирования файлов базы данных для любых других пользователей сервера (включая пользователяtomcatот OpenCms). -
Отметьте галочку Apply to subfolders (Применить к подпапкам / рекурсивно) и нажмите Save.
-
3.2. Настройка Apache Webserver для защиты от DoS-атак на ERP
Вектор угрозы: перегрузка ERP-системы большим количеством одновременных тяжелых запросов.
-
Добавление лимитов в хост erp.in-genium.in:
-
Перейдите в Servers $\rightarrow$ Apache Webserver.
-
Найдите в списке виртуальных хостов ваш хост
erp.in-genium.inна порту 443 (HTTPS) и кликните по нему. -
Нажмите на кнопку Edit Directives (Редактировать директивы).
-
Вставьте следующие лимиты для защиты от флуда и атак типа Slowloris (требуется установленный модуль
mod_qos):# Ограничение максимального количества одновременных подключений к ERP QS_LocRequestLimitDefault 30 # Минимальная скорость передачи данных (защита от медленной атаки Slowloris) QS_SrvMinDataRate 120 -
Сохраните и нажмите Apply Changes в верхнем углу модуля Apache Webserver.
-
3.3. Аудит встроенной СУБД Derby и ротация демо-пользователей
Поскольку Apache Derby является встроенной базой данных, вы не можете администрировать её таблицы и данные напрямую через стандартные модули СУБД в Webmin (MySQL или PostgreSQL Database Server). Управление учетными записями внутри Derby выполняется через встроенную административную панель самого OFBiz — Webtools.
-
Блокировка демонстрационных аккаунтов через веб-интерфейс:
-
Перейдите по защищенному адресу вашей ERP в раздел веб-инструментов:
https://erp.in-genium.in/webtools/control/main. -
Перейдите во вкладку Entity Engine $\rightarrow$ Entity Data Maintenance (Обслуживание данных сущностей).
-
Найдите в списке сущностей (таблиц) системную сущность UserLogin (используйте поиск на странице).
-
Нажмите кнопку Find (Поиск) для вывода списка всех зарегистрированных пользователей.
-
Найдите демонстрационные системные записи (
demouser,flexadmin,company,gregory). -
Кликните на каждую запись и измените параметр Enabled на значение
N(или заполните полеdisabledDateTimeтекущим временем).💡 Внимание: Удалять записи демо-пользователей напрямую не рекомендуется, так как на них в демонстрационной базе данных могут ссылаться выполненные проводки и складские документы. Блокировка (
Enabled = N) — самый безопасный метод. -
Для учетной записи главного администратора
adminпринудительно задайте новый сложный, уникальный пароль.
-
3.4. Защита от аппаратного исчерпания ресурсов при расчете MRP
Вектор угрозы: запуск сложного расчета планирования производства в OFBiz утилизирует 100% процессора Intel N100, вызывая «зависание» сервера и падение сайта OpenCms. Мы лимитируем ресурсы OFBiz через встроенные cgroups ядра Linux.
-
Настройка лимитов службы в Systemd через Webmin:
-
Перейдите в Tools $\rightarrow$ File Manager.
-
Откройте файл службы
/etc/systemd/system/ofbiz.service. -
В секцию
[Service]добавьте параметры жесткого ограничения приоритета и использования ядер процессора:[Service] Nice=10 # Выделяем ERP-системе максимум 50% мощности вашего процессора (2 ядра из 4) CPUQuota=50% -
Сохраните файл.
-
Перейдите в Tools $\rightarrow$ Command Shell и выполните команду для перезагрузки демона systemd:
sudo systemctl daemon-reload -
Перейдите в System $\rightarrow$ Bootup and Shutdown, выберите службу
ofbizи нажмите Restart. -
Результат: Теперь, даже если OFBiz начнет выполнять тяжелейший многочасовой расчет калькуляций, ядро Linux выделит ему только 50% ресурсов процессора Intel N100, оставив остальные 50% ресурсов для моментальной отдачи страниц OpenCms внешним клиентам по адресу
in-genium.in.
-