Как подключиться к VPN-серверу с OpenConnect SSL VPN Client в Linux

Мануал

OpenConnect – это клиент SSL VPN, первоначально созданный для поддержки Cisco AnyConnect SSL VPN.

С тех пор он был перенесен на поддержку Juniper SSL VPN, который теперь известен как Pulse Connect Secure.

В этом руководстве мы рассмотрим установку и использование клиента OpenConnect SSL VPN для подключения к Cisco AnyConnect VPN VPN и Cisco Juniper Pulse Connect Secure.

Возможности OpenConnect SSL Client

С официального сайта OpenConnect SSL Client имеет следующие функции:

  • Подключение через HTTP-прокси, включая поддержку libproxy для автоматической настройки прокси-сервера.
  • Подключение через прокси-сервер SOCKS5.
  • Автоматическое обнаружение адресов IPv4 и IPv6, маршрутов.
  • Аутентификация через HTTP-формы.
  • Аутентификация с использованием сертификатов SSL – из локального файла, доверенного платформенного модуля и смарт-карт PKCS # 11.
  • Аутентификация с использованием токенов программного обеспечения SecurID (при построении с помощью libstoken)
  • Аутентификация с использованием токенов программного обеспечения OATH TOTP или HOTP.
  • Аутентификация с использованием токенов Yubikey OATH (при построении с помощью libpcsclite)
  • UserGroup поддерживает выбор между несколькими конфигурациями на одном VPN-сервере.
  • Передача данных по TCP (HTTPS) или UDP (DTLS или ESP).
  • Keepalive и Dead Peer Detection на HTTPS и DTLS.
  • Автоматическое обновление списка / конфигурации VPN-сервера.
  • Поддержка роуминга, позволяющая повторно подключаться при изменении локального IP-адреса.
  • Может работать без привилегий root
  • Поддержка “Cisco Secure Desktop” и GlobalProtect HIP report.

Установка клиента OpenConnect SSL в Linux

Давайте теперь посмотрим на различные способы установки OpenConnect SSL Client на ваш любимый дистрибутив Linux:

Установка клиента OpenConnect SSL на Arch Linux

Для пользователей Arch Linux и их производных дистрибутивов вы можете установить openconnect из официальных репозиториев Pacman.

$ sudo pacman -S openconnect

То же самое можно сделать и с помощью yaourt:

$ yaourt -S openconnect

Установка клиента OpenConnect SSL на Debian / Ubuntu

Для Debian и его производных установите пакет openconnect с помощью диспетчера пакетов apt.

$ sudo apt-get install openconnect

Установка клиента OpenConnect SSL на CentOS / RHEL

Для CentOS и RHEL пакет openconnect доступен в репозитории epel.

Добавьте репозиторий, затем установите пакет openconnect:

$ sudo yum install epel-release
$ sudo yum install openconnect

Установка клиента OpenConnect SSL на Fedora

Для Fedora пакет также доступен от epel.

Дело только в том, что имя менеджера пакетов изменяется:

$ sudo dnf install epel-release
$ sudo yum install openconnect

Установка клиента OpenConnect SSL на macOS

Для пользователей MacOS установите пакет openconnect с использованием brew

$ brew install openconnect

Как подключиться к SSL VPN Server с помощью Openconnect ( Вручную )

После того, как пакет openconnect был успешно установлен в вашей операционной системе, вы должны быть готовы к подключению к серверу SSL VPN, который может использовать Cisco AnyConnect SSL VPN и Juniper Pulse Connect Secure.

Простое соединение следует за синтаксисом:

$ sudo openconnect -u user --passwd-on-stdin vpnserver

Вам будет предложено ввести пароль, см. Пример ниже:

$ sudo openconnect 192.168.1.1
POST https://192.168.1.1/
Connected to 192.168.1.1:443
SSL negotiation with 192.168.1.1

Enter 'yes' to accept, 'no' to abort; anything else to view: yes
Connected to HTTPS on 192.168.1.1
Got HTTP response: HTTP/1.0 302 Object Moved
GET https://192.168.1.1/
Connected to 192.168.1.1:443
SSL negotiation with 192.168.1.1
Server certificate verify failed: signer not found
Connected to HTTPS on 192.168.1.1
Got HTTP response: HTTP/1.0 302 Object Moved
GET https://192.168.1.1/+webvpn+/index.html
SSL negotiation with 192.168.1.1
Connected to HTTPS on 192.168.1.1
Please enter your username and password.
GROUP: [ANYCONNECT_PROFILE]
Please enter your username and password.
Username:jmutai
Password:
POST https://192.168.1.1/+webvpn+/index.html
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 20
Connected as 192.168.4.2, using SSL
Established DTLS connection (using GnuTLS). Ciphersuite (DTLS0.9)-(DHE-RSA-4294967237)-(AES-256-CBC)-(SHA1).

Как подключиться к SSL VPN Server с помощью Openconnect с помощью скрипта Bash

Я написал скрипт bash, чтобы упростить подключение к серверу SSL Autoconnect SSL VPN.

Поместите его в ~ / .zshrc или ~ / .bashrc в зависимости от вашей оболочки.

myvpn () {
local vpn_server="vpnserver"
local vpn_username="user"
local vpn_password="password"
# try connect
while true; do
retry_time=$(($(date +%s) + 30))
sudo openconnect \
-u $vpn_username $vpn_server --non-inter --passwd-on-stdin <<< "$vpn_password"
current_time=`date +%s`
if [ $current_time -lt retry_time ]; then
sleep $(( $retry_time - $current_time ))
fi
done
}

Предоставьте правильные переменные и сохраните файл.

Теперь каждый раз, когда вы хотите подключиться к VPN, вызовите функцию по имени:

$ myvpn

Juniper Pulse Client

Чтобы подключиться к серверу Pulse Connect Secure, вам необходимо знать SHA-1 своего сертификата.

# openconnect --servercert=sha1:<HASH> \
--authgroup="single-Factor Pulse Clients" \
--protocol=nc <VPN_SERVER_ADDRESS>/dana-na/auth/url_6/welcome.cgi \
--pid-file="/var/run/work-vpn.pid" --user=<USERNAME>

В этом руководстве вы узнали, как установить и использовать клиент OpenConnect SSL на Linux и macOS.

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

 

Добавить комментарий

  1. Durdyshka

    Привет. Можете ли вы дать мне готовый скрипт, с автоматически установленными IP-адресами? Когда я указываю свой IP-адрес

    Ответить
    1. cryptoparty автор

      Привет. Немного не понял вопрос. Предполагаю, что вам надо добавить в переменную ваши адреса

      Ответить
  2. Durdyshka

    скрипт для anyconnect vpn

    Ответить
  3. Довлет

    добрый день я хочу создать opennconnect vpn можете дать готовый скрипт пожалуйста

    Ответить
    1. cryptoparty автор

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

      Ответить
  4. Вадим

    Здраствуйте. Можете мне как то помочь взломать телефон Андроид.? Который говорит со мной на языке китайском, вроде как. Буду весьма признателен

    Ответить
    1. cryptoparty автор

      Добрый день, не занимаемся взломом

      Ответить