Cisco VPN Client – отдалечена връзка до ресурсите във вътрешната мрежа. Част втора – Linux open source клиент

В тази част от поредицата статии, за изграждане на връзка към вътрешната фирмена мрежа, посредством Cisco VPN, ще разгледаме използването на Linux клиент с отворен код (open source). Клиентите под Linux се делят на конзолни (vpnc) и графични (най-разпространени са kvpnc и NetworkManager).

1. VPNC

VPNC e проект, който има за цел да предостави възможност за изграждане на връзка до Cisco VPN сървър. Също така, графичните клиенти за Linux разчитат на това, на системата да има инсталиран VPNC, за да могат да изградят връзката. На практика VPNC се явява както терминално приложение, така и библиотека  за различните графични инструменти.

VPNC може да бъде инсталиран заедно със системата, но може и да не е. Това зависи изцяло от избора на пакети по време на инсталацията. За да проверите, дали на системата има инсталиран VPNC, отворете който и да е терминален емулатор (например xterm, konsole, gnome-terminal), след което изпълнете следните команди:

ivailo@voyager:~> su
Password:
voyager:/home/ivailo # vpnc --version
vpnc version 0.5.3
Copyright (C) 2002-2006 Geoffrey Keating, Maurice Massar, others
vpnc comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of vpnc under the terms of the GNU General
Public License.  For more information about these matters, see the files
named COPYING.
Built with certificate support.

Supported DH-Groups: nopfs dh1 dh2 dh5
Supported Hash-Methods: md5 sha1
Supported Encryptions: null des 3des aes128 aes192 aes256
Supported Auth-Methods: psk psk+xauth hybrid(rsa)
voyager:/home/ivailo #

При различните Linux дистрибуции е възможно тези команди да бъдат малко по-различни. На пример при Ubuntu и дериватите му вместо su може да се използва sudo, за да се изпълни командата “vpnc –version”. Sudo е инструмент, който временно дава административни права на обикновен потребител. По принцип, тази команда се среща при всички Linux дистрибуции, но при някои от тях (например Fedora), обикновените потребители нямат възможност да я използват, без предварителни настройки от страна на администратора. При някои дистрибуции дори е възможно да изпълните “vpnc –version” без да имате административни права. При други като openSuSE, това е невъзможно.

Ако вместо подробна информация, като тази горе, получите съобщение, подобно на

bash: vpnc: command not found

то на системата няма инсталиран VPNC. За да инсталирате клиента използвайте пакетния мениджър на системата или свалете source code пакета от страницата на проекта (http://www.unix-ag.uni-kl.de/~massar/vpnc/), компилирайте го и го инсталирайте.

VPNC използва два начина, за да конфигурира и осъществи връзка – въвеждане на информацията при стартиране на програмата и използване на профил, генериран от съществуващ pcf файл.

При първия метод, когато стартирате програмата, тя ви задава серия от въпроси:

  1. Enter IPSec gateway address – това е адреса на сървъра, с който се опитвате да се свържете
  2. Enter IPSec ID for <ip address> – името на VPN групата
  3. Enter IPSec secret for <group name>@<ip address> – паролата за VPN групата
  4. Enter username for <ip address> – потребителя, предоставен ви от мрежовия администратор
  5. Enter password for <username>@<ip address> – вашата парола

Програмата се стартира по следния начин:

ivailo@voyager:~> su
Password:
voyager:/home/ivailo # vpnc

Програмата задължително трябва да се стартира като администратор (root), защото при изграждането на връзката се правят промени по конфигурацията, които изискват административни права. След въвеждането на информацията, програмата изгражда връзка и преминава във фонов режим. За да прекъснете връзката е необходимо да изпълните като администратор:

voyager:/home/ivailo # vpnc-disconnect
Terminating vpnc daemon (pid: 4872)

При втория метод е необходимо първо да конвертирате pcf файла към конфигурационен файл на VPNC използвайки инструмента pcf2vpnc:

/usr/bin/pcf2vpnc converts VPN-config files from pcf to vpnc-format.
Usage: /usr/bin/pcf2vpnc  [vpnc file]
voyager:/home/ivailo #

Програмата е част от пакета на VPNC. Все пак е възможно да имате инсталиран VPNC, но да нямате pcf2vpnc. При тази ситуяция, свалете програмата от страницата на проекта – http://svn.unix-ag.uni-kl.de/vpnc/trunk/pcf2vpnc

wget http://svn.unix-ag.uni-kl.de/vpnc/trunk/pcf2vpnc
chmod +x pcf2vpnc
mv pcf2vpnc /usr/local/bin/

Програмата разчита на програма за декриптиране на паролите, запазени в pcf файла:

wget http://www.unix-ag.uni-kl.de/~massar/soft/cisco-decrypt.c
gcc -Wall -o cisco-decrypt cisco-decrypt.c $(libgcrypt-config --libs --cflags)
mv cisco-decrypt /usr/local/bin

За да компилирате тази програма, на системата трябва да бъдат инсталирани библиотеките за разработка libgcrypt-dev и libgpg-error-dev. За да конвертирате pcf файл направете следното:

pcf2vpnc test.pcf > test.conf
cp client.conf /etc/vpnc

За да направите връзка, използвайки конфигурационния файл, стартирайте VPNC, като след името на програмата добавите името на профила:

vpnc test

2. KVpnc

KVpnc е графичен интерфейс за VPNC, Cisco VPN клиента за Linux, OpenVPN както и някои други VPN услуги. Това означава, че за да е възможно да бъде осъществена Cisco VPN връзка е необходимо на системата да има енсталиран или VPNC или Cisco VPN клиент за Linux (който ще бъде разгледан подробно в следващата част на поредицата).

Обикновенно KVpnc не се инсталира заедно със системата, за това е необходимо да го инсталирате допълнително, или като използвате пакетния мениджър на съответната дистрибуция, или като го компилирате от source code. Ако искате да свалите последната версия, а тя не е налична от хранилищата на дистрибуцията която използвате, можете да го направите от сайта на проекта – http://home.gna.org/kvpnc/en/index.html

Самата програма е правена за KDE, за това за да можете да я използвате е необходимо да имате инсталирани определени части от KDE, дори и да използвате друга графична среда. Ако инсталирате програмата от хранилищата на дистрибуцията, пакетния мениджър ще се погрижи да инсталира всички зависимости вместо Вас. Ако компилирате програмата от source code, то прегледайте зависимостите на следната страница: http://home.gna.org/kvpnc/en/documentation.html

Ето как изглежда основния прозорец на KVpnc:

KVpnc – Основен прозорец
Както и при Cisco VPN клиента за Windows, тук има бутони за осъществяване на връзка, прекъсване на връзка и управление на профилите. Всички тези функции, както и други, са налични и в менютата на програмата. Също програмата приема директен импорт на pcf файлове, така че, ако вече имате направен pcf файл, можете направо да го внесете в програмата. Това става от менюто “Profile”, като изберете елемента “Import Cisco pcf file”. Ако пък не разполагате с готов pcf файл, можете да използвате помощника за създаване на нова връзка, който се намира в менюто “Profile”, елемент “New profile (Wizard)”

KVpnc – помощник за създаване на нов профил
Както се вижда от горното изображение, програмата е в състояние да създаде профили за множество различни VPN услуги. За да създадете профил за използване с VPNC, изберете елемента Cisco (free). Следващата стъпка ви позволява да внесете съществуващ pcf файл или да продължите със създаването на нов профил.

KVpnc – избор на типа на съществуващ или нов профил

В следващите няколко екрана въвеждате информацията, която използвахте за създаването на профил в клиента за Windows. След като веднъж сте създали профила, за да осъществите връзка, избирате профила от падащото меню “Profile” в главния прозорец и натискаме бутона “Connect”. В главния прозорец се появяват различни съобщения относно изградената връзка, включително нейната продължителност. След като приключите работа, натискате бутона “Disconnect”, за да прекъснете връзката. Важно е да се отбележи, че за да работи KVpnc се нуждае от администраторски права на машината.

3. NetworkManager

За разлика от KVpnc, NetowkrManager не е програма, писана за KDE и не е програма, направена единствено за да управлява VPN връзки. NetworkManager е програма, създадена за да улесни управлението на мрежовите връзки в Linux дистрибуциите, като използва профили и не се нуждае от административни права, за да променя мрежови настройки на машината. Тези неща я правят предпочитана програма за управление на мрежови връзки и в частност на VPN връзки. Подобно на KVpnc, NetworkManager се нуждае от инсталиран VPNC, но не може да управлява връзки на Cisco VPN клиента за Linux.

За да използвате NetworkManager за изграждане на VPNC връзка, е необходимо да инсталирате съответния плъгин:

  1. NetworkManager-vpnc – това е основния плъгин. Той е задължителен, защото на практика той управлява самото изграждане на връзката
  2. NetworkManager-vpnc-kde4 – графичен интерфейс за KDE
  3. NetworkManager-vpnc-gnome – графичен интерфейс за Gnome

В зависимост от това, коя графична среда използвате, инсталирате или втория или третия плъгин. След инсталацията, в основния интерфейс на NetworkManager се появява допълнителен елемент – VPN. Тъй като използвам KDE, обясненията ще бъдат за тази среда. Настройките под Gnome са сходни като имена и подредба в интерфейса.

KDE NetworkManager - Управление на VPN връзките

От бутона “Add”, изберете VPNC, след което въведете детайлите за връзката в появилия се прозорец. NetworkManager няма възможност да използва pcf файлове, така че се налага да въведете данните ръчно.

KDE NetworkManager - Създаване на нова VPN връзкаСлед създаване на връзката, тя се появява в менюто на NetworkManager, което може да бъде достъпено от системната лента с инструменти. Активирането на връзката става, чрез избирането на съответния елемент (името на връзката) от менюто. Деактивирането на връзката става от същото място.

4. Предимства и недостатъци на VPNC

Основното предимство на използването на VPNC (open source клиента за Cisco VPN) и неговите графични интерфейси е, тъй като програмата е с отворен код, тя се развива доста по-бързо от официалния клиент на Cisco и ако в нея има грешки, те се отстраняват за кратко време. Освен това тя се интегрира добре в Linux дистрибуциите и е много лесна за използване.

Като недостатък мога да отбележа факта, че към днешна дата VPNC не поддържа VPN връзка през TCP протокол. Според официалния сайт на проекта, това е възможно да се промени, но кога – не е ясно. Така че ако вашата VPN връзка изисква TCP, то е необходимо да се насочите към официалния Cisco VPN клиент за Linux, който ще разгледам в следващата част на поредицата.

Comments are closed.