Top-office11.ru

IT и мир ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Создание vpn туннеля

Настройка туннелей VPN-устройств в Windows 10 Configure VPN device tunnels in Windows 10

Область применения: Windows 10 версии 1709 Applies to: Windows 10 version 1709

Always On VPN предоставляет возможность создания выделенного профиля VPN для устройства или компьютера. Always On VPN gives you the ability to create a dedicated VPN profile for device or machine. Always On VPN-подключения включают два типа туннелей: Always On VPN connections include two types of tunnels:

Туннель устройства подключается к указанным VPN-серверам, прежде чем пользователи смогут войти на устройство. Device tunnel connects to specified VPN servers before users log on to the device. Сценарии подключения до входа в систему и в целях управления устройствами используют туннель устройства. Pre-login connectivity scenarios and device management purposes use device tunnel.

Туннель пользователя подключается только после входа пользователя на устройство. User tunnel connects only after a user logs on to the device. Пользовательский туннель позволяет пользователям получать доступ к ресурсам Организации через VPN-серверы. User tunnel allows users to access organization resources through VPN servers.

В отличие от пользовательского туннеля, которое подключается только после входа пользователя на устройство или компьютер, туннель устройства позволяет VPN устанавливать подключение до входа пользователя в систему. Unlike user tunnel, which only connects after a user logs on to the device or machine, device tunnel allows the VPN to establish connectivity before the user logs on. Туннель туннеля устройства и пользователь взаимодействуют независимо с их профилями VPN. они могут быть подключены одновременно и могут использовать разные методы проверки подлинности и другие параметры конфигурации VPN. Both device tunnel and user tunnel operate independently with their VPN profiles, can be connected at the same time, and can use different authentication methods and other VPN configuration settings as appropriate. Туннель пользователя поддерживает протоколы SSTP и IKEv2, а туннель устройства поддерживает IKEv2 только без поддержки отката SSTP. User tunnel supports SSTP and IKEv2, and device tunnel supports IKEv2 only with no support for SSTP fallback.

Пользовательский туннель поддерживается на устройствах, присоединенных к домену, не присоединенных к домену (Рабочей группе) или в составе устройств, присоединенных к Azure AD, чтобы разрешить сценарии как для предприятия, так и для BYOD. User tunnel is supported on domain-joined, nondomain-joined (workgroup), or Azure AD–joined devices to allow for both enterprise and BYOD scenarios. Он доступен во всех выпусках Windows, а функции платформы доступны третьим сторонам посредством поддержки подключаемого модуля VPN UWP. It is available in all Windows editions, and the platform features are available to third parties by way of UWP VPN plug-in support.

Туннель устройства можно настроить только на устройствах, присоединенных к домену, под управлением Windows 10 Корпоративная или для образовательных версий 1709 или более поздней версии. Device tunnel can only be configured on domain-joined devices running Windows 10 Enterprise or Education version 1709 or later. Сторонние средства управления туннелем устройства не поддерживаются. There is no support for third-party control of the device tunnel.

Требования и функции туннеля для устройства Device Tunnel Requirements and Features

Необходимо включить проверку подлинности сертификата компьютера для VPN-подключений и определить корневой центр сертификации для проверки подлинности входящих VPN-подключений. You must enable machine certificate authentication for VPN connections and define a root certification authority for authenticating incoming VPN connections.

Конфигурация туннеля VPN-устройства VPN Device Tunnel Configuration

Приведенный ниже пример XML-кода профиля предоставляет хорошее руководство для сценариев, в которых для туннеля устройства требуются только инициированные клиентом опросы. The sample profile XML below provides good guidance for scenarios where only client initiated pulls are required over the device tunnel. Фильтры трафика используются, чтобы ограничить туннель устройства только трафиком управления. Traffic filters are leveraged to restrict the device tunnel to management traffic only. Эта конфигурация хорошо подходит для Центр обновления Windows, типичных групповая политика (GP) и Microsoft Endpoint Configuration Manager обновления, а также VPN-подключения для первого входа без кэшированных учетных данных или сценариев сброса пароля. This configuration works well for Windows Update, typical Group Policy (GP) and Microsoft Endpoint Configuration Manager update scenarios, as well as VPN connectivity for first logon without cached credentials, or password reset scenarios.

Для инициированных сервером вариантов push-уведомлений, таких как служба удаленного управления Windows (WinRM), Remote GPUpdate и Remote Configuration Manager Update, необходимо разрешить входящий трафик в туннеле устройства, чтобы не использовать фильтры трафика. For server-initiated push cases, like Windows Remote Management (WinRM), Remote GPUpdate, and remote Configuration Manager update scenarios – you must allow inbound traffic on the device tunnel, so traffic filters cannot be used. Если в профиле туннеля устройства вы включите фильтры трафика, то туннель устройства отклоняет входящий трафик. If in the device tunnel profile you turn on traffic filters, then the Device Tunnel denies inbound traffic. Это ограничение будет удалено в будущих выпусках. This limitation is going to be removed in future releases.

Пример VPN-Профилексмл Sample VPN profileXML

Ниже приведен пример VPN-Профилексмл. Following is the sample VPN profileXML.

В зависимости от потребностей каждого конкретного сценария развертывания другой компонент VPN, который можно настроить с помощью туннеля устройства, — это Обнаружение доверенных сетей. Depending on the needs of each particular deployment scenario, another VPN feature that can be configured with the device tunnel is Trusted Network Detection.

Развертывание и тестирование Deployment and Testing

Туннели устройств можно настроить с помощью сценария Windows PowerShell и моста инструментарий управления Windows (WMI) (WMI). You can configure device tunnels by using a Windows PowerShell script and using the Windows Management Instrumentation (WMI) bridge. Туннель VPN-устройства Always On должен быть настроен в контексте локальной системной учетной записи. The Always On VPN device tunnel must be configured in the context of the LOCAL SYSTEM account. Для этого потребуется использовать PsExec, один из комплекта PsTools , входящий в комплект служебных программ Sysinternals Suite. To accomplish this, it will be necessary to use PsExec, one of the PsTools included in the Sysinternals suite of utilities.

Читать еще:  Acer безопасный режим

Рекомендации по развертыванию для каждого устройства (.Device) и для каждого пользователя (.User) профиле см. в статье Использование сценариев PowerShell с поставщиком моста WMI. For guidelines on how to deploy a per device (.Device) vs. a per user (.User) profile, see Using PowerShell scripting with the WMI Bridge Provider.

Выполните следующую команду Windows PowerShell, чтобы убедиться, что профиль устройства успешно развернут. Run the following Windows PowerShell command to verify that you have successfully deployed a device profile:

В выходных данных отображается список профилей устройств,-широкие VPN-профили, развернутые на устройстве. The output displays a list of the device-wide VPN profiles that are deployed on the device.

Пример сценария Windows PowerShell Example Windows PowerShell Script

Для создания собственного скрипта для создания профиля можно использовать следующий сценарий Windows PowerShell. You can use the following Windows PowerShell script to assist in creating your own script for profile creation.

Дополнительные ресурсы Additional Resources

Ниже приведены дополнительные ресурсы для помощи при развертывании VPN. The following are additional resources to assist with your VPN deployment.

Ресурсы конфигурации VPN-клиента VPN client configuration resources

Ниже приведены ресурсы конфигурации VPN-клиента. The following are VPN client configuration resources.

Ресурсы шлюза сервера удаленного доступа Remote Access Server Gateway resources

Ниже приведены ресурсы шлюза сервера удаленного доступа (RAS). The following are Remote Access Server (RAS) Gateway resources.

При использовании туннеля устройства с шлюзом Microsoft RAS необходимо настроить сервер RRAS для поддержки проверки подлинности сертификата компьютера по протоколу IKEv2, включив параметр Разрешить проверку подлинности на основе сертификата компьютера для проверки подлинности IKEv2, как описано здесь. When using Device Tunnel with a Microsoft RAS gateway, you will need to configure the RRAS server to support IKEv2 machine certificate authentication by enabling the Allow machine certificate authentication for IKEv2 authentication method as described here. После включения этого параметра настоятельно рекомендуется использовать командлет PowerShell Set-впнауспротокол вместе с необязательным параметром рутцертификатенаметоакцепт , чтобы убедиться, что подключения RRAS по протоколу IKEv2 разрешены только для сертификатов VPN-клиентов, которые связаны с явно определенным внутренним или частным корневым центром сертификации. Once this setting is enabled, it is strongly recommended that the Set-VpnAuthProtocol PowerShell cmdlet, along with the RootCertificateNameToAccept optional parameter, is used to ensure that RRAS IKEv2 connections are only permitted for VPN client certificates that chain to an explicitly defined internal/private Root Certification Authority. Кроме того, необходимо внести изменения в хранилище доверенных корневых центров сертификации на сервере RRAS, чтобы убедиться, что он не содержит общедоступных центров сертификации, как описано здесь. Alternatively, the Trusted Root Certification Authorities store on the RRAS server should be amended to ensure that it does not contain public certification authorities as discussed here. Аналогичные методы также могут быть рассмотрены для других VPN-шлюзов. Similar methods may also need to be considered for other VPN gateways.

Создание туннеля IPSec VPN

В сценарии рассматривается настройка IPSec-инстанса для передачи трафика от виртуальных машин Яндекс.Облака в туннель IPSec VPN с использованием демона strongSwan.

В примере туннель настраивается между двумя VPN-шлюзами. Для тестирования работы VPN-туннеля вам потребуется настроить шлюзы на обеих сторонах туннеля. Для этого можно воспользоваться другой сетью в Яндекс.Облаке или вашей локальной сетью.

Чтобы настроить VPN-туннель:

Если IPSec-инстанс больше не нужен, удалите его.

Подготовьте облако к работе

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

  1. Перейдите в консоль управления, затем войдите в Яндекс.Облако или зарегистрируйтесь, если вы еще не зарегистрированы.
  2. На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE . Если платежного аккаунта нет, создайте его.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша виртуальная машина, на странице облака.

Необходимые платные ресурсы

В стоимость поддержки инфраструктуры IPSec VPN входят:

  • плата за постоянно запущенные виртуальные машины (см. тарифы Yandex Compute Cloud);
  • плата за использование динамического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud).

Создайте сети и подсети

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

Создайте IPSec-инстанс

Создайте в Облаке виртуальную машину, которая будет служить шлюзом для IPSec-туннеля.

Откройте ваш каталог и нажмите кнопку Создать ресурс. Выберите пункт Виртуальная машина.

Укажите имя виртуальной машины, например ipsec-instance .

Выберите зону доступности, где находится подсеть, к которой будет подключен IPSec-инстанс, и где уже находится тестовая ВМ.

В блоке Публичные образы нажмите кнопку Выбрать и выберите образ IPSec-инстанс.

В блоке Сетевые настройки выберите требуемую сеть, подсеть и назначьте ВМ публичный IP-адрес из списка или автоматически.

Используйте только статические публичные IP-адреса из списка, или сделайте IP-адрес созданной машины статическим. Динамический IP-адрес может измениться после перезагрузки ВМ и туннель перестанет работать.

В поле Доступ укажите логин и SSH-ключ для доступа к ВМ.

Нажмите кнопку Создать ВМ.

Настройте IPSec

Настройте шлюз с публичным IP-адресом и подсетью, который будет устанавливать IPSec-соединение с удаленным шлюзом.

В примере ниже публичный IP-адрес шлюза будет 130.193.32.25 . За шлюзом будет находиться подсеть 10.128.0.0/24 . Этот шлюз будет устанавливать IPSec-соединение с удаленным шлюзом с IP-адресом 1.1.1.1 , за которым находится подсеть 192.168.0.0/24 .

Читать еще:  Как войти в безопасный режим android

Подключитесь к виртуальной машине по SSH:

Откройте конфигурацию IPSec:

Приведите раздел config setup к следующему виду:

Задайте следующие параметры тестового соединения:

  • leftid — публичный IP-адрес IPSec-инстанса.
  • leftsubnet — CIDR подсети, к которой подключен IPSec-инстанс.
  • right — укажите публичный IP-адрес шлюза на другом конце VPN-туннеля.
  • rightsubnet — укажите CIDR подсети, к которой подключен VPN-шлюз на другом конце VPN-туннеля.
  • В параметрах ike и esp укажите алгоритмы шифрования, которые поддерживаются на удаленном шлюзе. Списки поддерживаемых алгоритмов шифрования см. на сайте strongSwan: IKEv1 и IKEv2.
  • Остальные настройки укажите, консультируясь с документацией strongSwan и учитывая настройки удаленного шлюза.

Сохраните изменения и закройте файл.

Должна получиться конфигурация вида:

Откройте файл /etc/ipsec.secrets и укажите в нем пароль для установки соединения:

3. Настройте статическую маршрутизацию

Настройте маршрутизацию между IPSec-инстансом и заранее созданной виртуальной машиной без публичного IP-адреса.

Создайте таблицу маршрутизации и добавьте в нее статические маршруты:

Откройте раздел Virtual Private Cloud в каталоге, где требуется создать статический маршрут.

Выберите сеть, в которой требуется создать таблицу маршрутизации.

Нажмите кнопку Создать таблицу маршрутизации.

Задайте имя таблицы маршрутизации.

  • Длина — от 3 до 63 символов.
  • Может содержать строчные буквы латинского алфавита, цифры и дефисы.
  • Первый символ — буква. Последний символ — не дефис.

Нажмите кнопку Добавить маршрут.

В открывшемся окне введите префикс подсети назначения на удаленной стороне, в примере это 192.168.0.0/24 .

В поле Next hop укажите внутренний IP-адрес IPSec-шлюза. Нажмите кнопку Добавить.

Нажмите кнопку Создать таблицу маршрутизации.

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

  1. В строке нужной подсети нажмите кнопку .
  2. В открывшемся меню выберите пункт Привязать таблицу маршрутизации.
  3. В открывшемся окне выберите созданную таблицу в списке.
  4. Нажмите кнопку Привязать.

Созданный маршрут можно применять и к другим подсетям в той же сети.

4. Настройте IPSec на другом шлюзе

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

ВПН туннель

Перед тем, как объяснить, что такое VPN-туннель, следует вспомнить, что такое виртуальная сеть. VPN или виртуальная частная сеть – это технология, позволяющая создать одно или несколько соединений поверх другой сети. При подключении к VPN, создается «виртуальная» сеть между устройством пользователя и сервером ВПН, с зашифрованным соединением. Запрос в зашифрованном виде направляется от пользователя, через защищенный канал связи, именуемый ВПН–туннелем, на сервер ВПН. Оттуда запрос перенаправляется по назначению – в интернет или к другому серверу.

Безопасность

Если используется обыкновенное подключение к сети, трафик передается от пользователя напрямую интернет провайдеру. Информация передается в открытом виде, и третьи лица могут получить к ней доступ. Туннелирование позволяет создать защищенный канал, по которому информация передается в зашифрованном виде на сервер, а ключи шифрования есть только у пользователя и сервера. Получить доступ к информации пользователя можно, лишь имея физический доступ к серверу в момент подключения. Большинство крупных провайдеров VPN услуг никогда не сохраняют логи, а физический доступ к их серверам практически исключен. Хотя трафик расшифровывается на сервере, определить конкретного пользователя, который делал этот запрос невозможно – к ВПН подключаются одновременно сотни хостов.

Методы шифрования в туннелях

ВПН туннель – это своеобразный защищенный мост между устройством пользователя и сервером, где данные шифруются при помощи надежных 256-битных алгоритмов. Некоторые сервисы используют 128 битные AES. Даже такие ключи взломать невозможно – используя метод грубого перебора (брутфорса) это заняло бы миллионы лет.

Типы протоколов в VPN туннелях

Самый распространенный среди ВПН сервисов протокол передачи данных в ВПН сетях — OpenVPN. Он использует стандартные TCP и UDP запросы, что позволяет скрыть использование VPN подключения. Пакеты данных шифруются 256-битным шифрованием, а для его работы нужно только соответствующее клиентское приложение. PPTP – самый простой программный протокол. Используется для установления связи типа точка-точка. Для авторизации использует пароль. Шифрование отсутствует, его область применения — настройка соединений программными средствами операционных систем L2TP, IPSec. L2tp это более совершенная версия PPTP, но шифрование у протокола по-прежнему отсутствует. L2TP используется в связке с IPSec – протоколом, шифрующим пакеты данных и обеспечивающим безопасность. Главный недостаток IPsec – сложная настройка клиентских приложений. PPTP или IPSec гораздо менее стабильные протоколы, чем OpenVPN. Хотя для настройки виртуальной сети через PPTP не требуется никаких дополнительных программ, PPTP требует поддержки GRE47, из-за чего может нестабильно работать под сетевым экраном (NAT) и требовать долгих настроек.

Как установить и настроить VPN туннель

Туннелирование VPN может использоваться для объединения двух локальных сетей, к примеру внутренних сетей двух филиалов одной организации для безопасного обмена информацией. Сделать VPN туннель можно как при помощи стороннего ПО, вроде программы OpenVPN, так и при помощи встроенных средств ОС.

Создание ВПН туннеля

Самой простой задачей, для которой может потребоваться VPN туннели – получение доступа к домашнему ПК из любой точки мира. Нередки ситуации, когда человек уезжает в командировку в страну, в которой доступ к соцсетям или любимым ресурсам заблокирован. Чтобы не платить деньги ВПН-провайдерам, достаточно настроить vpn туннель между мобильным устройством и домашним ПК. Собственный VPN туннель будет совершенно бесплатным. Доступ к сайтам восстановится, а скорость работы будет всегда большой, ведь к домашнему ПК подключается только один пользователь.

Порядок настройки

В первую очередь, необходимо обеспечить статический ip-адрес для ПК, к которому планируется подключаться.

  1. OpenVPN GUI можно бесплатно скачать по ссылке — https://openvpn.net/community-downloads/
  2. Необходимо выполнить генерацию ключей. Делается это с помощью easy-rsa, скачать программу можно тут: https://github.com/OpenVPN/easy-rsa
  3. Генерация ключей происходит при помощи командной строки. Для корректной работы должны быть созданы следующие ключи:
  • Ключ, сертификат ca.crt, ca.key
  • Ключ, сертификат сервера server.crt server.key.
  • Ключ, сертификат клиента cl1.crt cl1.key
  • Параметры DiffieHellman dh1024.pem.
  • Ключ TLS для аутентификации пакетов ta.key
  1. После этого создаются файлы конфигурации клиента (.ovpn), где указываются ip адрес с местоположением ключей.
  2. Последним шагом настраиваются брандмауэр и маршрутизация.
Читать еще:  Защита с использованием пароля

При помощи мобильного приложения OpenVPN Connect и файла конфигурации, можно подключиться по защищенному ВПН туннелю к домашнему ПК из любой точки мира.

Прямой VPN-туннель между двумя компьютерами находящимися за NAT провайдеров с использованием UDP hole punching

Введение

Теория

Я давно задумался о решении по организации канала передачи данных непосредственно от узла к узлу, которые находятся за NATом провайдеров, без использования серверов-посредников. Перебрав некоторое количество статей о различных технологиях типа GRE-туннелей, IPsec, UDP Hole Punching, OpenVPN и прочего, я понял, что узлы должны пробивать соединение навстречу друг другу, то есть посылать пакеты на IP и порт удаленного узла. Поставил несколько опытов по организации GRE-туннеля через NAT, передачу сообщения при помощи NetCat навстречу друг другу, иногда это работало, иногда нет, всё зависело от типа используемого провайдером NAT. Не так давно попалась на глаза интересная статья, в которой было описание организации работы OpenVPN соединения между двумя компьютерами (далее узлами). Я прочитал, проверил и заработало, но при условии, что локальный порт узла и внешний порт будут совпадать, то есть мой провайдер будет использовать Cone NAT. Мне же стало интересно организовать туннель между двумя компьютерами при условии, что оба будут находятся за любым типом (Cone или Symmetric) NAT, то есть локальный порт может не совпадать с внешним портом. Задача уперлась в невозможность определения текущего порта внешнего интерфейса без внешней помощи. Если внешний IP-адрес хоть как-то можно узнать (например: curl ifconfig.me), а вот с определением текущего внешнего порта возникла трудность.

Практика

Для решения этой задачи пришлось использовать VPS (S-синий овал), на нем я поднял скрипт который выполнял роль «Соединителя», что-то типа STUN-сервера: при помощи утилиты TCPDump получал UDP-пакет (далее везде используется UDP протокол) на определенный интерфейс и порт, парсил содержимое пакета, определял IP-адрес/порт источника и отвечал утилитой NetCat возвращая текущие параметры (IP-адрес и порт) соединения, а так же параметры (IP-адрес и порт) удаленного узла к которому нужно подключиться, если эти данные были доступны, иначе ждал пока они не появятся. Все это дело сопоставлялось с идентификатором (ID) соединения, так как несколько соединений могли мешать друг другу, при использовании ID все решалось. Также была проблема того, что узел получал свои же старые данные и пытался по ним подключиться и это решилось с помощью хеша Hostname.

На узлах A и B я использовал скрипт и сгенерированный заранее ключ для авторизации VPN-соединения, работало это так: запускался скрипт, случайно выбирался локальный порт в диапазоне от 20000 до 65000 и с этого порта отправлялся пакет на VPS, который содержал в себе >
Схема прямого VPN-туннеля и передачи данных между узлами, без участия сервера
Внимание: скрипты написаны и проверены на ОС Ubuntu 18.04 и Debian 9

Запускается автоматически строкой в /etc/rc.local

где 13013 — это порт который нужно слушать, /var/log/connector2.log — лог.

Скрипт на узлах: # cat vpn7.sh

Скопировать скрипт в буфер и вставить в тектовый редактор, например:

Сделать скрипт исполняемым:

Для первого запуска сгенерируем ключ авторизации secret.key, на удаленной стороне генерировать не надо, нужно скопировать его:

Запустим скрипт, например так:

Ключ 517vA0051smB4dE сгенерировал на strongpasswordgenerator.com

Запускается автоматически строкой в /etc/rc.local

где >
Если все настроено правильно, то будет работать как часы: включил и через пару минут у тебя есть связь с удаленным узлом. В скриптах используются бесконечные циклы и временные задержки, то есть скрипт работает пока включен узел и при потере связи будет пытаться восстановить её. Скрипты не идеальные но, сам факт того что эта технология работает дает мне массу новых идей, например:

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

Приемущества:

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

Недостатки:

  • главный недостаток это использования VPS как источника данных для соединения, но я думаю над этим
  • некоторые провайдеры блокируют трафик между другими провайдерами (замечено у сотовых операторов)
  • при использовании с обоих сторон одного провадера может не сработать, зависит от типа NAT
  • при использовании провадером «жесткого» NAT может не сработать

В планах дальнейшее развитие скрипта до какой-нибудь системы, минимизировать время ожидания ответов, прикрутить шифрование передаваемых данных, адаптировать его к ОС Windows и Android, научить работать через Proxy и тому подобное.

Думаю на фоне дефицита белых IPv4 адресов моё решение будет актуально, ровно до тех пор, пока в каждый дом не придет IPv6.

Обновлено 11.12.2019, добавлено:

  • команда активации защиты от подмены адресов, уязвимость CVE-2019-14899
  • команды завершающие зависшие процессы NC, ускоряется процесс установки соединения
  • внутренние IP-адреса генерируются при первом запуске и их составляющие хранятся в vpn.cfg

Другая моя реализация VPN-туннеля, без использования VPS, с использованием STUN и Яндекс.Диска опубликована тут

Ссылка на основную публикацию
Adblock
detector
×
×