INTEGRITY Документация

DNS-политики по расписанию

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

Существует два варианта временных DNS-политик:

Длительность действия политики

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

Чтобы задать длительность для политики DNS:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Политики трафика > Политики Firewall > DNS.
  2. Создайте новую политику DNS или выберите существующую и нажмите Изменить.
  3. В Применить длительности и расписания, включите Длительность действия политики.
  4. В Способ ввода, выберите тип продолжительности:
    • Выберите Длительность и введите время, через которое политика будет отключена.
    • Выберите Точная дата окончания и введите точную дату и время отключения политики в часовом поясе вашего аккаунта.
  5. Выберите Сохранить политику.

Если политика отключается, она остаётся отключённой, пока вы не включите её снова.

Например, можно создать политику в 12:00 и настроить ее отключение через шесть часов. Если отключить политику в 15:00, а затем снова включить в 16:00, она всё равно отключится в 18:00: ровно через шесть часов после исходного времени активации, а не через шесть часов суммарной активности.

Сбросить срок действия политики

Когда истекает время действия политики, вы можете снова включить её на изначально заданный срок. Чтобы сбросить срок действия политики, выберите её и нажмите Сбросить срок действия политики.

Для политик с точным временем окончания вы можете изменить время до того, как политика отключится. После того как политика достигнет точного времени окончания, вам нужно будет отредактировать ее и задать новое время окончания. Чтобы задать новое точное время окончания:

  1. Выберите политику.
  2. Выберите Изменить.
  3. Включите Настройте длительность политики.
  4. В Способ ввода, выберите Точная дата окончания. В Дата и время, введите новую дату и время отключения политики.
  5. Выберите Сохранить политику.

Расписание политики

С помощью Gateway можно создать новую DNS-политику с расписанием или добавить расписание к уже существующей политике.

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Политики трафика > Политики Firewall > DNS.
  2. Создайте новую политику DNS или выберите существующую и нажмите Изменить.
  3. В Применить длительности и расписания, включите Расписание политики.
  4. (Необязательно) В Часовой пояс, выберите часовой пояс, чтобы политика применялась исходя из выбранного часового пояса независимо от местоположения пользователя. По умолчанию Gateway применяет политику исходя из местного времени пользователя, выполняющего DNS-запрос.
  5. В Шаблон расписания, выберите готовое расписание или выберите Пользовательское расписание чтобы определить настраиваемое расписание. Вы можете выбрать до трёх неперекрывающихся интервалов времени по 15 минут.
  6. Выберите Сохранить политику.

Чтобы запланировать политику через API, используйте Создайте конечную точку правила Zero Trust Gateway на schedule параметр, указав нужные дни недели, время суток и, при необходимости, часовой пояс. Например:

Создайте правило Zero Trust Gateway
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"action": "block",
		"name": "Block gambling sites on weekends",
		"traffic": "any(dns.content_category[*] in {\"Gambling\"})",
		"schedule": {
				"sat": "08:00-17:00",
				"sun": "08:00-17:00",
				"timezone": "Europe/Paris"
		}
	}'

Расписание политики появится на панели управления Cloudflare в разделе Zero Trust > Политики трафика > Политики Firewall > DNS при выборе политики.

Как Gateway определяет часовой пояс

Если вы назначить часовой пояс в ваше расписание, Gateway всегда будет использовать текущее время в этом часовом поясе независимо от местонахождения пользователя. Это позволяет включать политику на определённый фиксированный период времени.

Если вы не указывайте часовой пояс, Gateway включит DNS-политику с учетом местного часового пояса пользователя. Часовой пояс пользователя определяется по геолокации IP-адреса источника. Если Gateway не может определить часовой пояс по IP-адресу источника, он использует часовой пояс дата-центра, в котором был получен запрос.

Пример: фиксированный часовой пояс

Следующая команда создаёт DNS-политику для блокировки facebook.com только по будням с 8:00 до 12:30 и с 13:30 до 17:00 по времени Чикаго (США).

Создайте правило Zero Trust Gateway
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "office-no-facebook-policy",
		"action": "block",
		"traffic": "dns.fqdn == \"facebook.com\"",
		"enabled": true,
		"schedule": {
				"time_zone": "America/Chicago",
				"mon": "08:00-12:30,13:30-17:00",
				"tue": "08:00-12:30,13:30-17:00",
				"wed": "08:00-12:30,13:30-17:00",
				"thu": "08:00-12:30,13:30-17:00",
				"fri": "08:00-12:30,13:30-17:00"
		}
	}'

См. эта таблица для списка всех идентификаторов часовых поясов.

Пример: часовой пояс пользователя

Следующая команда создаёт DNS-политику для блокировки clockin.com только по выходным в часовом поясе, в котором в данный момент находится пользователь.

Создайте правило Zero Trust Gateway
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "clock-in-policy",
		"action": "block",
		"traffic": "dns.fqdn == \"clockin.com\"",
		"enabled": true,
		"schedule": {
				"sat": "00:00-24:00",
				"sun": "00:00-24:00"
		}
	}'