Последние штрихи
Мы уже получили полностью рабочий и вполне гиковский десктоп, но можно пойти еще немного дальше и сделать жизнь чуть более комфортной. Начнем с внешнего вида графического софта. По умолчанию он выглядит скверно, но стандартную тему очень легко сменить с помощью приложения gtk-theme-switch2:
Просто запусти приложение, выбери нужную тему и нажми кнопку Apply. Так ты изменишь графическое оформление приложений, написанных с помощью тулкита GTK+ (LilyTerm, GIMP), но Qt-приложения (например, qBittorrent) останутся страшными, а Java-софт в своем стандартном виде вообще отвратителен.
gtk-theme-switch2
Это тоже можно исправить — просто добавь эти строки в , и после следующего логина все приложения будут выглядеть одинаково:
Кроме того, нам неплохо бы поберечь глаза и вообще сделать работу за компом в вечернее время более комфортной. Тут может помочь приложение для автоматической цветовой калибровки экрана. На эту роль отлично подходит redshift (аналог f.lux для Windows и macOS). Он регулирует цветовую температуру экрана, вечером делая изображение более желтым, что благоприятно сказывается на комфорте чтения с экрана и снижает напряжение глаз.
Как обычно, добавляем в :
Софт
- surf — минималистичный браузер на базе WebKit;
- zathura — простой, удобный и очень быстрый PDF/DJVU-ридер;
- worker — простой, быстрый и очень функциональный двухпанельный файловый менеджер;
- vim — редактор, тут все просто: либо ты его любишь, либо ненавидишь;
- mpv — консольный медиаплеер, способный переварить буквально все;
- moc — консольный аудиопроигрыватель, функциональность и ничего лишнего;
- rtorrent — надежный консольный torrent-клиент.
Включение перенаправления портов на маршрутизаторе
Перенаправление портов просто сопоставляет порт для IP-адреса маршрутизатора (вашего общедоступного IP-адреса) с портом и IP-адресом компьютера, к которому необходимо получить доступ.
Конкретная последовательность действий для включения перенаправления портов зависит от маршрутизатора, который вы используете, поэтому необходимо найти в Интернете инструкции для своего маршрутизатора. Общие сведения об этих действиях см. на странице wikiHow How to Set Up Port Forwarding on a Router (Как настроить перенаправление портов на маршрутизаторе).
Прежде чем сопоставить порт, потребуется следующее.
-
Найдите его, выбрав Параметры > Сеть и Интернет > Состояние > Просмотр свойств сети. Найдите конфигурацию сети с состоянием «Работает» и получите IPv4-адрес.
-
Общедоступный IP-адрес (IP-адрес маршрутизатора). Существует много способов узнать его. Можно выполнить поиск «my IP» (в Bing или Google) или просмотреть свойства сети Wi-Fi (для Windows 10).
-
Номер сопоставляемого порта. В большинстве случаев это 3389 — порт по умолчанию, используемый подключениями к удаленному рабочему столу.
-
Административный доступ к маршрутизатору.
Предупреждение
Вы открываете доступ к компьютеру из Интернета, что не рекомендуется. Если это необходимо, обязательно задайте для своего ПК надежный пароль. Предпочтительнее .
После сопоставления порта вы сможете подключаться к компьютеру узла извне локальной сети, подключаясь к общедоступному IP-адресу маршрутизатора (см. второй пункт выше).
Вы можете изменить IP-адрес маршрутизатора. Ваш поставщик услуг Интернета (ISP) может назначить новый IP-адрес в любое время. Чтобы избежать этой проблемы, рассмотрите возможность использования динамических DNS-имен. Это позволит подключаться к компьютеру с помощью легко запоминающегося доменного имени, а не IP-адреса. Маршрутизатор автоматически обновит службу DDNS, если IP-адрес изменится.
В большинстве маршрутизаторов может определить, какой исходный IP-адрес или исходная сеть может использовать сопоставление портов. Поэтому, если известно, что вы собираетесь подключаться только с работы, можно добавить IP-адрес для своей рабочей сети. Это позволит избежать открытия порта для всего Интернета. Если на узле, которые вы используете для подключения, используется динамический IP-адрес, задайте ограничение источника, чтобы разрешить доступ из целого диапазона адресов, определенного поставщиком услуг Интернета.
Также рассмотрите возможность настройки статического IP-адреса на своем компьютере, чтобы внутренний IP-адрес не менялся. Если это сделать, то перенаправление портов маршрутизатора всегда будет указывать на правильный IP-адрес.
Как настроить VPN в Windows
Создатель операционной системы Windows, компания Microsoft, изначально позаботилась о максимальном функционале своего продукта. Поэтому в настройках системы по умолчанию предусмотрены настройки для подключения к удаленному серверу. Пользователю останется только найти тот самый подходящий сервер.
Все ВПН-серверы, как и приложения и расширения, бывают платными и бесплатными. Платные могут похвастаться увеличенной скоростью передачи данных и повышенной анонимностью, хотя многие пользователи предпочитают пользоваться бесплатными, особенно, если доступ к сторонним серверам требуется не так часто.
На сайтах с доступными серверами обычно указана вся информация, необходимая для настройки подключения. Пользователю нужно записать только IP-адрес сервера, а также логин и пароль для подключения к сети.
ВПН-соединение через параметры
Пользователям, которые никогда не настраивали VPN для Windows 10, пригодится пошаговая инструкция по подключению.
Рисунок 2. В ОС Windows есть встроенные инструменты для настройки ВПН-соединения
- Необходимо кликнуть по значку шестеренки на рабочем столе, чтобы вызвать меню Пуск. В нем переходят во вкладку Параметры. Попасть в это же меню можно с помощью комбинаций клавиш Win+I.
- Перед пользователем откроется новое окно. Необходимо найти вкладку «Сеть и интернет» и кликнуть по ней.
- В открывшемся окне, в его левой части, находят вкладку VPN. Нужно нажать на кнопку «Добавить ВПН-подключение». Для этого достаточно поставить галочки напротив параметров использования сети в роуминге. При необходимости также можно установить лимит на подключение.
- Перед пользователем снова откроется окно, в котором и нужно создать само подключение. Достаточно заполнить всего несколько полей. В строке с именем и адресом сервера вводят IP-адрес сервера, полученный на сайте, а в строке «Тип данных для ввода» — логин и пароль. Все остальные параметры оставляют по умолчанию. Имя подключения может быть произвольным.
Остается только нажать по очереди на кнопки «Сохранить» и «Подключиться» для автоматической активации соединения. В дальнейшем, если появится необходимость отключить ВПН-соединение, пользователю нужно снова зайти в меню Параметров и во вкладку «Сеть и Интернет».
Сторонние сервисы
Далеко не у всех пользователей есть достаточно навыков для самостоятельной настройки VPN-соединения штатными средствами Windows.
В этом случае пригодятся сторонние VPN-сервисы для Windows, таких, как Planet VPN. Главное их преимущество в том, что они не требуют от пользователя практически никаких действий. Достаточно просто скачать подходящую программу, открыть и запустить установочный файл, а в дальнейшем, когда возникнет необходимость заменить свой реальный IP-адрес виртуальным, пользователю достаточно запустить ранее установленную программу.
А зачем он вообще нужен?
Open source так плотно вошел в нашу жизнь, что мы ее без этого феномена и не представляем. Многое, чем мы пользуемся, основано на open source компонентах, работает на open source ОС и это можно продолжать до бесконечности. И если любая инфраструктура начинается с фундамента в виде ОС и виртуализации того или иного типа, и здесь не вызывает вопросов зачем нам Linux, qemu, KVM, containerd и т.п., то VDI на их фоне выглядит экзотикой и точно не является предметом первой необходимости. Тогда возникает вопрос — а зачем тогда вообще разбираться? Ответ простой — если посмотреть на то, что есть в реестре Минцифры в фундаментальных, с точки зрения инфраструктуры, категориях (операционные системы, средства виртуализации, системы управления базами данных, системы контейнеризации и контейнеры), то мы увидим там продукты, которые построены на основе всем известных open source проектов: Linux (почти монопольно), KVM в сочетании с oVirt, Open Stack, OpenNebula, PostgreSQL, Greenplum, Ignite, Kubernetes.
Это можно критиковать, не принимать, брезгливо отворачиваться, но это наша реальность. К тому же даже братья-китайцы, у которых ресурсов побольше, а рынок сравним с американским, не брезгуют за основу брать что-то зрелое. Чего стоит, например, почивший в бозе Asianux, основанный на RHEL, но не чисто китайский, конечно, который был в списке совместимости . Ни одного российского дистрибутива в списке совместимости мировых вендоров ни разу не было.
Рынок VDI по сравнению с серверной виртуализацией не велик, но в России немало компаний и организаций, которые понимают, зачем им нужна именно такая инфраструктура. И если в 2012, например, идея разработки собственного VDI была, мягко говоря, неожиданной (есть Citrix, VMware и Microsoft, которые никуда не собираются), а в 2014 эта она уже перестала казаться бредовой фантазией, но российские потенциальные потребители находились на стадии отрицания, то из сегодняшнего дня понятно, что рано или поздно придется искать замену существующим инсталляциям продуктов из правого верхнего квадранта Гартнера или проектировать новую инфраструктуру без их участия.
Вот и выходит, что если приведенные выше open source проекты легли в фундамент российской ИТ-инфраструктуры, то почему бы и open source VDI не повторить этот путь.
Цель этой статьи как раз и разобраться в том, какие проекты есть, а также выбрать, что стоит протестировать (но это уже в следующих статьях). Это позволит нам попробовать заглянуть в будущее, чтобы понять, на чем, потенциально, будут строить VDI в российских компаниях.
Шрифты, терминал и scratchpad
По умолчанию i3 использует довольно унылый стандартный шрифт Xorg, а в качестве эмулятора терминала мы установили дурной xterm, который давно желают закопать не только пользователи, но и сами разработчики (я не шучу). Это необходимо исправить.
Начнем со шрифта. О выборе консольного моноширинного шрифта (а именно такой нам нужен, в том числе и для i3) много спорят, но я предлагаю остановиться на Terminus. Это четкий шрифт без засечек с минимумом округлых форм, он очень хорошо читается и отлично подходит для не Retina-дисплеев (да и для Retina тоже). Устанавливаем:
С эмулятором терминала тоже не все однозначно. Эталоном уже на протяжении многих лет считается urxvt (). Он легкий, быстрый и хорошо настраиваемый. Но так как в рамках этой статьи мы не можем вдаваться в детали глубокой настройки каждого компонента (а без такой настройки urxvt ужасен), то остановимся на LilyTerm. Он быстрый, имеет минимум зависимостей и все преимущества urxvt, а настроить его можно с помощью контекстного меню:
Теперь необходимо внести изменения в файл настроек i3, чтобы он подхватил наш шрифт и использовал LilyTerm вместо стандартного терминала. Открываем файл , находим опцию font и меняем ее значение:
Чтобы запускать LilyTerm по Win + Enter, добавляем такую опцию:
Ну и опция для запуска dmenu с нашим шрифтом:
Плюс парочка строк для включения так называемого scratchpad:
Scratchpad в терминологии i3 — это доступное по хоткею небольшое окно посередине экрана. Он хорошо подходит для приложений, которые нужны часто, но отвлекают, постоянно находясь на экране (да, для мессенджеров). Win + минус показывает scratchpad, повторное нажатие скрывает его. Win + Shift + минус отправляет текущее окно в scratchpad.
Когда все изменения будут сделаны, сохраняем файл и нажимаем Win + Shift + R, чтобы перезапустить i3.
Scratchpad
WireGuard
WireGuard — результат исследований автора проекта Джейсона Доненфилда (Jason A. Donenfeld), главы компании Edge Security. Продукт со встроенной криптографией, одновременно простой в использовании и в реализации (чуть более 4000 строк кода), что существенно выделяет его среди остальных решений. Например, его код легче проанализировать, чем все, что написано в рамках *Swan/IPsec или OpenVPN. Самый молодой проект обзора. О нем заговорили в середине лета 2016-го после публикации анонса в списке рассылки разработчиков ядра Linux, где был представлен патч к ядру. Хотя сам проект развивается уже несколько лет и прошел стадию рецензирования криптографии, то есть его можно внедрять в основное ядро.
VPN-соединение инициализируется (handshake) путем обмена открытыми ключами и напоминает подход, применяемый в SSH. Все остальное прозрачно обрабатывается WireGuard, нет необходимости беспокоиться о ключах, роутинге, контроле состояния и прочем, это все забота WireGuard. Возможно использование симметричного шифрования, но это потребует чуть больших настроек. Маршрутизация производится по ключам шифрования, для этого к каждому сетевому интерфейсу привязывается закрытый ключ. Для обновления ключей handshake происходит через определенное время или по сигналу, что ключи устарели. Для согласования ключей и соединения вместо собственного демона в пространстве пользователя используется механизм Noise_IK из Noise Protocol Framework, похожий на поддержание authorized_keys в SSH, без усложнений в виде поддержки x509 и ASN.1.
Для шифрования применяются потоковый шифр ChaCha20 и алгоритм аутентификации сообщений (MAC) Poly1305. Для генерации совместного секретного ключа — протокол Диффи — Хеллмана на эллиптических кривых в реализации Curve25519, предложенной Дэниелом Бернштейном. Для хеширования используются BLAKE2s (RFC 7693) и SipHash-2-4. Избежать replay-атаки позволяет метка времени TAI64N, пакеты с меньшей меткой времени отбрасываются.
Передача данных осуществляется на третьем уровне ISO через инкапсуляцию в пакеты UDP. Поддерживаются IPv4 и IPv6, инкапсуляция v4 в v6 и v6 в v4. Может работать за NAT и файрволом. Поддерживается смена IP-адреса VPN-сервера без разрыва соединения с автоматической перенастройкой клиента.
После установки в системе появляется новый сетевой интерфейс wg0, который может быть настроен штатными инструментами ipconfig/ip-address и route/ip-route. Специальная утилита wg позволяет установить секретный ключ устройства и указать список ассоциаций для клиентов (его публичный ключ, разрешенный IP).
Для установки понадобится дистрибутив с ядром Linux >4.1. Пакет можно найти в репозиториях основных дистрибутивов Linux. Для Ubuntu 16.04 есть PPA.
Самостоятельная сборка из исходных текстов также несложна. Поднимаем интерфейс, генерируем пару ключей (для примера сохраняем в файлах privatekey и publickey):
Получаем публичный ключ от клиента и создаем соединение.
Возможно использование PresharedKey (генерируется командой wg genpsk), который добавляет еще один уровень симметричного шифрования к имеющемуся шифрованию с открытым ключом. Для пира можно указать PersistentKeepalive, позволяющий поддерживать соединение из-за NAT и файрвола. Поднимаем интерфейс:
Смотрим настройки:
Для удобства лучше заранее подготовить конфигурационный файл, содержащий секцию interface и секции peer. Формат можно увидеть, введя wg showconf.
Подходит как для небольших встроенных устройств вроде смартфонов, так и для магистральных маршрутизаторов. Тесты показали, что WireGuard имеет примерно в четыре раза лучшую пропускную способность и в 3,8 раза более отзывчив по сравнению с OpenVPN (256-bit AES c HMAC-SHA-2–256). Здесь сказывается не только реализация в виде модуля ядра, тогда как OpenVPN работает в userspace. Повышение производительности обусловлено отказом от использования CryptoAPI ядра, работающего достаточно медленно. Вместо него в WireGuard задействованы собственные реализации ChaCha20, Poly1305, BLAKE2s и Curve25519, которые позиционируются как быстрые и безопасные аналоги AES-256-CTR и HMAC, их программная реализация позволяет добиться фиксированного времени выполнения без аппаратной поддержки.
Также WireGuard благодаря меньшим задержкам чуть лучше выглядит в производительности по сравнению с IPsec (256-bit ChaCha20 + Poly1305 и AES-256-GCM-128), но вот настройки гораздо проще.
Пока WireGuard доступен только для Linux, после тестирования предполагается портировать в другие ОС. Код распространяется под лицензией GNU GPLv2.
Настройка WireGuardСмотрим конфигурацию WireGuard
Виды P2P сетей
Несмотря на простоту работы Р2Р сети для организации обмена данными и файлами, все равно требуется наличие стабильной платформы, которая будет задействоваться всеми сторонами, а также системы номенклатуры для отметки файлов.
Известно три типа сетей, описывающих файловых обмен в рамках пиринговой сети. Пользователь может выбрать структурированную, неструктурированную или комбинированную сеть, в зависимости от личных потребностей.
Выбор типа также обусловливается видами файлов, которые находятся в общем доступе, а также наличием выделенной платформы и основным источником контента.
Рассмотрим каждый тип сети детальнее:
- структурированная Р2Р сеть – формируется по принципу иерархии с использованием распределенной хеш-таблицы или DHT. Данный вариант подходит для научных или крупных организаций, где все компьютерные устройства постоянно подключены к сети Интернет. Это позволяет легко найти любые данные и загрузить их максимально быстро, при этом сама система никак не страдает от большого количества устройств, которые подключаются к ней;
- неструктурированная Р2Р сеть – формируется без иерархии, а каждый ПК будет подключаться к ближайшему одноранговому узлу, если в нем есть необходимые пользователю данные. Сеть будет заполняться запросами, и подключение будет происходить к тем узлам, которые отвечают;
- гибридная Р2Р сеть – комбинация неструктурированной и структурированной сети, использование одних и тех же данных, а также терминологии. Такая сеть может идти на компромисс между двумя типами, чтобы максимально использовать преимущества каждого из них;
- торренты – уникальная технология BitTorrent P2P для эффективного поиска и скачивания необходимых файлов. В одном торрент-файле есть полный индекс данных, поэтому происходит быстрое подключение к р2р клиенту и объединение онлайн-пользователей. То есть загрузка происходит совместными усилиями.
Шаг 3. Подключение VPN туннелей
Результат: Оба туннеля подключены
Шаг 3.1. Импортируйте загруженные профили в программу OpenVPN на обоих компьютерах. Для этого запустите программу OpenVPN GUI (хотя она уже должна быть запущена) и найдите ее ярлычок в системном трее Windows, рядом с часами.
Нажмите на ярлычок правой кнопкой мыши и выберите пункт «Импорт профиля» (Import file). Затем выберите сохранненый файл профиля подключения на своем компьютере.
Шаг 3.2. Теперь давайте подключим туннели на обоих компьютерах. При установлении соединения вас попросят ввести логин и пароль, который вы назначили туннелю в личном кабинете сайта VPNKI. Естественно, на каждом компьютере мы указываем свое собственное имя и пароль. В данном случае, скриншот показывает подключение Компьютера 1. На втором компьютере имя будет user10279.
Если клиент OpenVPN что-то спросит вас о сертификате, то просто нажмите «Отклонить» или что-то типо того. Мы в VPNKI не используем аутентификацию по сертификату, а используем логин/пароль.
После успешного подключения вы увидите в системном трее Windows зеленый значок OpenVPN, который означает, что подключение к удаленному серверу прошло успешно.
Если так и есть, то имеет смысл посмотреть как оба соединения выглядят на стороне сервера VPNKI. Для этого перейдите в личный кабинет системы VPNKI и выберите пункт меню «Мои настройки» — «Статус подключений».
На сайте вы увидите приблизительно такую картину.
Вэб-интефейс сервера.¶
Введите в браузере ip или доменное имя сервера, для авторизации используйте данные администратора веб-консоли, созданные командой rude createsuperuser при установке.
-
Панель «Установка клиентов» Позволяет загружать скрипты и файлы для первоначальной установки агентов. Скрипты включают в себя команды для загрузки пакета и настройки его для работы с вашим сервером. Для установки под Windows необходимо ответить утвердительно на предупреждение системы безопасности. Для установки на Linux-системах выполните команду
sh -
Графическая диаграмма, показывающая соотношение установленных систем на компьютерах сети вашего сервера.
-
Графическая диаграмма, показывающая соотношение компьютеров сети вашего сервера, находящихся в сети.
-
Графическая диаграмма, показывающая соотношение типов подключения в сети вашего сервера.
-
Панель быстрого доступа к подменю интерфейса.
-
«Последние действия» — показывает последние действия администратора на сервере.
-
Меню управления сервером. Содержит ряд подменю для управления сервером и удалёнными ПК:
-
Компьютеры — содержит список устройств, подключенных к серверу.
-
Мосты — содержит список используемых адресов сервера.
-
Сессии — все соединения всех ПК фиксируются в этом разделе.
-
Задачи – задачи, исполняемые или уже исполненные на устройствах. Задача содержит политики, список ПК для исполнения, настройки периодичности исполнения.
-
Логи – история выполнения задач, содержат ошибки при их наличии.
-
Политики содержат в себе инструкции для исполнения на удалённых ПК. Политики исполняются при помощи задач.
-
Адресная книга — позволяет редактировать список устройств в адресной книге. Теги объединяют устройства из адресной книги в группы.
-
Пользователи — этот пункт позволяет управлять правами пользователей, присваивая группу. Группа пользователей – набор прав.
Настройка Mikrotik CHR
Для всех созданных интерфейсов на маршрутизаторе добавим комментарий и определим наименование.
Теперь для каждого интерфейса можем определить собственное адресное пространство, в каждом адресном пространстве DNS сервером будет являться виртуальная машина с Windows Server и AD. Тем самым каждое устройство сможет быть добавлено в созданную AD. Внутри AD дополнительно укажем DNS сервера организации.
Для обеспечения изолированности каждой подсети друг от друга создадим соответствующее правило, но при этом обеспечим доступ к сети где располагаются Windows Server с AD (цепочка forward). Также запретим ICMP пакеты между сетями (цепочка input).
Для упрощения работы помещаем нужные интерфейсы в один список, тем самым обеспечиваем удобства в настройке firewall.
После всех настроек получаем следующую ситуация из DHCP сервера:
Как видим машины занимают адреса из определенных сетей.
Защита сервера
Я буду настраивать , и по вот этому очень хорошему гайду. (еще раз, моя цель не скопипастить все что я нашел, а собрать все в одно место, чтобы не забыть) Я делаю все для Ubuntu Server, но в том гайде есть для CentOS и Red Hat.
Во-первых сделаем еще одного пользователя помимо root (1), зададим ему пароль (2) и разрешим использовать root привелегии через sudo (3):
SSH
Настраивайте по инструкции в статье упомянутой выше. Там мне совсем нечего добавить, кроме подроностей о public и private ключах:
-
генерирует 2 ключа открытый (тот что имеет .) и приватный который (не имеет такого расширения)
-
Открытый ключ отправляется на сервер в файл в папке в домашней директории пользователя ()
Для этого можно использовать команду:
Закрытый ключ используется для аутентификации, скопируйте его куда-нибудь чтобы не потерять
Использовать ключ для входа можно командой:
Важно отключить аутентификацию по паролю иначе мы все это делали зря
Firewall
Используя проброс портов мы разрешаем доступ к нашему серверу лишь посредством подключений к определенным портам, но DMZ зона допускает почти все типы запросов. Используя DMZ зону нам строит поднять FireWall на сервере, который как раз и ограничит количество портов которые могут принимать внешние запросы.
Разрешим использование SSH (1) и порта 5000 (2) в ufw (Firewall), и запустим Firewall (3):
Подняв FireWall важно не забыть разрешить доступ к порту SSH (22) и порту Flask (5000) (ну или другого ПО, которое мы собираемся использовать). Я забыл и долго не понимал, почему мой сервер не отвечает
На сайте хорошо разобраны команды для управления Firewall-ом.
Fail2ban
Fail2ban ограничивает количество попыток подключения, это сильно усложнит подбор аутентификационных данных SSH.
Для начала установим его (1) и запустим (2, 3):
Теперь можем настроить его, используя эти конфигурационные файлы: и . Во втором находятся ограничения на количество подключений за определенный промежуток времени и время бана.
Как работает VPN?
Соединение VPN – это, так называемый, “туннель” между компьютером пользователя и компьютером-сервером. Каждый узел шифрует данные до их попадания в “туннель”.
Вы подключаетесь к VPN, система идентифицирует вашу сеть и начинает аутентификацию (сравнивает введенный пароль с паролем в своей базе данных).
Далее сервер Вас авторизует, то есть предоставляет право на выполнение определенных действий: чтение почты, интернет-серфинг и т.д. После установления соединения весь трафик передается между вашим ПК и сервером в зашифрованном виде. Ваш ПК имеет IP-адрес, предоставленный интернет-провайдером. Этот IP блокирует доступ к некоторым сайтам. VPN сервер меняет ваш IP на свой. Уже с VPN-сервера все данные передаются к внешним ресурсам, которые вы запрашиваете. Теперь можно просматривать любые ресурсы и не быть отслеженным.
Однако, следует помнить, что не вся информация шифруется. У разных VPN-провайдеров могут отличаться такие характеристики как степень шифрования, сокрытие факта подключения к серверу, хранение логов (журнал, в который сохраняется информация о посещаемых сайтах, реальный IP адреси т.п.) и сотрудничество при выдаче информации третьим лицам.
Если VPN-провайдер вообще не записывает логи, то передавать третьим лицам просто нечего. А сокрытие факта подключения к серверу – уже более редкая услуга. При некорректном подключении или резком разрыве соединения может произойти утечка части данных. Решить проблему поможет технология Multihop VPN, которая предполагает соединение с сайтом сразу через несколько серверов.
Рассмотрим популярные VPN:
PPTP – Point-to-Point Tunneling Protocol
+ поддерживается всеми ОС
+ не требует много вычислительных мощностей
— плохая защищенность. Методы шифрования устарели, плохая архитектура, есть ошибки в реализации протокола от Microsoft. Нет шифрования по умолчанию, на взлом требуется менее суток.
Используется, когда защита данных не очень важна или когда нет других вариантов.
L2TP – Layer 2 Tunneling Protocol
+ более эффективен для построения виртуальных сетей
— более требователен к вычислительным ресурсам
— не предполагает шифрования по умолчанию
Работает совместно с другими протоколами, чаще всего IPSec.
Используется интернет-провайдерами и корпоративными пользователями.
IPSec – Internet Protocol Security – группа протоколов и стандартов для безопасных соединений.
+ хорошая архитектура
+ надежность алгоритмов
— сложен в настройке (следовательно, снижение защиты, если настроить неправильно)
— требует много вычислительных ресурсов
+ этот недостаток компенсируется путем аппаратного ускорения алгоритма шифрования АЕС
Часто используется совместно с другими технологиями.
SSL – Secure Sockets Layer & TLS – Transport Layer Security – группа методов, включающая в себя протоколы SSL и TLS и другие методы защиты.
+ беспрепятственно пропускаются большинством публичных сетей
— довольно низкая производительность
— сложность в настройке, необходимость установки дополнительного ПО
используется на веб-сайтах, URL которых начинается с https (там еще виден зеленый замочек)
некоторые реализации: OpenVPN, Microsoft SSTP.
+ OpenVPN имеет открытый код, реализован практически для всех платформ, считается очень надежным.
Чем приходится платить за безопасность в Интернете?
-
Низкая скорость интернета. На дополнительное шифрование требуется время. Также часто трафик проходит большее расстояние, что связано с удаленностью расположения VPN-сервера.
-
Периодический разрыв VPN-подключения, внезапный выход трафика в публичную сеть. Часто можно не заметить разрыв подключения и утечку данных, также VPN-соединение может не восстанавливаться автоматически, что не удобно. Во современных ОС на базе Windows предусмотрена функция VPN Reconnect. Если ее нет, то придется использовать особые программы или специальные настройки маршрутизации, которые контролируют VPN-соединение и в случае его разрыва сначала блокируют передаваемую информацию, закрывают приложения, потом обновляют VPN-подключение.
-
К сожалению, IPv6 почти никогда не поддерживается VPN. Следовательно, когда в публичной сети используется IPv6, и в интернет-ресурсе он также поддерживается, трафик пойдет по умолчанию по открытой IPv6 сети. Чтобы такого не произошло можно просто отключить IPv6 в ОС.
-
DNS-протечки: на практике часто DNS-запросы обрабатываются DNS-серверами публичной сети (а не виртуальной, защищенной). В случае их некорректного ответа можно получить поддельный адрес запрашиваемого домена. Так, ничего не подозревающие пользователи могут быть перенаправлены, например, на сайты мошеннических онлайн-банков. Также по DNS-серверам можно определить примерную геолокацию и интернет-провайдера пользователя.
-
Присутствуют также разнообразные юридические аспекты. Во-первых, это отличия в законодательстве разных государств. VPN-клиент и VPN-сервер часто находятся в разных странах. Также трафик может проходить через третью страну транзитом. Таким образом существует возможность сохранить себе копию передаваемых данных для дальнейшей расшифровки и изучения.
Существует не только вопрос что шифровать, но и как. Далеко не все криптографические средства разрешены. Из-за этого производители сетевого оборудования (в том числе для организаций VPN) при экспорте в другие страны вынуждены отключать в своей продукции ряд алгоритмов шифрования, а также уменьшать максимально возможную длину ключа.
Проблема кроется еще и в том, что сами мировые стандарты шифрования могут быть уязвимыми. Так, в 2013 году NIST (The National Institute of Standards and Technology – организация, утверждающая стандарты шифрования в США) обвинили в том, что он разрешил включить в новый стандарт уязвимую версию генератора псевдослучайных чисел. Это позволило сильно упростить расшифровку информации, защищенной с применением этого генератора. Более того, составителей стандартов нередко обвиняют в сознательном усложнении описаний стандартов.
А законно ли вообще использовать VPN в России? В России действует закон Яровой, направленный против терроризма и экстремизма. С другой стороны его можно рассматривать как шаг в сторону регулирования и контролирования интернета, потому что этот закон обязует операторов связи хранить всю информацию о деятельности в интернете . Но если провайдер не сохраняет логи, то штрафовать будут его, а не конечных пользователей. Поэтому сейчас существует довольно много VPN-провайдеров, в том числе и бесплатных.
Подключаем системы
О развертывании виртуальных машин рассказано в статье о vSphere, поэтому здесь подробности этого этапа пропускаем и идем дальше. Итак, создаем новую VM, ставим гостевую ОС и VMware Tools. Чтобы получить возможность управлять виртуальными десктопами, следует установить на них View Agent, в этом случае мы получаем максимум возможностей. В процессе установки агента будут запрошены данные сервера, к которому производится подключение.
Именно таким образом подключаются другие системы, не управляемые vCenter (физические, VM, терминальные сервисы). Управление VD производится во вкладке «Inventory». Виртуальные рабочие станции могут создаваться в одном из трех пулов:
- Automated Pool – автоматически из шаблонов vCenter, по мере необходимости без участия админа;
- Manual Pool – рабочие станции, создаваемые вручную из шаблона, сюда обычно включают все системы не управляемые vCenter;
- Terminal Services Pool – терминальные серверы Microsoft.
После установки агентов на VM открываем вкладку Pools, нажатием Add запускаем мастер создания нового пула. Далее выбираем тип пула, вводим уникальный идентификатор Pool ID. На этапе Setting следует установить параметры подключения: протокол, время logoff, поддержка Adobe Flash. По умолчанию подключение производится с любого Connection Server; выбрав Connections Server Restrictions, можно при помощи тегов указать на конкретные сервера. Далее отбираем в списке системы, которые включаются в пул. После добавления десктопы появятся в соответствующей вкладке в Desktops.