LinuxForum.Fans
Тема

vpn client или как проще?

Автор: moshell 15 сообщений 3839 просмотров
#366233

на офтопике есть vpn клиент от cisco для удаленной работы.
есть файл конфигурации

text
gu@kat:~$ cat vpn.pcf 
[main]
Description=
Host=xxxxxxxxxxxxxxxxxxxxxxxxxx
AuthType=1
GroupName=xxxxxxxxxxxxxxxxx
GroupPwd=
enc_GroupPwd=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
EnableISPConnect=0
ISPConnectType=0
ISPConnect=sky
ISPPhonebook=C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk
ISPCommand=
Username=userpassword@domain
SaveUserPassword=0
UserPassword=
enc_UserPassword=
NTDomain=
EnableBackup=0
BackupServer=
EnableMSLogon=1
MSLogonType=0
EnableNat=1
TunnelingMode=0
TcpTunnelingPort=10000
CertStore=0
CertName=
CertPath=
CertSubjectName=
CertSerialHash=00000000000000000000000000000000
SendCertChain=0
PeerTimeout=90
EnableLocalLAN=0
EnableSplitDNS=1
gu@kat:~$ 

зная вот эти параметры, как можно осуществить vpn на debian'e?
утилита или пакет какой?

#366328

попробовал вот это
http://baheyeldin.com/cisco/converting-cisco-easy-vpn-pcf-files-linux-vpnc-configuration-format.html

ввожу пароль, получаю
[console]gu@kat:~$ sudo vpnc rtk
Enter password for userpassword@domain@blablabla:
vpnc: peer selected (single) DES as "encryption" method.
This algorithm is considered too weak today
If your vpn concentrator admin still insists on using DES
use the "--enable-1des" option.[/console]

пробую с предложенной опцией
[console]gu@kat:~$ sudo vpnc --enable-1des rtk
Enter password for userpassword@domain@blablabla:
Password for VPN userpassword@domain@drugoe_blablabla: [/console]
просит еще какой то дополнительный пароль.

#366370
pitdron написал:

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

к примеру
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
#include <linux/autoconf.h>

он давно уже перенесен в generated/autoconf.h

#366390

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

#366958

У меня под gentoo клиент vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz под ядро 3.7.10 собралось без ошибок с таким патчем:

text
diff -urbN vpnclient.orig/IPSecDrvOS_linux.c vpnclient/IPSecDrvOS_linux.c
--- vpnclient.orig/IPSecDrvOS_linux.c    2008-06-23 20:59:12.000000000 +0400
+++ vpnclient/IPSecDrvOS_linux.c    2014-02-17 20:33:14.000000000 +0400
@@ -12,7 +12,9 @@
 *
 ***************************************************************************/
 #include <linux/version.h>
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
+#include <generated/autoconf.h>
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
 #include <linux/autoconf.h>
 #else
 #include <linux/config.h>
diff -urbN vpnclient.orig/Makefile vpnclient/Makefile
--- vpnclient.orig/Makefile    2008-06-23 20:59:12.000000000 +0400
+++ vpnclient/Makefile    2014-02-17 20:33:14.000000000 +0400
@@ -12,7 +12,7 @@
 SOURCE_OBJS := linuxcniapi.o frag.o IPSecDrvOS_linux.o interceptor.o linuxkernelapi.o
 
 ifeq ($(SUBARCH),x86_64)
-CFLAGS += -mcmodel=kernel -mno-red-zone
+EXTRA_CFLAGS += -mcmodel=kernel -mno-red-zone
 NO_SOURCE_OBJS := libdriver64.so
 else
 NO_SOURCE_OBJS := libdriver.so
diff -urbN vpnclient.orig/driver_build.sh vpnclient/driver_build.sh
--- vpnclient.orig/driver_build.sh    2008-06-23 20:59:12.000000000 +0400
+++ vpnclient/driver_build.sh    2014-02-17 20:33:42.000000000 +0400
@@ -49,6 +49,9 @@
 2.[56].*)
     make "KERNEL_SOURCES=${KSRCDIR}"
     ;;
+3.*.*)
+    make "KERNEL_SOURCES=${KSRCDIR}"
+    ;;
 *)
     $CC $CFLAGS $INCLUDES -c linuxcniapi.c
     $CC $CFLAGS $INCLUDES -c interceptor.c
diff -urbN vpnclient.orig/frag.c vpnclient/frag.c
--- vpnclient.orig/frag.c    2008-06-23 20:59:12.000000000 +0400
+++ vpnclient/frag.c    2014-02-17 20:33:14.000000000 +0400
@@ -1,5 +1,7 @@
 #include <linux/version.h>
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
+#include <generated/autoconf.h>
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
 #include <linux/autoconf.h>
 #else
 #include <linux/config.h>
@@ -22,7 +24,7 @@
 #include "frag.h"
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
-#define SKB_IPHDR(skb) ((struct iphdr*)skb->network_header)
+#define SKB_IPHDR(skb) ((struct iphdr*)skb_network_header)
 #else
 #define SKB_IPHDR(skb) skb->nh.iph
 #endif
diff -urbN vpnclient.orig/interceptor.c vpnclient/interceptor.c
--- vpnclient.orig/interceptor.c    2009-05-20 17:16:34.000000000 +0400
+++ vpnclient/interceptor.c    2014-02-17 20:33:14.000000000 +0400
@@ -9,7 +9,9 @@
 * This module implements the linux driver.
 ***************************************************************************/
 #include <linux/version.h>
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
+#include <generated/autoconf.h>
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
 #include <linux/autoconf.h>
 #else
 #include <linux/config.h>
@@ -116,6 +118,14 @@
 };
 #endif
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+static struct net_device_ops interceptor_netdev_ops = {
+ .ndo_start_xmit = interceptor_tx,
+ .ndo_do_ioctl = interceptor_ioctl,
+ .ndo_get_stats = interceptor_stats,
+};
+#endif
+
 static struct notifier_block interceptor_notifier = {
     .notifier_call = handle_netdev_event,
 };
@@ -129,9 +139,13 @@
 {
     ether_setup(dev);
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    dev->netdev_ops = &interceptor_netdev_ops;
+#else
     dev->hard_start_xmit = interceptor_tx;
     dev->get_stats = interceptor_stats;
     dev->do_ioctl = interceptor_ioctl;
+#endif
 
     dev->mtu = ETH_DATA_LEN-MTU_REDUCTION;
     kernel_memcpy(dev->dev_addr, interceptor_eth_addr,ETH_ALEN);
@@ -243,6 +257,10 @@
     int rc = -1;
     int i = 0;
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    struct net_device_ops * tmp_ops;
+#endif
+
     if (!supported_device(dev))
     {
         goto exit_gracefully;
@@ -268,9 +286,14 @@
     Bindings[i].original_mtu = dev->mtu;
 
     /*replace the original send function with our send function */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    Bindings[i].InjectSend = dev->netdev_ops->ndo_start_xmit;
+    tmp_ops = (struct net_device_ops *) dev->netdev_ops;
+    tmp_ops->ndo_start_xmit = replacement_dev_xmit;
+#else
     Bindings[i].InjectSend = dev->hard_start_xmit;
     dev->hard_start_xmit = replacement_dev_xmit;
-
+#endif
     /*copy in the ip packet handler function and packet type struct */
     Bindings[i].InjectReceive = original_ip_handler.orig_handler_func;
     Bindings[i].pPT = original_ip_handler.pt;
@@ -286,12 +309,21 @@
     int rc = -1;
     BINDING *b;
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    struct net_device_ops * tmp_ops;
+#endif
+
     b = getbindingbydev(dev);
 
     if (b)
     {   
         rc = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+        tmp_ops = (struct net_device_ops *) dev->netdev_ops;
+        tmp_ops->ndo_start_xmit = b->InjectSend;
+#else
         dev->hard_start_xmit = b->InjectSend;
+#endif
         kernel_memset(b, 0, sizeof(BINDING));
     }
     else
@@ -637,19 +669,26 @@
 
     reset_inject_status(&pBinding->recv_stat);
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
-    if (skb->mac_header)
+    if (skb_mac_header_was_set(skb))
 #else
     if (skb->mac.raw)
 #endif
     {
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
-        hard_header_len = skb->data - skb->mac_header;
+        hard_header_len = skb->data - skb_mac_header(skb);
 #else
         hard_header_len = skb->data - skb->mac.raw;
 #endif
         if ((hard_header_len < 0) || (hard_header_len > skb_headroom(skb)))
         {
             printk(KERN_DEBUG "bad hh len %d\n", hard_header_len);
+
+            printk(KERN_DEBUG "bad hh len %d, mac: %ld, data: %p, head: %p\n",
+                hard_header_len,
+                (long) skb->mac_header,
+                skb->data,
+                skb->head);
+
             hard_header_len = 0;
         }
     }
@@ -664,7 +703,7 @@
     {
     case ETH_HLEN:
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
-        CniNewFragment(ETH_HLEN, skb->mac_header, &MacHdr, CNI_USE_BUFFER);
+        CniNewFragment(ETH_HLEN, skb_mac_header(skb), &MacHdr, CNI_USE_BUFFER);
 #else
         CniNewFragment(ETH_HLEN, skb->mac.raw, &MacHdr, CNI_USE_BUFFER);
 #endif
@@ -782,7 +821,7 @@
 #endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
     reset_inject_status(&pBinding->send_stat);
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
-    hard_header_len = skb->network_header - skb->data;
+    hard_header_len = skb_network_header(skb) - skb->data;
 #else
     hard_header_len = skb->nh.raw - skb->data;
 #endif
diff -urbN vpnclient.orig/linuxcniapi.c vpnclient/linuxcniapi.c
--- vpnclient.orig/linuxcniapi.c    2008-06-23 20:59:12.000000000 +0400
+++ vpnclient/linuxcniapi.c    2014-02-17 20:33:14.000000000 +0400
@@ -10,7 +10,9 @@
  * Linux Interceptor driver.
  ***************************************************************************/
 #include <linux/version.h>
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
+#include <generated/autoconf.h>
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
 #include <linux/autoconf.h>
 #else
 #include <linux/config.h>
@@ -338,8 +340,8 @@
     skb->ip_summed = CHECKSUM_UNNECESSARY;
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
-    skb->network_header = (sk_buff_data_t) skb->data;
-    skb->mac_header = (sk_buff_data_t)pMac;
+    skb_reset_network_header(skb);
+    skb_set_mac_header(skb, (int)((void *)pMac - (void *)skb->data));
 #else
     skb->nh.iph = (struct iphdr *) skb->data;
     skb->mac.raw = pMac;
@@ -478,8 +480,8 @@
     skb->dev = pBinding->pDevice;
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
-    skb->mac_header = (sk_buff_data_t)pMac;
-    skb->network_header = (sk_buff_data_t)pIP;
+    skb_set_mac_header(skb, (int)((void *)pMac - (void *)skb->data));
+    skb_set_network_header(skb, (int)((void *)pIP - (void *)skb->data));
 #else
     skb->mac.raw = pMac;
     skb->nh.raw = pIP;
@@ -487,8 +489,9 @@
 
     /*ip header length is in 32bit words */
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
-    skb->transport_header = (sk_buff_data_t)
-      (pIP + (((struct iphdr*)(skb->network_header))->ihl * 4));
+    skb_set_transport_header(skb,
+        ((int)((void *)pIP - (void *)skb->data) +
+           (((struct iphdr*)(skb_network_header(skb)))->ihl * 4)));
 #else
     skb->h.raw = pIP + (skb->nh.iph->ihl * 4);
 #endif
diff -urbN vpnclient.orig/linuxkernelapi.c vpnclient/linuxkernelapi.c
--- vpnclient.orig/linuxkernelapi.c    2008-06-23 20:59:12.000000000 +0400
+++ vpnclient/linuxkernelapi.c    2014-02-17 20:33:14.000000000 +0400
@@ -9,7 +9,7 @@
     void*rc = kmalloc(size, GFP_ATOMIC);
     if(NULL == rc)
     {
-        printk("<1> os_malloc size %d failed\n",size);
+        printk("<1> os_malloc size %ld failed\n", (long)size);
     }
 
     return rc;
diff -urbN vpnclient.orig/vpn_install vpnclient/vpn_install
--- vpnclient.orig/vpn_install    2008-06-23 20:59:12.000000000 +0400
+++ vpnclient/vpn_install    2014-02-17 20:36:45.000000000 +0400
@@ -320,6 +320,9 @@
 2.[56].*)
     MODULE_NAME=cisco_ipsec.ko
     ;;
+3.*.*)
+    MODULE_NAME=cisco_ipsec.ko
+    ;;
 *)
     MODULE_NAME=cisco_ipsec
     ;;

#367194

pitdron, я к сожалению (или к счастью) ни разу не программист.
можно чуть подробнее?

Вам нужна была 4я версия или 5я?

#367330
"moshell" написал:
нашел эти патчи. правит .h исходники, но вылазиют другие траблы

Для начала желательно озвучивать версии системы, ядра, ПО, а также приводить ошибки возникающие при попытке установки.


Для начала http://www.qdesnic.ru/cisco_vpnclient.html
http://www.lamnk.com/blog/vpn/how-to-install-cisco-vpn-client-on-ubuntu-jaunty-jackalope-and-karmic-koala-64-bit/

Для успешной сборки модуля ядра необходимо установить исходные коды вашего ядра, компилятор gcc и утилиту make.

Затем качаете Cisco VPN client для linux (я брал поссылке из статьи http://projects.tuxx-home.at/ciscovpn/clients/linux/4.8.02/vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz ) и распаковываете его ( tar xzvf vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz ).

Сохраняете текст выше приведенного патча в файле ciscovpn.patch и накладываете его на распакованный клиент

text
patch -p0 <ciscovpn.patch

Должны получить следующее
[console]gentoo tmp # patch -p0 <ciscovpn.patch
patching file vpnclient/IPSecDrvOS_linux.c
patching file vpnclient/Makefile
patching file vpnclient/driver_build.sh
patching file vpnclient/frag.c
patching file vpnclient/interceptor.c
patching file vpnclient/linuxcniapi.c
patching file vpnclient/linuxkernelapi.c
patching file vpnclient/vpn_install[/console]
Затем переходите в папку vpnclient и запускаете vpn_install

Должны получить примерно такую картину

Показать
[console]gentoo tmp # cd vpnclient
gentoo vpnclient # ./vpn_install
Cisco Systems VPN Client Version 4.8.02 (0030) Linux Installer
Copyright (C) 1998-2006 Cisco Systems, Inc. All Rights Reserved.

By installing this product you agree that you have read the
license.txt file (The VPN Client license) and will comply with
its terms.


Directory where binaries will be installed [/usr/local/bin]

Automatically start the VPN service at boot time [no]

In order to build the VPN kernel module, you must have the
kernel headers for the version of the kernel you are running.


Directory containing linux kernel source code [/lib/modules/3.7.10-gentoo/build]

* Binaries will be installed in "/usr/local/bin".
* Modules will be installed in "/lib/modules/3.7.10-gentoo/CiscoVPN".
* The VPN service will *NOT* be started automatically at boot time.
* Kernel source from "/lib/modules/3.7.10-gentoo/build" will be used to build th
e module.

Is the above correct [y]

Making module
/usr/bin/make -C /lib/modules/3.7.10-gentoo/build SUBDIRS=/root/tmp/vpnclient mo
dules
make[1]: Entering directory `/usr/src/linux-3.7.10-gentoo'
CC [M] /root/tmp/vpnclient/linuxcniapi.o
CC [M] /root/tmp/vpnclient/frag.o
CC [M] /root/tmp/vpnclient/IPSecDrvOS_linux.o
CC [M] /root/tmp/vpnclient/interceptor.o
CC [M] /root/tmp/vpnclient/linuxkernelapi.o
LD [M] /root/tmp/vpnclient/cisco_ipsec.o
Building modules, stage 2.
MODPOST 1 modules
CC /root/tmp/vpnclient/cisco_ipsec.mod.o
LD [M] /root/tmp/vpnclient/cisco_ipsec.ko
make[1]: Leaving directory `/usr/src/linux-3.7.10-gentoo'
Copying module to directory "/lib/modules/3.7.10-gentoo/CiscoVPN".
Already have group 'bin'

Creating start/stop script "/etc/init.d/vpnclient_init".
/etc/init.d/vpnclient_init
Creating global config /etc/opt/cisco-vpnclient

Installing license.txt (VPN Client license) in "/opt/cisco-vpnclient/":
/opt/cisco-vpnclient/license.txt

Installing bundled user profiles in "/etc/opt/cisco-vpnclient/Profiles/":
* New Profiles : sample

Copying binaries to directory "/opt/cisco-vpnclient/bin".
Adding symlinks to "/usr/local/bin".
/opt/cisco-vpnclient/bin/vpnclient
/opt/cisco-vpnclient/bin/cisco_cert_mgr
/opt/cisco-vpnclient/bin/ipseclog
Copying setuid binaries to directory "/opt/cisco-vpnclient/bin".
/opt/cisco-vpnclient/bin/cvpnd
Copying libraries to directory "/opt/cisco-vpnclient/lib".
/opt/cisco-vpnclient/lib/libvpnapi.so
Copying header files to directory "/opt/cisco-vpnclient/include".
/opt/cisco-vpnclient/include/vpnapi.h

Setting permissions.
/opt/cisco-vpnclient/bin/cvpnd (setuid root)
/opt/cisco-vpnclient (group bin readable)
/etc/opt/cisco-vpnclient (group bin readable)
/etc/opt/cisco-vpnclient/Profiles (group bin readable)
/etc/opt/cisco-vpnclient/Certificates (group bin readable)
* You may wish to change these permissions to restrict access to root.
* You must run "/etc/init.d/vpnclient_init start" before using the client.
* You will need to run this script every time you reboot your computer.
gentoo vpnclient #[/console]
#367681

pitdron
установился без ошибок.
но ошибка при запуске, последний квотинг.

или нужно ребутиться?

Показать

gu@kat:~$ cd /usr/src/
gu@kat:/usr/src$ sudo wget http://projects.tuxx-home.at/ciscovpn/clients/linux/4.8.02/vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz
[sudo] password for gu:
--2014-02-20 18:34:36-- http://projects.tuxx-home.at/ciscovpn/clients/linux/4.8.02/vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz
Распознаётся projects.tuxx-home.at (projects.tuxx-home.at)... 188.65.79.164
Подключение к projects.tuxx-home.at (projects.tuxx-home.at)|188.65.79.164|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: 2050813 (2,0M) [application/x-gzip]
Сохранение в каталог: ««vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz»».

100%[==============================================================================================================================>] 2 050 813 951K/s за 2,1s

2014-02-20 18:34:38 (951 KB/s) - «vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz» saved [2050813/2050813]

gu@kat:/usr/src$ sudo vim ciscovpn.patch
gu@kat:~$ uname -a
Linux kat 3.2.0-4-686-pae #1 SMP Debian 3.2.54-2 i686 GNU/Linux

gu@kat:/usr/src$ sudo aptitude install linux-headers-3.2.0-4-686-pae linux-image-3.2.0-4-686-pae
Следующие НОВЫЕ пакеты будут установлены:
cpp-4.6{a} gcc-4.6{a} gcc-4.6-base{a} linux-headers-3.2.0-4-686-pae linux-headers-3.2.0-4-common{a} linux-kbuild-3.2{a}
0 пакетов обновлено, 6 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 16,5 MB архивов. После распаковки 54,7 MB будет занято.
Хотите продолжить? [Y/n/?] Y
Получить: 1 http://ftp.ru.debian.org/debian/ wheezy/main gcc-4.6-base i386 4.6.3-14 [142 kB]
Получить: 2 http://ftp.ru.debian.org/debian/ wheezy/main cpp-4.6 i386 4.6.3-14 [4 654 kB]
Получить: 3 http://ftp.ru.debian.org/debian/ wheezy/main gcc-4.6 i386 4.6.3-14 [7 338 kB]
Получить: 4 http://ftp.ru.debian.org/debian/ wheezy/main linux-headers-3.2.0-4-common i386 3.2.54-2 [3 561 kB]
Получить: 5 http://ftp.ru.debian.org/debian/ wheezy/main linux-kbuild-3.2 i386 3.2.17-1 [233 kB]
Получить: 6 http://ftp.ru.debian.org/debian/ wheezy/main linux-headers-3.2.0-4-686-pae i386 3.2.54-2 [602 kB]
Получено 16,5 MБ в 3с (4 191 kБ/с)
Выбор ранее не выбранного пакета gcc-4.6-base:i386.
(Чтение базы данных … на данный момент установлено 35379 файлов и каталогов.)
Распаковывается пакет gcc-4.6-base:i386 (из файла …/gcc-4.6-base_4.6.3-14_i386.deb) …
Выбор ранее не выбранного пакета cpp-4.6.
Распаковывается пакет cpp-4.6 (из файла …/cpp-4.6_4.6.3-14_i386.deb) …
Выбор ранее не выбранного пакета gcc-4.6.
Распаковывается пакет gcc-4.6 (из файла …/gcc-4.6_4.6.3-14_i386.deb) …
Выбор ранее не выбранного пакета linux-headers-3.2.0-4-common.
Распаковывается пакет linux-headers-3.2.0-4-common (из файла …/linux-headers-3.2.0-4-common_3.2.54-2_i386.deb) …
Выбор ранее не выбранного пакета linux-kbuild-3.2.
Распаковывается пакет linux-kbuild-3.2 (из файла …/linux-kbuild-3.2_3.2.17-1_i386.deb) …
Выбор ранее не выбранного пакета linux-headers-3.2.0-4-686-pae.
Распаковывается пакет linux-headers-3.2.0-4-686-pae (из файла …/linux-headers-3.2.0-4-686-pae_3.2.54-2_i386.deb) …
Настраивается пакет gcc-4.6-base:i386 (4.6.3-14) …
Настраивается пакет cpp-4.6 (4.6.3-14) …
Настраивается пакет gcc-4.6 (4.6.3-14) …
Настраивается пакет linux-headers-3.2.0-4-common (3.2.54-2) …
Настраивается пакет linux-kbuild-3.2 (3.2.17-1) …
Настраивается пакет linux-headers-3.2.0-4-686-pae (3.2.54-2) …

gu@kat:/usr/src$ sudo tar xzvf vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz
vpnclient/
vpnclient/libvpnapi.so
vpnclient/vpnapi.h
vpnclient/cisco_cert_mgr
vpnclient/vpnclient
vpnclient/ipseclog
vpnclient/cvpnd
vpnclient/vpn_install
vpnclient/vpnclient_init
vpnclient/vpn_uninstall
vpnclient/driver_build.sh
vpnclient/sample.pcf
vpnclient/vpnclient.ini
vpnclient/license.txt
vpnclient/license.rtf
vpnclient/interceptor.c
vpnclient/linuxcniapi.c
vpnclient/linuxcniapi.h
vpnclient/vpn_ioctl_linux.h
vpnclient/IPSecDrvOS_linux.c
vpnclient/linux_os.h
vpnclient/frag.h
vpnclient/frag.c
vpnclient/linuxkernelapi.c
vpnclient/GenDefs.h
vpnclient/mtu.h
vpnclient/IPSecDrvOSFunctions.h
vpnclient/IPSecDrvOS_linux.h
vpnclient/Cniapi.h
vpnclient/unixcniapi.h
vpnclient/unixkernelapi.h
vpnclient/config.h
vpnclient/libdriver64.so
vpnclient/libdriver.so
vpnclient/Makefile
vpnclient/AMD-PATCH-README.txt
gu@kat:/usr/src$ ls -l
итого 2028
-rw-r--r-- 1 root root 9271 Фев 20 18:36 ciscovpn.patch
drwxr-xr-x 4 root root 4096 Фев 20 18:39 linux-headers-3.2.0-4-686-pae
drwxr-xr-x 4 root root 4096 Фев 20 18:39 linux-headers-3.2.0-4-common
lrwxrwxrwx 1 root root 23 Июн 24 2012 linux-kbuild-3.2 -> ../lib/linux-kbuild-3.2
drwxr-xr-x 2 gu gu 4096 Май 20 2009 vpnclient
-rw-r--r-- 1 root root 2050813 Май 20 2009 vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz
gu@kat:/usr/src$ patch -p0 <ciscovpn.patch
patching file vpnclient/IPSecDrvOS_linux.c
patching file vpnclient/Makefile
patching file vpnclient/driver_build.sh
patching file vpnclient/frag.c
patching file vpnclient/interceptor.c
patching file vpnclient/linuxcniapi.c
patching file vpnclient/linuxkernelapi.c
patching file vpnclient/vpn_install
gu@kat:/usr/src$ cd vpnclient/
gu@kat:/usr/src/vpnclient$ sudo ./vpn_install
Cisco Systems VPN Client Version 4.8.02 (0030) Linux Installer
Copyright (C) 1998-2006 Cisco Systems, Inc. All Rights Reserved.

By installing this product you agree that you have read the
license.txt file (The VPN Client license) and will comply with
its terms.


Directory where binaries will be installed [/usr/local/bin]

Automatically start the VPN service at boot time [yes]no

In order to build the VPN kernel module, you must have the
kernel headers for the version of the kernel you are running.


Directory containing linux kernel source code [/lib/modules/3.2.0-4-686-pae/build]

* Binaries will be installed in "/usr/local/bin".
* Modules will be installed in "/lib/modules/3.2.0-4-686-pae/CiscoVPN".
* The VPN service will *NOT* be started automatically at boot time.
* Kernel source from "/lib/modules/3.2.0-4-686-pae/build" will be used to build the module.

Is the above correct [y]

Making module
make -C /lib/modules/3.2.0-4-686-pae/build SUBDIRS=/usr/src/vpnclient modules
make[1]: Entering directory `/usr/src/linux-headers-3.2.0-4-686-pae'
CC [M] /usr/src/vpnclient/linuxcniapi.o
CC [M] /usr/src/vpnclient/frag.o
CC [M] /usr/src/vpnclient/IPSecDrvOS_linux.o
CC [M] /usr/src/vpnclient/interceptor.o
CC [M] /usr/src/vpnclient/linuxkernelapi.o
LD [M] /usr/src/vpnclient/cisco_ipsec.o
Building modules, stage 2.
MODPOST 1 modules
CC /usr/src/vpnclient/cisco_ipsec.mod.o
LD [M] /usr/src/vpnclient/cisco_ipsec.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-4-686-pae'
Create module directory "/lib/modules/3.2.0-4-686-pae/CiscoVPN".
Copying module to directory "/lib/modules/3.2.0-4-686-pae/CiscoVPN".
Already have group 'bin'

Creating start/stop script "/etc/init.d/vpnclient_init".
/etc/init.d/vpnclient_init
Creating global config /etc/opt/cisco-vpnclient

Installing license.txt (VPN Client license) in "/opt/cisco-vpnclient/":
/opt/cisco-vpnclient/license.txt

Installing bundled user profiles in "/etc/opt/cisco-vpnclient/Profiles/":
* New Profiles : sample

Copying binaries to directory "/opt/cisco-vpnclient/bin".
Adding symlinks to "/usr/local/bin".
/opt/cisco-vpnclient/bin/vpnclient
/opt/cisco-vpnclient/bin/cisco_cert_mgr
/opt/cisco-vpnclient/bin/ipseclog
Copying setuid binaries to directory "/opt/cisco-vpnclient/bin".
/opt/cisco-vpnclient/bin/cvpnd
Copying libraries to directory "/opt/cisco-vpnclient/lib".
/opt/cisco-vpnclient/lib/libvpnapi.so
Copying header files to directory "/opt/cisco-vpnclient/include".
/opt/cisco-vpnclient/include/vpnapi.h

Setting permissions.
/opt/cisco-vpnclient/bin/cvpnd (setuid root)
/opt/cisco-vpnclient (group bin readable)
/etc/opt/cisco-vpnclient (group bin readable)
/etc/opt/cisco-vpnclient/Profiles (group bin readable)
/etc/opt/cisco-vpnclient/Certificates (group bin readable)
* You may wish to change these permissions to restrict access to root.
* You must run "/etc/init.d/vpnclient_init start" before using the client.
* You will need to run this script every time you reboot your computer.

gu@kat:~$ sudo cp /files/docs/PROJECT\ РТ/vpn.pcf /etc/opt/cisco-vpnclient/Profiles/rtk.pcf

gu@kat:~$ sudo /etc/init.d/vpnclient_init start
Starting /opt/cisco-vpnclient/bin/vpnclient: Error: could not load module /lib/modules/3.2.0-4-686-pae/CiscoVPN/cisco_ipsec: No such file or directory
Failed (insmod)
#367685

после ребута тож самое.
что это такое?
модуль не установился?

gu@kat:~$ sudo /etc/init.d/vpnclient_init start
[sudo] password for gu:
Starting /opt/cisco-vpnclient/bin/vpnclient: Error: could not load module /lib/modules/3.2.0-4-686-pae/CiscoVPN/cisco_ipsec: No such file or directory
Failed (insmod)

хотя он есть.

gu@kat:~$ sudo ls -l /lib/modules/3.2.0-4-686-pae/CiscoVPN/cisco_ipsec.ko
-rw-r--r-- 1 root root 981648 Фев 20 18:41 /lib/modules/3.2.0-4-686-pae/CiscoVPN/cisco_ipsec.ko
но он видимо не загружается.. что делать?


как следствие

gu@kat:~$ sudo /etc/init.d/vpnclient_init status
[sudo] password for gu:
Module Size Used by

Status Failed (lsmod cisco_ipsec) - The VPN module is not loaded.

cipsec0: error fetching interface information: Device not found

Status Failed (ifconfig cipsec0) - The virtual interface is not present.
gu@kat:~$ sudo modprobe cisco_ipsec
FATAL: Module cisco_ipsec not found.
gu@kat:~$ sudo ls -l /lib/modules/3.2.0-4-686-pae/CiscoVPN/cisco_ipsec.ko
-rw-r--r-- 1 root root 981648 Фев 20 18:41 /lib/modules/3.2.0-4-686-pae/CiscoVPN/cisco_ipsec.ko
gu@kat:~$

pitdron, выходите на связь, вы по ходу единственный кто использует cisco vpn клиент для linux

#367715

попробовал пойти следующим образом

gu@kat:~$ sudo insmod /lib/modules/3.2.0-4-686-pae/CiscoVPN/cisco_ipsec.ko
gu@kat:~$ lsmod | grep cisco
cisco_ipsec 576948 0
gu@kat:~$ sudo /etc/init.d/vpnclient_init status
Module Size Used by
cisco_ipsec 576948 0

cipsec0 Link encap:Ethernet HWaddr 00:0b:fc:f8:01:8f
NOARP MTU:1356 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

gu@kat:~$

ага, если insmod'у указать полный путь до модуля, то он его подхватывает.
далее, если попробовать законнектиться к vpn

gu@kat:~$ sudo vpnclient connect rtk

rtk - это конфиг /etc/opt/cisco-vpnclient/Profiles/rtk.pcf
то ядро с пеной во рту начинает гадить, да так, что shutdown -r now не проходит.
на хардварные кнопки не реагирует, чтобы выключить комп. приходится от сети вырубать.

#367719

"почитал" файлик /etc/init.d/vpnclient_init
смущает отрывок

case `uname -r` in
2.[56].*)
VPNMOD_FILE="${VPNMOD}.ko"
;;
*)
# VPNMOD_FILE="$VPNMOD"
;;
esac

почему для ядра != 2.[56].* VPNMOD без .ko?
##########
далее еще один кусок из файла
case "`uname -r`" in
2.6.*)
;;
2.5.*)
;;
2.4.*)
;;
2.2.*)
;;
2.0.*)

#
# This is only needed due to a bug in 2.0.x kernels that affects
# arp lookups.
#
ifconfig $VPNDEV 222.222.222.222 ;
if [ "$?" != "0" ] ; then
echo "Failed (ifconfig)"
/sbin/rmmod ${VPNMOD}
exit 1
fi
;;
*)
echo "Failed (unsupported Linux version)"
/sbin/rmmod ${VPNMOD}
exit 1
;;
esac

то есть если ядро из варианта
*)
коим 3.2.0 и является в данном случае, то оно не поддерживаемое?

#367834
pitdron написал:
Тут https://github.com/mariuszs/CiscoVpnClient-Patches пишут что ядро выше 3.1 не поддерживается...

то есть вы собирали под свое 3.7 но не использовали?

pitdron написал:

уже видел эту страничку, когда воевал с vpnc..


гады эти сиськи!
нафига было рубить дальнейшую поддержку линукс клиентов?

Войдите или зарегистрируйтесь, чтобы ответить.