SoftEtherを使用してマルチプロトコルVPNサーバーをセットアップする方法
序章
この記事では、SoftEtherパッケージを使用してマルチプロトコルVPNサーバーをインストールおよび構成する方法について説明します。 LinuxでOpenVPNおよびL2TPoverIPSecおよびSSTPVPNサーバーを有効にして構成します。
SoftEtherとは
SoftEther VPNは、日本の筑波大学の優秀な人々によって作成された、世界で最も強力で使いやすいマルチプロトコルVPNソフトウェアの1つです。 Windows、Linux、Mac、FreeBSD、Solarisで動作し、フリーウェアでオープンソースです。 SoftEtherは、個人的または商用目的で無料で使用できます。
ステップ1:仮想サーバーを作成する
まず、DigitalOceanドロップレットを作成する必要があります。 SoftEtherのWebサイトに記載されているように、SoftEtherは、カーネルv2.4以降を搭載したほぼすべてのLinuxディストリビューションで動作します。 ただし、CentOS、Fedora、またはRed HatEnterpriseLinuxのいずれかのディストリビューションを選択することをお勧めします。
個人的には、Ubuntu、CentOS、Fedoraの32ビット版と64ビット版の両方で試してみましたが、完全に機能しました。
ステップ2:サーバーソフトウェアを更新する
以下のコマンドを使用して、サーバーソフトウェアパッケージを更新し、最新バージョンにアップグレードします。
Debian / Ubuntu:
apt-get update && apt-get upgrade
CentOS / Fedora:
yum upgrade
ステップ3:SoftEtherをダウンロードする
Linux用の最新のSoftEtherサーバーパッケージは、次のWebサイトからダウンロードできます。
残念ながら、現時点では、パッケージマネージャーを介して(または単一のURLを使用して)最新バージョンを取得する方法はありません。 したがって、パッケージをダウンロードするには、デスクトップブラウザを使用してWebサイトを閲覧する必要があります。 これに対処するには、いくつかの方法があります。まず、自分のコンピューターでWebサイトを参照し、サーバー構成(OS、x86 / x64など)に応じて、適切なパッケージへのリンクを見つけて、wgetを使用します。 パッケージをサーバーにダウンロードします。 または、 lynx などのターミナルベースのWebブラウザーを使用して、SoftEther Webサイトを閲覧し、適切なパッケージをダウンロードすることもできます。
lynxを使用してそれを行う方法は次のとおりです。
まず、サーバーにlynxをインストールします。
Debian / Ubuntu:
apt-get install lynx -y
CentOS / Fedora:
yum install lynx -y
次に、以下のコマンドを使用して、SoftEtherダウンロードWebページを参照します。
lynx http://www.softether-download.com/files/softether/
このページには、利用可能なSoftEtherのすべてのバージョンが含まれています。 必要なバージョンを選択し(このチュートリアルではv2.00-9387-rtm-2013.09.16を使用します)、Enterキーを押してリンクに移動します。 次に、 Linux を選択し、次のページで SoftEther VPNServerを選択します。 サーバーのハードウェアアーキテクチャに応じて、パッケージを選択します。 32ビット-Intelx86および64bit-Intelx64またはAMD64は、DigitalOcean32ビットまたは64ビットのドロップレットで機能します。 最後に、リンクの「D」キーを押して次のページからtarファイルをダウンロードし、Lynxから要求されたら「ディスクに保存」を選択します。 ファイルが保存されたら、「Q」を押してLynxを終了し、インストールを続行できます。
ステップ4:SoftEtherをインストールして設定する
次に、SoftEtherダウンロードページから受け取ったパッケージを抽出してコンパイルする必要があります。 このチュートリアルで使用されるパッケージの名前はsoftether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gzなので、以下のコマンドを使用して抽出します。
tar xzvf softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz
解凍後、作業フォルダにvpnserverという名前のディレクトリが作成されます。 SoftEtherをコンパイルするには、次のツールとパッケージをサーバーにインストールする必要があります。
make 、 gccbinutils(gcc)、 libc(glibc)、 zlib 、 openssl 、 readline 、および ncurses
これらがインストールされていることを確認してください。 以下のコマンドを使用して、SoftEtherのビルドに必要なすべてのパッケージをインストールできます。
Debian / Ubuntu:
apt-get install build-essential -y
CentOS / Fedora:
yum groupinstall "Development Tools"
注: Fedoraで、 gcc パッケージが上記のコマンドを使用してインストールされないことがわかったため、 yum installgccを使用して手動でインストールする必要があります。
必要なパッケージがすべてインストールされたので、次のコマンドを使用してSoftEtherをコンパイルできます。
最初にvpnserverディレクトリに「cd」します。
cd vpnserver
次に、「make」を実行してSoftEtherを実行可能ファイルにコンパイルします。
make
SoftEtherは、ライセンス契約を読んで同意するように求めます。 1 を選択して契約を読み、もう一度読んだことを確認し、最後にライセンス契約に同意します。
SoftEtherがコンパイルされ、実行可能ファイル(vpnserverおよびvpncmd)になりました。 プロセスが失敗した場合は、すべての要件パッケージがインストールされているかどうかを確認してください。
SoftEtherがコンパイルされたので、 vpnserver ディレクトリを別の場所に移動できます。ここでは、 usr /localに移動します。
cd ..
mv vpnserver /usr/local
cd /usr/local/vpnserver/
次に、ファイルを保護するためにファイルのアクセス許可を変更します。
chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmd
SoftEtherを起動時にサービスとして開始する場合は、/etc/init.dディレクトリにvpnserverという名前のファイルを作成し、次のように変更します。
まず、を使用してファイルを作成して開きます vi
また nano
:
vi /etc/init.d/vpnserver
そして、以下をファイルに貼り付けます。
#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
最後に、 esc を押し、:wq と入力してファイルを保存し、閉じてvimを閉じます。
ディレクトリが存在しない場合は、 / var / lock /subsysにディレクトリを作成する必要があります。
mkdir /var/lock/subsys
次に、起動スクリプトのアクセス許可を変更し、次のコマンドを使用してvpnserverを起動します。
chmod 755 /etc/init.d/vpnserver && /etc/init.d/vpnserver start
以下のコマンドを使用して、起動時に実行します。
Debian / Ubuntu:
update-rc.d vpnserver defaults
CentOS / Fedora:
chkconfig --add vpnserver
これで、SoftEther VPNサーバーがインストールされ、起動時に実行されるように構成されました。 最後に、VPNサーバーが機能しているかどうかを確認する必要があります。
cd /usr/local/vpnserver
./vpncmd
次に、 3を押してVPNツールの使用を選択し、次のように入力します。
check
すべてのチェックに合格すると、サーバーはSoftEther VPNサーバーになる準備が整い、次のステップに進むことができます。 「exit」と入力して、 VPNToolsを終了します。
SoftEther VPNサーバーを構成するには、2つの方法があります。Windowsベースのサーバーマネージャーを使用して、リモートから任意の数のSoftEtherVPNサーバーを管理および構成できます。 または、組み込みのvpncmdツールを使用してサーバーを構成します。
SoftEther Server Manager for Windowsは、そのWebサイトを使用してダウンロードし、提供されているGUIを使用して構成を行うことができます。これは、Windowsユーザーの場合に適した方法です。
ここでは、vpncmdを使用してVPNサーバーを構成します。
ステップ5:管理者パスワードを変更する
SoftEther VPNサーバーがインストールされたので、SoftEtherで使用するには、管理者パスワードを割り当てる必要があります。 これは、SoftEtherのコマンドラインベースの管理ツールであるvpncmdを使用して実行できます。
./vpncmd
1 を押して「VPNサーバーまたはVPNブリッジの管理」を選択し、何も入力せずにEnterキーを押してローカルホストサーバーに接続し、サーバー管理モードでサーバーに接続するために何も入力せずにもう一度Enterキーを押します。
次に、以下のコマンドを使用して管理者パスワードを変更します。
ServerPasswordSet
ステップ6:仮想ハブを作成する
SoftEtherを使用するには、最初に仮想ハブを作成する必要があります。 ここでは例として、 VPN という名前のハブを作成します。これを行うには、vpncmdツールで以下のコマンドを入力します。
HubCreate VPN
次に、ハブの管理者パスワードを入力するように求められます。 このパスワードは、 server admin モードでログインしておらず、その特定のハブを管理する場合に使用されます。
次に、次のコマンドを使用して作成した仮想ハブを選択します。
Hub VPN
手順7:SecureNATを有効にする
ハブをサーバーネットワークに接続するには、ローカルブリッジ接続を使用する方法とSecureNAT機能を使用する方法の2つがあります。
それぞれを別々に使用することもできますが、これら2つを一緒に使用すると問題が発生します。
ここではSecureNATを使用します。これはセットアップが非常に簡単で、ほとんどの状況で非常にうまく機能します。 ローカルブリッジを使用することもできますが、DHCPサーバーもインストールして構成する必要があります。
SecureNATは、仮想NATとDHCPサーバー機能を組み合わせたものです。 以下のコマンドを使用して、SecureNATを有効にできます。
SecureNatEnable
ステップ8:ユーザーの作成と管理
次に、VPNを使用するために仮想ハブのユーザーを作成する必要があります。 コマンドUserCreateを使用して仮想ハブのユーザーを作成し、UserListで現在のユーザーのリストを表示できます。 ユーザーはグループに追加でき、さまざまなタイプの認証モード(パスワード、証明書、RADIUS、NTLMなど)を持つこともできます。
コマンドUserCreateを使用して、「test」という名前のユーザーを作成します。
UserCreate test
デフォルトの認証タイプはパスワードですが、以下のコマンドを使用して別のタイプに変更できます。
UserNTLMSet
NTドメイン認証用
UserPasswordSet
パスワード認証用
UserAnonymousSet
匿名認証用
UserRadiusSet
RADIUS認証用
UserCertSet
個別の証明書認証用
UserSignedSet
署名付き証明書認証用
このチュートリアルでは、 test ユーザーのユーザー認証モードとしてパスワードを使用するため、このコマンドを使用して、ユーザーtestのパスワードを設定します。
UserPasswordSet test
手順9:L2TP/IPSecを設定する
L2TP / IPsec VPNサーバーを有効にするには、次のコマンドを使用できます。
IPsecEnable
このコマンドを入力すると、L2TPサーバーの機能を構成するように求められます。
L2TP over IPsecサーバー機能を有効にする: yes を選択して、事前共有キー暗号化を使用したL2TP VPNoverIPSecを有効にします。 これで、iPhone、Android、Windows、およびMacOSXデバイスを使用してこのサーバーにVPN接続を確立できます。
Raw L2TPサーバー機能を有効にする:これにより、IPSec暗号化のないクライアントに対してL2TPVPNが有効になります。
EtherIP / L2TPv3 over IPsecサーバー機能を有効にする:EtherIP / L2TPv3 over IPsecと互換性のあるルーターは、この機能を有効にすることでこのサーバーに接続できます。
IPsecの事前共有キー:L2TPVPNで使用する事前共有キーを入力します。
ユーザー名のHUBを省略した場合のデフォルトの仮想HUB:ユーザーは、接続時にユーザー名として Usersname @ TargetHubName を使用して、接続しようとしている仮想ハブを指定する必要があります。 このオプションは、ユーザーがそのような情報を提供しない場合に使用する仮想ハブを指定します。 この場合、VPNと入力します。
ステップ10:SSTP/OpenVPNをセットアップする
SoftEtherは、Microsoft SSTPVPNServerおよびOpenVPNServerの機能を複製できます。 ただし、これらを有効にする前に、サーバーの自己署名SSL証明書を生成する必要があります。 opensslまたはSoftEther独自のコマンドを使用して、SSL証明書を生成できます。
ここでは、SoftEtherの ServerCertRegenerate コマンドを使用して、サーバーの自己署名SSL証明書を生成および登録します。 コマンドに渡される引数はCN(共通名)であり、ホスト名(FQDN)またはIPアドレスに設定する必要があります。
ServerCertRegenerate [CN]
注1: SoftEtherには、サーバーに一意の永続的なホスト名を割り当てることができるダイナミックDNS機能も組み込まれています。 この関数によって割り当てられたホスト名を使用して、SSL証明書を作成し、サーバーに接続できます。
注2: SSL証明書を既にお持ちの場合、または openssl を使用して作成した場合は、コマンドを使用してサーバーに追加できます。 ServerCertSet
.
証明書を作成したので、証明書をクライアントにダウンロードして、信頼できるものとして追加する必要があります。 以下のコマンドを使用して、サーバー証明書をcert.cerという名前のファイルに保存します。
ServerCertGet ~/cert.cer
これで、FileZillaまたはその他のSFTPクライアントを使用して証明書をクライアントにダウンロードできます。
証明書をWindowsで信頼できるようにするには、信頼されたルート証明機関ストアに証明書をインストールする必要があります。 これがその方法を説明する記事です(証明書チェーンをインストールするにはの部分を読んでください):
サーバーのSSL証明書を作成して登録したので、次のコマンドでSSTP機能を有効にできます。
SstpEnable yes
そしてOpenVPNを有効にするには:
OpenVpnEnable yes /PORTS:1194
注: OpenVPNのデフォルトポートは1194ですが、上記のコマンドの / PORTS:1194 の部分を目的のポートに変更することで、任意のポートに変更できます(はい)複数のポートをサポートします)。
OpenVPNを有効にした後、OpenVPNクライアントのサンプル構成ファイルをダウンロードできます。 ここでは、サンプルのOpenVPN構成ファイルを作成し、my_openvpn_config.zipに保存します。
OpenVpnMakeConfig ~/my_openvpn_config.zip
次に、FileZillaなどのSFTPクライアントを使用してダウンロードし、OpenVPNクライアントに適用できます。
SoftEtherは、WindowsとLinuxの両方に専用のVPNクライアントソフトウェアも提供します。 Ethernet overHTTPSまたはSSL-VPNと呼ばれる非常に強力なSoftEther固有のプロトコルをサポートします。 VPNトンネルを確立するためにHTTPSプロトコルとポート443を使用します。このポートはよく知られているため、ほとんどすべてのファイアウォール、プロキシサーバー、およびNATがパケットを渡すことができます。 SSL-VPNプロトコルを使用するには、SoftEtherVPNクライアントをダウンロードしてインストールする必要があります。SoftEtherVPNクライアントはWebサイトから入手できます。
ステップ11:SoftEther VPNサーバーへの接続(クライアント構成)
SoftEtherはマルチプロトコルVPNサーバーであるため、クライアントとして接続する方法は多数あります。 L2TP、SSTP、OpenVPN、SSL-VPNという名前のSoftEther専用プロトコルなど、サーバーへの安全な接続を確立するための任意のプロトコルを選択できます。
クライアントのオペレーティングシステムと構成に応じて、前述のプロトコルのいずれかを使用できます。 ただし、SSL-VPNは安全で高速であるため、また前述のように、一般的でよく知られたポート(443またはhttpsポート)を使用するため、ほとんどのファイアウォールを通過できるため、SSL-VPNを使用することを好みます。
ここでは、SoftEther独自のVPNクライアントソフトウェアを使用してサーバーに接続します。
まず、SoftEtherのWebサイトからLinux用のSoftEtherVPNクライアントをダウンロードします。 lynxブラウザを使用してダウンロードできます。 次のコマンドを入力して、SoftEtherのダウンロードページを開きます。
lynx http://www.softether-download.com/files/softether/
次に、サーバーソフトウェアをダウンロードするときと同じように、最新バージョンを選択します(ここでは、 v2.00-9387-rtm-2013.09.16 を使用しました)。 次に、 Linux を選択し、次のページでSoftEtherVPNクライアントを選択します。 システムのハードウェアアーキテクチャに応じて、パッケージを選択します(32ビット-Intelx86および64ビット-Intelx64またはAMD64はDigitalOcean32ビットまたは64ビットドロップレットで機能します)。 最後に、リンクの「D」キーを押して次のページからtarファイルをダウンロードし、Lynxから要求されたらディスクに保存を選択します。 ファイルが保存されたら、「Q」を押してLynxを終了します。
次のコマンドを使用して、ダウンロードしたtarファイルを抽出します。
tar xzvf softether-vpnclient-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz
注:変更 softether-vpnclient-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz
ダウンロードしたファイルの名前に。
サーバーで行ったのと同じように、次のコマンドを実行してvpnclientをコンパイルして実行可能ファイルにする必要があります(ステップ4 で説明した開発ツールがクライアントにインストールされていることを確認してください)。
cd vpnclient
make
ライセンス契約を読んで同意するように求められたら、 1 を3回入力し、ファイルを別のディレクトリに移動してアクセス許可を変更します。
cd ..
mv vpnclient /usr/local
cd /usr/local/vpnclient/
chmod 600 *
chmod 700 vpnclient
chmod 700 vpncmd
次に、次のコマンドを使用してVPNクライアントサービスを開始します。
./vpnclient start
クライアントを構成するには、 vpncmd
. vpnclient ディレクトリにいる間に、このコマンドを入力して実行します vpncmd
道具:
./vpncmd
2を選択してVPNクライアントの管理モードに入り、Enterキーを押して、インストールしたローカルVPNクライアントに接続して管理します。
SoftEtherは、仮想アダプターを使用してVPNサーバーへの接続を確立します。次のコマンドを使用して、myadapterという名前の仮想アダプターを作成します。
NicCreate myadapter
このコマンドを使用して、myconnectionという名前の新しいVPN接続を作成します。
AccountCreate myconnection
次に、SoftEtherVPNサーバーのIPとポート番号を入力します。 ポート番号は、サーバーでリッスンするように設定した任意のポートにすることができます。 デフォルトでは、SoftEtherは次の4つのポートでリッスンします:443、992、1194、5555。 ここでは、ポート443を使用する例として次のように説明します。
Destination VPN Server Host Name and Port Number: [VPN Server IP Address]:443
注: IPアドレスの代わりに、サーバーの完全修飾ドメイン名(FQDN)を入力することもできます。
次に、サーバーで接続しようとしている仮想ハブの名前を入力します。 この場合、VPNという名前が付けられています。
Destination Virtual Hub Name: VPN
次に、サーバーで作成したユーザーのユーザー名を入力します。 testというユーザーを作成しました。
Connecting User Name: test
最後に、作成した仮想ハブの名前を入力します。
Used Virtual Network Adapter Name: myadapter
これでVPN接続が作成され、接続する準備が整いました。 最後のステップは、認証モードを Password に変更することです。これは、サーバーでユーザーの認証モードを構成する方法であるためです。
AccountPasswordSet myconnection
求められたら、パスワード認証方法としてstandardを入力します。
Specify standard or radius: standard
最後に、接続を接続できます。このコマンドを使用して、次のことを行います。
AccountConnect myconnection
次のコマンドを使用して、接続ステータスを確認できます。
AccountStatusGet myconnection
注:サーバーへの接続をより安全にし、man-in-the-middle攻撃を防ぐために、SSL証明書を使用してサーバーを識別するのが最善です。 これは、SoftEtherを使用して簡単に実行できます。 これを行うには、最初にステップ10 で説明されているように証明書ファイルをクライアントにダウンロードし、次にCertAddを使用してそれをクライアントの信頼できる証明書に追加する必要があります。 次に、コマンドを使用します AccountServerCertEnable
VPN接続の証明書検証を有効にします。
仕上げ
この記事では、SoftEtherが提供するコマンドライン管理ユーティリティであるvpncmdを使用してSoftEtherVPNサーバーをセットアップするプロセスについて説明しました。 ここで行われるすべてのことは、 SoftEther Server Manager for Windows を使用して行うこともでき、そのツールを使用してSoftEtherVPNServerをセットアップするのはさらに簡単です。 そのため、Windowsマシンをお持ちの場合は、これを使用することをお勧めします。
それでおしまい。 SoftEtherを使用してマルチプロトコルVPNサーバーを正常にインストールおよび構成しました。 これで、クライアントはL2TP、IPSec、SSTP、OpenVPNなどを使用してサーバーに接続できます。