Gentoo用のKerio VPNクライアント

非常に長い間、この同じkerio vpnクライアントを介して私に配布されたインターネットを使用するために、Windowsを搭載した別のコンピューターをプロキシとして保持する必要がありました。 厳密に監視し、アンチウイルスなどを更新する必要があった唯一のマシンでした。 なぜ窓なのか? はい、前述のソフトウェアはこのOS専用でした。 なぜプロキシなのか? はい、kvcが何らかの理由でネットワーク接続を確立するため、ローカルにインストールされたアプリケーションのみがインターネットに接続できます...何らかの方法で、このWindowsからゲートウェイを構成できませんでした。
しかし最近、私には(そして、おそらくこの記事を読んでいる人にも)抜け道があることがわかりました

それでは始めましょう。

ソフトウェアは、核モジュールとネットワークデーモンで構成されており、実際には接続を確立します。
kerioのWebサイトで、Ubuntu / Debian用の既製* .debパッケージをダウンロードできます( download.kerio.com/archive/download.php )。 これらのインストールは、インストールと構成の手順が添付されていることに加えて、非常に簡単です。
しかし、Gentooを搭載したマシンにすべてをインストールして設定する必要がありました。 ホームルーターはその下で回転しています。

設置



幸いなことに、モジュールのソースコードは同じリンクからダウンロードすることもできます(後で判明したように、debパッケージにはソースコードも含まれていました)。
したがって、ソースコード(kvnetカーネルモジュールソース)をダウンロードします。 パッケージを展開し、 kvnet / drivers / vpn / linuxディレクトリに移動します。
ここには、有用なものを抽出できないソースコードとMakefileがあります。 短いGoogle検索の後、kerioフォーラムで解決策が見つかりました(Makefile構文で何も理解していないため、googleが必要でした)。
Makefileを次のようにする必要があります。

obj-m += kvnet.o
KDIR:= /lib/modules/$(shell uname -r)/build
PWD:=$(shell pwd)
kvnet-objs := \
init.o \
io_dev.o \
io_read.o \
io_write.o \
net_dev.o \
queue.o \
vnet.o \
utils.o

EXTRA_CFLAGS += -O -Wall -DMODULE -DWINNT=0 -DDBG=0 -D_LINUX
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules

clean:
-rm -f *.o *.ko *.cmd *.flags *.mod.c


ここで、 makeコマンドを使用して、カーネルモジュールが構築されます。 それをダウンロードするだけで、次の一連のアクションを実行しています。



モジュールは問題なくロードされるはずです(カーネル2.6.27-2.6.30で試されました)。
それでは悪魔に取り掛かりましょう。 記事の冒頭で与えられたのと同じリンクで、ファイルkerio-kvc_6.6.0-5729-1_i386.debをダウンロードします
開梱します。 次に、現れたdata.tar.gzファイルを解凍します
そこから、ファイルusr / lib / libkvnet.oおよび/ usr / sbin / kvpnsvcを適切なディレクトリにすぐに転送します。 その後、次の内容で構成ファイル/etc/kerio-kvc.confを作成します。

  <構成>
  <接続>
  <接続タイプ=「永続的」>
   <サーバー> un。 サーバー</ server>
   <port> 4090 </ port>
   <username>ユーザー名</ username>
   <password> XOR:Xorのパスワード</ password>
   <fingerprint>サーバーの指紋</ fingerprint>
   <アクティブ> 1 </アクティブ>
  </ connection>
  </ connections>
 </ config>

残念ながら、パスワードと指紋を生成する方法はわかりませんが、ubuntuを使用して仮想マシンから構成を借用しました。 そこで、設定は次のコマンドによって実行されました: dpkg-reconfigure kerio-kvc 、その後サーバーIP、ログイン、パスワードをインタラクティブに入力し、パスワードがクエリされ、サーバーは自動的に指紋を要求しました。
関連情報が得られたらすぐに、すぐに記事に追加します。

configを作成しました。次に実行を試みます。

kvpnsvc

悪魔はエラーで落ちました

kvpncsvc:シンボル検索エラー:./kvpncsvc:未定義シンボル:gzopen64

ソリューションはkerioフォーラムでも見つかりました。 16進エディターでkvpncsvcファイルを開き、gzopen64を含む行を見つける必要があります。 最後の2文字を削除する必要があります。 つまり バイト36 34の代わりに00 00を入力します。 その後、すべてがスムーズに始まります。
デーモンは、起動されたディレクトリにログを含むフォルダーを作成することに注意してください。
さらに、ケリオのプログラマーは、悪魔を書くときに彼らのレパートリーの中にいました。 接続するとき、デーモンはサーバーから受け取った設定からデフォルトゲートウェイを設定する必要があります。設定しない場合、デーモンは接続を介したルーティングを拒否します。 何かを誤解したかもしれませんが、接続を確立し、必要なゲートウェイを手動で設定したとき、インターネットがなく、ログにデーモンはパケットをルーティングできないと言っていました。 したがって、デーモンを起動する前に、デフォルトゲートウェイを削除する(およびLANが機能するために必要なルートを登録する)必要があります。

ルートの問題は、/ etc / conf.d / netファイルに追加することで解決しました
また、デーモンを起動するために、次のファイルが作成されました。
/ sbin / kerio_start:

#!/bin/bash
route del default
modprobe kvnet
cd /var/log/kvnet
kvpncsvc


/etc/init.d/kerio

#!/sbin/runscript
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

depend() {
need net
}

start() {
ebegin "Startung Kerio VPN Client Daemon"
start-stop-daemon --start --quiet --chuid root --exec /sbin/start_kerio
eend 0
}

stop() {
ebegin "Stopping Kerio VPN Client Daemon"
start-stop-daemon --stop --quiet --user dconnect --retry 5 --signal 9 --exec kvpncsvc
eend 0
}


これらのファイルを実行可能にする必要があり、接続を開始できます

/etc/init.d/kerio start

Source: https://habr.com/ru/post/J62030/


All Articles