Встроенный веб-сервер при распространении продуктов на базе COREmanager 5 поставляется в варианте автоматической настройки.
Автоматическая настройка встроенного веб-сервера
В данном варианте настройки встроенный веб-свервер начинает автоматическое прослушивание порта 1500 на основном IP-адресе сервера по каждому доступному протоколу (IPv4 и IPv6).
Возможности конфигурирования встроенного веб-сервера
Вы можете настроить встроенный веб-сервер на прослушивание необходимых IP-адресов и портов с помощью командной строки при запуске, а также с помощью конфигурационного файла.
Если настройки определенны в конфигурационном файле, параметры конфигурации, указанные в командной строке, будут проигнорированы.
Настройка с помощью командной строки при запуске
При запуске встроенного веб-сервера есть возможность указать конкретный IP-адрес и порт прослушивания. Подробнее об этой функции Вы можете узнать, запустив встроенный веб-сервер с ключом -h
(справка о работе с программой).
Настройка с помощью конфигурационного файла
Путь по умолчанию: /usr/local/mgr5
Для более гибкого конфигурирования встроенного веб-сервера используется файл etc/ihttpd.conf директории установленного продукта на базе COREmanager 5.
Прослушиваемые IP-адреса настраиваются с помощью секции listen
данного файла. Секция имеет следующий формат:
listen {
ip <IP-адрес прослушивания>
port <порт прослушивания>
certkey <путь к файлу ключа SSL-сертификата>
cert <путь к файлу SSL-сертификата>
redirect
status <секретный url>
nochunked
allow_ip <URL> <IP|IP/маска|IP-IP>
deny_ip <URL> <IP|IP/маска|IP-IP>
allow_origin <URL>
ssl_cipher <Режим работы>:<дополнительные ключевые слова>
timeout <время_в_сек>
}
- IP-адрес является обязательным параметром. Остальные параметры являются необязательными;
- Если не указан параметр
port
, прослушиваться будет порт встроенного веб-сервера по умолчанию (1500); - Параметры
certkey
иcert
должны быть указаны вместе. Указание только одного из этих параметров является ошибкой конфигурирования; - Если параметры путей SSL-сертификатов не указаны, встроенный веб-сервер будет использовать автоматически созданный им при запуске самоподписанный SSL-сертификат;
- Если присутствует параметр
redirect
, пользователям будет запрещено использовать HTTP соединение для работы с панелью. Все HTTP запросы будут автоматически пересылаться на аналогичный URL с использованием протокола HTTPS. (не рекомендуется использовать эту опцию с VMmanager 5 и DCImanager 5, так как это может помешать работе установщиков ОС). При пакетной установке параметрredirect
прописан по умолчанию, кроме панелей VMmanager 5 и DCImanager 5; - Если присутствует параметр
status
, при обращении по указанному URL встроенный веб-сервер будет отдавать страницу с состоянием (где будет отображено, в частности, количество активных соединений). По умолчанию данная функциональность отключена; - Если присутствует параметр nochunked встроенный веб-сервер будет добавлять во все ответы заголовок Connection: close. Это заставит клиентов использовать для каждого нового запроса новое соединение. Данный параметр добавлен для интеграции встроенного веб-сервера с nginx;
- Параметры
allow_ip
илиdeny_ip
позволяют разрешить или запретить доступ к определенным URL. URL не должен содержать домена и порта — только путь после порта, например mancgi/dbadmin. Правила обрабатываются в порядке их следования. Если есть противоречивые правила, верхнее отработает первым. Если есть разрешающее правило, то для указанного url все ip, не попадающие в правило, считаются запрещенными; - ssl_cipher — параметр для настройки шифрования SSL-соединений. Формат строки соответствует параметру
priorities
функцииgnutls_priority_init
. Например,NORMAL:-AES-128-CBC
. Значение по умолчанию:NORMAL:-VERS-SSL3.0
. - timeout — максимальное время неактивности сессии. Значение по умолчанию — 600 сек.
Для DCImanager 5 реализован Модуль "Проксирование IPMI через ihttpd" . В связи с этим добавлена новая секция — ipmiproxy
:
ipmiproxy {
ipmiproxy_startport <Начальный порт диапазона>
ipmiproxy_endport <Конечный порт диапазона>
}
- Начальный порт диапазона — начало диапазона портов, которые используют проксирование при открытии JAVA-консоли пользователем. По умолчанию — "49000". Поле доступно с версии 5.157;
- Конечный порт диапазона — конец диапазона портов, которые используют проксирование при открытии JAVA-консоли пользователем. По умолчанию — "50000". Поле доступно с версии 5.157.
Примеры конфигурации:
Встроенный веб-сервер будет прослушивать все доступные IPv4-адреса используя порт по умолчанию ("*" идентично "0.0.0.0"):
listen {
ip *
}
Встроенный веб-сервер будет прослушивать IPv4-адрес 5.6.7.8:
listen {
ip 5.6.7.8
}
Встроенный веб-сервер будет прослушивать IPv4-адрес 5.6.7.8 используя порт 1700:
listen {
ip 5.6.7.8
port 1700
}
Встроенный веб-сервер будет прослушивать IPv4-адрес 5.6.7.8 используя порт 1700 и файл SSL-сертификата etc/my.crt с ключом etc/my.key для SSL-запросов (https):
listen {
ip 5.6.7.8
port 1700
certkey etc/my.key
cert etc/my.crt
}
Встроенный веб-сервер будет прослушивать все доступные IPv6-адреса используя порт по умолчанию:
listen {
ip ::
}
Встроенный веб-сервер будет прослушивать IPv6-адрес 2001:db8::ae21:ad12
используя порт 1800:
listen {
ip 2001:db8::ae21:ad12
port 1800
}
Для клиента с адресом 5.6.7.8/24 разрешен доступ к 1.2.3.4/billmgr, для всех остальных /billmgr — запрещён:
listen {
ip 1.2.3.4
allow_ip billmgr 5.6.7.8/24
}
Для клиентов с адресом из диапазона 5.6.7.8-5.6.7.88 запрещен доступ к 1.2.3.4/billmgr, для всех остальных /billmgr — разрешен.
listen {
ip 1.2.3.4
deny_ip billmgr 5.6.7.8-5.6.7.88
}
После изменений файла конфигурации ihttpd, сервис необходимо перезапустить
На Debian 7:
/etc/init.d/ihttpd restart
CentOS 7, Debian 8:
systemctl restart ihttpd
Индексная страница
По умолчанию по адресу <ip-адрес сервера>:1500 открывается COREmanager. Такое поведение можно изменить путем создания файла index в директории /usr/local/mgr5/bin/ с содержимым <короткое имя панели>
Например, чтобы открывался по умолчанию BILLmanager, создаем файл с содержимым billmgr
:
#cat /usr/local/mgr5/bin/index
billmgr
Перезапускаем COREmanager:
killall core
Технические подробности
Открытое соединение остается активным в течение часа.
Ограничения заголовков безопасности
Встроенный веб-сервер ihttpd не позволяет модифицировать заголовок X-Frame-Options
, в ответе всегда будет приходить X-Frame-Options: SAMEORIGIN
.