Найти тему
Находки от Артёмки

Openconnect вместо Cisco AnyConnect

Мой зарплатодатель, для соединения с VPN компании рекомендует использовать клиент Cisco AnyConnect, но это очень плохое (ИМХО) решение, так как происходит обязательная установка компонента "Umbrella" который должен служить "защите" от перехвата DNS запросов, но в моем случае он просто перенаправлял запросы сервису OpenDNS и часть нужных мне сайтов просто стала недоступным, помимо этого - страничка "заглушка" для таких сайтов была с логотипом компании зарплпатодателя, что наводит на мысли о сборе информации о посещаемых мной ресурсах.

И это работало даже тогда, когда VPN соединение было не активно.

В качестве альтернативы есть opensource решение - Openconnect

Для Openconnect есть GUI надстройка - Openconnect GUI, но к сожалению проект больше не поддерживается и у него есть проблемы при работе с macos Big Sur. Проект переехал на новый адрес - https://gitlab.com/openconnect/openconnect-gui, но свежих билдов (на момент написания заметки) нет.

Самый убодный способом установки Openconnect - установки через brew (придется его предварительно установить)

Запускаем Терминал и вводим команду brew install openconnect

После установки необходимо собрать некоторую информацию для будующего упрощения процедуры соединения с сервером зарплатодателя

openconnect vpn.company.com

Нас интересует строчка что-то вроде --servercert pin-sha256:eFiI9ovazhCG/. её необходимо скопировать в Заметки.

Теперь нужно хоть как-то автоматизировать процесс коннекта/дисконнекта с сервером компании.

В связи с тем, что в macOS Big Sur по умолчанию в терминале запускается zsh будем редактировать файл с настройками zsh

nano ~/.zprofile

Добавляем в конец файла

function vpn-on() {
echo 'YourPassword' | sudo openconnect \
--background \
--passwd-on-stdin \
--user=username@company \
--servercert=pin-sha256:eFiI9ovazhCG/... \
vpn.company.com
}

function vpn-off() {
sudo kill -2 `pgrep openconnect`
}

Попутно меняя YourPassword, значение параметра --user, и ранее скопированный --servercert

-2

Сохраняем файл Control-O, закрываем Control-X

Закрываем и вновь открываем Терминал, это необходимо для перечитывания настроек.

Теперь если ввести команду vpn-on будет происходить подключение к серверу зарплатодателя, после подключения окно можно или свернуть или закрыть. В конце дня я пишу vpn-off и отключаюсь.

p.s. Способ несомненно на "любителя", но пока подвижек в Openconnect GUI я не вижу, а пользоваться Cisco AnyConnect я не желаю.