Route-based IPSEC VPN между Ubuntu 18.04 (libreswan) и Cisco Router. Часть 2

В этой статье (часть первую можно прочитать здесь) я опишу процесс настройки Cisco роутера на примере Cisco ISR 4331 для целей создания нашего VPN-соединения. Как мы помним, конечная цель настройки — отправлять интересующий нас трафик через VPN-туннель.

Для примера, я опишу настройку Cisco для отправки всего трафика к определенным серверам через туннель (например, для обхода блокировок по стране). Начнем с создания object-group — так в дальнейшем будет проще добавлять новые адреса назначения и сразу добавим туда адрес сервера, к которому надо ходить через туннель:

object-group network TOVPN
 host 3.3.3.3

Далее создаем ip access-list, которым мы будем ловить интересующий нас трафик:

ip access-list extended TOVPN
 permit ip any object-group TOVPN

Переходим к непосредственной настройке VPN:

crypto keyring VPN
 pre-shared-key address 11.11.11.11 key %908A2R5vX9O694aoxh1

crypto isakmp profile VPN
 keyring VPN
 match identity address 11.11.11.11 255.255.255.255

crypto ipsec transform-set ESP-AES256-SHA1 esp-aes 256 esp-sha-hmac
 mode tunnel

crypto ipsec profile VPN
 set transform-set ESP-AES256-SHA1

crypto isakmp policy 10
 encr aes 256
 authentication pre-share
 group 5

В этом коротком и всем понятном блоке указаны все необходимые данные по нашему VPN-соединению (в соответствии с первой частью статьи).

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

interface Tunnel0
 ip address 172.16.0.21 255.255.255.252
 tunnel source 22.22.22.22
 tunnel mode ipsec ipv4
 tunnel destination 11.11.11.11
 tunnel protection ipsec profile VPN
 ip tcp adjust-mss 1300

Для корректной передачи данных по туннелю, чтобы в стандартный MTU пролазил пакет с «оберткой IPSEC» — нам необходимо ограничить размер MTU на интерфейсе. Делается это командой ip tcp adjust-mss MTU. В данном примере установлен MTU — 1300. Число 1300 не подбиралось экспериментальным путем, а было установлено таким, чтобы точно подходило в любых конфигурациях. На самом деле, вам, скорее всего, достаточно будет указать 1376. Если этого не сделать — обратный трафик будет проходить «частично». Если быть более точным — другой конец нашего туннеля при получении «ответных» пакетов (на наш трафик через туннель) «нормального» размера (т.е. 1476 байт) не сможет отправить их через туннель из-за превышения размера MTU. При этом мелкие пакеты будут бегать туда-сюда без особых проблем. Например, пинг и трэйсроут будут показывать наличие связи, а странички из интернета грузиться не будут.

Итак, туннель поднят, осталось отправить в него трафик. Для этого задействуем route-map:

route-map LOCAL permit 10
 match ip address TOVPN
 set interface Tunnel0

Не забываем применить этот route map к интерфейсу, к которому подключена локальная сеть.

Если все сделано по инструкции, но туннель не поднялся, проверяем:
— разрешен ли доступ снаружи к маршрутизатору по протоколам udp и gre;
— разрешен ли маршрутизатору доступ в сеть по протоколам udp и gre;

Если туннель поднялся, но трафик в него не ходит (или обратно не приходит):
— пробуем сделать ipsec restart на сервере с ubuntu;
— проверяем правила доступа с интерфейса Tunnel0 и на него (выбрана ли правильная зона для ZBFW при его использовании).

Миграция dual-boot Windows 7 + Windows 10 на другой HDD с загрузкой по UEFI

После переноса ОС на другой HDD (или SSD) путем клонирования или при помощи «специальных тулов» для миграции, могут возникнуть проблемы с загрузкой Windows 10. В частности, частой проблемой является черный экран после загрузки, на котором виден только курсор. Ожидание не приносит результатов, загрузка в безопасном режиме тоже ничего не решает. Инструмент автоматического решения проблем при загрузке не помогает. При этом первая система (Windows 7) работает отлично и грузится без проблем.

Для «лечения» нам понадобится загрузить компьютер при помощи установочного диска Windows 10, затем:

  • Открыть командную строку;
  • Запустить diskpart;
  • Найти загрузочный раздел при помощи команды list volume и букву системного диска;
  • select volume X (X — загрузочный раздел fat32);
  • assign letter w (назначаем букву, чтобы получить доступ к файлам);
  • exit (выходим из diskpart);
  • bcdboot Y:\Windows /s w: /f UEFI (где Y — буква диска, на котором находится папка Windows);
  • Перезагружаем систему и при загрузке выбираем новый пункт меню (если он появился);
  • Открываем msconfig и удаляем из пунктов загрузки «старую» опцию \Windows, оставляем только C:\Windows для нашей windows 10 и пункт с загрузкой Windows 7 (при наличии).

Подключение к VirtualBox через VNC

Когда-то давно к консоли виртуальной машины VirtualBox можно было легко и просто подключаться по VNC. Но с недавних времен, решением по умолчанию стало подключение по RDP. Сделано это было, наверняка, из лучших побуждений и соображений безопасности, но в один прекрасный момент, благодаря этому, сотни и тысячи мануалов в интернете по разворачиванию виртуальных машин через консоль утратили свою актуальность. После создания виртуальной машины по этим инструкциям вам не удастся подключиться к ним через VNC.

Но разработчики, все же, оставили возможность подключиться по VNC. Для этого необходимо выполнить в консоли:

 VBoxManage setproperty vrdeextpack VNC 

Эта настройка меняет способ подключения к виртуальным машинам для всего сервера на VNC.

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

 VBoxManage modifyvm "VM name" --vrdeproperty VNCPassword=secret

После этого вы сможете подключаться к своей машине через VNC, как и раньше. Если вам потребуется вернуться на настройку по умолчанию (с использованием RDP), выполните следующую команду:

 VBoxManage setproperty vrdeextpack "Oracle VM VirtualBox Extension Pack"

The application-specific permission settings do not grant Local Activation permission for the COM Server application…

На разных серверах в разное время возникают ошибки вида:

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID {8D8F4F83-3594-4F07-8369-FC3C3CAE4919}
  and APPID
 {F72671A9-012C-4725-9D2F-2A4D32D65169}
  to the user NT AUTHORITY\SYSTEM SID (S-1-5-18) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

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

Итак, для исправления этой ошибки нам необходимо выдать соответствующей учетной записи те права, которых ей не хватает. Для этого надо:
1. Запустить Component services из administrative tools;
2. Перейти по дереву в Component Services -> Computers ->My Computer -> DCOM Config;
3. Кликнуть ПКМ на DCOM Config, выбрать View->Detail;
4. Справа мы увидим список приложений с их Application ID. Список не сортируется и вам придется вручную найти APPID из вашей ошибки. Находим и кликаем по нему ПКМ, заходим в Properties;
5. Переходим на вкладку Security;
6. Выбираем в блоке Launch and Activation Permissions пункт Customize и нажимаем Edit;
7. Добавляем NT AUTHORITY\SYSTEM в список и разрешаем ему Local launch и Local activation;
8. Перезапускаем сервис, использующий этот AppID (или перезагружаем компьютер/сервер). Ошибки должны исчезнуть.

А теперь поговорим о том, что же делать, если на вкладке Security ничего нельзя выбрать (как это и бывает в большинстве случаев), т.е. если все контролы отключены. Для этого запускаем Regedit, дальше:
1. Идем в HKLM\SOFTWARE\Classes\AppID;
2. Находим наш AppID в списке;
3. Кликаем ПКМ, открываем Permissions;
4. Переходим в Advanced;
5. Меняем владельца на свою учетную запись (изначально там TrustedInstaller), в противном случае не сможем поменять свои права;
6. Добавляем себе права на Full Control;
7. Возвращаемся в Component Services и проделываем пункты 1-8;
8. Возвращаем владельца ветки реестра, а для этого указываем в качестве владельца NT service\TrustedInstaller. Если компьютер в домене — не забываем выбрать локальный компьютер в качестве области поиска пользователя.

На этом всё, ошибка не будет больше досаждать.

Как МТС подменяет DNS-ответы для своих клиентов

Один из самых простых вариантов проверки чего-нибудь сетевого «извне» на рабочем месте — проверить это на телефоне. Недавно возникла необходимость проверить доступен ли снаружи один из поддоменов компании и, как обычно, чтобы не лезть на внешние DNS-сервера, я решил воспользоваться одной из утилит под Android для получения информации от DNS-серверов (Ping & Net).

Проверка показала, что A-записи для домена есть, их две и указывают они на амазоновские айпишники, где у нас тоже есть часть сервисов. Начали разбираться и искать эти адреса, не смогли найти и решили все же сходить в наш DNS. Оказалось, что такого поддомена у нас нет во внешней сети!

Проверил ответ от гугловского DNS — тоже пусто. Решил попробовать спросить напрямую у DNS-серверов МТС, но не с телефона, а с рабочего ПК. Естественно, они отклонили запросы (сервера 134.17.1.1 и 134.17.1.0). Запрос несуществующего имени, отправленный напрямую к этим DNS-серверам с телефона из сети МТС, возвращает адреса A-записей 52.214.129.184 и 52.209.63.28. Соответственно, если вы пытаетесь зайти на любой несуществующий домен из сети МТС — у вас открывается прекрасная «информативная» рекламная страница МТС (portal.ncnd.mts.by) с (внезапно!) ошибкой 404 и кучей рекламного контента (который, на секундочку, тратит ваш трафик, если у вас не безлимит). ИМХО, такие действия вводят пользователей в заблуждение: ошибка 404 — совсем не то же самое, что «домен не найден».

В качестве одной «ложки меда в бочке дегтя» можно назвать то, что на этой же странице можно управлять данной «услугой». Т.е. отписаться от этого чудо-портала. После отписки DNS-сервера отвечают, что такого домена нет, но мобильные браузеры все равно каким-то образом редиректят на portal.ncnd.mts.by и при этом не могут его открыть. МТС, такой МТС…