База знаний
Подключиться Консультация
Получить консультацию Подключиться
Облачные сервисы
Виртуальный рабочий стол
Передовые сервисы по предоставлению сотрудникам безопасного удалённого доступа к мощным виртуальным десктопам и корпоративным ресурсам клиента с любого устройства, из любой точки мира.
Корпоративные сервисы
Удобные сервисы для обмена документами или файлами между сотрудниками компании в том числе за пределами организации, а также настройка ИТ‑инфраструктуры «под ключ» для Вашего бизнеса от экспертов облака МТС. Благодаря этим сервисам сотрудники экономят рабочее время на выполнение ежедневным рутинных задач, тем самым повышается их эффективность.
Сетевые сервисы
Мы обеспечиваем комплекс решений по построению и оптимизации сетевой инфраструктуры. Это позволит вам быстро и эффективно реализовать необходимую связность между различными сервисами с определенными параметрами качества.
Хранение и резервирование данных
Надежно и стабильно с МТС Cloud. Мы обеспечиваем хранение любых видов и объемов данных. Это позволит вам быстро и эффективно работать с данными и приложениями.
Аренда оборудования
Сервисы собственной разработки, которые помогут повысить эффективность работы ИТ‑подразделений.
Проектные решения
Партнерские сервисы
Стать партнером
Поддержка
База Знаний #CloudMTS
База знаний #CloudMTS / Cloud CDN / Медиасервисы / CDN / Раздел Безопасность

Раздел Безопасность

Политика доступа по странам

Возможно ограничить доступ к контенту для списка стран. Чтобы это сделать:

  • перейдите в раздел CDN-ресурсы
  • перейдите в настройки необходимого ресурса
  • перейдите в раздел Безопасность
  • выберите Политика доступа по странам

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

Разрешающая политика

Доступ к ресурсу разрешен всем странам, кроме указанных в поле.

imgУвеличить

Блокирующая политика

Доступ к ресурсу запрещен всем странам, кроме указанных в поле.

imgУвеличить
Политика доступа по доменам

Данная опция необходима для запрета размещения ссылок на контент на других сайтах.

  • перейдите в раздел CDN-ресурсы
  • перейдите в настройки необходимого ресурса
  • перейдите в раздел Безопасность
  • выберите Политика доступа по доменам

По умолчанию никакие ограничения доступа по доменам к ресурсу не применяются. Возможно задать разрешающую или блокирующую политику.

Разрешающая политика

imgУвеличить
  • в появившемся окне впишите для каких доменов необходимо запретить доступ

Пример

  • www.xxx.com - запретить доступ для конкретного домена
  • *.xxx.com и xxx.com -  запретить доступ всех поддоменов домена и сам домен; необходимо добавлять сам домен и дополнительно домен в формате wildcards

При доступе с введенных доменов, пользователь будет получать отказ в доступе.


Блокирующая политика

imgУвеличить
  • в появившемся окне впишите для каких доменов необходимо разрешить доступ

Пример

  • www.xxx.com - разрешить доступ для конкретного домена
  • *.xxx.com и xxx.com -  разрешить доступ всех поддоменов домена и сам домен; необходимо добавлять сам домен и дополнительно домен в формате wildcards для поддоменов

При доступе с других доменов пользователь будет получать отказ в доступе.⁠

Политика доступа по IP-адресам

Возможно ограничить доступ к контенту в CDN для определенных IP адресов.

  • перейдите в раздел CDN-ресурсы
  • перейдите в настройки необходимого ресурса
  • перейдите в раздел Безопасность
  • выберите Политика доступа по IP-адресам

По умолчанию никакие ограничения доступа по IP к ресурсу не применяются. Возможно задать разрешающую или блокирующую политику.

Опция поддерживает и IPv4, и IPv6 адреса.

Разрешающая политика

Доступ к ресурсу разрешен всем IP-адресам, кроме указанных в поле.

imgУвеличить

Блокирующая политика

Доступ к ресурсу запрещен всем IP-адресам, кроме указанных в поле.

imgУвеличить
Политика доступа по клиентским приложениям

Возможно ограничить доступ к контенту из CDN по клиентским приложениям (User Agent), например, для определенного браузера, приставки, устройства.

  • перейдите в раздел CDN-ресурсы
  • перейдите в настройки необходимого ресурса
  • перейдите в раздел Безопасность
  • выберите Политика доступа по клиентским приложениям

По умолчанию доступ к ресурсу разрешен всем клиентским приложениям. Возможно задать разрешающую или блокирующую политику.

Разрешающая политика

Доступ к ресурсу разрешен всем клиентским приложениям, кроме указанных в поле.

imgУвеличить

Блокирующая политика

Доступ к ресурсу запрещен всем клиентским приложениям, кроме указанных в поле. 

imgУвеличить
Редирект с HTTP на HTTPS

Включение редиректа трафика с HTTP на HTTPS доступно в настройках CDN-ресурса.

  • перейдите в раздел CDN-ресурсы
  • перейдите в настройки необходимого ресурса
  • перейдите в раздел Безопасность
  • включите опцию "Редирект с HTTP на HTTPS"
imgУвеличить

Чтобы настроить редирект с HTTPS на HTTP, воспользуйтесь API-документацией.

Для получения подробной информации об API-документации обратитесь в службу технической поддержки #CloudMTS по адресу support@cloud.mts.ru.


На CDN-ресурсе единовременно может быть включена только одна из опций редиректа: редирект с HTTPS на HTTP или с HTTP на HTTPS.

Secure Token

При использовании опции «Доступ по ключу» контент может быть загружен только по запросам, содержащим хеш-ключ. Опция защищает контент от нежелательных загрузок.

Временные ссылки на защищаемый контент будут иметь вид: http://cdn.example.com/photo.jpeg?md5=DMF1ucDxtHCxwYQ&expires=2147483647.

Настройки в личном кабинете

Чтобы включить Tokenized URL:

  • перейдите в раздел CDN-ресурсы
  • перейдите в настройки необходимого ресурса
  • перейдите в раздел Безопасность
  • включите опцию "Secure Token"
  • в появившемся окне введите желаемый ключ подписи
  • сохраните настройки
  • ключ должен содержать 6-32 символов
imgУвеличить

По умолчанию при генерации токена учитываются 4 параметра:

  • время истечения ссылки
  • исходная ссылка на файл
  • IP-адреса, для которых разрешен доступ к файлу
  • ключ

Возможно настроить токен таким образом, чтобы доступ к файлу был открыт для любых IP-адресов:

  • отключите опцию «Добавить IP-адрес к токену»
  • настройте токен на сервере-источнике так, чтобы параметр IP не учитывался

Настройка на сервере-источнике

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

Хеш-ключ — результат вычисления односторонней хеш-функции MD5 (String), где String — параметр, полученный слиянием следующих элементов (в указанной последовательности): <expires><path><ip> <key>

<expires>: время истечения ссылки. Указывается в формате UNIX Timestamp.

<path>: исходная ссылка на файл

<key>: ключ

<IP>: IP-адреса, для которых разрешен доступ к файлу (параметр может не учитываться).

  • чтобы сгенерировать Unix Timestamp в linux: `date +%s -d "10min"` (текущее время + 10 минут)

    • CDN-серверы проверяют каждый запрос на своей стороне; они имеют те же вводные данные (<expires><path><ip> <key>) и используют их для генерации хеш-ключа
  • если вычисленная подпись не совпала и/или срок действия истек, сервер доставки контента CDN отправляет пользователю ошибку 403 Forbidden
    • если вычисленная подпись совпала и срок действия ссылки не истек, сервер доставки контента CDN передает пользователю запрашиваемый файл

Способы генерации токена на источнике

PHP-скрипт с параметром IP
<?php
$secret = 'secret_key';
$ip = '1.2.3.4';
$path = '/live/133529_2/chunklist.m3u8';
$expires = time() + 10000;
$link = "$expires$path$ip $secret";
$md5 = md5($link, true);
$md5 = base64_encode($md5);
$md5 = strtr($md5, '+/', '-_');
$md5 = str_replace('=', '', $md5);
$url = "http://cdn.site.com{$path}?md5={$md5}&expires={$expires}";
echo $url;
echo "\n";
PHP-скрипт без параметра IP

<?php
$secret = 'secret_key';
$path = '/live/133529_2/chunklist.m3u8';
$expires = time() + 10000;
$link = "$expires$path $secret";
$md5 = md5($link, true);
$md5 = base64_encode($md5);
$md5 = strtr($md5, '+/', '-_');
$md5 = str_replace('=', '', $md5);
$url = "http://cdn.site.com{$path}?md5={$md5}&expires={$expires}";
echo $url;
echo "\n";

Где:

  • $secret — секретный ключ
  • $path — путь к файлу
  • $ip — IP-адрес, которому разрешено получить контент
  • $expires — время жизни ссылки (в секундах)
  • $link — строка для генерации токена с учетом необходимых параметров хеш-ключа
  • $url — ссылка на файл


Python-скрипт с параметром IP
import base64
from hashlib import md5
from time import time
ip = '1.2.3.4'
secret = 'secret_key'
stream_address = '133529_2'
path = f'/live/{stream_address}/playlist.m3u8'
expires = int(time()) + 100000
token = base64.encodebytes(md5(f"{expires}{path}{ip} {secret}".encode()).digest()).decode().replace("\n", "").replace("+", "-").replace("/", "_").replace("=", "")
secured_url = f"https://cdn.site.com{path}?md5={token}&expires={expires}"
print(secured_url)

Python-скрипт без параметра IP
import base64
from hashlib import md5
from time import time
secret = 'secret_key'
stream_address = '133529_2'
path = f'/live/{stream_address}/playlist.m3u8'
expires = int(time()) + 100000
token = base64.encodebytes(md5(f"{expires}{path} {secret}".encode()).digest()).decode().replace("\n", "").replace("+", "-").replace("/", "_").replace("=", "")
secured_url = f"https://cdn.site.com{path}?md5={token}&expires={expires}"
print(secured_url)

Где:

  • secret — секретный ключ
  • path — путь к файлу
  • ip — IP-адрес, которому разрешено получить контент
  • expires — время жизни ссылки (в секундах)
  • token — генерация токена
  • secured_url — ссылка на файл


Использование openssl

В результате будет получен только токен. Его необходимо использовать в ссылках и дополнительно указать время истечения ссылка в UNIX-время.

С параметром IP
 echo -n '2147483647/images/1.jpg1.2.3.4 secret_key' | openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =
'2147483647/images/1.jpg1.2.3.4 secret_key' = '{expires}{path}{ip} {secret_key}'
Без параметра IP
echo -n '2147483647/images/1.jpg secret_key' | openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =
'2147483647/images/1.jpg secret_key' = '{expires}{path} {secret_key}'

Разрешенные HTTP-методы

Возможно задать разрешенные HTTP-методы запросов к контенту в CDN. По умолчанию разрешены и доступны методы GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS.

Активируйте данную опцию, если необходимо выбрать методы, которыми разрешено обращаться к CDN-ресурсу.

  • перейдите в раздел CDN-ресурсы
  • перейдите в настройки необходимого ресурса
  • перейдите в раздел Безопасность
  • включите опцию «Разрешенные HTTP-методы»

Запросы не будут обработаны указанными в строке методами.

Каждый сервер должен поддерживать методы GET и HEAD. Если сервер не распознал указанный метод, вернется статус 501 (Not Implemented). Если серверу метод известен, но он неприменим к конкретному ресурсу, будет возвращено сообщение с кодом 405 (Method Not Allowed). 

В большинстве случаев рекомендуем оставлять оставлять методы GET, HEAD и POST.

imgУвеличить
Имя хоста, передающееся в SNI-запросах к серверу-источнику

Server Name Indication (SNI) — расширение протокола TLS, позволяющее указывать имя хоста, с которым необходимо установить соединение.

SNI необходимо для того, чтобы веб-серверы, размещённые на одном IP-адресе под разными доменами, могли корректно откликаться по HTTPS.

Опция «Изменить имя SNI-хоста» позволяет задать имя хоста, передающееся в SNI-запросах от CDN-серверов к серверу-источнику по протоколу HTTPS.

Данная опция работает только, если CDN-серверы используют протокол HTTPS для обращения к источнику. 


Опция может принимать 2 значения:

Динамическое имя SNI-хоста

Совпадает со значением опции «Изменить заголовок Host».

imgУвеличить

Пользовательское имя SNI-хоста

Задаётся вручную. Значение не может быть пустым или содержать IP адрес.

imgУвеличить

После создания ресурса опция будет автоматически активирована со значением по умолчанию «Динамическое имя SNI-хоста».