しかし最近、私には(そして、おそらくこの記事を読んでいる人にも)抜け道があることがわかりました
それでは始めましょう。
ソフトウェアは、核モジュールとネットワークデーモンで構成されており、実際には接続を確立します。
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コマンドを使用して、カーネルモジュールが構築されます。 それをダウンロードするだけで、次の一連のアクションを実行しています。
- ディレクトリ/lib/modules/ut.version.your.kernel/kernel/net/kvnetを作成します
- kvnet.koファイルをそれにコピーします
- depmod -a
- modprobe kvnet
モジュールは問題なくロードされるはずです(カーネル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