Как установить cisco systems vpn adapter в ubuntu

Обновлено: 03.07.2024

Сравнительно недавно я решил перевести домашний компьютер с Windows на Linux. То есть идея такая бродила уже некоторое время, подогреваемая новостями с фронтов борьбы с добровольно-принудительной установкой Windows 10 и размышлениями о неизбежном устаревании «семерки» следом за XP, а вот поводом взяться за дело стал выход очередного LTS-релиза Ubuntu. При этом основным мотивом такого перехода я назову простое любопытство: домашний компьютер используется в основном для развлечений, ну а знакомство с новой ОС — развлечение не хуже прочих. Причем развлечение, как мне кажется, полезное в плане расширения кругозора. Дистрибутив же от Canonical был выбран просто как наиболее популярный: считаю при первом знакомстве с системой это немаловажным подспорьем.

Довольно быстро я на собственном опыте убедился, что для котиков и кино Ubuntu вполне подходит. Но, поскольку компьютер используется еще и для удаленной работы, для отказа от Windows не хватало настроенного подключения к Cisco VPN c авторизацией по eToken.

Набор программ

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

  1. OpenConnect — VPN-клиент, «совершенно случайно» совместимый с серверами Cisco «AnyConnect»
  2. GnuTLS — свободная реализация протоколов TLS и SSL. Что важно, в состав этой библиотеки входит утилита p11tool для работы со смарт-картами
  3. SafeNet Authentication Client — набор драйверов и дополнительных утилит, обеспечивающий работу с электронными ключами eToken

Установка клиента eToken

Как резонно замечено в статье про настройку eToken в Ubuntu 12.04, ссылка на SafeNet Authentication Client почти секретная. Но в то же время на просторах интернета нашлась более свежая заметка про аналогичные танцы с бубном уже в 14.04, причем с живой ссылкой на дистрибутив где-то в бразильском филиале SafeNet. Что еще интереснее, на том же сервере есть файл с актуальной версией клиента — 9.1, которая, ура-ура, не требует устаревших библиотек. Правильный же способ получения клиента — конечно обратиться к поставщику вашего ключа.

На текущий момент пакет SafenetAuthenticationClient-9.1.7-0_amd64.deb ( или SafenetAuthenticationClient-9.1.7-0_i386.deb для 32-битных систем ) элементарно ставится двойным щелчком по нему в файловом менеджере. Но во время начала работы над этим материалом еще не была исправлена ошибка в Ubuntu Software, из-за которой не работала установка сторонних пакетов. Поэтому была написана

инструкция по скачиванию и установке клиента через консоль

При успешной установке в меню Applications появляется приложение SafeNet Authentication Client Tools.

Установка и настройка GnuTLS


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

Дело в том, что в определенный момент я совершенно застрял, не понимая, почему токен из родного клиента виден, а через p11tool — нет. И именно отсюда я понял, где же лежит собственно драйвер. Зная путь к драйверу, ставим и настраиваем GnuTLS по инструкции.


Теперь с токеном смогут работать любые приложения, использующие GnuTLS. А мы сможем воспользоваться утилитой p11tool для выяснения URL-а нашего сертификата.

Чтение данных токена

Вывести список имеющихся в токене сертификатов можно следующей командой:


Вывод p11tool выглядит примерно так:

Object 0:
URL: pkcs11:model=eToken;manufacturer=SafeNet%2c%20Inc.;serial=99999999;token=Username;id=%XX%XX;object=%7bXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX%7d;type=cert
Type: X.509 Certificate
Label:
ID: XX:XX
Object 1:…

Сертификатов может быть несколько, а для подключения требуется один конкретный. В инструкции по p11tool от OpenConnect в такой ситуации предлагают попробовать каждый. Я же для сопоставления сертификата с его URL составил небольшой скрипт, который выводит как URL, так и текстовые данные каждого сертификата:


Здесь в цикле по URL-ам объектов p11tool --info выводит данные сертификата в своем представлении, а p11tool --export передает сертификат в формате pem-файла на вход openssl, который и выводит текстовое представление. Для передачи в OpenConnect нам нужен тот, где найдется строка Client Authentication — запоминаем его URL. Кроме того, если сервер использует самоподписанный сертификат, запоминаем еще и URL объекта с флагом CKA_CERTIFICATE_CATEGORY=CA.

Экспортируем сертификат удостоверяющего центра в файл (весь URL не обязателен — лишь бы он однозначно определял объект):

Наконец-то OpenConnect


Минимальный набор аргументов для подключения приведен в следующей команде:


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


С помощью cafile мы указали сертификат удостоверяющего центра — теперь не будет вопроса относительно доверия серверу. Опция background говорит сама за себя, а pid-file позволяет указать имя файла, в котором сохранится идентификатор фонового процесса. Кроме того, пароль токена может быть указан прямо в URL с помощью атрибута pin-value. Но это несколько… небезопасно.

Останавливать фоновый процесс правильно следующей командой:

Послесловие

Задача решена, и я радостно пользуюсь для удаленного доступа приложением Remmina, которое запускаю сразу при подключении к vpn, добавив в скрипт запуска OpenConnect команду:


Правда, пришлось отключить синхронизацию буфера обмена: иначе на удаленной машине он в некоторых приложениях не работает; и включить настройку «Disable tray icon»: в противном случае при каждом подключении в трей добавляется новая иконка. Опять же, переход в домашнюю директорию перед вызовом Remmina неспроста: приложение почету-то не видит путь , а задавать полный путь с именем пользователя мне кажется неправильным.

Выводов относительно применимости Linux дома делать не буду — мне пока хватает, а статья задумана именно как HowTo.


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

У cisco есть пакет с клиентом anyconnect для linux. Только совсем не обязательно пользоваться их официальным клиентом, когда можно просто установить пакет из проверенно репозитория, и не захломлять систему. Так что если вам нужно просто подключиться к cisco vpn под linux, но не критично использование официального cisco vpn клиента, то эта заметка для вас.

Шаг 1. Установим network-manager-openconnect, для этого выполним


Добавляем подключение

Открываем меню и переходим в параметры системы


В разделе Сеть и Связь выбираем Соединения и нажимаем на плюс



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


Теперь когда мы откроем список сетей у нас появится новая сеть под названием Новое соединение VPN.


Появится окно для ввода пароля, вы можете выбрать хотите ли вы сохранять пароль, а так же хотите ли подключаться автоматически.

Далее нажмем на синюю кнопку connect.


После этого, если вы не используете для доступа к VPN сертификат, перед Вами появится окно авторизации OpenConnect. Введем логин и пароль и нажмем Войти.


После подключения мы увидим в разделе сетей Новое соединение vpn как Подключено. Теперь вы можете приступать к работе в Вашей VPN сети.


Для того, чтобы связать компьютер с Windows и GNU/Linux через Cisco VPN Client вам необходимо установить этот клиент в обе ОС.

Если с Windows это просто, то в GNU/Linux не очень.

В этой инструкции как раз будет рассказано как установить Cisco VPN Client в моём дистрибутиве Jedex, но эту инструкцию вы можете использовать для любого дистрибутива, в том числе Ubuntu, LinuxMint, openSUSE, и т.п.

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

Чтобы узнать версию вашего ядра:

Откройте консоль и выполните:
uname -a

В Synaptic введите в строку поиска kernel source
и найдите пакет, который содержит в себе исходники ядра.

У меня это был linux-source-2.6.28

Когда пакет установится закройте Synaptic.

В терминале наберите:
sudo ./vpn_install

Не забудьте ввести пароль администратора.

На вопрос Automatically start the VPN service at boot time [yes]
советую ответить no , если вам не нужен клиент постоянно, если же он нужен постоянно, то впишите yes , тогда он будет загружаться в оперативную память ПК при каждом старте системы.

Is the above correct [y]
ответьте y

После того как клиент установится нужно его запустить.
Там же в консоли впишите:
sudo /etc/init.d/vpnclient_init start

Всё. Клиент запустится.

Чтобы остановить работу клиента нажмите Ctrl+C .

А чтобы остановите процесс в памяти ПК:
sudo /etc/init.d/vpnclient_init stop

Вроде бы всё. К сожалению, без консоли в данном случае никуда, надо бы сказать Cisco, что они негодяи, потому что не написали ГУЙ для своего линукс-клиента

Скрипт для запуска

echo здесь впишите ваш пароль администратора | sudo -S command
sudo vpnclient connect myprofile

Скрипт для остановки

echo здесь впишите ваш пароль администратора | sudo -S command
sudo /etc/init.d/vpnclient_init stop

///ответ jeder
На мониторчиках в правом нижнем углу, где часы щёлкните, выберите Соединение VPN -> Настроить VPN -> Вкладка VPN -> выбираете PPTP и пробуете.

скачал образ, записал на диск. При загрузке с этого диска происходит остановка на строке grub скачивал дважды. Что я делаю не так?

///ответ jeder
Для начала задавать вопрос о том образе, который скачиваете в его теме, а не где попало. Телепатов у нас в штате нет.

///ответ jeder
Завтра напишу

yapapanyatt

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

провайдер сказал аудентификацыя у них MSCHAP 2 версию

Не знаю как в Убунте, в Jedex это включено по умолчанию.
Ребят, я помню, что обещал инструкцию по подключению подождите пару дней, я весь в делах (

А эта инструкция это для Cisco, к вашим VPN-нам она отношения не имеет никакого

Здравствуйте, jeder!
Статья интересная и в ubuntu 9.04 этот клиент запустился, но
он не хочет запускаться в ubuntu 9.10
В чем может быть причина, где искать?
Заранее благодарен за ответ.

///ответ jeder
В ubuntu 9.10. Опять они там что-то сломали

У cisco есть пакет с клиентом anyconnect для linux. Только совсем не обязательно пользоваться их официальным клиентом, когда можно просто установить пакет из проверенно репозитория, и не захломлятять систему. Так что если вам нужно просто подключиться к cisco vpn под linux, но не критично использование официального cisco vpn клиента, то эта заметка для вас.

Установка

Добавляем подключение

Нажимаем на апплет network-manager в панеле, и выбираем "Соединения VPN":

Network Manager - создание нового подключения

Network Manager - создание нового подключения

В окне сетевых подключений создаем новое подключение. Нажимаем "Добавить":

Network Manager - список подключений

Network Manager - список подключений

В выпадающем списке выбираем "Cisco AnyConnect-совместимая VPN (openconnect)":

Network Manager - список подключений

Network Manager - список подключений

Теперь настраиваем само подключение.

Network Manager - настройка openconnect подключения

Network Manager - настройка openconnect подключения

В моем случае не используется никакой сертификат. Авторизация происходит по логину/паролю, поэтому я указал только имя подключения и шлюз. Логин и пароль будет запрошен при подключении, там же его можно будет сохранить. Если у вас используется сертификат или нужно указать какие-то дополнительные параметры, то это необходимо сделать именно в этом окне.

Для подключения снова нажимаем на апплет network-manager, и выбираем наше новое подключение:

Network Manager - выбор VPN подключения

Network Manager - выбор VPN подключения

Если для аутентификации не используется ни какой сертификат, будет запрошен логин и пароль:

Читайте также: