Jobcrazy 发表于 2004-4-2 09:32:03

哪位牛人知道SOFTETHER的使用方法?

SoftEther for Linux
SoftEther の Linux 版に関するページです。

※ Linux 版 SoftEther 仮想 HUB のビルド、インストール、および起動は、Windows 版 SoftEther と比較して、若干複雑な操作が必要となります。また、Linux / UNIX コマンドに関する基本的な知識が必要となります。この解説ページに記述されている事項が理解できる程度の基本的知識を習得してから利用されることをお勧めします。

Linux 版 SoftEther を利用する上での質問などは、自分でよく調べた上で、メーリングリスト などに投稿してください。

※ このページに特別に記載されていること以外については、Linux 版 SoftEther の動作は Windows 版と同等です。Linux 版 SoftEther の仮想 HUB エンジンは、Windows 版と同一のものを使用しており、機能的にも差はありません。

 

Linux 版 SoftEther 仮想 HUB
2004年3月現在、SoftEther の仮想 HUB の Linux 対応版を公開しています。仮想 LAN カードの Linux 版は現在開発中であり、公開されていません。

Linux 版 SoftEther 仮想 HUB をダウンロードするには、こちら をクリックしてください。

 

ご注意
Linux 版 SoftEther は現在開発中のソフトウェアであり、実用的な品質に達しているものの、パフォーマンス、性能、および安定性において Windows 版 SoftEther の品質には達していません。したがいまして、本格的な業務環境などに Linux 版 SoftEther を導入される場合は、以下の点にご留意いただきますようお願いいたします。

SoftEther は Win32 環境をベースとして開発されています。Linux 版 SoftEther は、Windows 版 SoftEther と比較して若干動作速度が遅い、または CPU 使用率が高くなる場合があります。
Linux 版 SoftEther のソースコード ツリーは Windows 版と同一ですが、プラットフォームに依存したバグなどが存在する可能性があります。そのため、Linux 版 SoftEther は Windows 版の安定性に達していない場合があります。
Linux 版 SoftEther 仮想 HUB は、コマンドラインから起動する一般的なプログラムとして動作します。Windows 版は「サービス」として動作しますが、現在の Linux 版は「デーモン」としては動作しません。
Linux 版 SoftEther は、実行可能なプログラムとしてではなく、中間形式のファイル (ライブラリファイル) としてダウンロード可能です。使用する前に、ユーザーが自らビルドする必要があります。その際、pthread ライブラリ、および OpenSSL ライブラリが必要です。
 

動作環境
Linux 版 SoftEther を動作させるには、以下の環境が必要です。

pthread ライブラリ
OpenSSL ライブラリ
*.a ファイル (アーカイブ形式のスタティック・ライブラリ) を認識可能なリンカ
RedHat 7.1、RedHat 9.0、Vine Linux 2.6 上で動作を確認しています。ほとんどの Linux リストリビューションには、pthread ライブラリおよび OpenSSL ライブラリが含まれています。OpenSSL の最新版は http://www.openssl.org/ からダウンロード可能です。

 

インストール方法
Linux 版 SoftEther 仮想 HUB のダウンロードファイル se_100_linux.zip には、libse_hub.a、ca.crt、ca.key の 3 つのファイルが含まれています。これらを、適当なディレクトリに展開します。

ここでは、se_hub というディレクトリにこれら 3 つのファイルを展開したと仮定します。
SoftEther 仮想 HUB プログラムは、実行可能なファイルではなく、スタティック・ライブラリとして libse_hub.a に格納されています。このライブラリ・ファイルに pthread ライブラリ および OpenSSL ライブラリをリンクして、実行可能ファイルを生成する必要があります。

リンカとして gcc を使用する場合は以下のように入力します。

# gcc libse_hub.a -lpthread -lssl -lcrypto -o se_hub

特にエラーが表示されなければ、リンクは成功し、同じディレクトにに実行可能ファイル "se_hub" が生成されます。

 

起動方法
Windows 版 SoftEther 仮想 HUB は「システム サービス」としてバックグラウンドで稼動しますが、Linux 版 SoftEther 仮想 HUB は一般的なプログラムと同様に、コマンドライン (シェル) から起動します。現在、デーモン プロセスとして実行することはできません。

SoftEther 仮想 HUB は、既定で TCP ポート 443 (HTTPS) を Listen します。これは Well-Known ポートであるため、root 権限で実行する必要があります。

(ただし、SoftEther 仮想 HUB は root 権限以外でも起動することができます。)

SoftEther 仮想 HUB ("se_hub" ファイル) は通常のプログラムと同様起動できますが、ターミナルが終了すると HUB も同時に終了してしまいます。そこで、nohup コマンドを使用して、ターミナルが閉じても実行され続けるように起動することをお勧めします。

# nohup ./se_hub &

↑のように、一度 se_hub を nohup を使用して、バックグラウンド プロセスとして起動すると、その後でターミナルを終了したりログアウトしたりしても、SoftEther 仮想 HUB は動作し続けます。

(システムが再起動した場合などは、デーモンプロセスと違って自動的には起動しません。システム起動時に自動的に起動するようにするためには、別の操作が必要となります。)

 

管理・運用方法
Linux 版 SoftEther 仮想 HUB の管理メニューの操作方法は、Windows 版と全く同一です。また、Linux 版 SoftEther 仮想 HUB には、Windows 版に含まれているすべての機能が含まれています。

SoftEther 仮想 HUB を管理するには、telnet で仮想 HUB を動作させているコンピュータの TCP ポート 8023 に接続します。仮想 HUB を起動しているコンピュータ自身から telnet localhost 8023 と入力して接続することもできますが、別の Windows マシン上から telnet コマンドで接続してリモート管理することが可能です。

 

仮想 HUB の停止方法
仮想 HUB は一度起動に成功した場合は特にプロセスの操作は必要ありませんが、仮想 HUB のサービスを停止したい場合は、Linux 版 SoftEther 仮想 HUB を停止するには、kill コマンドなどを使用してプロセスを強制終了してください。プロセス番号は、ps コマンドなどを使用して調べることができます。

(例)

# ps auxf

root 12988 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 | \_ ./se_hub
root 12989 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 |    \_ ./se_hub
root 12990 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 |       \_ ./se_hub
root 12991 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 |       \_ ./se_hub
root 12993 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 |       \_ ./se_hub
root 12994 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 |       \_ ./se_hub

↑のような状態の場合は、se_hub プロセス・ツリーの最上位プロセスを終了します。

# kill -KILL 12988

のように KILL シグナルを送信して、プロセスを強制中断してください。

 

デフォルトポート番号 7777 / 443 に関する注意事項
SoftEther 仮想 HUB はデフォルトでプロトコル待ち受けポートとして TCP の 7777 および 443 を Listen しますが、システムによっては、これらのポートを別のプロセスが使用している場合やその他の原因などによって使用できない場合があります。特に、Apache などの Web サーバーが HTTPS 用のポートとして 443 を使用している場合は、SoftEther は 443 ポートの Listen に失敗し、以下のようなエラーメッセージが表示されます。

# ./se_hub
LOG: SoftEther Virtual HUB Service Version 1.00 for UNIX System
LOG: Copyright (c) 1997-2004 Daiyuu Nobori, All Rights Reserved.
LOG: SoftEther Started.
LOG: TCP/IP inited.
LOG: Service Process Begin.
LOG: SSL Library Inited.
LOG: Protocol Init Succeed. Protocol ID: 0
LOG: Protocol Init Succeed. Protocol ID: 1
LOG: Protocol (1) Listen Failed. Port=443.

この場合は、一度仮想 HUB の管理メニューにログインした後、ポート番号を変更してください。

仮想 HUB の管理メニューの操作方法については、オンラインマニュアル をご覧ください。

 

サーバー証明書 ca.key および ca.crt について
SoftEther 仮想 HUB とクライアントとの間の通信内容は SSL で暗号化されますが、その際に仮想 HUB が使用する「サーバー証明書」のファイル名は ca.crt、秘密鍵ファイルは ca.key です。

これらのファイルは ZIP アーカイブに含まれているものをそのまま使用することができますが、セキュリティに配慮し、自分で ca.key および ca.crt を作成することができます。

ca.crt (証明書ファイル) と ca.key (秘密鍵ファイル) は openssl コマンドを使用して生成することができます。以下に例を示します。

 

■ ca.key (秘密鍵ファイルの生成)

# openssl genrsa -out ca.key -des3 1024
Generating RSA private key, 1024 bit long modulus
......++++++
......................................++++++
e is 65537 (0x10001)
Enter pass phrase for ca.key: softether
Verifying - Enter pass phrase for ca.key: softether

※ 秘密鍵のパスフレーズは "softether" (半角 9 文字) と入力してください。また、秘密鍵ファイルは盗難されないように厳重に保管してください。

 

■ ca.crt (証明書ファイルの生成)

# openssl req -new -x509 -key ca.key -out ca.crt
Enter pass phrase for ca.key: softether
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) :JP
State or Province Name (full name) :Ibaraki-ken
Locality Name (eg, city) []:Tsukuba-city
Organization Name (eg, company) :Univ of Tsukuba
Organizational Unit Name (eg, section) []:Coins
Common Name (eg, YOUR name) []:Daiyuu Nobori
Email Address []:[email protected]

 

ca.key と ca.crt を作成したら、se_hub と同じディレレクトリにコピー (上書き) してから、SoftEther 仮想 HUB を一度終了して、再起動してください。

哪位牛人能告诉我怎么用吗?我们这里牵长宽的线上ADSL :mrgreen: 所以需要一个这个东西。

KanKer 发表于 2004-4-2 13:41:11

这个东西在linux下只有服务器端(v-hub),没有客户端( SoftEther)。要突破长宽的限制,你要用softether来连没有限制的v-hub才行。下面是上面的翻译。转自舟山IT。

SoftEther Linux版V-HUB公布                         
作者: nickwolfe                  
星期五, 19 三月 2004
SoftEther Linux版V-HUB公布。此外Windows版也升级到了1.0,尽量升级吧!

1)工作环境要求
Linux 版 SoftEther运行,需要如下环境

pthread 库
OpenSSL 库 (<--- http://www.openssl.org 可以下载最新版)

并且需要可以识别 *.a 文件格式(压缩形式的静态库)的Linker

在 RedHat 7.1、RedHat 9.0、Vine Linux 2.6 上验证确认。
其他的Linux 发行版本,也都该有pthread库和OpenSSL库的。


2)安装方法
se_100_linux.zip里面有如下三个文件

libse_hub.a
ca.crt
ca.key

随便展开到什么地方就行,为了便于说明,假设展开到了一个名为se_hub的目录

SoftEther Linux版V-HUB程序并不是一个可执行形式,而是以静态库形式存放在libse_hub.a里面。
因此,需要把pthread库和OpenSSL库文件链接到此静态库上去,才能生成可执行文件

比如用gcc作为链接器的时候,如此这般

gcc libse_hub.a -lpthread -lssl -lcrypt -o se_hub

如果要没有显示错误,就算链接成功了。
在这个目录里会生成名为“se_hub”的这么一个文件


3)启动方法

我们知道,Windows版的SoftEther V-HUB是通过登录到System Service里去,实现后台工作的。
Linux版的V-HUB则是与普通程序一样,通过命令行(Shell)启动。现在,还没有把V-HUB做成Daemon Process方式执行

SoftEther V-HUB要监听TCP 443口(HTTPS),因为这是Well-Know端口,所以需要root权限才能执行。
(但SoftEther V-HUB本身,不需要root权限也可以执行的!)

在Terminal方式下,SoftEther V-HUB程序(刚才生成的那个 se_hub 文件)虽然可以和其他程序一样启动运行,但Terminal关闭的时候,运行中的V-HUB也会被干掉。这种情况下需要执行下面介绍的 nohup 指令,使得Terminal即使被关掉也可以继续运行。

# nohup ./se_hub &

这样,只要用 nohup 执行一次 se_hub ,就可以把V-HUB的进程放到后台了。
(不过Linux重启动的时候,因为不是Deamon Process,所以不能自动启动。想要让它在系统重启时也被自动执行,需要别的方法辅助)
老服注: 这作者真够婆婆妈妈的,直接说“把启动命令放到cron table里去”不就结了?呵呵.......日本人就是在这种细节上过分追求面面俱到。
 


4)管理-运用方法

4-1)Linux版V-HUB的管理菜单及其使用方法,和Windows版完全一样。功能也完全一样

要管理SoftEther的V-HUB,只需要telnet到运行V-HUB的计算机的TCP 8023端口就可以接上了。
无论是从运行V-HUB的本机,telnet自己的8023口还是从远程telnet到运行V-HUB的机器的8023口,都没有问题。
 

4-2)V-HUB的停止方法

因为V-HUB一经启动,就会一直执行下去。如果要停止,请使用 Kill 命令。
Process的ID,可以用如下的 ps 命令来调查

(举例)


代码:
# ps auxf

root 12988 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 | _ ./se_hub
root 12989 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 |    _ ./se_hub
root 12990 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 |       _ ./se_hub
root 12991 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 |       _ ./se_hub
root 12993 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 |       _ ./se_hub
root 12994 0.0 1.3 21576 1708 pts/2 S 20:45 0:00 |       _ ./se_hub



看到这种结果,把 se_hub 进程树的最上面一个进程干掉就可以了


代码:
# kill -KILL 12988


用这个命令发送KILL Signal,可以强行中止V-HUB的进程


4-3)关于默认端口号 7777 / 443 的注意事项

SoftEther V-HUB的默认侦听协议端口,是TCP的7777端口与443端口。如果你的系统已经被占用,或者你有其他原因不想使用这两个默认端口,特别是Apache之类的Web Server已经使用了443端口作HTTPS用的情况下,SoftEther会显示如下的信息表示侦听443端口失败

(举例)


代码:
# ./se_hub
LOG: SoftEther Virtual HUB Service Version 1.00 for UNIX System
LOG: Copyright (c) 1997-2004 Daiyuu Nobori, All Rights Reserved.
LOG: SoftEther Started.
LOG: TCP/IP inited.
LOG: Service Process Begin.
LOG: SSL Library Inited.
LOG: Protocol Init Succeed. Protocol ID: 0
LOG: Protocol Init Succeed. Protocol ID: 1
LOG: Protocol (1) Listen Failed. Port=443.


这种情况下,进入V-HUB的管理菜单,把默认端口改变即可
V-HUB的管理菜单使用方法,参见Windows版发行时候的说明教程(网络版精华区有下载)

4-4)关于 Server 认证 ca.key 和 ca.crt (老服强烈提请试图使用Linux V-HUB的筒子们关注这部分)

SoftEther V-HUB与客户端(PC上的虚拟网卡)之间的通讯内容,是用SSL加密的。
这个时候,V-HUB所使用的《Server 认证书》就是ca.crt,密码文件是ca.key

大家当然可以使用下载包中包含的那一对ca.crt / ca.key 文件,不过从安全性考虑,最好自己制作 ca.key 和 ca.crt

用 openssl 命令可以生成自己专用的 ca.crt(认证书文件) / ca.key(密钥文件)。
参照下面的示例

■ ca.key (生成密钥文件)
(举例)


代码:
# openssl genrsa -out ca.key -des3 1024
Generating RSA private key, 1024 bit long modulus
......++++++
......................................++++++
e is 65537 (0x10001)
Enter pass phrase for ca.key: softether      <---说的就是这里
Verifying - Enter pass phrase for ca.key: softether      <---还有这里


注意:密钥的Pass Pharse请输入"softether"九个字母。而且不要丢掉这个密钥文件,严加管理!
老服注:俺这里感觉不太爽,固定“softether”为密钥文件的密码,岂不是安全性大为下降么?
当然,V-HUB要是不知道这个密码,也无法正常通讯。但始终觉得这里问题不小.......谁清楚,出来说说你的想法好了。

■ ca.crt (生成认证文件)
(举例)


代码:
# openssl req -new -x509 -key ca.key -out ca.crt
Enter pass phrase for ca.key: softether      <---这里?
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) :JP          <---这里,我们填写 CN 吧?
State or Province Name (full name) :Ibaraki-ken <---省/直辖市/自治区名
Locality Name (eg, city) []:Tsukuba-city         <---城市名称
Organization Name (eg, company) :Univ of Tsukuba <---公司/机构/学校/组织名称
Organizational Unit Name (eg, section) []:Coins                <---部门名称
Common Name (eg, YOUR name) []aiyuu Nobori             <---您咋称呼阿?
Email Address []:[email protected]               <---Mail地址呗


 
ca.key和ca.crt文件做好了以后,拷贝到 se_hub 那个目录里去(覆盖掉老的那一对)。停掉运行中的V-HUB,再启动一下,就好了。

visionalstar 发表于 2004-4-3 22:29:39

官方没有英文文档?

Jobcrazy 发表于 2004-4-5 14:14:07

可惜了,没有Linux下的客户端~

ysg 发表于 2004-4-5 20:06:08

就是 有的话多好啊
页: [1]
查看完整版本: 哪位牛人知道SOFTETHER的使用方法?