Документация DNSmanager 6
Режим фокусировки

Настройка URL панели управления

По умолчанию панель управления работает через встроенный веб-сервер — ihttpd-dns. Веб-интерфейс доступен по следующему адресу:

URL web-интерфейса. Порт 1501
https://<IP-адрес сервера>:1501/dnsmgr

Настроить URL можно так, чтобы панель управления открывалась по переходу на доменное имя. 

Есть два варианта настройки:

  • настройка ihttpd-dns;
  • настройка связки nginx + ihttpd-dns.

Настройка ihttpd-dns

Для запуска веб-сервера в DNSmanager 6 используется служба ihttpd-dns.

Если на сервере не планируется запуск сторонних веб-приложений, то изменяются порты веб-сервера на 80 и 443, например:

Файл конфигурации /opt/ispsystem/dnsmanager6/etc/ihttpd.conf
listen {
       ip 10.10.10.10
       port 443
}       
listen {
       ip 10.10.10.10
       port 80
       redirect
}
Пояснение

При такой настройке, ihttpd-dns будет принимать соединения на порты 80 и 443. При этом с порта 80 назначено перенаправление (редирект) на порт 443.

После изменения файла конфигурации требуется перезапуск сервиса:

service ihttpd-dns restart

Настройка nginx + ihttpd-dns

Для установки Nginx выполните:

Операционная системаКоманда
Ubuntu
apt-get install nginx 
AlmaLinux
dnf install nginx
AlmaLinux
firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --zone=public --permanent --add-port=443/tcp

Настройка Nginx

Добавьте в файл конфигурации nginx /etc/nginx/nginx.conf или в созданный файл /etc/nginx/conf.d следующие строки:

Файл конфигурации nginx
server {	

       listen 10.10.10.10:443 ssl;
       server_name my.domain.com;
       ssl_certificate /opt/ispsystem/dnsmanager6/etc/manager.crt;	
       ssl_certificate_key /opt/ispsystem/dnsmanager6/etc/manager.key; 	
 
       set $mgr_proxy "https://10.10.10.10:1501";         
         
       location ^~ /manimg/ { 		
              alias /opt/ispsystem/dnsmanager6/skins/; 	
       } 	
       
       location / { 		
                proxy_pass $mgr_proxy; 		
                proxy_redirect $mgr_proxy /; 		
                proxy_set_header Host $host:$server_port; 		
                proxy_set_header X-Forwarded-For $remote_addr; 		
                proxy_set_header X-Forwarded-Proto $scheme; 		
                proxy_set_header X-Real-IP $remote_addr;                
                proxy_set_header X-Forwarded-Secret mary123;  		
                chunked_transfer_encoding off; 
 	}

 	location ^~ /mancgi/ {
	        proxy_pass $mgr_proxy;
	        proxy_redirect $mgr_proxy /;
	        proxy_set_header Host $host:$server_port;
	        proxy_set_header X-Forwarded-For $remote_addr; 
                proxy_set_header X-Forwarded-Proto $scheme;
	        proxy_set_header X-Real-IP $remote_addr;
	        proxy_set_header X-Forwarded-Secret mary123;
	        chunked_transfer_encoding off;
	}
}

ForwardedSecret — в случае nginx, это набор букв и цифр, которые представляют собой ключ, используемый при проверке аутентификации по ограниченному списку IP-адресов. Требуется для защиты от несанкционированных попыток аутентификации.

Обратите внимание!

Секретная фраза, указанная в файле конфигурации nginx (директива proxy_set_header X-Forwarded-Secret) должна совпадать с фразой, указанной в файлах конфигурации панели управления (dnsmgr.conf, директива ForwardedSecret). 

При добавлении секретной фразы в файл конфигурации nginx, добавьте её и в файлы конфигурации панели управления (/opt/ispsystem/dnsmanager6/etc/dnsmgr.conf).

После редактирования конфигурационного файла панели управления, перезапустите её:

/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr exit

Чтобы панель управления открывалась через протокол https, настройте редирект. Для этого в файл конфигурации nginx добавьте строки:

Редирект на https
server {
	listen 10.10.10.10:80;
	server_name my.domain.com;
	rewrite ^(.*)$ https://$server_name$1 permanent;
	}
Пояснения

После изменения конфигурации перезапустите nginx:

service nginx restart

Настройка ihttpd-dns

Чтобы избежать циклической переадресации, в файле конфигурации ihttpd /opt/ispsystem/dnsmanager6/etc/ihttpd.conf удалите строку со значением "redirect".

SSL-сертификаты адресов

Вы можете добавить SSL-сертификаты для адресов или доменного имени панели управления. Для создания сертификатов доменных имён необходима поддержка Server Name Indication.

Server Name Indication

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

Чтобы управлять SSL-сертификатами в платформе, перейдите в раздел НастройкиАдреса панели → кнопка Сертификаты.

Добавить Let’s Encrypt сертификат

Let’s Encrypt — некоммерческий удостоверяющий центр, который предоставляет бесплатные сертификаты X.509 для TLS-шифрования. Шифрование осуществляется с помощью автоматизированного процесса. Создание, проверка, подпись, установка и обновление сертификата выполняются автоматически. Подробнее см. на официальном сайте сервиса Let’s Encrypt.

Основные ограничения Let’s Encrypt:

  • можно заказать 50 сертификатов в неделю (домен верхнего уровня (TLD), включая его поддомены);
  • срок действия Let’s Encrypt сертификата 3 месяца. Это означает, что каждые 3 месяца будет выполняться перевыпуск Let’s Encrypt сертификатов.

Существуют и другие ограничения. Подробнее в документации Let’s Encrypt.

Перед добавлением сертификата Let’s Encrypt убедитесь, что доменное имя ведёт на существующий IP-адрес платформы. При добавлении сертификата Let’s Encrypt будет выполнена проверка, что вы являетесь владельцем домена.

Чтобы добавить сертификат, перейдите в раздел НастройкиАдреса панели → кнопка Сертификаты → кнопка Добавить:

  1. Тип сертификата — способ создания SSL-сертификата. Выберите "Let`s Encrypt сертификат".
  2. Доменное имя сертификата — укажите имена доменов в сертификате.
  3. IP-адрес — выберите адрес платформы, к которому будет привязан сертификат. В списке отображаются IP-адреса, которые настроены в разделе Адреса панели.

При заказе сертификата в директории /opt/ispsystem/dnsmanager6/www/letsencrypt/.well-known/acme-challenge:

  1. Создаётся файл с токеном и данными для проверки. Сервис проверки Let’s Encrypt выполняет запрос по доменному имени и считывает этот токен.
  2. После выдачи SSL-сертификата в планировщик добавляется задание, которое проверяет необходимость продления SSL-сертификата:

    0 0 * * * "/opt/ispsystem/dnsmanager6/etc/scripts/acmesh"/acme.sh --cron --home "/opt/ispsystem/dnsmanager6/etc/scripts/acmesh" > /dev/null

При выпуске нескольких сертификатов для доменных имён третьего уровня и выше может возникнуть ошибка выпуска сертификата на большое количество поддоменов. Это ограничение Let’s Encrypt, выдача сертификатов будет продолжена спустя некоторое время (обычно в пределах суток).

Поддерживается работа совместно с веб-сервером Apache и Nginx. Если никакой веб-сервер не запущен, то запускается встроенный сервер, который будет принимать запросы от Let’s Encrypt во время проверки домена.

Добавить существующий сертификат

При добавлении существующего сертификата соответствие домена и IP-адреса не проверяется. В случае несоответствия доменного имени и IP-адреса такой сертификат в списке будет отмечен соответствующей пиктограммой.

Чтобы добавить сертификат, перейдите в раздел НастройкиАдреса панели → кнопка Сертификаты → кнопка Добавить:

  1. Тип сертификата — выберите "Существующий сертификат".
  2. Доменное имя сертификата — доменное имя, для которого будет выпущен SSL-сертификат. Поле недоступно для изменения, значение будет взято из сертификата.
  3. IP-адрес — выберите адрес платформы, к которому будет привязан SSL-сертификат. В списке отображаются IP-адреса, которые настроены в разделе НастройкиАдреса панели.
  4. SSL сертификат — укажите ваш SSL-сертификат.
  5. Ключ SSL сертификата — укажите ключ вашего SSL-сертификата.
  6. Цепочка SSL-сертификатов — укажите цепочку SSL-сертификатов, которая будет добавлена в файл сертификата.

Настроить сертификат для нескольких портов

Let's Encrypt выпускает сертификат только на домен, а не на порт. Если вам нужно для каждого порта указать отдельный домен, вы можете использовать для этого отдельные сертификаты.

Чтобы прописать сертификат на несколько портов:

  1. Добавьте секции для нужных портов в конфигурационный файл /opt/ispsystem/dnsmanager6/etc/ihttpd.conf:

    listen {
            ip <IP-адрес>
            redirect
            sni {
                    domain_cert etc/manager.crt
                    domain_key etc/manager.key
                    domains dns.example.ru
            }
    }
    
    listen {
            ip <IP-адрес>
            port 443
            redirect
    
            sni {
                    domain_cert etc/manager.crt
                    domain_key etc/manager.key
                    domains dns.example.ru
            }        
    }
    Пояснение
  2. Перезапустите ihttpd:

    systemctl restart ihttpd
  3. Перезапустите DNSmanager:

    /opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -R

Удалить сертификат адреса панели

Чтобы удалить SSL-сертификат, выберите его в списке и нажмите кнопку Удалить. Для доступа по IP-адресу будет использоваться самоподписанный сертификат по умолчанию.